diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index fc3aefb..baf7a5c 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -1305,9 +1305,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { status.put("device_status", driver.getStatus()); status.put("error", driver.getError()); status.put("open_time", driver.getOpen_time()); - status.put("stand_time", driver.getStandby_time() / 3600); - status.put("work_time", driver.getProduction_time() / 3600); - status.put("error_time", driver.getError_time() / 3600); +// status.put("stand_time", driver.getStandby_time() / 3600); +// status.put("work_time", driver.getProduction_time() / 3600); +// status.put("error_time", driver.getError_time() / 3600); status.put("real_qty", driver.getQty()); status.put("current_weight", driver.getWeight()); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/FjPintInfoVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/FjPintInfoVo.java new file mode 100644 index 0000000..a33e9a8 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/FjPintInfoVo.java @@ -0,0 +1,14 @@ +package org.nl.wms.cockpit.service.dao; + +import lombok.Data; + +/** + * @author Administrator + * 点位信息(对接位、货架) + */ +@Data +public class FjPintInfoVo { + private String pointCode; + private String materialCode; + private String materialModel; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/HchjMaterialInfo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/HchjMaterialInfo.java new file mode 100644 index 0000000..c3f173f --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/HchjMaterialInfo.java @@ -0,0 +1,18 @@ +package org.nl.wms.cockpit.service.dao; + +import lombok.Data; + +/** + * @author sxp + * 出窑缓存货位点位信息 + */ +@Data +public class HchjMaterialInfo { + private String pointStatus; + private String pointName; + private String pointCode; + private String materialQty; + private String materialCode; + private String materialModel; + private String instorageTime; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/KlMaterialInfoVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/KlMaterialInfoVo.java index 9e88f52..0d3084c 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/KlMaterialInfoVo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/KlMaterialInfoVo.java @@ -11,7 +11,7 @@ public class KlMaterialInfoVo { private String pointStatus; private String pointName; private String pointCode; - private String materialWeight; - private String lastStandingTime; + private String vehicleCode; private String materialCode; + private String instorageTime; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressPointInfo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressPointInfo.java new file mode 100644 index 0000000..1efc70a --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PressPointInfo.java @@ -0,0 +1,13 @@ +package org.nl.wms.cockpit.service.dao; + +import lombok.Data; + +/** + * @author sxp + */ +@Data +public class PressPointInfo { + private String pointCode; + private String materialCode; + private String materialModel; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/RgfjMaterialInfo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/RgfjMaterialInfo.java new file mode 100644 index 0000000..ac76d55 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/RgfjMaterialInfo.java @@ -0,0 +1,16 @@ +package org.nl.wms.cockpit.service.dao; + +import lombok.Data; + +/** + * @author sxp + * 人工分拣点位信息 + */ +@Data +public class RgfjMaterialInfo { + private String pointStatus; + private String pointName; + private String pointCode; + private String materialCode; + private String materialModel; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java index ac39ca1..1a8f443 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/impl/CockpitServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.nl.config.thread.ThreadPoolExecutorUtil; import org.nl.wms.cockpit.service.CockpitService; import org.nl.wms.cockpit.service.dao.*; @@ -274,13 +275,26 @@ public class CockpitServiceImpl implements CockpitService { //压制上料位 CompletableFuture yzslwPositionTask = CompletableFuture.supplyAsync(() -> { + List yjPoints = cockPitMapper.selectYjPoint(); List points = cockPitMapper.selectYzslwPoint(); if (points.isEmpty()) { return null; } JSONArray param = new JSONArray(Collections.singletonList(points)); AcsResponse deviceStatus = wmsToAcsService.getDeviceStatus(param); - return ObjectUtil.isNotEmpty(deviceStatus) ? deviceStatus.getData() : param; + JSONArray data = ObjectUtil.isNotEmpty(deviceStatus) ? deviceStatus.getData() : param; + for (int i = 0; i < data.size(); i++) { + JSONObject object = data.getJSONObject(i); + object.remove("encoder_qty"); + object.remove("error"); + for (PressPointInfo pointInfo : yjPoints) { + String deviceCode = object.getString("device_code"); + if (StringUtils.isNotEmpty(deviceCode) && pointInfo.getPointCode().equals(deviceCode.substring(0, 4))){ + object.put("materialCode", pointInfo.getMaterialCode()); + } + } + } + return data; }, pool); yzslwPositionTask.thenAccept(result -> { map.put("YzslwPositionList", result); @@ -301,6 +315,7 @@ public class CockpitServiceImpl implements CockpitService { JSONArray data = ObjectUtil.isNotEmpty(deviceStatus) ? deviceStatus.getData() : param; for (int i = 0; i < data.size(); i++) { JSONObject jsonObject = data.getJSONObject(i); + jsonObject.remove("error"); if (jsonObject.getInteger("move") != 0 && ObjectUtil.isNotEmpty(jsonObject.getInteger("encoder_qty")) && jsonObject.getInteger("encoder_qty") > 0) { @@ -330,7 +345,7 @@ public class CockpitServiceImpl implements CockpitService { // 压机信息显示 CompletableFuture pressMachineTask = CompletableFuture.supplyAsync(() -> { - List yjPoints = cockPitMapper.selectYjPoint(); + List yjPoints = cockPitMapper.selectYjPoint(); if (yjPoints.isEmpty()) { return null; } @@ -343,6 +358,12 @@ public class CockpitServiceImpl implements CockpitService { if (ObjectUtil.isNotEmpty(realQty)) { object.put("now_capacity", realQty); } + for (PressPointInfo yj : yjPoints) { + if (object.getString("device_code").equals(yj.getPointCode())) { + object.put("materialCode", yj.getMaterialCode()); + object.put("materialModel", yj.getMaterialModel()); + } + } } return yjData; }, pool); @@ -400,11 +421,11 @@ public class CockpitServiceImpl implements CockpitService { return null; }); - //压制、分拣机械手 + //分拣机械手 CompletableFuture manipulatorInfoTask = CompletableFuture.supplyAsync(() -> { List jxsPoints = cockPitMapper.selectJxsPoints(); if (jxsPoints.isEmpty()) { - return null; + return null; } JSONArray jxsPointsParam = new JSONArray(Collections.singletonList(jxsPoints)); AcsResponse jxsStatus = wmsToAcsService.getDeviceStatus(jxsPointsParam); @@ -434,6 +455,16 @@ public class CockpitServiceImpl implements CockpitService { JSONArray fjcmdData = ObjectUtil.isNotEmpty(fjcmdStatus) ? fjcmdStatus.getData() : fjcmdPointsParam; for (int i = 0; i < fjcmdData.size(); i++) { JSONObject jsonObject = fjcmdData.getJSONObject(i); + jsonObject.remove("encoder_qty"); + jsonObject.remove("error"); + String deviceCode = jsonObject.getString("device_code"); + if (StringUtils.isNotEmpty(deviceCode) && "FJ01".equals(deviceCode.substring(0, 4))) { + FjPintInfoVo fjPintInfoVo = cockPitMapper.selectFJJXSMaterialInfo("FJCDJXS01"); + if (null != fjPintInfoVo) { + jsonObject.put("materialCode", fjPintInfoVo.getMaterialCode()); + jsonObject.put("materialModel", fjPintInfoVo.getMaterialModel()); + } + } if (jsonObject.getInteger("move") != 0 && ObjectUtil.isNotEmpty(jsonObject.getInteger("encoder_qty")) && jsonObject.getInteger("encoder_qty") > 0) { @@ -462,7 +493,7 @@ public class CockpitServiceImpl implements CockpitService { }); // 出窑缓存货架 - CompletableFuture> outKilnHchjTask = CompletableFuture.supplyAsync(() -> { + CompletableFuture> outKilnHchjTask = CompletableFuture.supplyAsync(() -> { return cockPitMapper.selectHchjList(); }, pool); outKilnHchjTask.thenAccept(result -> { @@ -473,7 +504,7 @@ public class CockpitServiceImpl implements CockpitService { return null; }); // 人工分拣拆垛 - CompletableFuture> manualSortingTask = CompletableFuture.supplyAsync(() -> { + CompletableFuture> manualSortingTask = CompletableFuture.supplyAsync(() -> { return cockPitMapper.selecManualSortingList(); }, pool); manualSortingTask.thenAccept(result -> { @@ -531,28 +562,28 @@ public class CockpitServiceImpl implements CockpitService { List res = new ArrayList<>(); for (int i = 0; i < data.size(); i++) { JSONObject object = data.getJSONObject(i); - if ("RYHCX01".equals(object.getString("device_code"))){ + if ("RYHCX01".equals(object.getString("device_code"))) { InOutKilnVo in = cockPitMapper.selectInKilnInfo(); if (null == in) { in = new InOutKilnVo(); } - if ("0".equals(object.getString("error"))){ + if ("0".equals(object.getString("error"))) { in.setStat("2"); - }else { + } else { in.setStat("1"); } in.setPointName("入窑输送线"); // in.setWorkTime("3.5"); res.add(in); } - if ("CYHCX01".equals(object.getString("device_code"))){ + if ("CYHCX01".equals(object.getString("device_code"))) { InOutKilnVo out = cockPitMapper.selectOutKilnInfo(); if (null == out) { out = new InOutKilnVo(); } - if ("0".equals(object.getString("error"))){ + if ("0".equals(object.getString("error"))) { out.setStat("2"); - }else { + } else { out.setStat("1"); } out.setPointName("出窑输送线"); @@ -594,4 +625,9 @@ public class CockpitServiceImpl implements CockpitService { kilnVo.setMaterialInfos(kilnMaterialInfo); return kilnVo; } + + public static void main(String[] args) { + String substring = "FJ01CDW01".substring(0, 4); + System.out.println(substring); + } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.java index 38e50ab..9965697 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.java @@ -42,7 +42,7 @@ public interface CockPitMapper { List selectYzPoint(); - List selectYjPoint(); + List selectYjPoint(); List selectHnjPoints(); @@ -52,13 +52,15 @@ public interface CockPitMapper { List queryRecord(); - List selectHchjList(); + List selectHchjList(); - List selecManualSortingList(); + List selecManualSortingList(); List queryKlInfoList(); List selectKlhwInfo(); List selectYzslwPoint(); + + FjPintInfoVo selectFJJXSMaterialInfo(String pointCode); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml index e1a4606..b67d801 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/mapper/CockPitMapper.xml @@ -166,22 +166,20 @@ - + SELECT p.point_code as pointCode, + m.material_code as materialCode, + m.material_model as materialModel + FROM `sch_base_point` p + LEFT JOIN pdm_bd_workorder o on p.point_code = o.point_code + LEFT JOIN md_base_material m ON o.material_id = m.material_id + WHERE p.point_type = '1' + AND p.region_code = 'YZ' + AND LENGTH(p.point_code) = 4 + AND o.workorder_status = '3' + ORDER BY p.point_code - + SELECT p.point_code AS pointCode, + p.point_name AS pointName, + p.point_status AS pointStatus, + g.material_qty AS materialQty, + g.update_time AS instorageTime, + m.material_code AS materialCode, + m.material_model AS materialModel FROM `sch_base_point` p - WHERE p.region_code ='HCHJ' + LEFT JOIN sch_base_vehiclematerialgroup g ON p.point_code = g.point_code + AND g.group_bind_material_status = '2' + LEFT JOIN md_base_material m ON g.material_id = m.material_id + WHERE p.region_code = 'HCHJ' ORDER BY p.point_code - + SELECT p.point_code AS pointCode, + p.point_name AS pointName, + p.point_status AS pointStatus, + m.material_code AS materialCode, + m.material_model AS materialModel FROM `sch_base_point` p - WHERE p.region_code ='RGFJ' + LEFT JOIN sch_base_vehiclematerialgroup g ON p.point_code = g.point_code + AND g.group_bind_material_status = '2' + LEFT JOIN md_base_material m ON g.material_id = m.material_id + WHERE p.region_code = 'RGFJ' ORDER BY p.point_code + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java index d3a1f38..e936389 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java @@ -152,6 +152,9 @@ public class PdmBdWorkorder implements Serializable { @ApiModelProperty(value = "不合格数") private Integer unqualified_qty; + @ApiModelProperty(value = "是否需要拆包(0否,1是)") + private String need_unpack; + @TableField(exist = false) private String material_name; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java index b996367..f91d2b4 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java @@ -204,19 +204,23 @@ public class HNMLTask extends AbstractTask { endPointObj.setVehicle_type(GeneralDefinition.MATERIAL_CUP); PointUtils.setUpdateByType(endPointObj, taskFinishedType); pointService.updateById(endPointObj); - // 更新组盘数据 - groupEntity.setPoint_code(endPointObj.getPoint_code()); - groupEntity.setPoint_name(endPointObj.getPoint_name()); - groupEntity.setMove_way(groupEntity.getMove_way() + " -> " + endPointObj.getPoint_code()); - groupEntity.setTask_code(taskObj.getTask_code()); - TaskUtils.setGroupUpdateByType(groupEntity, taskFinishedType); - vehiclematerialgroupService.updateById(groupEntity); // 更新工单上的实际重量 // 更新混碾工单 PdmBdWorkorder workOrderObj = workorderService.getByCode(groupEntity.getWorkorder_code()); workOrderObj.setReal_weight(workOrderObj.getReal_weight().add(groupEntity.getMaterial_weight())); TaskUtils.setWorkOrderUpdateByType(workOrderObj, taskFinishedType); workorderService.updateById(workOrderObj); + // 更新组盘数据 + groupEntity.setPoint_code(endPointObj.getPoint_code()); + groupEntity.setPoint_name(endPointObj.getPoint_name()); + groupEntity.setMove_way(groupEntity.getMove_way() + " -> " + endPointObj.getPoint_code()); + groupEntity.setTask_code(taskObj.getTask_code()); + //如果工单不需要拆包,直接设置组盘信息为已拆包 + if ("0".equals(workOrderObj.getNeed_unpack())){ + groupEntity.setUnpack("1"); + } + TaskUtils.setGroupUpdateByType(groupEntity, taskFinishedType); + vehiclematerialgroupService.updateById(groupEntity); // 如果终点是布料机,那就是需要将压机工单对应(新、旧)料的真实值相加 if (RegionConstant.PRESSED_AREA.equals(endPointObj.getRegion_code())) { PdmBdWorkorder productionTask = workorderService.getDeviceDockingProductionTask(endPoint); diff --git a/lms/nladmin-ui/src/views/wms/pdm/workerorder/mixedOrder.vue b/lms/nladmin-ui/src/views/wms/pdm/workerorder/mixedOrder.vue index bfed6a4..cb85fec 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/workerorder/mixedOrder.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/workerorder/mixedOrder.vue @@ -323,6 +323,12 @@ + + + + + + @@ -434,6 +440,15 @@ {{ scope.row.is_new ? '新料' : '旧料' }} + + +