skyouc
6 天以前 830db9a372955f1c85ab020d2e12e273570dca87
新增质检状态流程
19个文件已修改
256 ■■■■■ 已修改文件
rsf-admin/src/i18n/en.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/i18n/zh.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/delivery/DeliveryList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/task/TaskItemList.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItem.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakinItem.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/AsnOrderTemplate.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/i18n/en.js
@@ -358,6 +358,7 @@
                fieldsIndex: "fieldsIndex",
                barcode: "barcode",
                anfme: "anfme",
                isptResult: 'Ispt Result',
                workQty: 'Work Qty',
                qty: 'Available',
                batch: "batch",
@@ -595,6 +596,7 @@
                disQty: 'Def Qty',
                splrCode: "splrCode",
                splrName: "splrName",
                isptResult: "Ispt Result",
                qrcode: "qrcode",
                barcode: "barcode",
                packName: "packName",
@@ -740,6 +742,7 @@
                asnCode: "asnCode",
                asnItemId: "asnItemId",
                trackCode: "trackCode",
                isptResult: 'Ispt Result',
                anfme: "anfme",
                workQty: "workQty",
                unit: "unit",
@@ -843,6 +846,7 @@
                matnrId: "matnrId",
                maktx: "maktx",
                matnrCode: "matnrCode",
                isptResult: 'Ispt Result',
                unit: "unit",
                anfme: "anfme",
                batch: "batch",
rsf-admin/src/i18n/zh.js
@@ -361,6 +361,7 @@
                workQty: '上架中',
                qty: '已完成',
                barcode: "条形码",
                isptResult: '质检状态',
                anfme: "数量",
                batch: "批次号",
                unit: "计量单位",
@@ -588,6 +589,7 @@
                splrName: "供应商",
                qrcode: "二维码",
                barcode: "序列码",
                isptResult: "质检状态",
                packName: "包装",
                ntyStatus: "报检状态",
                prodTime: "生产日期",
@@ -754,6 +756,7 @@
                asnCode: "收货通知单编码",
                asnItemId: "收货通知单明细id",
                trackCode: "条形码",
                isptResult: '质检状态',
                anfme: "数量",
                workQty: "执行中数量",
                unit: "单位",
@@ -855,6 +858,7 @@
                source: "源ID",
                matnrId: "物料ID",
                maktx: "物料名称",
                isptResult: '质检状态',
                matnrCode: "物料编码",
                unit: "单位",
                anfme: "数量",
rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx
@@ -138,7 +138,7 @@
            //   setSelect(record)
            //   setEditDialog(true)
            // }}
            omit={['id', 'purQty', 'purUnit','platItemId', 'poDetlCode', 'memo', 'model', 'packName', 'splrCode', 'qrcode', 'poDetlId', 'matnrId', 'asnId']}
            omit={['id', 'purQty', 'purUnit', 'platItemId', 'poDetlCode', 'trackCode', 'memo', 'model', 'packName', 'splrCode', 'qrcode', 'poDetlId', 'matnrId', 'asnId']}
          >
            <NumberField source="id" />
            <NumberField source="asnId" label="table.field.asnOrderItem.asnId" />
@@ -162,6 +162,7 @@
            <TextField source="isptResult$" label="table.field.asnOrderItem.isptResult" /> */}
            <TextField source="splrCode" label="table.field.asnOrderItem.splrCode" />
            <TextField source="splrName" label="table.field.asnOrderItem.splrName" />
            <TextField source="isptResult$" label="table.field.asnOrderItem.isptResult" />
            <TextField source="qrcode" label="table.field.asnOrderItem.qrcode" />
            <TextField source="trackCode" label="table.field.asnOrderItem.barcode" />
            <TextField source="packName" label="table.field.asnOrderItem.packName" />
rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
@@ -168,7 +168,7 @@
          <TextField cellClassName="wkType" source="wkType$" label="table.field.asnOrder.wkType" />
          <NumberField source="anfme" label="table.field.asnOrder.anfme" />
          <NumberField source="qty" label="table.field.asnOrder.qty" />
          <TextField source="logisNo" label="table.field.asnOrder.logisNo" />
          {/* <TextField source="logisNo" label="table.field.asnOrder.logisNo" /> */}
          <DateField source="arrTime" label="table.field.asnOrder.arrTime" showTime />
          <TextField source="rleStatus$" label="table.field.asnOrder.rleStatus" sortable={false} />
          <TextField source="ntyStatus$" label="table.field.asnOrder.ntyStatus" />
rsf-admin/src/page/orders/delivery/DeliveryList.jsx
@@ -121,7 +121,7 @@
                    rowClick={(id, resource, record) => false}
                    expand={false}
                    expandSingle={true}
                    omit={['id', 'createTime', 'createBy', 'memo', 'workQty', 'startTime', 'endTime', 'updateBy','createTime']}
                    omit={['id', 'createTime', 'createBy','platId', 'memo', 'workQty', 'startTime', 'endTime', 'updateBy','createTime']}
                >
                    <NumberField source="id" />
                    <TextField source="code" label="table.field.delivery.code" />
rsf-admin/src/page/task/TaskItemList.jsx
@@ -122,6 +122,7 @@
                    <TextField source="unit" label="table.field.taskItem.unit" />
                    <NumberField source="anfme" label="table.field.taskItem.anfme" />
                    <TextField source="batch" label="table.field.taskItem.batch" />
                    <TextField source="isptResult$" label="table.field.taskItem.isptResult" />
                    <TextField source="spec" label="table.field.taskItem.spec" />
                    <TextField source="model" label="table.field.taskItem.model" />
                    <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx
@@ -130,12 +130,12 @@
                    <NumberField source="anfme" label="table.field.waitPakinItem.anfme" />
                    <TextField source="unit" label="table.field.waitPakinItem.unit" />
                    <NumberField source="workQty" label="table.field.waitPakinItem.workQty" />
                    <TextField source="fieldsIndex" label="table.field.waitPakinItem.fieldsIndex" />
                    <NumberField source="qty" label="table.field.waitPakinItem.qty" />
                    <TextField source="fieldsIndex" label="table.field.waitPakinItem.fieldsIndex" />
                    <TextField source="isptResult$" label="table.field.waitPakinItem.isptResult"  />
                    <TextField source="updateBy$" label="common.field.updateBy" />
                    <DateField source="updateTime" label="common.field.updateTime" showTime />
                    <TextField source="createBy$" label="common.field.createBy"  />
                    {/* <TextField source="flagDefect" label="common.field.flagDefect"  /> */}
                    <DateField source="createTime" label="common.field.createTime" showTime />
                    {/* <BooleanField source="statusBool" label="common.field.status" sortable={false} /> */}
                    <TextField source="memo" label="common.field.memo" sortable={false} />
rsf-admin/src/page/warehouseAreasItem/WarehouseAreasItemList.jsx
@@ -147,6 +147,7 @@
                    <TextField source="brand" label="table.field.warehouseAreasItem.brand" />
                    <TextField source="shipperId" label="table.field.warehouseAreasItem.shipperId"  />
                    <TextField source="splrId" label="table.field.warehouseAreasItem.splrId" />
                    <TextField source="isptResult$" label="table.field.warehouseAreasItem.isptResult" sortable={false} />
                    <NumberField source="weight" label="table.field.warehouseAreasItem.weight" />
                    <TextField source="prodTime" label="table.field.warehouseAreasItem.prodTime" />
                    <TextField source="updateBy$" label="common.field.updateBy"  />
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -8,8 +8,7 @@
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.api.controller.params.*;
import com.vincent.rsf.server.api.entity.dto.*;
import com.vincent.rsf.server.manager.enums.OrderType;
import com.vincent.rsf.server.manager.enums.OrderWorkType;
import com.vincent.rsf.server.manager.enums.*;
import com.vincent.rsf.server.api.service.MobileService;
import com.vincent.rsf.server.common.config.ConfigProperties;
import com.vincent.rsf.server.common.enums.WarehouseAreaType;
@@ -20,9 +19,6 @@
import com.vincent.rsf.server.manager.controller.params.IsptItemsParams;
import com.vincent.rsf.server.manager.controller.params.WaitPakinParam;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.enums.AsnExceStatus;
import com.vincent.rsf.server.manager.enums.PakinIOStatus;
import com.vincent.rsf.server.manager.enums.QlyIsptStatus;
import com.vincent.rsf.server.manager.mapper.*;
import com.vincent.rsf.server.manager.service.*;
import com.vincent.rsf.server.system.constant.CodeRes;
@@ -256,7 +252,8 @@
//                    .eq(AsnOrderItem::getTrackCode, dto.getBarcode())
//                    .eq(AsnOrderItem::getSplrBatch, dto.getSplrBatch()));
            AsnOrderItem orderItem = asnOrderItemMapper.resultById(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getId, dto.getId()));
            AsnOrderItem orderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getId, dto.getId()));
            //asnOrderItemMapper.resultById(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getId, dto.getId()));
            if (Objects.isNull(orderItem)) {
                throw new CoolException("通知单明细不存在!!");
@@ -275,7 +272,8 @@
                try {
                    if (Objects.isNull(rcpt.get("fieldsindex")) || StringUtils.isBlank(rcpt.get("fieldsindex").toString())) {
                        //获取16位uuid
                        String uuid16 = Cools.md5(dto.getBarcode());
//                        String uuid16 = Cools.md5(dto.getBarcode());
                        String uuid16 = Cools.md5(dto.getId() + dto.getMatnr());
                        rcpt.put("index", uuid16);
                        orderItem.setFieldsIndex(uuid16);
                    }
@@ -318,13 +316,14 @@
                //库存单位为最小单位
                .setUnit(orderItem.getStockUnit())
                .setStockUnit(orderItem.getStockUnit())
//                .setBatch(StringUtils.isBlank(orderItem.getBatch()) ? SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_RECEIPT_BATCH, dto) : orderItem.getBatch())
                .setBatch(StringUtils.isBlank(orderItem.getBatch()) ? SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_RECEIPT_BATCH, dto) : orderItem.getBatch())
                .setAnfme(dto.getReceiptQty())
                .setSplrBatch(dto.getSplrBatch())
                .setMatnrCode(matnr.getCode())
                .setUpdateBy(loginUserId)
                .setCreateBy(loginUserId)
                .setMatnrId(matnr.getId())
                .setIsptResult(orderItem.getIsptResult())
                .setMaktx(matnr.getName())
                .setWeight(matnr.getWeight())
                .setFieldsIndex(orderItem.getFieldsIndex())
@@ -333,7 +332,9 @@
        WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>()
//                .eq(WarehouseAreasItem::getAsnItemId, item.getAsnItemId())
                .eq(WarehouseAreasItem::getMatnrCode, item.getMatnrCode())
                        .eq(WarehouseAreasItem::getFieldsIndex, item.getFieldsIndex())
                        .eq(!Cools.isEmpty(item.getFieldsIndex()), WarehouseAreasItem::getFieldsIndex, item.getFieldsIndex())
                        .eq(WarehouseAreasItem::getAsnCode, item.getAsnCode())
                        .eq(!Cools.isEmpty(item.getIsptResult()), WarehouseAreasItem::getIsptResult, item.getIsptResult())
                .eq(StringUtils.isNotBlank(item.getSplrBatch()), WarehouseAreasItem::getSplrBatch, item.getSplrBatch()));
        if (!Objects.isNull(serviceOne)) {
            item.setId(serviceOne.getId());
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java
@@ -5,7 +5,11 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.vincent.rsf.server.system.constant.DictTypeCode;
import com.vincent.rsf.server.system.entity.DictData;
import com.vincent.rsf.server.system.service.DictDataService;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
@@ -17,6 +21,7 @@
import com.vincent.rsf.server.system.entity.User;
import java.io.Serializable;
import java.util.Map;
import java.util.Objects;
@Data
@Accessors(chain = true)
@@ -378,21 +383,17 @@
    }
    public String getIsptResult$(){
        if (null == this.isptResult){ return null; }
        switch (this.isptResult){
            case 0:
                return "未检";
            case 1:
                return "合格";
            case 2:
                return "不合格";
            case 3:
                return "待定";
            case 4:
                return "部分合格";
            default:
                return "";
            if (Cools.isEmpty(this.isptResult)){
                return null;
        }
            DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
            DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>()
                    .eq(DictData::getDictTypeCode, DictTypeCode.DICT_INSPECT_RESULT)
                    .eq(DictData::getValue, this.isptResult));
            if (Objects.isNull(dictData)) {
                return null;
            }
            return dictData.getLabel();
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItem.java
@@ -130,6 +130,9 @@
    @ApiModelProperty(value= "型号")
    private String model;
    @ApiModelProperty("质检状态")
    private Short isptResult;
    /**
     * 字段索引
     */
@@ -244,6 +247,20 @@
        return dictDatas.getLabel();
    }
    public String getIsptResult$(){
        if (Cools.isEmpty(this.isptResult)){
            return null;
        }
        DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
        DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>()
                .eq(DictData::getDictTypeCode, DictTypeCode.DICT_INSPECT_RESULT)
                .eq(DictData::getValue, this.isptResult));
        if (Objects.isNull(dictData)) {
            return null;
        }
        return dictData.getLabel();
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WaitPakinItem.java
@@ -4,7 +4,11 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.vincent.rsf.server.system.constant.DictTypeCode;
import com.vincent.rsf.server.system.entity.DictData;
import com.vincent.rsf.server.system.service.DictDataService;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
@@ -23,6 +27,7 @@
import com.vincent.rsf.server.system.entity.User;
import java.io.Serializable;
import java.util.Date;
import java.util.Objects;
@Data
@Accessors(chain = true)
@@ -52,6 +57,9 @@
    @ApiModelProperty("组拖明细ID")
    private Long source;
    @ApiModelProperty("质检结果")
    private Short isptResult;
    /**
     * 订单ID
@@ -264,6 +272,20 @@
        return null;
    }
    public String getIsptResult$(){
        if (Cools.isEmpty(this.isptResult)){
            return null;
        }
        DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
        DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>()
                .eq(DictData::getDictTypeCode, DictTypeCode.DICT_INSPECT_RESULT)
                .eq(DictData::getValue, this.isptResult));
        if (Objects.isNull(dictData)) {
            return null;
        }
        return dictData.getLabel();
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
            return "";
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java
@@ -3,10 +3,14 @@
import com.baomidou.mybatisplus.annotation.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.vincent.rsf.server.manager.service.CompanysService;
import com.vincent.rsf.server.system.constant.DictTypeCode;
import com.vincent.rsf.server.system.entity.DictData;
import com.vincent.rsf.server.system.service.DictDataService;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.text.SimpleDateFormat;
@@ -22,7 +26,6 @@
import com.vincent.rsf.server.system.entity.User;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
@Data
@Accessors(chain = true)
@@ -333,6 +336,20 @@
        return null;
    }
    public String getIsptResult$(){
        if (Cools.isEmpty(this.isptResult)){
            return null;
        }
        DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
        DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>()
                .eq(DictData::getDictTypeCode, DictTypeCode.DICT_INSPECT_RESULT)
                .eq(DictData::getValue, this.isptResult));
        if (Objects.isNull(dictData)) {
            return null;
        }
        return dictData.getLabel();
    }
    public String getUpdateTime$(){
        if (Cools.isEmpty(this.updateTime)){
            return "";
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/excel/AsnOrderTemplate.java
@@ -162,6 +162,13 @@
    @ExcelComment(value = "logicNo", example = "SF100064851")
    private String logicNo;
    @Excel(name = "质检状态")
    @ApiModelProperty("质检状态")
    @ExcelComment(value = "isptResult", example = "合格")
    private String isptResult;
    @Excel(name = "预计送达时间")
    @ApiModelProperty("预计送达时间")
    @ExcelComment(value = "arrTime", example = "2025-05-21")
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java
@@ -1,5 +1,7 @@
package com.vincent.rsf.server.manager.enums;
import org.apache.commons.lang3.StringUtils;
/**
 * @author Ryan
 * @version 1.0
@@ -21,6 +23,25 @@
        this.desc = desc;
    }
    public static Short getDescVal(String desc) {
        if (StringUtils.isBlank(desc)) {return null;}
        if (desc.equals(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.desc)) {
            return QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val;
        } else if (desc.equals(QlyIsptResult.QLY_ISPT_RESULT_PENDING.desc)) {
            return QlyIsptResult.QLY_ISPT_RESULT_PENDING.val;
        } else if (desc.equals(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.desc)) {
            return QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val;
        }else if (desc.equals(QlyIsptResult.QLY_ISPT_RESULT_SECTION.desc)) {
            return QlyIsptResult.QLY_ISPT_RESULT_SECTION.val;
        } else if (desc.equals(QlyIsptResult.QLY_ISPT_RESULT_HOLD.desc)) {
            return QlyIsptResult.QLY_ISPT_RESULT_HOLD.val;
        }
        return null;
    }
    public Short val;
    public String desc;
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
@@ -38,16 +38,12 @@
    private PurchaseService purchaseService;
    @Autowired
    private PurchaseItemService purchaseItemService;
    @Autowired
    private AsnOrderService asnOrderService;
    @Autowired
    private MatnrService matnrService;
    @Autowired
    private AsnOrderItemService asnOrderItemService;
    @Resource
    private SysStockProperties flowProperties;
    @Autowired
@@ -168,7 +164,8 @@
            if (StringUtils.isBlank(trackCode)) {
                throw new CoolException("单据跟踪码生成失败:请检查「sys_asn_mantr_label」是否配置完成!!");
            }
            item.setTrackCode(trackCode);
//            item.setTrackCode(trackCode);
            item.setBarcode(trackCode);
            items.add(item);
        });
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
@@ -21,6 +21,7 @@
import com.vincent.rsf.server.manager.entity.Matnr;
import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
import com.vincent.rsf.server.manager.enums.CompanysType;
import com.vincent.rsf.server.manager.enums.QlyIsptResult;
import com.vincent.rsf.server.manager.mapper.AsnOrderItemMapper;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import com.vincent.rsf.server.manager.service.AsnOrderItemService;
@@ -147,14 +148,15 @@
                    sbFaild.append(orderTemplate.getMatnrCode()).append("物料不存在");
                    throw new CoolException(sbFaild.toString());
                }
//                String trackCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, matnr);
                String trackCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, matnr);
                orderItem.setAsnId(order.getId())
                        .setAsnCode(order.getCode())
                        .setSplrBatch(orderTemplate.getSplrBatch())
                        .setPlatItemId(orderTemplate.getPlatItemId())
                        .setAnfme(Double.parseDouble(orderTemplate.getAnfme()))
                        .setIsptResult(QlyIsptResult.getDescVal(orderTemplate.getIsptResult()))
//                        .setTrackCode(trackCode)
//                        .setBarcode(trackCode)
                        .setBarcode(trackCode)
                        .setPoCode(orderTemplate.getPoCode())
                        .setPurUnit(matnr.getUnit())
                        .setCreateBy(loginUserId)
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaitPakinServiceImpl.java
@@ -107,42 +107,6 @@
        List<WaitPakinItem> items = new ArrayList<>();
        for (PakinItem pakinItem1 : waitPakin.getItems()) {
            //不良标签组托
            if (!Objects.isNull(waitPakin.getType()) && waitPakin.getType().equals("defective")) {
                List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getAsnCode, pakinItem1.getAsnCode()));
                if (Objects.isNull(orderItems) || orderItems.isEmpty()) {
                    throw new CoolException("单据不存在!!");
                }
                for (AsnOrderItem item : orderItems) {
                    WaitPakinItem pakinItem = new WaitPakinItem();
                    pakinItem.setAnfme(item.getAnfme())
                            .setPakinId(waitPakin1.getId())
                            .setAsnId(item.getAsnId())
                            .setAsnCode(item.getAsnCode())
                            .setAsnItemId(item.getId())
                            .setBatch(item.getSplrBatch())
                            .setUnit(item.getStockUnit())
                            .setFieldsIndex(item.getFieldsIndex())
                            .setMatnrId(item.getMatnrId())
                            .setMaktx(item.getMaktx())
                            .setUpdateBy(userId)
                            .setCreateBy(userId)
                            .setMatnrCode(item.getMatnrCode());
                    AsnOrder order = asnOrderService.getById(item.getAsnId());
                    if (!Objects.isNull(order)) {
                        pakinItem.setType(null == order.getType() ?  null :order.getType())
                                .setWkType(null == order.getWkType() ? null : Short.parseShort(order.getWkType()) );
                    }
                    for (PakinItem waitPakinItem : waitPakin.getItems()) {
                        if (waitPakinItem.getTrackCode().equals(item.getTrackCode())) {
                            if (waitPakinItem.getReceiptQty() > item.getAnfme() || waitPakinItem.getReceiptQty().compareTo(0.0) >= 0) {
                                throw new CoolException("组托数量不能大于收货数量!!");
                            }
                            pakinItem.setAnfme(waitPakinItem.getReceiptQty()).setTrackCode(waitPakinItem.getTrackCode());
                        }
                    }
                    items.add(pakinItem);
                }
            } else {
                WarehouseAreasItem warehouseAreasItems = warehouseAreasItemService.getById(pakinItem1.getId());
                if (null == warehouseAreasItems) {
                    throw new CoolException("物料未送至收货区!!");
@@ -153,7 +117,8 @@
                        .setSource(warehouseAreasItems.getId())
                        .setAsnId(warehouseAreasItems.getAsnId())
                        .setAsnCode(warehouseAreasItems.getAsnCode())
                        .setAsnItemId(warehouseAreasItems.getId())
                    .setAsnItemId(warehouseAreasItems.getAsnItemId())
                    .setIsptResult(warehouseAreasItems.getIsptResult())
                        .setBatch(warehouseAreasItems.getSplrBatch())
                        .setUnit(warehouseAreasItems.getStockUnit())
                        .setFieldsIndex(warehouseAreasItems.getFieldsIndex())
@@ -169,17 +134,18 @@
                }
                for (PakinItem waitPakinItem : waitPakin.getItems()) {
                    if (waitPakinItem.getTrackCode().equals(warehouseAreasItems.getTrackCode())) {
                if (waitPakinItem.getId().equals(warehouseAreasItems.getId())) {
                        if (waitPakinItem.getReceiptQty() > warehouseAreasItems.getAnfme() || waitPakinItem.getReceiptQty().compareTo(0.0) <= 0) {
                            throw new CoolException("组托数量不能大于收货数量且不能小于零!!");
                        }
                        pakinItem.setAnfme(waitPakinItem.getReceiptQty()).setTrackCode(waitPakinItem.getTrackCode());
                    pakinItem.setAnfme(waitPakinItem.getReceiptQty())
                            .setTrackCode(waitPakinItem.getTrackCode());
                    }
                }
                items.add(pakinItem);
            }
        }
        double sum1 = items.stream().mapToDouble(WaitPakinItem::getAnfme).sum();
        if (!waitPakinItemService.saveBatch(items)) {
@@ -188,8 +154,7 @@
        for (WaitPakinItem pakinItem : items) {
            WarehouseAreasItem one = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>()
                    .eq(WarehouseAreasItem::getTrackCode, pakinItem.getTrackCode())
                    .eq(!Cools.isEmpty(pakinItem.getBatch()),WarehouseAreasItem::getSplrBatch, pakinItem.getBatch()));
                            .eq(WarehouseAreasItem::getId, pakinItem.getSource()));
            if (Objects.isNull(one)) {
                throw new CoolException("收货区数据错误!!");
            }
@@ -214,10 +179,10 @@
    }
    /**
     * @author Ryan
     * @description 组托解绑
     * @param
     * @return
     * @author Ryan
     * @description 组托解绑
     * @time 2025/3/29 14:42
     */
    @Override
@@ -279,7 +244,9 @@
        Map<Long, List<WaitPakinItem>> listMap = pakinItems.stream().collect(Collectors.groupingBy(WaitPakinItem::getSource));
        for (WarehouseAreasItem item : areasItems) {
            List<WaitPakinItem> pakin = listMap.get(item.getId());
            if (Objects.isNull(pakin)) {continue;}
            if (Objects.isNull(pakin)) {
                continue;
            }
            double sum = pakin.stream().mapToDouble(WaitPakinItem::getAnfme).sum();
            item.setWorkQty(item.getWorkQty() - sum)
                    .setAnfme(item.getAnfme() + sum);
rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml
@@ -35,19 +35,19 @@
                    aoi.pack_name,
                    aoi.nty_status,
                    aoi.`status`,
--                     CASE
--                         aoi.ispt_result
--                         WHEN 0 THEN
--                             '未检'
--                         WHEN 1 THEN
--                             '合格'
--                         WHEN 2 THEN
--                             '不合格'
--                         WHEN 3 THEN
--                             '待定'
--                         WHEN 4 THEN
--                             '部分合格'
--                         END AS isptResult$,
                    CASE
                        aoi.ispt_result
                        WHEN 0 THEN
                            '未检'
                        WHEN 1 THEN
                            '合格'
                        WHEN 2 THEN
                            '不合格'
                        WHEN 3 THEN
                            '待定'
                        WHEN 4 THEN
                            '部分合格'
                        END AS isptResult$,
                    aoi.deleted,
                    aoi.tenant_id,
                    aoi.create_by,
@@ -94,6 +94,7 @@
                    aoi.pack_name,
                    aoi.nty_status,
                    aoi.`status`,
                    aoi.`ispt_result`,
                    CASE
                        aoi.ispt_result
                        WHEN 0 THEN
@@ -116,7 +117,7 @@
                    aoi.memo
                FROM
                    man_asn_order_item aoi
                        LEFT JOIN man_qly_ispt_item qii ON aoi.id = qii.asn_item_id
--                         LEFT JOIN man_qly_ispt_item qii ON aoi.id = qii.asn_item_id
            ) t
            ${ew.customSqlSegment}
    </select>