From de8e16542594e01210aba8a72d18f2d2874681c2 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 12 八月 2024 13:39:33 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 245 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 191 insertions(+), 54 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 8b629ee..1324b6a 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
@@ -11,6 +12,8 @@
import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.result.OpenOrderCompeteResult;
import com.zy.asrs.entity.result.StockVo;
+import com.zy.asrs.entity.result.ZphjcdgzVo;
+import com.zy.asrs.entity.result.ZphjcdwcVo;
import com.zy.asrs.mapper.TagMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.MatUtils;
@@ -28,6 +31,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
+import java.util.stream.Collectors;
/**
* Created by vincent on 2022/4/9
@@ -69,6 +73,8 @@
@Autowired
private WrkDetlSingleService wrkDetlSingleService;
@Autowired
+ private WrkMastLogService wrkMastLogService;
+ @Autowired
private WrkMastStaService wrkMastStaService;
@Autowired
private WrkMastStaLogService wrkMastStaLogService;
@@ -76,6 +82,8 @@
private StaDescService staDescService;
@Autowired
private LocMastService locMastService;
+ @Autowired
+ private ApiLogService apiLogService;
@Override
@Transactional
@@ -984,25 +992,30 @@
if (Cools.isEmpty(param)) {
throw new CoolException("璇锋眰鍙傛暟鏈夎锛�" + param);
}
- int zpalletCount = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()));
- if (zpalletCount > 0) {
- throw new CoolException("搴撳瓨鎵樼洏鐮佸凡瀛樺湪锛�" + param.getBarcode());
- }
+ if (!Cools.isEmpty(param.getBarcode())) {
+ int zpalletCount = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()));
+ if (zpalletCount > 0) {
+ throw new CoolException("搴撳瓨鎵樼洏鐮佸凡瀛樺湪锛�" + param.getBarcode());
+ }
- int barcodeCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()));
- if (barcodeCount > 0) {
- throw new CoolException("宸ヤ綔妗e凡瀛樺湪璇ユ墭鐩樼爜锛�" + param.getBarcode());
+ int barcodeCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode()));
+ if (barcodeCount > 0) {
+ throw new CoolException("宸ヤ綔妗e凡瀛樺湪璇ユ墭鐩樼爜锛�" + param.getBarcode());
+ }
}
-
LocTypeDto locTypeDto = new LocTypeDto();
locTypeDto.setLocType1((short)1);
-
+ int iotype = 1;
+ if (Cools.isEmpty(param.getMatList())) {
+ iotype = 10;
+ }
// 鏍规嵁婧愮珯鐐瑰鎵惧簱浣�
// StartupDto dto = commonService.getLocNo(1, 1, param.getPalletizingNo(), null,null,null, locTypeDto);
- StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto);
+ StartupDto dto = commonService.getLocNo(iotype, param.getPalletizingNo(), locTypeDto,0);
// 杩斿洖GWCS鐩爣淇℃伅
pushStaNoToGwcs(param.getPalletizingNo(),dto.getStaNo(),dto.getWorkNo());
+
int workNo = dto.getWorkNo();
Date now = new Date();
@@ -1011,7 +1024,7 @@
wrkMast.setWrkNo(workNo);
wrkMast.setIoTime(new Date());
wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細璁惧涓婅蛋
- wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+ wrkMast.setIoType(iotype); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
wrkMast.setIoPri(13D); // 浼樺厛绾�
wrkMast.setCrnNo(dto.getCrnNo());
wrkMast.setSourceStaNo(param.getPalletizingNo());
@@ -1032,46 +1045,49 @@
throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
}
- List<GwmsGenerateInventoryDto.MatList> matList = param.getMatList();
- for (GwmsGenerateInventoryDto.MatList obj :matList) {
- WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.setWrkNo(wrkMast.getWrkNo());
- obj.getRolls().forEach(roll -> {
- Mat mat = matService.selectByMatnr(roll.getSpecs());
- if (mat == null) {
- mat = new Mat();
- mat.setTagId(6L);
- mat.setMatnr(roll.getSpecs());
- mat.setMaktx(roll.getSpecs());
- mat.setSpecs(roll.getSpecs());
- mat.setStatus(1);
- mat.setCreateTime(now);
- mat.setUpdateTime(now);
- if (!matService.insert(mat)) {
- throw new CoolException("鐗╂枡瀵煎叆澶辫触锛�");
- }
- }
+ if (!Cools.isEmpty(param.getMatList())) {
+ List<GwmsGenerateInventoryDto.MatList> matList = param.getMatList();
+ for (GwmsGenerateInventoryDto.MatList obj :matList) {
+ WrkDetl wrkDetl = new WrkDetl();
wrkDetl.setWrkNo(wrkMast.getWrkNo());
- wrkDetl.setMatnr(roll.getSpecs()); // 瑙勬牸
- wrkDetl.setMaktx(roll.getSpecs()); //瑙勬牸
- wrkDetl.setBatch(roll.getBoxNo()); // 绠卞彿
- wrkDetl.setModel(roll.getRollNo()); // 鍗峰彿
- wrkDetl.setBrand(""); // 鏈ㄧ绫诲瀷
- wrkDetl.setZpallet(param.getBarcode()); // 鎵樼洏鍚�
- wrkDetl.setOrigin(obj.getBoxPos()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃�
- wrkDetl.setWeight(roll.getNetWeight()); // 鍑�閲�
- wrkDetl.setVolume(roll.getGrossWeight()); // 姣涢噸
- wrkDetl.setPrice(roll.getLength());
- wrkDetl.setSpecs(String.valueOf(roll.getSplices()));
- wrkDetl.setAnfme(1.0);
- wrkDetl.setIoTime(now);
- wrkDetl.setAppeTime(now);
- wrkDetl.setModiTime(now);
- if (!wrkDetlService.insert(wrkDetl)) {
- throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
- }
- });
+ obj.getRolls().forEach(roll -> {
+// Mat mat = matService.selectByMatnr(roll.getSpecs());
+// if (mat == null) {
+// mat = new Mat();
+// mat.setTagId(6L);
+// mat.setMatnr(roll.getSpecs());
+// mat.setMaktx(roll.getSpecs());
+// mat.setSpecs(roll.getSpecs());
+// mat.setStatus(1);
+// mat.setCreateTime(now);
+// mat.setUpdateTime(now);
+// if (!matService.insert(mat)) {
+// throw new CoolException("鐗╂枡瀵煎叆澶辫触锛�");
+// }
+// }
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setMatnr(roll.getSpecs()); // 瑙勬牸
+ wrkDetl.setMaktx(roll.getSpecs()); //瑙勬牸
+ wrkDetl.setBatch(roll.getBoxNo()); // 绠卞彿
+ wrkDetl.setModel(roll.getRollNo()); // 鍗峰彿
+ wrkDetl.setBrand(obj.getPackageGroupNo()); // 鍖呰缁勫彿
+ wrkDetl.setZpallet(param.getBarcode()); // 鎵樼洏鍚�
+ wrkDetl.setOrigin(obj.getBoxPos()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃�
+ wrkDetl.setWeight(roll.getNetWeight()); // 鍑�閲�
+ wrkDetl.setVolume(roll.getGrossWeight()); // 姣涢噸
+ wrkDetl.setPrice(roll.getLength());
+ wrkDetl.setSpecs(String.valueOf(roll.getSplices()));
+ wrkDetl.setAnfme(1.0);
+ wrkDetl.setIoTime(now);
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
+ }
}
+
// 鏇存柊鐩爣搴撲綅鐘舵��
LocMast locMast = locMastService.selectById(dto.getLocNo());
@@ -1295,10 +1311,131 @@
return "鍑哄簱鎴愬姛";
}
- @Autowired
- private ApiLogService apiLogService;
+ @Override
+ @Transactional
+ public R zphjDw(ZphjckdwParam param) {
+ // 鏍规嵁浠诲姟鍙峰緱鍒板伐浣滀富妗�
+ if (Cools.isEmpty(param.getWorkNo())) {
+ throw new CoolException("宸ヤ綔鍙蜂笉鑳戒负绌猴紒");
+ }
+ WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo());
+ if (wrkMast == null) {
+ throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�");
+ }
+ if (wrkMast.getWrkSts() != 2 || wrkMast.getIoType() != 103) {
+ throw new CoolException("宸ヤ綔妗e綋鍓嶇姸鎬佷笉涓�2/鍑哄簱绫诲瀷涓嶄负鎷f枡锛�");
+ }
+ // 鏇存柊宸ヤ綔妗g姸鎬�2.璁惧涓婅蛋->42.绛夊緟鐮佸灈
+ wrkMast.setWrkSts(42L);
+ wrkMastService.updateById(wrkMast);
- private void pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo) {
+ // 鏌ヨ瑕佹媶鐨勪綅缃紝鍙湁涓�涓�
+ List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ List<String> collect = wrkDetls.stream().map(WrkDetl::getOrigin).distinct().collect(Collectors.toList());
+ String position = collect.get(0);
+
+ // 杩斿洖鎷嗗灈瑙勫垯
+ ZphjcdgzVo zphjcdgzVo = new ZphjcdgzVo();
+ zphjcdgzVo.setWorkNo(wrkMast.getWrkNo());
+ zphjcdgzVo.setPosition(position);
+
+ return R.ok(zphjcdgzVo);
+ }
+
+ @Override
+ @Transactional
+ public R zphjCdwc(ZphjcdwcParam param) {
+
+ if (Cools.isEmpty(param.getWorkNo())) {
+ throw new CoolException("宸ヤ綔鍙蜂笉鑳戒负绌猴紒");
+ }
+ WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo());
+ if (wrkMast == null) {
+ throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�");
+ }
+ if (wrkMast.getWrkSts() != 42 || wrkMast.getIoType() != 103) {
+ throw new CoolException("宸ヤ綔妗e綋鍓嶇姸鎬佷笉涓�42/鍑哄簱绫诲瀷涓嶄负鎷f枡锛�");
+ }
+
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+ throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+ }
+ // 鑾峰彇鐩爣绔�
+ Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", wrkMast.getIoType() - 50)
+ .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+ .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+ StaDesc staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+ }
+ // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+ Integer staNo = staDesc.getCrnStn();
+ // 鏇存柊宸ヤ綔绫诲瀷103->53
+ wrkMast.setIoType(53);
+ wrkMast.setWrkSts(52L); // 宸ヤ綔鐘舵��42->52.璁惧涓婅蛋锛堟媶鍨涘畬鎴愶級
+ // 鐩爣绔欑偣婧愮珯鐐硅浆鎹�
+ wrkMast.setSourceStaNo(wrkMast.getStaNo());
+ wrkMast.setStaNo(staNo);
+ // 鐩爣搴撲綅=婧愬簱浣�
+ wrkMast.setLocNo(wrkMast.getSourceLocNo());
+ // 婧愬簱浣嶆竻闄�
+ wrkMast.setSourceLocNo("");
+ wrkMast.setModiTime(new Date());
+
+ int outStaNo = 0; // 鍑哄簱婧愮珯鐐�
+ if (staNo == 3044 || staNo == 3045) {
+ outStaNo = 3046;
+ } else if(staNo == 3040 || staNo == 3041) {
+ outStaNo = 3042;
+ }
+ if (outStaNo == 0) {
+ throw new CoolException("鍑哄簱婧愮珯鐐硅浆鎹㈡湁璇細" + staNo);
+ }
+
+ // 鑾峰彇鍑哄簱鐗╂枡
+ List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
+ int descFlag = getType(wrkDetls);
+
+ // get0鍘熸墭鐩樺洖娴佷俊鎭紝get1鎷嗗灈鍑烘潵鐗╂枡鍑哄簱淇℃伅
+ List<ZphjcdwcVo> zphjcdwcVos = new ArrayList<>();
+ ZphjcdwcVo zphjcdwcVo1 = new ZphjcdwcVo();
+ zphjcdwcVo1.setWorkNo(wrkMast.getWrkNo());
+ zphjcdwcVo1.setStaNo(wrkMast.getStaNo());
+ zphjcdwcVo1.setSourceStaNo(wrkMast.getSourceStaNo());
+ zphjcdwcVos.add(zphjcdwcVo1);
+
+ ZphjcdwcVo zphjcdwcVo2 = new ZphjcdwcVo();
+ zphjcdwcVo2.setSourceStaNo(outStaNo);
+ zphjcdwcVo2.setStaNo(3106); // 3106/3077
+ zphjcdwcVo2.setDescFlag(descFlag);
+ zphjcdwcVos.add(zphjcdwcVo2);
+
+ // 鏇存柊宸ヤ綔涓绘。
+ wrkMastService.updateById(wrkMast);
+ // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+ LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ locMast.setLocSts("Q");
+ locMast.setModiTime(new Date());
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+ }
+
+ // 涓嬪彂鍥炲簱鐨勭洰鏍囩珯鐐瑰拰鎷嗗灈鐨勫嚭搴撶洰鏍囩珯鐐圭粰gwcs
+ return R.ok(zphjcdwcVos);
+ }
+
+ /**
+ * 鏍规嵁鍑哄簱鐗╂枡鏄庣粏鍒ゆ柇鏄惁鍘昏创鏍�(鍗曞嵎璐存爣锛屽鍗蜂笉璐存爣)
+ * @param wrkDetls 鐗╂枡鏄庣粏
+ * @return 0.澶氬嵎涓嶈创鏍囪矾寰勶紝1.鍗曞嵎璐存爣璺緞
+ */
+ private int getType(List<WrkDetl> wrkDetls) {
+ return wrkDetls.size() > 1 ? 0 : 1; // 涓�鏉¤褰曞氨鏄竴鍗�
+ }
+
+ public void pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo) {
boolean success = false;
// 鑾峰彇璇锋眰澶�
Map<String, Object> headers = getHeaders();
@@ -1337,10 +1474,10 @@
// 淇濆瓨鎺ュ彛鏃ュ織
apiLogService.save(
"鍏ュ簱",
- MesConstant.URL + MesConstant.PAKIN_URL,
+ MesConstant.GWCS_IP_PORT + MesConstant.GWCS_FPKW_URL,
null,
"127.0.0.1",
- jsonObject.toJSONString(),
+ body,
response,
success
);
--
Gitblit v1.9.1