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 2a4b599..fc3aefb 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 @@ -11,6 +11,7 @@ import org.nl.acs.agv.AgvUtil; import org.nl.acs.config.AcsConfig; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; +import org.nl.acs.device_driver.lnsh.converor_barcode.ConveyorBarcodeDeviceDriver; import org.nl.acs.device_driver.lnsh.lnsh_Laminating_machine.ItemProtocol; import org.nl.acs.device_driver.lnsh.lnsh_Laminating_machine.LnshLaminatingMachineDeviceDriver; import org.nl.acs.device_driver.lnsh.lnsh_fold_disc_site.LnshFoldDiscSiteDeviceDriver; @@ -1274,6 +1275,12 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { if (ObjectUtil.isEmpty(device)) { continue; } + if (device.getDeviceDriver() instanceof ConveyorBarcodeDeviceDriver) { + ConveyorBarcodeDeviceDriver driver = (ConveyorBarcodeDeviceDriver) device.getDeviceDriver(); + status.put("mode", driver.getMode()); + status.put("error", driver.getError()); + status.put("move", driver.getMove()); + } if (device.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver) { LnshPalletizingManipulatorSiteDeviceDriver driver = (LnshPalletizingManipulatorSiteDeviceDriver) device.getDeviceDriver(); status.put("mode", driver.getMode()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/DeviceErrorVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/DeviceErrorVo.java deleted file mode 100644 index 61f0105..0000000 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/DeviceErrorVo.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.nl.wms.cockpit.service.dao; - -import lombok.Data; - -/** - * @author Administrator - * @description 30天故障 - */ -@Data -public class DeviceErrorVo { - private String deviceName; - private String errorNum; -} 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 new file mode 100644 index 0000000..9e88f52 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/KlMaterialInfoVo.java @@ -0,0 +1,17 @@ +package org.nl.wms.cockpit.service.dao; + +import lombok.Data; + +/** + * @author Administrator + * 点位信息(对接位、货架) + */ +@Data +public class KlMaterialInfoVo { + private String pointStatus; + private String pointName; + private String pointCode; + private String materialWeight; + private String lastStandingTime; + private String materialCode; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/MixingRelativeVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PointInfoVo.java similarity index 74% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/MixingRelativeVo.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PointInfoVo.java index 46ac0ba..724a549 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/MixingRelativeVo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/PointInfoVo.java @@ -4,10 +4,10 @@ import lombok.Data; /** * @author Administrator - * 混碾机对接位 + * 点位信息(对接位、货架) */ @Data -public class MixingRelativeVo { +public class PointInfoVo { private String pointStatus; private String pointName; private String pointCode; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/klInfoVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/klInfoVo.java new file mode 100644 index 0000000..6bc06c7 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/dao/klInfoVo.java @@ -0,0 +1,13 @@ +package org.nl.wms.cockpit.service.dao; + +import lombok.Data; + +/** + * @author Administrator + * @description 困料货架泥料库(吨) + */ +@Data +public class klInfoVo { + private String materialCode; + private String weight; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/enums/ColorEnum.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/enums/ColorEnum.java index 485001a..494d0fa 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/enums/ColorEnum.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/cockpit/service/enums/ColorEnum.java @@ -7,9 +7,10 @@ import lombok.Getter; @AllArgsConstructor public enum ColorEnum { GREY(0, "灰色"), + YELLOW(1, "黄色"), GREEN(2, "绿色"), - RED(3, "红色"), - YELLOW(1, "黄色"); + RED(3, "红色"); + private final Integer index; private final String colorName; 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 2281d88..ac39ca1 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 @@ -8,13 +8,9 @@ import org.nl.config.thread.ThreadPoolExecutorUtil; import org.nl.wms.cockpit.service.CockpitService; import org.nl.wms.cockpit.service.dao.*; import org.nl.wms.cockpit.service.enums.ColorEnum; -import org.nl.wms.cockpit.service.enums.DeviceEnum; import org.nl.wms.cockpit.service.mapper.CockPitMapper; -import org.nl.wms.das.device.record.service.IDasDeviceErrorRecordService; -import org.nl.wms.das.device.record.service.dao.DasDeviceErrorRecord; import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; -import org.nl.wms.sch.point.service.ISchBasePointService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -37,9 +33,6 @@ public class CockpitServiceImpl implements CockpitService { @Autowired private WmsToAcsService wmsToAcsService; - @Autowired - private IDasDeviceErrorRecordService dasDeviceErrorRecordService; - @Override public ConcurrentHashMap pressedMonitor() { ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll(); @@ -203,8 +196,8 @@ public class CockpitServiceImpl implements CockpitService { // 遍历判断 for (int i = 0; i < data.size(); i++) { JSONObject device = data.getJSONObject(i); - int status = ObjectUtil.isNotEmpty(device.getInteger("status")) - ? device.getInteger("status") + int status = ObjectUtil.isNotEmpty(device.getString("device_status")) + ? Integer.parseInt(device.getString("device_status")) : 0; if (status == 0) { unProducedNum++; @@ -236,14 +229,14 @@ public class CockpitServiceImpl implements CockpitService { return null; }); - //30天故障top10 - CompletableFuture> errorCompletableFuture = CompletableFuture.supplyAsync( - () -> dasDeviceErrorRecordService.queryErrorVo(), pool); - errorCompletableFuture.thenAccept(result -> { - resultMap.put("deviceErrorList", result); + //困料货架泥料库(吨) + CompletableFuture> klInfoCompletableFuture = CompletableFuture.supplyAsync( + () -> cockPitMapper.queryKlInfoList(), pool); + klInfoCompletableFuture.thenAccept(result -> { + resultMap.put("klInfoList", result); }).exceptionally((e) -> { - log.error("30天故障top10: {}", e.getMessage(), e); - resultMap.put("deviceErrorList", null); + log.error("困料货架泥料库(吨): {}", e.getMessage(), e); + resultMap.put("klInfoList", null); return null; }); @@ -263,7 +256,7 @@ public class CockpitServiceImpl implements CockpitService { productCompletableFuture, historyCompletableFuture, deviceRunStatCompletableFuture, - errorCompletableFuture, + klInfoCompletableFuture, errorRecordCompletableFuture); CompletableFuture> future = allQuery.thenApply((result) -> resultMap).exceptionally((e) -> { @@ -279,6 +272,24 @@ public class CockpitServiceImpl implements CockpitService { ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll(); ConcurrentHashMap map = new ConcurrentHashMap<>(); + //压制上料位 + CompletableFuture yzslwPositionTask = CompletableFuture.supplyAsync(() -> { + 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; + }, pool); + yzslwPositionTask.thenAccept(result -> { + map.put("YzslwPositionList", result); + }).exceptionally((e) -> { + log.error("压制上料位情况显示: {}", e.getMessage(), e); + map.put("YzslwPositionList", e); + return null; + }); + //压制码垛位情况显示 CompletableFuture stackingPositionTask = CompletableFuture.supplyAsync(() -> { List points = cockPitMapper.selectYzPoint(); @@ -366,20 +377,8 @@ public class CockpitServiceImpl implements CockpitService { map.put("MixMachineList", null); return null; }); - // 困料货架的信息显示 TODO - CompletableFuture trappedMaterialShelfTask = CompletableFuture.supplyAsync(() -> { -// return cockPitMapper.selectKlhwInfo(); - return null; - }, pool); - trappedMaterialShelfTask.thenAccept(result -> { - map.put("TrappedMaterialShelfList", result); - }).exceptionally((e) -> { - log.error("困料货架 - 40 货位的信息显示: {}", e.getMessage(), e); - map.put("TrappedMaterialShelfList", null); - return null; - }); // 混碾机对接位 - CompletableFuture> mixBlankingTask = CompletableFuture.supplyAsync(() -> { + CompletableFuture> mixBlankingTask = CompletableFuture.supplyAsync(() -> { return cockPitMapper.selectMixingRelativeInfo(); }, pool); mixBlankingTask.thenAccept(result -> { @@ -389,6 +388,18 @@ public class CockpitServiceImpl implements CockpitService { map.put("MixBlankingList", null); return null; }); + // 困料货架的信息显示 + CompletableFuture> trappedMaterialShelfTask = CompletableFuture.supplyAsync(() -> { + return cockPitMapper.selectKlhwInfo(); + }, pool); + trappedMaterialShelfTask.thenAccept(result -> { + map.put("TrappedMaterialShelfList", result); + }).exceptionally((e) -> { + log.error("困料货架货位的信息显示: {}", e.getMessage(), e); + map.put("TrappedMaterialShelfList", null); + return null; + }); + //压制、分拣机械手 CompletableFuture manipulatorInfoTask = CompletableFuture.supplyAsync(() -> { List jxsPoints = cockPitMapper.selectJxsPoints(); @@ -451,7 +462,7 @@ public class CockpitServiceImpl implements CockpitService { }); // 出窑缓存货架 - CompletableFuture> outKilnHchjTask = CompletableFuture.supplyAsync(() -> { + CompletableFuture> outKilnHchjTask = CompletableFuture.supplyAsync(() -> { return cockPitMapper.selectHchjList(); }, pool); outKilnHchjTask.thenAccept(result -> { @@ -462,7 +473,7 @@ public class CockpitServiceImpl implements CockpitService { return null; }); // 人工分拣拆垛 - CompletableFuture> manualSortingTask = CompletableFuture.supplyAsync(() -> { + CompletableFuture> manualSortingTask = CompletableFuture.supplyAsync(() -> { return cockPitMapper.selecManualSortingList(); }, pool); manualSortingTask.thenAccept(result -> { @@ -473,6 +484,7 @@ public class CockpitServiceImpl implements CockpitService { return null; }); CompletableFuture allQuery = CompletableFuture.allOf( + yzslwPositionTask, stackingPositionTask, pressMachineTask, trappedMaterialShelfTask, @@ -510,30 +522,64 @@ public class CockpitServiceImpl implements CockpitService { @Override public List selectInOutKilnDetail() { -// List points = new ArrayList<>(); -// points.add("RYHCX01"); -// points.add("CYHCX01"); -// JSONArray pointsParam = new JSONArray(Collections.singletonList(points)); -// AcsResponse response = wmsToAcsService.getDeviceStatus(pointsParam); -// JSONArray data = ObjectUtil.isNotEmpty(response) ? response.getData() : pointsParam; - //todo 确定每托盘数量 + List points = new ArrayList<>(); + points.add("RYHCX01"); + points.add("CYHCX01"); + JSONArray pointsParam = new JSONArray(Collections.singletonList(points)); + AcsResponse response = wmsToAcsService.getDeviceStatus(pointsParam); + JSONArray data = ObjectUtil.isNotEmpty(response) ? response.getData() : pointsParam; List res = new ArrayList<>(); - InOutKilnVo in = cockPitMapper.selectInKilnInfo(); - in.setStat("2"); - in.setPointName("入窑输送线"); - in.setWorkTime("3.5"); - in.setMaterialNum("25000"); - InOutKilnVo out = cockPitMapper.selectOutKilnInfo(); - if (null == out) { - out = new InOutKilnVo(); + for (int i = 0; i < data.size(); i++) { + JSONObject object = data.getJSONObject(i); + if ("RYHCX01".equals(object.getString("device_code"))){ + InOutKilnVo in = cockPitMapper.selectInKilnInfo(); + if (null == in) { + in = new InOutKilnVo(); + } + if ("0".equals(object.getString("error"))){ + in.setStat("2"); + }else { + in.setStat("1"); + } + in.setPointName("入窑输送线"); +// in.setWorkTime("3.5"); + res.add(in); + } + if ("CYHCX01".equals(object.getString("device_code"))){ + InOutKilnVo out = cockPitMapper.selectOutKilnInfo(); + if (null == out) { + out = new InOutKilnVo(); + } + if ("0".equals(object.getString("error"))){ + out.setStat("2"); + }else { + out.setStat("1"); + } + out.setPointName("出窑输送线"); +// out.setWorkTime("3.5"); +// out.setMaterialNum("25000"); +// out.setDeliveredMaterialNum("25000"); + res.add(out); + } } - out.setStat("2"); - out.setPointName("出窑输送线"); - out.setWorkTime("3.5"); - out.setMaterialNum("25000"); - out.setDeliveredMaterialNum("25000"); - res.add(in); - res.add(out); +// //todo 确定每托盘数量 +// List res = new ArrayList<>(); +// InOutKilnVo in = cockPitMapper.selectInKilnInfo(); +// in.setStat("2"); +// in.setPointName("入窑输送线"); +// in.setWorkTime("3.5"); +// in.setMaterialNum("25000"); +// InOutKilnVo out = cockPitMapper.selectOutKilnInfo(); +// if (null == out) { +// out = new InOutKilnVo(); +// } +// out.setStat("2"); +// out.setPointName("出窑输送线"); +// out.setWorkTime("3.5"); +// out.setMaterialNum("25000"); +// out.setDeliveredMaterialNum("25000"); +// res.add(in); +// res.add(out); return res; } 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 642699b..38e50ab 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 @@ -46,13 +46,19 @@ public interface CockPitMapper { List selectHnjPoints(); - List selectMixingRelativeInfo(); + List selectMixingRelativeInfo(); List selectJxsPoints(); List queryRecord(); - List selectHchjList(); + List selectHchjList(); - List selecManualSortingList(); + List selecManualSortingList(); + + List queryKlInfoList(); + + List selectKlhwInfo(); + + List selectYzslwPoint(); } 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 b2cac94..e1a4606 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 @@ -122,28 +122,28 @@ - SELECT p.point_code as pointCode, p.point_name as pointName, p.point_status as pointStatus @@ -264,7 +267,7 @@ LEFT JOIN sch_base_point p ON r.device_code = p.point_code ORDER BY r.record_time desc limit 100 - SELECT p.point_code as pointCode, p.point_name as pointName, p.point_status as pointStatus @@ -272,7 +275,7 @@ 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 @@ -280,5 +283,43 @@ WHERE p.region_code ='RGFJ' ORDER BY p.point_code + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/IDasDeviceErrorRecordService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/IDasDeviceErrorRecordService.java index bdda9bb..e971c85 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/IDasDeviceErrorRecordService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/IDasDeviceErrorRecordService.java @@ -3,15 +3,10 @@ package org.nl.wms.das.device.record.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; -import org.nl.wms.cockpit.service.dao.DeviceErrorVo; -import org.nl.wms.cockpit.service.dao.ErrorRecordVo; -import org.nl.wms.das.device.check.service.dao.DasDeviceCheckRecord; +import org.nl.wms.cockpit.service.dao.klInfoVo; import org.nl.wms.das.device.record.service.dao.DasDeviceErrorRecord; -import org.nl.wms.pda.service.dao.vo.PdaResponseVo; import java.util.List; -import java.util.Map; -import java.util.Set; /** * @description 服务接口 @@ -28,6 +23,6 @@ public interface IDasDeviceErrorRecordService extends IService queryErrorVo(); + List queryErrorVo(); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/dao/mapper/DasDeviceErrorRecordMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/dao/mapper/DasDeviceErrorRecordMapper.java index 7ca21c8..86f28e4 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/dao/mapper/DasDeviceErrorRecordMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/dao/mapper/DasDeviceErrorRecordMapper.java @@ -1,7 +1,7 @@ package org.nl.wms.das.device.record.service.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.nl.wms.cockpit.service.dao.DeviceErrorVo; +import org.nl.wms.cockpit.service.dao.klInfoVo; import org.nl.wms.das.device.record.service.dao.DasDeviceErrorRecord; import java.util.List; @@ -12,6 +12,6 @@ import java.util.List; */ public interface DasDeviceErrorRecordMapper extends BaseMapper { - List queryErrorVo(); + List queryErrorVo(); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/dao/mapper/DasDeviceErrorRecordMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/dao/mapper/DasDeviceErrorRecordMapper.xml index 5ac1802..9a5e096 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/dao/mapper/DasDeviceErrorRecordMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/dao/mapper/DasDeviceErrorRecordMapper.xml @@ -2,7 +2,7 @@ - select if(LENGTH(p.point_name) ]]> 0, p.point_name, r.device_code) as deviceName, count(*) as errorNum from das_device_error_record r diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/impl/IDasDeviceErrorRecordServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/impl/IDasDeviceErrorRecordServiceImpl.java index 613c998..76f01d8 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/impl/IDasDeviceErrorRecordServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/das/device/record/service/impl/IDasDeviceErrorRecordServiceImpl.java @@ -8,18 +8,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.nl.common.domain.query.PageQuery; -import org.nl.wms.cockpit.service.dao.DeviceErrorVo; -import org.nl.wms.das.device.check.service.dao.DasDeviceCheckRecord; -import org.nl.wms.das.device.check.service.dao.mapper.DasDeviceCheckRecordMapper; +import org.nl.wms.cockpit.service.dao.klInfoVo; import org.nl.wms.das.device.record.service.IDasDeviceErrorRecordService; import org.nl.wms.das.device.record.service.dao.DasDeviceErrorRecord; import org.nl.wms.das.device.record.service.dao.mapper.DasDeviceErrorRecordMapper; -import org.nl.wms.pda.service.dao.vo.PdaResponseVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; -import java.util.Map; /** * @author Administrator @@ -47,7 +43,7 @@ public class IDasDeviceErrorRecordServiceImpl extends ServiceImpl queryErrorVo() { + public List queryErrorVo() { return dasDeviceCheckRecordMapper.queryErrorVo(); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index 46f3cff..55a4fd2 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -61,6 +61,6 @@ public interface AcsToWmsService { BaseResponse woodenPalletBinding(JSONObject param); JSONObject errorDeviceRecord(JSONObject param); - /** 混碾机满料 任务不下发*/ - BaseResponse mixFull(JSONObject param); +// /** 混碾机满料 任务不下发*/ +// BaseResponse mixFull(JSONObject param); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index c7d837f..6b639c8 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -1065,26 +1065,26 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return result; } - @Override - public BaseResponse mixFull(JSONObject param) { - String requestNo = param.getString("requestNo"); - String workorderCode = param.getString("order_code"); -// String deviceCode = param.getString("device_code"); - String weight = param.getString("weight"); - if (ObjectUtil.isEmpty(workorderCode)) { - return BaseResponse.responseError(requestNo,"工单号不能为空"); - } - if (ObjectUtil.isEmpty(weight)) { - return BaseResponse.responseError(requestNo,"生产重量不能为空"); - } - PdmBdWorkorder workorder = workorderService.getByCode(workorderCode); - if (ObjectUtil.isEmpty(workorder)){ - return BaseResponse.responseError(requestNo,"未查询到相应工单"); - } - BigDecimal bigDecimal = BigDecimal.valueOf(Long.parseLong(weight)); - workorder.setReal_weight(workorder.getReal_weight().add(bigDecimal)); - workorder.setWorkorder_status(WorkOrderStatusEnum.STAGING.getCode()); - workorderService.update(workorder); - return BaseResponse.responseOk(requestNo); - } +// @Override +// public BaseResponse mixFull(JSONObject param) { +// String requestNo = param.getString("requestNo"); +// String workorderCode = param.getString("order_code"); +//// String deviceCode = param.getString("device_code"); +// String weight = param.getString("weight"); +// if (ObjectUtil.isEmpty(workorderCode)) { +// return BaseResponse.responseError(requestNo,"工单号不能为空"); +// } +// if (ObjectUtil.isEmpty(weight)) { +// return BaseResponse.responseError(requestNo,"生产重量不能为空"); +// } +// PdmBdWorkorder workorder = workorderService.getByCode(workorderCode); +// if (ObjectUtil.isEmpty(workorder)){ +// return BaseResponse.responseError(requestNo,"未查询到相应工单"); +// } +// BigDecimal bigDecimal = BigDecimal.valueOf(Long.parseLong(weight)); +// workorder.setReal_weight(workorder.getReal_weight().add(bigDecimal)); +// workorder.setWorkorder_status(WorkOrderStatusEnum.STAGING.getCode()); +// workorderService.update(workorder); +// return BaseResponse.responseOk(requestNo); +// } } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java index ee48a9a..a3c8bc4 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/controller/PdaController.java @@ -14,7 +14,6 @@ import org.nl.wms.pda.service.PdaService; import org.nl.wms.pda.service.dao.dto.*; import org.nl.wms.pda.service.dao.vo.PdaResponseVo; import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; -import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -35,233 +34,8 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/api/pda") @SaIgnore public class PdaController { - @Autowired - private IDasDeviceCheckRecordService deviceCheckRecordService; - @Autowired - private IDasDeviceOperationRecordService deviceOperationRecordService; @Autowired private PdaService pdaService; - @Autowired - private IPdmBdWorkorderService workorderService; - @PostMapping("/deviceCheck/verify") - @Log("设备点检") - @ApiOperation("设备点检") - public ResponseEntity deviceCheck(@Validated @RequestBody DasDeviceCheckRecord entity){ - return new ResponseEntity<>(deviceCheckRecordService.create(entity), HttpStatus.OK); - } - - @PostMapping("/deviceCheck/deviceInfo") - @Log("设备下拉框数据") - @ApiOperation("设备下拉框数据") - public ResponseEntity deviceInfo(){ - return new ResponseEntity<>(pdaService.getDeviceInfo(), HttpStatus.OK); - } - - @PostMapping("/deviceCheck/deviceStatus") - @Log("设备状态下拉框数据") - @ApiOperation("设备状态下拉框数据") - public ResponseEntity deviceStatus(){ - return new ResponseEntity<>(pdaService.getDeviceStatus(), HttpStatus.OK); - } - - @PostMapping("/deviceSwitchover/deviceAction") - @Log("设备动作下拉框数据") - @ApiOperation("设备动作下拉框数据") - public ResponseEntity deviceAction(){ - return new ResponseEntity<>(pdaService.deviceAction(), HttpStatus.OK); - } - - @PostMapping("/deviceSwitchover/verify") - @Log("设备动作切换") - @ApiOperation("设备动作切换") - public ResponseEntity deviceSwitchover(@Validated @RequestBody DasDeviceOperationRecord entity){ - return new ResponseEntity<>(deviceOperationRecordService.create(entity), HttpStatus.OK); - } - - @PostMapping("/group/getPressCode") - @Log("获取压机编码") - @ApiOperation("获取压机编码") - public ResponseEntity getPressCode(){ - return new ResponseEntity<>(pdaService.getDeviceInfo(), HttpStatus.OK); - } - - @PostMapping("/group/getVehicleType") - @Log("获取载具类型") - @ApiOperation("获取载具类型") - public ResponseEntity getVehicleType(){ - return new ResponseEntity<>(pdaService.getVehicleType(), HttpStatus.OK); - } - - @PostMapping("/group/getPressWorkOrder") - @Log("获取工单编码") - @ApiOperation("获取工单编码") - @Deprecated - public ResponseEntity getPressWorkOrder(@RequestBody JSONObject param){ - return new ResponseEntity<>(workorderService.getDeviceProductionTask(param.getString("point_code")), HttpStatus.OK); - } - - @PostMapping("/group/manual") - @Log("人工组盘") - @ApiOperation("人工组盘") - public ResponseEntity manualDiskAssembly(@Validated @RequestBody ManualGroupDto entity){ - return new ResponseEntity<>(pdaService.manualCreateByPda(entity), HttpStatus.OK); - } - - @PostMapping("/move/getBlendingCode") - @Log("获取混碾机编码") - @ApiOperation("获取混碾机编码") - public ResponseEntity getBlendingCode(){ - return new ResponseEntity<>(pdaService.getBlendingCode(), HttpStatus.OK); - } - - @PostMapping("/move/sendTask") - @Log("生成混碾->压机任务") - @ApiOperation("生成混碾->压机任务") - public ResponseEntity sendTask(@Validated @RequestBody BlendingMoveDto blendingMoveDto){ - return new ResponseEntity<>(pdaService.sendTask(blendingMoveDto), HttpStatus.OK); - } - - @PostMapping("/forcedResting/show") - @Log("显示静置时长") - @ApiOperation("显示静置时长") - public ResponseEntity forcedRestingShow(){ - return new ResponseEntity<>(pdaService.forcedRestingShow(), HttpStatus.OK); - } - - @PostMapping("/forcedResting/submit") - @Log("强制静置") - @ApiOperation("强制静置") - public ResponseEntity forcedResting(@Validated @RequestBody ForcedRestingDto forcedRestingDto){ - return new ResponseEntity<>(pdaService.forcedResting(forcedRestingDto), HttpStatus.OK); - } - - @PostMapping("/manualSorting/orders") - @Log("人工分拣-显示工单") - @ApiOperation("人工分拣-显示工单") - public ResponseEntity manualOrders(){ - return new ResponseEntity<>(pdaService.manualOrders(), HttpStatus.OK); - } - - @PostMapping("/manualSorting/productionScheduling") - @Log("人工分拣-开工") - @ApiOperation("人工分拣-开工") - public ResponseEntity productionScheduling(@Validated @RequestBody ManualSortingDto manualSortingDto){ - return new ResponseEntity<>(pdaService.productionScheduling(manualSortingDto), HttpStatus.OK); - } - - @PostMapping("/manualSorting/productionComplete") - @Log("人工分拣-完工") - @ApiOperation("人工分拣-完工") - public ResponseEntity productionComplete(@Validated @RequestBody ManualSortingDto manualSortingDto){ - return new ResponseEntity<>(pdaService.productionComplete(manualSortingDto), HttpStatus.OK); - } - - @PostMapping("/manualSorting/emptyDiskIntoStorageTask") - @Log("人工分拣-空盘入库-动作") - @ApiOperation("人工分拣-空盘入库-动作") - public ResponseEntity emptyDiskIntoStorageTask(){ - return new ResponseEntity<>(pdaService.emptyDiskIntoStorageTask(), HttpStatus.OK); - } - - @PostMapping("/manualSorting/emptyDiskIntoStorageShow") - @Log("人工分拣-空盘入库-显示任务信息") - @ApiOperation("人工分拣-空盘入库-显示任务信息") - public ResponseEntity emptyDiskIntoStorageShow(){ - return new ResponseEntity<>(pdaService.emptyDiskIntoStorageShow(), HttpStatus.OK); - } - - @PostMapping("/manualSorting/callingWoodenPalletTask") - @Log("人工分拣-呼叫木托盘-动作") - @ApiOperation("人工分拣-呼叫木托盘-动作") - public ResponseEntity callingWoodenPalletTask(){ - return new ResponseEntity<>(pdaService.callingWoodenPalletTask(), HttpStatus.OK); - } - - @PostMapping("/manualSorting/callingWoodenPalletTaskShow") - @Log("人工分拣-呼叫木托盘-显示任务信息") - @ApiOperation("人工分拣-呼叫木托盘-显示任务信息") - public ResponseEntity callingWoodenPalletTaskShow(){ - return new ResponseEntity<>(pdaService.callingWoodenPalletTaskShow(), HttpStatus.OK); - } - - @PostMapping("/manualSorting/callingMaterialTask") - @Log("人工分拣-呼叫物料-动作") - @ApiOperation("人工分拣-呼叫物料-动作") - public ResponseEntity callingMaterialTask(){ - return new ResponseEntity<>(pdaService.callingMaterialTask(), HttpStatus.OK); - } - - @PostMapping("/manualSorting/callingMaterialTaskShow") - @Log("人工分拣-呼叫物料-显示任务信息") - @ApiOperation("人工分拣-呼叫物料-显示任务信息") - public ResponseEntity callingMaterialTaskShow(){ - return new ResponseEntity<>(pdaService.callingMaterialTaskShow(), HttpStatus.OK); - } - - @PostMapping("/manualSorting/callingResidueMaterialTask") - @Log("人工分拣-剩料入库-动作") - @ApiOperation("人工分拣-剩料入库-动作") - public ResponseEntity callingResidueMaterialTask(@Validated @RequestBody ManualResidueInDto manualResidueInDto){ - return new ResponseEntity<>(pdaService.callingResidueMaterialTask(manualResidueInDto), HttpStatus.OK); - } - - @PostMapping("/manualSorting/callingResidueMaterialTaskShow") - @Log("人工分拣-剩料入库-显示任务信息") - @ApiOperation("人工分拣-剩料入库-显示任务信息") - public ResponseEntity callingResidueMaterialTaskShow(){ - return new ResponseEntity<>(pdaService.callingResidueMaterialTaskShow(), HttpStatus.OK); - } - - @PostMapping("/manualSorting/packingTask") - @Log("人工分拣-包装入库-动作") - @ApiOperation("人工分拣-包装入库-动作") - public ResponseEntity packingTask(@Validated @RequestBody ManualResidueInDto manualResidueInDto){ - return new ResponseEntity<>(pdaService.packingTask(manualResidueInDto), HttpStatus.OK); - } - - @PostMapping("/manualSorting/packingTaskShow") - @Log("人工分拣-包装入库-显示任务信息") - @ApiOperation("人工分拣-包装入库-显示任务信息") - public ResponseEntity packingTaskShow(){ - return new ResponseEntity<>(pdaService.packingTaskShow(), HttpStatus.OK); - } - - @PostMapping("/manualSorting/bindingVehicle") - @Log("人工分拣-载具绑定") - @ApiOperation("人工分拣-载具绑定") - public ResponseEntity bindingVehicle(@Validated @RequestBody VehicleBindingDto vehicleBindingDto){ - return new ResponseEntity<>(pdaService.bindingVehicle(vehicleBindingDto), HttpStatus.OK); - } - - @PostMapping("/pressSendMaterial/pressTask") - @Log("压机送料-动作") - @ApiOperation("压机送料-动作") - public ResponseEntitypressTask(@Validated @RequestBody PressMoveDto pressMoveDto){ - return new ResponseEntity<>(pdaService.pressTask(pressMoveDto), HttpStatus.OK); - } - - @PostMapping("/pressSendMaterial/pressPointList") - @Log("压机送料-下拉框") - @ApiOperation("压机送料-下拉框") - public ResponseEntitypressPointList(){ - return new ResponseEntity<>(pdaService.pressPointList(), HttpStatus.OK); - } - - @PostMapping("/shelf/materialQuery") - @Log("货架盘点-物料查询") - @ApiOperation("货架盘点-物料查询") - public ResponseEntitymaterialQuery(@Validated @RequestBody CommonQueryDto commonQueryDto){ - return new ResponseEntity<>(pdaService.materialQuery(commonQueryDto), HttpStatus.OK); - } - - @PostMapping("/shelf/updateData") - @Log("货架盘点-物料查询") - @ApiOperation("货架盘点-物料查询") - public ResponseEntityupdateData(@Validated @RequestBody ShelfSaveDto shelfSaveDto){ - return new ResponseEntity<>(pdaService.updateData(shelfSaveDto), HttpStatus.OK); - } - - //华弘手持接口 @PostMapping("/hnWorkOrder") @Log("查询混碾工单") @ApiOperation("查询混碾工单") @@ -269,27 +43,62 @@ public class PdaController { return new ResponseEntity<>(pdaService.getHnWorkOrder(), HttpStatus.OK); } +// @PostMapping("/orderFinish") +// @Log("混碾工单完成") +// @ApiOperation("混碾工单完成") +// public ResponseEntity orderFinish(@RequestBody OrderFinishReq req) { +// return new ResponseEntity<>(pdaService.orderFinish(req), HttpStatus.OK); +// } - @PostMapping("/orderFinish") - @Log("混碾工单完成") - @ApiOperation("混碾工单完成") - public ResponseEntity orderFinish(@RequestBody OrderFinishReq req) { - return new ResponseEntity<>(pdaService.orderFinish(req), HttpStatus.OK); + @PostMapping("/unpackShelfInfo") + @Log("查询货架上未拆包料盅信息") + @ApiOperation("查询货架上未拆包料盅信息") + public ResponseEntity unpackShelfInfo() { + return new ResponseEntity<>(pdaService.unpackShelfInfo(), HttpStatus.OK); } - @PostMapping("/hnmlTask") - @Log("拆包机料盅入库") - @ApiOperation("拆包机料盅入库") - public ResponseEntity hnmlTask(@RequestBody OrderFinishReq req) { - return new ResponseEntity<>(pdaService.hnmlTask(req), HttpStatus.OK); + @PostMapping("/getCbjPoint") + @Log("查询拆包机点位") + @ApiOperation("查询拆包机点位") + public ResponseEntity getCbjPoint() { + return new ResponseEntity<>(pdaService.getCbjPoint(), HttpStatus.OK); } - @PostMapping("/hnqkTask") - @Log("拆包机叫空蛊") - @ApiOperation("拆包机叫空蛊") - public ResponseEntity hnqkTask() { - return new ResponseEntity<>(pdaService.hnqkTask(), HttpStatus.OK); + @PostMapping("/cbjqlTask") + @Log("拆包机缺料") + @ApiOperation("拆包机缺料") + public ResponseEntity cbjqlTask(@RequestBody TaskReq req) { + return new ResponseEntity<>(pdaService.cbjqlTask(req), HttpStatus.OK); } + + @PostMapping("/cbjmlTask") + @Log("拆包机下料位满料") + @ApiOperation("拆包机下料位满料") + public ResponseEntity cbjmlTask(@RequestBody TaskReq req) { + return new ResponseEntity<>(pdaService.cbjmlTask(req), HttpStatus.OK); + } + + @PostMapping("/cbjqkTask") + @Log("拆包机下料位叫空蛊") + @ApiOperation("拆包机下料位叫空蛊") + public ResponseEntity cbjqkTask(@RequestBody TaskReq req) { + return new ResponseEntity<>(pdaService.cbjqkTask(req), HttpStatus.OK); + } + + @PostMapping("/packShelfInfo") + @Log("查询货架上已拆包料盅信息") + @ApiOperation("查询货架上已拆包料盅信息") + public ResponseEntity packShelfInfo() { + return new ResponseEntity<>(pdaService.packShelfInfo(), HttpStatus.OK); + } + + @PostMapping("/yzqlTask") + @Log("困料货架点对点到布料机上料位") + @ApiOperation("困料货架点对点到布料机上料位") + public ResponseEntity yzqlTask(@RequestBody TaskReq req) { + return new ResponseEntity<>(pdaService.yzqlTask(req), HttpStatus.OK); + } + @PostMapping("/yjslwPointList") @Log("压机上料位下拉框") @ApiOperation("压机上料位下拉框") @@ -306,7 +115,7 @@ public class PdaController { @PostMapping("/materialScrap") @Log("物料报废") @ApiOperation("物料报废") - public ResponseEntity materialScrap(@RequestBody OrderFinishReq req) { + public ResponseEntity materialScrap(@RequestBody TaskReq req) { return new ResponseEntity<>(pdaService.materialScrap(req), HttpStatus.OK); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java index 65c1f1d..d00f48a 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/PdaService.java @@ -67,15 +67,20 @@ public interface PdaService { List pressPointList(); - PdaResponseVo orderFinish(OrderFinishReq req); + //查询货架上未拆包料盅信息 + List unpackShelfInfo(); - PdaResponseVo hnmlTask(OrderFinishReq req); + PdaResponseVo cbjqlTask(TaskReq req); - PdaResponseVo hnqkTask(); + PdaResponseVo cbjmlTask(TaskReq req); + + PdaResponseVo cbjqkTask(TaskReq req); + + PdaResponseVo yzqlTask(TaskReq req); PdaResponseVo qzhhjTask(ForceBackStorageReq req); - PdaResponseVo materialScrap(OrderFinishReq req); + PdaResponseVo materialScrap(TaskReq req); PdaResponseVo rgfjqlTask(FjReq req); @@ -89,4 +94,7 @@ public interface PdaService { List getYjslwPointList(); + List getCbjPoint(); + + List packShelfInfo(); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/OrderFinishReq.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/TaskReq.java similarity index 52% rename from lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/OrderFinishReq.java rename to lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/TaskReq.java index 1de2f8c..93414a1 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/OrderFinishReq.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/dto/TaskReq.java @@ -1,16 +1,14 @@ package org.nl.wms.pda.service.dao.dto; -import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import java.util.Date; - /** * @author sxp */ @Data -public class OrderFinishReq { +public class TaskReq { private String orderCode; + private String startPoint; + private String endPoint; private String barCode; - private String createTime; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.java index d1124a7..157eb62 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.java @@ -62,7 +62,6 @@ public interface PdaMapper { /** * 查询物料 - * @param commonQueryDto * @return */ List materialQuery(CommonQueryDto commonQueryDto); @@ -80,4 +79,10 @@ public interface PdaMapper { List getHchjPoint(); List getYjslwPointList(); + + List selectUnpackShelfInfo(); + + List getCbjPointList(); + + List selectPackShelfInfo(); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml index 7dbb9eb..75cdc4d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/mapper/PdaMapper.xml @@ -3,185 +3,198 @@ + + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/ShelfInfoVo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/ShelfInfoVo.java new file mode 100644 index 0000000..8f20d8a --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/dao/vo/ShelfInfoVo.java @@ -0,0 +1,14 @@ +package org.nl.wms.pda.service.dao.vo; + +import lombok.Data; + +/** + * @author sxp + * @Description: 困料货架信息 + */ +@Data +public class ShelfInfoVo { + private String pointCode; + private String materialCode; + private String instorageTime; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java index 0799dfd..4cd6514 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java @@ -5,8 +5,6 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.nl.common.exception.BadRequestException; @@ -14,7 +12,6 @@ import org.nl.common.utils.SecurityUtils; import org.nl.wms.database.material.service.IMdBaseMaterialService; import org.nl.wms.database.material.service.dao.MdBaseMaterial; import org.nl.wms.ext.acs.service.WmsToAcsService; -import org.nl.wms.ext.acs.service.dto.to.BaseResponse; import org.nl.wms.ext.acs.service.dto.to.acs.DeviceInfoDto; import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse; import org.nl.wms.pda.service.PdaService; @@ -41,7 +38,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; @@ -395,51 +391,88 @@ public class PdaServiceImpl implements PdaService { } @Override - public PdaResponseVo orderFinish(OrderFinishReq req) { - if (StringUtils.isEmpty(req.getOrderCode())) { - throw new BadRequestException("工单不能为空"); + public List unpackShelfInfo() { + return pdaMapper.selectUnpackShelfInfo(); + } + +// @Override +// public PdaResponseVo orderFinish(TaskReq req) { +// if (StringUtils.isEmpty(req.getOrderCode())) { +// throw new BadRequestException("工单不能为空"); +// } +// PdmBdWorkorder bdWorkorder = workorderService.getByCode(req.getOrderCode()); +// if (bdWorkorder == null) { +// throw new BadRequestException("未找到对应工单"); +// } +// if (!WorkOrderStatusEnum.STAGING.getCode().equals(bdWorkorder.getWorkorder_status())){ +// throw new BadRequestException("只能选择暂存中的工单"); +// } +// bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.COMPLETE.getCode()); +// bdWorkorder.setRealproduceend_date(DateUtil.now()); +// TaskUtils.setWorkOrderUpdateByAcs(bdWorkorder); +// // 统计合不合格数量到工单字段中 +// workorderService.updateById(bdWorkorder); +// return PdaResponseVo.pdaResultOk("工单完成"); +// } + + @Override + public PdaResponseVo cbjqlTask(TaskReq req) { + if (StringUtils.isEmpty(req.getStartPoint())) { + throw new BadRequestException("货架点位不能为空"); } - PdmBdWorkorder bdWorkorder = workorderService.getByCode(req.getOrderCode()); - if (bdWorkorder == null) { - throw new BadRequestException("未找到对应工单"); + if (StringUtils.isEmpty(req.getEndPoint())) { + throw new BadRequestException("拆包机点位不能为空"); } - if (!WorkOrderStatusEnum.STAGING.getCode().equals(bdWorkorder.getWorkorder_status())){ - throw new BadRequestException("只能选择暂存中的工单"); - } - bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.COMPLETE.getCode()); - bdWorkorder.setRealproduceend_date(DateUtil.now()); - TaskUtils.setWorkOrderUpdateByAcs(bdWorkorder); - // 统计合不合格数量到工单字段中 - workorderService.updateById(bdWorkorder); - return PdaResponseVo.pdaResultOk("工单完成"); + JSONObject param = new JSONObject(); + param.put("start_point", req.getStartPoint()); + param.put("device_code", req.getEndPoint()); + param.put("config_code","CBJQLTask"); + taskService.apply(param); + return PdaResponseVo.pdaResultOk("拆包机缺料请求成功"); } @Override - public PdaResponseVo hnmlTask(OrderFinishReq req) { + public PdaResponseVo cbjmlTask(TaskReq req) { if (StringUtils.isEmpty(req.getOrderCode())) { throw new BadRequestException("工单不能为空"); } + if (StringUtils.isEmpty(req.getStartPoint())) { + throw new BadRequestException("拆包机点位不能为空"); + } if (StringUtils.isEmpty(req.getBarCode())) { throw new BadRequestException("条码不能为空"); } - //下发拆包机到货架的任务 JSONObject param = new JSONObject(); - param.put("device_code", "CBJ01"); - param.put("config_code","HNMLTask"); - param.put("vehicle_code", req.getBarCode()); param.put("workorder_code",req.getOrderCode()); - param.put("create_time",req.getCreateTime()); + param.put("vehicle_code",req.getBarCode()); + param.put("device_code", req.getStartPoint()); + param.put("config_code","CBJMLTask"); taskService.apply(param); - return PdaResponseVo.pdaResultOk("满料入库请求成功"); + return PdaResponseVo.pdaResultOk("拆包机下料位满料请求成功"); } @Override - public PdaResponseVo hnqkTask() { + public PdaResponseVo cbjqkTask(TaskReq req) { + if (StringUtils.isEmpty(req.getEndPoint())) { + throw new BadRequestException("拆包机点位不能为空"); + } JSONObject param = new JSONObject(); - param.put("device_code", "CBJ01"); - param.put("config_code","HNQKTask"); + param.put("device_code", req.getEndPoint()); + param.put("config_code","CBJQKTask"); taskService.apply(param); - return PdaResponseVo.pdaResultOk("空蛊出库请求成功"); + return PdaResponseVo.pdaResultOk("拆包机下料位叫空蛊请求成功"); + } + + @Override + public PdaResponseVo yzqlTask(TaskReq req) { + JSONObject param = new JSONObject(); + //作为判断压制缺料点对点任务判断 + param.put("task_type","YZQLPTP"); + param.put("point_code1", req.getStartPoint()); + param.put("device_code", req.getEndPoint()); + param.put("config_code","YZQLTask"); + taskService.apply(param); + return PdaResponseVo.pdaResultOk("布料机上料位请求成功"); } @Override @@ -453,7 +486,7 @@ public class PdaServiceImpl implements PdaService { @Override - public PdaResponseVo materialScrap(OrderFinishReq req) { + public PdaResponseVo materialScrap(TaskReq req) { if (StringUtils.isEmpty(req.getBarCode())) { throw new BadRequestException("条码不能为空"); } @@ -505,6 +538,16 @@ public class PdaServiceImpl implements PdaService { return pdaMapper.getYjslwPointList(); } + @Override + public List getCbjPoint() { + return pdaMapper.getCbjPointList(); + } + + @Override + public List packShelfInfo() { + return pdaMapper.selectPackShelfInfo(); + } + /** * 保存组盘信息 * @param shelfSaveDto diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java index 55b732f..fc5e74d 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/SchBaseVehiclematerialgroup.java @@ -152,6 +152,8 @@ public class SchBaseVehiclematerialgroup implements Serializable { private String out_kiln_time; @ApiModelProperty(value = "入窑时间") private String into_kiln_time; + @ApiModelProperty(value = "是否已拆包(0 否,1 是)") + private String unpack; @TableField(exist = false) diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java index b2a5835..bf31e52 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java @@ -37,10 +37,10 @@ import java.util.Set; import java.util.function.Consumer; /** -* @description 服务实现 -* @author lyd -* @date 2023-05-16 -**/ + * @author lyd + * @description 服务实现 + * @date 2023-05-16 + **/ @Slf4j @Service public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl implements ISchBaseVehiclematerialgroupService { @@ -55,7 +55,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page){ + public IPage queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page) { IPage pages = new Page<>(page.getPage() + 1, page.getSize()); pages = vehiclematerialgroupMapper.selectPageLeftJoin(pages, whereJson); return pages; @@ -67,7 +67,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl lambda = new QueryWrapper().lambda(); lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, barCode) - .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status,GroupBindMaterialStatusEnum.BOUND.getValue()) + .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()) .eq(SchBaseVehiclematerialgroup::getIs_delete, false); return vehiclematerialgroupMapper.selectOne(lambda); } @@ -164,8 +164,13 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl lambda = new QueryWrapper().lambda(); lambda.eq(SchBaseVehiclematerialgroup::getPoint_code, pointCode) - .eq(SchBaseVehiclematerialgroup::getIs_delete, false); - return vehiclematerialgroupMapper.selectOne(lambda); + .eq(SchBaseVehiclematerialgroup::getIs_delete, false) + .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.UNBOUND.getValue()) + .orderByDesc(SchBaseVehiclematerialgroup::getUpdate_time); + List schBaseVehiclematerialgroups = vehiclematerialgroupMapper.selectList(lambda); + if (schBaseVehiclematerialgroups.isEmpty()) { + return null; + } + return schBaseVehiclematerialgroups.get(0); } - } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java index 37ee4de..038e900 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java @@ -106,7 +106,7 @@ public class SchBasePointServiceImpl extends ServiceImpl tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); + // 配置信息 + SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() + .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); + for (SchBaseTask task : tasks) { + TaskUtils.setUpdateByAcs(task); + List nextRegionStr = Arrays.stream(taskConfig.getNext_region_str().split(",")) + .collect(Collectors.toList()); + String requestParam = task.getRequest_param(); + JSONObject jsonObject = JSONObject.parseObject(requestParam); + // 找终点 + SchBasePoint point = findNextPoint(nextRegionStr, jsonObject); + if (ObjectUtil.isEmpty(point)) { + task.setRemark(ExceptionConstant.NEED_POINT_NOT_FOUND); + taskService.updateById(task); + // 消息通知 + noticeService.createNotice(task.getRemark(), TASK_CONFIG_CODE + task.getTask_code(), NoticeTypeEnum.WARN.getCode()); + continue; + } + // 设置终点并修改创建成功状态 + task.setPoint_code2(point.getPoint_code()); + task.setTask_status(TaskStatus.CREATED.getCode()); + task.setRemark(""); + task.setVehicle_type(GeneralDefinition.MATERIAL_CUP); + taskService.updateById(task); + // 锁住终点 + point.setIng_task_code(task.getTask_code()); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); + } + + } + + /** + * 先判断是否特殊物料 分配货架位置或者布料机 + * + * @param nextRegionStr + * @param requestParam + * @return + */ + private SchBasePoint findNextPoint(List nextRegionStr, JSONObject requestParam) { + // 放到困料货架 + List points = pointService.list(new LambdaQueryWrapper() + .eq(SchBasePoint::getRegion_code, nextRegionStr.get(0)) + // 当前执行的任务为空或者NULL,有数据表示锁住 + .and(la -> la.isNull(SchBasePoint::getIng_task_code) + .or() + .eq(SchBasePoint::getIng_task_code, "")) + .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) + .eq(SchBasePoint::getIs_used, true) + .notLike(SchBasePoint::getPoint_code,"CBJ%") + .orderByAsc(SchBasePoint::getUpdate_time) + .orderByAsc(SchBasePoint::getIn_order_seq) + .orderByAsc(SchBasePoint::getPoint_code)); + return ObjectUtil.isNotEmpty(points) ? points.get(0) : null; + } + + @Override + @Transactional(rollbackFor = Exception.class) + protected void updateStatus(String task_code, TaskStatus status) { + // 校验任务 + SchBaseTask taskObj = taskService.getByCode(task_code); + if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { + throw new BadRequestException(ExceptionConstant.THE_TASK_HAS_BEEN_COMPLETED); + } + if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { + throw new BadRequestException(ExceptionConstant.THE_TASK_HAS_BEEN_COMPLETED); + } + if (status.equals(TaskStatus.EXECUTING)) { + taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); + TaskUtils.setUpdateByAcs(taskObj); + taskService.updateById(taskObj); + } else if (status.equals(TaskStatus.FINISHED)) { + this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } else if (status.equals(TaskStatus.CANCELED)) { + this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } + } + + @Override + public void forceFinish(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + @Override + public void cancel(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 获取参数 + String endPoint = taskObj.getPoint_code2(); + String startPoint = taskObj.getPoint_code1(); + SchBasePoint endPointObj = pointService.getById(endPoint); + SchBasePoint startPointObj = pointService.getById(startPoint); + SchBaseVehiclematerialgroup groupEntity = vehiclematerialgroupService.getOne( + new LambdaQueryWrapper() + .eq(SchBaseVehiclematerialgroup::getGroup_id, taskObj.getGroup_id())); + Assert.notNull(groupEntity, ExceptionConstant.GROUP_INFORMATION_NOT_FOUND); + // 终点去除正在执行的任务, 设置载具编码、载具类型、载具数量 + if (ObjectUtil.isNotEmpty(endPointObj)) { + endPointObj.setIng_task_code(""); + endPointObj.setPoint_status(PointStatusEnum.FULL_POINT.getCode()); + endPointObj.setVehicle_qty(1); + endPointObj.setVehicle_code(taskObj.getVehicle_code()); + 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()); + //改为已拆包 + groupEntity.setUnpack("1"); + TaskUtils.setGroupUpdateByType(groupEntity, taskFinishedType); + vehiclematerialgroupService.updateById(groupEntity); + // 清空起点 + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + PointUtils.clearPoint(startPointObj); + } + taskObj.setRemark(GeneralDefinition.TASK_FINISH); + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } + + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 获取参数 + String endPoint = taskObj.getPoint_code2(); + SchBasePoint one = ObjectUtil.isNotEmpty(endPoint) + ? pointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, endPoint)) + : null; + if (one != null) { + one.setIng_task_code(""); + PointUtils.setUpdateByType(one, taskFinishedType); + pointService.updateById(one); + // 删掉组盘信息 + vehiclematerialgroupService.removeById(taskObj.getGroup_id()); + } + taskObj.setRemark(GeneralDefinition.TASK_CANCEL); + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } + + /** + * 组盘 + */ + @Override + public String setGroupPlate(JSONObject param) { + String vehicleCode = TaskUtils.defaultVehicleCode(param.getString("vehicle_code")); + String vehicleType = GeneralDefinition.MATERIAL_CUP; + String deviceCode = param.getString("device_code"); + BigDecimal weight = param.getBigDecimal("weight"); + // 获取工单 + PdmBdWorkorder productionTask = workorderService.getByCode(param.getString("workorder_code")); + if (ObjectUtil.isEmpty(productionTask)) { + throw new BadRequestException("未查询到工单" + param.getString("workorder_code")); + } + SchBasePoint basePoint = pointService.getOne(new LambdaQueryWrapper() + .eq(SchBasePoint::getPoint_code, deviceCode) + .eq(SchBasePoint::getIs_used, true)); + if (ObjectUtil.isEmpty(basePoint)) { + throw new BadRequestException("点位[" + deviceCode + "]已被禁用"); + } + if (vehicleCode == null || vehicleCode.equals(GeneralDefinition.NO)) { + throw new BadRequestException("载具编码不能为空"); + } + // 找到相同组盘信息就直接返回id,避免任务取消组盘信息还存在,重复插入 + vehiclematerialgroupService.unBindingSameVehicleMaterial(vehicleCode, vehicleType); + SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup(); + groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + // 要把数据存到组盘表 + groupEntity.setMaterial_id(productionTask.getMaterial_id()); + groupEntity.setRedundance_material_code(productionTask.getRaw_material_code()); + groupEntity.setCreate_id(GeneralDefinition.ACS_ID); + groupEntity.setCreate_name(GeneralDefinition.ACS_NAME); + groupEntity.setCreate_time(param.getString("create_time")); + groupEntity.setVehicle_code(vehicleCode); + groupEntity.setVehicle_type(vehicleType); + groupEntity.setSource_vehicle_code(basePoint.getPoint_code()); + groupEntity.setPoint_code(basePoint.getPoint_code()); + groupEntity.setPoint_name(basePoint.getPoint_name()); + groupEntity.setMove_way(basePoint.getPoint_code()); + groupEntity.setMix_times("1"); + groupEntity.setInstorage_time(DateUtil.now()); + groupEntity.setPcsn(DateUtil.format(DateUtil.date(), "yyyyMMdd")); + groupEntity.setStanding_time(productionTask.getStanding_time()); + groupEntity.setWorkorder_code(productionTask.getWorkorder_code()); + groupEntity.setMaterial_weight(ObjectUtil.isNotEmpty(weight) + ? weight + : BigDecimal.valueOf(0)); + groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); + groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); + groupEntity.setIs_delete(false); + vehiclematerialgroupService.save(groupEntity); + return groupEntity.getGroup_id(); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/CBJQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/CBJQKTask.java new file mode 100644 index 0000000..add0154 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/CBJQKTask.java @@ -0,0 +1,217 @@ +package org.nl.wms.sch.task_manage.task.tasks.hn; + +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.nl.common.exception.BadRequestException; +import org.nl.system.service.notice.ISysNoticeService; +import org.nl.wms.sch.point.service.ISchBasePointService; +import org.nl.wms.sch.point.service.dao.SchBasePoint; +import org.nl.wms.sch.task.service.ISchBaseTaskService; +import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; +import org.nl.wms.sch.task.service.dao.SchBaseTask; +import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; +import org.nl.wms.sch.task_manage.AbstractTask; +import org.nl.wms.sch.task_manage.constant.ExceptionConstant; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; +import org.nl.wms.sch.task_manage.enums.PointStatusEnum; +import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; +import org.nl.wms.sch.task_manage.task.core.TaskStatus; +import org.nl.wms.util.PointUtils; +import org.nl.wms.util.TaskUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: sxp + * @Description: 拆包机缺空:呼叫空载具,从困料货架上获取 + */ +@Component("CBJQKTask") +public class CBJQKTask extends AbstractTask { + private static final String TASK_CONFIG_CODE = "CBJQKTask"; + + @Autowired + private ISchBasePointService pointService; + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISchBaseTaskconfigService taskConfigService; + @Autowired + private ISysNoticeService noticeService; + + /** + * 具体业务 + */ + @Override + @Transactional(rollbackFor = Exception.class) + protected void create() { + // 获取任务 + List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); + // 配置信息 + SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() + .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); + for (SchBaseTask task : tasks) { + TaskUtils.setUpdateByAcs(task); // 修改修改者 + List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")) + .collect(Collectors.toList()); + // 找起点 + String extGroupData = task.getExt_group_data(); + JSONObject jsonObject = JSONObject.parseObject(extGroupData); + SchBasePoint point = findStartPoint(startRegionStr, jsonObject); + if (ObjectUtil.isEmpty(point)) { + task.setRemark(ExceptionConstant.NEED_POINT_NOT_FOUND); + taskService.update(task); + // 消息通知 + continue; + } + // 设置终点并修改创建成功状态 + task.setPoint_code1(point.getPoint_code()); + task.setRemark(""); + task.setTask_status(TaskStatus.CREATED.getCode()); + taskService.updateById(task); + + point.setIng_task_code(task.getTask_code()); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); + } + } + + /** + * 立即创建任务 + * @param task + */ + @Override + protected void createCompletion(SchBaseTask task) { + // 配置信息 + SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() + .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); + TaskUtils.setUpdateByAcs(task); // 修改修改者 + List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")) + .collect(Collectors.toList()); + // 找起点 + String extGroupData = task.getExt_group_data(); + JSONObject jsonObject = JSONObject.parseObject(extGroupData); + SchBasePoint point = findStartPoint(startRegionStr, jsonObject); + if (ObjectUtil.isEmpty(point)) { + // 消息通知 + noticeService.createNotice(ExceptionConstant.NEED_POINT_NOT_FOUND + , TASK_CONFIG_CODE + task.getPoint_code2() + , NoticeTypeEnum.WARN.getCode()); + throw new BadRequestException(ExceptionConstant.NEED_POINT_NOT_FOUND); + } + // 设置终点并修改创建成功状态 + task.setPoint_code1(point.getPoint_code()); + task.setRemark(""); + task.setTask_status(TaskStatus.CREATED.getCode()); + TaskUtils.setUpdateByAcs(task); + taskService.save(task); + + point.setIng_task_code(task.getTask_code()); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); + + } + + /** + * 找起点, 通过料盅睏料货架找到空盅 + * + * @param startRegionStr + * @param extGroupData + * @return + */ + private SchBasePoint findStartPoint(List startRegionStr, JSONObject extGroupData) { + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + lam.in(SchBasePoint::getRegion_code, startRegionStr) + .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_VEHICLE.getCode()) + .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 + .or() + .eq(SchBasePoint::getIng_task_code, "")) + .notLike(SchBasePoint::getPoint_code,"CBJ%") + .orderByAsc(SchBasePoint::getUpdate_time) + .orderByAsc(SchBasePoint::getIn_order_seq); + List schBasePoints = pointService.list(lam); + return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null; + } + + @Override + @Transactional(rollbackFor = Exception.class) + protected void updateStatus(String task_code, TaskStatus status) { + // 校验任务 + SchBaseTask taskObj = taskService.getByCode(task_code); + if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { + throw new BadRequestException(ExceptionConstant.THE_TASK_HAS_BEEN_COMPLETED); + } + if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { + throw new BadRequestException(ExceptionConstant.THE_TASK_HAS_BEEN_CANCELLED); + } + // 根据传来的类型去对任务进行操作 + if (status.equals(TaskStatus.EXECUTING)) { + taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); + TaskUtils.setUpdateByAcs(taskObj); + taskService.updateById(taskObj); + } + if (status.equals(TaskStatus.FINISHED)) { + this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } + if (status.equals(TaskStatus.CANCELED)) { + this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } + } + + @Override + public void forceFinish(String task_code) { + this.updateStatus(task_code, TaskStatus.FINISHED); + } + + @Override + public void cancel(String task_code) { + this.updateStatus(task_code, TaskStatus.CANCELED); + } + + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 获取参数 + String startPoint = taskObj.getPoint_code1(); // 获取起点 + String endPoint = taskObj.getPoint_code2(); // 获取起点 + SchBasePoint startPointObj = pointService.getById(startPoint); + SchBasePoint endPointObj = pointService.getById(endPoint); + // 起点清空 + if (ObjectUtil.isNotEmpty(startPointObj)) { + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + PointUtils.clearPoint(startPointObj); + endPointObj.setPoint_status(PointStatusEnum.EMPTY_VEHICLE.getCode()); + endPointObj.setVehicle_type(GeneralDefinition.MATERIAL_CUP); + endPointObj.setVehicle_qty(1); + PointUtils.setUpdateByType(endPointObj, taskFinishedType); + pointService.updateById(endPointObj); + } + // 任务完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark(GeneralDefinition.TASK_FINISH); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } + + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + // 获取参数 + String startPoint = taskObj.getPoint_code1(); // 获取起点 + SchBasePoint startPointObj = pointService.getById(startPoint); + // 起点解锁 + if (ObjectUtil.isNotEmpty(startPointObj)) { + startPointObj.setIng_task_code(""); + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + pointService.updateById(startPointObj); + } + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } +} + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/CBJQLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/CBJQLTask.java new file mode 100644 index 0000000..fd4fd2e --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/CBJQLTask.java @@ -0,0 +1,233 @@ +package org.nl.wms.sch.task_manage.task.tasks.hn; + +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.exception.BadRequestException; +import org.nl.system.service.notice.ISysNoticeService; +import org.nl.wms.database.material.service.IMdBaseMaterialService; +import org.nl.wms.database.material.service.dao.MdBaseMaterial; +import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; +import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; +import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; +import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; +import org.nl.wms.sch.point.service.ISchBasePointService; +import org.nl.wms.sch.point.service.dao.SchBasePoint; +import org.nl.wms.sch.task.service.ISchBaseTaskService; +import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; +import org.nl.wms.sch.task.service.dao.SchBaseTask; +import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; +import org.nl.wms.sch.task_manage.AbstractTask; +import org.nl.wms.sch.task_manage.constant.ExceptionConstant; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; +import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; +import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum; +import org.nl.wms.sch.task_manage.enums.TaskFinishedTypeEnum; +import org.nl.wms.sch.task_manage.task.core.TaskStatus; +import org.nl.wms.sch.task_manage.task.tasks.yz.mapper.YZMapper; +import org.nl.wms.util.PointUtils; +import org.nl.wms.util.TaskUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Author: sxp + * @Description: 拆包机满料位缺料任务 货架满料位 -> CBJML01 + * @Date: 2024/4/2 + */ +@Slf4j +@Component("CBJQLTask") +public class CBJQLTask extends AbstractTask { + private static final String TASK_CONFIG_CODE = "CBJQLTask"; + + @Autowired + private ISchBasePointService pointService; + @Autowired + private ISchBaseTaskService taskService; + @Autowired + private ISchBaseTaskconfigService taskConfigService; + @Autowired + private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; + @Autowired + private IPdmBdWorkorderService workorderService; + @Autowired + private YZMapper yzMapper; + @Autowired + private ISysNoticeService noticeService; + @Autowired + IMdBaseMaterialService materialService; + + @Override + protected void create() throws BadRequestException { + // 获取任务 + List tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY); + // 配置信息 + SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper() + .eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE)); + for (SchBaseTask task : tasks) { + TaskUtils.setUpdateByAcs(task); +// List startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(",")).collect(Collectors.toList()); + // 找起点 + task.setVehicle_type(GeneralDefinition.MATERIAL_CUP); + String requestParam = task.getRequest_param(); + JSONObject extGroupData = JSONObject.parseObject(requestParam); + extGroupData.put("vehicle_type", task.getVehicle_type()); +// SchBasePoint point = findStartPoint(startRegionStr, jsonObject); + SchBasePoint point = pointService.selectById(extGroupData.getString("start_point")); + + if (ObjectUtil.isEmpty(point)) { + task.setRemark("未找到所需点位!"); + taskService.update(task); + // 消息通知 + continue; + } + // 设置起点并修改创建成功状态 + task.setPoint_code1(point.getPoint_code()); + task.setTask_status(TaskStatus.CREATED.getCode()); + task.setVehicle_code(point.getVehicle_code()); + task.setGroup_id(point.getGroup_id()); + task.setRemark(""); + taskService.updateById(task); + + point.setIng_task_code(task.getTask_code()); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); + } + } + + @Override + protected void createCompletion(SchBaseTask task) { + TaskUtils.setUpdateByAcs(task); + task.setVehicle_type(GeneralDefinition.MATERIAL_CUP); + String requestParam = task.getRequest_param(); + JSONObject extGroupData = JSONObject.parseObject(requestParam); + SchBasePoint point = pointService.selectById(extGroupData.getString("start_point")); + if (ObjectUtil.isEmpty(point)) { + // 消息通知 + noticeService.createNotice(ExceptionConstant.NEED_POINT_NOT_FOUND, + TASK_CONFIG_CODE + task.getPoint_code2(), NoticeTypeEnum.WARN.getCode()); + throw new BadRequestException(ExceptionConstant.NEED_POINT_NOT_FOUND); + } + task.setPoint_code1(point.getPoint_code()); + task.setTask_status(TaskStatus.CREATED.getCode()); + task.setVehicle_code(point.getVehicle_code()); + task.setGroup_id(point.getGroup_id()); + task.setRemark(""); + taskService.save(task); + point.setIng_task_code(task.getTask_code()); + PointUtils.setUpdateByAcs(point); + pointService.updateById(point); + } + + /** + * 找起点业务:查找困料货架的泥料是和压机工单的泥料相同的位置 + * 如果是新料口就选择新料,如果是旧料口就选旧料 + * @param startRegionStr : 区域列表 + * @param requestParam : 外部参数,包含条件所需的信息 + * @return 点位 + * @description : JSONObject获取不到就是null + */ + private SchBasePoint findStartPoint(List startRegionStr, JSONObject requestParam) { + // 获取当前工单 + String workorderCode = requestParam.getString("workorder_code"); + PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode) + ? workorderService.getOne(new LambdaQueryWrapper() + .eq(PdmBdWorkorder::getWorkorder_code, workorderCode)) + : null; + Assert.notNull(workOrder, "工单不能为空!"); + MdBaseMaterial material = materialService.getById(workOrder.getMaterial_id()); + // hint: redundance_material_code暂时存在着 + List points = yzMapper.findPointByYZQL(startRegionStr, material.getMaterial_code()); + return ObjectUtil.isNotEmpty(points) ? points.get(0) : null; + } + + + @Override + protected void updateStatus(String task_code, TaskStatus status) { + // 校验任务 + SchBaseTask taskObj = taskService.getByCode(task_code); + if (taskObj.getTask_status().equals(TaskStatus.FINISHED.getCode())) { + throw new BadRequestException("该任务已完成!"); + } + if (taskObj.getTask_status().equals(TaskStatus.CANCELED.getCode())) { + throw new BadRequestException("该任务已取消!"); + } + // 根据传来的类型去对任务进行操作 + if (status.equals(TaskStatus.EXECUTING)) { + taskObj.setTask_status(TaskStatus.EXECUTING.getCode()); + taskObj.setRemark("执行中"); + TaskUtils.setUpdateByAcs(taskObj); + taskService.updateById(taskObj); + } + if (status.equals(TaskStatus.FINISHED)) { + this.finishTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } + if (status.equals(TaskStatus.CANCELED)) { + this.cancelTask(taskObj, TaskFinishedTypeEnum.AUTO_ACS); + } + } + + @Override + public void forceFinish(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.finishTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + + @Override + public void cancel(String task_code) { + SchBaseTask taskObj = taskService.getByCode(task_code); + if (ObjectUtil.isEmpty(taskObj)) { + throw new BadRequestException("该任务不存在"); + } + this.cancelTask(taskObj, TaskFinishedTypeEnum.MANUAL_PC); + } + public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + String startPoint = taskObj.getPoint_code1(); + SchBasePoint startPointObj = pointService.getById(startPoint); + // 除了解锁需要将组盘表中的物料绑定载具设置为已解绑 + // 起点设置空位 + // 任务上有载具编码 -> 获取当前载具编码的组盘信息 + SchBaseVehiclematerialgroup groupObj = vehiclematerialgroupService.getById(taskObj.getGroup_id()); + // 将载具设置为已解绑 + groupObj.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); + TaskUtils.setGroupUpdateByType(groupObj, taskFinishedType); + vehiclematerialgroupService.update(groupObj); + // 释放点位,将点位设置为空位,清空数据 + if (ObjectUtil.isNotEmpty(startPointObj)) { + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + PointUtils.clearPoint(startPointObj); + } + // 任务修改成完成 + taskObj.setTask_status(TaskStatus.FINISHED.getCode()); + taskObj.setRemark(GeneralDefinition.TASK_FINISH); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } + + public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { + String startPoint = taskObj.getPoint_code1(); + SchBasePoint startPointObj = pointService.getById(startPoint); + // 起点解锁 + if (ObjectUtil.isNotEmpty(startPointObj)) { + startPointObj.setIng_task_code(""); + PointUtils.setUpdateByType(startPointObj, taskFinishedType); + pointService.updateById(startPointObj); + } + taskObj.setRemark(GeneralDefinition.TASK_CANCEL); + taskObj.setTask_status(TaskStatus.CANCELED.getCode()); + taskObj.setFinished_type(taskFinishedType.getCode()); + TaskUtils.setUpdateByType(taskObj, taskFinishedType); + taskService.updateById(taskObj); + } +} 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 7089142..b996367 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 @@ -21,11 +21,13 @@ import org.nl.wms.sch.task.service.ISchBaseTaskconfigService; import org.nl.wms.sch.task.service.dao.SchBaseTask; import org.nl.wms.sch.task.service.dao.SchBaseTaskconfig; import org.nl.wms.sch.task_manage.AbstractTask; +import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.constant.ExceptionConstant; import org.nl.wms.sch.task_manage.constant.GeneralDefinition; import org.nl.wms.sch.task_manage.constant.PointTypeConstant; import org.nl.wms.sch.task_manage.constant.RegionConstant; import org.nl.wms.sch.task_manage.enums.*; +import org.nl.wms.sch.task_manage.task.TaskType; import org.nl.wms.sch.task_manage.task.core.TaskStatus; import org.nl.wms.sch.task_manage.task.tasks.hn.mapper.HNMapper; import org.nl.wms.util.PointUtils; @@ -47,7 +49,7 @@ import java.util.stream.Collectors; */ @Component("HNMLTask") public class HNMLTask extends AbstractTask { - private static final String TASK_CONFIG_CODE = "HNMLTask"; + private static String TASK_CONFIG_CODE = "HNMLTask"; @Autowired private ISchBasePointService pointService; @Autowired @@ -157,6 +159,7 @@ public class HNMLTask extends AbstractTask { .eq(SchBasePoint::getIng_task_code, "")) .eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_POINT.getCode()) .eq(SchBasePoint::getIs_used, true) + .notLike(SchBasePoint::getPoint_code,"CBJ%") .orderByAsc(SchBasePoint::getUpdate_time) .orderByAsc(SchBasePoint::getIn_order_seq) .orderByAsc(SchBasePoint::getPoint_code)); @@ -274,11 +277,9 @@ public class HNMLTask extends AbstractTask { String deviceCode = param.getString("device_code"); BigDecimal weight = param.getBigDecimal("weight"); // 泥料号 -// String materialCode = param.getString("material_code"); - PdmBdWorkorder productionTask = workorderService.getByCode(param.getString("workorder_code")); - + String materialCode = param.getString("material_code"); // 获取工单 -// PdmBdWorkorder productionTask = workorderService.getDeviceDockingProductionTask(deviceCode); + PdmBdWorkorder productionTask = workorderService.getDeviceDockingProductionTask(deviceCode); SchBasePoint basePoint = pointService.getOne(new LambdaQueryWrapper() .eq(SchBasePoint::getPoint_code, deviceCode) .eq(SchBasePoint::getIs_used, true)); @@ -294,10 +295,10 @@ public class HNMLTask extends AbstractTask { groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr()); // 要把数据存到组盘表 groupEntity.setMaterial_id(productionTask.getMaterial_id()); - groupEntity.setRedundance_material_code(productionTask.getRaw_material_code()); + groupEntity.setRedundance_material_code(materialCode); groupEntity.setCreate_id(GeneralDefinition.ACS_ID); groupEntity.setCreate_name(GeneralDefinition.ACS_NAME); - groupEntity.setCreate_time(param.getString("create_time")); + groupEntity.setCreate_time(DateUtil.now()); groupEntity.setVehicle_code(vehicleCode); groupEntity.setVehicle_type(vehicleType); groupEntity.setSource_vehicle_code(basePoint.getPoint_code()); @@ -315,7 +316,9 @@ public class HNMLTask extends AbstractTask { groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType()); groupEntity.setIs_delete(false); + groupEntity.setUnpack("0");//未拆包 vehiclematerialgroupService.save(groupEntity); return groupEntity.getGroup_id(); } } + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNQKTask.java index ccefebe..2a30173 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNQKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNQKTask.java @@ -133,6 +133,7 @@ public class HNQKTask extends AbstractTask { .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 .or() .eq(SchBasePoint::getIng_task_code, "")) + .notLike(SchBasePoint::getPoint_code,"CBJ%") .orderByAsc(SchBasePoint::getUpdate_time) .orderByAsc(SchBasePoint::getIn_order_seq); List schBasePoints = pointService.list(lam); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java index 7ed9894..7094992 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZQLTask.java @@ -173,6 +173,10 @@ public class YZQLTask extends AbstractTask { * @description : JSONObject获取不到就是null */ private SchBasePoint findStartPoint(List startRegionStr, JSONObject requestParam) { + String taskType = requestParam.getString("task_type"); + if (!StringUtils.isEmpty(taskType) && "YZQLPTP".equals(taskType)) { + return pointService.selectById(requestParam.getString("point_code1")); + } // 获取当前工单 String workorderCode = requestParam.getString("workorder_code"); PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode) @@ -232,11 +236,14 @@ public class YZQLTask extends AbstractTask { public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { String startPoint = taskObj.getPoint_code1(); SchBasePoint startPointObj = pointService.getById(startPoint); + SchBasePoint endPointObj = pointService.getById(taskObj.getPoint_code2()); // 除了解锁需要将组盘表中的物料绑定载具设置为已解绑 // 起点设置空位 // 任务上有载具编码 -> 获取当前载具编码的组盘信息 SchBaseVehiclematerialgroup groupObj = vehiclematerialgroupService.getById(taskObj.getGroup_id()); - // 将载具设置为已解绑 + // 将载具设置为已解绑 修改点位未 + groupObj.setPoint_code(endPointObj.getPoint_code()); + groupObj.setPoint_name(endPointObj.getPoint_name()); groupObj.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); TaskUtils.setGroupUpdateByType(groupObj, taskFinishedType); vehiclematerialgroupService.update(groupObj); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLWHKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLWHKTask.java index ebe3ea2..6a4e39f 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLWHKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLWHKTask.java @@ -138,6 +138,7 @@ public class YZSLWHKTask extends AbstractTask { .and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住 .or() .eq(SchBasePoint::getIng_task_code, "")) + .notLike(SchBasePoint::getPoint_code,"CBJ%") .eq(SchBasePoint::getIs_used, true) .orderByAsc(SchBasePoint::getIn_order_seq) .orderByAsc(SchBasePoint::getPoint_code); @@ -195,6 +196,7 @@ public class YZSLWHKTask extends AbstractTask { PointUtils.clearPoint(startPoint); String endPoint = taskObj.getPoint_code2(); // 获取终点 SchBasePoint endPointObj = pointService.getById(endPoint); + //查询该点位已解绑的组盘信息 SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getByPointCode(pointCode1); if (null == groupInfo) { throw new BadRequestException("未查询到上料位组盘信息"); @@ -203,7 +205,9 @@ public class YZSLWHKTask extends AbstractTask { if (ObjectUtil.isNotEmpty(endPoint)) { // SimpleDateFormat dateFormat = new SimpleDateFormat("yy-"); // String format = dateFormat.format(DateUtil.now()); - groupInfo.setInstorage_time(DateUtil.now()); +// groupInfo.setInstorage_time(DateUtil.now()); + groupInfo.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue()); + groupInfo.setSource_vehicle_code(pointCode1); groupInfo.setPoint_code(endPoint); groupInfo.setMove_way(groupInfo.getMove_way() + "->" + startPoint.getPoint_code()+"->"+ endPoint); groupInfo.setPoint_name(endPointObj.getPoint_name()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.xml index 30f4cc7..566a334 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/mapper/YZMapper.xml @@ -22,6 +22,7 @@ WHERE (p.ing_task_code = '' OR p.ing_task_code IS NULL) AND p.point_status = '3' AND vg.group_id IS NOT NULL AND vg.redundance_material_code = #{materialCode} AND TIMESTAMPDIFF(MINUTE, vg.instorage_time, NOW()) >= vg.standing_time + and vg.unpack='1' AND p.region_code IN #{code} 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 1cb5ed5..bfed6a4 100644 --- a/lms/nladmin-ui/src/views/wms/pdm/workerorder/mixedOrder.vue +++ b/lms/nladmin-ui/src/views/wms/pdm/workerorder/mixedOrder.vue @@ -72,28 +72,28 @@ > 开工 - - 任务下发 - - - 工单完成 - + + + + + + + + + + + + + + + + + + + + + + { - this.crud.notify('工单完成', CRUD.NOTIFICATION_TYPE.SUCCESS) - this.crud.toQuery() - }).catch(() => { - this.fullscreenLoading = false - }).finally(() => { - this.fullscreenLoading = false - this.barcodeForm={} - this.dialogVisible = false - }) - }, + // orderFinish(row){ + // this.fullscreenLoading = true + // let param = { + // orderCode:row.workorder_code + // } + // crudPdmBdWorkorder.orderFinish(param).then(res => { + // this.crud.notify('工单完成', CRUD.NOTIFICATION_TYPE.SUCCESS) + // this.crud.toQuery() + // }).catch(() => { + // this.fullscreenLoading = false + // }).finally(() => { + // this.fullscreenLoading = false + // this.barcodeForm={} + // this.dialogVisible = false + // }) + // }, synchronize() { this.fullscreenLoading = true crudPdmBdWorkorder.orderSynchronize(this.crud.query).then(res => {