From e72d75462010729913d1127bd3c1418726b41992 Mon Sep 17 00:00:00 2001
From: 王佳豪 <g675230687@126.com>
Date: 星期三, 05 五月 2021 14:16:38 +0800
Subject: [PATCH] 1.平仓入库erp单号对应功能实现
---
src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java | 124 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 121 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java
index a9c011f..da76c25 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java
@@ -3,21 +3,32 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
import com.zy.asrs.entity.LocNormal;
import com.zy.asrs.mapper.LocNormalMapper;
+import com.zy.asrs.mapper.OutStockMapper;
import com.zy.asrs.service.LocNormalService;
import com.zy.common.service.erp.ErpSqlServer;
+import com.zy.common.service.erp.entity.CPICMO;
+import com.zy.common.service.erp.entity.OutStockBillEntry;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
+import java.text.MessageFormat;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+@Slf4j
@Service("locNormalService")
public class LocNormalServiceImpl extends ServiceImpl<LocNormalMapper, LocNormal> implements LocNormalService {
@Autowired
ErpSqlServer erpSqlServer;
+ @Autowired
+ OutStockMapper outStockMapper;
@Override
public List<LocNormal> getLocNormalData() {
@@ -44,15 +55,87 @@
// 骞充粨鍏ュ簱鍚庢洿鏂颁腑闂磋〃鏁版嵁锛孎flag_finish鏀逛负1锛岃〃绀哄钩浠撳叆搴撴垚鍔�
if (list.size() > 0) {
for (Integer i = 0; i < list.size(); i++) {
- String sql = "update CPICMO set Fflag_finish = 1 where FBillNo = '" + list.get(i).getSupplier() + "' and Fnumber = '" + list.get(i).getMatnr() +"'";
- erpSqlServer.update(sql);
+ if (!Cools.isEmpty(list.get(i).getSupplier())) { // 瀛樺湪鍏ュ簱鍗曞彿鐨勬墠杩涜erp鏇存柊
+ String sqlSelect = "select * from CPICMO where 1=1 and Fnumber = ''{0}'' and FBillNo = ''{1}''";
+ sqlSelect = MessageFormat.format(sqlSelect, list.get(i).getMatnr(), list.get(i).getSupplier());
+ List<CPICMO> CPICMOList = erpSqlServer.select(sqlSelect,CPICMO.class);
+ if (CPICMOList.size() > 0) { // 璇存槑erp鏈夊搴旂殑鍏ュ簱鍗�
+ String sql = "update CPICMO set FAuxCommitQty = (FAuxCommitQty + {0,number,#}) where 1=1 and Fnumber = ''{1}'' and FBillNo = ''{2}''";
+ sql = MessageFormat.format(sql, list.get(i).getAnfme(), list.get(i).getMatnr(), list.get(i).getSupplier());
+ if (erpSqlServer.update(sql) > 0) {
+ sql = "select * from CPICMO where 1=1 and Fnumber = ''{0}'' and FBillNo = ''{1}''";
+ sql = MessageFormat.format(sql, list.get(i).getMatnr(), list.get(i).getSupplier());
+ List<CPICMO> select = erpSqlServer.select(sql, CPICMO.class);
+ CPICMO cpicmo = select.get(0);
+ boolean complete = false;
+ if (cpicmo.getFQty() > 0) {
+ if (cpicmo.getFAuxCommitQty() == cpicmo.getFQty()) {
+ complete = true;
+ }
+ } else {
+ if (cpicmo.getFAuxCommitQty() == cpicmo.getFAuxQty()) {
+ complete = true;
+ }
+ }
+ if (complete) {
+ if (!completeCPakIn(list.get(i).getSupplier(), list.get(i).getMatnr())) {
+ log.error("{}骞充粨鍏ュ簱鍗曟爣璁板畬鎴愬け璐�", list.get(i).getSupplier());
+ }
+ }
+ }
+ } else {
+ throw new CoolException("ERP鏌ヨ涓嶅埌瀵瑰簲閫氱煡鍗�");
+ }
+ } else {
+ throw new CoolException("閫氱煡鍗曞彿涓嶅彲涓虹┖");
+ }
}
+ // 骞充粨鍏ュ簱閫昏緫
+ baseMapper.locNormalIn(list);
}
- baseMapper.locNormalIn(list);
+ }
+
+ /**
+ * 鎴愬搧鍏ュ簱鍗曟爣璁板畬鎴�
+ */
+ private boolean completeCPakIn(String FBillNo, String Fnumber){
+ String sql = "update CPICMO set Fflag_finish = 1 where FBillNo = ''{0}'' and Fnumber = ''{1}''";
+ sql = MessageFormat.format(sql, FBillNo, Fnumber);
+ return erpSqlServer.update(sql) > 0;
}
@Override
public void pdaLocNormalIn(List<LocNormal> list) {
+ // 骞充粨鍏ュ簱鍚庢洿鏂颁腑闂磋〃鏁版嵁锛孎flag_finish鏀逛负1锛岃〃绀哄钩浠撳叆搴撴垚鍔�
+ if (list.size() > 0) {
+ for (Integer i = 0; i < list.size(); i++) {
+ if (!Cools.isEmpty(list.get(i).getSupplier())) { // 瀛樺湪鍏ュ簱鍗曞彿鐨勬墠杩涜erp鏇存柊
+ String sql = "update CPICMO set FAuxCommitQty = (FAuxCommitQty + {0,number,#}) where 1=1 and Fnumber = ''{1}'' and FBillNo = ''{2}''";
+ sql = MessageFormat.format(sql, list.get(i).getAnfme(), list.get(i).getMatnr(), list.get(i).getSupplier());
+ if (erpSqlServer.update(sql) > 0) {
+ sql = "select * from CPICMO where 1=1 and Fnumber = ''{0}'' and FBillNo = ''{1}''";
+ sql = MessageFormat.format(sql, list.get(i).getMatnr(), list.get(i).getSupplier());
+ List<CPICMO> select = erpSqlServer.select(sql, CPICMO.class);
+ CPICMO cpicmo = select.get(0);
+ boolean complete = false;
+ if (cpicmo.getFQty() > 0) {
+ if (cpicmo.getFAuxCommitQty() == cpicmo.getFQty()) {
+ complete = true;
+ }
+ } else {
+ if (cpicmo.getFAuxCommitQty() == cpicmo.getFAuxQty()) {
+ complete = true;
+ }
+ }
+ if (complete) {
+ if (!completeCPakIn(list.get(i).getSupplier(), list.get(i).getMatnr())) {
+ log.error("{}骞充粨鍏ュ簱鍗曟爣璁板畬鎴愬け璐�", list.get(i).getSupplier());
+ }
+ }
+ }
+ }
+ }
+ }
baseMapper.pdaLocNormalIn(list);
}
@@ -83,4 +166,39 @@
public void pdaLocNormalMove(List<LocNormal> list) {
baseMapper.pdaLocNormalMove(list);
}
+
+ @Override
+ public List<LocNormal> queryLocNorlMatnr(String fbillNo) {
+ List<OutStockBillEntry> matList = outStockMapper.queryMatnrWithBillNo(fbillNo);
+ List<LocNormal> locNormal = new ArrayList<>();
+ List<LocNormal> locNormalResult = new ArrayList<>();
+ for (Integer i = 0; i < matList.size(); i++) {
+ locNormal = baseMapper.queryLocNorlMatnr(matList.get(i).getFnumber()) ;
+ if (locNormal.size() > 0) {
+ for (LocNormal e:locNormal) {
+ LocNormal obj = new LocNormal();
+ obj.setMatnr(e.getMatnr());
+ obj.setMaktx(e.getMaktx());
+ obj.setLgnum(e.getLgnum());
+ obj.setType(e.getType());
+ obj.setMnemonic(e.getMnemonic());
+ obj.setSupplier(e.getSupplier());
+ obj.setWarehouse(e.getWarehouse());
+ obj.setBrand(e.getBrand());
+ obj.setAnfme(e.getAnfme());
+ obj.setBname(e.getBname());
+ obj.setMemo(e.getMemo());
+ obj.setModiUser(e.getModiUser());
+ obj.setModiTime(e.getModiTime());
+ obj.setAppeUser(e.getAppeUser());
+ obj.setAppeTime(e.getAppeTime());
+ obj.setState(e.getState());
+ obj.setWarehouseName(e.getWarehouseName());
+ obj.setId(e.getId());
+ locNormalResult.add(obj);
+ }
+ }
+ }
+ return locNormalResult;
+ }
}
--
Gitblit v1.9.1