From a29aa2ea80eaaea6acff08068a04de47b69478a8 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期五, 19 七月 2024 10:05:19 +0800
Subject: [PATCH] 盘点出入库接口开发
---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 162 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index c0d6320..472cf6a 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -10,29 +10,22 @@
import com.zy.asrs.entity.param.*;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.*;
-import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.utils.MatUtils;
-import com.zy.asrs.utils.PostMesDataUtils;
-import com.zy.common.CodeRes;
import com.zy.common.constant.MesConstant;
import com.zy.common.entity.Parameter;
import com.zy.common.model.DetlDto;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.MesCombParam;
import com.zy.common.model.StartupDto;
-import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
+import javax.annotation.Resource;
+import java.util.*;
/**
* 绉诲姩绔湇鍔℃牳蹇冪被
@@ -88,7 +81,13 @@
private LocDetlRullUpDetailService locDetlRullUpDetailService;
@Autowired
private TagService tagService;
+ @Autowired
+ private BasBoxTypeService basBoxTypeService;
+ @Autowired
+ private WrkMastLogService wrkMastLogService;
+ @Resource
+ private OpenServiceImpl openServiceImpl;
@Override
@Transactional
@@ -243,7 +242,7 @@
}
List<String> orderBoxNoList = new ArrayList<>();
for (OrderDetl orderDetl: orderDetls){
- if (orderDetl.getWorkQty()==0){
+ if (orderDetl.getWorkQty().equals(0.0)){
orderBoxNoList.add(orderDetl.getBatch());
}
}
@@ -255,7 +254,7 @@
if (!orderBoxNoList.contains(matList.getBatch())){
throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+" 绠卞彿锛�"+matList.getBatch()+"涓嶅睘浜庢璁㈠崟鎴栬�呭凡缁忓叆搴�");
}else {
- matListBoxNoList.add(matList.getBoxNo());
+ matListBoxNoList.add(matList.getBatch());
}
}
List<OrderDetl> orderDetlList = new ArrayList<>();
@@ -297,6 +296,10 @@
waitPakin.setBatch(orderDetl.getBatch()); //鏈ㄧ缂栫爜
waitPakin.setBrand(orderDetl.getBrand()); //鏈ㄧ绫诲瀷
waitPakin.setZpallet(param.getBarcode()); //鎵樼洏鐮�
+ waitPakin.setWeight(orderDetl.getWeight()); //鍑�閲�
+ waitPakin.setVolume(orderDetl.getVolume()); //姣涢噸
+ waitPakin.setPrice(orderDetl.getPrice()); //闀垮害
+ waitPakin.setSpecs(String.valueOf(orderDetl.getSpecs())); //鎺ュご
waitPakin.setOrigin("1"); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃�
waitPakin.setIoStatus("Y"); // 鍏ュ嚭鐘舵��
waitPakin.setAnfme(orderDetl.getAnfme()); // 鏈ㄧ涓摐绠旀暟閲�
@@ -391,11 +394,11 @@
} else if (basDevp.getWrkNo()!=0){
throw new CoolException("212绔欑偣鏈夊伐浣滃彿");
}
- int workNo = 20211;
- WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", 20211));
+ WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 212));
if (!Cools.isEmpty(wrkMast1)){
throw new CoolException("浠诲姟妗f宸插瓨鍦紒璇风瓑寰�...");
}
+ int workNo = commonService.getWorkNo(6);
Date now = new Date();
// 鐢熸垚宸ヤ綔妗�
WrkMast wrkMast = new WrkMast();
@@ -424,6 +427,13 @@
public void PalletizingCompleteTwoFloorParam(PalletizingCompleteTwoFloorParam param) {
Long userId = 7777L;//涓帶
param.setPalletizingNo(212);
+
+ WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
+ .eq("io_type", 1).eq("wrk_sts", 1).eq("source_sta_no",212));
+ if (!Cools.isEmpty(wrkMast1)){
+ throw new CoolException("瀛樺湪涓�绗斿伐浣滄。妗堬紝璇峰厛鍏ュ簱锛�");
+ }
+
//鍒ゆ柇param鍙傛暟
if (Cools.isEmpty(param.getBarcode())){
throw new CoolException("鍙傛暟锛氭墭鐩樼爜 barcode涓虹┖");
@@ -453,9 +463,9 @@
}else if (Cools.isEmpty(matList.getWeight()) || matList.getWeight().equals(0D)){
throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鍑�閲� weight涓虹┖");
}else if (Cools.isEmpty(matList.getRoughWeight()) || matList.getRoughWeight().equals(0D)){
- throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細姣涢噸 roughWeight");
+ throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細姣涢噸 roughWeight涓虹┖");
}else if (Cools.isEmpty(matList.getRollExtent()) || matList.getRollExtent().equals(0D)){
- throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鍗烽暱搴� rollExtent");
+ throw new CoolException("瑙勬牸锛�"+matList.getMatnr()+"銆佸弬鏁帮細鍗烽暱搴� rollExtent涓虹┖");
}
if (matList.getPosition().equals("1")){//1銆佸乏 2銆佸彸
@@ -483,8 +493,13 @@
}else {
throw new CoolException("鍙傛暟锛氭湪绠辩紪鍙� boxNo:"+matList.getBatch()+",鏈ㄧ缂栫爜瀛樺湪閲嶅");
}
- }
+ if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("batch", matList.getBatch()))!=0
+ || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("batch", matList.getBatch()))!=0
+ || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("batch", matList.getBatch()))!=0){
+ throw new CoolException("鏈ㄧ缂栧彿锛�"+matList.getBatch()+"宸插瓨鍦紝璇峰嬁閲嶅鍏ュ簱");
+ }
+ }
if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()))!=0
|| wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()))!=0
@@ -521,8 +536,9 @@
waitPakin.setZpallet(param.getBarcode()); //鎵樼洏鐮�
waitPakin.setOrigin(matList.getPosition()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃�
waitPakin.setWeight(matList.getWeight()); //鍑�閲�
-// waitPakin.setRoughWeight(matList.getRoughWeight()); //姣涢噸
-// waitPakin.setRollExtent(matList.getRollExtent()); //闀垮害
+ waitPakin.setVolume(matList.getRoughWeight()); //姣涢噸
+ waitPakin.setPrice(matList.getRollExtent()); //闀垮害
+ waitPakin.setSpecs(String.valueOf(matList.getJoint())); //鎺ュご
waitPakin.setIoStatus("Y"); // 鍏ュ嚭鐘舵��
waitPakin.setAnfme(matList.getAnfme()); // 鏁伴噺
waitPakin.setStatus("Y"); // 鐘舵��
@@ -1147,4 +1163,132 @@
throw new CoolException(locDetl.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
}
}
+
+ @Override
+ @Transactional
+ public void pakoutFhqr(Integer workNo, Integer check) {
+ // 鑾峰彇宸ヤ綔妗�
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo));
+ if (wrkMast == null) {
+ throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�" + workNo);
+ }
+
+ if (wrkMast.getWrkSts() != 20) {
+ throw new CoolException("宸ヤ綔妗e綋鍓嶇姸鎬佸紓甯革細" + workNo + ",鐘舵�侊細" + wrkMast.getWrkSts());
+ }
+
+ if (check == 1) {
+ // 澶嶆牳纭锛屾洿鏂扮姸鎬佷负15鍑哄簱瀹屾垚鏇存柊
+ wrkMast.setWrkSts(14L);
+ wrkMastService.updateById(wrkMast);
+ }
+
+ }
+
+ @Override
+ @Transactional
+ public R pdckqr(PdckqrParam param) {
+ WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo());
+ if (wrkMast == null) {
+ throw new CoolException("宸ヤ綔妗d笉瀛樺湪锛�" + param.getWorkNo());
+ }
+ if (wrkMast.getIoType() != 107 || wrkMast.getWrkSts() != 2) {
+ throw new CoolException(param.getWorkNo() + "宸ヤ綔妗g被鍨嬶細" + wrkMast.getIoType() + "宸ヤ綔鐘舵�侊細" + wrkMast.getWrkSts() + ",涓嶅尮閰�");
+ }
+
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(param.getWorkNo());
+ List<PdckqrParam.Material> materials = param.getMaterials();
+
+ boolean isFullyCancelled = compareAndCheckCancellation(wrkDetls, materials);
+ if (isFullyCancelled) { // 鐩樼偣鐗╂枡纭垚鍔燂紝宸ヤ綔妗h浆鎹� 鐩樼偣鍑哄簱->鐩樼偣鍐嶅叆搴擄紝涓嬪彂鍥炲簱鍛戒护
+ // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+ 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("鍏ュ簱璺緞涓嶅瓨鍦�");
+ }
+ Date now = new Date();
+ // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
+ Integer staNo = staDesc.getCrnStn();
+ // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+ wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+ wrkMast.setWrkSts(14L); // 宸ヤ綔鐘舵��: 14.宸插嚭搴撴湭纭
+ wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
+ wrkMast.setStaNo(staNo); // 鐩爣绔�
+ wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+ wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+ wrkMast.setModiTime(now);
+ if (!wrkMastService.updateById(wrkMast)) {
+ throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+ }
+ // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+ LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+ locMast.setLocSts("Q");
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)) {
+ throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+ }
+
+ // 鎺ㄩ�佺粰gwcs鎵ц鍛戒护
+ openServiceImpl.pushStaNoToGwcs(wrkMast.getSourceStaNo(),wrkMast.getStaNo(),wrkMast.getWrkNo());
+
+ return R.ok("鐩樼偣纭鎴愬姛");
+
+ } else { // 鐗╂枡涓嶄竴鑷�
+ // todo 涓嶄竴鑷寸殑澶勭悊澶勭悊鏂规硶寰呭畾
+
+ }
+
+ return R.error("鐩樼偣纭寮傚父");
+ }
+
+ /**
+ * 姣旇緝涓や釜闆嗗悎鐨勭被鐨勫睘鎬э紝鐩稿悓鍒欐姷娑堬紝鏈�鍚庡垽鏂袱涓泦鍚堟槸鍚﹀畬鍏ㄦ姷娑�
+ */
+ public boolean compareAndCheckCancellation(List<WrkDetl> list1, List<PdckqrParam.Material> list2) {
+ if (list1.size() != list2.size()) {
+ return false; // If lists are not of the same size, cancellation is not possible
+ }
+
+ List<PdckqrParam.Material> remainingList2 = new ArrayList<>(list2);
+
+ // Compare and cancel out elements
+ for (WrkDetl p1 : list1) {
+ boolean cancelled = false;
+ for (PdckqrParam.Material p2 : remainingList2) {
+ if (p1.getBatch().equals(p2.getBoxNo()) && p1.getModel().equals(p2.getRollNo())) { // 鍗峰彿鍜岀鍙风浉鍚�
+ remainingList2.remove(p2);
+ cancelled = true;
+ break;
+ }
+ }
+ if (!cancelled) {
+ return false; // If any element in list1 cannot be cancelled, return false
+ }
+ }
+
+ return remainingList2.isEmpty(); // Return true if all elements in list1 were cancelled out
+ }
+
+ @Override
+ @Transactional
+ public List<Map<String, Object>> boxTypeComb() {
+ EntityWrapper<BasBoxType> wrapper = new EntityWrapper<>();
+ List<Map<String, Object>> result = new ArrayList<>();
+ List<BasBoxType> basBoxTypes = basBoxTypeService.selectList(wrapper.orderBy("id",true));
+ for (BasBoxType basBoxType : basBoxTypes){
+ Map<String, Object> map = new HashMap<>();
+ map.put("boxType", basBoxType.getBoxType());
+ map.put("boxSpecs", basBoxType.getBoxSpecs());
+ result.add(map);
+ }
+ return result;
+ }
}
--
Gitblit v1.9.1