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