From 73051727cc269593ddf3177163bbce582a4a8937 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期四, 18 一月 2024 11:06:10 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 274 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 272 insertions(+), 2 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 86e82cb..680f6f9 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -10,16 +10,21 @@
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.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;
@@ -35,6 +40,8 @@
@Slf4j
@Service
public class MobileServiceImpl implements MobileService {
+
+
@Autowired
private MatService matService;
@@ -74,13 +81,273 @@
private ManLocDetlService manLocDetlService;
@Autowired
private ManLocDetlMapper manLocDetlMapper;
+ @Autowired
+ private DocTypeService docTypeService;
+ @Autowired
+ private LocDetlRullUpDetailService locDetlRullUpDetailService;
@Override
@Transactional
public void trussComb(TrussCombParam param, Long userId) {
- param.setUuid(String.valueOf(new Date().getTime()));
+ Date now = new Date();
+ if (param.getSouSta()==145){
+ param.setBarcode(String.valueOf(now.getTime()));
+ }else {
+ if (Cools.isEmpty(param.getBarcode())){
+ throw new CoolException("鍙傛暟锛氭墭鐩樼爜涓虹┖");
+ }
+ }
+ param.setPalletizingNo(147);
+
+
+ //鍒ゆ柇param鍙傛暟
+ if (Cools.isEmpty(param.getPalletizingNo())){
+ throw new CoolException("鍙傛暟锛氬師绔欑偣缂栧彿涓虹┖");
+ }else if (param.getSouSta()==145 && param.getMatList().size() != 1){
+ throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖ 鎴栬�� 澶т簬1涓槑缁�");
+ }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size() > 2){
+ throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖ 鎴栬�� 澶т簬2涓槑缁�");
+ }
+
+ String matnr = null;
+ List<WaitPakin> waitPakins = new ArrayList<>();
+ for (TrussCombParam.MatList matList:param.getMatList()){
+ long rollUp = new Date().getTime();
+ Mat mat = matService.selectByMatnr(matList.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(matList.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+ }
+ matnr = mat.getMatnr();
+ WaitPakin waitPakin = new WaitPakin();
+ waitPakin.sync(mat);
+ waitPakin.setModel(matList.getModel()); //鎵规
+ waitPakin.setSpecs(matList.getSpecs()); //瑙勬牸
+ waitPakin.setBatch(matList.getBatch()); //鏈ㄧ缂栫爜
+ waitPakin.setBrand(param.getBoxType()); //鏈ㄧ绫诲瀷
+ waitPakin.setZpallet(param.getBarcode()); //鎵樼洏鐮�
+ waitPakin.setOrigin(matList.getPosition()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃�
+ waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
+ waitPakin.setAnfme((double)matList.getAnfme()); // 鏈ㄧ涓摐绠旀暟閲�
+ waitPakin.setStatus("Y"); // 鐘舵��
+ waitPakin.setAppeUser(userId);
+ waitPakin.setAppeTime(now);
+ waitPakin.setModiUser(userId);
+ waitPakin.setModiTime(now);
+ waitPakin.setRollUp(rollUp);
+ if (!Cools.isEmpty(matList.getMatDetlList())){
+ for (TrussCombParam.MatDetlList matDetlList:matList.getMatDetlList()){
+ LocDetlRullUpDetail locDetlRullUpDetail = new LocDetlRullUpDetail();
+ locDetlRullUpDetail.setUuid(rollUp);
+ locDetlRullUpDetail.setRollNo(matDetlList.getBoxNoDetl());
+ locDetlRullUpDetail.setRollWeight(matDetlList.getWeightDetl().toString());
+ locDetlRullUpDetailService.insert(locDetlRullUpDetail);
+ }
+ }
+ if (!waitPakinService.insert(waitPakin)) {
+ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+ }
+ waitPakins.add(waitPakin);
+ }
+
+ LocTypeDto locTypeDto = new LocTypeDto();
+ locTypeDto.setLocType1((short)1);
+
+ StartupDto dto = commonService.getLocNo(1, 1, param.getSouSta(), matnr,null,null, locTypeDto);
+
+ int workNo = dto.getWorkNo();
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+ wrkMast.setIoPri(13D); // 浼樺厛绾�
+ wrkMast.setCrnNo(dto.getCrnNo());
+ wrkMast.setSourceStaNo(dto.getSourceStaNo());
+ wrkMast.setStaNo(dto.getStaNo());
+ wrkMast.setLocNo(dto.getLocNo());
+ wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+ wrkMast.setCtnType(0); // 瀹瑰櫒绫诲瀷
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ waitPakins.forEach(waitPakin -> {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(waitPakin);
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setIoTime(wrkMast.getIoTime());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setRollUp(waitPakin.getRollUp());
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
+ // 鏇存柊鐩爣搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectById(dto.getLocNo());
+ if (locMast.getLocSts().equals("O")){
+ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)){
+ throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+ }
+ } else {
+ throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+ }
+ }
+
+ //wms鍏ュ簱缁勬墭 閫�搴撳崟閫�搴撶粍鎵�
+ @Override
+ @Transactional
+ public void trussCombOrder(TrussCombParam param, Long userId) {
+ Date now = new Date();
+ param.setBarcode(String.valueOf(now.getTime()));
+ param.setPalletizingNo(147);
+
+ //鍒ゆ柇param鍙傛暟
+ if (Cools.isEmpty(param.getPalletizingNo())){
+ throw new CoolException("鍙傛暟锛氱爜鍨涗綅缂栧彿 palletizingNo涓虹┖");
+ }else if (Cools.isEmpty(param.getOrderNo())){
+ throw new CoolException("鍙傛暟锛氶��璐у崟鍗曞彿 orderNo涓虹┖");
+ }else if (Cools.isEmpty(param.getMatList()) || param.getMatList().size() != 1){
+ throw new CoolException("鍙傛暟锛氱墿鏂欐槑缁� matLists涓虹┖");
+ }
+
+ Order order = orderService.selectByNo(param.getOrderNo());
+ if (Cools.isEmpty(order)){
+ throw new CoolException("鏈煡璇㈠埌姝よ鍗曪紝鍗曞彿锛�"+param.getOrderNo());
+ }
+ DocType docType = docTypeService.selectById(order.getDocType());
+ if (Cools.isEmpty(docType) || !docType.getDocName().equals("閫�璐у叆搴撳崟")){
+ throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+"涓嶆槸閫�璐у叆搴撳崟");
+ }
+
+ List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+ if (Cools.isEmpty(orderDetls) || orderDetls.size()==0){
+ throw new CoolException("鏈煡璇㈠埌姝よ鍗曟槑缁嗭紝鍗曞彿锛�"+param.getOrderNo());
+ }
+ List<String> orderBoxNoList = new ArrayList<>();
+ for (OrderDetl orderDetl: orderDetls){
+ if (orderDetl.getWorkQty()==0){
+ orderBoxNoList.add(orderDetl.getBatch());
+ }
+ }
+ if (orderBoxNoList.size()==0 || orderBoxNoList.size()<param.getMatList().size()){
+ throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+" 閫�璐ф暟閲忓ぇ浜庢槑缁嗘暟閲�");
+ }
+ List<String> matListBoxNoList = new ArrayList<>();
+ for (TrussCombParam.MatList matList: param.getMatList()){
+ if (!orderBoxNoList.contains(matList.getBatch())){
+ throw new CoolException("鍗曞彿锛�"+param.getOrderNo()+" 绠卞彿锛�"+matList.getBatch()+"涓嶅睘浜庢璁㈠崟鎴栬�呭凡缁忓叆搴�");
+ }else {
+ matListBoxNoList.add(matList.getBoxNo());
+ }
+ }
+ List<OrderDetl> orderDetlList = new ArrayList<>();
+ for (OrderDetl orderDetl: orderDetls){
+ if (matListBoxNoList.contains(orderDetl.getBatch())){
+ orderDetl.setBrand("1");
+ orderDetlList.add(orderDetl);
+ }
+ }
+ String matnr = null;
+ List<WaitPakin> waitPakins = new ArrayList<>();
+
+ for (OrderDetl orderDetl:orderDetlList){
+ Mat mat = matService.selectByMatnr(orderDetl.getMatnr());
+ if (Cools.isEmpty(mat)) {
+ throw new CoolException(orderDetl.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+ }
+ matnr = mat.getMatnr();
+ WaitPakin waitPakin = new WaitPakin();
+ waitPakin.sync(mat);
+ waitPakin.setModel(orderDetl.getModel()); //鎵规
+ waitPakin.setSpecs(orderDetl.getSpecs()); //瑙勬牸
+ waitPakin.setBatch(orderDetl.getBatch()); //鏈ㄧ缂栫爜
+ waitPakin.setBrand(param.getBoxType()); //鏈ㄧ绫诲瀷
+ waitPakin.setZpallet(param.getBarcode()); //鎵樼洏鐮�
+ waitPakin.setOrigin(orderDetl.getOrigin()); //鏈ㄧ鍦ㄦ墭鐩樹笂鐨勪綅缃�
+ waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵��
+ waitPakin.setAnfme(orderDetl.getAnfme()); // 鏈ㄧ涓摐绠旀暟閲�
+ waitPakin.setStatus("Y"); // 鐘舵��
+ waitPakin.setAppeUser(userId);
+ waitPakin.setAppeTime(now);
+ waitPakin.setModiUser(userId);
+ waitPakin.setModiTime(now);
+ waitPakin.setRollUp(orderDetl.getRollUp());
+ if (!waitPakinService.insert(waitPakin)) {
+ throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+ }
+ waitPakins.add(waitPakin);
+ }
+
+ LocTypeDto locTypeDto = new LocTypeDto();
+ locTypeDto.setLocType1((short)1);
+
+ StartupDto dto = commonService.getLocNo(1, 1, 145, matnr,null,null, locTypeDto);
+
+ int workNo = dto.getWorkNo();
+ // 鐢熸垚宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+ wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+ wrkMast.setIoPri(13D); // 浼樺厛绾�
+ wrkMast.setCrnNo(dto.getCrnNo());
+ wrkMast.setSourceStaNo(dto.getSourceStaNo());
+ wrkMast.setStaNo(dto.getStaNo());
+ wrkMast.setLocNo(dto.getLocNo());
+ wrkMast.setBarcode(param.getBarcode()); // 鎵樼洏鐮�
+ wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk("N"); // 绌烘澘
+ wrkMast.setLinkMis("Y");
+ wrkMast.setCtnType(0); // 瀹瑰櫒绫诲瀷
+ // 鎿嶄綔浜哄憳鏁版嵁
+ wrkMast.setAppeTime(now);
+ wrkMast.setModiTime(now);
+ boolean res = wrkMastService.insert(wrkMast);
+ if (!res) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 鐢熸垚宸ヤ綔妗f槑缁�
+ waitPakins.forEach(waitPakin -> {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.sync(waitPakin);
+ wrkDetl.setWrkNo(wrkMast.getWrkNo());
+ wrkDetl.setIoTime(wrkMast.getIoTime());
+ wrkDetl.setAppeTime(now);
+ wrkDetl.setModiTime(now);
+ wrkDetl.setRollUp(waitPakin.getRollUp());
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+ }
+ });
+ // 鏇存柊鐩爣搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectById(dto.getLocNo());
+ if (locMast.getLocSts().equals("O")){
+ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害
+ locMast.setModiTime(now);
+ if (!locMastService.updateById(locMast)){
+ throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+ }
+ } else {
+ throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+ }
}
@Override
@Transactional
@@ -689,7 +956,10 @@
wrkMast.setEmptyMk("N"); // 绌烘澘
wrkMast.setLinkMis("N");
wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
- wrkMast.setSheetNo("0"); //寰愬伐姹変簯鎷嗗灈鏍囪锛�0: 鏈媶 1: 宸叉媶 2:宸插鐞嗗彲涓嬩竴姝ワ紙杞巻鍙叉。锛�
+ wrkMast.setSheetNo("0"); //寰愬伐姹変簯鎷嗗灈鏍囪锛�0: 鍒濆 1: 鏈媶 2:宸叉媶 3锛氬凡澶勭悊鍙笅涓�姝ワ紙杞巻鍙叉。锛�
+ if (wrkMast.getStaNo()<118 || wrkMast.getStaNo()>121){
+ wrkMast.setSheetNo("3");
+ }
wrkMast.setAppeTime(now);
wrkMast.setModiUser(userId);
wrkMast.setModiTime(now);
--
Gitblit v1.9.1