| | |
| | | private InspectUnacceptedService inspectUnacceptedService; |
| | | |
| | | |
| | | @ApiOperation(value = "查询原材料不合格品检验单列表") |
| | | @ApiOperation(value = "查询成品不合格品检验单列表") |
| | | @ApiImplicitParams(value = { |
| | | @ApiImplicitParam(name = "pageSize",value = "页数",dataTypeClass = Integer.class,required = true), |
| | | @ApiImplicitParam(name = "countSize",value = "条数/页",dataTypeClass = Integer.class,required = true), |
| | | @ApiImplicitParam(name = "formTime",value = "来料日期",dataTypeClass = String.class), |
| | | @ApiImplicitParam(name = "dealState",value = "处理状态(为空=全部)",dataTypeClass = Integer.class), |
| | | @ApiImplicitParam(name = "type",value = "类型(为空=原材料2)",dataTypeClass = Integer.class) |
| | | @ApiImplicitParam(name = "dealState",value = "处理状态(为空=全部)",dataTypeClass = Integer.class) |
| | | }) |
| | | @GetMapping("/selectUnRawInspectsList") |
| | | public Result selectUnRawInspectsList(int pageSize, int countSize, String formTime, Integer dealState,Integer type){ |
| | | IPage<Map<String, Object>> inspectionPage = inspectUnacceptedService.selectUnRawInspectsList(new Page<Object>(pageSize, countSize), formTime,dealState,type); |
| | | public Result selectUnRawInspectsList(int pageSize, int countSize, String formTime, Integer dealState){ |
| | | IPage<Map<String, Object>> inspectionPage = inspectUnacceptedService.selectUnRawInspectsList(new Page<Object>(pageSize, countSize), formTime,dealState); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("total", inspectionPage.getTotal()); |
| | | map.put("row", inspectionPage.getRecords()); |
| | |
| | | */ |
| | | public interface InspectUnacceptedMapper extends BaseMapper<InspectUnaccepted> { |
| | | |
| | | //查询原材料不合格品检验单列表 |
| | | IPage<Map<String, Object>> selectUnRawInspectsList(Page<Object> page, String formTime, Integer dealState, Integer type); |
| | | |
| | | //查询过程检验和成品检验中不合格品检验单列表 |
| | | IPage<Map<String, Object>> selectInsList(Page<Object> page, String formTime, Integer dealState, Integer type); |
| | | //查询成品检验中不合格品检验单列表 |
| | | IPage<Map<String, Object>> selectInsList(Page<Object> page, String formTime, Integer dealState); |
| | | } |
| | | |
| | |
| | | @TableLogic(value = "1", delval = "0") |
| | | private Integer state; |
| | | |
| | | /** |
| | | * ${column.comment} |
| | | **/ |
| | | |
| | | @TableField(fill = FieldFill.INSERT) |
| | | @DateTimeFormat(pattern = "yyyy-MM-dd") |
| | | @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
| | |
| | | **/ |
| | | private Integer rawInspectId; |
| | | |
| | | /** |
| | | * 0:成品;1:过程;2:原材料 |
| | | **/ |
| | | private Integer type; |
| | | |
| | | |
| | | /** |
| | |
| | | * @param dealState |
| | | * @return |
| | | */ |
| | | IPage<Map<String, Object>> selectUnRawInspectsList(Page<Object> page, String formTime, Integer dealState, Integer type); |
| | | IPage<Map<String, Object>> selectUnRawInspectsList(Page<Object> page, String formTime, Integer dealState); |
| | | |
| | | } |
| | | |
| | |
| | | updateWrapper.set(FinishedInspect::getResult, result); |
| | | finishedInspectMapper.update(new FinishedInspect(), updateWrapper); |
| | | FinishedInspect finishedInspect = finishedInspectMapper.selectById(finishedInspectId); |
| | | //如果检验结论为不合格,则需要新增不合格检验单,还需要新增半成品库存 |
| | | /*检验结论为不合格*/ |
| | | if (result == 0) { |
| | | /*新增不合格检验单*/ |
| | | InspectUnaccepted inspectUnaccepted = InspectUnaccepted.builder() |
| | | .reason(finishedInspect.getProjectName() + "不合格") //暂且定义为工程名称不合格 |
| | | .rawInspectId(finishedInspectId) |
| | | .type(finishedInspect.getType()) |
| | | .build(); |
| | | inspectUnacceptedMapper.insert(inspectUnaccepted); |
| | | /*新增半成品(1)库存*/ |
| | | //如果入库的信息一样只有库存不一样,则在原来的库存数量上加上相应的数量 |
| | | LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber()) |
| | | .eq(Repertory::getCode, finishedInspect.getMaterialCode()) |
| | | .eq(Repertory::getName, finishedInspect.getMaterial()) |
| | | .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel()) |
| | | .eq(Repertory::getUnit, finishedInspect.getUnit()) |
| | | .eq(Repertory::getType, 1); |
| | | Repertory rep = repertoryMapper.selectOne(queryWrapper); |
| | | if (rep != null && rep.getCheckState()==1) { |
| | | rep.setNumber(rep.getNumber() + finishedInspect.getQuantity()); |
| | | rep.setUserName(username); |
| | | repertoryMapper.updateById(rep); |
| | | } else { |
| | | //如果除了库存别的信息有任何一个不一样,则新增一条半成品库存 |
| | | Repertory repertory = Repertory.builder() |
| | | .orderCode(finishedInspect.getOrderNumber()) |
| | | .code(finishedInspect.getMaterialCode()) |
| | | .name(finishedInspect.getMaterial()) |
| | | .specifications(finishedInspect.getSpecificationsModel()) |
| | | .unit(finishedInspect.getUnit()) |
| | | .number(finishedInspect.getQuantity()) |
| | | .userName(username) |
| | | .type(1) |
| | | .checkState(1) |
| | | //如果是成品的结论为不合格,需要新增成品不合格检验单 |
| | | if (finishedInspect.getType() == 0) { |
| | | /*新增成品不合格检验单*/ |
| | | InspectUnaccepted inspectUnaccepted = InspectUnaccepted.builder() |
| | | .reason(finishedInspect.getProjectName() + "不合格") //暂且定义为工程名称不合格 |
| | | .rawInspectId(finishedInspectId) |
| | | .build(); |
| | | repertoryMapper.insert(repertory); |
| | | inspectUnacceptedMapper.insert(inspectUnaccepted); |
| | | } |
| | | //如果是过程检验的结论为不合格,需要新增半成品库存且检验结果为不合格 |
| | | if (finishedInspect.getType() == 1) { |
| | | /*新增半成品(1)库存*/ |
| | | //如果入库的信息一样只有库存不一样,则在原来的库存数量上加上相应的数量 |
| | | LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber()) |
| | | .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability()) |
| | | .eq(Repertory::getName, finishedInspect.getMaterial()) |
| | | .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel()) |
| | | .eq(Repertory::getUnit, finishedInspect.getUnit()) |
| | | .eq(Repertory::getType, 1) |
| | | .eq(Repertory::getCheckResult, 0); |
| | | Repertory rep = repertoryMapper.selectOne(queryWrapper); |
| | | if (rep != null) { |
| | | rep.setNumber(rep.getNumber() + finishedInspect.getQuantity()); |
| | | rep.setUserName(username); |
| | | repertoryMapper.updateById(rep); |
| | | } else { |
| | | //如果除了库存别的信息有任何一个不一样,则新增一条半成品库存 |
| | | Repertory repertory = Repertory.builder() |
| | | .orderCode(finishedInspect.getOrderNumber()) |
| | | .qualityTraceability(finishedInspect.getQualityTraceability()) |
| | | .name(finishedInspect.getMaterial()) |
| | | .specifications(finishedInspect.getSpecificationsModel()) |
| | | .unit(finishedInspect.getUnit()) |
| | | .number(finishedInspect.getQuantity()) |
| | | .userName(username) |
| | | .type(1) |
| | | .checkResult(0)//检验结果为不合格 |
| | | .build(); |
| | | repertoryMapper.insert(repertory); |
| | | } |
| | | } |
| | | } |
| | | //如果检验合格,需要新增成品(0)库存和入库记录 |
| | | /*检验结论为合格*/ |
| | | if (result == 1) { |
| | | /*新增成品入库记录*/ |
| | | ImportRepertory importRepertory = ImportRepertory.builder() |
| | | .orderCode(finishedInspect.getOrderNumber()) |
| | | .code(finishedInspect.getMaterialCode()) |
| | | .name(finishedInspect.getMaterial()) |
| | | .specifications(finishedInspect.getSpecificationsModel()) |
| | | .unit(finishedInspect.getUnit()) |
| | | .number(finishedInspect.getQuantity()) |
| | | .userName(username) |
| | | .build(); |
| | | importRepertoryMapper.insert(importRepertory); |
| | | /*新增成品(0)库存*/ |
| | | //如果入库的信息一样只有库存不一样,则在原来的库存数量上加上相应的数量 |
| | | LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber()) |
| | | .eq(Repertory::getCode, finishedInspect.getMaterialCode()) |
| | | .eq(Repertory::getName, finishedInspect.getMaterial()) |
| | | .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel()) |
| | | .eq(Repertory::getUnit, finishedInspect.getUnit()) |
| | | .eq(Repertory::getType, 0); |
| | | Repertory rep = repertoryMapper.selectOne(queryWrapper); |
| | | if (rep != null && rep.getCheckState()==1) { |
| | | rep.setNumber(rep.getNumber() + finishedInspect.getQuantity()); |
| | | rep.setUserName(username); |
| | | repertoryMapper.updateById(rep); |
| | | } else { |
| | | //如果除了库存别的信息有任何一个不一样,则新增一条成品库存 |
| | | Repertory repertory = Repertory.builder() |
| | | //如果是成品检验合格,,需要新增成品(0)库存和入库记录 |
| | | if (finishedInspect.getType() == 0) { |
| | | /*新增成品入库记录*/ |
| | | ImportRepertory importRepertory = ImportRepertory.builder() |
| | | .orderCode(finishedInspect.getOrderNumber()) |
| | | .code(finishedInspect.getMaterialCode()) |
| | | .qualityTraceability(finishedInspect.getQualityTraceability()) |
| | | .name(finishedInspect.getMaterial()) |
| | | .specifications(finishedInspect.getSpecificationsModel()) |
| | | .unit(finishedInspect.getUnit()) |
| | | .number(finishedInspect.getQuantity()) |
| | | .userName(username) |
| | | .type(0) |
| | | .checkState(1) |
| | | .build(); |
| | | repertoryMapper.insert(repertory); |
| | | importRepertoryMapper.insert(importRepertory); |
| | | /*新增成品(0)库存*/ |
| | | //如果入库的信息一样只有库存不一样,则在原来的库存数量上加上相应的数量 |
| | | LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber()) |
| | | .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability()) |
| | | .eq(Repertory::getName, finishedInspect.getMaterial()) |
| | | .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel()) |
| | | .eq(Repertory::getUnit, finishedInspect.getUnit()) |
| | | .eq(Repertory::getType, 0) |
| | | .eq(Repertory::getCheckResult, 1); |
| | | Repertory rep = repertoryMapper.selectOne(queryWrapper); |
| | | if (rep != null) { |
| | | rep.setNumber(rep.getNumber() + finishedInspect.getQuantity()); |
| | | rep.setUserName(username); |
| | | repertoryMapper.updateById(rep); |
| | | } else { |
| | | //如果除了库存别的信息有任何一个不一样,则新增一条成品库存 |
| | | Repertory repertory = Repertory.builder() |
| | | .orderCode(finishedInspect.getOrderNumber()) |
| | | .qualityTraceability(finishedInspect.getQualityTraceability()) |
| | | .name(finishedInspect.getMaterial()) |
| | | .specifications(finishedInspect.getSpecificationsModel()) |
| | | .unit(finishedInspect.getUnit()) |
| | | .number(finishedInspect.getQuantity()) |
| | | .userName(username) |
| | | .type(0) |
| | | .checkResult(1) //库存检验结果为合格 |
| | | .build(); |
| | | repertoryMapper.insert(repertory); |
| | | } |
| | | } |
| | | //如果是过程检验合格,需要新增半成品(1)库存,检验结果为合格1 |
| | | if (finishedInspect.getType()==1) { |
| | | /*新增半成品(1)库存*/ |
| | | //如果入库的信息一样只有库存不一样,则在原来的库存数量上加上相应的数量 |
| | | LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber()) |
| | | .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability()) |
| | | .eq(Repertory::getName, finishedInspect.getMaterial()) |
| | | .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel()) |
| | | .eq(Repertory::getUnit, finishedInspect.getUnit()) |
| | | .eq(Repertory::getType, 1) |
| | | .eq(Repertory::getCheckResult, 1); |
| | | Repertory rep = repertoryMapper.selectOne(queryWrapper); |
| | | if (rep != null) { |
| | | rep.setNumber(rep.getNumber() + finishedInspect.getQuantity()); |
| | | rep.setUserName(username); |
| | | repertoryMapper.updateById(rep); |
| | | } else { |
| | | //如果除了库存别的信息有任何一个不一样,则新增一条半成品库存 |
| | | Repertory repertory = Repertory.builder() |
| | | .orderCode(finishedInspect.getOrderNumber()) |
| | | .qualityTraceability(finishedInspect.getQualityTraceability()) |
| | | .name(finishedInspect.getMaterial()) |
| | | .specifications(finishedInspect.getSpecificationsModel()) |
| | | .unit(finishedInspect.getUnit()) |
| | | .number(finishedInspect.getQuantity()) |
| | | .userName(username) |
| | | .type(1) |
| | | .checkResult(1)//检验结果为合格 |
| | | .build(); |
| | | repertoryMapper.insert(repertory); |
| | | } |
| | | } |
| | | |
| | | } |
| | | return 1; |
| | | } |
| | |
| | | @Resource |
| | | InspectUnacceptedMapper inspectUnacceptedMapper; |
| | | |
| | | //查询原材料不合格品检验单列表 |
| | | //查询成品不合格品检验单列表 |
| | | @Override |
| | | public IPage<Map<String, Object>> selectUnRawInspectsList(Page<Object> page, String formTime, Integer dealState, Integer type) { |
| | | if (type==null){ |
| | | type=2;//为空是原材料2 |
| | | } |
| | | switch (type) { |
| | | case 2: |
| | | //2是查询原材料不合格品 |
| | | return inspectUnacceptedMapper.selectUnRawInspectsList(page,formTime,dealState,2); |
| | | case 1: |
| | | //1是查询过程不合格品 |
| | | return inspectUnacceptedMapper.selectInsList(page,formTime,dealState,1); |
| | | case 0: |
| | | //0是查询成品不合格品 |
| | | return inspectUnacceptedMapper.selectInsList(page,formTime,dealState,0); |
| | | default: |
| | | return null; |
| | | } |
| | | public IPage<Map<String, Object>> selectUnRawInspectsList(Page<Object> page, String formTime, Integer dealState) { |
| | | return inspectUnacceptedMapper.selectInsList(page, formTime, dealState); |
| | | } |
| | | } |
| | | |
| | |
| | | .judgeState(rawInspectVo.getJudgeState()) |
| | | .build(); |
| | | rawInspectMapper.updateById(rawInspect); |
| | | //如果检验结论为不合格,则需要新增不合格检验单 |
| | | //不管检验合格与不合格,都要新增到原材料库存 |
| | | |
| | | /* //如果检验结论为不合格,则需要新增不合格检验单 |
| | | if (rawInspectVo.getJudgeState() == 0) { |
| | | InspectUnaccepted rawUnaccepted = InspectUnaccepted.builder() |
| | | .reason(rawInspectVo.getName() + "不合格") //暂且定义为原材料不合格 |
| | |
| | | .type(2) //类型为原材料 |
| | | .build(); |
| | | inspectUnacceptedMapper.insert(rawUnaccepted); |
| | | } |
| | | }*/ |
| | | return true; |
| | | } |
| | | |
| | |
| | | <if test="formTime!=null and formTime!=''"> |
| | | and form_time=#{formTime} |
| | | </if> |
| | | <if test="type!=null and type!=''"> |
| | | and ru.type=#{type} |
| | | </if> |
| | | and ru.state=1 |
| | | </where> |
| | | order by ru.id desc |
| | |
| | | </if> |
| | | <if test="formTime!=null and formTime!=''"> |
| | | and fi.create_time=#{formTime} |
| | | </if> |
| | | <if test="type!=null and type!=''"> |
| | | and ru.type=#{type} |
| | | </if> |
| | | and ru.state=1 |
| | | order by ru.id desc |
| | |
| | | @Resource |
| | | OrdersService ordersService; |
| | | |
| | | @ApiOperation("查询所有订单列表") |
| | | //订单BOM是销售单通过之后的 |
| | | @ApiOperation("查询所有订单BOM列表") |
| | | @ApiImplicitParams(value = { |
| | | @ApiImplicitParam(name = "pageSize", value = "页数", dataTypeClass = Integer.class, required = true), |
| | | @ApiImplicitParam(name = "countSize", value = "条数/页", dataTypeClass = Integer.class, required = true), |
| | | @ApiImplicitParam(name = "orderCode", value = "订单编号", dataTypeClass = String.class), |
| | | @ApiImplicitParam(name = "name", value = "产品名称", dataTypeClass = String.class), |
| | | @ApiImplicitParam(name = "state", value = "编制状态(为空=待编制0+已编制1)", dataTypeClass = Integer.class), |
| | | @ApiImplicitParam(name = "type", value = "编制状态(为空=全部)", dataTypeClass = Integer.class), |
| | | @ApiImplicitParam(name = "time", value = "下单时间", dataTypeClass = String.class) |
| | | }) |
| | | @GetMapping("/selectAllOrder") |
| | | public Result selectAllOrder(int pageSize, int countSize, String orderCode, String name, Integer state ,String time) { |
| | | IPage<Map<String, Object>> inspectionPage = ordersService.selectAllOrder(new Page<Object>(pageSize, countSize), orderCode, name, state, time); |
| | | public Result selectAllOrder(int pageSize, int countSize, String orderCode, String name, Integer type ,String time) { |
| | | IPage<Map<String, Object>> inspectionPage = ordersService.selectAllOrder(new Page<Object>(pageSize, countSize), orderCode, name, type, time); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("total", inspectionPage.getTotal()); |
| | | map.put("row", inspectionPage.getRecords()); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | @ApiOperation("编制") |
| | | @ApiImplicitParams(value = { |
| | | @ApiImplicitParam(name = "id", value = "销售产品id", dataTypeClass = Integer.class,required = true) |
| | | }) |
| | | @PostMapping("/compile") |
| | | public Result compile(Integer id) { |
| | | //未完待续...... |
| | | return Result.success(); |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | @ApiImplicitParam(name = "specifications", value = "产品型号", dataTypeClass = String.class), |
| | | @ApiImplicitParam(name = "time", value = "入库日期", dataTypeClass = String.class), |
| | | @ApiImplicitParam(name = "type", value = "类型(为空=全部)", dataTypeClass = Integer.class), |
| | | @ApiImplicitParam(name = "checkState", value = "检验状态(为空=全部)", dataTypeClass = Integer.class) |
| | | @ApiImplicitParam(name = "result", value = "检验结果(为空=全部)", dataTypeClass = Integer.class) |
| | | }) |
| | | @GetMapping("/selectAllRepertory") |
| | | public Result selectAllRepertory(int pageSize, int countSize, String name, String specifications, String time, Integer type,Integer checkState) { |
| | | IPage<Map<String, Object>> repertoryPage = repertoryService.selectAllRepertory(new Page<Object>(pageSize, countSize), name, specifications, time, type,checkState); |
| | | public Result selectAllRepertory(int pageSize, int countSize, String name, String specifications, String time, Integer type,Integer result) { |
| | | IPage<Map<String, Object>> repertoryPage = repertoryService.selectAllRepertory(new Page<Object>(pageSize, countSize), name, specifications, time, type,result); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("total", repertoryPage.getTotal()); |
| | | map.put("row", repertoryPage.getRecords()); |
| | |
| | | return Result.success(map); |
| | | } |
| | | |
| | | @ApiOperation(value = "新增销售单-->添加产品-->查询成品库存已检验的产品") |
| | | @PostMapping("/seleRepe") |
| | | public Result seleRepe() { |
| | | return Result.success(repertoryService.getSale()); |
| | | } |
| | | |
| | | @ApiOperation(value = "新增销售单") |
| | | @PostMapping("/addSale") |
| | | public Result addSale(@RequestHeader("token") String token,@Validated @RequestBody SaleDto saleDto) throws Exception { |
| | |
| | | public interface RepertoryMapper extends BaseMapper<Repertory> { |
| | | |
| | | //查询所有库存列表 |
| | | IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type,Integer checkState); |
| | | |
| | | //查询库存三个字段给添加销售单 |
| | | List<Map<String, Object>> getSale(); |
| | | IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type,Integer result); |
| | | |
| | | } |
| | | |
| | |
| | | IPage<Map<String, Object>> selectSaleList(Page<Object> page, String orderNumber, String name, Integer type, String delTime); |
| | | |
| | | //查询订单bom列表 |
| | | IPage<Map<String, Object>> selectAllOrder(Page<Object> page, String orderCode, String name, Integer state, String time); |
| | | IPage<Map<String, Object>> selectAllOrder(Page<Object> page, String orderCode, String name, Integer type, String time); |
| | | } |
| | |
| | | private String orderCode; |
| | | |
| | | /** |
| | | * 材料编码 |
| | | * 质量追溯号 |
| | | **/ |
| | | private String code; |
| | | private String qualityTraceability; |
| | | |
| | | /** |
| | | * 材料名称 |
| | |
| | | private String orderCode; |
| | | |
| | | /** |
| | | * 材料编码 |
| | | * 质量追溯号 |
| | | **/ |
| | | private String code; |
| | | private String qualityTraceability; |
| | | |
| | | /** |
| | | * 材料名称 |
| | |
| | | private String orderCode; |
| | | |
| | | /** |
| | | * 产品编码 |
| | | * 质量追溯号 |
| | | **/ |
| | | private String code; |
| | | private String qualityTraceability; |
| | | |
| | | /** |
| | | * 产品名称 |
| | |
| | | private String unit; |
| | | |
| | | /** |
| | | * 数量 |
| | | * 实际数量 |
| | | **/ |
| | | private Integer number; |
| | | |
| | |
| | | @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
| | | private Date createTime; |
| | | |
| | | /** |
| | | * ${column.comment} |
| | | **/ |
| | | @TableField(fill = FieldFill.INSERT_UPDATE) |
| | | @DateTimeFormat(pattern = "yyyy-MM-dd") |
| | | @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
| | |
| | | private Integer type; |
| | | |
| | | /** |
| | | *检验状态0:未检验;1:已检验 |
| | | * 检验结果0:不合格;1:合格(成品库存该字段为空) |
| | | **/ |
| | | private Integer checkState; |
| | | private Integer checkResult; |
| | | |
| | | } |
| | | |
| | |
| | | @ApiModelProperty(value = "状态 0:不通过;1:通过") |
| | | private Integer type; |
| | | |
| | | @ApiModelProperty(value = "编制状态0:待编制;1已编制;2:无编制 通过就是已编制,不通过就是无编制") |
| | | private Integer bianzhiState; |
| | | |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value = "销售单id") |
| | | private Integer saleId; |
| | | |
| | | @ApiModelProperty(value = "编制状态0:待编制;1已编制;") |
| | | private Integer type; |
| | | |
| | | |
| | | } |
| | |
| | | private String phone ; |
| | | |
| | | //产品信息 |
| | | @NotBlank(message = "产品信息不能为空") |
| | | @JsonSerialize |
| | | private List<ConsignmentDto2> messages; |
| | | |
| | |
| | | import lombok.Data; |
| | | import lombok.NoArgsConstructor; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | |
| | | @Data |
| | | @NoArgsConstructor |
| | | public class ConsignmentDto2 { |
| | | |
| | | //产品信息 |
| | | @NotBlank(message = "产品信息不能为空") |
| | | @JsonSerialize |
| | | private String name; |
| | | |
| | | //规格型号 |
| | | @NotBlank(message = "规格型号不能为空") |
| | | @JsonSerialize |
| | | private String specifications; |
| | | |
| | | //单位 |
| | | @NotBlank(message = "单位不能为空") |
| | | @JsonSerialize |
| | | private String unit; |
| | | |
| | | //发货数量 |
| | | @NotBlank(message = "发货数量不能为空") |
| | | @JsonSerialize |
| | | private Integer number; |
| | | } |
| | |
| | | private String orderCode; |
| | | |
| | | /** |
| | | * 材料编码 |
| | | * 质量追溯号 |
| | | **/ |
| | | @NotBlank(message = "材料编码不能为空") |
| | | @NotBlank(message = "质量追溯号不能为空") |
| | | @JsonSerialize |
| | | private String code; |
| | | private String qualityTraceability; |
| | | |
| | | /** |
| | | * 材料名称 |
| | |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.NotNull; |
| | | import java.time.LocalDate; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | private String orderName; |
| | | |
| | | //交货日期 |
| | | @NotBlank(message = "交货日期不能为空") |
| | | @NotNull(message = "交货日期不能为空") |
| | | @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
| | | private Date delTime; |
| | | |
| | | //产品信息 |
| | | @NotBlank(message = "产品信息不能为空") |
| | | @JsonSerialize |
| | | private List<SaleMaterialDto> saleMaterialList; |
| | | } |
| | |
| | | import com.fasterxml.jackson.databind.annotation.JsonSerialize; |
| | | import lombok.Data; |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | |
| | | @Data |
| | | @JsonSerialize |
| | | //新增产品信息参数 |
| | | public class SaleMaterialDto { |
| | | |
| | | //产品名称 |
| | | @NotBlank(message = "产品名称不能为空") |
| | | @JsonSerialize |
| | | private String name; |
| | | |
| | | //规格型号 |
| | | @NotBlank(message = "规格型号不能为空") |
| | | @JsonSerialize |
| | | private String specifications; |
| | | |
| | | //单位 |
| | | @NotBlank(message = "单位不能为空") |
| | | @JsonSerialize |
| | | private String unit; |
| | | |
| | | //数量 |
| | | @NotBlank(message = "数量不能为空") |
| | | @JsonSerialize |
| | | private Integer number; |
| | | |
| | | //单价 |
| | | @NotBlank(message = "单价不能为空") |
| | | @JsonSerialize |
| | | private String price; |
| | | } |
| | |
| | | * @param |
| | | * @return |
| | | */ |
| | | IPage<Map<String, Object>> selectAllOrder(Page<Object> page, String orderCode, String name, Integer state , String time); |
| | | IPage<Map<String, Object>> selectAllOrder(Page<Object> page, String orderCode, String name, Integer type , String time); |
| | | |
| | | |
| | | } |
| | |
| | | * @param type |
| | | * @return |
| | | */ |
| | | IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type,Integer checkState); |
| | | IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type,Integer result); |
| | | |
| | | /** |
| | | * 查询库存三个字段给添加销售单 |
| | | * @return |
| | | */ |
| | | List<Map<String,Object>> getSale(); |
| | | } |
| | | |
| | |
| | | consignmentMapper.updateById(consignment); |
| | | //库存也要新增 |
| | | LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Repertory::getCode, consignment.getCode()) |
| | | queryWrapper.eq(Repertory::getQualityTraceability, consignment.getQualityTraceability()) |
| | | .eq(Repertory::getName, consignment.getName()) |
| | | .eq(Repertory::getSpecifications, consignment.getSpecifications()) |
| | | .eq(Repertory::getUnit, consignment.getUnit()) |
| | | .eq(Repertory::getType, 0) //成品发货 |
| | | .eq(Repertory::getCheckState, 1); //只有已检验才能发货 |
| | | .eq(Repertory::getType, 0); //成品发货 |
| | | Repertory repertory = repertoryMapper.selectOne(queryWrapper); |
| | | repertory.setNumber(repertory.getNumber() + consignment.getNumber()); |
| | | repertoryMapper.updateById(repertory); |
| | |
| | | consignmentMapper.updateById(consignment); |
| | | //库存新增 |
| | | LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Repertory::getCode, consignment.getCode()) |
| | | queryWrapper.eq(Repertory::getQualityTraceability, consignment.getQualityTraceability()) |
| | | .eq(Repertory::getName, consignment.getName()) |
| | | .eq(Repertory::getSpecifications, consignment.getSpecifications()) |
| | | .eq(Repertory::getUnit, consignment.getUnit()) |
| | | .eq(Repertory::getType, 0) //成品发货 |
| | | .eq(Repertory::getCheckState, 1); //只有已检验才能发货 |
| | | .eq(Repertory::getType, 0); //成品发货 |
| | | Repertory repertory = repertoryMapper.selectOne(queryWrapper); |
| | | repertory.setNumber(repertory.getNumber() + consignment.getNumber()); |
| | | repertoryMapper.updateById(repertory); |
| | |
| | | .eq(Repertory::getUnit, message.getUnit()) |
| | | .eq(Repertory::getType, 0); |
| | | Repertory repertory = repertoryMapper.selectOne(queryWrapper); |
| | | //该成品的检验状态是已检验1才能进行发货 |
| | | if (repertory.getCheckState() != 1) { |
| | | return "该产品还未检验,不能发货!"; |
| | | } |
| | | //该成品库存的数量大于等于发货的数量才能进行发货 |
| | | if (repertory.getNumber() < message.getNumber()) { |
| | | return "库存不足,无法发货!"; |
| | |
| | | .specifications(message.getSpecifications()) |
| | | .unit(message.getUnit()) |
| | | .number(message.getNumber()) |
| | | .code(repertory.getCode()) |
| | | .qualityTraceability(repertory.getQualityTraceability()) |
| | | .build(); |
| | | consignmentMapper.insert(consig); |
| | | /*减少对应的库存*/ |
| | |
| | | //如果入库的信息一样只有库存不一样,则在原来的库存数量上加上相应的数量 |
| | | LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Repertory::getOrderCode, importRepertoryDto.getOrderCode()) |
| | | .eq(Repertory::getCode, importRepertoryDto.getCode()) |
| | | .eq(Repertory::getQualityTraceability, importRepertoryDto.getQualityTraceability()) |
| | | .eq(Repertory::getName, importRepertoryDto.getName()) |
| | | .eq(Repertory::getSpecifications, importRepertoryDto.getSpecifications()) |
| | | .eq(Repertory::getUnit, importRepertoryDto.getUnit()) |
| | | .eq(Repertory::getType, 0); |
| | | Repertory rep = repertoryMapper.selectOne(queryWrapper); |
| | | if (rep != null && rep.getCheckState() == 0) { |
| | | if (rep != null ) { |
| | | rep.setNumber(rep.getNumber() + importRepertoryDto.getNumber()); |
| | | rep.setUserName(name); |
| | | repertoryMapper.updateById(rep); |
| | |
| | | BeanUtils.copyProperties(importRepertoryDto, repertory); |
| | | repertory.setUserName(name); |
| | | repertory.setType(0); |
| | | repertory.setCheckState(0); |
| | | repertoryMapper.insert(repertory); |
| | | } |
| | | } |
| | |
| | | //库存也要减少 |
| | | LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Repertory::getOrderCode, importRepertory.getOrderCode()) |
| | | .eq(Repertory::getCode, importRepertory.getCode()) |
| | | .eq(Repertory::getQualityTraceability, importRepertory.getQualityTraceability()) |
| | | .eq(Repertory::getName, importRepertory.getName()) |
| | | .eq(Repertory::getSpecifications, importRepertory.getSpecifications()) |
| | | .eq(Repertory::getUnit, importRepertory.getUnit()) |
| | | .eq(Repertory::getType, 0) |
| | | .eq(Repertory::getCheckState, 0); |
| | | .eq(Repertory::getType, 0); |
| | | Repertory rep = repertoryMapper.selectOne(queryWrapper); |
| | | rep.setNumber(rep.getNumber() - importRepertory.getNumber()); |
| | | repertoryMapper.updateById(rep); |
| | |
| | | //减少库存 |
| | | LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Repertory::getOrderCode, importRepertory.getOrderCode()) |
| | | .eq(Repertory::getCode, importRepertory.getCode()) |
| | | .eq(Repertory::getQualityTraceability, importRepertory.getQualityTraceability()) |
| | | .eq(Repertory::getName, importRepertory.getName()) |
| | | .eq(Repertory::getSpecifications, importRepertory.getSpecifications()) |
| | | .eq(Repertory::getUnit, importRepertory.getUnit()) |
| | | .eq(Repertory::getType, 0) |
| | | .eq(Repertory::getCheckState, 0); |
| | | .eq(Repertory::getType, 0); |
| | | Repertory rep = repertoryMapper.selectOne(queryWrapper); |
| | | rep.setNumber(rep.getNumber() - importRepertory.getNumber()); |
| | | repertoryMapper.updateById(rep); |
| | |
| | | |
| | | //查询所有订单列表 |
| | | @Override |
| | | public IPage<Map<String, Object>> selectAllOrder(Page<Object> page, String orderCode, String name, Integer state , String time) { |
| | | return saleMapper.selectAllOrder(page, orderCode,name,state, time); |
| | | public IPage<Map<String, Object>> selectAllOrder(Page<Object> page, String orderCode, String name, Integer type , String time) { |
| | | return saleMapper.selectAllOrder(page, orderCode,name,type, time); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | //查询所有库存列表 |
| | | @Override |
| | | public IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type,Integer checkState) { |
| | | return repertoryMapper.selectAllRepertory(page,name,specifications,time,type,checkState); |
| | | } |
| | | |
| | | //查询库存三个字段给添加销售单 |
| | | @Override |
| | | public List<Map<String, Object>> getSale() { |
| | | return repertoryMapper.getSale(); |
| | | public IPage<Map<String, Object>> selectAllRepertory(Page<Object> page, String name, String specifications, String time, Integer type,Integer result) { |
| | | return repertoryMapper.selectAllRepertory(page,name,specifications,time,type,result); |
| | | } |
| | | } |
| | | |
| | |
| | | sale.setType(type); |
| | | sale.setCheckname(checkname); |
| | | sale.setCheckTime(new Date()); |
| | | if (type == 1) { |
| | | //如果审核通过 |
| | | sale.setBianzhiState(1); |
| | | } else { |
| | | //如果审核不通过 |
| | | sale.setBianzhiState(2);//无编制 |
| | | } |
| | | saleMapper.updateById(sale); |
| | | //审核通过的销售单将销售单中的产品的状态改为待编制0 |
| | | List<SaleMaterial> saleMaterials = saleMaterialMapper.selectList(Wrappers.<SaleMaterial>query() |
| | | .eq("sale_id", id) |
| | | .eq("state", 1)); |
| | | if (type == 1) { |
| | | for (SaleMaterial saleMaterial : saleMaterials) { |
| | | saleMaterial.setType(0); |
| | | saleMaterialMapper.updateById(saleMaterial); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //根据订单号查询销售信息 |
| | |
| | | select id, |
| | | name, |
| | | specifications, |
| | | code, |
| | | quality_traceability, |
| | | customer_code, |
| | | unit, |
| | | number, |
| | |
| | | <select id="selectAllImpRep" resultType="java.util.Map"> |
| | | select id, |
| | | order_code, |
| | | code, |
| | | quality_traceability, |
| | | name, |
| | | specifications, |
| | | unit, |
| | |
| | | select id, |
| | | name, |
| | | specifications, |
| | | code, |
| | | check_state, |
| | | quality_traceability, |
| | | check_result, |
| | | user_name, |
| | | DATE_FORMAT(create_time, '%Y-%m-%d') '入库日期', |
| | | note |
| | |
| | | <if test="type!=null "> |
| | | and type=#{type} |
| | | </if> |
| | | <if test="checkState!=null "> |
| | | and check_state=#{checkState} |
| | | <if test="result!=null "> |
| | | and check_result=#{result} |
| | | </if> |
| | | order by id desc |
| | | </where> |
| | | </select> |
| | | <!--查询库存三个字段给添加销售单--> |
| | | <select id="getSale" resultType="java.util.Map"> |
| | | select id, name, specifications, unit |
| | | from mom_ocean.repertory |
| | | where state = 1 |
| | | and check_state = 1 |
| | | and type = 0 |
| | | </select> |
| | | </mapper> |
| | |
| | | |
| | | <!--查询订单BOM列表--> |
| | | <select id="selectAllOrder" resultType="java.util.Map"> |
| | | select s.id , |
| | | select sm.id, |
| | | order_number, |
| | | saleman, |
| | | proname, |
| | |
| | | number, |
| | | DATE_FORMAT(s.create_time, '%Y-%m-%d') '下单日期', |
| | | DATE_FORMAT(delTime, '%Y-%m-%d') '交货日期', |
| | | bianzhi_state |
| | | sm.type |
| | | from mom_ocean.sale s ,mom_ocean.sale_material sm |
| | | where s.id=sm.sale_id |
| | | and s.state=1 |
| | | and bianzhi_state!=2 |
| | | and s.type=1 |
| | | <if test="orderCode!=null and orderCode!=''"> |
| | | and order_number like concat('%',#{orderCode},'%') |
| | | </if> |
| | | <if test="name!=null and name!=''"> |
| | | and sm.name like concat('%',#{name},'%') |
| | | </if> |
| | | <if test="state!=null "> |
| | | and bianzhi_state=#{state} |
| | | <if test="type!=null "> |
| | | and sm.type=#{type} |
| | | </if> |
| | | <if test="time!=null and time!=''"> |
| | | and s.create_time=#{time} |
| | | </if> |
| | | order by delTime |
| | | |
| | | </select> |
| | | </mapper> |
| | |
| | | # redis访问密码(默认为空) |
| | | password: null |
| | | # redis连接超时时间(单位毫秒) |
| | | timeout: 10 |
| | | timeout: 50 |
| | | # redis连接池配置 |
| | | pool: |
| | | # 最大可用连接数(默认为8,负数表示无限) |
| | | max-active: 8 |
| | | max-active: 20 |
| | | # 最大空闲连接数(默认为8,负数表示无限) |
| | | max-idle: 8 |
| | | # 最小空闲连接数(默认为0,该值只有为正数才有用) |