cuilei
2025-06-11 cd00884c3db8fa6808b3b5949ab1a2b1459d6bdc
lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java
@@ -5,6 +5,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;
import org.flowable.engine.TaskService;
@@ -64,9 +65,46 @@
    @Autowired
    private IToolLedgerDetailService toolLedgerDetailService;
    @Autowired
    private IInboundDetailService inboundDetailService;
    @Autowired
    private IGoodsShelvesService goodsShelvesService;
    @Override
    public boolean submit(String id) {
        InboundOrder inboundOrder = this.getById(id);
        //借用和刃磨入库时校验库存
        List<InboundDetail> inboundDetailList = inboundDetailService.lambdaQuery().eq(InboundDetail::getInStorehouseId,id).list();
        if("2".equals(inboundOrder.getInStorehouseType())){
            for(InboundDetail inboundDetail : inboundDetailList){
                if(StringUtils.isNotBlank(inboundDetail.getToolId())){
                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolId,inboundDetail.getToolId()).one();
                    if(toolLedgerDetail.getQuantity().compareTo(inboundDetail.getInStorageQuantity()) == 0){
                        throw new JeecgBootException("编码为【" + toolLedgerDetail.getToolId() + "】的工具未借出,不需要归还入库!");
                    }
                }else {
                    ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId,inboundDetail.getToolCode()).one();
                    if(toolLedger.getLendCount().compareTo(inboundDetail.getInStorageQuantity()) < 0){
                        throw new JeecgBootException("编码为【" + toolLedger.getToolId() + "】的工具未借出,不需要归还入库!");
                    }
                }
            }
        }else if("5".equals(inboundOrder.getInStorehouseType())){
            for(InboundDetail inboundDetail : inboundDetailList){
                if(StringUtils.isNotBlank(inboundDetail.getToolId())){
                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolId,inboundDetail.getToolId()).one();
                    if(toolLedgerDetail.getQuantity().compareTo(inboundDetail.getInStorageQuantity()) == 0){
                        throw new JeecgBootException("编码为【" + toolLedgerDetail.getToolId() + "】的工具未刃磨,不需要刃磨入库!");
                    }
                }else {
                    ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId,inboundDetail.getToolCode()).one();
                    if(toolLedger.getSharpeningCount().compareTo(inboundDetail.getInStorageQuantity()) < 0){
                        throw new JeecgBootException("编码为【" + toolLedger.getToolId() + "】的工具未刃磨,不需要刃磨入库!");
                    }
                }
            }
        }
        //发起审批流程
        this.triggerProcess(inboundOrder);
        //更新入库单审批状态为已提交
@@ -91,7 +129,7 @@
        variables.put("comment", "新增入库申请单默认启动流程");
        variables.put("proofreading", true);
        List<String> usernames = new ArrayList<>();
        usernames.add(inboundOrder.getHandler());
        usernames.add(inboundOrder.getReviewer());
        variables.put("NextAssignee", usernames);
        Result result = flowDefinitionService.startProcessInstanceByKey("tool_in_storage", variables);
        return result.isSuccess();
@@ -165,9 +203,10 @@
        //根据任务完成结果更新申请单状态
        if (result.isSuccess()) {
            inboundOrder.setOrderStatus(inboundOrderFlowDto.getStatus());
            if ("3".equals(inboundOrderFlowDto.getStatus())) {
                inboundOrder.setInStatus("1");
                inboundOrder.setOrderStatus("3");
            }else if("4".equals(inboundOrderFlowDto.getStatus())){
                inboundOrder.setOrderStatus("1");
            }
            inboundOrder.setReviewer(user.getUsername());
            inboundOrder.setApprovalDate(new Date());
@@ -179,6 +218,8 @@
    @Override
    public void addInStorage(JSONObject jSONObject) {
        String inStorehouseType = jSONObject.getString("inStorehouseType");
        String locationCodeId = jSONObject.getString("locationCodeId");
        String classifyId = jSONObject.getString("classifyId");
        Date inboundTime = jSONObject.getDate("inboundTime");
        //获取入库明细
        JSONArray jsonArray = jSONObject.getJSONArray("detailData");
@@ -201,6 +242,7 @@
                    newToolLedger.setLossCount(BigDecimal.ZERO);
                    newToolLedger.setRepairCount(BigDecimal.ZERO);
                    newToolLedger.setSharpeningCount(BigDecimal.ZERO);
                    newToolLedger.setClassifyId(classifyId);
                    toolLedgerService.save(newToolLedger);
                }else {
                    toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity()));
@@ -220,6 +262,7 @@
                        num++;
                        //转换回字符串并保留前导零
                        String result = String.format("%0" + currentCode.length() + "d", num);
                        //打印二维码
                        //保存入库流水
                        InStoreDetail inStoreDetail = new InStoreDetail();
                        inStoreDetail.setInboundTime(inboundTime);
@@ -228,6 +271,7 @@
                        inStoreDetail.setInStorehouseType("1");
                        inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                        inStoreDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result);
                        inStoreDetail.setGoodsShelvesId(locationCodeId);
                        inStoreDetailService.save(inStoreDetail);
                        //增加库存明细
                        ToolLedgerDetail toolLedgerDetail = new ToolLedgerDetail();
@@ -249,6 +293,7 @@
                    inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
                    inStoreDetail.setInStorehouseType("1");
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                    //查询库存明细中是否存在该工具
                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
@@ -264,13 +309,332 @@
                    }
                }
            }
            //归还入库
        }else if("2".equals(inStorehouseType)){
            //循环新增明细
            for(InboundDetailVo inboundDetailVo : inStoreDetailList) {
                //查询是否管到把,管到把的查询当前编码
                BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId());
                //增加可用库存,减少借出库存
                ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one();
                toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity()));
                toolLedger.setLendCount(toolLedger.getLendCount().subtract(inboundDetailVo.getInStorageQuantity()));
                toolLedgerService.updateById(toolLedger);
                //查询是否管到把,管到把的用toolId,不管到把的用toolCodeId
                //管到把
                if("1".equals(baseTools.getAccuracyClass())){
                    //增加库存明细可用库存,修改状态
                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery()
                            .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId())
                            .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one();
                    toolLedgerDetail.setQuantity(BigDecimal.ONE);
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
                    InStoreDetail inStoreDetail = new InStoreDetail();
                    inStoreDetail.setInboundTime(inboundTime);
                    inStoreDetail.setOperateType("2");
                    inStoreDetail.setInNumber(BigDecimal.ONE);
                    inStoreDetail.setInStorehouseType("2");
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                    //不管到把
                }else {
                    //增加库存明细可用库存,修改状态
                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
                    toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
                    InStoreDetail inStoreDetail = new InStoreDetail();
                    inStoreDetail.setInboundTime(inboundTime);
                    inStoreDetail.setOperateType("2");
                    inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
                    inStoreDetail.setInStorehouseType("2");
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                }
            }
        }else if("5".equals(inStorehouseType)){
            //循环新增明细
            for(InboundDetailVo inboundDetailVo : inStoreDetailList) {
                //查询是否管到把,管到把的查询当前编码
                BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId());
                //增加总库存及可用库存,减少刃磨库存
                ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one();
                toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity()));
                toolLedger.setSharpeningCount(toolLedger.getSharpeningCount().subtract(inboundDetailVo.getInStorageQuantity()));
                toolLedgerService.updateById(toolLedger);
                //查询是否管到把,管到把的用toolId,不管到把的用toolCodeId
                //管到把
                if("1".equals(baseTools.getAccuracyClass())){
                    //增加库存明细可用库存,修改状态
                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery()
                            .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId())
                            .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one();
                    toolLedgerDetail.setQuantity(BigDecimal.ONE);
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
                    InStoreDetail inStoreDetail = new InStoreDetail();
                    inStoreDetail.setInboundTime(inboundTime);
                    inStoreDetail.setOperateType("2");
                    inStoreDetail.setInNumber(BigDecimal.ONE);
                    inStoreDetail.setInStorehouseType("5");
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                    //不管到把
                }else {
                    //增加库存明细可用库存,修改状态
                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
                    toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
                    InStoreDetail inStoreDetail = new InStoreDetail();
                    inStoreDetail.setInboundTime(inboundTime);
                    inStoreDetail.setOperateType("2");
                    inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
                    inStoreDetail.setInStorehouseType("5");
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                }
            }
        }
    }
    @Override
    public void addApplyInStorage(JSONObject jSONObject) {
        String inStorehouseType = jSONObject.getString("inStorehouseType");
        String locationCodeId = jSONObject.getString("locationCodeId");
        //入库申请单id
        String orderId = jSONObject.getString("orderId");
        //获取入库明细
        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);
                    newToolLedger.setClassifyId(inboundDetailVo.getClassifyId());
                    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.setInStorehouseId(orderId);
                        inStoreDetail.setInboundTime(new Date());
                        inStoreDetail.setOperateType("1");
                        inStoreDetail.setInNumber(BigDecimal.ONE);
                        inStoreDetail.setInStorehouseType("1");
                        inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                        inStoreDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result);
                        inStoreDetail.setGoodsShelvesId(locationCodeId);
                        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(new Date());
                    inStoreDetail.setOperateType("1");
                    inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
                    inStoreDetail.setInStorehouseType("1");
                    inStoreDetail.setInStorehouseId(orderId);
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    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);
                    }
                }
                //更改明细入库状态及实际入库数量
                InboundDetail inboundDetail = inboundDetailService.getById(inboundDetailVo.getId());
                inboundDetail.setInStatus("3");
                inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity());
                inboundDetailService.updateById(inboundDetail);
            }
            //归还入库
        }else if("2".equals(inStorehouseType)){
            //循环新增明细
            for(InboundDetailVo inboundDetailVo : inStoreDetailList) {
                //查询是否管到把,管到把的查询当前编码
                BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId());
                //增加可用库存,减少借出库存
                ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one();
                toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity()));
                toolLedger.setLendCount(toolLedger.getLendCount().subtract(inboundDetailVo.getInStorageQuantity()));
                toolLedgerService.updateById(toolLedger);
                //查询是否管到把,管到把的用toolId,不管到把的用toolCodeId
                //管到把
                if("1".equals(baseTools.getAccuracyClass())){
                    //增加库存明细可用库存,修改状态
                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery()
                            .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId())
                            .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one();
                    toolLedgerDetail.setQuantity(BigDecimal.ONE);
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
                    InStoreDetail inStoreDetail = new InStoreDetail();
                    inStoreDetail.setInboundTime(new Date());
                    inStoreDetail.setOperateType("1");
                    inStoreDetail.setInNumber(BigDecimal.ONE);
                    inStoreDetail.setInStorehouseType("2");
                    inStoreDetail.setInStorehouseId(orderId);
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                    //不管到把
                }else {
                    //增加库存明细可用库存,修改状态
                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
                    toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
                    InStoreDetail inStoreDetail = new InStoreDetail();
                    inStoreDetail.setInboundTime(new Date());
                    inStoreDetail.setOperateType("1");
                    inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
                    inStoreDetail.setInStorehouseType("2");
                    inStoreDetail.setInStorehouseId(orderId);
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                }
                //更改明细入库状态及实际入库数量
                InboundDetail inboundDetail = inboundDetailService.getById(inboundDetailVo.getId());
                inboundDetail.setInStatus("3");
                inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity());
                inboundDetailService.updateById(inboundDetail);
            }
        }else if("5".equals(inStorehouseType)){
            //循环新增明细
            for(InboundDetailVo inboundDetailVo : inStoreDetailList) {
                //查询是否管到把,管到把的查询当前编码
                BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId());
                //增加总库存及可用库存,减少刃磨库存
                ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one();
                toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity()));
                toolLedger.setSharpeningCount(toolLedger.getSharpeningCount().subtract(inboundDetailVo.getInStorageQuantity()));
                toolLedgerService.updateById(toolLedger);
                //查询是否管到把,管到把的用toolId,不管到把的用toolCodeId
                //管到把
                if("1".equals(baseTools.getAccuracyClass())){
                    //增加库存明细可用库存,修改状态
                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery()
                            .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId())
                            .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one();
                    toolLedgerDetail.setQuantity(BigDecimal.ONE);
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
                    InStoreDetail inStoreDetail = new InStoreDetail();
                    inStoreDetail.setInboundTime(new Date());
                    inStoreDetail.setOperateType("1");
                    inStoreDetail.setInNumber(BigDecimal.ONE);
                    inStoreDetail.setInStorehouseType("5");
                    inStoreDetail.setInStorehouseId(orderId);
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                    //不管到把
                }else {
                    //增加库存明细可用库存,修改状态
                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
                    toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
                    InStoreDetail inStoreDetail = new InStoreDetail();
                    inStoreDetail.setInboundTime(new Date());
                    inStoreDetail.setOperateType("1");
                    inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
                    inStoreDetail.setInStorehouseType("5");
                    inStoreDetail.setInStorehouseId(orderId);
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                }
                //更改明细入库状态及实际入库数量
                InboundDetail inboundDetail = inboundDetailService.getById(inboundDetailVo.getId());
                inboundDetail.setInStatus("3");
                inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity());
                inboundDetailService.updateById(inboundDetail);
            }
        }
        //更改申请单入库状态
        InboundOrder inboundOrder = this.getById(orderId);
        List<InboundDetail> inboundDetailList = inboundDetailService.lambdaQuery().eq(InboundDetail::getInStorehouseId,orderId).list();
        boolean flag = inboundDetailList.stream().allMatch(inboundDetail -> "3".equals(inboundDetail.getInStatus()));
        if(flag){
            inboundOrder.setInStatus("3");
        }else {
            inboundOrder.setInStatus("2");
        }
        this.updateById(inboundOrder);
    }
    private LoginUser getCurrentUser() {
        // 获取当前认证的登录用户信息
        Subject currentUser = SecurityUtils.getSubject();