From 11cd06db08d1ff21ee061300dc171006205b0d50 Mon Sep 17 00:00:00 2001
From: 王佳豪 <g675230687@126.com>
Date: 星期五, 07 五月 2021 07:56:58 +0800
Subject: [PATCH] 1.平仓入库允许分批入库
---
src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java | 187 ++++++++++++++++++++++++++++++++--------------
1 files changed, 129 insertions(+), 58 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 71a1b9c..3de54ca 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocNormalServiceImpl.java
@@ -1,14 +1,19 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
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.entity.WaitPakin;
+import com.zy.asrs.entity.WaitPakinLog;
import com.zy.asrs.mapper.LocNormalMapper;
import com.zy.asrs.mapper.OutStockMapper;
import com.zy.asrs.service.LocNormalService;
+import com.zy.asrs.service.WaitPakinLogService;
+import com.zy.asrs.service.WaitPakinService;
import com.zy.common.service.erp.ErpSqlServer;
import com.zy.common.service.erp.entity.CPICMO;
import com.zy.common.service.erp.entity.OutStockBillEntry;
@@ -29,6 +34,12 @@
ErpSqlServer erpSqlServer;
@Autowired
OutStockMapper outStockMapper;
+ @Autowired
+ LocNormalService locNormalService;
+ @Autowired
+ WaitPakinService waitPakinService;
+ @Autowired
+ WaitPakinLogService waitPakinLogService;
@Override
public List<LocNormal> getLocNormalData() {
@@ -55,43 +66,36 @@
// 骞充粨鍏ュ簱鍚庢洿鏂颁腑闂磋〃鏁版嵁锛孎flag_finish鏀逛负1锛岃〃绀哄钩浠撳叆搴撴垚鍔�
if (list.size() > 0) {
for (Integer i = 0; i < list.size(); i++) {
+ List<LocNormal> addList = new ArrayList<>();
+ List<LocNormal> updateList = new ArrayList<>();
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());
- }
- }
+ // 鍒ゆ柇鍘熷厛骞充粨鏄惁瀛樺湪鏈夎揣,濡傛灉鏈夎揣鏁伴噺杩涜绱姞
+ LocNormal oldLocList = locNormalService.selectOne(new EntityWrapper<LocNormal>().eq("supplier", list.get(i).getSupplier()).and().eq("state", "1").eq("warehouse", list.get(i).getWarehouse()));
+ if (!Cools.isEmpty(oldLocList)) {
+ // erp鏇存柊
+ updateCPICMO(list.get(i));
+ Double updateAnfme = new Double(list.get(i).getAnfme().doubleValue());
+ // 骞充粨鍏ュ簱锛堟洿鏂帮級閫昏緫
+ list.get(i).setAnfme(oldLocList.getAnfme().add(list.get(i).getAnfme()));
+ updateList.add(list.get(i));
+ if (baseMapper.pdaLocNormalUpdate(updateList) > 0) {
+ // cust_wait_pakin杞琧ust_wait_pakin_log锛屽苟鏇存柊鏁伴噺
+ custWaitPakinToLog(list.get(i), updateAnfme);
}
} else {
- throw new CoolException("ERP鏌ヨ涓嶅埌瀵瑰簲閫氱煡鍗�");
+ // erp鏇存柊
+ updateCPICMO(list.get(i));
+ // 骞充粨鍏ュ簱閫昏緫
+ addList.add(list.get(i));
+ if (baseMapper.pdaLocNormalIn(addList) > 0) {
+ // cust_wait_pakin杞琧ust_wait_pakin_log锛屽苟鏇存柊鏁伴噺
+ custWaitPakinToLog(list.get(i), list.get(i).getAnfme().doubleValue());
+ }
}
} else {
throw new CoolException("閫氱煡鍗曞彿涓嶅彲涓虹┖");
}
}
- // 骞充粨鍏ュ簱閫昏緫
- baseMapper.locNormalIn(list);
}
}
@@ -109,46 +113,113 @@
// 骞充粨鍏ュ簱鍚庢洿鏂颁腑闂磋〃鏁版嵁锛孎flag_finish鏀逛负1锛岃〃绀哄钩浠撳叆搴撴垚鍔�
if (list.size() > 0) {
for (Integer i = 0; i < list.size(); i++) {
+ List<LocNormal> addList = new ArrayList<>();
+ List<LocNormal> updateList = new ArrayList<>();
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());
- }
- }
+ // 鍒ゆ柇鍘熷厛骞充粨鏄惁瀛樺湪鏈夎揣,濡傛灉鏈夎揣鏁伴噺杩涜绱姞
+ LocNormal oldLocList = locNormalService.selectOne(new EntityWrapper<LocNormal>().eq("supplier", list.get(i).getSupplier()).and().eq("state", "1").and().eq("warehouse", list.get(i).getWarehouse()));
+ if (!Cools.isEmpty(oldLocList)) {
+ // erp鏇存柊
+ updateCPICMO(list.get(i));
+ Double updateAnfme = new Double(list.get(i).getAnfme().doubleValue());
+ // 骞充粨鍏ュ簱锛堟洿鏂伴�昏緫)
+ list.get(i).setAnfme(oldLocList.getAnfme().add(list.get(i).getAnfme()));
+ updateList.add(list.get(i));
+ if (baseMapper.pdaLocNormalUpdate(updateList) > 0) {
+ // cust_wait_pakin杞琧ust_wait_pakin_log锛屽苟鏇存柊鏁伴噺
+ custWaitPakinToLog(list.get(i), updateAnfme);
}
} else {
- throw new CoolException("ERP鏌ヨ涓嶅埌瀵瑰簲閫氱煡鍗�");
+ // erp鏇存柊
+ updateCPICMO(list.get(i));
+ // 骞充粨鍏ュ簱閫昏緫
+ addList.add(list.get(i));
+ if (baseMapper.pdaLocNormalIn(addList) > 0){
+ // cust_wait_pakin杞琧ust_wait_pakin_log锛屽苟鏇存柊鏁伴噺
+ custWaitPakinToLog(list.get(i), list.get(i).getAnfme().doubleValue());
+ }
}
} else {
throw new CoolException("閫氱煡鍗曞彿涓嶅彲涓虹┖");
}
}
- // 骞充粨鍏ュ簱閫昏緫
- baseMapper.pdaLocNormalIn(list);
+
}
}
+ /* cust_wait_pakin杞琧ust_wait_pakin_log锛屽苟鏇存柊鏁伴噺 */
+ private boolean custWaitPakinToLog(LocNormal list, Double updateAnfme) {
+ WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("supplier", list.getSupplier()).and().eq("matnr", list.getMatnr()));
+ WaitPakinLog waitPakinLog = new WaitPakinLog();
+ waitPakinLog.setAnfme(updateAnfme);
+ waitPakinLog.setMatnr(waitPakin.getMatnr());
+ waitPakinLog.setMaktx(waitPakin.getMaktx());
+ waitPakinLog.setLgnum(waitPakin.getLgnum());
+ waitPakinLog.setType(waitPakin.getType());
+ waitPakinLog.setMnemonic(waitPakin.getMnemonic());
+ waitPakinLog.setSupplier(waitPakin.getSupplier());
+ waitPakinLog.setWarehouse(waitPakin.getWarehouse());
+ waitPakinLog.setBrand(waitPakin.getBrand());
+ waitPakinLog.setAltme(waitPakin.getAltme());
+ waitPakinLog.setZpallet(waitPakin.getZpallet());
+ waitPakinLog.setBname(waitPakin.getBname());
+ waitPakinLog.setLocNo(waitPakin.getLocNo());
+ waitPakinLog.setStatus(waitPakin.getStatus());
+ waitPakinLog.setIoStatus(waitPakin.getIoStatus());
+ waitPakinLog.setMemo(waitPakin.getMemo());
+ waitPakinLog.setModiTime(waitPakin.getModiTime());
+ waitPakinLog.setModiUser(waitPakin.getModiUser());
+ waitPakinLog.setAppeTime(waitPakin.getAppeTime());
+ waitPakinLog.setAppeUser(waitPakin.getAppeUser());
+ // 杞叆搴撻�氱煡鍘嗗彶妗�
+ waitPakinLogService.insert(waitPakinLog);
+ // 淇敼鍏ュ簱鍚屽織妗g墿鏂欐暟閲�
+ Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>();
+ wrapper.eq("supplier", list.getSupplier())
+ .eq("matnr", list.getMatnr())
+ .isNull("zpallet");
+ WaitPakin pakin = new WaitPakin();
+ pakin.setAnfme(waitPakin.getAnfme() - updateAnfme);
+ waitPakinService.update(pakin, wrapper);
+ return true;
+ }
+
+ /* 鏇存柊erp鍏ュ簱琛� */
+ private boolean updateCPICMO(LocNormal list) {
+ String sqlSelect = "select * from CPICMO where 1=1 and Fnumber = ''{0}'' and FBillNo = ''{1}''";
+ sqlSelect = MessageFormat.format(sqlSelect, list.getMatnr(), list.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.getAnfme(), list.getMatnr(), list.getSupplier());
+ if (erpSqlServer.update(sql) > 0) {
+ sql = "select * from CPICMO where 1=1 and Fnumber = ''{0}'' and FBillNo = ''{1}''";
+ sql = MessageFormat.format(sql, list.getMatnr(), list.getSupplier());
+ List<CPICMO> select = erpSqlServer.select(sql, CPICMO.class);
+ CPICMO cpicmo = select.get(0);
+ boolean complete = false;
+ if (cpicmo.getFQty() > 0) {
+ if (Double.doubleToLongBits(cpicmo.getFAuxCommitQty()) == Double.doubleToLongBits(cpicmo.getFQty())) {
+ complete = true;
+ }
+ } else {
+ if (Double.doubleToLongBits(cpicmo.getFAuxCommitQty()) == Double.doubleToLongBits(cpicmo.getFAuxQty())) {
+ complete = true;
+ }
+ }
+ if (complete) {
+ if (!completeCPakIn(list.getSupplier(), list.getMatnr())) {
+ log.error("{}骞充粨鍏ュ簱鍗曟爣璁板畬鎴愬け璐�", list.getSupplier());
+ }
+ }
+ }
+ } else {
+ throw new CoolException("ERP鏌ヨ涓嶅埌瀵瑰簲閫氱煡鍗�");
+ }
+
+ return true;
+ }
+
@Override
public List<LocNormal> pdaLocNormalQuery(String matnr, String warehouse, String billNo) {
return baseMapper.pdaLocNormalQuery(matnr, warehouse, billNo);
--
Gitblit v1.9.1