cuijian
2025-06-25 bb47bf3d97d1a68e06a73ce275e81b5e581219d4
lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java
@@ -24,6 +24,7 @@
import org.jeecg.modules.tms.entity.vo.InboundDetailVo;
import org.jeecg.modules.tms.mapper.InboundOrderMapper;
import org.jeecg.modules.tms.service.*;
import org.jeecg.modules.tms.utils.QrCodePrinterUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -68,6 +69,9 @@
    @Autowired
    private IInboundDetailService inboundDetailService;
    @Autowired
    private IGoodsShelvesService goodsShelvesService;
    @Override
    public boolean submit(String id) {
        InboundOrder inboundOrder = this.getById(id);
@@ -213,8 +217,12 @@
    }
    @Override
    public void addInStorage(JSONObject jSONObject) {
    public List<Map<String,String>> addInStorage(JSONObject jSONObject) {
        String inStorehouseType = jSONObject.getString("inStorehouseType");
        String locationCodeId = jSONObject.getString("locationCodeId");
        //二维码打印列表
        List<Map<String,String>> results = new ArrayList<>();
        List<String> contentList = new ArrayList<>();
        String classifyId = jSONObject.getString("classifyId");
        Date inboundTime = jSONObject.getDate("inboundTime");
        //获取入库明细
@@ -258,6 +266,7 @@
                        num++;
                        //转换回字符串并保留前导零
                        String result = String.format("%0" + currentCode.length() + "d", num);
                        //打印二维码
                        //保存入库流水
                        InStoreDetail inStoreDetail = new InStoreDetail();
                        inStoreDetail.setInboundTime(inboundTime);
@@ -266,18 +275,34 @@
                        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.setPositionCode(locationCodeId);
                        toolLedgerDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result);
                        toolLedgerDetail.setQuantity(BigDecimal.ONE);
                        toolLedgerDetail.setRemainingPercentage(BigDecimal.ONE);
                        toolLedgerDetail.setStatus("1");
                        toolLedgerDetailService.save(toolLedgerDetail);
                        //更新当前编码
                        newBaseTools.setCurrentCode(result);
                        baseToolsService.updateById(newBaseTools);
                        //打印二维码
                        contentList.add(inboundDetailVo.getToolCode()+"-"+result);
                    }
                    //打印二维码,暂时注释,待现场调试打标机
//                    for(String content : contentList){
//                        Map<String,String> result = new HashMap<>();
//                        result.put("content",content);
//                        result.put("image", QrCodePrinterUtils.generateBacthQRCode(content, 200, 200));
//                        // 生成二维码图片(Base64)
//                        results.add(result);
//                    }
                    Map<String,String> result = new HashMap<>();
                    result.put("content","保存成功");
                    results.add(result);
                    //不管到把
                }else {
                    //保存入库流水
@@ -287,6 +312,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();
@@ -294,12 +320,17 @@
                        ToolLedgerDetail newToolLedgerDetail = new ToolLedgerDetail();
                        newToolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId());
                        newToolLedgerDetail.setQuantity(inboundDetailVo.getInStorageQuantity());
                        newToolLedgerDetail.setPositionCode(locationCodeId);
                        newToolLedgerDetail.setStatus("1");
                        toolLedgerDetailService.save(newToolLedgerDetail);
                    }else {
                        toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
                        toolLedgerDetail.setPositionCode(locationCodeId);
                        toolLedgerDetailService.updateById(toolLedgerDetail);
                    }
                    Map<String,String> result = new HashMap<>();
                    result.put("content","保存成功");
                    results.add(result);
                }
            }
            //归还入库
@@ -321,6 +352,8 @@
                            .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId())
                            .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one();
                    toolLedgerDetail.setQuantity(BigDecimal.ONE);
                    toolLedgerDetail.setRemainingPercentage(BigDecimal.ONE);
                    toolLedgerDetail.setPositionCode(locationCodeId);
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
@@ -331,12 +364,14 @@
                    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.setPositionCode(locationCodeId);
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
@@ -346,10 +381,14 @@
                    inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
                    inStoreDetail.setInStorehouseType("2");
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                }
            }
            Map<String,String> result = new HashMap<>();
            result.put("content","保存成功");
            results.add(result);
        }else if("5".equals(inStorehouseType)){
            //循环新增明细
            for(InboundDetailVo inboundDetailVo : inStoreDetailList) {
@@ -368,6 +407,8 @@
                            .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId())
                            .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one();
                    toolLedgerDetail.setQuantity(BigDecimal.ONE);
                    toolLedgerDetail.setRemainingPercentage(BigDecimal.ONE);
                    toolLedgerDetail.setPositionCode(locationCodeId);
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
@@ -378,12 +419,14 @@
                    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.setPositionCode(locationCodeId);
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
@@ -393,16 +436,25 @@
                    inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity());
                    inStoreDetail.setInStorehouseType("5");
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                }
            }
            Map<String,String> result = new HashMap<>();
            result.put("content","保存成功");
            results.add(result);
        }
            return results;
    }
    @Override
    public void addApplyInStorage(JSONObject jSONObject) {
    public List<Map<String,String>> addApplyInStorage(JSONObject jSONObject) {
        String inStorehouseType = jSONObject.getString("inStorehouseType");
        String locationCodeId = jSONObject.getString("locationCodeId");
        //二维码打印列表
        List<Map<String,String>> results = new ArrayList<>();
        List<String> contentList = new ArrayList<>();
        //入库申请单id
        String orderId = jSONObject.getString("orderId");
        //获取入库明细
@@ -455,18 +507,34 @@
                        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.setRemainingPercentage(BigDecimal.ONE);
                        toolLedgerDetail.setPositionCode(locationCodeId);
                        toolLedgerDetail.setStatus("1");
                        toolLedgerDetailService.save(toolLedgerDetail);
                        //更新当前编码
                        newBaseTools.setCurrentCode(result);
                        baseToolsService.updateById(newBaseTools);
                        //打印二维码
                        contentList.add(inboundDetailVo.getToolCode()+"-"+result);
                    }
                    //打印二维码,暂时注释,待现场验证打标机
//                    for(String content : contentList){
//                        Map<String,String> result = new HashMap<>();
//                        result.put("content",content);
//                        result.put("image", QrCodePrinterUtils.generateBacthQRCode(content, 200, 200));
//                        // 生成二维码图片(Base64)
//                        results.add(result);
//                    }
                    Map<String,String> result = new HashMap<>();
                    result.put("content","保存成功");
                    results.add(result);
                    //不管到把
                }else {
                    //保存入库流水
@@ -477,6 +545,7 @@
                    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();
@@ -484,12 +553,17 @@
                        ToolLedgerDetail newToolLedgerDetail = new ToolLedgerDetail();
                        newToolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId());
                        newToolLedgerDetail.setQuantity(inboundDetailVo.getInStorageQuantity());
                        newToolLedgerDetail.setPositionCode(locationCodeId);
                        newToolLedgerDetail.setStatus("1");
                        toolLedgerDetailService.save(newToolLedgerDetail);
                    }else {
                        toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
                        toolLedgerDetail.setPositionCode(locationCodeId);
                        toolLedgerDetailService.updateById(toolLedgerDetail);
                    }
                    Map<String,String> result = new HashMap<>();
                    result.put("content","保存成功");
                    results.add(result);
                }
                //更改明细入库状态及实际入库数量
                InboundDetail inboundDetail = inboundDetailService.getById(inboundDetailVo.getId());
@@ -516,6 +590,8 @@
                            .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId())
                            .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one();
                    toolLedgerDetail.setQuantity(BigDecimal.ONE);
                    toolLedgerDetail.setRemainingPercentage(BigDecimal.ONE);
                    toolLedgerDetail.setPositionCode(locationCodeId);
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
@@ -527,6 +603,7 @@
                    inStoreDetail.setInStorehouseId(orderId);
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                    //不管到把
                }else {
@@ -534,6 +611,7 @@
                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
                    toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetail.setPositionCode(locationCodeId);
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
                    InStoreDetail inStoreDetail = new InStoreDetail();
@@ -543,6 +621,7 @@
                    inStoreDetail.setInStorehouseType("2");
                    inStoreDetail.setInStorehouseId(orderId);
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                }
                //更改明细入库状态及实际入库数量
@@ -551,6 +630,9 @@
                inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity());
                inboundDetailService.updateById(inboundDetail);
            }
            Map<String,String> result = new HashMap<>();
            result.put("content","保存成功");
            results.add(result);
        }else if("5".equals(inStorehouseType)){
            //循环新增明细
            for(InboundDetailVo inboundDetailVo : inStoreDetailList) {
@@ -569,6 +651,8 @@
                            .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId())
                            .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one();
                    toolLedgerDetail.setQuantity(BigDecimal.ONE);
                    toolLedgerDetail.setRemainingPercentage(BigDecimal.ONE);
                    toolLedgerDetail.setPositionCode(locationCodeId);
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
@@ -580,6 +664,7 @@
                    inStoreDetail.setInStorehouseId(orderId);
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setToolId(inboundDetailVo.getOnlyCode());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                    //不管到把
                }else {
@@ -587,6 +672,7 @@
                    ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one();
                    toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity()));
                    toolLedgerDetail.setStatus("1");
                    toolLedgerDetail.setPositionCode(locationCodeId);
                    toolLedgerDetailService.updateById(toolLedgerDetail);
                    //保存入库流水
                    InStoreDetail inStoreDetail = new InStoreDetail();
@@ -596,6 +682,7 @@
                    inStoreDetail.setInStorehouseType("5");
                    inStoreDetail.setInStorehouseId(orderId);
                    inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId());
                    inStoreDetail.setGoodsShelvesId(locationCodeId);
                    inStoreDetailService.save(inStoreDetail);
                }
                //更改明细入库状态及实际入库数量
@@ -604,6 +691,9 @@
                inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity());
                inboundDetailService.updateById(inboundDetail);
            }
            Map<String,String> result = new HashMap<>();
            result.put("content","保存成功");
            results.add(result);
        }
        //更改申请单入库状态
        InboundOrder inboundOrder = this.getById(orderId);
@@ -615,6 +705,7 @@
            inboundOrder.setInStatus("2");
        }
        this.updateById(inboundOrder);
        return results;
    }
    private LoginUser getCurrentUser() {