From 206400da378486522574656be32fb06e67a41519 Mon Sep 17 00:00:00 2001
From: cuijian <cuijian@xalxzn.com>
Date: 星期二, 03 六月 2025 09:09:01 +0800
Subject: [PATCH] 入库生成唯一编码

---
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/InboundDetailVo.java             |   43 ++++++++++++++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java     |    9 +++
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundDetailServiceImpl.java |    2 
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java          |    3 +
 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java  |  115 +++++++++++++++++++++++++++++++++++++
 5 files changed, 169 insertions(+), 3 deletions(-)

diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java
index 6852a66..9b4a4bb 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java
@@ -234,4 +234,13 @@
 		 inboundOrderService.approvalProcess(inboundOrderFlowDto);
 		 return Result.OK("鎿嶄綔鎴愬姛");
 	 }
+
+
+	 @AutoLog(value = "鏂板鍏ュ簱")
+	 @ApiOperation(value = "鏂板鍏ュ簱鎿嶄綔", notes = "鏂板鍏ュ簱鎿嶄綔")
+	 @PostMapping("/addInStorage")
+	 public Result<?> addInStorage(@RequestBody JSONObject jSONObject) {
+		inboundOrderService.addInStorage(jSONObject);
+		return Result.OK("鎿嶄綔鎴愬姛");
+	 }
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/InboundDetailVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/InboundDetailVo.java
new file mode 100644
index 0000000..50c1208
--- /dev/null
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/InboundDetailVo.java
@@ -0,0 +1,43 @@
+package org.jeecg.modules.tms.entity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+public class InboundDetailVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**涓婚敭*/
+    @ApiModelProperty(value = "涓婚敭")
+    private String id;
+	/**宸ュ叿缂栫爜*/
+    @ApiModelProperty(value = "宸ュ叿缂栫爜")
+    private String toolCode;
+
+    @ApiModelProperty(value = "宸ュ叿id")
+    private String toolCodeId;
+
+    @ApiModelProperty(value = "鍨嬪彿/鍥惧彿")
+    private String toolModel;
+
+    @ApiModelProperty(value = "涓枃鍚嶇О")
+    private String chineseName;
+
+    @ApiModelProperty(value = "宸ュ叿绫诲瀷")
+    private String applicationType;
+
+    @ApiModelProperty(value = "鍏ュ簱鏁伴噺")
+    private BigDecimal inStorageQuantity;
+
+}
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java
index e8ac09e..f4f8474 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java
@@ -1,5 +1,6 @@
 package org.jeecg.modules.tms.service;
 
+import com.alibaba.fastjson.JSONObject;
 import org.jeecg.modules.tms.entity.InboundOrder;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.tms.entity.dto.InboundOrderFlowDto;
@@ -16,4 +17,6 @@
     boolean submit(String id);
 
     void approvalProcess(InboundOrderFlowDto inboundOrderFlowDto);
+
+    void addInStorage(JSONObject jSONObject);
 }
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundDetailServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundDetailServiceImpl.java
index fa7dd8c..9ec3ed9 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundDetailServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundDetailServiceImpl.java
@@ -44,7 +44,7 @@
             if (StringUtils.isNotBlank(classifyId)) {
                 queryWrapper.eq("t6.id", classifyId);
             }
-            queryWrapper.eq("t2.order_status", "3");
+            //queryWrapper.eq("t2.order_status", "3");
             // 鎺掑簭鍐欐硶
             List<OrderItem> orderItems = new ArrayList<>();
             orderItems.add(OrderItem.desc("t1.create_time"));
diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java
index 8eddc4a..061ee1c 100644
--- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java
+++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java
@@ -2,6 +2,8 @@
 
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.subject.Subject;
@@ -16,16 +18,18 @@
 import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
 import org.jeecg.modules.flowable.service.IFlowDefinitionService;
 import org.jeecg.modules.flowable.service.IFlowTaskService;
-import org.jeecg.modules.tms.entity.InboundOrder;
+import org.jeecg.modules.tms.entity.*;
 import org.jeecg.modules.tms.entity.dto.InboundOrderFlowDto;
+import org.jeecg.modules.tms.entity.vo.InboundDetailVo;
 import org.jeecg.modules.tms.mapper.InboundOrderMapper;
-import org.jeecg.modules.tms.service.IInboundOrderService;
+import org.jeecg.modules.tms.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.*;
 
 /**
@@ -48,6 +52,18 @@
     private TaskService taskService;
     @Autowired
     private IFlowMyBusinessService flowMyBusinessService;
+
+    @Autowired
+    private IBaseToolsService baseToolsService;
+
+    @Autowired
+    private IInStoreDetailService inStoreDetailService;
+
+    @Autowired
+    private IToolLedgerService toolLedgerService;
+
+    @Autowired
+    private IToolLedgerDetailService toolLedgerDetailService;
     @Override
     public boolean submit(String id) {
         InboundOrder inboundOrder = this.getById(id);
@@ -160,6 +176,101 @@
         }
     }
 
+    @Override
+    public void addInStorage(JSONObject jSONObject) {
+        String inStorehouseType = jSONObject.getString("inStorehouseType");
+        Date inboundTime = jSONObject.getDate("inboundTime");
+        //鑾峰彇鍏ュ簱鏄庣粏
+        JSONArray jsonArray = jSONObject.getJSONArray("detailData");
+        List<InboundDetailVo> inStoreDetailList =jsonArray.toJavaList(InboundDetailVo.class);
+        //鏂拌揣鍏ュ簱
+        if("1".equals(inStorehouseType)){
+            //寰幆鏂板鏄庣粏
+            for(InboundDetailVo inboundDetailVo : inStoreDetailList){
+                //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜
+                BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId());
+                //鎿嶄綔搴撳瓨,鏌ヨ鎬诲簱瀛樻槸鍚﹀瓨鍦ㄨ绫诲垁鍏�
+                ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId,inboundDetailVo.getToolCodeId()).one();
+                if(toolLedger == null){
+                    ToolLedger newToolLedger = new ToolLedger();
+                    newToolLedger.setToolId(inboundDetailVo.getToolCodeId());
+                    newToolLedger.setAvailableCount(inboundDetailVo.getInStorageQuantity());
+                    newToolLedger.setTotalCount(inboundDetailVo.getInStorageQuantity());
+                    newToolLedger.setLendCount(BigDecimal.ZERO);
+                    newToolLedger.setDetectionCount(BigDecimal.ZERO);
+                    newToolLedger.setLossCount(BigDecimal.ZERO);
+                    newToolLedger.setRepairCount(BigDecimal.ZERO);
+                    newToolLedger.setSharpeningCount(BigDecimal.ZERO);
+                    toolLedgerService.save(newToolLedger);
+                }else {
+                    toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity()));
+                    toolLedger.setTotalCount(toolLedger.getTotalCount().add(inboundDetailVo.getInStorageQuantity()));
+                    toolLedgerService.updateById(toolLedger);
+                }
+                //绠″埌鎶�
+                if("1".equals(baseTools.getAccuracyClass())){
+                    //寰幆鍏ュ簱鏁伴噺锛屼负瀹炵墿璧嬬爜
+                    for(int i=0;i<inboundDetailVo.getInStorageQuantity().intValue();i++){
+                        BaseTools newBaseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId());
+                        //鏌ヨ褰撳墠缂栫爜
+                        String currentCode = newBaseTools.getCurrentCode();
+                        //灏嗗瓧绗︿覆杞崲涓烘暣鏁�
+                        int num = Integer.parseInt(currentCode);
+                        //鍔�1鎿嶄綔
+                        num++;
+                        //杞崲鍥炲瓧绗︿覆骞朵繚鐣欏墠瀵奸浂
+                        String result = String.format("%0" + currentCode.length() + "d", num);
+                        //淇濆瓨鍏ュ簱娴佹按
+                        InStoreDetail inStoreDetail = new InStoreDetail();
+                        inStoreDetail.setInboundTime(inboundTime);
+                        inStoreDetail.setOperateType("2");
+                        inStoreDetail.setInNumber(BigDecimal.ONE);
+                        inStoreDetail.setInStorehouseType("1");
+                        inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+                        inStoreDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result);
+                        inStoreDetailService.save(inStoreDetail);
+                        //澧炲姞搴撳瓨鏄庣粏
+                        ToolLedgerDetail toolLedgerDetail = new ToolLedgerDetail();
+                        toolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId());
+                        toolLedgerDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result);
+                        toolLedgerDetail.setQuantity(BigDecimal.ONE);
+                        toolLedgerDetail.setStatus("1");
+                        toolLedgerDetailService.save(toolLedgerDetail);
+                        //鏇存柊褰撳墠缂栫爜
+                        newBaseTools.setCurrentCode(result);
+                        baseToolsService.updateById(newBaseTools);
+                    }
+                    //涓嶇鍒版妸
+                }else {
+                    //淇濆瓨鍏ュ簱娴佹按
+                    InStoreDetail inStoreDetail = new InStoreDetail();
+                    inStoreDetail.setInboundTime(inboundTime);
+                    inStoreDetail.setOperateType("2");
+                    inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
+                    inStoreDetail.setInStorehouseType("1");
+                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
+                    inStoreDetailService.save(inStoreDetail);
+                    //鏌ヨ搴撳瓨鏄庣粏涓槸鍚﹀瓨鍦ㄨ宸ュ叿
+                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
+                    if(toolLedgerDetail == null){
+                        ToolLedgerDetail newToolLedgerDetail = new ToolLedgerDetail();
+                        newToolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId());
+                        newToolLedgerDetail.setQuantity(inboundDetailVo.getInStorageQuantity());
+                        newToolLedgerDetail.setStatus("1");
+                        toolLedgerDetailService.save(newToolLedgerDetail);
+                    }else {
+                        toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
+                        toolLedgerDetailService.updateById(toolLedgerDetail);
+                    }
+                }
+            }
+        }else if("2".equals(inStorehouseType)){
+
+        }else if("5".equals(inStorehouseType)){
+
+        }
+    }
+
     private LoginUser getCurrentUser() {
         // 鑾峰彇褰撳墠璁よ瘉鐨勭櫥褰曠敤鎴蜂俊鎭�
         Subject currentUser = SecurityUtils.getSubject();

--
Gitblit v1.9.3