diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java index 1968c73e5..0c3fad90d 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/WmsToAcsService.java @@ -39,4 +39,10 @@ public interface WmsToAcsService { * @return / */ JSONObject canFinishPreviousTask(JSONArray param); + /** + * 通知ACS可以完成任务 + * @param param / + * @return / + */ + JSONObject toAcsGxInStorage(JSONArray param); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java index adbb58489..c2a8c4112 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/WmsToAcsServiceImpl.java @@ -52,4 +52,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { return AcsUtil.notifyAcs(api, param); } + @Override + public JSONObject toAcsGxInStorage(JSONArray param) { + return AcsUtil.notifyAcs4("/api/wms/getTubeMsg", param); + } + } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/controller/GxPdaController.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/controller/GxPdaController.java index d0a3169dd..3a9de861f 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/controller/GxPdaController.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/controller/GxPdaController.java @@ -33,7 +33,7 @@ public class GxPdaController { @PostMapping("/confirmedInStorage") @Log("管芯确认入库") public ResponseEntity confirmedInStorage(@RequestBody JSONObject param) { - return new ResponseEntity<>(gxPdaService.confirmedInStorage(param), HttpStatus.OK); + return new ResponseEntity<>(gxPdaService.confirmedInStorageV2(param), HttpStatus.OK); } @PostMapping("/remainingQty") @Log("管芯剩余数量") diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/GxPdaService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/GxPdaService.java index c5b5fd1ff..f47ffc639 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/GxPdaService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/GxPdaService.java @@ -22,6 +22,13 @@ public interface GxPdaService { */ JSONObject confirmedInStorage(JSONObject param); + /** + * 管芯入库2:当前使用版本 + * @param param / + * @return / + */ + JSONObject confirmedInStorageV2(JSONObject param); + /** * 管芯剩余数量 * @return diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/GxPdaServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/GxPdaServiceImpl.java index f88eedab2..0e05a17af 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/GxPdaServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/st/service/impl/GxPdaServiceImpl.java @@ -12,12 +12,11 @@ import org.nl.wms.basedata.master.classification.service.IMdBaseClassstandardSer import org.nl.wms.basedata.master.classification.service.dao.MdBaseClassstandard; import org.nl.wms.basedata.material.dao.MdMeMaterialbase; import org.nl.wms.basedata.material.service.ImdMeMaterialbaseService; +import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.pda.st.service.GxPdaService; import org.nl.wms.sch.point.service.ISchBasePointService; import org.nl.wms.sch.point.service.dao.SchBasePoint; import org.nl.wms.sch.task_manage.core.constant.GeneralDefinition; -import org.nl.wms.sch.task_manage.core.enums.TaskFinishedTypeEnum; -import org.nl.wms.sch.task_manage.tasks.nbj.GxInStorageTask; import org.nl.wms.sch.task_manage.tasks.nbj.GxOutStorageTask; import org.nl.wms.util.URLEnum; import org.slf4j.MDC; @@ -30,8 +29,6 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; -import static org.nl.wms.util.PointUtils.clearPointNotUpdate; - /** * @Author: lyd * @Description: @@ -48,8 +45,12 @@ public class GxPdaServiceImpl implements GxPdaService { private ISchBasePointService pointService; @Autowired private GxOutStorageTask gxOutStorageTask; + @Autowired + private WmsToAcsService wmsToAcsService; + @Override public JSONArray getGxSpecification() { + // todo: 可能维护到物料表中!!! MdBaseClassstandard one = classstandardService.getOne(new LambdaQueryWrapper() .eq(MdBaseClassstandard::getClass_code, "0002")); List list = classstandardService.list(new LambdaQueryWrapper() @@ -66,6 +67,7 @@ public class GxPdaServiceImpl implements GxPdaService { } @Override + @Deprecated @Transactional(rollbackFor = Exception.class) public JSONObject confirmedInStorage(JSONObject param) { MDC.put("tag_name", TagNameEnum.GX_IN.getTag()); @@ -133,6 +135,62 @@ public class GxPdaServiceImpl implements GxPdaService { return result; } + @Override + @Transactional(rollbackFor = Exception.class) + public JSONObject confirmedInStorageV2(JSONObject param) { + MDC.put("tag_name", TagNameEnum.GX_IN.getTag()); + log.info("手持确认管芯入库 - {}", param); + // 获取管芯库入口 + List gxRks = pointService.getPointByConditions("A1", "A1-GXK", + "1", null, null, false); + // 将每一根存到物料表中,并且创建任务 + int gxNumber = param.getInteger("gx_number"); + String materialCode = param.getString("material_code"); + String materialSpec = param.getString("material_spec"); + if (gxNumber > 5) { + throw new BadRequestException("一次性最多只能入5个管芯"); + } + // 找管芯库中的空位。 + List allGxPoints = pointService.getPointByConditions("A1", "A1-GXK", + "3", "1", null, true); + if (allGxPoints.size() < gxNumber) { + log.warn("管芯库不够存放,只够存放{}个管芯", allGxPoints.size()); + } + gxNumber = Math.min(gxNumber, allGxPoints.size()); + // 更新点位信息 + List updatePoint = new ArrayList<>(); + for (int i = 0; i < gxNumber; i++) { + SchBasePoint point = allGxPoints.get(i); + point.setPoint_status("2"); + point.setVehicle_code(materialCode); + point.setRemark(materialSpec); + updatePoint.add(point); + log.info("点位 {} 存放规格 {} 管芯", point.getPoint_code(), materialSpec); + } + // acs参数:gx_code, device_code + JSONArray acsArray = new JSONArray(); + JSONObject acs = new JSONObject(); + acs.put("product_area", URLEnum.ACS_URL_A1.getProduct_area()); + acs.put("device_code", gxRks.get(0).getPoint_code()); + for (int i = 0; i < gxNumber; i++) { + // 查找点位最终一次性发给ACS + acs.put("to_barcode" + (i + 1), materialCode); + acs.put("to_target" + (i + 1), allGxPoints.get(i).getPoint_code()); + acsArray.add(acs); + } + // 调用ACS + log.info("调用ACS管芯入库的参数 - {}", acsArray); + JSONObject jsonObject = wmsToAcsService.toAcsGxInStorage(acsArray); + log.info("调用ACS管芯入库的反馈 - {}", jsonObject); + // 更新数据 + pointService.updateBatchById(updatePoint); + JSONObject result = new JSONObject(); + result.put("status", HttpStatus.OK.value()); + result.put("message", "管芯入库全部请求成功!"); + result.put("data", new JSONObject()); + return result; + } + @Override public int remainingQty() { List allGxPoints = pointService.getPointByConditions("A1", "A1-GXK", @@ -142,6 +200,7 @@ public class GxPdaServiceImpl implements GxPdaService { /** * 管芯出库需要创建任务 + * * @param param / * @return */ @@ -160,7 +219,7 @@ public class GxPdaServiceImpl implements GxPdaService { } // 判断还有几个同规格的管芯, 没任务 List allPoint = pointService.getAllBusinessNotTaskPoint("A1", "A1-GXK", - "3", "2", materialCode) ; + "3", "2", null, materialCode); if (allPoint.size() == 0) { throw new BadRequestException("管芯不存在规格为[" + materialSpec + "]的管芯!"); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCallEmptyToWeighTemp.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCallEmptyToWeighTemp.java index 5d3dd12a5..57c2889f6 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCallEmptyToWeighTemp.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/quartz/AutoCallEmptyToWeighTemp.java @@ -29,7 +29,7 @@ public class AutoCallEmptyToWeighTemp { MDC.put("tag_name", TagNameEnum.AUTO_CALL_EMPTY_BY_CZZC.getTag()); log.info("称重暂存位叫空自动任务开始执行..."); List allZcPoints = pointService.getAllBusinessNotTaskPoint("A1", "A1-CZZC", - "1", "1", null); + "1", "1", null, null); for (SchBasePoint point : allZcPoints) { try { JSONObject taskParam = new JSONObject(); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java index c36984566..38e7e1901 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/ISchBasePointService.java @@ -106,7 +106,9 @@ public interface ISchBasePointService extends IService { * @param pointType 点位类型 * @param pointStatus 点位状态 * @param vehicleType 载具类型 + * @param vehicleCode 载具编码 * @return / */ - List getAllBusinessNotTaskPoint(String area, String region, String pointType, String pointStatus, String vehicleType); + List getAllBusinessNotTaskPoint(String area, String region, String pointType, + String pointStatus, String vehicleType, String vehicleCode); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java index eb141c78f..bbb1ec930 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.java @@ -35,5 +35,6 @@ public interface SchBasePointMapper extends BaseMapper { */ List getHotNotTaskPoint(String area, String region, String pointType, String pointStatus); - List getAllBusinessNotTaskPoint(String area, String region, String pointType, String pointStatus, String vehicleType); + List getAllBusinessNotTaskPoint(String area, String region, String pointType, String pointStatus, + String vehicleType, String vehicleCode); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml index 8830ea4b3..5624be383 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/dao/mapper/SchBasePointMapper.xml @@ -56,6 +56,9 @@ AND p.vehicle_type = #{vehicleType} + + AND p.vehicle_code = #{vehicleCode} + AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status '07' 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)) diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java index a4e556cbc..4e0a7c0be 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java @@ -232,8 +232,9 @@ public class SchBasePointServiceImpl extends ServiceImpl getAllBusinessNotTaskPoint(String area, String region, String pointType, String pointStatus, String vehicleType) { - return pointMapper.getAllBusinessNotTaskPoint(area, region, pointType, pointStatus, vehicleType); + public List getAllBusinessNotTaskPoint(String area, String region, String pointType, + String pointStatus, String vehicleType, String vehicleCode) { + return pointMapper.getAllBusinessNotTaskPoint(area, region, pointType, pointStatus, vehicleType, vehicleCode); } } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/CzzcCallEmptyAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/CzzcCallEmptyAGVTask.java index 03a3ae09a..fb460a641 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/CzzcCallEmptyAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/CzzcCallEmptyAGVTask.java @@ -42,7 +42,7 @@ public class CzzcCallEmptyAGVTask extends AbstractTask { public void createCompletion(SchBaseTask task) { // 查找货梯没任务有载具的点位 List startPoints = pointService.getAllBusinessNotTaskPoint("A1", "A1-LIFT-AREA", - "1", "2", null); + "1", "2", null, null); if (startPoints.size() == 0) { throw new BadRequestException("货梯没有可用点位!"); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/SubRollDownAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/SubRollDownAGVTask.java index 9e0e7ceec..6f9f3b078 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/SubRollDownAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/nbj/SubRollDownAGVTask.java @@ -44,7 +44,7 @@ public class SubRollDownAGVTask extends AbstractTask { public void createCompletion(SchBaseTask task) { // 查找空位没任务的货梯 List lifts = pointService.getAllBusinessNotTaskPoint("A1", "A1-LIFT-AREA", - "1", "1", null); + "1", "1", null, null); if (lifts.size() == 0) { throw new BadRequestException("暂无可用的货梯!"); } diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/other/WasteFoilAGVTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/other/WasteFoilAGVTask.java index 47266c06b..4595d9f81 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/other/WasteFoilAGVTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/other/WasteFoilAGVTask.java @@ -54,7 +54,7 @@ public class WasteFoilAGVTask extends AbstractTask { // 第一次 // 查找废箔起点 List fbPoints = pointService.getAllBusinessNotTaskPoint("A1", "A1-FB", - "1", null, null); + "1", null, null, null); SchBasePoint fbPoint = fbPoints.get(0); task.setPoint_code1(fbPoint.getPoint_code()); task.setPoint_code2(nowPointCode); @@ -62,7 +62,7 @@ public class WasteFoilAGVTask extends AbstractTask { // 最后一次 // 查找废箔终点 List fbPoints = pointService.getAllBusinessNotTaskPoint("A1", "A1-FB", - "2", null, null); + "2", null, null, null); SchBasePoint fbPoint = fbPoints.get(0); task.setPoint_code1(row.getString(indexTask - 1)); task.setPoint_code2(fbPoint.getPoint_code()); diff --git a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterSendRollTrussTask.java b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterSendRollTrussTask.java index e8256c3cb..c91d8712d 100644 --- a/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterSendRollTrussTask.java +++ b/lms2/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/tasks/slitter/SlitterSendRollTrussTask.java @@ -44,7 +44,7 @@ public class SlitterSendRollTrussTask extends AbstractTask { // 起点一样不记录,直接创建入库任务 // 查找空位终点即可 List allSjgkPoints = pointService.getAllBusinessNotTaskPoint("A1", - "A1-SJGK", "3", "1", null); + "A1-SJGK", "3", "1", null, null); if (allSjgkPoints.size() == 0) { throw new BadRequestException("收卷辊不存在空位!"); }