Merge branch 'master' of http://121.40.234.130:8899/lyd/nd_hh
This commit is contained in:
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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<String, Object> 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<List<DeviceErrorVo>> errorCompletableFuture = CompletableFuture.supplyAsync(
|
||||
() -> dasDeviceErrorRecordService.queryErrorVo(), pool);
|
||||
errorCompletableFuture.thenAccept(result -> {
|
||||
resultMap.put("deviceErrorList", result);
|
||||
//困料货架泥料库(吨)
|
||||
CompletableFuture<List<klInfoVo>> 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<ConcurrentHashMap<String, Object>> future
|
||||
= allQuery.thenApply((result) -> resultMap).exceptionally((e) -> {
|
||||
@@ -279,6 +272,24 @@ public class CockpitServiceImpl implements CockpitService {
|
||||
ThreadPoolExecutor pool = ThreadPoolExecutorUtil.getPoll();
|
||||
ConcurrentHashMap<String, Object> map = new ConcurrentHashMap<>();
|
||||
|
||||
//压制上料位
|
||||
CompletableFuture<JSONArray> yzslwPositionTask = CompletableFuture.supplyAsync(() -> {
|
||||
List<String> 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<JSONArray> stackingPositionTask = CompletableFuture.supplyAsync(() -> {
|
||||
List<String> points = cockPitMapper.selectYzPoint();
|
||||
@@ -366,20 +377,8 @@ public class CockpitServiceImpl implements CockpitService {
|
||||
map.put("MixMachineList", null);
|
||||
return null;
|
||||
});
|
||||
// 困料货架的信息显示 TODO
|
||||
CompletableFuture<JSONArray> 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<List<MixingRelativeVo>> mixBlankingTask = CompletableFuture.supplyAsync(() -> {
|
||||
CompletableFuture<List<PointInfoVo>> 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<List<KlMaterialInfoVo>> 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<JSONArray> manipulatorInfoTask = CompletableFuture.supplyAsync(() -> {
|
||||
List<String> jxsPoints = cockPitMapper.selectJxsPoints();
|
||||
@@ -451,7 +462,7 @@ public class CockpitServiceImpl implements CockpitService {
|
||||
});
|
||||
|
||||
// 出窑缓存货架
|
||||
CompletableFuture<List<MixingRelativeVo>> outKilnHchjTask = CompletableFuture.supplyAsync(() -> {
|
||||
CompletableFuture<List<PointInfoVo>> outKilnHchjTask = CompletableFuture.supplyAsync(() -> {
|
||||
return cockPitMapper.selectHchjList();
|
||||
}, pool);
|
||||
outKilnHchjTask.thenAccept(result -> {
|
||||
@@ -462,7 +473,7 @@ public class CockpitServiceImpl implements CockpitService {
|
||||
return null;
|
||||
});
|
||||
// 人工分拣拆垛
|
||||
CompletableFuture<List<MixingRelativeVo>> manualSortingTask = CompletableFuture.supplyAsync(() -> {
|
||||
CompletableFuture<List<PointInfoVo>> manualSortingTask = CompletableFuture.supplyAsync(() -> {
|
||||
return cockPitMapper.selecManualSortingList();
|
||||
}, pool);
|
||||
manualSortingTask.thenAccept(result -> {
|
||||
@@ -473,6 +484,7 @@ public class CockpitServiceImpl implements CockpitService {
|
||||
return null;
|
||||
});
|
||||
CompletableFuture<Void> allQuery = CompletableFuture.allOf(
|
||||
yzslwPositionTask,
|
||||
stackingPositionTask,
|
||||
pressMachineTask,
|
||||
trappedMaterialShelfTask,
|
||||
@@ -510,30 +522,64 @@ public class CockpitServiceImpl implements CockpitService {
|
||||
|
||||
@Override
|
||||
public List<InOutKilnVo> selectInOutKilnDetail() {
|
||||
// List<String> 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<String> 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<InOutKilnVo> 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<InOutKilnVo> 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;
|
||||
}
|
||||
|
||||
|
||||
@@ -46,13 +46,19 @@ public interface CockPitMapper {
|
||||
|
||||
List<String> selectHnjPoints();
|
||||
|
||||
List<MixingRelativeVo> selectMixingRelativeInfo();
|
||||
List<PointInfoVo> selectMixingRelativeInfo();
|
||||
|
||||
List<String> selectJxsPoints();
|
||||
|
||||
List<ErrorRecordVo> queryRecord();
|
||||
|
||||
List<MixingRelativeVo> selectHchjList();
|
||||
List<PointInfoVo> selectHchjList();
|
||||
|
||||
List<MixingRelativeVo> selecManualSortingList();
|
||||
List<PointInfoVo> selecManualSortingList();
|
||||
|
||||
List<klInfoVo> queryKlInfoList();
|
||||
|
||||
List<KlMaterialInfoVo> selectKlhwInfo();
|
||||
|
||||
List<String> selectYzslwPoint();
|
||||
}
|
||||
|
||||
@@ -122,28 +122,28 @@
|
||||
</select>
|
||||
|
||||
<select id="getMixingList" resultType="org.nl.wms.cockpit.service.dao.MixingVo">
|
||||
SELECT m.material_name AS materialName,
|
||||
SUM(w.plan_qty) AS planQty,
|
||||
SUM(w.real_qty) AS realQty
|
||||
SELECT m.material_code AS materialName,
|
||||
SUM(w.plan_weight) AS planQty,
|
||||
SUM(w.real_weight) AS realQty
|
||||
FROM pdm_bd_workorder w
|
||||
LEFT JOIN md_base_material m ON m.material_id = w.material_id
|
||||
WHERE w.region_code = 'HN'
|
||||
AND w.workorder_status='3'
|
||||
GROUP BY m.material_name
|
||||
order by m.material_name
|
||||
AND w.workorder_status='3'
|
||||
GROUP BY m.material_code
|
||||
order by m.material_code
|
||||
</select>
|
||||
|
||||
<select id="getPressWorkerOrder" resultType="org.nl.wms.cockpit.service.dao.PressProductVo">
|
||||
SELECT m.material_name as materialName,
|
||||
SUM(w.plan_qty) as requiredNum,
|
||||
SUM(w.real_qty) as suppressedNum,
|
||||
SUM(CASE WHEN w.workorder_status = '5' THEN w.real_qty ELSE 0 END) AS finishedNum
|
||||
SELECT m.material_code as materialName,
|
||||
SUM(w.plan_qty) as requiredNum,
|
||||
SUM(w.real_qty) as suppressedNum,
|
||||
SUM(w.real_qty) AS finishedNum
|
||||
FROM pdm_bd_workorder w
|
||||
LEFT JOIN md_base_material m ON w.material_id = m.material_id
|
||||
WHERE w.region_code = 'YZ'
|
||||
AND w.workorder_status='3'
|
||||
group by m.material_name
|
||||
order by m.material_name
|
||||
AND w.workorder_status = '3'
|
||||
group by m.material_code
|
||||
order by m.material_code
|
||||
</select>
|
||||
|
||||
<select id="getHistoryList" resultType="org.nl.wms.cockpit.service.dao.HistoryVo">
|
||||
@@ -156,6 +156,7 @@
|
||||
produceDate
|
||||
ORDER BY
|
||||
produceDate DESC
|
||||
limit 7
|
||||
</select>
|
||||
|
||||
<select id="selectAllDevice" resultType="java.lang.String">
|
||||
@@ -171,7 +172,8 @@
|
||||
from sch_base_task
|
||||
WHERE config_code = 'YZMLTask'
|
||||
and task_status = '5'
|
||||
and DATE ( create_time ) = CURDATE()) as deliveredPalletNum
|
||||
and DATE ( create_time ) = CURDATE()) as deliveredPalletNum,
|
||||
sum(sbv.material_qty) as materialNum
|
||||
FROM sch_base_vehiclematerialgroup sbv
|
||||
left join sch_base_point p
|
||||
on p.vehicle_code = sbv.vehicle_code
|
||||
@@ -188,7 +190,8 @@
|
||||
from sch_base_task
|
||||
where config_code = 'CYHCXMLTask'
|
||||
and task_status = '5'
|
||||
and DATE ( create_time ) = CURDATE()) as palletNum
|
||||
and DATE ( create_time ) = CURDATE()) as palletNum,
|
||||
sum(material_qty) as materialNum
|
||||
from sch_base_vehiclematerialgroup
|
||||
where out_kiln_time is not null
|
||||
and DATE ( create_time ) = CURDATE()
|
||||
@@ -236,7 +239,7 @@
|
||||
WHERE point_type = '1'
|
||||
and region_code = 'HN'
|
||||
</select>
|
||||
<select id="selectMixingRelativeInfo" resultType="org.nl.wms.cockpit.service.dao.MixingRelativeVo">
|
||||
<select id="selectMixingRelativeInfo" resultType="org.nl.wms.cockpit.service.dao.PointInfoVo">
|
||||
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>
|
||||
<select id="selectHchjList" resultType="org.nl.wms.cockpit.service.dao.MixingRelativeVo">
|
||||
<select id="selectHchjList" resultType="org.nl.wms.cockpit.service.dao.PointInfoVo">
|
||||
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>
|
||||
<select id="selecManualSortingList" resultType="org.nl.wms.cockpit.service.dao.MixingRelativeVo">
|
||||
<select id="selecManualSortingList" resultType="org.nl.wms.cockpit.service.dao.PointInfoVo">
|
||||
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
|
||||
</select>
|
||||
<select id="queryKlInfoList" resultType="org.nl.wms.cockpit.service.dao.klInfoVo">
|
||||
SELECT p.point_code as materialCode,
|
||||
if(sum(v.material_weight) > 0.00, sum(v.material_weight), 0.00) as weight
|
||||
FROM sch_base_point P
|
||||
LEFT JOIN sch_base_vehiclematerialgroup v ON p.point_code = v.point_code
|
||||
WHERE p.region_code IN ('KL')
|
||||
AND p.point_code NOT LIKE ('CBJ%')
|
||||
GROUP BY materialCode
|
||||
ORDER BY weight desc
|
||||
</select>
|
||||
<select id="selectKlhwInfo" resultType="org.nl.wms.cockpit.service.dao.KlMaterialInfoVo">
|
||||
SELECT p.point_code AS pointCode,
|
||||
p.point_name AS pointName,
|
||||
p.point_status AS pointStatus,
|
||||
if(g.material_weight > 0.00, g.material_weight, 0.00) AS materialWeight,
|
||||
IF
|
||||
(
|
||||
TIMESTAMPDIFF(
|
||||
MINUTE, g.instorage_time,
|
||||
NOW()) >= g.standing_time,
|
||||
0,
|
||||
g.standing_time - TIMESTAMPDIFF(
|
||||
MINUTE, g.instorage_time,
|
||||
NOW())
|
||||
) AS lastStandingTime,
|
||||
g.redundance_material_code as materialCode
|
||||
FROM `sch_base_point` p
|
||||
LEFT JOIN sch_base_vehiclematerialgroup g ON p.point_code = g.point_code
|
||||
WHERE p.region_code = 'KL'
|
||||
AND p.point_code NOT LIKE 'CBJ%'
|
||||
ORDER BY p.point_code
|
||||
</select>
|
||||
<select id="selectYzslwPoint" resultType="java.lang.String">
|
||||
SELECT point_code AS device_code
|
||||
FROM `sch_base_point`
|
||||
WHERE point_type in ('3','4')
|
||||
and region_code = 'YZ'
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -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<DasDeviceErrorRec
|
||||
*/
|
||||
int create(DasDeviceErrorRecord entity);
|
||||
|
||||
List<DeviceErrorVo> queryErrorVo();
|
||||
List<klInfoVo> queryErrorVo();
|
||||
|
||||
}
|
||||
|
||||
@@ -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<DasDeviceErrorRecord> {
|
||||
|
||||
List<DeviceErrorVo> queryErrorVo();
|
||||
List<klInfoVo> queryErrorVo();
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.das.device.record.service.dao.mapper.DasDeviceErrorRecordMapper">
|
||||
|
||||
<select id="queryErrorVo" resultType="org.nl.wms.cockpit.service.dao.DeviceErrorVo">
|
||||
<select id="queryErrorVo" resultType="org.nl.wms.cockpit.service.dao.klInfoVo">
|
||||
select if(LENGTH(p.point_name) <![CDATA[ > ]]> 0, p.point_name, r.device_code) as deviceName,
|
||||
count(*) as errorNum
|
||||
from das_device_error_record r
|
||||
|
||||
@@ -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<DasDeviceError
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DeviceErrorVo> queryErrorVo() {
|
||||
public List<klInfoVo> queryErrorVo() {
|
||||
return dasDeviceCheckRecordMapper.queryErrorVo();
|
||||
}
|
||||
|
||||
|
||||
@@ -61,6 +61,6 @@ public interface AcsToWmsService {
|
||||
BaseResponse woodenPalletBinding(JSONObject param);
|
||||
|
||||
JSONObject errorDeviceRecord(JSONObject param);
|
||||
/** 混碾机满料 任务不下发*/
|
||||
BaseResponse mixFull(JSONObject param);
|
||||
// /** 混碾机满料 任务不下发*/
|
||||
// BaseResponse mixFull(JSONObject param);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
// }
|
||||
}
|
||||
|
||||
@@ -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<Object> deviceCheck(@Validated @RequestBody DasDeviceCheckRecord entity){
|
||||
return new ResponseEntity<>(deviceCheckRecordService.create(entity), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/deviceCheck/deviceInfo")
|
||||
@Log("设备下拉框数据")
|
||||
@ApiOperation("设备下拉框数据")
|
||||
public ResponseEntity<Object> deviceInfo(){
|
||||
return new ResponseEntity<>(pdaService.getDeviceInfo(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/deviceCheck/deviceStatus")
|
||||
@Log("设备状态下拉框数据")
|
||||
@ApiOperation("设备状态下拉框数据")
|
||||
public ResponseEntity<Object> deviceStatus(){
|
||||
return new ResponseEntity<>(pdaService.getDeviceStatus(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/deviceSwitchover/deviceAction")
|
||||
@Log("设备动作下拉框数据")
|
||||
@ApiOperation("设备动作下拉框数据")
|
||||
public ResponseEntity<Object> deviceAction(){
|
||||
return new ResponseEntity<>(pdaService.deviceAction(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/deviceSwitchover/verify")
|
||||
@Log("设备动作切换")
|
||||
@ApiOperation("设备动作切换")
|
||||
public ResponseEntity<Object> deviceSwitchover(@Validated @RequestBody DasDeviceOperationRecord entity){
|
||||
return new ResponseEntity<>(deviceOperationRecordService.create(entity), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/group/getPressCode")
|
||||
@Log("获取压机编码")
|
||||
@ApiOperation("获取压机编码")
|
||||
public ResponseEntity<Object> getPressCode(){
|
||||
return new ResponseEntity<>(pdaService.getDeviceInfo(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/group/getVehicleType")
|
||||
@Log("获取载具类型")
|
||||
@ApiOperation("获取载具类型")
|
||||
public ResponseEntity<Object> getVehicleType(){
|
||||
return new ResponseEntity<>(pdaService.getVehicleType(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/group/getPressWorkOrder")
|
||||
@Log("获取工单编码")
|
||||
@ApiOperation("获取工单编码")
|
||||
@Deprecated
|
||||
public ResponseEntity<Object> getPressWorkOrder(@RequestBody JSONObject param){
|
||||
return new ResponseEntity<>(workorderService.getDeviceProductionTask(param.getString("point_code")), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/group/manual")
|
||||
@Log("人工组盘")
|
||||
@ApiOperation("人工组盘")
|
||||
public ResponseEntity<PdaResponseVo> manualDiskAssembly(@Validated @RequestBody ManualGroupDto entity){
|
||||
return new ResponseEntity<>(pdaService.manualCreateByPda(entity), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/move/getBlendingCode")
|
||||
@Log("获取混碾机编码")
|
||||
@ApiOperation("获取混碾机编码")
|
||||
public ResponseEntity<Object> getBlendingCode(){
|
||||
return new ResponseEntity<>(pdaService.getBlendingCode(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/move/sendTask")
|
||||
@Log("生成混碾->压机任务")
|
||||
@ApiOperation("生成混碾->压机任务")
|
||||
public ResponseEntity<PdaResponseVo> sendTask(@Validated @RequestBody BlendingMoveDto blendingMoveDto){
|
||||
return new ResponseEntity<>(pdaService.sendTask(blendingMoveDto), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/forcedResting/show")
|
||||
@Log("显示静置时长")
|
||||
@ApiOperation("显示静置时长")
|
||||
public ResponseEntity<Object> forcedRestingShow(){
|
||||
return new ResponseEntity<>(pdaService.forcedRestingShow(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/forcedResting/submit")
|
||||
@Log("强制静置")
|
||||
@ApiOperation("强制静置")
|
||||
public ResponseEntity<PdaResponseVo> forcedResting(@Validated @RequestBody ForcedRestingDto forcedRestingDto){
|
||||
return new ResponseEntity<>(pdaService.forcedResting(forcedRestingDto), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/orders")
|
||||
@Log("人工分拣-显示工单")
|
||||
@ApiOperation("人工分拣-显示工单")
|
||||
public ResponseEntity<Object> manualOrders(){
|
||||
return new ResponseEntity<>(pdaService.manualOrders(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/productionScheduling")
|
||||
@Log("人工分拣-开工")
|
||||
@ApiOperation("人工分拣-开工")
|
||||
public ResponseEntity<PdaResponseVo> productionScheduling(@Validated @RequestBody ManualSortingDto manualSortingDto){
|
||||
return new ResponseEntity<>(pdaService.productionScheduling(manualSortingDto), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/productionComplete")
|
||||
@Log("人工分拣-完工")
|
||||
@ApiOperation("人工分拣-完工")
|
||||
public ResponseEntity<PdaResponseVo> productionComplete(@Validated @RequestBody ManualSortingDto manualSortingDto){
|
||||
return new ResponseEntity<>(pdaService.productionComplete(manualSortingDto), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/emptyDiskIntoStorageTask")
|
||||
@Log("人工分拣-空盘入库-动作")
|
||||
@ApiOperation("人工分拣-空盘入库-动作")
|
||||
public ResponseEntity<PdaResponseVo> emptyDiskIntoStorageTask(){
|
||||
return new ResponseEntity<>(pdaService.emptyDiskIntoStorageTask(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/emptyDiskIntoStorageShow")
|
||||
@Log("人工分拣-空盘入库-显示任务信息")
|
||||
@ApiOperation("人工分拣-空盘入库-显示任务信息")
|
||||
public ResponseEntity<Object> emptyDiskIntoStorageShow(){
|
||||
return new ResponseEntity<>(pdaService.emptyDiskIntoStorageShow(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/callingWoodenPalletTask")
|
||||
@Log("人工分拣-呼叫木托盘-动作")
|
||||
@ApiOperation("人工分拣-呼叫木托盘-动作")
|
||||
public ResponseEntity<PdaResponseVo> callingWoodenPalletTask(){
|
||||
return new ResponseEntity<>(pdaService.callingWoodenPalletTask(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/callingWoodenPalletTaskShow")
|
||||
@Log("人工分拣-呼叫木托盘-显示任务信息")
|
||||
@ApiOperation("人工分拣-呼叫木托盘-显示任务信息")
|
||||
public ResponseEntity<Object> callingWoodenPalletTaskShow(){
|
||||
return new ResponseEntity<>(pdaService.callingWoodenPalletTaskShow(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/callingMaterialTask")
|
||||
@Log("人工分拣-呼叫物料-动作")
|
||||
@ApiOperation("人工分拣-呼叫物料-动作")
|
||||
public ResponseEntity<PdaResponseVo> callingMaterialTask(){
|
||||
return new ResponseEntity<>(pdaService.callingMaterialTask(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/callingMaterialTaskShow")
|
||||
@Log("人工分拣-呼叫物料-显示任务信息")
|
||||
@ApiOperation("人工分拣-呼叫物料-显示任务信息")
|
||||
public ResponseEntity<Object> callingMaterialTaskShow(){
|
||||
return new ResponseEntity<>(pdaService.callingMaterialTaskShow(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/callingResidueMaterialTask")
|
||||
@Log("人工分拣-剩料入库-动作")
|
||||
@ApiOperation("人工分拣-剩料入库-动作")
|
||||
public ResponseEntity<PdaResponseVo> callingResidueMaterialTask(@Validated @RequestBody ManualResidueInDto manualResidueInDto){
|
||||
return new ResponseEntity<>(pdaService.callingResidueMaterialTask(manualResidueInDto), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/callingResidueMaterialTaskShow")
|
||||
@Log("人工分拣-剩料入库-显示任务信息")
|
||||
@ApiOperation("人工分拣-剩料入库-显示任务信息")
|
||||
public ResponseEntity<Object> callingResidueMaterialTaskShow(){
|
||||
return new ResponseEntity<>(pdaService.callingResidueMaterialTaskShow(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/packingTask")
|
||||
@Log("人工分拣-包装入库-动作")
|
||||
@ApiOperation("人工分拣-包装入库-动作")
|
||||
public ResponseEntity<PdaResponseVo> packingTask(@Validated @RequestBody ManualResidueInDto manualResidueInDto){
|
||||
return new ResponseEntity<>(pdaService.packingTask(manualResidueInDto), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/packingTaskShow")
|
||||
@Log("人工分拣-包装入库-显示任务信息")
|
||||
@ApiOperation("人工分拣-包装入库-显示任务信息")
|
||||
public ResponseEntity<Object> packingTaskShow(){
|
||||
return new ResponseEntity<>(pdaService.packingTaskShow(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualSorting/bindingVehicle")
|
||||
@Log("人工分拣-载具绑定")
|
||||
@ApiOperation("人工分拣-载具绑定")
|
||||
public ResponseEntity<PdaResponseVo> bindingVehicle(@Validated @RequestBody VehicleBindingDto vehicleBindingDto){
|
||||
return new ResponseEntity<>(pdaService.bindingVehicle(vehicleBindingDto), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/pressSendMaterial/pressTask")
|
||||
@Log("压机送料-动作")
|
||||
@ApiOperation("压机送料-动作")
|
||||
public ResponseEntity<PdaResponseVo>pressTask(@Validated @RequestBody PressMoveDto pressMoveDto){
|
||||
return new ResponseEntity<>(pdaService.pressTask(pressMoveDto), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/pressSendMaterial/pressPointList")
|
||||
@Log("压机送料-下拉框")
|
||||
@ApiOperation("压机送料-下拉框")
|
||||
public ResponseEntity<Object>pressPointList(){
|
||||
return new ResponseEntity<>(pdaService.pressPointList(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/shelf/materialQuery")
|
||||
@Log("货架盘点-物料查询")
|
||||
@ApiOperation("货架盘点-物料查询")
|
||||
public ResponseEntity<Object>materialQuery(@Validated @RequestBody CommonQueryDto commonQueryDto){
|
||||
return new ResponseEntity<>(pdaService.materialQuery(commonQueryDto), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/shelf/updateData")
|
||||
@Log("货架盘点-物料查询")
|
||||
@ApiOperation("货架盘点-物料查询")
|
||||
public ResponseEntity<Object>updateData(@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<Object> orderFinish(@RequestBody OrderFinishReq req) {
|
||||
// return new ResponseEntity<>(pdaService.orderFinish(req), HttpStatus.OK);
|
||||
// }
|
||||
|
||||
@PostMapping("/orderFinish")
|
||||
@Log("混碾工单完成")
|
||||
@ApiOperation("混碾工单完成")
|
||||
public ResponseEntity<Object> orderFinish(@RequestBody OrderFinishReq req) {
|
||||
return new ResponseEntity<>(pdaService.orderFinish(req), HttpStatus.OK);
|
||||
@PostMapping("/unpackShelfInfo")
|
||||
@Log("查询货架上未拆包料盅信息")
|
||||
@ApiOperation("查询货架上未拆包料盅信息")
|
||||
public ResponseEntity<Object> unpackShelfInfo() {
|
||||
return new ResponseEntity<>(pdaService.unpackShelfInfo(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/hnmlTask")
|
||||
@Log("拆包机料盅入库")
|
||||
@ApiOperation("拆包机料盅入库")
|
||||
public ResponseEntity<Object> hnmlTask(@RequestBody OrderFinishReq req) {
|
||||
return new ResponseEntity<>(pdaService.hnmlTask(req), HttpStatus.OK);
|
||||
@PostMapping("/getCbjPoint")
|
||||
@Log("查询拆包机点位")
|
||||
@ApiOperation("查询拆包机点位")
|
||||
public ResponseEntity<Object> getCbjPoint() {
|
||||
return new ResponseEntity<>(pdaService.getCbjPoint(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/hnqkTask")
|
||||
@Log("拆包机叫空蛊")
|
||||
@ApiOperation("拆包机叫空蛊")
|
||||
public ResponseEntity<Object> hnqkTask() {
|
||||
return new ResponseEntity<>(pdaService.hnqkTask(), HttpStatus.OK);
|
||||
@PostMapping("/cbjqlTask")
|
||||
@Log("拆包机缺料")
|
||||
@ApiOperation("拆包机缺料")
|
||||
public ResponseEntity<Object> cbjqlTask(@RequestBody TaskReq req) {
|
||||
return new ResponseEntity<>(pdaService.cbjqlTask(req), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/cbjmlTask")
|
||||
@Log("拆包机下料位满料")
|
||||
@ApiOperation("拆包机下料位满料")
|
||||
public ResponseEntity<Object> cbjmlTask(@RequestBody TaskReq req) {
|
||||
return new ResponseEntity<>(pdaService.cbjmlTask(req), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/cbjqkTask")
|
||||
@Log("拆包机下料位叫空蛊")
|
||||
@ApiOperation("拆包机下料位叫空蛊")
|
||||
public ResponseEntity<Object> cbjqkTask(@RequestBody TaskReq req) {
|
||||
return new ResponseEntity<>(pdaService.cbjqkTask(req), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/packShelfInfo")
|
||||
@Log("查询货架上已拆包料盅信息")
|
||||
@ApiOperation("查询货架上已拆包料盅信息")
|
||||
public ResponseEntity<Object> packShelfInfo() {
|
||||
return new ResponseEntity<>(pdaService.packShelfInfo(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/yzqlTask")
|
||||
@Log("困料货架点对点到布料机上料位")
|
||||
@ApiOperation("困料货架点对点到布料机上料位")
|
||||
public ResponseEntity<Object> 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<Object> materialScrap(@RequestBody OrderFinishReq req) {
|
||||
public ResponseEntity<Object> materialScrap(@RequestBody TaskReq req) {
|
||||
return new ResponseEntity<>(pdaService.materialScrap(req), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@@ -67,15 +67,20 @@ public interface PdaService {
|
||||
|
||||
List<DropdownListVo> pressPointList();
|
||||
|
||||
PdaResponseVo orderFinish(OrderFinishReq req);
|
||||
//查询货架上未拆包料盅信息
|
||||
List<ShelfInfoVo> 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<DropdownListVo> getYjslwPointList();
|
||||
|
||||
List<DropdownListVo> getCbjPoint();
|
||||
|
||||
List<ShelfInfoVo> packShelfInfo();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -62,7 +62,6 @@ public interface PdaMapper {
|
||||
|
||||
/**
|
||||
* 查询物料
|
||||
* @param commonQueryDto
|
||||
* @return
|
||||
*/
|
||||
List<MaterialInfoVo> materialQuery(CommonQueryDto commonQueryDto);
|
||||
@@ -80,4 +79,10 @@ public interface PdaMapper {
|
||||
List<DropdownListVo> getHchjPoint();
|
||||
|
||||
List<DropdownListVo> getYjslwPointList();
|
||||
|
||||
List<ShelfInfoVo> selectUnpackShelfInfo();
|
||||
|
||||
List<DropdownListVo> getCbjPointList();
|
||||
|
||||
List<ShelfInfoVo> selectPackShelfInfo();
|
||||
}
|
||||
|
||||
@@ -3,185 +3,198 @@
|
||||
<mapper namespace="org.nl.wms.pda.service.dao.mapper.PdaMapper">
|
||||
|
||||
<select id="getDeviceInfo" resultType="org.nl.wms.pda.service.dao.vo.DropdownListVo">
|
||||
SELECT
|
||||
p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM
|
||||
`sch_base_point` p
|
||||
WHERE p.region_code = 'YZ' AND p.point_type = '1' AND p.point_code = p.parent_point_code
|
||||
SELECT p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM `sch_base_point` p
|
||||
WHERE p.region_code = 'YZ'
|
||||
AND p.point_type = '1'
|
||||
AND p.point_code = p.parent_point_code
|
||||
</select>
|
||||
<select id="getDictByCode" resultType="org.nl.wms.pda.service.dao.vo.DropdownListVo">
|
||||
SELECT
|
||||
`value`,
|
||||
label AS text
|
||||
FROM
|
||||
`sys_dict`
|
||||
SELECT `value`,
|
||||
label AS text
|
||||
FROM `sys_dict`
|
||||
WHERE `code` = #{code}
|
||||
</select>
|
||||
<select id="getDeviceInfos" resultType="org.nl.wms.pda.service.dao.vo.DropdownListVo">
|
||||
SELECT
|
||||
p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM
|
||||
`sch_base_point` p
|
||||
WHERE p.region_code = #{device} AND p.point_type = #{type} AND is_used = TRUE
|
||||
SELECT p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM `sch_base_point` p
|
||||
WHERE p.region_code = #{device}
|
||||
AND p.point_type = #{type}
|
||||
AND is_used = TRUE
|
||||
</select>
|
||||
<select id="findKLXPoint" resultType="org.nl.wms.sch.point.service.dao.SchBasePoint">
|
||||
SELECT
|
||||
p.*
|
||||
FROM
|
||||
`sch_base_point` p
|
||||
LEFT JOIN sch_base_task t ON t.point_code2 = p.point_code AND t.task_status IN ('2','3','4')
|
||||
WHERE p.region_code = 'LZKLX' AND p.parent_point_code LIKE CONCAT('%', #{endPointCode}, '%') AND p.point_type = '5'
|
||||
SELECT p.*
|
||||
FROM `sch_base_point` p
|
||||
LEFT JOIN sch_base_task t ON t.point_code2 = p.point_code AND t.task_status IN ('2', '3', '4')
|
||||
WHERE p.region_code = 'LZKLX'
|
||||
AND p.parent_point_code LIKE CONCAT('%', #{endPointCode}, '%')
|
||||
AND p.point_type = '5'
|
||||
AND t.task_code IS NULL
|
||||
</select>
|
||||
<select id="forcedRestingShow" resultType="org.nl.wms.pda.service.dao.vo.StandTimeShowVo">
|
||||
SELECT
|
||||
vg.group_id,
|
||||
vg.point_code,
|
||||
p2.point_name AS device_code,
|
||||
vg.standing_time,
|
||||
TIMESTAMPDIFF(MINUTE, NOW(), DATE_ADD(vg.instorage_time, INTERVAL vg.standing_time MINUTE)) AS timeDifferenceMinutes,
|
||||
DATE_FORMAT(DATE_ADD(vg.instorage_time, INTERVAL vg.standing_time MINUTE), '%Y-%m-%d %H:%i:%s') AS estimatedCompletionTimeString
|
||||
FROM
|
||||
`sch_base_vehiclematerialgroup` vg
|
||||
LEFT JOIN sch_base_point p1 ON p1.point_code = vg.point_code
|
||||
LEFT JOIN sch_base_point p2 ON p2.point_code = p1.parent_point_code
|
||||
WHERE vg.point_code IN (
|
||||
SELECT p.point_code FROM sch_base_point p WHERE p.region_code = 'LZKLX' AND p.point_type = '3'
|
||||
)
|
||||
SELECT vg.group_id,
|
||||
vg.point_code,
|
||||
p2.point_name AS device_code,
|
||||
vg.standing_time,
|
||||
TIMESTAMPDIFF(MINUTE, NOW(),
|
||||
DATE_ADD(vg.instorage_time, INTERVAL vg.standing_time MINUTE)) AS timeDifferenceMinutes,
|
||||
DATE_FORMAT(DATE_ADD(vg.instorage_time, INTERVAL vg.standing_time MINUTE),
|
||||
'%Y-%m-%d %H:%i:%s') AS estimatedCompletionTimeString
|
||||
FROM `sch_base_vehiclematerialgroup` vg
|
||||
LEFT JOIN sch_base_point p1 ON p1.point_code = vg.point_code
|
||||
LEFT JOIN sch_base_point p2 ON p2.point_code = p1.parent_point_code
|
||||
WHERE vg.point_code IN
|
||||
(SELECT p.point_code FROM sch_base_point p WHERE p.region_code = 'LZKLX' AND p.point_type = '3')
|
||||
AND vg.group_bind_material_status = '2'
|
||||
</select>
|
||||
<select id="getManualOrders" resultType="org.nl.wms.pda.service.dao.vo.ManualWorkOrderVo">
|
||||
SELECT
|
||||
pw.workorder_code,
|
||||
mm.material_code,
|
||||
mm.material_name,
|
||||
CASE pw.workorder_status
|
||||
WHEN '1' THEN '未生产'
|
||||
WHEN '3' THEN '生产中'
|
||||
WHEN '4' THEN '暂停'
|
||||
ELSE ''
|
||||
END AS workorder_status,
|
||||
pw.operator,
|
||||
pw.create_name,
|
||||
pw.plan_qty,
|
||||
pw.real_qty
|
||||
FROM
|
||||
`pdm_bd_workorder` pw
|
||||
LEFT JOIN md_base_material mm ON mm.material_id = pw.material_id
|
||||
WHERE pw.region_code = 'FJ' AND pw.point_code LIKE 'RG%' AND pw.workorder_status IN ('1','3','4')
|
||||
SELECT pw.workorder_code,
|
||||
mm.material_code,
|
||||
mm.material_name,
|
||||
CASE pw.workorder_status
|
||||
WHEN '1' THEN '未生产'
|
||||
WHEN '3' THEN '生产中'
|
||||
WHEN '4' THEN '暂停'
|
||||
ELSE ''
|
||||
END AS workorder_status,
|
||||
pw.operator,
|
||||
pw.create_name,
|
||||
pw.plan_qty,
|
||||
pw.real_qty
|
||||
FROM `pdm_bd_workorder` pw
|
||||
LEFT JOIN md_base_material mm ON mm.material_id = pw.material_id
|
||||
WHERE pw.region_code = 'FJ'
|
||||
AND pw.point_code LIKE 'RG%'
|
||||
AND pw.workorder_status IN ('1', '3', '4')
|
||||
</select>
|
||||
<select id="getRunningTaskByStart" resultType="org.nl.wms.pda.service.dao.vo.TaskShowVo">
|
||||
SELECT
|
||||
t.task_code,
|
||||
p1.point_name AS point_name1,
|
||||
p2.point_name AS point_name2,
|
||||
p3.point_name AS point_name3,
|
||||
p4.point_name AS point_name4,
|
||||
CASE t.task_status
|
||||
WHEN '1' THEN '创建'
|
||||
WHEN '2' THEN '创建完成'
|
||||
WHEN '3' THEN '下发'
|
||||
WHEN '4' THEN '执行中'
|
||||
ELSE '-'
|
||||
END AS task_status,
|
||||
t.remark
|
||||
FROM
|
||||
`sch_base_task` t
|
||||
LEFT JOIN sch_base_point p1 ON p1.point_code = t.point_code1
|
||||
LEFT JOIN sch_base_point p2 ON p2.point_code = t.point_code2
|
||||
LEFT JOIN sch_base_point p3 ON p3.point_code = t.point_code3
|
||||
LEFT JOIN sch_base_point p4 ON p4.point_code = t.point_code4
|
||||
WHERE task_status IN ('1','2','3','4') AND t.point_code1 = #{point_code} AND t.config_code = #{task_config}
|
||||
SELECT t.task_code,
|
||||
p1.point_name AS point_name1,
|
||||
p2.point_name AS point_name2,
|
||||
p3.point_name AS point_name3,
|
||||
p4.point_name AS point_name4,
|
||||
CASE t.task_status
|
||||
WHEN '1' THEN '创建'
|
||||
WHEN '2' THEN '创建完成'
|
||||
WHEN '3' THEN '下发'
|
||||
WHEN '4' THEN '执行中'
|
||||
ELSE '-'
|
||||
END AS task_status,
|
||||
t.remark
|
||||
FROM `sch_base_task` t
|
||||
LEFT JOIN sch_base_point p1 ON p1.point_code = t.point_code1
|
||||
LEFT JOIN sch_base_point p2 ON p2.point_code = t.point_code2
|
||||
LEFT JOIN sch_base_point p3 ON p3.point_code = t.point_code3
|
||||
LEFT JOIN sch_base_point p4 ON p4.point_code = t.point_code4
|
||||
WHERE task_status IN ('1', '2', '3', '4')
|
||||
AND t.point_code1 = #{point_code}
|
||||
AND t.config_code = #{task_config}
|
||||
</select>
|
||||
<select id="getRunningTaskByEnd" resultType="org.nl.wms.pda.service.dao.vo.TaskShowVo">
|
||||
SELECT
|
||||
t.task_code,
|
||||
p1.point_name AS point_name1,
|
||||
p2.point_name AS point_name2,
|
||||
p3.point_name AS point_name3,
|
||||
p4.point_name AS point_name4,
|
||||
CASE t.task_status
|
||||
WHEN '1' THEN '创建'
|
||||
WHEN '2' THEN '创建完成'
|
||||
WHEN '3' THEN '下发'
|
||||
WHEN '4' THEN '执行中'
|
||||
ELSE '-'
|
||||
END AS task_status,
|
||||
t.remark
|
||||
FROM
|
||||
`sch_base_task` t
|
||||
LEFT JOIN sch_base_point p1 ON p1.point_code = t.point_code1
|
||||
LEFT JOIN sch_base_point p2 ON p2.point_code = t.point_code2
|
||||
LEFT JOIN sch_base_point p3 ON p3.point_code = t.point_code3
|
||||
LEFT JOIN sch_base_point p4 ON p4.point_code = t.point_code4
|
||||
WHERE task_status IN ('1','2','3','4') AND t.point_code2 = #{point_code} AND t.config_code = #{task_config}
|
||||
SELECT t.task_code,
|
||||
p1.point_name AS point_name1,
|
||||
p2.point_name AS point_name2,
|
||||
p3.point_name AS point_name3,
|
||||
p4.point_name AS point_name4,
|
||||
CASE t.task_status
|
||||
WHEN '1' THEN '创建'
|
||||
WHEN '2' THEN '创建完成'
|
||||
WHEN '3' THEN '下发'
|
||||
WHEN '4' THEN '执行中'
|
||||
ELSE '-'
|
||||
END AS task_status,
|
||||
t.remark
|
||||
FROM `sch_base_task` t
|
||||
LEFT JOIN sch_base_point p1 ON p1.point_code = t.point_code1
|
||||
LEFT JOIN sch_base_point p2 ON p2.point_code = t.point_code2
|
||||
LEFT JOIN sch_base_point p3 ON p3.point_code = t.point_code3
|
||||
LEFT JOIN sch_base_point p4 ON p4.point_code = t.point_code4
|
||||
WHERE task_status IN ('1', '2', '3', '4')
|
||||
AND t.point_code2 = #{point_code}
|
||||
AND t.config_code = #{task_config}
|
||||
</select>
|
||||
<select id="getAllPoint" resultType="org.nl.wms.pda.service.dao.vo.DropdownListVo">
|
||||
SELECT
|
||||
p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM
|
||||
`sch_base_point` p
|
||||
WHERE
|
||||
p.is_used = TRUE
|
||||
SELECT p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM `sch_base_point` p
|
||||
WHERE p.is_used = TRUE
|
||||
ORDER BY p.point_code
|
||||
</select>
|
||||
<select id="materialQuery" resultType="org.nl.wms.pda.service.dao.vo.MaterialInfoVo">
|
||||
SELECT
|
||||
mm.material_id,
|
||||
mm.material_code,
|
||||
mm.material_name,
|
||||
mm.material_spec,
|
||||
mm.material_model
|
||||
FROM
|
||||
`md_base_material` mm
|
||||
WHERE mm.material_code LIKE '%${material_code}%' OR mm.material_name LIKE '%${material_code}%'
|
||||
SELECT mm.material_id,
|
||||
mm.material_code,
|
||||
mm.material_name,
|
||||
mm.material_spec,
|
||||
mm.material_model
|
||||
FROM `md_base_material` mm
|
||||
WHERE mm.material_code LIKE '%${material_code}%'
|
||||
OR mm.material_name LIKE '%${material_code}%'
|
||||
</select>
|
||||
<select id="getAllPressPoint" resultType="org.nl.wms.pda.service.dao.vo.DropdownListVo">
|
||||
SELECT
|
||||
p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM
|
||||
`sch_base_point` p
|
||||
WHERE
|
||||
p.region_code = 'YZ'
|
||||
SELECT p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM `sch_base_point` p
|
||||
WHERE p.region_code = 'YZ'
|
||||
AND p.point_type = '2'
|
||||
</select>
|
||||
<select id="getHnWorkOrder" resultType="org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder">
|
||||
select *
|
||||
from pdm_bd_workorder
|
||||
where region_code = 'HN'
|
||||
and is_delete='0'
|
||||
and is_delete = '0'
|
||||
</select>
|
||||
<select id="getRgfjPoint" resultType="org.nl.wms.pda.service.dao.vo.DropdownListVo">
|
||||
SELECT
|
||||
p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM
|
||||
`sch_base_point` p
|
||||
WHERE
|
||||
p.region_code = 'RGFJ'
|
||||
SELECT p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM `sch_base_point` p
|
||||
WHERE p.region_code = 'RGFJ'
|
||||
</select>
|
||||
<select id="getHchjPoint" resultType="org.nl.wms.pda.service.dao.vo.DropdownListVo">
|
||||
SELECT
|
||||
p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM
|
||||
`sch_base_point` p
|
||||
WHERE
|
||||
p.region_code = 'HCHJ'
|
||||
SELECT p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM `sch_base_point` p
|
||||
WHERE p.region_code = 'HCHJ'
|
||||
</select>
|
||||
<select id="getYjslwPointList" resultType="org.nl.wms.pda.service.dao.vo.DropdownListVo">
|
||||
SELECT
|
||||
p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM
|
||||
`sch_base_point` p
|
||||
WHERE
|
||||
p.region_code = 'YZ'
|
||||
AND p.point_type in ('3','4')
|
||||
SELECT p.point_code AS `value`,
|
||||
p.point_name AS text
|
||||
FROM `sch_base_point` p
|
||||
WHERE p.region_code = 'YZ'
|
||||
AND p.point_type in ('3', '4')
|
||||
</select>
|
||||
<select id="selectUnpackShelfInfo" resultType="org.nl.wms.pda.service.dao.vo.ShelfInfoVo">
|
||||
select p.point_code as pointCode, m.material_code as materialCode, g.instorage_time as instorageTime
|
||||
from sch_base_point p
|
||||
left join sch_base_vehiclematerialgroup g on p.point_code = g.point_code
|
||||
left join md_base_material m on g.material_id = m.material_id
|
||||
where p.region_code = 'KL'
|
||||
and p.is_used = '1'
|
||||
and p.point_status = '3'
|
||||
and p.point_code not like 'CBJ%'
|
||||
and g.unpack = '0'
|
||||
order by g.point_code
|
||||
</select>
|
||||
<select id="getCbjPointList" resultType="org.nl.wms.pda.service.dao.vo.DropdownListVo">
|
||||
select point_code as value, point_name as text
|
||||
from sch_base_point
|
||||
where region_code = 'KL'
|
||||
and is_used = '1'
|
||||
and point_code like 'CBJ%'
|
||||
</select>
|
||||
|
||||
<select id="selectPackShelfInfo" resultType="org.nl.wms.pda.service.dao.vo.ShelfInfoVo">
|
||||
select p.point_code as pointCode, m.material_code as materialCode, g.instorage_time as instorageTime
|
||||
from sch_base_point p
|
||||
left join sch_base_vehiclematerialgroup g on p.point_code = g.point_code
|
||||
left join md_base_material m on g.material_id = m.material_id
|
||||
where p.region_code = 'KL'
|
||||
and p.is_used = '1'
|
||||
and p.point_status = '3'
|
||||
and p.point_code not like 'CBJ%'
|
||||
and g.unpack = '1'
|
||||
order by g.point_code
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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<ShelfInfoVo> 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<DropdownListVo> getCbjPoint() {
|
||||
return pdaMapper.getCbjPointList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ShelfInfoVo> packShelfInfo() {
|
||||
return pdaMapper.selectPackShelfInfo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存组盘信息
|
||||
* @param shelfSaveDto
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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<SchBaseVehiclematerialgroupMapper, SchBaseVehiclematerialgroup> implements ISchBaseVehiclematerialgroupService {
|
||||
@@ -55,7 +55,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
private IMdBaseMaterialService materialService;
|
||||
|
||||
@Override
|
||||
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page){
|
||||
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page) {
|
||||
IPage<SchBaseVehiclematerialgroup> pages = new Page<>(page.getPage() + 1, page.getSize());
|
||||
pages = vehiclematerialgroupMapper.selectPageLeftJoin(pages, whereJson);
|
||||
return pages;
|
||||
@@ -67,7 +67,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
String nickName = SecurityUtils.getCurrentNickName();
|
||||
String now = DateUtil.now();
|
||||
|
||||
entity.setGroup_id(IdUtil.getSnowflake(1,1).nextIdStr());
|
||||
entity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
entity.setCreate_id(currentUserId);
|
||||
entity.setCreate_name(nickName);
|
||||
entity.setCreate_time(now);
|
||||
@@ -155,7 +155,7 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
|
||||
public SchBaseVehiclematerialgroup getByVehicleCode(String barCode) {
|
||||
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().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<SchBaseV
|
||||
public SchBaseVehiclematerialgroup getByPointCode(String pointCode) {
|
||||
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().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<SchBaseVehiclematerialgroup> schBaseVehiclematerialgroups = vehiclematerialgroupMapper.selectList(lambda);
|
||||
if (schBaseVehiclematerialgroups.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return schBaseVehiclematerialgroups.get(0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
point.setCustomer(point1.getCustomer());
|
||||
point.setMaterial_code(point1.getMaterial_code());
|
||||
point.setMaterial_model(point1.getMaterial_model());
|
||||
point.setMaterial_code(point1.getMaterial_code());
|
||||
point.setMaterial_spec(point1.getMaterial_spec());
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@@ -0,0 +1,285 @@
|
||||
package org.nl.wms.sch.task_manage.task.tasks.hn;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
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.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.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.core.TaskStatus;
|
||||
import org.nl.wms.sch.task_manage.task.tasks.hn.mapper.HNMapper;
|
||||
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.math.BigDecimal;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author sxp
|
||||
* @desc 拆包机下料位满料入库
|
||||
*/
|
||||
@Component("CBJMLTask")
|
||||
public class CBJMLTask extends AbstractTask {
|
||||
private static final String TASK_CONFIG_CODE = "CBJMLTask";
|
||||
@Autowired
|
||||
private ISchBasePointService pointService;
|
||||
@Autowired
|
||||
private ISchBaseTaskService taskService;
|
||||
@Autowired
|
||||
private ISchBaseTaskconfigService taskConfigService;
|
||||
@Autowired
|
||||
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
|
||||
@Autowired
|
||||
private IPdmBdWorkorderService workorderService;
|
||||
@Autowired
|
||||
private ISysNoticeService noticeService;
|
||||
@Autowired
|
||||
private IMdBaseMaterialService materialService;
|
||||
@Autowired
|
||||
private HNMapper hnMapper;
|
||||
|
||||
|
||||
/**
|
||||
* 具体业务
|
||||
* 找点+下发-定时任务
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
protected void create() {
|
||||
// 获取任务
|
||||
List<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
||||
// 配置信息
|
||||
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
||||
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
||||
for (SchBaseTask task : tasks) {
|
||||
TaskUtils.setUpdateByAcs(task);
|
||||
List<String> 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<String> nextRegionStr, JSONObject requestParam) {
|
||||
// 放到困料货架
|
||||
List<SchBasePoint> points = pointService.list(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.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<SchBaseVehiclematerialgroup>()
|
||||
.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<SchBasePoint>()
|
||||
.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<SchBasePoint>()
|
||||
.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();
|
||||
}
|
||||
}
|
||||
@@ -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<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
||||
// 配置信息
|
||||
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
||||
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
||||
for (SchBaseTask task : tasks) {
|
||||
TaskUtils.setUpdateByAcs(task); // 修改修改者
|
||||
List<String> 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<SchBaseTaskconfig>()
|
||||
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
||||
TaskUtils.setUpdateByAcs(task); // 修改修改者
|
||||
List<String> 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<String> startRegionStr, JSONObject extGroupData) {
|
||||
LambdaQueryWrapper<SchBasePoint> 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<SchBasePoint> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<SchBaseTask> tasks = taskService.findTasksByTaskStatus(TASK_CONFIG_CODE, TaskStatus.APPLY);
|
||||
// 配置信息
|
||||
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
|
||||
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
|
||||
for (SchBaseTask task : tasks) {
|
||||
TaskUtils.setUpdateByAcs(task);
|
||||
// List<String> 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<String> startRegionStr, JSONObject requestParam) {
|
||||
// 获取当前工单
|
||||
String workorderCode = requestParam.getString("workorder_code");
|
||||
PdmBdWorkorder workOrder = ObjectUtil.isNotEmpty(workorderCode)
|
||||
? workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>()
|
||||
.eq(PdmBdWorkorder::getWorkorder_code, workorderCode))
|
||||
: null;
|
||||
Assert.notNull(workOrder, "工单不能为空!");
|
||||
MdBaseMaterial material = materialService.getById(workOrder.getMaterial_id());
|
||||
// hint: redundance_material_code暂时存在着
|
||||
List<SchBasePoint> 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);
|
||||
}
|
||||
}
|
||||
@@ -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<SchBasePoint>()
|
||||
.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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<SchBasePoint> schBasePoints = pointService.list(lam);
|
||||
|
||||
@@ -173,6 +173,10 @@ public class YZQLTask extends AbstractTask {
|
||||
* @description : JSONObject获取不到就是null
|
||||
*/
|
||||
private SchBasePoint findStartPoint(List<String> 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);
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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
|
||||
<foreach collection="regionCode" item="code" separator="," open="(" close=")">
|
||||
#{code}
|
||||
|
||||
@@ -72,28 +72,28 @@
|
||||
>
|
||||
开工
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
:disabled="!(crud.selections[0]) || crud.selections[1]"
|
||||
@click="hnmlTask(crud.selections[0])"
|
||||
>
|
||||
任务下发
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
icon="el-icon-position"
|
||||
size="mini"
|
||||
:disabled="!(crud.selections[0]) || crud.selections[1]"
|
||||
@click="orderFinish(crud.selections[0])"
|
||||
>
|
||||
工单完成
|
||||
</el-button>
|
||||
<!-- <el-button-->
|
||||
<!-- slot="right"-->
|
||||
<!-- class="filter-item"-->
|
||||
<!-- type="success"-->
|
||||
<!-- icon="el-icon-position"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- :disabled="!(crud.selections[0]) || crud.selections[1]"-->
|
||||
<!-- @click="hnmlTask(crud.selections[0])"-->
|
||||
<!-- >-->
|
||||
<!-- 任务下发-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button-->
|
||||
<!-- slot="right"-->
|
||||
<!-- class="filter-item"-->
|
||||
<!-- type="success"-->
|
||||
<!-- icon="el-icon-position"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- :disabled="!(crud.selections[0]) || crud.selections[1]"-->
|
||||
<!-- @click="orderFinish(crud.selections[0])"-->
|
||||
<!-- >-->
|
||||
<!-- 工单完成-->
|
||||
<!-- </el-button>-->
|
||||
<el-button
|
||||
v-if="false"
|
||||
slot="right"
|
||||
@@ -716,22 +716,22 @@ export default {
|
||||
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
|
||||
})
|
||||
},
|
||||
// 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 => {
|
||||
|
||||
Reference in New Issue
Block a user