From fe7247af6af58cbc8ea2526e8aa4eedaf545de6c Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期五, 01 三月 2024 13:48:16 +0800 Subject: [PATCH] 增加单据页面单位 --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 151 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 135 insertions(+), 16 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 a230afe..2c01801 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -1,36 +1,35 @@ package com.zy.asrs.service.impl; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; -import com.core.common.*; +import com.core.common.BaseRes; +import com.core.common.Cools; +import com.core.common.DateUtils; +import com.core.common.R; import com.core.exception.CoolException; -import com.sun.org.apache.xpath.internal.operations.Or; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.*; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; -import com.zy.asrs.utils.MatUtils; import com.zy.asrs.utils.SaasUtils; -import com.zy.common.CodeRes; -import com.zy.common.constant.MesConstant; -import com.zy.common.entity.Parameter; +import com.zy.asrs.utils.Utils; import com.zy.common.model.DetlDto; -import com.zy.common.model.MesCombParam; import com.zy.common.service.CommonService; -import com.zy.common.utils.HttpHandler; import com.zy.common.utils.Synchro; import com.zy.system.entity.User; +import com.zy.system.service.SaasLogService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.Iterator; +import java.util.List; /** * 绉诲姩绔湇鍔℃牳蹇冪被 @@ -92,6 +91,18 @@ @Autowired private LocInPrintMatService locInPrintMatService; + + @Autowired + private LocOutPrintMatService locOutPrintMatService; + + @Autowired + private LocOwnerService locOwnerService; + @Autowired + private PlaService plaService; + @Autowired + private PlaQtyService plaQtyService; + @Autowired + private SaasLogService saasLogService; @@ -652,7 +663,8 @@ } orderService.checkComplete(order.getOrderNo()); - SaasUtils.insertLog(0,jsonLocNo,jsonOrderDetl.getMatnr(), jsonOrderDetl.getAnfme(),user.getUsername()); + SaasUtils.insertLog(0,jsonLocNo,jsonOrderDetl.getMatnr(), jsonOrderDetl.getAnfme(),user.getUsername(), + null,null,null,null,null); } @@ -793,7 +805,8 @@ return R.error("鏇存柊骞冲簱搴撳瓨鐘舵�佸け璐�"); } } - SaasUtils.insertLog(1,jsonLocNo,jsonOrderDetl.getMatnr(), jsonOrderDetl.getAnfme(),user.getUsername()); + SaasUtils.insertLog(1,jsonLocNo,jsonOrderDetl.getMatnr(), jsonOrderDetl.getAnfme(),user.getUsername(), + null,null,null,null,null); } return R.ok("涓嬫灦瀹屾垚"); @@ -963,7 +976,9 @@ public R manDetlOrigin(JSONObject json, User user) { Date now = new Date(); String jsonLocNo = (String) json.get("locNo"); //鑾峰彇搴撲綅鐮� - Long ownerId = (Long) json.get("owner"); //鑾峰彇鎷ユ湁鑰� + String ownerName = (String) json.get("owner"); //鑾峰彇鎷ユ湁鑰� + LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().eq("owner", ownerName)); + Long ownerId = locOwner.getId(); String jsonCode = (String) json.get("code"); //鑾峰彇鏉$爜 String jsonOrigin = (String) json.get("origin"); //鑾峰彇鏉ユ簮鍦� if (Cools.isEmpty(jsonLocNo)){ @@ -1066,7 +1081,9 @@ public R manDetlOrigInNo(JSONObject json, User user) { Date now = new Date(); String jsonLocNo = (String) json.get("locNo"); //鑾峰彇搴撲綅鐮� - Long ownerId = (Long) json.get("owner"); //鑾峰彇鎷ユ湁鑰� + String ownerName = (String) json.get("owner"); //鑾峰彇鎷ユ湁鑰� + LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().eq("owner", ownerName)); + Long ownerId = locOwner.getId(); if (Cools.isEmpty(jsonLocNo)){ return R.error("搴撲綅鍙峰弬鏁颁负绌猴紒"); }else if (Cools.isEmpty(ownerId)){ @@ -1141,10 +1158,21 @@ @Override public R manDetlOriginOut(JSONObject json, User user) { + Date now = new Date(); JSONArray combMats = json.getJSONArray("combMats"); + List<MatPrint> matPrintList=new ArrayList<>(); + List<Long> ids=new ArrayList<>(); for (int i = 0; i < combMats.size(); i++) { - MatPrint jsonOriginDetl = combMats.getObject(i, MatPrint.class); + MatPrint matPrintNow = combMats.getObject(i, MatPrint.class); + if (!ids.contains(matPrintNow.getIndex())){ + ids.add(matPrintNow.getIndex()); + matPrintList.add(matPrintNow); + } + } + for (MatPrint jsonOriginDetl:matPrintList) { Double parseLong = jsonOriginDetl.getAnfme(); + Long ownerId = Long.parseLong(jsonOriginDetl.getOwner()); + jsonOriginDetl.setOwnerId(ownerId); Wrapper<ManLocDetl> manLocDetlWrapper = new EntityWrapper<ManLocDetl>().eq("loc_no", jsonOriginDetl.getLocNo()) .eq("matnr", jsonOriginDetl.getMatnr()).eq("batch", jsonOriginDetl.getBatch()).eq("owner",jsonOriginDetl.getOwnerId()); ManLocDetl manLocDetl = manLocDetlService.selectOne(manLocDetlWrapper); @@ -1157,6 +1185,8 @@ if (manLocDetl.getAnfme() > parseLong){ BigDecimal num = anfme.subtract(outAnfme); manLocDetl.setAnfme(num.doubleValue()); + manLocDetl.setUpdateBy(user.getId()); + manLocDetl.setModiTime(now); if (!manLocDetlService.update(manLocDetl,manLocDetlWrapper)) { return R.error("鐗╂枡淇℃伅涓嬫灦澶辫触"); } @@ -1167,6 +1197,95 @@ } } } + for (MatPrint jsonOriginDetl:matPrintList) { + //澧炲姞鎵撳嵃妗f + LocOutPrintMat locOutPrintMat = new LocOutPrintMat(now, user.getId(), jsonOriginDetl.getMatnr(), jsonOriginDetl.getBatch(), jsonOriginDetl.getAnfme(), jsonOriginDetl.getLocNo(), jsonOriginDetl.getMaktx()); + locOutPrintMat.setOwnerId(jsonOriginDetl.getOwnerId()); + locOutPrintMatService.insert(locOutPrintMat); + } return R.ok(); } + + @Override + public void plaPakin(String locNo, String batch, Integer packageNo,User user) { + Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo); + if(Cools.isEmpty(pla)){ + throw new CoolException("绯荤粺鏈娴嬪埌璇ュ寘鐗╂枡淇℃伅锛岃閲嶆柊褰曞叆"); + } + + if(!pla.getStatus().equals(GlobleParameter.PLA_STATUS_0)){ + throw new CoolException("璇ョ墿鏂欑姸鎬佷笉涓哄緟鍏ュ簱锛屾棤娉曞叆搴�"); + } + + pla.setStatus(GlobleParameter.PLA_STATUS_1); + pla.setModifyTime(new Date()); + pla.setPakinTime(new Date()); + + Node node = nodeService.selectByUuid(locNo); + if(Cools.isEmpty(node)){ + throw new CoolException("搴撲綅淇℃伅涓嶆纭�"); + } + + pla.setStash(node.getParentName()); + pla.setLocNo(node.getUuid()); + + plaService.updateById(pla); + SaasUtils.insertLog(0,locNo,pla.getBrand(),pla.getWeightAnfme(),user.getUsername(), + null,pla.getBatch(),pla.getPackageNo(),pla.getOwner(),pla.getWorkshop()); + } + + @Override + @Transactional + public void plaPakout(String locNo, String batch, Integer packageNo, String orderNo, String orderDetlId, String wrkNo, Double anfme) { + Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo); + + ManPakOut manPakOut = manPakOutService.selectById(wrkNo); + + PlaQty plaQty = plaQtyService.selectById(orderDetlId); + + //鏇存柊鎷h揣鍗曚俊鎭� + if(manPakOut.getCount() + anfme > manPakOut.getAnfme()){ + throw new CoolException("鎷h揣閲嶉噺澶т簬鎷h揣鍗曟墍闇�鎷h揣閲嶉噺锛岃閲嶆柊鍒嗛厤鎷h揣閲嶉噺"); + } + if(manPakOut.getStatus() == 1){ + throw new CoolException("璇ユ嫞鏂欏崟宸插嚭搴�"); + } + manPakOut.setCount(manPakOut.getCount() + anfme); + if (manPakOut.getAnfme().equals(manPakOut.getCount())){ + manPakOut.setStatus(1); + manPakOutService.updateById(manPakOut); + } + + //鏇存柊plaQty淇℃伅 + plaQty.setPakoutTime(Utils.getDateStr(new Date())); + plaQtyService.updateById(plaQty); + + //鏇存柊pla鏄庣粏 + pla.setWeightAnfme(pla.getWeightAnfme() - anfme); + pla.setQtyAnfme(pla.getQtyAnfme() - anfme); + pla.setModifyTime(new Date()); + if(pla.getWeightAnfme() <= 0){ + pla.setStatus(GlobleParameter.PLA_STATUS_4); + }else { + pla.setStatus(GlobleParameter.PLA_STATUS_3); + } + plaService.updateById(pla); + SaasUtils.insertLog(1,locNo,pla.getBrand(),anfme,null,null, + pla.getBatch(),pla.getPackageNo(),pla.getOwner(),pla.getWorkshop()); + + //鏇存柊璁㈠崟鏄庣粏 + Order order = orderService.selectByNo(orderNo); + OrderDetl orderDetl = orderDetlService.selectById(plaQty.getOrderDetlId()); + + orderDetl.setQty(orderDetl.getQty() + anfme); + orderDetlService.updateById(orderDetl); + + orderService.checkComplete(orderNo); + + } + + @Override + public List<ManPakOut> getManPakoutByOrderNo(String orderNo) { + return manPakOutService.selectList(new EntityWrapper<ManPakOut>().eq("doc_num",orderNo).eq("status",0)); + } } -- Gitblit v1.9.1