From 75f553f89590fc616d6f590c253d36d68ca36e05 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期六, 08 六月 2024 21:21:02 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 170 ++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 151 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index cef20db..8328caf 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -8,10 +8,7 @@
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-import com.zy.asrs.entity.param.FullStoreParam;
-import com.zy.asrs.entity.param.LocDetlAdjustParam;
-import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.*;
@@ -64,7 +61,7 @@
@Autowired
private WrkDetlLogService wrkDetlLogService;
@Autowired
- private SnowflakeIdWorker snowflakeIdWorker;
+ private ManLocDetlService manLocDetlService;
@Autowired
private OrderService orderService;
@Autowired
@@ -77,6 +74,8 @@
private SlaveProperties slaveProperties;
@Autowired
private WaitPakinService waitPakinService;
+ @Autowired
+ private LocOwnerService locOwnerService;
@Override
@Transactional
@@ -91,7 +90,7 @@
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
- StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs, locTypeDto, 0);
+ StartupDto dto = commonService.getLocNo(2, 1, param.getDevpNo(), null,null,null,0, locTypeDto,0);
// 鐢熸垚宸ヤ綔鍙�
int workNo = dto.getWorkNo();
// 鐢熸垚宸ヤ綔妗�
@@ -210,10 +209,10 @@
LocMast locMast = locMastService.selectById(dto.getLocNo());
Integer outSta = staNo.getDevNo();
- //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负204绔欙紝鎷f枡绔欐寚瀹氫负202
- if(locMast.getCrnNo()==2){
- outSta = ioType == 101 ? 204 : 202;
- }
+// //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负204绔欙紝鎷f枡绔欐寚瀹氫负202
+// if(locMast.getCrnNo()==2){
+// outSta = ioType == 101 ? 204 : 202;
+// }
// 鑾峰彇璺緞
StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
@@ -246,6 +245,7 @@
// 鐢熸垚宸ヤ綔妗f槑缁�
for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
+ String uuid = String.valueOf(System.currentTimeMillis());
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(detlDto.getLocDetl());
wrkDetl.setOrderNo(""); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙�
@@ -257,6 +257,9 @@
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
wrkDetl.setModiUser(userId);
+ wrkDetl.setUuid(uuid);
+ wrkDetl.setOwner(detlDto.getLocDetl().getOwner());
+ wrkDetl.setPayment(detlDto.getLocDetl().getPayment());
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
@@ -325,6 +328,7 @@
// if (orderDetl == null) {
// orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
// }
+ String uuid = String.valueOf(System.currentTimeMillis());
WrkDetl wrkDetl = new WrkDetl();
wrkDetl.sync(orderDetl);
wrkDetl.setZpallet(wrkMast.getBarcode());
@@ -337,6 +341,9 @@
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
wrkDetl.setModiUser(userId);
+ wrkDetl.setUuid(uuid);
+ wrkDetl.setOwner(orderDetl.getOwner());
+ wrkDetl.setPayment(orderDetl.getPayment());
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
@@ -367,7 +374,7 @@
BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
// 妫�绱㈠簱浣�
LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
- StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto, 0);
+ StartupDto dto = commonService.getLocNo(1, 10, devpNo, null,null,null,0, locTypeDto,0);
int workNo = dto.getWorkNo();
Date now = new Date();
// 鐢熸垚宸ヤ綔妗�
@@ -483,9 +490,6 @@
@Transactional
public WrkMast emptyPlateOut(EmptyPlateOutParam param) {
WrkMast wrkMast = new WrkMast();
- if (Cools.isEmpty(param.getOutSite())) {
- throw new CoolException("绔欑偣涓嶅瓨鍦�");
- }
for (String locNo : param.getLocNos()) {
// 鑾峰彇宸ヤ綔鍙�
int workNo = commonService.getWorkNo(0);
@@ -497,8 +501,8 @@
// 鑾峰彇婧愮珯
Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
.eq("type_no", 110)
- .eq("stn_no", param.getOutSite())
- .eq("crn_no", locMast.getCrnNo());
+ .eq("crn_no", locMast.getCrnNo())
+ .eq("stn_no",param.getOutSite());
StaDesc staDesc = staDescService.selectOne(wrapper);
Integer sourceStaNo = staDesc.getCrnStn();
if (Cools.isEmpty(sourceStaNo)) {
@@ -513,7 +517,7 @@
wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
wrkMast.setIoPri(10D);
wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯
- wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔�
+ wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
wrkMast.setCrnNo(locMast.getCrnNo());
wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
wrkMast.setFullPlt("N"); // 婊℃澘锛歒
@@ -617,6 +621,8 @@
wrkDetl.setAppeUser(userId);
wrkDetl.setModiTime(now);
wrkDetl.setModiUser(userId);
+ wrkDetl.setOwner(locDetl.getOwner());
+ wrkDetl.setPayment(locDetl.getPayment());
if (!wrkDetlService.insert(wrkDetl)) {
throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
}
@@ -802,6 +808,12 @@
WrkMast wrkMast = wrkMastService.selectById(workNo);
if (Cools.isEmpty(wrkMast)){
throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
+ }
+ if (wrkMast.getIoType() == 1 && (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 5)){
+ throw new CoolException(workNo+"涓嶅彲鍙栨秷");
+ }
+ if (wrkMast.getIoType() == 101 && (wrkMast.getWrkSts() == 14 || wrkMast.getWrkSts() == 15)){
+ throw new CoolException(workNo+"涓嶅彲鍙栨秷");
}
String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
@@ -1036,14 +1048,14 @@
Integer deepRow = Utils.getDeepRow(slaveProperties, curRow);
targetLoc = locMastService.queryFreeLocMast(deepRow, locMast.getLocType1());
// 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
- if (!locMastService.checkEmptyCount(targetLoc)) {
+ if (!locMastService.checkEmptyCount(targetLoc,10)) {
continue;
}
}
if (Cools.isEmpty(targetLoc)) {
targetLoc = locMastService.queryFreeLocMast(curRow, locMast.getLocType1());
// 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣�
- if (!locMastService.checkEmptyCount(targetLoc)) {
+ if (!locMastService.checkEmptyCount(targetLoc,10)) {
continue;
}
// 鐩爣搴撲綅 ===>> 娴呭簱浣嶏紝 鍒欐牎楠屽叾娣卞簱浣嶆槸鍚︿负 F D X
@@ -1109,4 +1121,124 @@
return targetLoc.getLocNo();
}
+ @Override
+ @Transactional
+ public void turnOverOut(EmptyPlateOutParam param, Long userId) {
+ try {
+ if (Cools.isEmpty(param.getOwnerId())) {
+ throw new CoolException("瀹㈡埛鍚嶇О涓嶈兘涓虹┖");
+ }else if (param.getLocDetls().size()<=0){
+ throw new CoolException("璇锋彁鍙栨槑缁�");
+ }
+ ArrayList<String> locNos = new ArrayList<>();
+ String[][] locNos2 =new String[param.getLocDetls().size()][2];
+ int i=0;
+ for (EmptyPlateOutParam.LocDetl locDetl : param.getLocDetls()){
+ if (!locNos.contains(locDetl.getLoc_no())){
+ locNos.add(locDetl.getLoc_no());
+ locNos2[i][0]=locDetl.getLoc_no();
+ locNos2[i][1]=locDetl.getManu();
+ i++;
+ }
+ }
+ LocOwner locOwner = locOwnerService.selectById(param.getOwnerId());
+ param.setOwner(locOwner.getOwner());
+ String lgort = "";
+ String owner="";
+ List<DetlDto> detlDtos = new ArrayList<>();
+ for (String[] locNo1 : locNos2) {
+ String locNo = locNo1[0];
+ if (locNo1[1].equals("骞冲簱")){
+ List<ManLocDetl> manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>().eq("loc_no", locNo));
+ for (ManLocDetl manLocDetl:manLocDetls){
+ if (Cools.isEmpty(owner)) {
+ owner = manLocDetl.getOwner$();
+ }
+ detlDtos.add(new DetlDto(manLocDetl.getMatnr(), manLocDetl.getBatch(), manLocDetl.getAnfme()));
+ manLocDetl.setOwner(param.getOwnerId());
+ try{
+ manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr",manLocDetl.getMatnr()));
+ }catch (Exception e){
+ throw new Exception("鏇存柊搴撳瓨鏄庣粏鎷ユ湁鑰呭瓧娈典俊鎭嚭閿欎簡");
+ }
+ }
+ }else if (locNo1[1].equals("绔嬪簱")){
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo));
+ for (LocDetl locDetl:locDetls){
+ if (Cools.isEmpty(lgort)) {
+ lgort = locDetl.getOrigin();
+ }
+ if (Cools.isEmpty(owner)) {
+ owner = locDetl.getOwner$();
+ }
+ detlDtos.add(new DetlDto(locDetl.getMatnr(), locDetl.getBatch(), locDetl.getAnfme()));
+ locDetl.setOwner(param.getOwnerId());
+ try{
+ locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr",locDetl.getMatnr()));
+ }catch (Exception e){
+ throw new Exception("鏇存柊搴撳瓨鏄庣粏鎷ユ湁鑰呭瓧娈典俊鎭嚭閿欎簡");
+ }
+ }
+ }else {
+ throw new Exception("鏇存柊搴撲綅鎷ユ湁鑰呭瓧娈典俊鎭嚭閿欎簡");
+ }
+ }
+ }catch (Exception e){
+ throw new CoolException("绉讳氦浣滀笟鍑洪敊浜嗭細"+e);
+ }
+ }
+
+ @Override
+ @Transactional
+ public void turnOverOutPayment(EmptyPlateOutParam param, Long userId) {
+ if (Cools.isEmpty(param.getPayment())){
+ throw new CoolException("璇烽�夋嫨鐩爣璐х墿褰㈡��");
+ }
+ log.info("鏇存柊璐х墿褰㈡�侊細鐩爣璐х墿褰㈡�侊細"+param.getPayment$(param.getPayment())+";鏇存敼璐х墿淇℃伅锛�"+param.getLocDetls());
+ try {
+ if (param.getLocDetls().size()<=0){
+ throw new CoolException("璇锋彁鍙栨槑缁�");
+ }
+ ArrayList<String> locNos = new ArrayList<>();
+ String[][] locNos2 =new String[param.getLocDetls().size()][2];
+ int i=0;
+ for (EmptyPlateOutParam.LocDetl locDetl : param.getLocDetls()){
+ if (!locNos.contains(locDetl.getLoc_no())){
+ locNos.add(locDetl.getLoc_no());
+ locNos2[i][0]=locDetl.getLoc_no();
+ locNos2[i][1]=locDetl.getManu();
+ i++;
+ }
+ }
+ for (String[] locNo1 : locNos2) {
+ String locNo = locNo1[0];
+ if (locNo1[1].equals("骞冲簱")){
+ List<ManLocDetl> manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>().eq("loc_no", locNo));
+ for (ManLocDetl manLocDetl:manLocDetls){
+ manLocDetl.setPayment(param.getPayment());
+ try{
+ manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr",manLocDetl.getMatnr()));
+ }catch (Exception e){
+ throw new Exception("鏇存柊搴撳瓨鏄庣粏璐х墿褰㈡�佸瓧娈典俊鎭嚭閿欎簡");
+ }
+ }
+ }else if (locNo1[1].equals("绔嬪簱")){
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo));
+ for (LocDetl locDetl:locDetls){
+ locDetl.setPayment(param.getPayment());
+ try{
+ locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr",locDetl.getMatnr()));
+ }catch (Exception e){
+ throw new Exception("鏇存柊搴撳瓨鏄庣粏璐х墿褰㈡�佸瓧娈典俊鎭嚭閿欎簡");
+ }
+ }
+ }else {
+ throw new Exception("鏇存柊搴撲綅璐х墿褰㈡�佸瓧娈典俊鎭嚭閿欎簡");
+ }
+ }
+ }catch (Exception e){
+ throw new CoolException("璐х墿褰㈡�佽浆鎹㈠嚭閿欎簡锛�"+e);
+ }
+ }
+
}
--
Gitblit v1.9.1