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