From d47f3a55e5f7b4328ad1bd2e059f03e5c0c4151a Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期二, 19 十一月 2024 15:56:23 +0800 Subject: [PATCH] #led task --- src/main/resources/mapper/WrkDetlMapper.xml | 4 src/main/java/com/zy/asrs/command/LedCommand.java | 53 ++++++++++ src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java | 2 src/main/java/com/zy/asrs/utils/Utils.java | 14 ++ src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java | 4 src/main/java/com/zy/common/web/WcsController.java | 101 ++++++++++++++++++++ src/main/java/com/zy/asrs/entity/param/MatDto.java | 63 ++++++++++++ src/main/java/com/zy/asrs/service/WrkDetlService.java | 2 8 files changed, 240 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zy/asrs/command/LedCommand.java b/src/main/java/com/zy/asrs/command/LedCommand.java new file mode 100644 index 0000000..46d54d1 --- /dev/null +++ b/src/main/java/com/zy/asrs/command/LedCommand.java @@ -0,0 +1,53 @@ +package com.zy.asrs.command; + +import com.core.common.Cools; +import com.zy.asrs.entity.param.MatDto; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * led鍛戒护鎶ユ枃 + * Created by vincent on 2020/8/11 + */ +@Data +public class LedCommand extends Object { + + private String title; + + private Integer workNo; + + private Integer staNo; + + private Integer sourceStaNo; + + private String locNo; + + private String sourceLocNo; + + private List<MatDto> matDtos = new ArrayList<>(); + + private boolean emptyMk = false; + + private Integer ioType; + private String barcode; + + @Override + public String toString() { + StringBuffer s = new StringBuffer(); + s.append("宸ヤ綔鍙穂" + this.workNo + "]\n"); + s.append("宸ヤ綔绫诲瀷[" + this.title + "]\n"); + if (!Cools.isEmpty(this.barcode)) { + s.append("鎵樼洏鐮乕" + this.barcode + "]\n"); + } + if (!this.emptyMk){ + + for (MatDto matDto : matDtos) { + s.append("[鍟嗗搧缂栫爜:" + matDto.getMatnr() + ", 鏁伴噺:" + matDto.getCount() + "]\n"); + } + } + + return s.toString(); + } +} diff --git a/src/main/java/com/zy/asrs/entity/param/MatDto.java b/src/main/java/com/zy/asrs/entity/param/MatDto.java new file mode 100644 index 0000000..0d10511 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/MatDto.java @@ -0,0 +1,63 @@ +package com.zy.asrs.entity.param; + +import lombok.Data; + +/** + * Created by vincent on 2020/8/6 + */ +@Data +public class MatDto { + + // 鐗╂枡缂栧彿 + private String matnr; + + // 鐗╂枡鍚嶇О + private String maknx; + + private String batch; + + private String specs; + + // 瀹㈡埛淇℃伅 + private String manu; + + // 澶囨敞 + private String memo; + + // 鐗╂枡鏁伴噺 + private Double count; + + private Double total; + + public MatDto() { + } + public MatDto(String matnr, String maknx, String batch, String specs, String manu, String memo, Double count, Double total) { + this.matnr = matnr; + this.maknx = maknx; + this.batch = batch; + this.specs = specs; + this.manu = manu; + this.memo = memo; + this.count = count; + this.total = total; + } + + public MatDto(String matNo, String maknx, Double count) { + this.matnr = matNo; + this.maknx = maknx; + this.count = count; + } + public MatDto(String matNo, String maknx, Double count, String specs) { + this.specs = specs; + this.matnr = matNo; + this.maknx = maknx; + this.count = count; + } + public MatDto(String matNo, String maknx, Double count, Double total, String specs) { + this.specs = specs; + this.matnr = matNo; + this.maknx = maknx; + this.count = count; + this.total = total; + } +} diff --git a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java index f44e1fb..a336d03 100644 --- a/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java +++ b/src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java @@ -30,4 +30,6 @@ int updateIoTimeWms(@Param("workNo") Integer workNo, @Param("ioTime") Date ioTime); int updateIoTime(@Param("workNo") Integer workNo, @Param("ioTime") Date ioTime); + + List<WrkDetl> findByWorkNo(Integer workNo); } diff --git a/src/main/java/com/zy/asrs/service/WrkDetlService.java b/src/main/java/com/zy/asrs/service/WrkDetlService.java index 7eeaf83..d2321bc 100644 --- a/src/main/java/com/zy/asrs/service/WrkDetlService.java +++ b/src/main/java/com/zy/asrs/service/WrkDetlService.java @@ -26,4 +26,6 @@ boolean updateIoTimeWms(Integer workNo, Date ioTime); boolean updateIoTime(Integer workNo, Date ioTime); + + List<WrkDetl> findByWorkNo(Integer wrkNo); } diff --git a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java index 968b9b6..38a30ef 100644 --- a/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java @@ -93,4 +93,8 @@ public boolean updateIoTime(Integer workNo, Date ioTime) { return this.baseMapper.updateIoTime(workNo, ioTime) > 0; } + @Override + public List<WrkDetl> findByWorkNo(Integer workNo) { + return this.baseMapper.findByWorkNo(workNo); + } } diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java index 83f2695..e1d291c 100644 --- a/src/main/java/com/zy/asrs/utils/Utils.java +++ b/src/main/java/com/zy/asrs/utils/Utils.java @@ -529,14 +529,24 @@ case 1: necessaryParameters[1] = 4; //curRow 鏈�娣卞簱浣嶆帓 necessaryParameters[2] = sCrnNo; //crnNo 鍫嗗灈鏈哄彿 - necessaryParameters[3] = 7; //nearRow 鏈�娴呭簱浣嶆帓 + necessaryParameters[3] = 6; //nearRow 鏈�娴呭簱浣嶆帓 break; case 4: + necessaryParameters[1] = 7; //curRow 鏈�娣卞簱浣嶆帓 + necessaryParameters[2] = sCrnNo; //crnNo 鍫嗗灈鏈哄彿 + necessaryParameters[3] = 7; //nearRow 鏈�娴呭簱浣嶆帓 + break; + case 7: necessaryParameters[1] = 9; //curRow 鏈�娣卞簱浣嶆帓 + necessaryParameters[2] = sCrnNo; //crnNo 鍫嗗灈鏈哄彿 + necessaryParameters[3] = 11; //nearRow 鏈�娴呭簱浣嶆帓 + break; + case 9: + necessaryParameters[1] = 12; //curRow 鏈�娣卞簱浣嶆帓 necessaryParameters[2] = sCrnNo; //crnNo 鍫嗗灈鏈哄彿 necessaryParameters[3] = 12; //nearRow 鏈�娴呭簱浣嶆帓 break; - case 9: + case 12: necessaryParameters[1] = 14; //curRow 鏈�娣卞簱浣嶆帓 necessaryParameters[2] = sCrnNo; //crnNo 鍫嗗灈鏈哄彿 necessaryParameters[3] = 14; //nearRow 鏈�娴呭簱浣嶆帓 diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java index 6107b1f..ac298a8 100644 --- a/src/main/java/com/zy/common/web/WcsController.java +++ b/src/main/java/com/zy/common/web/WcsController.java @@ -6,8 +6,10 @@ import com.core.common.Cools; import com.core.common.R; import com.core.exception.CoolException; +import com.zy.asrs.command.LedCommand; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.EmptyPlateOutParam; +import com.zy.asrs.entity.param.MatDto; import com.zy.asrs.entity.result.KeyValueVo; import com.zy.asrs.service.*; import com.zy.common.CodeRes; @@ -56,9 +58,106 @@ @Autowired private WebSocketServer webSocketServer; + + @PostMapping("/led/getTask") + @ResponseBody + public synchronized R getledTask(@RequestBody Map<String, String> param) { + String taskNo = param.get("taskNo"); + String sta = param.get("sta"); + // 鍛戒护闆嗗悎 + List<LedCommand> commands = new ArrayList<>(); + if ("0".equals(sta)) { + + // 宸ヤ綔妗i泦鍚� + List<WrkMast> wrkMasts = new ArrayList<>(); + // 鑾峰彇宸ヤ綔妗f暟鎹� + WrkMast wrkMast = wrkMastService.selectById(taskNo); + if (null == wrkMast) { return R.error(); } + wrkMasts.add(wrkMast); + // 缁勮鍛戒护 + LedCommand ledCommand = new LedCommand(); + ledCommand.setWorkNo(wrkMast.getWrkNo()); + ledCommand.setIoType(wrkMast.getIoType()); + wrkMasts.add(wrkMast); + // 鍑哄簱妯″紡 + switch (wrkMast.getIoType()) { + case 1: + ledCommand.setTitle("鍏ㄦ澘鍏ュ簱"); + break; + case 10: + ledCommand.setTitle("绌烘澘鍏ュ簱"); + break; + case 101: + ledCommand.setTitle("鍏ㄦ澘鍑哄簱"); + break; + case 103: + ledCommand.setTitle("鎷f枡鍑哄簱"); + break; + case 104: + ledCommand.setTitle("骞舵澘鍑哄簱"); + break; + case 107: + ledCommand.setTitle("鐩樼偣鍑哄簱"); + break; + case 110: + ledCommand.setTitle("绌烘澘鍑哄簱"); + ledCommand.setEmptyMk(true); + break; + default: + break; + } + ledCommand.setSourceLocNo(wrkMast.getSourceLocNo()); + ledCommand.setStaNo(wrkMast.getStaNo()); + ledCommand.setBarcode(wrkMast.getBarcode()); + if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { + List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); + + wrkDetls.forEach(wrkDetl -> { + Double total = 0.0; + EntityWrapper<LocDetl> wrapper = new EntityWrapper<>(); + LocDetl locDetl = locDetlService.selectOne(wrapper.eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr())); + if (Cools.isEmpty(locDetl)) { + total = wrkDetl.getAnfme(); + } else { + total = locDetl.getAnfme(); + } + if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 1) { + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); + } + if (wrkMast.getIoType() == 103 && (null == wrkDetl.getInspect() || 0 == wrkDetl.getInspect())) { + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); + } + if (wrkMast.getIoType() == 107 || wrkMast.getIoType() == 104) { + ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getBatch(), wrkDetl.getSpecs(), wrkDetl.getManu(), wrkDetl.getMemo(), wrkDetl.getAnfme(),total)); + } + }); + } + commands.add(ledCommand); + + Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet()); + // 淇敼涓绘。led鏍囪 + for (WrkMast wrkMast1 : wrkMasts) { + wrkMast1.setOveMk("Y"); + wrkMast1.setModiTime(new Date()); + if (wrkMastService.updateById(wrkMast1)) { + throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�"); + } + } + } + + + + Map<String,Object> map=new HashMap<String, Object>(); + map.put("to",sta); + map.put("message",Cools.add("type", "task").add("taskList",commands)); + webSocketServer.onMessage(JSONObject.toJSONString(map),null,sta); + return R.ok(); + + } + @PostMapping("/led/getError") @ResponseBody - public synchronized R getLocNo(@RequestBody Map<String, String> param) { + public synchronized R getledError(@RequestBody Map<String, String> param) { String sta = param.get("sta"); String message = param.get("msg"); if (Cools.isEmpty(sta) || Cools.isEmpty(message)) { diff --git a/src/main/resources/mapper/WrkDetlMapper.xml b/src/main/resources/mapper/WrkDetlMapper.xml index ca46fff..22b651a 100644 --- a/src/main/resources/mapper/WrkDetlMapper.xml +++ b/src/main/resources/mapper/WrkDetlMapper.xml @@ -108,6 +108,10 @@ and wrk_no = #{workNo} </update> + <select id="findByWorkNo" resultMap="BaseResultMap"> + select wrk_no, matnr, maktx, anfme ,specs,batch from asr_wrk_detl where 1=1 and wrk_no = #{workNo} + </select> + <select id="selectPakoutQuery" resultMap="BaseResultMap"> select awd.* -- Gitblit v1.9.1