src/main/java/com/zy/asrs/command/LedCommand.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/MatDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/mapper/WrkDetlMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/WrkDetlService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/WrkDetlServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/utils/Utils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/web/WcsController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/WrkDetlMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/command/LedCommand.java
New file @@ -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(); } } src/main/java/com/zy/asrs/entity/param/MatDto.java
New file @@ -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; } } 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); } 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); } 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); } } 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 最浅库位排 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)) { // 工作档集合 List<WrkMast> wrkMasts = new ArrayList<>(); // 获取工作档数据 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("拣料出库"); 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("更新工作档失败"); } } } 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)) { 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.*