From 15c8f00ab3a1e3d2d96b56bae0ec11efedd60231 Mon Sep 17 00:00:00 2001 From: 18516761980 <4761516tqsxp> Date: 星期三, 29 九月 2021 11:14:15 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java | 89 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 89 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java index 8872e37..2b6f447 100644 --- a/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OutStockServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.core.common.Cools; +import com.core.common.R; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.StockOutParam; @@ -16,13 +17,17 @@ import com.zy.common.service.CommonService; import com.zy.common.service.erp.entity.OutStockBillEntry; import io.swagger.models.auth.In; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.text.MessageFormat; import java.util.*; +@Slf4j @Service("outStockService") public class OutStockServiceImpl extends ServiceImpl<OutStockMapper, OutStockBillEntry> implements OutStockService{ // 宸ヤ綔鍙风敓鎴愯鍒欓粯璁ょ被鍨� @@ -43,6 +48,10 @@ private WrkDetlService wrkDetlService; @Autowired private LocNormalService locNormalService; + @Autowired + private JdbcTemplate jdbcTemplate; + @Autowired + private OutStockService outStockService; @Override public Page<OutStockBillEntry> queryOutStock(Page<OutStockBillEntry> page) { @@ -82,9 +91,72 @@ return baseMapper.queryOutStockFInterID(supplier); } + /* 鎴愬搧澧為噺鍑哄簱 */ + @Override + public boolean incrementCPakOut(Integer FInterID, String Fnumber, Double increment, String FBillNo) { + String sql = "update OutStockbillEntry set FAuxCommitQty = (FAuxCommitQty + {0,number,#}) where 1=1 and Fnumber = ''{1}'' and FInterID = {2,number,#}"; + sql = MessageFormat.format(sql, increment, Fnumber, FInterID); + if (jdbcTemplate.update(sql) > 0) { + sql = "select * from OutStockbillEntry where 1=1 and Fnumber = ''{0}'' and FInterID = {1,number,#}"; + sql = MessageFormat.format(sql, Fnumber, FInterID); + List<OutStockBillEntry> select = this.selectList(new EntityWrapper<OutStockBillEntry>().eq("Fnumber", Fnumber).eq("FInterID", FInterID)); + OutStockBillEntry outStockBillEntry = select.get(0); + boolean complete = false; + if (outStockBillEntry.getFQty().compareTo(BigDecimal.ZERO) == 1) { + if (outStockBillEntry.getFAuxCommitQty().compareTo(outStockBillEntry.getFQty()) > -1) { + complete = true; + } + } else { + if (outStockBillEntry.getFAuxCommitQty().compareTo(outStockBillEntry.getFAuxQty()) > -1) { + complete = true; + } + } + if (complete) { + if (!completeCPakOut(FBillNo)) { + log.error("{}鍑哄簱鍗曟爣璁板畬鎴愬け璐�", FBillNo); + } + } + return true; + } else { + return false; + } + } + + /* 鎴愬搧鍑哄簱鍗曟爣璁板畬鎴� */ + private boolean completeCPakOut(String FBillNo){ + String sql = "update OutStockbill set Fflag_finish = 1 where FBillNo = ''{0}''"; + sql = MessageFormat.format(sql, FBillNo); + return jdbcTemplate.update(sql) > 0; + } + @Override @Transactional public void startupFullTakeStore(StockOutParam param, Long userId) { + //鍒ゆ柇鍑哄簱鐔熺粌鏄惁澶т簬搴撳瓨鏁伴噺 + for (StockOutParam.LocDetl detl : param.getLocDetls()) { + LocDetl locDetl = locDetlService.selectById(detl.getLocNo()); + if(locDetl != null){ + if(detl.getCount() > locDetl.getAnfme()){ + throw new CoolException("鍑哄簱鏁伴噺瓒呰繃浜嗗簱瀛樻暟閲廩locNo=" + detl.getLocNo() + "]"); + } + } + } + //鍒ゆ柇鍑哄簱鏁伴噺鏄惁澶т簬閫氱煡妗f暟閲� + Integer FInterI = outStockService.queryOutStockFInterID(param.getFbillNo()); // 鑾峰彇鍑哄簱鍗曚富琛ㄤ富閿� + List<OutStockBillEntry> entryList = outStockService.selectList(new EntityWrapper<OutStockBillEntry>().eq("FInterID",FInterI)); + for(OutStockBillEntry one : entryList){ + String Fnumber = one.getFnumber(); + BigDecimal qty = new BigDecimal(0); + for (StockOutParam.LocDetl detl : param.getLocDetls()) { + if(detl.getMatnr().equals(Fnumber)){ + qty = qty.add(BigDecimal.valueOf(detl.getCount())); + } + } + if(qty.compareTo(one.getFQty()) == 1){ + throw new CoolException("鍑哄簱鏁伴噺澶т簬閫氱煡妗f暟閲廩FInterID=" + FInterI + ",Fnumber=" + Fnumber + "]"); + } + } + // 鐩爣绔欑偣鐘舵�佹娴� BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); // 鑾峰彇搴撲綅鏄庣粏 @@ -155,6 +227,7 @@ wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯 wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔� wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣� + wrkMast.setBarcode(locMast.getBarcode()); // 鏉$爜 wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 wrkMast.setPicking("N"); // 鎷f枡 wrkMast.setExitMk("N"); // 閫�鍑� @@ -169,6 +242,13 @@ } // 鐢熸垚宸ヤ綔妗f槑缁� for (LocDetlDto detlDto : dto.getLocDetlDtos()) { + // 濡傛灉涓烘崱鏂欏嚭搴撻渶瑕佸垽鏂墭鐩樼爜鏄惁涓虹┖ + if (ioType == 103) { + String zpallet = detlDto.getLocDetl().getZpallet(); + if (Cools.isEmpty(zpallet)) { + throw new CoolException("鎷f枡鍑哄簱蹇呴』鍚湁鎵樼洏鐮�"); + } + } // 鍑哄簱鏃讹紝鏁伴噺涓�0鐨勭洿鎺ュ拷鐣� if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;} WrkDetl wrkDetl = new WrkDetl(); @@ -186,6 +266,15 @@ if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } + + //鏇存柊鍑哄簱閫氱煡妗amount瀛楁锛岄槻姝㈤噸澶嶄笅鍙戜换鍔� 2021-09-28 TQS ADD + Integer FInterI = outStockService.queryOutStockFInterID(fbillNo); // 鑾峰彇鍑哄簱鍗曚富琛ㄤ富閿� + Wrapper wrapper1 = new EntityWrapper<OutStockBillEntry>().eq("FInterID",FInterI).eq("Fnumber",detlDto.getLocDetl().getMatnr()); + OutStockBillEntry outStockBillEntry = outStockService.selectOne(wrapper1); + outStockBillEntry.setFAmount(outStockBillEntry.getFAmount().add(BigDecimal.valueOf(anfme))); //鍊熺敤amount瀛楁锛屾帶鍒朵笅鍙戝嚭搴撲换鍔℃暟閲� + if(!outStockService.update(outStockBillEntry,wrapper1)){ + throw new CoolException("鏇存柊鍑哄簱閫氱煡妗f槑缁咶Amount澶辫触[FInterID="+FInterI+",Fnumber="+detlDto.getLocDetl().getMatnr()+"]"); + } } // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓� locMast = locMastService.selectById(dto.getLocNo()); -- Gitblit v1.9.1