From bf90cf8568301edb38920e8b0a0ce7e137a668ef Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期四, 21 八月 2025 09:51:55 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
---
north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 154 insertions(+), 19 deletions(-)
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
index c57f5f4..32149f0 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -3,7 +3,9 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.example.erp.dto.mm.FinishedOperateLogDTO;
import com.example.erp.entity.mm.FinishedGoodsInventory;
import com.example.erp.entity.mm.FinishedOperateLog;
@@ -28,12 +30,9 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
-import java.sql.SQLException;
-import java.sql.Wrapper;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
-import java.util.stream.Collectors;
@Service
@DS("mm")
@@ -424,7 +423,7 @@
//娣诲姞棰嗗嚭璁板綍
finishedOperateLogMapper.insertFinishedOperateLogTakeOut(orderDetail,userName,oddNumber,operateType,remarks);
//淇敼搴撳瓨鏁伴噺
- finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
+ finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()), orderDetail.getDeliveryDetail().getBoxNo());
//淇敼璁㈠崟鏄庣粏琛ㄦ暟閲�
finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
if (Objects.equals(oldordersum, oldordernumbersum)){
@@ -507,7 +506,7 @@
//娣诲姞棰嗗嚭璁板綍
finishedOperateLogMapper.insertFinishedOperateLogRework(orderDetail,userName,oddNumber,operateType,remarks);
//淇敼搴撳瓨鏁伴噺
- finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
+ finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()), orderDetail.getDeliveryDetail().getBoxNo());
//淇敼璁㈠崟鏄庣粏琛ㄦ暟閲�
finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
if (Objects.equals(oldordersum, oldordernumbersum)){
@@ -557,13 +556,13 @@
//瀹℃牳淇敼棰嗗嚭璁板綍
finishedOperateLogMapper.updateToExamine(finishedOperateLog,userName,"宸插鏍�");
//瀹℃牳淇敼搴撳瓨鏁伴噺
- finishedGoodsInventoryMapper.updateInventoryInventoryOut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()));
+ finishedGoodsInventoryMapper.updateInventoryInventoryOut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()),finishedOperateLog.getRemarks());
log.setFunction("updateFinishedGoodsInventoryToExamine瀹℃牳");
} else if (Objects.equals(type, "鍙嶅")) {
//瀹℃牳淇敼棰嗗嚭璁板綍
finishedOperateLogMapper.updateToExamine(finishedOperateLog,userName,"鏈鏍�");
//瀹℃牳淇敼搴撳瓨鏁伴噺
- finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()));
+ finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()), finishedOperateLog.getRemarks());
log.setFunction("updateFinishedGoodsInventoryToExamine鍙嶅");
}
@@ -800,6 +799,8 @@
alias="LC";
}else if(Objects.equals(type, "杩斿伐")){
alias="FG";
+ }else if(Objects.equals(type, "璋冩灦")){
+ alias="TJ";
}
//鏌ヨ褰撳ぉ鐨勬渶澶ф暟閲�
Integer maximum=finishedOperateLogMapper.getmaximum(type);
@@ -861,7 +862,10 @@
}
Map<String, Object> itemmap = new HashMap<>();
- itemmap.put("detail", finishedOperateLogMapper.getPrimaryListLimts(finishedOperateLog.getOrder().getCustomerName(),finishedOperateLog.getOrder().getProject(),finishedOperateLog.getRemarks()));
+ itemmap.put("detail", finishedOperateLogMapper.getPrimaryListLimts(
+ finishedOperateLog.getOrder().getCustomerName(),
+ finishedOperateLog.getOrder().getProject(),
+ finishedOperateLog.getRemarks()));
List<Map<String, Object>> detailList = finishedOperateLogMapper.getDetailList2(finishedOperateLog.getOrderId(),finishedOperateLog.getProcessId(),finishedOperateLog.getRemarks());
@@ -904,21 +908,33 @@
String oddNumber= orderNumberSetting("鍑哄簱");
OrderDetail orderDetailNew= finishedGoodsInventoryMapper.findOrderDetailNumberd(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
//娣诲姞鍑哄叆搴撹褰�
- finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber);
- Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
+ finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber,orderDetail.getDeliveryDetail().getBoxNo());
+ //鍒ゆ柇鍙戣揣鍗曠殑搴撳瓨鏄惁瀛樺湪
+ Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getBoxNo());
+ //鑾峰彇璁㈠崟鎬绘暟閲�
Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId());
+ //鑾峰彇搴撳瓨鎬绘暟閲�
Integer orderNumberdsum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getDeliveryDetail().getOrderId());
+ //鑾峰彇鍙戣揣鎬绘暟閲�
Integer orderNumberdDeliverysum = finishedGoodsInventoryMapper.findOrderDeliveryQuantitySum(orderDetail.getDeliveryDetail().getOrderId());
+ //鑾峰彇姝ゅ彂璐у崟 鍙戣揣鎬绘暟閲�
Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId());
+ //鑾峰彇宸茬粡鍑哄簱鐨勬暟閲�
Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0);
if(deliverydetailsum==null){
deliverydetailsum=0;
}
- DeliveryDetail deliveryDetail=finishedGoodsInventoryMapper.findDeliverydetail(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId());
+ DeliveryDetail deliveryDetail=finishedGoodsInventoryMapper.
+ findDeliverydetail(orderDetail.getDeliveryDetail().getOrderId(),
+ orderDetail.getDeliveryDetail().getOrderNumber(),
+ orderDetail.getDeliveryDetail().getDeliveryId(),
+ orderDetail.getDeliveryDetail().getBoxNo()
+
+ );
/*System.out.println("璁㈠崟鎬绘暟:" + ordersum + "璁㈠崟搴撳瓨鏁帮細" + orderNumberdsum + "鍑嗗鍑哄簱鏁伴噺" +
orderDetail.getWarehouseNum()+ "鍙戣揣鏁伴噺" + orderDetail.getDeliveryDetail().getQuantity()+ "鍙戣揣鎬绘暟" +
deliverysum+ "宸插彂鏁伴噺" + deliverydetailsum);*/
@@ -928,9 +944,9 @@
if(deliveryDetail==null){
if(orderDetailNew.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){
//淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
- finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
+ finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity(),orderDetail.getDeliveryDetail().getBoxNo());
//淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
- finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0);
+ finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0, orderDetail.getDeliveryDetail().getBoxNo());
//淇敼鍙戣揣琛ㄧ姸鎬�
finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1);
//淇敼璁㈠崟鏄庣粏琛ㄥ彂璐ф暟閲�
@@ -974,7 +990,19 @@
if(Objects.equals(finishedOperateLog.getOperateType(), "鍏ュ簱")){
Delivery delivery = finishedGoodsInventoryMapper.findOrderDelivery(finishedOperateLog.getOrderId());
- if(delivery==null){
+ FinishedGoodsInventory existFinishedGoodsInventory = finishedGoodsInventoryMapper.
+ selectOne(new LambdaQueryWrapper<FinishedGoodsInventory>()
+ .eq(FinishedGoodsInventory::getOrderId, finishedOperateLog.getOrderId())
+ .eq(FinishedGoodsInventory::getOrderNumber, finishedOperateLog.getOperationNumber())
+ .eq(FinishedGoodsInventory::getBoxNo, finishedOperateLog.getRemarks())
+ );
+ if(delivery!=null){
+ return "false1";
+ }
+ if(existFinishedGoodsInventory.getQuantityAvailable()<finishedOperateLog.getQuantity()){
+ return "false2";
+ }
+
//淇敼璁板綍琛�
finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�");
//淇敼搴撳瓨琛ㄥ叆搴撴暟閲�
@@ -996,9 +1024,7 @@
finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),0);
}
log.setFunction("cancelFinishedGoodsInventoryStorage鍏ュ簱");
- }else{
- return "false1";
- }
+
@@ -1006,9 +1032,19 @@
//淇敼璁板綍琛�
finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�");
//淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
- finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
+ finishedGoodsInventoryMapper.updateInventoryInventoryInt(
+ finishedOperateLog.getOrderId(),
+ finishedOperateLog.getOperationNumber(),
+ finishedOperateLog.getQuantity(),
+ finishedOperateLog.getRemarks()
+ );
//淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
- finishedGoodsInventoryMapper.updateDeliveryDetailState(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getOperationOrderNumber(),1);
+ finishedGoodsInventoryMapper.updateDeliveryDetailState(
+ finishedOperateLog.getOrderId(),
+ finishedOperateLog.getOperationNumber(),
+ finishedOperateLog.getOperationOrderNumber(),
+ 1,
+ finishedOperateLog.getRemarks());
//淇敼鍙戣揣琛ㄧ姸鎬�
finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),1);
//淇敼璁㈠崟鏄庣粏琛ㄥ簱鍐呮暟閲�
@@ -1032,4 +1068,103 @@
}
return "true";
}
+
+ public Map<String,Object> changeRack(FinishedGoodsInventory finishedGoodsInventory, String user) {
+ Long id = finishedGoodsInventory.getId();
+ Map<String,Object> map = new HashMap<>();
+ FinishedGoodsInventory oldFinishedGoodsInventory = finishedGoodsInventoryMapper.selectById(finishedGoodsInventory.getId());
+
+ //鏌ヨ姝ゆ搴忓彿绠卞彿鐨勫簱瀛樻槸鍚﹀瓨鍦�
+ FinishedGoodsInventory existFinishedGoodsInventory = finishedGoodsInventoryMapper
+ .selectOne(new LambdaQueryWrapper<FinishedGoodsInventory>()
+ .eq(FinishedGoodsInventory::getOrderId, finishedGoodsInventory.getOrderId())
+ .eq(FinishedGoodsInventory::getOrderNumber, finishedGoodsInventory.getOrderNumber())
+ .eq(FinishedGoodsInventory::getBoxNo, finishedGoodsInventory.getBoxNo())
+ .last("limit 1")
+ );
+ String operationOrderNumber = orderNumberSetting("璋冩灦");
+ FinishedOperateLog finishedOperateLog = new FinishedOperateLog();
+ finishedOperateLog.setOperationOrderNumber(operationOrderNumber);
+ finishedOperateLog.setOrderId(oldFinishedGoodsInventory.getOrderId());
+ finishedOperateLog.setOperationNumber(oldFinishedGoodsInventory.getOrderNumber());
+ finishedOperateLog.setProcessId(oldFinishedGoodsInventory.getProcessId());
+ finishedOperateLog.setOperateType("璋冩灦");
+ finishedOperateLog.setOperator(user);
+ //褰撴垚鍝佺鍙蜂笉瀛樺湪锛屽垯鏂板
+ if(existFinishedGoodsInventory==null){
+ //褰撹浆绉绘暟閲忓ぇ浜庡疄闄呭簱瀛樼鍙锋椂锛屽垯涓嶈兘杞Щ
+ if(oldFinishedGoodsInventory.getQuantityAvailable()<finishedGoodsInventory.getQuantityAvailable()){
+ map.put("code",0);
+ return map;
+ }
+ //鍘熷簱瀛� 鏁伴噺闈㈢Н鍑忓皯
+ oldFinishedGoodsInventory.setInventory(oldFinishedGoodsInventory.getInventory()-finishedGoodsInventory.getQuantityAvailable());
+ oldFinishedGoodsInventory.setQuantityAvailable(oldFinishedGoodsInventory.getQuantityAvailable()-finishedGoodsInventory.getQuantityAvailable());
+ oldFinishedGoodsInventory.setArea(oldFinishedGoodsInventory.getInventory()*oldFinishedGoodsInventory.getActualSignalArea());
+
+ //鏂板簱瀛樻暟鎹鍔�
+ finishedGoodsInventory.setId(null);
+ finishedGoodsInventory.setInventory(finishedGoodsInventory.getQuantityAvailable());
+ finishedGoodsInventory.setArea(finishedGoodsInventory.getQuantityAvailable()*finishedGoodsInventory.getActualSignalArea());
+
+ finishedGoodsInventoryMapper.
+ update(oldFinishedGoodsInventory,
+ new LambdaUpdateWrapper<FinishedGoodsInventory>()
+ .eq(FinishedGoodsInventory::getId,id)
+ ) ;
+ finishedGoodsInventoryMapper.insert(finishedGoodsInventory);
+
+
+ //寰�鎿嶄綔鏃ュ織琛ㄦ坊鍔犳暟鎹�
+ finishedOperateLog.setQuantity(finishedGoodsInventory.getQuantityAvailable());
+ finishedOperateLog.setRemarks(oldFinishedGoodsInventory.getBoxNo()+"->"+finishedGoodsInventory.getBoxNo());
+ finishedOperateLogMapper.insert(finishedOperateLog);
+
+ map.put("code",1);
+ return map;//搴撳瓨杞Щ鎴愬姛锛屾柊澧炵鍙�
+
+ }else{
+ //褰搃d涓嶅彉鏃讹紝淇敼澶囨敞
+ if(Objects.equals(id, existFinishedGoodsInventory.getId())){
+ finishedGoodsInventoryMapper.
+ update(null,new LambdaUpdateWrapper<FinishedGoodsInventory>()
+ .eq(FinishedGoodsInventory::getId,id)
+ .set(FinishedGoodsInventory::getRemark,finishedGoodsInventory.getRemark()));
+ map.put("code",2);
+ return map;//搴撳瓨澶囨敞淇敼鎴愬姛
+ }else{
+ //鍘熷簱瀛� 鏁伴噺闈㈢Н鍑忓皯
+ oldFinishedGoodsInventory.setInventory(oldFinishedGoodsInventory.getInventory()-finishedGoodsInventory.getQuantityAvailable());
+ oldFinishedGoodsInventory.setQuantityAvailable(oldFinishedGoodsInventory.getQuantityAvailable()-finishedGoodsInventory.getQuantityAvailable());
+ oldFinishedGoodsInventory.setArea(oldFinishedGoodsInventory.getInventory()*oldFinishedGoodsInventory.getActualSignalArea());
+
+ existFinishedGoodsInventory.setInventory(existFinishedGoodsInventory.getInventory()+finishedGoodsInventory.getQuantityAvailable());
+ existFinishedGoodsInventory.setQuantityAvailable(existFinishedGoodsInventory.getQuantityAvailable()+finishedGoodsInventory.getQuantityAvailable());
+ existFinishedGoodsInventory.setArea(existFinishedGoodsInventory.getInventory()*existFinishedGoodsInventory.getActualSignalArea());
+
+ finishedGoodsInventoryMapper.
+ update(oldFinishedGoodsInventory,
+ new LambdaUpdateWrapper<FinishedGoodsInventory>()
+ .eq(FinishedGoodsInventory::getId,id)
+ ) ;
+ finishedGoodsInventoryMapper.
+ update(existFinishedGoodsInventory,
+ new LambdaUpdateWrapper<FinishedGoodsInventory>()
+ .eq(FinishedGoodsInventory::getId,existFinishedGoodsInventory.getId())
+ ) ;
+
+ //寰�鎿嶄綔鏃ュ織琛ㄦ坊鍔犳暟鎹�
+ finishedOperateLog.setQuantity(finishedGoodsInventory.getQuantityAvailable());
+ finishedOperateLog.setRemarks(oldFinishedGoodsInventory.getBoxNo()+"->"+existFinishedGoodsInventory.getBoxNo());
+ finishedOperateLogMapper.insert(finishedOperateLog);
+
+ map.put("code",3);
+ List<String> list = new ArrayList<>();
+ list.add(oldFinishedGoodsInventory.getBoxNo());
+ list.add(existFinishedGoodsInventory.getBoxNo());
+ map.put("msg",list);
+ return map;//搴撳瓨杞Щ鎴愬姛锛屼慨鏀圭鍙�
+ }
+ }
+ }
}
--
Gitblit v1.8.0