diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/StockingIvtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/StockingIvtServiceImpl.java index 4e669c5..ca72816 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/StockingIvtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/service/impl/StockingIvtServiceImpl.java @@ -35,7 +35,9 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; /** * @Author: zds @@ -227,6 +229,12 @@ public class StockingIvtServiceImpl implements StockingIvtService { if(material_qty>=now.getTotal_num()){ material_qty = material_qty - now.getTotal_num(); now.setSign_num(now.getTotal_num()); + }else{ + material_qty = material_qty - now.getTotal_num(); + if(material_qty<=0){ + material_qty = 0; + } + now.setSign_num(material_qty); } newList.add(now); } @@ -238,45 +246,50 @@ public class StockingIvtServiceImpl implements StockingIvtService { } @Override - public JSONObject moveStock(JSONObject jo) { + public JSONObject moveStock(JSONObject form) { // param: point_code vehicle_code - log.info("手持管芯备货的数据:{}", jo); - if (ObjectUtil.isEmpty(jo)) { + + JSONArray rows = form.getJSONArray("rows"); + log.info("手持管芯备货的数据:{}", rows); + if (ObjectUtil.isEmpty(rows)) { throw new BadRequestException("数据不能为空,请选择一条记录后再操作!"); } - String pointCode = jo.getString("point_code"); - String vehicleCode = jo.getString("vehicle_code"); + for(int i=0;i list = stockingivtService.getEmptyPointNotTask("3"); + if (list.size() >= 2) { + throw new BadRequestException("备货区无空闲点位!"); + } + BstIvtStockingivt endPoint = list.get(0); + JSONObject param = new JSONObject(); + param.put("point_code1", pointByCode.getPoint_code()); + param.put("point_code2", endPoint.getPoint_code()); + param.put("vehicle_code", vehicleCode); + param.put("task_type", SlitterEnum.TASK_TYPE.code("管芯备货任务")); + param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + instorStockAgvTask.createTask(param); } - if (ObjectUtil.isEmpty(vehicleCode)) { - throw new BadRequestException("托盘信息不能为空!"); - } - //点位类型必须为入库点,point_type = 1 - String point_type = pointByCode.getPoint_type(); - if (!point_type.equals("1")) { - throw new BadRequestException("请选择管芯库点位!"); - } - //判断是否已经下发了任务 - JSONObject task1 = isSingleTask(pointCode); - if ( ObjectUtil.isNotEmpty(task1)) { - throw new BadRequestException("点位:" + pointCode + "存在未完成的任务:"+task1.getString("task_code")); - } - //生成管芯入库agv任务,两个点 - List list = stockingivtService.getEmptyPointNotTask("3"); - if (list.size() >= 2) { - throw new BadRequestException("备货区无空闲点位!"); - } - BstIvtStockingivt endPoint = list.get(0); - JSONObject param = new JSONObject(); - param.put("point_code1", pointByCode.getPoint_code()); - param.put("point_code2", endPoint.getPoint_code()); - param.put("vehicle_code", vehicleCode); - param.put("task_type", SlitterEnum.TASK_TYPE.code("管芯备货任务")); - param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - instorStockAgvTask.createTask(param); JSONObject res = new JSONObject(); res.put("status", HttpStatus.HTTP_OK); @@ -311,133 +324,154 @@ public class StockingIvtServiceImpl implements StockingIvtService { @Override @Transactional(rollbackFor = Exception.class) - public JSONObject operateIvt(JSONObject jsonObject) { - log.info("手持操作管芯托盘 - {}", jsonObject); - //载具托盘号 - String vehicle_code = jsonObject.getString("vehicle_code"); - //排 - String row_num = jsonObject.getString("row_num"); - //列 - String col_num = jsonObject.getString("col_num"); - //管芯/纸管编码 - String paper_code = jsonObject.getString("paper_code"); - - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); + public JSONObject operateIvt(JSONObject form) { + log.info("手持操作管芯托盘 - {}", form); + JSONArray rows = form.getJSONArray("rows"); + if (ObjectUtil.isEmpty(rows)) { + throw new BadRequestException("数据不能为空,请选择一条记录后再操作!"); + } + //1-绑定;2-清除 + String type = form.getString("type"); + //最多只能操作同托盘同排的5条记录 + String vehicle_code = rows.getJSONObject(0).getString("vehicle_code"); + String row_num = rows.getJSONObject(0).getString("row_num"); if (ObjectUtil.isEmpty(row_num)) { throw new BadRequestException("排数不能为空!"); } - if (ObjectUtil.isEmpty(col_num)) { - throw new BadRequestException("列数不能为空!"); - } if (ObjectUtil.isEmpty(vehicle_code)) { throw new BadRequestException("托盘信息不能为空!"); } if(!vehicle_code.contains("GX")){ throw new BadRequestException("请扫描或输入正确的托盘码!"); } - //1-绑定;2-清除 - String type = jsonObject.getString("type"); - if (type.equals("1")) { - if (ObjectUtil.isEmpty(paper_code)) { - throw new BadRequestException("管芯/纸管编码不能为空!"); + Set row_cols = new HashSet<>(); + Set paperSet = new HashSet<>(); + for(int i=0;i lam = new LambdaQueryWrapper<>(); - lam.eq( ObjectUtil.isNotEmpty(paper_code),MdPbPaper::getPaper_code,paper_code); - MdPbPaper paper = mdPbPaperMapper.selectOne(lam); - if(ObjectUtil.isEmpty(paper)){ - throw new BadRequestException("管芯编码:"+paper_code+"不存在!"); + if(!row_num.equals(jsonObject.getString("row_num"))){ + throw new BadRequestException("只能操作同托盘号同排的管芯,排号:"+jsonObject.getString("row_num")); } - //物料 - String material_code = paper.getMaterial_code(); - String material_name = paper.getMaterial_name(); - //查询当前载具和排列是否存在库存 - MdPbPapervehicle papervehicle = papervehicleService.getOne(new LambdaQueryWrapper() - .eq(MdPbPapervehicle::getVehicle_code, vehicle_code) - .eq(MdPbPapervehicle::getRow_num, row_num) - .eq(MdPbPapervehicle::getCol_num, col_num)); - if (ObjectUtil.isNotEmpty(papervehicle) && !papervehicle.getMaterial_code().equals(material_code)) { - throw new BadRequestException("当前排-列已有物料为【" + papervehicle.getMaterial_code() + "】,如需要修改请先清除库存,再进行绑定!"); + //列 + String col_num = jsonObject.getString("col_num"); + if(row_cols.contains(row_num+"-"+col_num)){ + throw new BadRequestException("排号:"+row_num+",列号:"+col_num+"存在重复记录!"); } - //查询当前物料是否和之前排同类型物料,不一致提示报错 - List papers = papervehicleService.list(new LambdaQueryWrapper() - .eq(MdPbPapervehicle::getVehicle_code, vehicle_code) - .eq(MdPbPapervehicle::getRow_num, row_num)); - if(papers.size()>0){ - if(! StrUtil.equals(papers.get(0).getMaterial_code(), material_code)){ - throw new BadRequestException("当前排已有物料为【" + papers.get(0).getMaterial_code() + "】,不允许添加其他类型物料!"); + row_cols.add(row_num+"-"+col_num); + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + if (ObjectUtil.isEmpty(col_num)) { + throw new BadRequestException("列数不能为空!"); + } + if (type.equals("1")) { + //管芯/纸管编码 + String paper_code = jsonObject.getString("paper_code"); + if(paperSet.contains(paper_code)){ + throw new BadRequestException("管芯编码:"+paper_code+"存在重复记录!"); } - } - //查询当前管芯编码是否在托盘中 - MdPbPapervehicle papervehicle_flag = papervehicleService.getOne(new LambdaQueryWrapper() - .eq(MdPbPapervehicle::getPaper_code, paper_code)); - if (ObjectUtil.isNotEmpty(papervehicle_flag)) { - throw new BadRequestException("当前管芯编码已存在托盘上:" + papervehicle_flag.getVehicle_code() + ",位置排列:"+papervehicle_flag.getRow_num()+"-"+papervehicle_flag.getCol_num()); - } - //获取当前纸管的高度 - // 解析描述数组 - String[] tubeArray = material_name.replaceAll("\\|[\\u4e00-\\u9fa5]+$", "").split("\\|"); - - int currLength = Integer.parseInt(tubeArray[tubeArray.length - 1]); - - //校验高度差要大于50MM,否则不允许进行绑定 - int num = Integer.parseInt(row_num); - if (num > 0) { - //判断后一排的纸管高度 - int nextNum = num + 1; - List nextPaper = papervehicleService.list(new LambdaQueryWrapper().eq(MdPbPapervehicle::getVehicle_code, vehicle_code) - .eq(MdPbPapervehicle::getRow_num, nextNum)); - if (nextPaper.size()>0) { - //获取后一排的纸管高度和纸管类型 - String nextMaterialName = nextPaper.get(0).getMaterial_name(); - String[] nextArray = nextMaterialName.replaceAll("\\|[\\u4e00-\\u9fa5]+$", "").split("\\|"); - int nextLength = Integer.parseInt(nextArray[nextArray.length - 1]); - if (Math.abs(nextLength - currLength) <= 50 && !material_code.equals(nextPaper.get(0).getMaterial_code())) { - throw new BadRequestException("相邻排的纸管高度差要大于等于50MM!"); + paperSet.add(paper_code); + if (ObjectUtil.isEmpty(paper_code)) { + throw new BadRequestException("管芯/纸管编码不能为空!"); + } + //查询管芯记录 + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.eq( ObjectUtil.isNotEmpty(paper_code),MdPbPaper::getPaper_code,paper_code); + MdPbPaper paper = mdPbPaperMapper.selectOne(lam); + if(ObjectUtil.isEmpty(paper)){ + throw new BadRequestException("管芯编码:"+paper_code+"不存在!"); + } + //物料 + String material_code = paper.getMaterial_code(); + String material_name = paper.getMaterial_name(); + //查询当前载具和排列是否存在库存 + MdPbPapervehicle papervehicle = papervehicleService.getOne(new LambdaQueryWrapper() + .eq(MdPbPapervehicle::getVehicle_code, vehicle_code) + .eq(MdPbPapervehicle::getRow_num, row_num) + .eq(MdPbPapervehicle::getCol_num, col_num)); + if (ObjectUtil.isNotEmpty(papervehicle) && !papervehicle.getMaterial_code().equals(material_code)) { + throw new BadRequestException("当前排-列已有物料为【" + papervehicle.getMaterial_code() + "】,如需要修改请先清除库存,再进行绑定!"); + } + //查询当前物料是否和之前排同类型物料,不一致提示报错 + List papers = papervehicleService.list(new LambdaQueryWrapper() + .eq(MdPbPapervehicle::getVehicle_code, vehicle_code) + .eq(MdPbPapervehicle::getRow_num, row_num)); + if(papers.size()>0){ + if(! StrUtil.equals(papers.get(0).getMaterial_code(), material_code)){ + throw new BadRequestException("当前排已有物料为【" + papers.get(0).getMaterial_code() + "】,不允许添加其他类型物料!"); } } - //判断前一排的纸管高度 - int preNum = num - 1; - List prePaper = papervehicleService.list(new LambdaQueryWrapper().eq(MdPbPapervehicle::getVehicle_code, vehicle_code) - .eq(MdPbPapervehicle::getRow_num, preNum)); - if (ObjectUtil.isNotEmpty(prePaper)) { - //获取后一排的纸管高度和纸管类型 - String preMaterialName = prePaper.get(0).getMaterial_name(); - String[] preArray = preMaterialName.replaceAll("\\|[\\u4e00-\\u9fa5]+$", "").split("\\|"); - int preLength = Integer.parseInt(preArray[preArray.length - 1]); - if (Math.abs(preLength - currLength) <= 50 && !material_code.equals(prePaper.get(0).getMaterial_code())) { - throw new BadRequestException("相邻排的纸管高度差要大于等于50MM!"); + //查询当前管芯编码是否在托盘中 + MdPbPapervehicle papervehicle_flag = papervehicleService.getOne(new LambdaQueryWrapper() + .eq(MdPbPapervehicle::getPaper_code, paper_code)); + if (ObjectUtil.isNotEmpty(papervehicle_flag)) { + throw new BadRequestException("当前管芯编码已存在托盘上:" + papervehicle_flag.getVehicle_code() + ",位置排列:"+papervehicle_flag.getRow_num()+"-"+papervehicle_flag.getCol_num()); + } + //获取当前纸管的高度 + // 解析描述数组 + String[] tubeArray = material_name.replaceAll("\\|[\\u4e00-\\u9fa5]+$", "").split("\\|"); + + int currLength = Integer.parseInt(tubeArray[tubeArray.length - 1]); + + //校验高度差要大于50MM,否则不允许进行绑定 + int num = Integer.parseInt(row_num); + if (num > 0) { + //判断后一排的纸管高度 + int nextNum = num + 1; + List nextPaper = papervehicleService.list(new LambdaQueryWrapper().eq(MdPbPapervehicle::getVehicle_code, vehicle_code) + .eq(MdPbPapervehicle::getRow_num, nextNum)); + if (nextPaper.size()>0) { + //获取后一排的纸管高度和纸管类型 + String nextMaterialName = nextPaper.get(0).getMaterial_name(); + String[] nextArray = nextMaterialName.replaceAll("\\|[\\u4e00-\\u9fa5]+$", "").split("\\|"); + int nextLength = Integer.parseInt(nextArray[nextArray.length - 1]); + if (Math.abs(nextLength - currLength) <= 50 && !material_code.equals(nextPaper.get(0).getMaterial_code())) { + throw new BadRequestException("相邻排的纸管高度差要大于等于50MM!"); + } + } + //判断前一排的纸管高度 + int preNum = num - 1; + List prePaper = papervehicleService.list(new LambdaQueryWrapper().eq(MdPbPapervehicle::getVehicle_code, vehicle_code) + .eq(MdPbPapervehicle::getRow_num, preNum)); + if (ObjectUtil.isNotEmpty(prePaper)) { + //获取后一排的纸管高度和纸管类型 + String preMaterialName = prePaper.get(0).getMaterial_name(); + String[] preArray = preMaterialName.replaceAll("\\|[\\u4e00-\\u9fa5]+$", "").split("\\|"); + int preLength = Integer.parseInt(preArray[preArray.length - 1]); + if (Math.abs(preLength - currLength) <= 50 && !material_code.equals(prePaper.get(0).getMaterial_code())) { + throw new BadRequestException("相邻排的纸管高度差要大于等于50MM!"); + } } } + if (ObjectUtil.isEmpty(papervehicle)) { + papervehicle = new MdPbPapervehicle(); + papervehicle.setIvt_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + papervehicle.setVehicle_code(vehicle_code); + papervehicle.setRow_num(row_num); + papervehicle.setCol_num(col_num); + papervehicle.setPaper_code(paper_code); + papervehicle.setMaterial_code(material_code); + papervehicle.setMaterial_name(material_name); + papervehicle.setQty(1); + papervehicle.setUpdate_optid(currentUserId); + papervehicle.setUpdate_optname(nickName); + papervehicle.setUpdate_time(now); + papervehicleService.save(papervehicle); + } + }else if (type.equals("2")) { + //清除管芯托盘库存 + papervehicleService.remove(new LambdaQueryWrapper().eq(MdPbPapervehicle::getVehicle_code, vehicle_code) + .eq(MdPbPapervehicle::getRow_num, row_num) + .eq(MdPbPapervehicle::getCol_num, col_num)); } - if (ObjectUtil.isEmpty(papervehicle)) { - papervehicle = new MdPbPapervehicle(); - papervehicle.setIvt_id(IdUtil.getSnowflake(1, 1).nextIdStr()); - papervehicle.setVehicle_code(vehicle_code); - papervehicle.setRow_num(row_num); - papervehicle.setCol_num(col_num); - papervehicle.setPaper_code(paper_code); - papervehicle.setMaterial_code(material_code); - papervehicle.setMaterial_name(material_name); - papervehicle.setQty(1); - papervehicle.setUpdate_optid(currentUserId); - papervehicle.setUpdate_optname(nickName); - papervehicle.setUpdate_time(now); - papervehicleService.save(papervehicle); - } - }else if (type.equals("2")) { - //清除管芯托盘库存 - papervehicleService.remove(new LambdaQueryWrapper().eq(MdPbPapervehicle::getVehicle_code, vehicle_code) - .eq(MdPbPapervehicle::getRow_num, row_num) - .eq(MdPbPapervehicle::getCol_num, col_num)); } //判断绑定的纸管是否在机械手范围内,如果存在的话把最新库存推送给电气 - BstIvtStockingivt bstIvtStockingivt = bstIvtStockingivtMapper.selectOne(new LambdaQueryWrapper().eq(BstIvtStockingivt::getVehicle_code, vehicle_code)); + BstIvtStockingivt bstIvtStockingivt = bstIvtStockingivtMapper.selectOne(new LambdaQueryWrapper().eq(BstIvtStockingivt::getVehicle_code, rows.getJSONObject(0).getString("vehicle_code"))); if (bstIvtStockingivt != null && bstIvtStockingivt.getPoint_type().equals("1")) { - List list = papervehicleService.list(new LambdaQueryWrapper().eq(MdPbPapervehicle::getVehicle_code, vehicle_code)); + List list = papervehicleService.list(new LambdaQueryWrapper().eq(MdPbPapervehicle::getVehicle_code, rows.getJSONObject(0).getString("vehicle_code"))); JSONObject jo = new JSONObject(); SlitterTaskUtil.doSavePaperInfos(list, jo); jo.put("product_area", bstIvtStockingivt.getProduct_area()); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java index 3ad5770..a5a30c7 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutTask.java @@ -202,6 +202,7 @@ public class TwoOutTask extends AbstractAcsTask { jsonParam.put("vehicle_code",jsonTask.getString("vehicle_code")); jsonParam.put("task_group_id",jsonTask.getString("task_group_id")); jsonParam.put("vehicle_type",jsonTask.getJSONObject("request_param").getString("containerType")); + jsonParam.put("bill_type",jsonTask.getJSONObject("request_param").getString("bill_type")); LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class); bean1.createHeapTask(jsonParam); // 判断此任务组是否全部完成 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java index 6de79e0..3883f84 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/enums/IOSEnum.java @@ -43,7 +43,7 @@ public enum IOSEnum { //出库单据类型 OUT_TYPE(MapOf.of("发货出库", "1001", "改切出库", "1003", "调拨出库", "1004", "拆箱出库", "1005", "返检出库", "1006", "超期报废", "1007", "退货报废", "1008", "质量问题报废", "1010", "其他报废", "1002", - "手工出库", "1009","管控出库", "1099" + "手工出库", "1009","转单出库", "1020","贴标出库", "1021","管控出库", "1099" )), //移库单据类型 @@ -101,10 +101,10 @@ public enum IOSEnum { // 出库堆垛机点位 OUT_POINT(MapOf.of("1","CK2038", "2","CK2038", "3","CK2042", "4","CK2042" ,"5","CK2046", - "6","CK2046", "7","7", "8","8", "9","9", "10","10")), + "6","CK2046", "7","7", "8","8", "9","9", "10","10","1020","CK1020")), // 出库堆垛机点位 OUT_POINT2(MapOf.of("1","CK2037", "2","CK2037", "3","CK2041", "4","CK2041" ,"5","CK2045", - "6","CK2045", "7","7", "8","8", "9","9", "10","10")), + "6","CK2045", "7","7", "8","8", "9","9", "10","10","1020","CK1020")), // 出库发货等待点 OUT_FH_POINT(MapOf.of("1","B_FH01_0", "2","B_FH02_0", "3","B_FH03_0", "4","B_FH04_0" ,"5","B_FH05_0", "6","B_FH06_0")), @@ -123,6 +123,8 @@ public enum IOSEnum { // 异常出库口 EXCEP_OUT(MapOf.of("异常出库口", "CK2001")), + // 换标出库口 + CHANGE_OUT(MapOf.of("换标出库口", "CK1020")), // 下发acs任务类型(明细) ACS_TYPE(MapOf.of("木箱入库行架任务", "12","装箱入库行架任务", "13", diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java index 7c6fdf0..681c902 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java @@ -1877,7 +1877,9 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl jsonList = pointTab.query("region_code = 'BLKCK' AND is_used = '1'") diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java index d5aa56a..3958849 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java @@ -8,6 +8,8 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; +import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvOutService; import org.nl.common.utils.CodeUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; @@ -17,6 +19,7 @@ import org.nl.wms.st.instor.service.RecutPlanService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @@ -27,7 +30,8 @@ public class SapToLmsServiceImpl implements SapToLmsService { private final RecutPlanService recutPlanService; - + @Resource + private IStIvtIostorinvOutService iStIvtIostorinvOutService; @Override public JSONObject getReCutInfo(JSONObject json) { log.info("getReCutInfo的输入参数为:------------------------" + json.toString()); @@ -160,184 +164,6 @@ public class SapToLmsServiceImpl implements SapToLmsService { return result; } - /** - * 转单指令在MES平台查看后,更新信息,发送LMS(是否拆包、更新后的入库日期、是否更换外包装箱标签),LMS重打子卷标签、包装箱外标签 - * - * @param param - * @return - */ - @Override - @Transactional(rollbackFor = Exception.class) - public JSONObject inventoryTransferInfoSync(JSONObject param) { - /** - * { - * "SaleOrderItem": "销售订单号-行号", - * "CustomerName": "客户编码", - * "DemandDate": "销售订单行交货日期", - * "item": [ - * { - * "SaleOrderItem": "销售订单号-行号", - * "PackageBoxSN": "包装箱号", - * "isRePrintPackageBoxLabel": "是否需要重打外包装标签", - * "isUnPackBox": "是否需要拆包重打子卷标签", - * "UpdatedDateOfProduction": "更改后的制造完成日期" - * }, - * { - * "SaleOrderItem": "销售订单号-行号", - * "PackageBoxSN": "包装箱号", - * "isRePrintPackageBoxLabel": "是否需要重打外包装标签", - * "isUnPackBox": "是否需要拆包重打子卷标签", - * "UpdatedDateOfProduction": "更改后的制造完成日期" - * } - * ] - * } - */ - log.info("inventoryTransferInfoSync接口输入参数为:-------------------" + param.toString()); - JSONObject result = new JSONObject(); - - try { - JSONArray rows = param.getJSONArray("details"); - String SaleOrderItem = param.getString("SaleOrderItem"); - String CustomerName = param.getString("CustomerName"); - String DemandDate = param.getString("DemandDate"); - - if (ObjectUtil.isEmpty(rows) || rows.size() == 0) { - throw new BadRequestException("item长度不能为0!"); - } - - // 定义set集合储存仓库 - HashSet storSet = new HashSet<>(); - - for (int i = 0; i < rows.size(); i++) { - JSONObject json = rows.getJSONObject(i); - String PackageBoxSN = json.getString("PackageBoxSN"); - - // 查询此木箱在哪个仓库 - JSONObject jsonBox = WQLObject.getWQLObject("st_ivt_structattr") - .query("storagevehicle_code = '" + PackageBoxSN + "' and is_delete = '0' and is_used = '1' and lock_type = '1'").uniqueResult(0); - - if (ObjectUtil.isEmpty(jsonBox)) { - throw new BadRequestException("此木箱不在库内:" + PackageBoxSN); - } - storSet.add(jsonBox.getString("stor_code")); - } - - // 根据仓库生成多个库存变更单据 - for (String stor_code : storSet) { - double total_qty = 0; - double detail_count = 0; - String changeinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; - - JSONObject jsonStor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("stor_code = '" + stor_code + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonStor)) { - throw new BadRequestException("仓库不存在:" + stor_code); - } - - JSONArray rowsDtl = new JSONArray(); - - for (int i = 0; i < rows.size(); i++) { - JSONObject row = rows.getJSONObject(i); - String PackageBoxSN = row.getString("PackageBoxSN"); - - JSONObject jsonBox = WQLObject.getWQLObject("st_ivt_structattr") - .query("storagevehicle_code = '" + PackageBoxSN + "' and is_delete = '0' and is_used = '1' and lock_type = '1'").uniqueResult(0); - - if (StrUtil.equals(jsonBox.getString("stor_code"), stor_code)) { - rowsDtl.add(row); - } - } - - // 插入库存变更主表明细表 - for (int i = 0; i < rowsDtl.size(); i++) { - JSONObject row = rowsDtl.getJSONObject(i); - String PackageBoxSN = row.getString("PackageBoxSN"); - String isRePrintPackageBoxLabel = row.getString("isRePrintPackageBoxLabel"); - String isUnPackBox = row.getString("isUnPackBox"); - String UpdatedDateOfProduction = row.getString("UpdatedDateOfProduction"); - //查询该木箱内子卷数量 - JSONArray container_rows = WQLObject.getWQLObject("pdm_bi_subpackagerelation").query("package_box_sn = '" + PackageBoxSN + "'").getResultJSONArray(0); - for (int j = 0; j < container_rows.size(); j++) { - JSONObject container_row = container_rows.getJSONObject(j); - JSONObject change_jo = new JSONObject(); - change_jo.put("changeinvdtl_id", IdUtil.getSnowflake(1, 1).nextId() + ""); - change_jo.put("changeinv_id", changeinv_id); - change_jo.put("seq_no", detail_count + 1); - JSONObject mater_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + container_row.getString("product_name") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(mater_jo)) { - throw new BadRequestException("物料不存在:" + container_row.getString("product_name")); - } - change_jo.put("material_id", mater_jo.getString("material_id")); - change_jo.put("pcsn", container_row.getString("container_name")); - change_jo.put("package_box_sn", container_row.getString("package_box_sn")); - change_jo.put("mfg_order_name", SaleOrderItem); - change_jo.put("demand_date", DemandDate); - change_jo.put("customer_name", CustomerName); - //查询对应的客户 - JSONObject customer_jo = WQLObject.getWQLObject("md_cs_customerbase").query("cust_code = '" + CustomerName + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(customer_jo)) { - throw new BadRequestException("客户不存在:" + CustomerName); - } - change_jo.put("customer_description", customer_jo.getString("cust_name")); - change_jo.put("isRePrintPackageBoxLabel", isRePrintPackageBoxLabel); - change_jo.put("isUnPackBox", isUnPackBox); - change_jo.put("UpdatedDateOfProduction", UpdatedDateOfProduction); - JSONObject unit = WQLObject.getWQLObject("md_pb_measureunit").query("measure_unit_id = '" + mater_jo.getString("base_unit_id") + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(unit)) { - throw new BadRequestException("计量单位不存在:" + mater_jo.getString("base_unit_id")); - } - change_jo.put("qty_unit_id", mater_jo.getString("base_unit_id")); - change_jo.put("qty_unit_name", unit.getString("unit_name")); - change_jo.put("qty", container_row.getString("net_weight")); - WQLObject.getWQLObject("ST_IVT_StructIvtChangeDtl").insert(change_jo); - total_qty += container_row.getDoubleValue("net_weight"); - detail_count += 1; - } - } - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); - - JSONObject mst_jo = new JSONObject(); - mst_jo.put("changeinv_id", changeinv_id); - mst_jo.put("bill_code", CodeUtil.getNewCode("CHANGE_CODE")); - mst_jo.put("buss_type", "2001"); - mst_jo.put("bill_type", "2001"); - mst_jo.put("biz_date", DateUtil.today()); - mst_jo.put("stor_id", jsonStor.getString("stor_id")); - mst_jo.put("stor_code", jsonStor.getString("stor_code")); - mst_jo.put("stor_name", jsonStor.getString("stor_name")); - mst_jo.put("total_qty", total_qty); - mst_jo.put("detail_count", detail_count); - mst_jo.put("bill_status", "10"); - mst_jo.put("create_mode", "03"); - mst_jo.put("input_optid", currentUserId + ""); - mst_jo.put("input_optname", nickName); - mst_jo.put("input_time", now); - mst_jo.put("update_optid", currentUserId + ""); - mst_jo.put("update_optname", nickName); - mst_jo.put("update_time", now); - mst_jo.put("is_delete", "0"); - mst_jo.put("is_upload", "0"); - Long deptId = SecurityUtils.getDeptId(); - mst_jo.put("sysdeptid", deptId + ""); - mst_jo.put("syscompanyid", deptId + ""); - WQLObject.getWQLObject("ST_IVT_StructIvtChange").insert(mst_jo); - } - result.put("RTYPE", "S"); - result.put("RTMSG", "操作成功!"); - result.put("RTOAL", 1); - result.put("RTDAT", null); - } catch (Exception e) { - result.put("RTYPE", "E"); - result.put("RTMSG", "操作失败!," + e.getMessage()); - result.put("RTOAL", 0); - result.put("RTDAT", null); - } -// } - log.info("inventoryTransferInfoSync接口输出参数为:-------------------" + result.toString()); - return result; - } - @Override public JSONObject getMaterialInfo(JSONObject jo) { JSONArray rows = jo.getJSONArray("DATAS"); @@ -670,4 +496,188 @@ public class SapToLmsServiceImpl implements SapToLmsService { return result; } + /** + * 转单指令在MES平台查看后,更新信息,发送LMS(是否拆包、更新后的入库日期、是否更换外包装箱标签),LMS重打子卷标签、包装箱外标签 + * + * @param param + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public JSONObject inventoryTransferInfoSync(JSONObject param) { + /** + * { + * "SaleOrderItem": "销售订单号-行号", + * "CustomerName": "客户编码", + * "DemandDate": "销售订单行交货日期", + * "item": [ + * { + * "SaleOrderItem": "销售订单号-行号", + * "PackageBoxSN": "包装箱号", + * "isRePrintPackageBoxLabel": "是否需要重打外包装标签", + * "isUnPackBox": "是否需要拆包重打子卷标签", + * "UpdatedDateOfProduction": "更改后的制造完成日期" + * }, + * { + * "SaleOrderItem": "销售订单号-行号", + * "PackageBoxSN": "包装箱号", + * "isRePrintPackageBoxLabel": "是否需要重打外包装标签", + * "isUnPackBox": "是否需要拆包重打子卷标签", + * "UpdatedDateOfProduction": "更改后的制造完成日期" + * } + * ] + * } + */ + log.info("inventoryTransferInfoSync接口输入参数为:-------------------" + param.toString()); + JSONObject result = new JSONObject(); + WQLObject pdm_bi_subpackagerelation = WQLObject.getWQLObject("pdm_bi_subpackagerelation"); + WQLObject st_ivt_structattr = WQLObject.getWQLObject("st_ivt_structattr"); + WQLObject st_ivt_bsrealstorattr = WQLObject.getWQLObject("st_ivt_bsrealstorattr"); + WQLObject st_ivt_structivt = WQLObject.getWQLObject("st_ivt_structivt"); + WQLObject md_cs_customerbase = WQLObject.getWQLObject("md_cs_customerbase"); + try { + JSONArray rows = param.getJSONArray("details"); + //新销售订单号-行号 + String SaleOrderItem = param.getString("SaleOrderItem"); + //新客户编码 + String CustomerName = param.getString("CustomerName"); + //新销售订单行交货日期 + String DemandDate = param.getString("DemandDate"); + + if (ObjectUtil.isEmpty(rows) || rows.size() == 0) { + throw new BadRequestException("item长度不能为0!"); + } + + // 定义set集合储存仓库 + HashSet storSet = new HashSet<>(); + + for (int i = 0; i < rows.size(); i++) { + JSONObject json = rows.getJSONObject(i); + String PackageBoxSN = json.getString("PackageBoxSN"); + + // 查询此木箱在哪个仓库 + JSONObject jsonBox = st_ivt_structattr + .query("storagevehicle_code = '" + PackageBoxSN + "' and is_delete = '0' and is_used = '1' and lock_type = '1'").uniqueResult(0); + + if (ObjectUtil.isEmpty(jsonBox)) { + throw new BadRequestException("此木箱不在库内:" + PackageBoxSN); + } + storSet.add(jsonBox.getString("stor_code")); + } + + // 根据仓库生成多个库存变更单据 + for (String stor_code : storSet) { + double total_qty = 0; + double detail_count = 0; + + JSONObject jsonStor = st_ivt_bsrealstorattr.query("stor_code = '" + stor_code + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(jsonStor)) { + throw new BadRequestException("仓库不存在:" + stor_code); + } + + JSONArray rowsDtl = new JSONArray(); + + for (int i = 0; i < rows.size(); i++) { + JSONObject row = rows.getJSONObject(i); + String PackageBoxSN = row.getString("PackageBoxSN"); + + JSONObject jsonBox = st_ivt_structattr + .query("storagevehicle_code = '" + PackageBoxSN + "' and is_delete = '0' and is_used = '1' and lock_type = '1'").uniqueResult(0); + + if (StrUtil.equals(jsonBox.getString("stor_code"), stor_code)) { + rowsDtl.add(row); + } + } + JSONArray tableData = new JSONArray(); + // 插入主表明细表 + for (int i = 0; i < rowsDtl.size(); i++) { + JSONObject row = rowsDtl.getJSONObject(i); + String PackageBoxSN = row.getString("PackageBoxSN"); + String isRePrintPackageBoxLabel = row.getString("isRePrintPackageBoxLabel"); + String isUnPackBox = row.getString("isUnPackBox"); + String UpdatedDateOfProduction = row.getString("UpdatedDateOfProduction"); + //查询该木箱内子卷数量 + JSONArray container_rows = pdm_bi_subpackagerelation.query("package_box_sn = '" + PackageBoxSN + "'").getResultJSONArray(0); + for (int j = 0; j < container_rows.size(); j++) { + JSONObject container_row = container_rows.getJSONObject(j); + JSONObject change_jo = new JSONObject(); + change_jo.put("seq_no", detail_count + 1); + JSONObject structivt = st_ivt_structivt.query("pcsn = '" + container_row.getString("container_name") + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(structivt)) { + throw new BadRequestException("子卷库存不存在:" + container_row.getString("container_name")); + } + change_jo.put("pcsn", structivt.getString("pcsn")); + change_jo.put("quality_scode", structivt.getString("pcsn")); + change_jo.put("material_id", structivt.getString("material_id")); + change_jo.put("qty_unit_id", structivt.getString("qty_unit_id")); + change_jo.put("plan_qty", structivt.getString("ivt_qty")); + change_jo.put("source_bill_code", SaleOrderItem); + change_jo.put("box_no", container_row.getString("package_box_sn")); + change_jo.put("width", container_row.getString("width")); + + JSONObject param_jo = new JSONObject(); + param_jo.put("isRePrintPackageBoxLabel", isRePrintPackageBoxLabel); + param_jo.put("isUnPackBox", isUnPackBox); + param_jo.put("UpdatedDateOfProduction", UpdatedDateOfProduction); + param_jo.put("DemandDate", DemandDate); + param_jo.put("bill_type", IOSEnum.OUT_TYPE.code("转单出库")); + change_jo.put("remark",param_jo); + //更新包装关系 + container_row.put("sale_order_name",SaleOrderItem); + container_row.put("customer_name",CustomerName); + container_row.put("isRePrintPackageBoxLabel",isRePrintPackageBoxLabel); + container_row.put("isUnPackBox",isUnPackBox); + container_row.put("date_of_production",UpdatedDateOfProduction); + JSONObject cust = md_cs_customerbase.query("cust_code = '" + CustomerName + "' and is_delete='0'").uniqueResult(0); + container_row.put("customer_name",cust.getString("cust_name")); + pdm_bi_subpackagerelation.update(container_row); + + tableData.add(change_jo); + total_qty += structivt.getDoubleValue("ivt_qty"); + detail_count += 1; + } + } + String currentUserId = SecurityUtils.getCurrentUserId(); + String nickName = SecurityUtils.getCurrentNickName(); + String now = DateUtil.now(); + + JSONObject mst_jo = new JSONObject(); + mst_jo.put("buss_type", IOSEnum.OUT_TYPE.code("转单出库")); + mst_jo.put("bill_type", IOSEnum.OUT_TYPE.code("转单出库")); + mst_jo.put("biz_date", DateUtil.today()); + mst_jo.put("stor_id", jsonStor.getString("stor_id")); + mst_jo.put("stor_code", jsonStor.getString("stor_code")); + mst_jo.put("stor_name", jsonStor.getString("stor_name")); + mst_jo.put("total_qty", total_qty); + mst_jo.put("detail_count", detail_count); + mst_jo.put("bill_status", "10"); + mst_jo.put("create_mode", "03"); + mst_jo.put("input_optid", currentUserId + ""); + mst_jo.put("input_optname", nickName); + mst_jo.put("input_time", now); + mst_jo.put("update_optid", currentUserId + ""); + mst_jo.put("update_optname", nickName); + mst_jo.put("update_time", now); + mst_jo.put("user","sap"); + //新增 + String id = iStIvtIostorinvOutService.insertMst(mst_jo); + JSONObject div_jo = new JSONObject(); + div_jo.put("iostorinv_id",id); + //全部分配 + iStIvtIostorinvOutService.allDiv(div_jo); + } + result.put("RTYPE", "S"); + result.put("RTMSG", "操作成功!"); + result.put("RTOAL", 1); + result.put("RTDAT", null); + } catch (Exception e) { + result.put("RTYPE", "E"); + result.put("RTMSG", "操作失败!," + e.getMessage()); + result.put("RTOAL", 0); + result.put("RTDAT", null); + } + log.info("inventoryTransferInfoSync接口输出参数为:-------------------" + result.toString()); + return result; + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/contronller/CheckController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/contronller/CheckController.java new file mode 100644 index 0000000..dfc2873 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/contronller/CheckController.java @@ -0,0 +1,115 @@ +package org.nl.wms.st.instor.check.contronller; + +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.modules.logging.annotation.Log; +import org.nl.wms.st.instor.service.CheckService; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Map; + +/** + * 盘点功能 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/check") +@Slf4j +public class CheckController { + private final CheckService checkService; + + @GetMapping + @Log("查询盘点单") + public ResponseEntity query(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(checkService.pageQuery(whereJson, page), HttpStatus.OK); + } + + @GetMapping("/getDtlView") + @Log("查询盘点单明细详情") + public ResponseEntity getDtlView(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(checkService.getDtlView(whereJson, page), HttpStatus.OK); + } + + @GetMapping("/getExceptionDispose") + @Log("查询盘点单明细异常") + public ResponseEntity getExceptionDispose(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(checkService.getExceptionDispose(whereJson, page), HttpStatus.OK); + } + + @GetMapping("/getOutBillDtl") + @Log("查询盘点单") + public ResponseEntity getOutBillDtl(@RequestParam Map whereJson) { + return new ResponseEntity<>(checkService.getOutBillDtl(whereJson), HttpStatus.OK); + } + + @GetMapping("/getOutBillDtl2") + @Log("查询盘点单明细2") + public ResponseEntity getOutBillDtl2(@RequestParam Map whereJson) { + return new ResponseEntity<>(checkService.getOutBillDtl2(whereJson), HttpStatus.OK); + } + + @Log("删除盘点单") + @DeleteMapping + public ResponseEntity delete(@RequestBody String[] ids) { + checkService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PutMapping + @Log("修改盘点单") + public ResponseEntity update(@RequestBody JSONObject whereJson) { + checkService.update(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping() + @Log("新增盘点单") + public ResponseEntity insertDtl(@RequestBody JSONObject whereJson) { + checkService.insertDtl(whereJson); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @GetMapping("/getStructIvt") + @Log("查询可盘点库存") + public ResponseEntity getStructIvt(@RequestParam Map whereJson, Pageable page) { + return new ResponseEntity<>(checkService.getStructIvt(whereJson, page), HttpStatus.OK); + } + + @PostMapping("/confirm") + @Log("盘点确定") + public ResponseEntity confirm(@RequestBody JSONObject whereJson) { + checkService.confirm(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @GetMapping(value = "/download") + public void download(HttpServletResponse response, @RequestParam Map whereJson) throws IOException { + checkService.download(checkService.getOutBillDtl(whereJson), response); + } + + @PostMapping("/disposeConfirm") + @Log("处理确认") + public ResponseEntity disposeConfirm(@RequestBody JSONObject whereJson) { + checkService.disposeConfirm(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping("/confirmBtn") + @Log("强制确认") + public ResponseEntity confirmBtn(@RequestBody JSONObject whereJson) { + checkService.confirmBtn(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @PostMapping("/repairSubmit") + @Log("补录明细") + public ResponseEntity repairSubmit(@RequestBody JSONObject whereJson) { + checkService.repairSubmit(whereJson); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckMst.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckMst.java new file mode 100644 index 0000000..d18c959 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckMst.java @@ -0,0 +1,167 @@ +package org.nl.wms.st.instor.check.service.dao; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 出入库单主表 + * 追加了NoArgsConstructor与AllArgsConstructor + *

+ * + * @author generator + * @since 2023-11-10 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_checkmst") +public class StIvtCheckMst implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 盘点单标识 + */ + @TableId + private String check_id; + + /** + * 单据编号 + */ + private String check_code; + + /** + * 业务类型 + */ + private String buss_type; + + /** + * 业务类型 + */ + private String check_type; + /** + * 仓库标识 + */ + private String stor_id; + + /** + * 仓库名称 + */ + private String stor_name; + + /** + * 来源方标识 + */ + private BigDecimal dtl_num; + + /** + * 来源方名称 + */ + private String create_mode; + + /** + * 制单人 + */ + private String input_optid; + + /** + * 制单人姓名 + */ + private String input_optname; + + /** + * 制单时间 + */ + private String input_time; + + /** + * 修改人 + */ + private String audit_optid; + + /** + * 修改人姓名 + */ + private String audit_optname; + + /** + * 修改时间 + */ + private String audit_time; + + /** + * 确认人 + */ + private String confirm_optid; + + /** + * 确认人姓名 + */ + private String confirm_optname; + + /** + * 确认时间 + */ + private String confirm_time; + + /** + * 回传时间 + */ + private String remark; + + + /** + * 回传时间 + */ + private String status; + + + /** + * 是否删除 + */ + private String is_delete; + + /** + * 回传时间 + */ + private String is_nok; + + /** + * 是否已上传 + */ + private String is_upload; + + /** + * 回传人 + */ + private String upload_optid; + + /** + * 回传人 + */ + private String upload_optname; + + /** + * 回传时间 + */ + private String upload_time; + + + /** + * 部门ID + */ + private String sysdeptid; + + /** + * 公司ID + */ + private String syscompanyid; + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckdtl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckdtl.java new file mode 100644 index 0000000..f4cf8a1 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/StIvtCheckdtl.java @@ -0,0 +1,164 @@ +package org.nl.wms.st.instor.check.service.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 出入库单明细表 + *

+ * + * @author generator + * @since 2023-11-16 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("st_ivt_checkdtl") +@AllArgsConstructor +@NoArgsConstructor +public class StIvtCheckdtl implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 出入单明细标识 + */ + @TableId + private String checkdtl_id; + + /** + * 出入单标识 + */ + private String check_id; + /** + * 出入单标识 + */ + private String check_code; + + /** + * 明细序号 + */ + private BigDecimal seq_no; + /** + * 单据明细状态 + */ + private String sect_id; + + /** + * 数量计量单位标识 + */ + private String sect_name; + + /** + * 数量计量单位名称 + */ + private String struct_id; + + /** + * 物料标识 + */ + private String struct_name; + + /** + * 批次 + */ + private String checkpoint_id; + + /** + * 品质类型 + */ + private String storagevehicle_id; + + /** + * 单据明细状态 + */ + private String storagevehicle_code; + + /** + * 计划数量 + */ + private String material_id; + + + /** + * 实际数量 + */ + private BigDecimal base_qty; + + /** + * 数量计量单位标识 + */ + private String qty_unit_id; + + /** + * 数量计量单位名称 + */ + private String qty_unit_name; + + /** + * 来源单据明细标识 + */ + private String status; + + /** + * 来源单据类型 + */ + private String is_down; + + /** + * 来源单编号 + */ + private BigDecimal fac_qty; + + /** + * 来源单表名 + */ + private String check_result; + + /** + * 基础单据明细标识 + */ + private String check_optid; + + /** + * 基础单据类型 + */ + private String check_optname; + + /** + * 基础单编号 + */ + private String check_time; + + /** + * 基础单表名 + */ + private String is_process; + + /** + * 备注 + */ + private String process_type; + + /** + * 已分配数量 + */ + private String process_optid; + + /** + * 未分配数量 + */ + private String process_time; + + /** + * 箱号 + */ + private String remark; + + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/mapper/StIvtCheckMstMapper.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/mapper/StIvtCheckMstMapper.java new file mode 100644 index 0000000..d874387 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/mapper/StIvtCheckMstMapper.java @@ -0,0 +1,18 @@ +package org.nl.wms.st.instor.check.service.dao.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.st.instor.check.service.dao.StIvtCheckMst; + +/** + *

+ * 出入库单主表 Mapper 接口 + *

+ * + * @author generator + * @since 2023-11-10 + */ +public interface StIvtCheckMstMapper extends BaseMapper { + + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/mapper/StIvtCheckdtlMapper.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/mapper/StIvtCheckdtlMapper.java new file mode 100644 index 0000000..8ab5c26 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/check/service/dao/mapper/StIvtCheckdtlMapper.java @@ -0,0 +1,17 @@ +package org.nl.wms.st.instor.check.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.st.instor.check.service.dao.StIvtCheckdtl; + + +/** + *

+ * 出入库单明细表 Mapper 接口 + *

+ * + * @author generator + * @since 2023-11-16 + */ +public interface StIvtCheckdtlMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java index 9a93cde..6d48086 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/CheckService.java @@ -2,13 +2,15 @@ package org.nl.wms.st.instor.service; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.st.instor.check.service.dao.StIvtCheckMst; import org.springframework.data.domain.Pageable; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Map; -public interface CheckService { +public interface CheckService extends IService { /** * 查询数据分页 * @@ -41,7 +43,7 @@ public interface CheckService { * * @param ids / */ - void deleteAll(Long[] ids); + void deleteAll(String[] ids); /** * 新增出库单 @@ -60,14 +62,6 @@ public interface CheckService { JSONArray getOutBillDtl2(Map whereJson); - /** - * 查询出库单明细 - * - * @param whereJson / - * @return - */ - JSONArray getOutBillDis(Map whereJson); - /** * 修改出库单 * @@ -90,20 +84,6 @@ public interface CheckService { */ void confirm(JSONObject whereJson); - /** - * 查询单据字段 - * - * @return - */ - JSONArray getInvTypes(); - - /** - * 移库单手动下发 - * - * @param whereJson / - */ - void handdown(JSONObject whereJson); - /** * 盘点保存 * @@ -111,19 +91,6 @@ public interface CheckService { */ void saveCheck(JSONObject whereJson); - /** - * 财务为准 - * - * @param whereJson / - */ - void process0(JSONObject whereJson); - - /** - * 财务为准 - * - * @param whereJson / - */ - void process1(JSONObject whereJson); /** * 导出 @@ -139,11 +106,6 @@ public interface CheckService { */ void disposeConfirm(JSONObject whereJson); - /** - * 新增全部在库木箱 - */ - void allInsert(JSONObject whereJson); - /** * 强制确认 */ diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java index eed9936..23c5c63 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/CheckServiceImpl.java @@ -7,6 +7,9 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.common.utils.SecurityUtils; @@ -17,16 +20,18 @@ import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.basedata.st.service.impl.UserStorServiceImpl; -import org.nl.wms.st.inbill.service.StorPublicService; +import org.nl.wms.st.instor.check.service.dao.StIvtCheckMst; +import org.nl.wms.st.instor.check.service.dao.StIvtCheckdtl; +import org.nl.wms.st.instor.check.service.dao.mapper.StIvtCheckMstMapper; +import org.nl.wms.st.instor.check.service.dao.mapper.StIvtCheckdtlMapper; import org.nl.wms.st.instor.service.CheckService; -import org.nl.wms.st.instor.task.HandMoveStorAcsTask; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; - +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -36,24 +41,20 @@ import java.util.stream.Collectors; @Service @RequiredArgsConstructor @Slf4j -public class CheckServiceImpl implements CheckService { - @Autowired - private StorPublicService storPublicService; +public class CheckServiceImpl extends ServiceImpl implements CheckService { + @Resource + private StIvtCheckMstMapper stIvtCheckMstMapper; + @Resource + private StIvtCheckdtlMapper stIvtCheckdtlMapper; @Override public Map pageQuery(Map whereJson, Pageable page) { - WQLObject dtlTab = WQLObject.getWQLObject("st_ivt_checkdtl"); - HashMap map = new HashMap<>(whereJson); map.put("flag", "1"); if (StrUtil.isNotEmpty(map.get("check_code"))) { map.put("check_code", "%" + map.get("check_code") + "%"); } - if (StrUtil.isNotEmpty(map.get("buss_type"))) { - map.put("buss_type", whereJson.get("buss_type") + "%"); - } - //获取人员对应的仓库 UserStorServiceImpl userStorService = new UserStorServiceImpl(); String in_stor_id = userStorService.getInStor(); @@ -131,49 +132,29 @@ public class CheckServiceImpl implements CheckService { @Override @Transactional(rollbackFor = Exception.class) - public void deleteAll(Long[] ids) { - for (Long moveinv_id : ids) { - this.deleteById(moveinv_id + ""); - } - } - - /** - * 通过moveinv_id删除明细,还原库存等操作 - * - * @param check_id - */ - void deleteById(String check_id) { - //明细表 - WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_CheckDtl"); - //主表 - WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_CheckMst"); - + public void deleteAll(String[] ids) { String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - HashMap map = new HashMap<>(); - map.put("is_delete", "1"); - map.put("update_optid", currentUserId + ""); - map.put("update_optname", nickName); - map.put("update_time", now); - JSONObject jo_mst = wo_mst.query("check_id='" + check_id + "'").uniqueResult(0); - JSONArray ja = wo_dtl.query("check_id='" + check_id + "'").getResultJSONArray(0); - for (int i = 0; i < ja.size(); i++) { - JSONObject jo = ja.getJSONObject(i); + for (String check_id : ids) { //删除明细 - wo_dtl.delete("checkdtl_id='" + jo.getString("checkdtl_id") + "'"); + stIvtCheckdtlMapper.delete(new LambdaQueryWrapper() + .eq(StIvtCheckdtl::getCheck_id,check_id)); + //更新主表 + this.update(new LambdaUpdateWrapper() + .set(StIvtCheckMst::getIs_delete,"1") + .set(StIvtCheckMst::getUpload_optid,currentUserId) + .set(StIvtCheckMst::getUpload_time,now) + .set(StIvtCheckMst::getUpload_optname,nickName) + .eq(StIvtCheckMst::getCheck_id,check_id) + ); } - //更新主表 - wo_mst.update(map, "check_id='" + check_id + "'"); } @Override @Transactional(rollbackFor = Exception.class) public void insertDtl(JSONObject jsonObject) { - WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_CheckMst"); // 盘点单主表 - WQLObject dtlTab = WQLObject.getWQLObject("ST_IVT_CheckDtl"); // 盘点单明细表 - JSONArray dtlArr = jsonObject.getJSONArray("tableData"); String currentUserId = SecurityUtils.getCurrentUserId(); String nickName = SecurityUtils.getCurrentNickName(); @@ -197,8 +178,8 @@ public class CheckServiceImpl implements CheckService { jsonMst.put("status", "1"); jsonMst.put("sysdeptid", deptId); jsonMst.put("syscompanyid", deptId); - mstTab.insert(jsonMst); - + StIvtCheckMst checkMst = jsonMst.toJavaObject(StIvtCheckMst.class); + stIvtCheckMstMapper.insert(checkMst); // 插入明细 for (int i = 0; i < dtlArr.size(); i++) { JSONObject json = dtlArr.getJSONObject(i); @@ -219,32 +200,8 @@ public class CheckServiceImpl implements CheckService { JSONObject jsonSub = WQL.getWO("PDA_CHECK").addParam("flag", "4").addParam("storagevehicle_code", json.getString("storagevehicle_code")).process().uniqueResult(0); jsonDtl.put("base_qty", jsonSub.getDoubleValue("net_weight")); - dtlTab.insert(jsonDtl); - } - } - - /** - * 根据传进来的载具物料明细,查询载具所有库存记录,并生成移库明细 - * - * @param rows - */ - @Transactional(rollbackFor = Exception.class) - void insertDtlByRows(JSONObject jo_mst, ArrayList rows) { - //明细表 - WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_CheckDtl"); - //定义需要需要插入的库存集合 - HashSet set = new HashSet<>(); - for (int i = 0; i < rows.size(); i++) { - HashMap row = rows.get(i); - set.add(row.get("struct_id")); - - String checkdtl_id = IdUtil.getSnowflake(1, 1).nextId() + ""; - row.put("checkdtl_id", checkdtl_id); - row.put("check_code", jo_mst.getString("check_code")); - row.put("check_id", jo_mst.getString("check_id")); - row.put("seq_no", (i + 1) + ""); - row.put("is_down", "0"); - wo_dtl.insert(row); + StIvtCheckdtl checkDtl = jsonDtl.toJavaObject(StIvtCheckdtl.class); + stIvtCheckdtlMapper.insert(checkDtl); } } @@ -283,44 +240,33 @@ public class CheckServiceImpl implements CheckService { return jo; } - @Override - public JSONArray getOutBillDis(Map whereJson) { - whereJson.put("flag", "4"); - JSONArray jo = WQL.getWO("QST_IVT_CHECK") - .addParamMap((HashMap) whereJson) - .process() - .getResultJSONArray(0); - return jo; - } - @Override @Transactional(rollbackFor = Exception.class) public void update(JSONObject jsonObject) { - WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_CheckMst"); // 盘点单主表 - WQLObject dtlTab = WQLObject.getWQLObject("ST_IVT_CheckDtl"); // 盘点单明细表 - JSONArray dtlArr = jsonObject.getJSONArray("tableData"); // 插入主表 - JSONObject jsonMst = mstTab.query("check_id = '" + jsonObject.getString("check_id") + "'").uniqueResult(0); - jsonMst.put("buss_type", jsonObject.getString("check_type")); - jsonMst.put("check_type", jsonObject.getString("check_type")); - jsonMst.put("stor_id", jsonObject.getLongValue("stor_id")); - jsonMst.put("stor_name", jsonObject.getString("stor_name")); - jsonMst.put("dtl_num", dtlArr.size()); - jsonMst.put("create_mode", "01"); - jsonMst.put("remark", jsonObject.getString("remark")); - jsonMst.put("status", "1"); - mstTab.update(jsonMst); + StIvtCheckMst jsonMst = stIvtCheckMstMapper.selectById( jsonObject.getString("check_id")); + jsonMst.setBuss_type(jsonObject.getString("check_type")); + jsonMst.setCheck_type(jsonObject.getString("check_type")); + jsonMst.setStor_id(jsonObject.getString("stor_id")); + jsonMst.setStor_name(jsonObject.getString("stor_name")); + jsonMst.setDtl_num(BigDecimal.valueOf(dtlArr.size())); + jsonMst.setCreate_mode("01"); + jsonMst.setRemark(jsonObject.getString("remark")); + jsonMst.setStatus("1"); + stIvtCheckMstMapper.updateById(jsonMst); + //删除明细 + stIvtCheckdtlMapper.delete(new LambdaUpdateWrapper() + .eq(StIvtCheckdtl::getCheck_id,jsonObject.getString("check_id") )); // 插入明细 - dtlTab.delete("check_id = '" + jsonObject.getString("check_id") + "'"); for (int i = 0; i < dtlArr.size(); i++) { JSONObject json = dtlArr.getJSONObject(i); JSONObject jsonDtl = new JSONObject(); jsonDtl.put("checkdtl_id", IdUtil.getSnowflake(1, 1).nextId()); - jsonDtl.put("check_id", jsonMst.getLongValue("check_id")); - jsonDtl.put("check_code", jsonMst.getString("check_code")); + jsonDtl.put("check_id", jsonMst.getCheck_id()); + jsonDtl.put("check_code", jsonMst.getCheck_code()); jsonDtl.put("seq_no", i + 1); jsonDtl.put("sect_id", json.getLongValue("sect_id")); jsonDtl.put("sect_name", json.getString("sect_name")); @@ -336,7 +282,8 @@ public class CheckServiceImpl implements CheckService { JSONObject jsonSub = WQL.getWO("PDA_CHECK").addParam("flag", "4").addParam("storagevehicle_code", json.getString("storagevehicle_code")).process().uniqueResult(0); jsonDtl.put("base_qty", jsonSub.getDoubleValue("net_weight")); - dtlTab.insert(jsonDtl); + StIvtCheckdtl checkDtl = jsonDtl.toJavaObject(StIvtCheckdtl.class); + stIvtCheckdtlMapper.insert(checkDtl); } } @@ -361,10 +308,6 @@ public class CheckServiceImpl implements CheckService { @Override @Transactional(rollbackFor = Exception.class) public void confirm(JSONObject whereJson) { - //主表 - WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_CheckMst"); - //明细表 - WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_CheckDtl"); JSONObject form = whereJson.getJSONObject("row"); JSONArray rows = whereJson.getJSONArray("rows"); @@ -374,115 +317,59 @@ public class CheckServiceImpl implements CheckService { String now = DateUtil.now(); String check_id = form.getString("check_id"); - JSONObject jsonMst = wo_mst.query("check_id = '" + check_id + "'").uniqueResult(0); + StIvtCheckMst jsonMst = stIvtCheckMstMapper.selectById( check_id); // 更新明细 for (int i = 0; i < rows.size(); i++) { JSONObject json = rows.getJSONObject(i); - JSONObject jsonDtl = wo_dtl.query("checkdtl_id = '" + json.getString("checkdtl_id") + "'").uniqueResult(0); + StIvtCheckdtl jsonDtl = stIvtCheckdtlMapper.selectById(json.getString("checkdtl_id")); String check_result = json.getString("check_result"); if (ObjectUtil.isEmpty(check_result)) { - jsonDtl.put("check_result", "1"); - jsonDtl.put("is_process", "0"); - jsonDtl.put("status", "3"); + jsonDtl.setCheck_result("1"); + jsonDtl.setIs_process("0"); + jsonDtl.setStatus("3"); } else { - jsonDtl.put("check_result", check_result); + jsonDtl.setCheck_result(check_result); if (StrUtil.equals(check_result, "1")) { - jsonDtl.put("is_process", "1"); - jsonDtl.put("status", "3"); + jsonDtl.setIs_process("1"); + jsonDtl.setStatus("3"); } else { - jsonDtl.put("is_process", "0"); - jsonDtl.put("status", "4"); + jsonDtl.setIs_process("0"); + jsonDtl.setStatus("4"); } } - jsonDtl.put("remark", json.getString("remark")); - jsonDtl.put("check_optid", currentUserId); - jsonDtl.put("check_optname", nickName); - jsonDtl.put("check_time", now); - wo_dtl.update(jsonDtl); + jsonDtl.setRemark(json.getString("remark")); + jsonDtl.setCheck_optid(currentUserId); + jsonDtl.setCheck_optname( nickName); + jsonDtl.setCheck_time(now); + stIvtCheckdtlMapper.updateById(jsonDtl); } // 更新主表: 明细全部为正常 -1 主表为正常 - JSONArray jsonDtlArr = wo_dtl.query("check_id = '" + check_id + "' and check_result = '2'").getResultJSONArray(0); + List jsonDtlArr = stIvtCheckdtlMapper.selectList(new LambdaQueryWrapper() + .eq(StIvtCheckdtl::getCheck_id,check_id) + .eq(StIvtCheckdtl::getCheck_result,"2") + ); if (jsonDtlArr.size() == 0) { // 更新主表为正常 - jsonMst.put("is_nok", "0"); - jsonMst.put("status", "99"); + jsonMst.setIs_nok("0"); + jsonMst.setStatus("99"); } else { - jsonMst.put("is_nok", "1"); - jsonMst.put("status", "3"); + jsonMst.setIs_nok("1"); + jsonMst.setStatus("3"); } - jsonMst.put("confirm_optid", currentUserId); - jsonMst.put("confirm_optname", nickName); - jsonMst.put("confirm_time", now); - wo_mst.update(jsonMst); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void handdown(JSONObject whereJson) { - //移库单主表 - WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_MoveInv"); - //移库单明细表 - WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_MoveInvDtl"); - //任务表 - WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task"); - - HandMoveStorAcsTask handMoveStorAcsTask = new HandMoveStorAcsTask(); - - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); - - String moveinv_id = whereJson.getString("moveinv_id"); - //查询所有载具的库存 - JSONArray ja = WQL.getWO("QST_IVT_HANDMOVESTOR") - .addParam("flag", "4") - .addParam("moveinv_id", moveinv_id) - .process().getResultJSONArray(0); - if (ja.size() == 0) { - throw new BadRequestException("当前移库单无可下发任务!"); - } - for (int i = 0; i < ja.size(); i++) { - JSONObject jo = ja.getJSONObject(i); - String task_id = jo.getString("task_id"); - String taskdtl_id = whereJson.getString("taskdtl_id"); - JSONObject result = handMoveStorAcsTask.notifyAcs(taskdtl_id); - if (ObjectUtil.isNotEmpty(result)) { - String status = result.getString("status"); - if ("200".equals(status)) { - HashMap map = new HashMap<>(); - //更新分配表 - map.put("is_issued", "1"); - wo_dtl.update(map, "is_issued='0' and task_id='" + task_id + "'"); - //更新任务为已下发 - map.put("task_status", "02"); - map.put("update_optid", currentUserId + ""); - map.put("update_optname", nickName); - map.put("update_time", now); - wo_Task.update(map, "task_status='01' and taskdtl_id='" + taskdtl_id + "'"); - } else { - throw new BadRequestException("任务下发失败,请稍后重试!"); - } - } else { - throw new BadRequestException("任务下发失败,请稍后重试!"); - } - } - HashMap map = new HashMap<>(); - map.put("bill_status", "20"); - wo_mst.update(map, "moveinv_id='" + moveinv_id + "'"); + jsonMst.setConfirm_optid(currentUserId); + jsonMst.setConfirm_optname(nickName); + jsonMst.setConfirm_time( now); + stIvtCheckMstMapper.updateById(jsonMst); } @Override public void saveCheck(JSONObject whereJson) { - //主表 - WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_CheckMst"); - //明细表 - WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_CheckDtl"); JSONObject form = whereJson.getJSONObject("row"); JSONArray rows = whereJson.getJSONArray("rows"); @@ -491,218 +378,57 @@ public class CheckServiceImpl implements CheckService { String nickName = SecurityUtils.getCurrentNickName(); String now = DateUtil.now(); - JSONObject jo_mst = wo_mst.query("status in ('1','3') and check_id='" + form.getString("check_id") + "'").uniqueResult(0); + StIvtCheckMst jo_mst = stIvtCheckMstMapper.selectOne(new LambdaQueryWrapper() + .eq(StIvtCheckMst::getCheck_id,form.getString("check_id")) + .in(StIvtCheckMst::getStatus,"1","3") + ); if (jo_mst == null) { throw new BadRequestException("盘点单状态异常!"); } - wo_dtl.delete("status in ('1','2') and check_id='" + form.getString("check_id") + "'"); + stIvtCheckdtlMapper.delete(new LambdaQueryWrapper() + .eq(StIvtCheckdtl::getCheck_id,form.getString("check_id")) + .in(StIvtCheckdtl::getStatus,"1","2") + ); for (int i = 0; i < rows.size(); i++) { JSONObject jo = rows.getJSONObject(i); String status = jo.getString("status"); double base_qty = jo.getDoubleValue("base_qty"); jo.put("seq_no", "" + (i + 1)); + StIvtCheckdtl checkDtl = jo.toJavaObject(StIvtCheckdtl.class); //已盘点过的明细不再处理 if ("3,4,5,99".contains(status)) { - wo_dtl.update(jo); + stIvtCheckdtlMapper.updateById(checkDtl); continue; } - jo.put("status", "2"); - jo.put("check_optid", currentUserId); - jo.put("check_optname", nickName); - jo.put("check_time", now); + checkDtl.setStatus("2"); + checkDtl.setCheck_optid(currentUserId); + checkDtl.setCheck_optname(nickName); + checkDtl.setCheck_time(now); double fac_qty = jo.getDoubleValue("fac_qty"); //判断盈亏 if (fac_qty > base_qty) { - jo.put("check_result", "3"); + checkDtl.setCheck_result("3"); } else if (fac_qty < base_qty) { - jo.put("check_result", "2"); + checkDtl.setCheck_result("2"); } else { - jo.put("check_result", "1"); + checkDtl.setCheck_result("1"); } - wo_dtl.insert(jo); + stIvtCheckdtlMapper.insert(checkDtl); } - jo_mst.put("dtl_num", rows.size()); - jo_mst.put("status", "3"); - jo_mst.put("is_nok", "0"); + jo_mst.setDtl_num(BigDecimal.valueOf(rows.size())); + jo_mst.setStatus("3"); + jo_mst.setIs_nok("0"); - JSONArray ja_nok = wo_dtl.query("check_result <>'1' and check_id='" + form.getString("check_id") + "'").getResultJSONArray(0); + List ja_nok = stIvtCheckdtlMapper.selectList(new LambdaQueryWrapper() + .eq(StIvtCheckdtl::getCheck_id,form.getString("check_id")) + .ne(StIvtCheckdtl::getCheck_result,"1") + ); if (ja_nok.size() != 0) { - jo_mst.put("is_nok", "1"); + jo_mst.setIs_nok("1"); } - wo_mst.update(jo_mst); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void process0(JSONObject whereJson) { - //主表 - WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_CheckMst"); - //明细表 - WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_CheckDtl"); - - JSONObject form = whereJson.getJSONObject("form"); - JSONObject row = whereJson.getJSONObject("row"); - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); - - JSONObject jo_mst = wo_mst.query("status <>'99' and check_id='" + form.getString("check_id") + "'").uniqueResult(0); - if (jo_mst == null) { - throw new BadRequestException("盘点单状态异常!"); - } - row.put("status", "07"); - row.put("process_optid", currentUserId); - row.put("process_type", "0"); - row.put("is_process", "1"); - row.put("process_time", now); - wo_dtl.update(row); - JSONArray ja = wo_dtl.query("status in ('99','07') and check_id='" + form.getString("check_id") + "'").getResultJSONArray(0); - //说明全部确认 - if (ja.size() == jo_mst.getInteger("dtl_num")) { - HashMap mapdtl = new HashMap<>(); - mapdtl.put("status", "99"); - wo_dtl.update(mapdtl, "check_id='" + form.getString("check_id") + "'"); - - jo_mst.put("status", "99"); - jo_mst.put("confirm_optid", currentUserId); - jo_mst.put("confirm_optname", nickName); - jo_mst.put("confirm_time", now); - for (int i = 0; i < ja.size(); i++) { - JSONObject jo = ja.getJSONObject(i); - //锁定起点点位、仓位 - JSONObject from_start = new JSONObject(); - from_start.put("lock_type", "00"); - from_start.put("struct_id", jo.getString("struct_id")); - storPublicService.updateStructAndPoint(from_start); - - } - } - wo_mst.update(jo_mst); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void process1(JSONObject whereJson) { - //主表 - WQLObject wo_mst = WQLObject.getWQLObject("ST_IVT_CheckMst"); - //明细表 - WQLObject wo_dtl = WQLObject.getWQLObject("ST_IVT_CheckDtl"); - //明细表 - WQLObject wo_dis = WQLObject.getWQLObject("ST_IVT_CheckDtlDis"); - - JSONObject form = whereJson.getJSONObject("row"); - JSONArray rows = whereJson.getJSONArray("rows"); - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); - - JSONObject jo_mst = wo_mst.query("status <>'99' and check_id='" + form.getString("check_id") + "'").uniqueResult(0); - if (jo_mst == null) { - throw new BadRequestException("盘点单状态异常!"); - } - HashMap map = new HashMap<>(); - map.put("status", "07"); - map.put("process_optid", currentUserId + ""); - map.put("process_type", "1"); - map.put("is_process", "1"); - map.put("process_time", now); - wo_dtl.update(map, "status not in('07','99') and storagevehicle_code='" + form.getString("storagevehicle_code") + "' and check_id='" + form.getString("check_id") + "'"); - - for (int i = 0; i < rows.size(); i++) { - JSONObject jo = rows.getJSONObject(i); - String checkdtldis_id = IdUtil.getSnowflake(1, 1).nextId() + ""; - jo.put("checkdtldis_id", checkdtldis_id); - jo.put("check_id", jo_mst.getString("check_id")); - jo.put("check_code", jo_mst.getString("check_code")); - jo.put("sect_id", form.getString("sect_id")); - jo.put("struct_id", form.getString("struct_id")); - jo.put("struct_name", form.getString("struct_name")); - jo.put("sect_name", form.getString("sect_name")); - wo_dis.insert(jo); - - } - //判断是否要生成损单 - JSONArray ja_sun = WQL.getWO("QST_IVT_CHECK") - .addParam("storagevehicle_code", form.getString("storagevehicle_code")) - .addParam("check_id", form.getString("check_id")) - .addParam("flag", "6") - .process() - .getResultJSONArray(0); - if (ja_sun.size() > 0) { - JSONObject mapMst = new JSONObject(); - mapMst.put("mol_inv_type", "42"); - mapMst.put("create_mode", "02"); - mapMst.put("mol_type", "0"); - mapMst.put("stor_id", ja_sun.getJSONObject(0).getString("stor_id")); - mapMst.put("sect_id", ja_sun.getJSONObject(0).getString("sect_id")); - mapMst.put("sect_name", ja_sun.getJSONObject(0).getString("sect_name")); - mapMst.put("struct_id", ja_sun.getJSONObject(0).getString("struct_id")); - mapMst.put("struct_name", ja_sun.getJSONObject(0).getString("struct_name")); - mapMst.put("tableData", ja_sun); - } - - //判断是否要生成溢单 - JSONArray ja_yi = WQL.getWO("QST_IVT_CHECK") - .addParam("storagevehicle_code", form.getString("storagevehicle_code")) - .addParam("check_id", form.getString("check_id")) - .addParam("flag", "5") - .process() - .getResultJSONArray(0); - if (ja_yi.size() > 0) { - JSONObject mapMst = new JSONObject(); - mapMst.put("mol_inv_type", "42"); - mapMst.put("create_mode", "02"); - mapMst.put("mol_type", "1"); - mapMst.put("stor_id", ja_yi.getJSONObject(0).getString("stor_id")); - mapMst.put("sect_id", ja_yi.getJSONObject(0).getString("sect_id")); - mapMst.put("sect_name", ja_yi.getJSONObject(0).getString("sect_name")); - mapMst.put("struct_id", ja_yi.getJSONObject(0).getString("struct_id")); - mapMst.put("struct_name", ja_yi.getJSONObject(0).getString("struct_name")); - mapMst.put("tableData", ja_yi); - } - - JSONArray ja = wo_dtl.query("status in ('99','07') and check_id='" + form.getString("check_id") + "'").getResultJSONArray(0); - //说明全部确认 - if (ja.size() == jo_mst.getInteger("dtl_num")) { - HashMap mapdtl = new HashMap<>(); - mapdtl.put("status", "99"); - wo_dtl.update(mapdtl, "check_id='" + form.getString("check_id") + "'"); - - jo_mst.put("status", "99"); - jo_mst.put("confirm_optid", currentUserId); - jo_mst.put("confirm_optname", nickName); - jo_mst.put("confirm_time", now); - for (int i = 0; i < ja.size(); i++) { - JSONObject jo = ja.getJSONObject(i); - //锁定起点点位、仓位 - JSONObject from_start = new JSONObject(); - from_start.put("lock_type", "00"); - from_start.put("struct_id", jo.getString("struct_id")); - storPublicService.updateStructAndPoint(from_start); - } - //确认损益单 - JSONArray ja_sunyi = WQL.getWO("QST_IVT_CHECK") - .addParam("check_code", form.getString("check_code")) - .addParam("flag", "7") - .process() - .getResultJSONArray(0); - for (int i = 0; i < ja_sunyi.size(); i++) { - JSONObject jo = ja_sunyi.getJSONObject(i); - } - } - wo_mst.update(jo_mst); - } - - @Override - public JSONArray getInvTypes() { - //查询单据字段类型 - JSONArray ja = WQL.getWO("ST_PUB_QUERY_01") - .addParam("flag", "4") - .process() - .getResultJSONArray(0); - return ja; + stIvtCheckMstMapper.updateById(jo_mst); } @Override @@ -761,8 +487,6 @@ public class CheckServiceImpl implements CheckService { @Override @Transactional(rollbackFor = Exception.class) public void disposeConfirm(JSONObject whereJson) { - WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_CheckMst"); - WQLObject dtlTab = WQLObject.getWQLObject("ST_IVT_CheckDtl"); JSONArray rows = whereJson.getJSONArray("rows"); String currentUserId = SecurityUtils.getCurrentUserId(); @@ -777,123 +501,60 @@ public class CheckServiceImpl implements CheckService { if (StrUtil.equals(is_process, "1")) { continue; } + StIvtCheckdtl jsonDtl = stIvtCheckdtlMapper.selectById(json.getString("checkdtl_id")); - JSONObject jsonDtl = dtlTab.query("checkdtl_id = '" + json.getString("checkdtl_id") + "'").uniqueResult(0); - - jsonDtl.put("is_process", "1"); - jsonDtl.put("status", "5"); - jsonDtl.put("process_optid", currentUserId); - jsonDtl.put("process_time", DateUtil.now()); - dtlTab.update(jsonDtl); + jsonDtl.setIs_process("1"); + jsonDtl.setStatus("5"); + jsonDtl.setProcess_optid(currentUserId); + jsonDtl.setProcess_time(DateUtil.now()); + stIvtCheckdtlMapper.updateById(jsonDtl); } // 如果异常是否处理都为是则更新全部明细状态为完成,更新主表为完成 - JSONArray jsonDtlArr = dtlTab.query("check_id = '" + check_id + "' and is_process = '0'").getResultJSONArray(0); + List jsonDtlArr = stIvtCheckdtlMapper.selectList(new LambdaQueryWrapper() + .eq(StIvtCheckdtl::getCheck_id,check_id) + .eq(StIvtCheckdtl::getIs_process,"0") + ); if (ObjectUtil.isEmpty(jsonDtlArr)) { JSONObject map = new JSONObject(); map.put("status", "99"); // 更新明细为完成 - dtlTab.update(map, "check_id = '" + check_id + "'"); - + stIvtCheckdtlMapper.update(null,new LambdaUpdateWrapper() + .set(StIvtCheckdtl::getStatus,"99") + .eq(StIvtCheckdtl::getCheck_id,check_id) + ); // 更新主表为完成 - mstTab.update(map, "check_id = '" + check_id + "'"); - } - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void allInsert(JSONObject jsonObject) { - WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_CheckMst"); // 盘点单主表 - WQLObject dtlTab = WQLObject.getWQLObject("ST_IVT_CheckDtl"); // 盘点单明细表 - WQLObject storTab = WQLObject.getWQLObject("st_ivt_bsrealstorattr"); // 仓库表 - - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - Long deptId = SecurityUtils.getDeptId(); - - JSONObject jsonStor = storTab.query("stor_id = '" + jsonObject.getString("stor_id") + "'").uniqueResult(0); - - // 查找库内所有在库木箱 - JSONArray dtlArr = WQL.getWO("QST_IVT_CHECK").addParam("flag", "11") - .addParam("stor_id", jsonObject.getString("stor_id")) - .addParam("sect_id", jsonObject.getString("sect_id")) - .process().getResultJSONArray(0); - - if (dtlArr.size() == 0) { - throw new BadRequestException("此库区没有要盘点的木箱"); - } - - // 插入主表 - JSONObject jsonMst = new JSONObject(); - jsonMst.put("check_id", IdUtil.getSnowflake(1, 1).nextId()); - jsonMst.put("check_code", CodeUtil.getNewCode("PD_CODE")); - jsonMst.put("buss_type", jsonObject.getString("check_type")); - jsonMst.put("check_type", jsonObject.getString("check_type")); - jsonMst.put("stor_id", jsonStor.getLongValue("stor_id")); - jsonMst.put("stor_name", jsonStor.getString("stor_name")); - jsonMst.put("dtl_num", dtlArr.size()); - jsonMst.put("create_mode", "01"); - jsonMst.put("is_nok", "0"); - jsonMst.put("input_optid", currentUserId); - jsonMst.put("input_optname", nickName); - jsonMst.put("input_time", DateUtil.now()); - jsonMst.put("remark", jsonObject.getString("remark")); - jsonMst.put("status", "1"); - jsonMst.put("sysdeptid", deptId); - jsonMst.put("syscompanyid", deptId); - mstTab.insert(jsonMst); - - // 插入明细 - for (int i = 0; i < dtlArr.size(); i++) { - JSONObject json = dtlArr.getJSONObject(i); - JSONObject jsonDtl = new JSONObject(); - jsonDtl.put("checkdtl_id", IdUtil.getSnowflake(1, 1).nextId()); - jsonDtl.put("check_id", jsonMst.getLongValue("check_id")); - jsonDtl.put("check_code", jsonMst.getString("check_code")); - jsonDtl.put("seq_no", i + 1); - jsonDtl.put("sect_id", json.getLongValue("sect_id")); - jsonDtl.put("sect_name", json.getString("sect_name")); - jsonDtl.put("struct_id", json.getLongValue("struct_id")); - jsonDtl.put("struct_name", json.getString("struct_name")); - jsonDtl.put("storagevehicle_code", json.getString("storagevehicle_code")); - jsonDtl.put("material_id", json.getLongValue("material_id")); - jsonDtl.put("qty_unit_id", json.getLongValue("measure_unit_id")); - jsonDtl.put("qty_unit_name", json.getString("qty_unit_name")); - jsonDtl.put("status", "1"); - - JSONObject jsonSub = WQL.getWO("PDA_CHECK").addParam("flag", "4").addParam("storagevehicle_code", json.getString("storagevehicle_code")).process().uniqueResult(0); - jsonDtl.put("base_qty", jsonSub.getDoubleValue("net_weight")); - dtlTab.insert(jsonDtl); + stIvtCheckMstMapper.update(null,new LambdaUpdateWrapper() + .set(StIvtCheckMst::getStatus,"99") + .eq(StIvtCheckMst::getCheck_id,check_id) + ); } } @Override @Transactional(rollbackFor = Exception.class) public void confirmBtn(JSONObject whereJson) { - WQLObject mstTab = WQLObject.getWQLObject("ST_IVT_CheckMst"); - WQLObject dtlTab = WQLObject.getWQLObject("st_ivt_checkdtl"); - JSONObject jsonMst = mstTab.query("check_id = '" + whereJson.getString("check_id") + "'").uniqueResult(0); - jsonMst.put("status", "99"); + StIvtCheckMst jsonMst = stIvtCheckMstMapper.selectById(whereJson.getString("check_id")); + jsonMst.setStatus("99"); - mstTab.update(jsonMst); + stIvtCheckMstMapper.updateById(jsonMst); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("status", "99"); - - dtlTab.update(jsonObject, "check_id = '" + whereJson.getString("check_id") + "'"); + stIvtCheckdtlMapper.update(null,new LambdaUpdateWrapper() + .set(StIvtCheckdtl::getStatus,"99") + .eq(StIvtCheckdtl::getCheck_id,whereJson.getString("check_id")) + ); } @Override @Transactional(rollbackFor = Exception.class) public void repairSubmit(JSONObject whereJson) { WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); - WQLObject mstTab = WQLObject.getWQLObject("st_ivt_checkmst"); - WQLObject dtlTab = WQLObject.getWQLObject("st_ivt_checkdtl"); + StIvtCheckMst jsonMst = stIvtCheckMstMapper.selectOne(new LambdaQueryWrapper() + .eq(StIvtCheckMst::getCheck_code,whereJson.getString("check_code"))); - JSONObject jsonMst = mstTab.query("check_code = '" + whereJson.getString("check_code") + "'").uniqueResult(0); JSONObject jsonMater = materTab.query("material_code = '" + whereJson.getString("material_code") + "'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonMater)) { @@ -903,9 +564,9 @@ public class CheckServiceImpl implements CheckService { // 新增明细 JSONObject jsonDtl = new JSONObject(); jsonDtl.put("checkdtl_id", IdUtil.getSnowflake(1, 1).nextId()); - jsonDtl.put("check_id", jsonMst.getLongValue("check_id")); - jsonDtl.put("check_code", jsonMst.getString("check_code")); - jsonDtl.put("seq_no", jsonMst.getIntValue("dtl_num") + 1); + jsonDtl.put("check_id", jsonMst.getCheck_id()); + jsonDtl.put("check_code", jsonMst.getCheck_code()); + jsonDtl.put("seq_no", jsonMst.getDtl_num().intValue()+1); jsonDtl.put("sect_id", 111111); jsonDtl.put("sect_name", "补录库区"); jsonDtl.put("struct_id", 111111); @@ -917,10 +578,11 @@ public class CheckServiceImpl implements CheckService { jsonDtl.put("status", "1"); jsonDtl.put("base_qty", whereJson.getDoubleValue("base_qty")); jsonDtl.put("remark", whereJson.getString("remark")); - dtlTab.insert(jsonDtl); + StIvtCheckdtl checkDtl = jsonDtl.toJavaObject(StIvtCheckdtl.class); + stIvtCheckdtlMapper.insert(checkDtl); // 更新主表 - jsonMst.put("dtl_num", jsonMst.getIntValue("dtl_num") + 1); - mstTab.update(jsonMst); + jsonMst.setDtl_num(BigDecimal.valueOf(jsonMst.getDtl_num().intValue()+1)); + stIvtCheckMstMapper.updateById(jsonMst); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql index 5a72961..dc3a056 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_CHECK.wql @@ -20,7 +20,6 @@ 输入.check_type TYPEAS s_string 输入.stor_id TYPEAS s_string 输入.check_id TYPEAS s_string - 输入.buss_type TYPEAS s_string 输入.work_status TYPEAS s_string 输入.end_time TYPEAS s_string 输入.begin_time TYPEAS s_string @@ -80,10 +79,6 @@ checkmst.check_code like 输入.check_code ENDOPTION - OPTION 输入.buss_type <> "" - checkmst.buss_type = 输入.buss_type - ENDOPTION - OPTION 输入.check_type <> "" checkmst.check_type = 输入.check_type ENDOPTION @@ -113,359 +108,225 @@ ENDIF IF 输入.flag = "2" - QUERY - SELECT - CheckDtl.*, - struct.struct_code, - struct.sect_code, - mb.material_code, - mb.material_name, - user1.person_name AS process_optname, - sub.date_of_production - FROM - ST_IVT_CheckDtl CheckDtl - LEFT JOIN md_me_materialbase mb ON mb.material_id = CheckDtl.material_id - LEFT JOIN st_ivt_structattr struct ON struct.struct_id = CheckDtl.struct_id - LEFT JOIN sys_user user1 ON user1.user_id = CheckDtl.process_optid - LEFT JOIN ( - SELECT - MIN(date_of_production) AS date_of_production, - package_box_sn - FROM - pdm_bi_subpackagerelation - WHERE - 1=1 - group by package_box_sn - ) sub ON sub.package_box_sn = CheckDtl.storagevehicle_code - WHERE - 1 = 1 - OPTION 输入.check_id <> "" - CheckDtl.check_id = 输入.check_id - ENDOPTION - OPTION 输入.checkdtl_id <> "" - CheckDtl.checkdtl_id = 输入.checkdtl_id - ENDOPTION - OPTION 输入.status <> "" - CheckDtl.status <= 输入.status - ENDOPTION - order by CheckDtl.seq_no - ENDSELECT - ENDQUERY - ENDIF + QUERY + SELECT + CheckDtl.*, + struct.struct_code, + struct.sect_code, + mb.material_code, + mb.material_name, + user1.person_name AS process_optname, + sub.date_of_production + FROM + ST_IVT_CheckDtl CheckDtl + LEFT JOIN md_me_materialbase mb ON mb.material_id = CheckDtl.material_id + LEFT JOIN st_ivt_structattr struct ON struct.struct_id = CheckDtl.struct_id + LEFT JOIN sys_user user1 ON user1.user_id = CheckDtl.process_optid + LEFT JOIN ( + SELECT + MIN(date_of_production) AS date_of_production, + package_box_sn + FROM + pdm_bi_subpackagerelation + WHERE + 1=1 + group by package_box_sn + ) sub ON sub.package_box_sn = CheckDtl.storagevehicle_code + WHERE + 1 = 1 + OPTION 输入.check_id <> "" + CheckDtl.check_id = 输入.check_id + ENDOPTION + OPTION 输入.checkdtl_id <> "" + CheckDtl.checkdtl_id = 输入.checkdtl_id + ENDOPTION + OPTION 输入.status <> "" + CheckDtl.status <= 输入.status + ENDOPTION + order by CheckDtl.seq_no + ENDSELECT + ENDQUERY + ENDIF IF 输入.flag = "22" - QUERY - SELECT - CheckDtl.*, - struct.struct_code, - struct.sect_code, - mb.material_code, - mb.material_name, - user1.person_name AS process_optname, - sub.date_of_production - FROM - ST_IVT_CheckDtl CheckDtl - LEFT JOIN md_me_materialbase mb ON mb.material_id = CheckDtl.material_id - LEFT JOIN st_ivt_structattr struct ON struct.struct_id = CheckDtl.struct_id - LEFT JOIN sys_user user1 ON user1.user_id = CheckDtl.process_optid - LEFT JOIN ( - SELECT - MIN(date_of_production) AS date_of_production, - package_box_sn - FROM - pdm_bi_subpackagerelation - WHERE - 1=1 - group by package_box_sn - ) sub ON sub.package_box_sn = CheckDtl.storagevehicle_code - WHERE - CheckDtl.status <> '1' - OPTION 输入.check_id <> "" - CheckDtl.check_id = 输入.check_id - ENDOPTION + QUERY + SELECT + CheckDtl.*, + struct.struct_code, + struct.sect_code, + mb.material_code, + mb.material_name, + user1.person_name AS process_optname, + sub.date_of_production + FROM + ST_IVT_CheckDtl CheckDtl + LEFT JOIN md_me_materialbase mb ON mb.material_id = CheckDtl.material_id + LEFT JOIN st_ivt_structattr struct ON struct.struct_id = CheckDtl.struct_id + LEFT JOIN sys_user user1 ON user1.user_id = CheckDtl.process_optid + LEFT JOIN ( + SELECT + MIN(date_of_production) AS date_of_production, + package_box_sn + FROM + pdm_bi_subpackagerelation + WHERE + 1=1 + group by package_box_sn + ) sub ON sub.package_box_sn = CheckDtl.storagevehicle_code + WHERE + CheckDtl.status <> '1' + OPTION 输入.check_id <> "" + CheckDtl.check_id = 输入.check_id + ENDOPTION - order by CheckDtl.seq_no - ENDSELECT - ENDQUERY - ENDIF + order by CheckDtl.seq_no + ENDSELECT + ENDQUERY + ENDIF IF 输入.flag = "222" - QUERY - SELECT - CheckDtl.*, - struct.struct_code, - struct.sect_code, - mb.material_code, - mb.material_name, - user1.person_name AS process_optname, - sub.date_of_production - FROM - ST_IVT_CheckDtl CheckDtl - LEFT JOIN md_me_materialbase mb ON mb.material_id = CheckDtl.material_id - LEFT JOIN st_ivt_structattr struct ON struct.struct_id = CheckDtl.struct_id - LEFT JOIN sys_user user1 ON user1.user_id = CheckDtl.process_optid - LEFT JOIN ( - SELECT - MIN(date_of_production) AS date_of_production, - package_box_sn - FROM - pdm_bi_subpackagerelation - WHERE - 1=1 - group by package_box_sn - ) sub ON sub.package_box_sn = CheckDtl.storagevehicle_code - WHERE - CheckDtl.status = '1' - OPTION 输入.check_id <> "" - CheckDtl.check_id = 输入.check_id - ENDOPTION + QUERY + SELECT + CheckDtl.*, + struct.struct_code, + struct.sect_code, + mb.material_code, + mb.material_name, + user1.person_name AS process_optname, + sub.date_of_production + FROM + ST_IVT_CheckDtl CheckDtl + LEFT JOIN md_me_materialbase mb ON mb.material_id = CheckDtl.material_id + LEFT JOIN st_ivt_structattr struct ON struct.struct_id = CheckDtl.struct_id + LEFT JOIN sys_user user1 ON user1.user_id = CheckDtl.process_optid + LEFT JOIN ( + SELECT + MIN(date_of_production) AS date_of_production, + package_box_sn + FROM + pdm_bi_subpackagerelation + WHERE + 1=1 + group by package_box_sn + ) sub ON sub.package_box_sn = CheckDtl.storagevehicle_code + WHERE + CheckDtl.status = '1' + OPTION 输入.check_id <> "" + CheckDtl.check_id = 输入.check_id + ENDOPTION - order by CheckDtl.seq_no - ENDSELECT - ENDQUERY - ENDIF + order by CheckDtl.seq_no + ENDSELECT + ENDQUERY + ENDIF IF 输入.flag = "3" - PAGEQUERY - SELECT - struct.sect_id, - MAX(struct.sect_code) AS sect_code, - MAX(struct.sect_name) AS sect_name, - MAX(struct.struct_id) AS struct_id, - MAX(struct.struct_code) AS struct_code, - MAX(struct.struct_name) AS struct_name, - MAX(struct.storagevehicle_code) AS storagevehicle_code, - MAX(mb.material_id) AS material_id, - MAX(mb.material_name) AS material_name, - MAX(mb.material_code) AS material_code, - '1' AS base_qty, - '0' AS fac_qty, - '箱' AS qty_unit_name, - '1585604690706567168' AS measure_unit_id - FROM - st_ivt_structivt ivt - LEFT JOIN st_ivt_structattr struct ON ivt.struct_id = struct.struct_id - LEFT JOIN md_me_materialbase mb ON mb.material_id = ivt.material_id - WHERE - 1 = 1 - AND struct.lock_type = '1' - AND struct.lock_type <> '88' - AND IFNULL(struct.storagevehicle_code,'') <> '' + PAGEQUERY + SELECT + struct.sect_id, + MAX(struct.sect_code) AS sect_code, + MAX(struct.sect_name) AS sect_name, + MAX(struct.struct_id) AS struct_id, + MAX(struct.struct_code) AS struct_code, + MAX(struct.struct_name) AS struct_name, + MAX(struct.storagevehicle_code) AS storagevehicle_code, + MAX(mb.material_id) AS material_id, + MAX(mb.material_name) AS material_name, + MAX(mb.material_code) AS material_code, + '1' AS base_qty, + '0' AS fac_qty, + '箱' AS qty_unit_name, + '1585604690706567168' AS measure_unit_id + FROM + st_ivt_structivt ivt + LEFT JOIN st_ivt_structattr struct ON ivt.struct_id = struct.struct_id + LEFT JOIN md_me_materialbase mb ON mb.material_id = ivt.material_id + WHERE + 1 = 1 + AND struct.lock_type = '1' + AND IFNULL(struct.storagevehicle_code,'') <> '' - OPTION 输入.remark <> "" - (mb.material_code like 输入.remark or mb.material_name like 输入.remark) - ENDOPTION + OPTION 输入.remark <> "" + (mb.material_code like 输入.remark or mb.material_name like 输入.remark) + ENDOPTION - OPTION 输入.struct_code <> "" - struct.struct_code like 输入.struct_code - ENDOPTION + OPTION 输入.struct_code <> "" + struct.struct_code like 输入.struct_code + ENDOPTION - OPTION 输入.box_no <> "" - struct.storagevehicle_code like 输入.box_no - ENDOPTION + OPTION 输入.box_no <> "" + struct.storagevehicle_code like 输入.box_no + ENDOPTION - OPTION 输入.stor_id <> "" - struct.stor_id = 输入.stor_id - ENDOPTION + OPTION 输入.stor_id <> "" + struct.stor_id = 输入.stor_id + ENDOPTION - OPTION 输入.sect_id <> "" - struct.sect_id = 输入.sect_id - ENDOPTION + OPTION 输入.sect_id <> "" + struct.sect_id = 输入.sect_id + ENDOPTION - group by ivt.struct_id + group by ivt.struct_id - ENDSELECT - ENDPAGEQUERY - ENDIF - - IF 输入.flag = "4" - QUERY - SELECT - bucket.bucket_record_id, - bucket.bucketunique, - bucket.material_id, - bucket.ivt_level, - bucket.is_active, - bucket.quality_scode, - bucket.qty_unit_id, - bucket.qty_unit_name, - bucket.storage_qty AS ivt_qty, - bucket.storage_qty AS ivt_qty_ck, - bucket.pcsn, - bucket.storagevehicle_code, - bucket.storagevehicle_id, - StorageVehicleInfo.storagevehicle_type, - mb.material_code, - mb.material_name - FROM - MD_PB_BucketRecord bucket - INNER JOIN MD_PB_StorageVehicleInfo StorageVehicleInfo ON StorageVehicleInfo.storagevehicle_id = bucket.storagevehicle_id - LEFT JOIN md_me_materialbase mb ON mb.material_id = bucket.material_id - WHERE - 1 = 1 - AND bucket.STATUS = '03' - OPTION 输入.storagevehicle_code <> "" - bucket.storagevehicle_code = 输入.storagevehicle_code - ENDOPTION - ENDSELECT - ENDQUERY - ENDIF - - IF 输入.flag = "5" - QUERY - SELECT - checkdis.sect_id, - checkdis.sect_name, - checkdis.struct_id, - checkdis.struct_name, - checkdis.storagevehicle_id, - checkdis.storagevehicle_code, - checkdis.storagevehicle_type, - checkdis.bucketunique, - checkdis.material_id, - checkdis.pcsn, - checkdis.quality_scode, - checkdis.ivt_level, - checkdis.is_active, - checkdis.qty_unit_id, - checkdis.qty_unit_name, - checkdis.checkdtldis_id AS source_billdtl_id, - CheckMst.check_type AS source_bill_type, - checkdis.check_code AS source_bill_code, - 'ST_IVT_CheckMst' AS source_bill_table, - checkdis.ivt_qty, - CheckMst.stor_id, - checkdis.ivt_qty_ck - checkdis.ivt_qty AS mol_qty - FROM - ST_IVT_CheckDtlDis checkdis - inner join ST_IVT_CheckMst CheckMst on CheckMst.check_id=checkdis.check_id - where 1=1 and checkdis.ivt_qty_ck>checkdis.ivt_qty - OPTION 输入.storagevehicle_code <> "" - checkdis.storagevehicle_code = 输入.storagevehicle_code - ENDOPTION - OPTION 输入.check_id <> "" - checkdis.check_id = 输入.check_id - ENDOPTION - ENDSELECT - ENDQUERY - ENDIF - - IF 输入.flag = "6" - QUERY - SELECT - checkdis.sect_id, - checkdis.sect_name, - checkdis.struct_id, - checkdis.struct_name, - checkdis.storagevehicle_id, - checkdis.storagevehicle_code, - checkdis.storagevehicle_type, - checkdis.bucketunique, - checkdis.material_id, - checkdis.pcsn, - checkdis.quality_scode, - checkdis.ivt_level, - checkdis.is_active, - checkdis.qty_unit_id, - checkdis.qty_unit_name, - checkdis.checkdtldis_id AS source_billdtl_id, - CheckMst.check_type AS source_bill_type, - checkdis.check_code AS source_bill_code, - 'ST_IVT_CheckMst' AS source_bill_table, - checkdis.ivt_qty, - CheckMst.stor_id, - checkdis.ivt_qty - checkdis.ivt_qty_ck AS mol_qty - FROM - ST_IVT_CheckDtlDis checkdis - inner join ST_IVT_CheckMst CheckMst on CheckMst.check_id=checkdis.check_id - where 1=1 and checkdis.ivt_qty_ck "" - checkdis.storagevehicle_code = 输入.storagevehicle_code - ENDOPTION - OPTION 输入.check_id <> "" - checkdis.check_id = 输入.check_id - ENDOPTION - ENDSELECT - ENDQUERY - ENDIF - - IF 输入.flag = "7" - QUERY - SELECT - MoreOrLessDtl.struct_id, - MoreOrLessDtl.mol_id, - struct.struct_code - FROM - ST_IVT_MoreOrLessDtl MoreOrLessDtl - INNER JOIN ST_IVT_StructAttr struct ON struct.struct_id = MoreOrLessDtl.struct_id - INNER JOIN ST_IVT_MoreOrLessMst MoreOrLessMst ON MoreOrLessMst.mol_id = MoreOrLessDtl.mol_id - WHERE - 1 = 1 - AND MoreOrLessMst.`status` <> '99' - AND MoreOrLessMst.is_delete = '0' - OPTION 输入.check_code <> "" - MoreOrLessDtl.source_bill_code = 输入.check_code - ENDOPTION - GROUP BY mol_id,struct_id - ENDSELECT - ENDQUERY + ENDSELECT + ENDPAGEQUERY ENDIF IF 输入.flag = "8" - QUERY - SELECT - CheckDtl.checkdtl_id, - CheckDtl.check_id, - CheckDtl.check_code, - CheckDtl.seq_no, - CheckDtl.sect_id, - CheckDtl.sect_name, - CheckDtl.struct_id, - CheckDtl.struct_name, - CheckDtl.checkpoint_id, - CheckDtl.storagevehicle_id, - CheckDtl.storagevehicle_code, - CheckDtl.material_id, - ROUND(CheckDtl.base_qty,3) AS base_qty, - CheckDtl.qty_unit_id, - CheckDtl.qty_unit_name, - CheckDtl.STATUS, - CheckDtl.is_down, - CheckDtl.fac_qty, - CheckDtl.check_result, - CheckDtl.check_optid, - CheckDtl.check_optname, - CheckDtl.check_time, - CheckDtl.is_process, - CheckDtl.process_type, - CheckDtl.process_optid, - CheckDtl.process_time, - CheckDtl.remark, - struct.struct_code, - struct.sect_code, - mb.material_code, - mb.material_name, - user1.person_name AS process_optname - FROM - ST_IVT_CheckDtl CheckDtl - LEFT JOIN md_me_materialbase mb ON mb.material_id = CheckDtl.material_id - LEFT JOIN st_ivt_structattr struct ON struct.struct_id = CheckDtl.struct_id - LEFT JOIN sys_user user1 ON user1.user_id = CheckDtl.process_optid - WHERE - 1 = 1 - OPTION 输入.check_id <> "" - CheckDtl.check_id = 输入.check_id - ENDOPTION - OPTION 输入.checkdtl_id <> "" - CheckDtl.checkdtl_id = 输入.checkdtl_id - ENDOPTION - OPTION 输入.status <> "" - CheckDtl.status <= 输入.status - ENDOPTION - order by CheckDtl.seq_no - ENDSELECT - ENDQUERY - ENDIF + QUERY + SELECT + CheckDtl.checkdtl_id, + CheckDtl.check_id, + CheckDtl.check_code, + CheckDtl.seq_no, + CheckDtl.sect_id, + CheckDtl.sect_name, + CheckDtl.struct_id, + CheckDtl.struct_name, + CheckDtl.checkpoint_id, + CheckDtl.storagevehicle_id, + CheckDtl.storagevehicle_code, + CheckDtl.material_id, + ROUND(CheckDtl.base_qty,3) AS base_qty, + CheckDtl.qty_unit_id, + CheckDtl.qty_unit_name, + CheckDtl.STATUS, + CheckDtl.is_down, + CheckDtl.fac_qty, + CheckDtl.check_result, + CheckDtl.check_optid, + CheckDtl.check_optname, + CheckDtl.check_time, + CheckDtl.is_process, + CheckDtl.process_type, + CheckDtl.process_optid, + CheckDtl.process_time, + CheckDtl.remark, + struct.struct_code, + struct.sect_code, + mb.material_code, + mb.material_name, + user1.person_name AS process_optname + FROM + ST_IVT_CheckDtl CheckDtl + LEFT JOIN md_me_materialbase mb ON mb.material_id = CheckDtl.material_id + LEFT JOIN st_ivt_structattr struct ON struct.struct_id = CheckDtl.struct_id + LEFT JOIN sys_user user1 ON user1.user_id = CheckDtl.process_optid + WHERE + 1 = 1 + OPTION 输入.check_id <> "" + CheckDtl.check_id = 输入.check_id + ENDOPTION + OPTION 输入.checkdtl_id <> "" + CheckDtl.checkdtl_id = 输入.checkdtl_id + ENDOPTION + OPTION 输入.status <> "" + CheckDtl.status <= 输入.status + ENDOPTION + order by CheckDtl.seq_no + ENDSELECT + ENDQUERY + ENDIF IF 输入.flag = "9" PAGEQUERY @@ -519,57 +380,6 @@ ENDPAGEQUERY ENDIF - IF 输入.flag = "11" - QUERY - SELECT - MAX(attr.sect_id) AS sect_id, - MAX(attr.sect_name) AS sect_name, - MAX(attr.struct_id) AS struct_id, - MAX(attr.struct_name) AS struct_name, - MAX(attr.storagevehicle_code) AS storagevehicle_code, - MAX(mater.material_id) AS material_id, - MAX(mater.base_unit_id) AS qty_unit_id, - 'KG' AS qty_unit_name - FROM - st_ivt_structivt ivt - LEFT JOIN st_ivt_structattr attr ON ivt.struct_id = attr.struct_id - LEFT JOIN md_me_materialbase mater ON ivt.material_id = mater.material_id - WHERE - IFNULL(attr.storagevehicle_code,'') <> '' - AND attr.lock_type = '1' - - OPTION 输入.stor_id <> "" - attr.stor_id = 输入.stor_id - ENDOPTION - - OPTION 输入.sect_id <> "" - attr.sect_id = 输入.sect_id - ENDOPTION - - group by attr.struct_code - - ENDSELECT - ENDQUERY - ENDIF - - IF 输入.flag = "12" - QUERY - SELECT - * - FROM - st_ivt_structivt ivt - LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = ivt.pcsn - WHERE - 1 = 1 - - OPTION 输入.storagevehicle_code <> "" - sub.package_box_sn = 输入.storagevehicle_code - ENDOPTION - - ENDSELECT - ENDQUERY - ENDIF - IF 输入.flag = "13" QUERY SELECT diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/check/AddDialog.vue b/lms/nladmin-ui/src/views/wms/st/inStor/check/AddDialog.vue index fd5ba97..ee1c8aa 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/check/AddDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/inStor/check/AddDialog.vue @@ -9,25 +9,11 @@ @close="close" > - + - - - - - - - - + - 一键保存 保存 关闭 @@ -104,7 +90,6 @@
盘点明细 - - - 取 消 - 确认 @@ -244,67 +220,6 @@ export default { this.add_flag = true } }, - isCanDel(index, row, type) { - if (type === 1) { - if (row.status === '1') { - return false - } else { - return true - } - } - }, - isShow(index, row, type) { - const num = parseFloat(row.base_qty) - if (type === 1) { - if (row.status > '3') { - return false - } else { - if (num > 0) { - return false - } else { - if (row.edit) { - return false - } else { - return true - } - } - } - } else if (type === 2) { - if (row.status > '2') { - return false - } else { - if (row.edit) { - return false - } else { - return true - } - } - } else if (type === 3) { - if (row.status > '3') { - return true - } else { - if (num > 0) { - return true - } else { - if (row.edit) { - return true - } else { - return false - } - } - } - } else if (type === 4) { - if (row.status > '2') { - return true - } else { - if (row.edit) { - return true - } else { - return false - } - } - } - }, setForm(row) { this.dialogVisible = true this.form = row @@ -312,22 +227,6 @@ export default { bill_statusFormat(row, column) { return this.dict.label.check_dtl_status[row.status] }, - check_resultFormat(row, column) { - return this.dict.label.check_result[row.check_result] - }, - addrow() { - if (this.nowrow === null) { - this.crud.notify('请先选中一条已存在的库存明细!', CRUD.NOTIFICATION_TYPE.INFO) - return false - } - this.tableData.push({ check_id: this.form.check_id, check_code: this.form.check_code, checkdtl_id: '', sect_id: this.nowrow.sect_id, sect_name: this.nowrow.sect_name, struct_id: this.nowrow.struct_id, struct_name: this.nowrow.struct_name, storagevehicle_id: this.nowrow.storagevehicle_id, storagevehicle_code: this.nowrow.storagevehicle_code, status: '01', material_id: '', material_name: '', base_qty: '0', qty_unit_id: '42', qty_unit_name: '桶', is_down: '0', fac_qty: '', check_result: '0', edit: false }) - this.form.dtl_num = this.tableData.length - }, - async queryMater(index, row) { - this.materShow = true - this.nowindex = index - this.nowrow = row - }, tableChanged2(row) { for (let i = 0; i < this.tableData.length; i++) { if ((this.tableData[i].material_id === row.material_id) && (this.tableData[i].storagevehicle_code === this.nowrow.storagevehicle_code) && (this.tableData[i].struct_id === this.nowrow.struct_id)) { @@ -340,29 +239,6 @@ export default { this.nowrow.material_name = row.material_name this.tableData.splice(this.nowindex, 1, this.nowrow) // 通过splice 替换数据 触发视图更新 }, - handleEdit(index, row) { - // 判断是否可以关闭编辑状态 - if (!row.edit) { - const num = parseFloat(row.base_qty) - const fac_qty = parseFloat(row.fac_qty) - if (num <= 0 && fac_qty <= 0) { - this.crud.notify('不允许新增明细,盘点数量为0!', CRUD.NOTIFICATION_TYPE.INFO) - return false - } - if (!row.material_id) { - this.crud.notify('物料不可为空!', CRUD.NOTIFICATION_TYPE.INFO) - return false - } - } - row.edit = !row.edit - this.tableData.splice(index, 1, row) // 通过splice 替换数据 触发视图更新 - }, - deleteRow(index, rows) { - rows.splice(index, 1) - this.nowindex = '' - this.nowrow = null - this.form.detail_count = this.tableData.length - }, submitCheck() { check.confirm({ 'row': this.form, 'rows': this.tableData }).then(res => { this.dialogVisible = false @@ -370,21 +246,6 @@ export default { this.crud.notify('操作成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) }) }, - saveCheck() { - if (this.tableData.length === 0) { - this.crud.notify('请至少选择一条明细', CRUD.NOTIFICATION_TYPE.INFO) - return false - } - for (let i = 0; i < this.tableData.length; i++) { - if (!this.tableData[i].edit) { - this.crud.notify('尚有未完成编辑的物料明细序号' + (i + 1) + ',请检查!') - return false - } - } - check.saveCheck({ 'row': this.form, 'rows': this.tableData }).then(res => { - this.dialogVisible = false - }) - }, openDtlView(row) { this.paramDtlView = row.storagevehicle_code this.dtlViewShow = true diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/check/RepairDialog.vue b/lms/nladmin-ui/src/views/wms/st/inStor/check/RepairDialog.vue index 5579b06..2c90ecf 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/check/RepairDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/inStor/check/RepairDialog.vue @@ -8,7 +8,7 @@ destroy-on-close @close="close" > - + @@ -37,7 +37,7 @@ import CRUD, { header, presenter } from '@crud/crud' import check from '@/views/wms/st/inStor/check/check' export default { - name: 'ProcessDialog', + name: 'RepairDialog', mixins: [presenter(), header()], props: { dialogShow: { diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/check/check.js b/lms/nladmin-ui/src/views/wms/st/inStor/check/check.js index 94ec2c6..e6374a8 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/check/check.js +++ b/lms/nladmin-ui/src/views/wms/st/inStor/check/check.js @@ -38,19 +38,6 @@ export function getOutBillDtl2(params) { params }) } -export function getOutBillDis(params) { - return request({ - url: '/api/check/getOutBillDis', - method: 'get', - params - }) -} -export function getInvTypes() { - return request({ - url: '/api/check/getInvTypes', - method: 'get' - }) -} export function insertDtl(data) { return request({ url: '/api/check/insertDtl', @@ -80,27 +67,6 @@ export function handdown(data) { data }) } -export function saveCheck(data) { - return request({ - url: '/api/check/saveCheck', - method: 'post', - data - }) -} -export function process0(data) { - return request({ - url: '/api/check/process0', - method: 'post', - data - }) -} -export function process1(data) { - return request({ - url: '/api/check/process1', - method: 'post', - data - }) -} export function disposeConfirm(data) { return request({ url: '/api/check/disposeConfirm', @@ -108,13 +74,7 @@ export function disposeConfirm(data) { data }) } -export function allInsert(data) { - return request({ - url: '/api/check/allInsert', - method: 'post', - data - }) -} + export function confirmBtn(data) { return request({ url: '/api/check/confirmBtn', @@ -129,4 +89,4 @@ export function repairSubmit(data) { data }) } -export default { add, edit, del, getOutBillDtl, getStructIvt, getOutBillDtl2, confirm, getInvTypes, saveCheck, process0, getOutBillDis, process1, disposeConfirm, allInsert, confirmBtn, repairSubmit } +export default { add, edit, del, getOutBillDtl, getStructIvt, getOutBillDtl2, confirm, disposeConfirm, confirmBtn, repairSubmit } diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/check/index.vue b/lms/nladmin-ui/src/views/wms/st/inStor/check/index.vue index e3937e9..4af3d45 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/check/index.vue +++ b/lms/nladmin-ui/src/views/wms/st/inStor/check/index.vue @@ -288,7 +288,6 @@ export default { return row.status !== '1' }, [CRUD.HOOK.beforeRefresh]() { - this.crud.query.buss_type = '' this.handleCurrentChange(null) }, handleSelectionChange(val, row) { @@ -354,11 +353,6 @@ export default { this.$refs.child.setForm(this.currentRow) } }, - confirm() { - if (this.currentRow !== null) { - this.$refs.child2.setForm(this.currentRow) - } - }, downdtl() { if (this.currentRow !== null) { crud.downloadLoading = true diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue index 403bacc..15735ec 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/AddDialog.vue @@ -58,7 +58,7 @@