| | |
| | | fieldsIndex: "fieldsIndex", |
| | | barcode: "barcode", |
| | | anfme: "anfme", |
| | | isptResult: 'Ispt Result', |
| | | workQty: 'Work Qty', |
| | | qty: 'Available', |
| | | batch: "batch", |
| | |
| | | disQty: 'Def Qty', |
| | | splrCode: "splrCode", |
| | | splrName: "splrName", |
| | | isptResult: "Ispt Result", |
| | | qrcode: "qrcode", |
| | | barcode: "barcode", |
| | | packName: "packName", |
| | |
| | | asnCode: "asnCode", |
| | | asnItemId: "asnItemId", |
| | | trackCode: "trackCode", |
| | | isptResult: 'Ispt Result', |
| | | anfme: "anfme", |
| | | workQty: "workQty", |
| | | unit: "unit", |
| | |
| | | matnrId: "matnrId", |
| | | maktx: "maktx", |
| | | matnrCode: "matnrCode", |
| | | isptResult: 'Ispt Result', |
| | | unit: "unit", |
| | | anfme: "anfme", |
| | | batch: "batch", |
| | |
| | | workQty: '上架中', |
| | | qty: '已完成', |
| | | barcode: "条形码", |
| | | isptResult: '质检状态', |
| | | anfme: "数量", |
| | | batch: "批次号", |
| | | unit: "计量单位", |
| | |
| | | splrName: "供应商", |
| | | qrcode: "二维码", |
| | | barcode: "序列码", |
| | | isptResult: "质检状态", |
| | | packName: "包装", |
| | | ntyStatus: "报检状态", |
| | | prodTime: "生产日期", |
| | |
| | | asnCode: "收货通知单编码", |
| | | asnItemId: "收货通知单明细id", |
| | | trackCode: "条形码", |
| | | isptResult: '质检状态', |
| | | anfme: "数量", |
| | | workQty: "执行中数量", |
| | | unit: "单位", |
| | |
| | | source: "源ID", |
| | | matnrId: "物料ID", |
| | | maktx: "物料名称", |
| | | isptResult: '质检状态', |
| | | matnrCode: "物料编码", |
| | | unit: "单位", |
| | | anfme: "数量", |
| | |
| | | // 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" /> |
| | |
| | | <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" /> |
| | |
| | | <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" /> |
| | |
| | | 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" /> |
| | |
| | | <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}> |
| | |
| | | <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} /> |
| | |
| | | <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" /> |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | // .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("通知单明细不存在!!"); |
| | |
| | | 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); |
| | | } |
| | |
| | | //库存单位为最小单位 |
| | | .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()) |
| | |
| | | //TODO 供应商标识未设置,标识由PO单供应商编码转换 |
| | | WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>() |
| | | // .eq(WarehouseAreasItem::getAsnItemId, item.getAsnItemId()) |
| | | .eq(WarehouseAreasItem::getMatnrCode, item.getMatnrCode()) |
| | | .eq(WarehouseAreasItem::getFieldsIndex, item.getFieldsIndex()) |
| | | .eq(WarehouseAreasItem::getMatnrCode, item.getMatnrCode()) |
| | | .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()); |
| | |
| | | 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 com.vincent.rsf.server.system.entity.User; |
| | | import java.io.Serializable; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | |
| | | @Data |
| | | @Accessors(chain = true) |
| | |
| | | } |
| | | |
| | | 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(); |
| | | } |
| | | |
| | | } |
| | |
| | | @ApiModelProperty(value= "型号") |
| | | private String model; |
| | | |
| | | @ApiModelProperty("质检状态") |
| | | private Short isptResult; |
| | | |
| | | /** |
| | | * 字段索引 |
| | | */ |
| | |
| | | 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){ |
| | |
| | | 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; |
| | |
| | | import com.vincent.rsf.server.system.entity.User; |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | import java.util.Objects; |
| | | |
| | | @Data |
| | | @Accessors(chain = true) |
| | |
| | | |
| | | @ApiModelProperty("组拖明细ID") |
| | | private Long source; |
| | | |
| | | @ApiModelProperty("质检结果") |
| | | private Short isptResult; |
| | | |
| | | /** |
| | | * 订单ID |
| | |
| | | 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 ""; |
| | |
| | | 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; |
| | |
| | | import com.vincent.rsf.server.system.entity.User; |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | import java.util.Map; |
| | | |
| | | @Data |
| | | @Accessors(chain = true) |
| | |
| | | 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 ""; |
| | |
| | | @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") |
| | |
| | | package com.vincent.rsf.server.manager.enums; |
| | | |
| | | import org.apache.commons.lang3.StringUtils; |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @version 1.0 |
| | |
| | | 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; |
| | | } |
| | |
| | | private PurchaseService purchaseService; |
| | | @Autowired |
| | | private PurchaseItemService purchaseItemService; |
| | | |
| | | @Autowired |
| | | private AsnOrderService asnOrderService; |
| | | |
| | | @Autowired |
| | | private MatnrService matnrService; |
| | | |
| | | @Autowired |
| | | private AsnOrderItemService asnOrderItemService; |
| | | |
| | | @Resource |
| | | private SysStockProperties flowProperties; |
| | | @Autowired |
| | |
| | | if (StringUtils.isBlank(trackCode)) { |
| | | throw new CoolException("单据跟踪码生成失败:请检查「sys_asn_mantr_label」是否配置完成!!"); |
| | | } |
| | | item.setTrackCode(trackCode); |
| | | // item.setTrackCode(trackCode); |
| | | item.setBarcode(trackCode); |
| | | items.add(item); |
| | | }); |
| | | |
| | |
| | | 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; |
| | |
| | | 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) |
| | |
| | | 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("物料未送至收货区!!"); |
| | | } |
| | | WaitPakinItem pakinItem = new WaitPakinItem(); |
| | | pakinItem.setAnfme(warehouseAreasItems.getAnfme()) |
| | | .setPakinId(waitPakin1.getId()) |
| | | .setSource(warehouseAreasItems.getId()) |
| | | .setAsnId(warehouseAreasItems.getAsnId()) |
| | | .setAsnCode(warehouseAreasItems.getAsnCode()) |
| | | .setAsnItemId(warehouseAreasItems.getId()) |
| | | .setBatch(warehouseAreasItems.getSplrBatch()) |
| | | .setUnit(warehouseAreasItems.getStockUnit()) |
| | | .setFieldsIndex(warehouseAreasItems.getFieldsIndex()) |
| | | .setMatnrId(warehouseAreasItems.getMatnrId()) |
| | | .setMaktx(warehouseAreasItems.getMaktx()) |
| | | .setUpdateBy(userId) |
| | | .setCreateBy(userId) |
| | | .setMatnrCode(warehouseAreasItems.getMatnrCode()); |
| | | AsnOrder order = asnOrderService.getById(warehouseAreasItems.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(warehouseAreasItems.getTrackCode())) { |
| | | if (waitPakinItem.getReceiptQty() > warehouseAreasItems.getAnfme() || waitPakinItem.getReceiptQty().compareTo(0.0) <= 0) { |
| | | throw new CoolException("组托数量不能大于收货数量且不能小于零!!"); |
| | | } |
| | | pakinItem.setAnfme(waitPakinItem.getReceiptQty()).setTrackCode(waitPakinItem.getTrackCode()); |
| | | } |
| | | } |
| | | items.add(pakinItem); |
| | | |
| | | WarehouseAreasItem warehouseAreasItems = warehouseAreasItemService.getById(pakinItem1.getId()); |
| | | if (null == warehouseAreasItems) { |
| | | throw new CoolException("物料未送至收货区!!"); |
| | | } |
| | | WaitPakinItem pakinItem = new WaitPakinItem(); |
| | | pakinItem.setAnfme(warehouseAreasItems.getAnfme()) |
| | | .setPakinId(waitPakin1.getId()) |
| | | .setSource(warehouseAreasItems.getId()) |
| | | .setAsnId(warehouseAreasItems.getAsnId()) |
| | | .setAsnCode(warehouseAreasItems.getAsnCode()) |
| | | .setAsnItemId(warehouseAreasItems.getAsnItemId()) |
| | | .setIsptResult(warehouseAreasItems.getIsptResult()) |
| | | .setBatch(warehouseAreasItems.getSplrBatch()) |
| | | .setUnit(warehouseAreasItems.getStockUnit()) |
| | | .setFieldsIndex(warehouseAreasItems.getFieldsIndex()) |
| | | .setMatnrId(warehouseAreasItems.getMatnrId()) |
| | | .setMaktx(warehouseAreasItems.getMaktx()) |
| | | .setUpdateBy(userId) |
| | | .setCreateBy(userId) |
| | | .setMatnrCode(warehouseAreasItems.getMatnrCode()); |
| | | AsnOrder order = asnOrderService.getById(warehouseAreasItems.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.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()); |
| | | } |
| | | } |
| | | items.add(pakinItem); |
| | | |
| | | } |
| | | |
| | | double sum1 = items.stream().mapToDouble(WaitPakinItem::getAnfme).sum(); |
| | | |
| | | if (!waitPakinItemService.saveBatch(items)) { |
| | |
| | | |
| | | 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("收货区数据错误!!"); |
| | | } |
| | | // one.setAnfme(one.getAnfme() - pakinItem.getAnfme()) |
| | | one.setWorkQty(one.getWorkQty() + pakinItem.getAnfme() + one.getQty()) ; |
| | | one.setWorkQty(one.getWorkQty() + pakinItem.getAnfme() + one.getQty()); |
| | | if (one.getWorkQty() > one.getAnfme()) { |
| | | throw new CoolException("组托数量不能大于收货数量!!"); |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @description 组托解绑 |
| | | * @param |
| | | * @return |
| | | * @author Ryan |
| | | * @description 组托解绑 |
| | | * @time 2025/3/29 14:42 |
| | | */ |
| | | @Override |
| | |
| | | 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); |
| | |
| | | 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, |
| | |
| | | aoi.pack_name, |
| | | aoi.nty_status, |
| | | aoi.`status`, |
| | | aoi.`ispt_result`, |
| | | CASE |
| | | aoi.ispt_result |
| | | WHEN 0 THEN |
| | |
| | | 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> |