diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java index 82956087b..c4cf60834 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pda/controller/SlitterPdaController.java @@ -163,6 +163,12 @@ public class SlitterPdaController { public ResponseEntity doSubRollWeightBinding(@RequestBody JSONObject param) { return new ResponseEntity<>(slitterDevices.doSubRollWeightBinding(param), HttpStatus.OK); } + @PostMapping("/doSubRollWeightBindingTip") + @Log("手持子卷重量绑定提示") + @SaIgnore + public ResponseEntity doSubRollWeightBindingTip(@RequestBody JSONObject param) { + return new ResponseEntity<>(slitterDevices.doSubRollWeightBindingTip(param), HttpStatus.OK); + } @PostMapping("/doUpShaftToSlitter") @Log("手持分切机上气胀轴") @SaIgnore diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.java index 2a9dbc3d5..dd5960fcb 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.java @@ -27,4 +27,11 @@ public interface SchBaseTaskMapper extends BaseMapper { * @return / */ List getTaskByPlanQzzNoAndDevice(String resourceName); + + /** + * 检测点位起点的任务是否存在 + * @param code + * @return + */ + List checkHaveStartTask(String code); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.xml index 2bb3eb947..0732f1748 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/dao/mapper/SchBaseTaskMapper.xml @@ -7,6 +7,7 @@ SELECT * FROM sch_base_task WHERE task_status '071' AND task_status ]]> '07' + AND is_delete = '0' AND ( point_code1 = #{code} OR point_code2 = #{code} OR point_code3 = #{code} @@ -20,4 +21,11 @@ AND p.resource_name = #{resourceName} AND IFNULL(p.qzzno, '') ]]> '' + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/IschBaseTaskService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/IschBaseTaskService.java index 06cf7e932..13b3e98b1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/IschBaseTaskService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/IschBaseTaskService.java @@ -87,6 +87,13 @@ public interface IschBaseTaskService extends IService { * @return / */ Boolean checkHaveTaskByZcPoint(BstIvtCutpointivt point); + + /** + * 判断是否有起点未完成的任务 + * @param pointCode + * @return + */ + List checkHaveStartTask(String pointCode); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java index 2cff1f339..e7c0c6ce1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/task/service/impl/SchBaseTaskServiceImpl.java @@ -161,6 +161,11 @@ public class SchBaseTaskServiceImpl extends ServiceImpl 0; } + @Override + public List checkHaveStartTask(String pointCode) { + return schBaseTaskMapper.checkHaveStartTask(pointCode); + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml index f8eea79df..7f8d7e2f5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml @@ -60,7 +60,7 @@ AND bcp.point_location = #{location} AND 0 = ( SELECT COUNT(*) FROM sch_base_task t - WHERE t.task_status '071' AND t.task_status ]]> '07' AND (t.point_code2 = bcp.point_code OR t.point_code2 = bcp.truss_point_code1 + WHERE t.task_status '071' AND t.task_status ]]> '07' AND t.is_delete = '0' AND (t.point_code2 = bcp.point_code OR t.point_code2 = bcp.truss_point_code1 OR t.point_code4 = bcp.truss_point_code1 OR t.point_code2 = bcp.truss_point_code2 OR t.point_code4 = bcp.truss_point_code2) ) AND 0 = ABS(bcp.sort_seq - #{sortSeq}) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java index 453732827..303107d37 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java @@ -291,4 +291,11 @@ public interface SlitterService { * @return */ JSONObject doUpShaftToSlitterByDeviceTip(JSONObject param); + + /** + * 子卷维护重量提示 + * @param param + * @return + */ + JSONObject doSubRollWeightBindingTip(JSONObject param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 73ca8abd4..64ee63031 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -530,8 +530,8 @@ public class SlitterServiceImpl implements SlitterService { device.getSort_seq(), getPointLocationInCutDevice(getNumberByResourceCode(demoPlan.getResource_name()), area)); if (emptyPoints.size() == 0) { - log.error("分切机【" + device.getExt_code() + "】找不到对应的对接位!"); - throw new BadRequestException("分切机【" + device.getExt_code() + "】找不到对应的对接位!"); + log.error("分切机【" + device.getExt_code() + "】找不到对应的对接位, 或已存在任务!"); + throw new BadRequestException("分切机【" + device.getExt_code() + "】找不到对应的对接位,或已存在任务!"); } // 枷锁 BstIvtCutpointivt emptyPoint = emptyPoints.get(0); @@ -1549,7 +1549,7 @@ public class SlitterServiceImpl implements SlitterService { // param: point_code String pointCode = param.getString("point_code"); // 校验是否存在任务 - List taskList = taskService.checkHaveTask(pointCode); + List taskList = taskService.checkHaveStartTask(pointCode); if (taskList.size() > 0) { throw new BadRequestException("操作失败,点位[" + pointCode + "]存在未完成的任务!"); } @@ -1869,4 +1869,22 @@ public class SlitterServiceImpl implements SlitterService { res.put("tip", tips.stream().collect(Collectors.joining(","))); return res; } + + @Override + public JSONObject doSubRollWeightBindingTip(JSONObject param) { + JSONObject res = new JSONObject(); + res.put("status", HttpStatus.HTTP_OK); + //container_name: 子卷号 + String containerName = param.getString("container_name"); + Assert.notBlank(containerName, "子卷号不能为空!"); + PdmBiSlittingproductionplan plan = slittingproductionplanService.getByContainerName(containerName); + if (ObjectUtil.isEmpty(plan)) { + res.put("tip", "子卷信息在系统中不存在,请核对子卷号!"); + return res; + } + String rollWeight = "子卷毛重:【" + plan.getWeight() + "】"; + String paperWeight = "纸管重量:【" + plan.getPaper_weight() + "】"; + res.put("tip", "系统记录的重量数值:" + rollWeight + ", " + paperWeight); + return res; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java index 175711c2c..50780f10f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/service/impl/BakingServiceImpl.java @@ -10,6 +10,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.b_lms.sch.point.service.IschBasePointService; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.RedisUtils; @@ -619,32 +620,42 @@ public class BakingServiceImpl implements BakingService { } map.put("point_type", "1"); // B2出来要根据锂电或者标箔去不同地方(状态5) + String orderType = raw_jo.getString("order_type"); + JSONObject lithiumPoint = null; + String endPointCode = null; if (jsonPoint.getString("product_area").equals("B2")) { - String orderType = raw_jo.getString("order_type"); // order_type 1-标箔;2-锂电 if ("2".equals(orderType)) { map.put("point_type", "5"); + // 如果是B2锂电就优先去表处中转区 + lithiumPoint = WQL.getWO("PDA_OVENINANDOUT_01").addParam("flag", "5").process().uniqueResult(0); + if (ObjectUtil.isNotEmpty(lithiumPoint)) { + endPointCode = lithiumPoint.getString("point_code"); + } } } - JSONObject jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); - // 如果为空 - if (ObjectUtil.isEmpty(jsonCooIvt) && !jsonPoint.getString("product_area").equals("B2")) { - if (StrUtil.equals(jsonPoint.getString("point_location"), "0")) { - map.put("point_location", "1"); + if (ObjectUtil.isEmpty(lithiumPoint)) { + JSONObject jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); + // 如果为空 + if (ObjectUtil.isEmpty(jsonCooIvt) && !jsonPoint.getString("product_area").equals("B2")) { + if (StrUtil.equals(jsonPoint.getString("point_location"), "0")) { + map.put("point_location", "1"); + } + if (StrUtil.equals(jsonPoint.getString("point_location"), "1")) { + map.put("point_location", "0"); + } + jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); } - if (StrUtil.equals(jsonPoint.getString("point_location"), "1")) { - map.put("point_location", "0"); + if (ObjectUtil.isEmpty(jsonCooIvt)) { + throw new BadRequestException("冷却区空位不足"); } - jsonCooIvt = WQL.getWO("PDA_OVENINANDOUT_01").addParamMap(map).process().uniqueResult(0); - } - if (ObjectUtil.isEmpty(jsonCooIvt)) { - throw new BadRequestException("冷却区空位不足"); + endPointCode = jsonCooIvt.getString("full_point_code"); } // 3.创建任务 JSONObject param = new JSONObject(); param.put("point_code1", point_code1); - param.put("point_code2", jsonCooIvt.getString("full_point_code")); + param.put("point_code2", endPointCode); param.put("container_name", container_name); param.put("product_area", jsonPoint.getString("product_area")); @@ -673,7 +684,7 @@ public class BakingServiceImpl implements BakingService { jsonCool.put("qty_unit_id", jsonMater.get("base_unit_id")); jsonCool.put("task_id", task_id); jsonCool.put("start_point_code", point_code1); - jsonCool.put("end_point_code", jsonCooIvt.getString("full_point_code")); + jsonCool.put("end_point_code", endPointCode); jsonCool.put("create_mode", "03"); jsonCool.put("create_id", currentUserId); jsonCool.put("create_name", currentUsername); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_OVENINANDOUT_01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_OVENINANDOUT_01.wql index 1f3600ce1..32181fc70 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_OVENINANDOUT_01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_OVENINANDOUT_01.wql @@ -341,3 +341,25 @@ ENDSELECT ENDQUERY ENDIF + IF 输入.flag = "5" + QUERY + SELECT + * + FROM + `sch_base_point` p + WHERE + p.region_code = 'B2-BCZZ' + AND p.point_type = '8' + AND p.point_status = '1' + AND 0 = ( + SELECT + COUNT(*) + FROM + sch_base_task t + WHERE + t.task_status < '07' + AND t.is_delete = '0' + AND (t.point_code1 = p.point_code OR t.point_code2 = p.point_code OR t.point_code3 = p.point_code OR t.point_code4 = p.point_code)) + ENDSELECT + ENDQUERY + ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java index 5566f45a4..9ad251720 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/tasks/InCoolIvtTask.java @@ -114,7 +114,29 @@ public class InCoolIvtTask extends AbstractAcsTask { // 校验终点是否存在 JSONObject jsonIvt = ivtTab.query("full_point_code ='" + point_code2 + "'").uniqueResult(0); if (ObjectUtil.isEmpty(jsonIvt)) { - throw new BadRequestException("终点未找到可用点位:" + point_code2); + // 判断是不是暂存位 + JSONObject zzPoint = pointTab.query("point_code ='" + point_code2 + "'").uniqueResult(0); + if (ObjectUtil.isEmpty(zzPoint)) { + throw new BadRequestException("终点未找到可用点位:" + point_code2); + } + zzPoint.put("material_code", jsonTask.getString("material_code")); + // 有料 + zzPoint.put("point_status", "2"); + zzPoint.put("update_optid", SecurityUtils.getCurrentUserId()); + zzPoint.put("update_optname", SecurityUtils.getCurrentNickName()); + zzPoint.put("update_time", DateUtil.now()); + pointTab.update(zzPoint); + } else { + // 更新冷却库存状态 + JSONObject raw_jo = WQLObject.getWQLObject("pdm_bi_rawfoilworkorder").query("container_name = '" + jsonTask.getString("material_code") + "'").uniqueResult(0); + + jsonIvt.put("full_point_status", "02"); + jsonIvt.put("cool_ivt_status", "04"); + jsonIvt.put("instorage_time", DateUtil.now()); + jsonIvt.put("container_name", raw_jo.getString("container_name")); + jsonIvt.put("workorder_id", raw_jo.getString("workorder_id")); + jsonIvt.put("ivt_qty", raw_jo.getString("qty")); + ivtTab.update(jsonIvt); } // 更新暂存位状态为空位 @@ -123,18 +145,6 @@ public class InCoolIvtTask extends AbstractAcsTask { jsonPoint.put("material_code", ""); pointTab.update(jsonPoint); - // 更新冷却库存状态 - JSONObject raw_jo = WQLObject.getWQLObject("pdm_bi_rawfoilworkorder").query("container_name = '" + jsonTask.getString("material_code") + "'").uniqueResult(0); - - jsonIvt.put("full_point_status", "02"); - jsonIvt.put("cool_ivt_status", "04"); - jsonIvt.put("instorage_time", DateUtil.now()); - jsonIvt.put("container_name", raw_jo.getString("container_name")); - jsonIvt.put("workorder_id", raw_jo.getString("workorder_id")); - jsonIvt.put("ivt_qty", raw_jo.getString("qty")); - ivtTab.update(jsonIvt); - - // 将入冷却信息发送给mes JSONObject param = new JSONObject(); String userName = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("MES_USERNAME").getValue();