暂存版本
This commit is contained in:
parent
0430e35af3
commit
d77c8669a1
|
|
@ -0,0 +1,53 @@
|
||||||
|
package com.nflg.wms.admin.pojo.document;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import org.springframework.data.annotation.Id;
|
||||||
|
import org.springframework.data.mongodb.core.mapping.Document;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@Document(collection = "SrmMaterialReceiptScanCodes")
|
||||||
|
public class SrmMaterialReceiptScanCodes{
|
||||||
|
@Id
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收货单的单号
|
||||||
|
*/
|
||||||
|
private String orderNo;
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 收货单的单行ID号
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private String orderItemId;
|
||||||
|
/**
|
||||||
|
* 二维码编号
|
||||||
|
*/
|
||||||
|
private String codeId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数量
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private BigDecimal codeNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批次号
|
||||||
|
*/
|
||||||
|
private String batchNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 序列号
|
||||||
|
*/
|
||||||
|
private String serialNumbers;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 二维码内容
|
||||||
|
*/
|
||||||
|
private String codeContent;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
package com.nflg.wms.admin.repository;
|
||||||
|
|
||||||
|
import com.nflg.wms.admin.pojo.document.SrmMaterialReceiptScanCodes;
|
||||||
|
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public interface SrmMaterialReceiptCanCodesRepository extends MongoRepository<SrmMaterialReceiptScanCodes, String> {
|
||||||
|
}
|
||||||
|
|
@ -98,7 +98,6 @@ public class NormalPGIControllerService {
|
||||||
WmsSrmOrder order = wmsSrmOrderService.lambdaQuery().eq(WmsSrmOrder::getNoteNum, orderNo).one();
|
WmsSrmOrder order = wmsSrmOrderService.lambdaQuery().eq(WmsSrmOrder::getNoteNum, orderNo).one();
|
||||||
if (Objects.isNull(order))
|
if (Objects.isNull(order))
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
PDAOrderVO pdaOrderVO = new PDAOrderVO();
|
PDAOrderVO pdaOrderVO = new PDAOrderVO();
|
||||||
// 设置订单头基本信息
|
// 设置订单头基本信息
|
||||||
pdaOrderVO.setNoteNum(order.getNoteNum());
|
pdaOrderVO.setNoteNum(order.getNoteNum());
|
||||||
|
|
@ -164,7 +163,7 @@ public class NormalPGIControllerService {
|
||||||
if ("3".equals(lbprt) || "4".equals(lbprt)) {
|
if ("3".equals(lbprt) || "4".equals(lbprt)) {
|
||||||
VUtil.trueThrowBusinessError(
|
VUtil.trueThrowBusinessError(
|
||||||
CollectionUtil.isEmpty(item.getScanCodes()) ||
|
CollectionUtil.isEmpty(item.getScanCodes()) ||
|
||||||
item.getScanCodes().stream().anyMatch(code -> CollectionUtil.isEmpty(code.getSerialNumbers()))
|
item.getScanCodes().stream().anyMatch(code -> StrUtil.isBlank(code.getSerialNumbers()))
|
||||||
).throwMessage("此物料[" + item.getItemCode() + "]必须填写序列号,订单号:" + item.getPoNum());
|
).throwMessage("此物料[" + item.getItemCode() + "]必须填写序列号,订单号:" + item.getPoNum());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -208,21 +207,25 @@ public class NormalPGIControllerService {
|
||||||
receipt.setCreateUserId(UserUtil.getUserId());
|
receipt.setCreateUserId(UserUtil.getUserId());
|
||||||
receipt.setCreateUserName(UserUtil.getUserName());
|
receipt.setCreateUserName(UserUtil.getUserName());
|
||||||
//条码内容
|
//条码内容
|
||||||
|
WmsSrmMaterialReceiptItem receiptItem = new WmsSrmMaterialReceiptItem();
|
||||||
|
receiptItem.setCodeId(scanCode.getCodeId());
|
||||||
|
receiptItem.setCodeNum(scanCode.getCodeNum());
|
||||||
|
receiptItem.setBatchNumber(scanCode.getBatchNumber());
|
||||||
|
receiptItem.setSerialNumber(scanCode.getSerialNumbers());
|
||||||
|
receiptItem.setCodeContent(scanCode.getCodeContent());
|
||||||
|
receiptItem.setOrderItemId(item.getOrderItemId());
|
||||||
|
receiptItem.setCreateUserId(UserUtil.getUserId());
|
||||||
|
receiptItem.setCreateUserName(UserUtil.getUserName());
|
||||||
|
receiptItem.setCreateTime(LocalDateTime.now());
|
||||||
|
receiptItem.setReceiptId(receiptId);
|
||||||
|
receiptItem.setId(IdUtil.getSnowflakeNextId());
|
||||||
|
receiptItems.add(receiptItem);
|
||||||
|
|
||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(item.getScanCodes())) {
|
if (CollectionUtil.isNotEmpty(item.getScanCodes())) {
|
||||||
item.getScanCodes().forEach(scanCode -> {
|
item.getScanCodes().forEach(scanCode -> {
|
||||||
WmsSrmMaterialReceiptItem receiptItem = new WmsSrmMaterialReceiptItem();
|
|
||||||
receiptItem.setCodeId(scanCode.getCodeId());
|
|
||||||
receiptItem.setCodeNum(scanCode.getCodeNum());
|
|
||||||
receiptItem.setBatchNumber(scanCode.getBatchNumber());
|
|
||||||
receiptItem.setSerialNumber(StrUtil.join(";", scanCode.getSerialNumbers()));
|
|
||||||
receiptItem.setCodeContent(scanCode.getCodeContent());
|
|
||||||
receiptItem.setOrderItemId(item.getOrderItemId());
|
|
||||||
receiptItem.setCreateUserId(UserUtil.getUserId());
|
|
||||||
receiptItem.setCreateUserName(UserUtil.getUserName());
|
|
||||||
receiptItem.setCreateTime(LocalDateTime.now());
|
|
||||||
receiptItem.setReceiptId(receiptId);
|
|
||||||
receiptItem.setId(IdUtil.getSnowflakeNextId());
|
|
||||||
receiptItems.add(receiptItem);
|
|
||||||
|
|
||||||
if (isQuality) {
|
if (isQuality) {
|
||||||
//质检物料发送到质检单
|
//质检物料发送到质检单
|
||||||
|
|
@ -291,8 +294,9 @@ public class NormalPGIControllerService {
|
||||||
//序列号和批次号验证
|
//序列号和批次号验证
|
||||||
validateScanCodes(item, materialInfoInOrder);
|
validateScanCodes(item, materialInfoInOrder);
|
||||||
boolean isQuality = materialInfoInOrder.getKzkri().equals("X");
|
boolean isQuality = materialInfoInOrder.getKzkri().equals("X");
|
||||||
// 生成相关单据
|
// 生成收货单、任务单、质检单 数据集合
|
||||||
generyReceipt(item, isQuality, materialInfoInOrder, receipts, receiptitems, tasks, srmLineVOListItems);
|
generyReceipt(item, isQuality, materialInfoInOrder, receipts, receiptitems, tasks, srmLineVOListItems);
|
||||||
|
|
||||||
generateSAPData(item, materialInfoInOrder, zwm3A17DTOS);
|
generateSAPData(item, materialInfoInOrder, zwm3A17DTOS);
|
||||||
});
|
});
|
||||||
//生成wms的单据
|
//生成wms的单据
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ public class PDAScanCodeQO {
|
||||||
/**
|
/**
|
||||||
* 序列号
|
* 序列号
|
||||||
*/
|
*/
|
||||||
private List<String> serialNumbers;
|
private String serialNumbers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 二维码内容
|
* 二维码内容
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,119 @@
|
||||||
|
package com.nflg.wms.repository.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@TableName("wms_srm_material_qms_receipt_item")
|
||||||
|
public class WmsSrmMaterialQmsReceiptItem implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收货单的ID
|
||||||
|
*/
|
||||||
|
private Long receiptId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单id
|
||||||
|
*/
|
||||||
|
private Long orderId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 送货单行号
|
||||||
|
*/
|
||||||
|
private String lineNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购订单号
|
||||||
|
*/
|
||||||
|
private String poNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购订单行号
|
||||||
|
*/
|
||||||
|
private String poLineNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料编码
|
||||||
|
*/
|
||||||
|
private String itemCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料描述
|
||||||
|
*/
|
||||||
|
private String itemName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单位
|
||||||
|
*/
|
||||||
|
private String uomCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收货人编号
|
||||||
|
*/
|
||||||
|
private Long createUserId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收货人名称
|
||||||
|
*/
|
||||||
|
private String createUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 扫描时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收货数量
|
||||||
|
*/
|
||||||
|
private BigDecimal receiptNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库编号
|
||||||
|
*/
|
||||||
|
private String receivedWarehouse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 储位
|
||||||
|
*/
|
||||||
|
private String storageLocation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已入库数量
|
||||||
|
*/
|
||||||
|
private BigDecimal inQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已检数量
|
||||||
|
*/
|
||||||
|
private BigDecimal checkQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 送货单号
|
||||||
|
*/
|
||||||
|
private String noteNum;
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
package com.nflg.wms.repository.entity;
|
package com.nflg.wms.repository.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
@ -7,7 +9,6 @@ import lombok.ToString;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -27,33 +28,59 @@ public class WmsSrmMaterialReceipt implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 普通物料送货单的详情ID
|
* 工厂
|
||||||
*/
|
*/
|
||||||
private Long orderItemId;
|
private String iuCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 收货数量,如果是需要质检的,数量为0
|
* 送货单号
|
||||||
*/
|
*/
|
||||||
private BigDecimal receiptNum;
|
private String noteNum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否质检
|
* 采购组
|
||||||
*/
|
*/
|
||||||
private Boolean isQuality;
|
private String purchaseGroup;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 越库数量
|
* 运单号
|
||||||
*/
|
*/
|
||||||
private BigDecimal crossNumber;
|
private String waybillNum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 收货数量
|
* 供应商编码
|
||||||
|
*/
|
||||||
|
private String supplierNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商名称
|
||||||
|
*/
|
||||||
|
private String supplierName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公司
|
||||||
|
*/
|
||||||
|
private String ouCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime deliveryNoteDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收货单编号
|
||||||
|
*/
|
||||||
|
private String receiptNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 收货人编号
|
* 收货人编号
|
||||||
*/
|
*/
|
||||||
|
|
@ -63,4 +90,19 @@ public class WmsSrmMaterialReceipt implements Serializable {
|
||||||
* 收货人名称
|
* 收货人名称
|
||||||
*/
|
*/
|
||||||
private String createUserName;
|
private String createUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否存在质检的物料
|
||||||
|
*/
|
||||||
|
private Boolean isQuality;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质检物料的入库状态 0 未完成,1 已完成
|
||||||
|
*/
|
||||||
|
private Short qualitySapStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 未质检物料的入库状态
|
||||||
|
*/
|
||||||
|
private Short sapStatus;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,34 +33,44 @@ public class WmsSrmMaterialReceiptItem implements Serializable {
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 收货信息ID
|
* 收货单的ID
|
||||||
*/
|
*/
|
||||||
private Long receiptId;
|
private Long receiptId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 二维码编号
|
* 订单id
|
||||||
*/
|
*/
|
||||||
private String codeId;
|
private Long orderId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数量
|
* 送货单行号
|
||||||
*/
|
*/
|
||||||
private BigDecimal codeNum;
|
private String lineNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批次号
|
* 采购订单号
|
||||||
*/
|
*/
|
||||||
private String batchNumber;
|
private String poNum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 序列号,多个序列号使用;号隔开
|
* 采购订单行号
|
||||||
*/
|
*/
|
||||||
private String serialNumber;
|
private String poLineNumber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 二维码内容
|
* 物料编码
|
||||||
*/
|
*/
|
||||||
private String codeContent;
|
private String itemCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料描述
|
||||||
|
*/
|
||||||
|
private String itemName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单位
|
||||||
|
*/
|
||||||
|
private String uomCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 收货人编号
|
* 收货人编号
|
||||||
|
|
@ -78,7 +88,27 @@ public class WmsSrmMaterialReceiptItem implements Serializable {
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 送货单的单号ID
|
* 收货数量
|
||||||
*/
|
*/
|
||||||
private Long orderItemId;
|
private BigDecimal receiptNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库编号
|
||||||
|
*/
|
||||||
|
private String receivedWarehouse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 储位
|
||||||
|
*/
|
||||||
|
private String storageLocation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已入库数量
|
||||||
|
*/
|
||||||
|
private BigDecimal inQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 送货单号
|
||||||
|
*/
|
||||||
|
private String noteNum;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
*
|
*
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author 代码生成器生成
|
* @author 代码生成器生成
|
||||||
|
|
@ -95,4 +95,9 @@ public class WmsSrmOrderItem implements Serializable {
|
||||||
* 是否质检
|
* 是否质检
|
||||||
*/
|
*/
|
||||||
private Boolean isQuality;
|
private Boolean isQuality;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收货数量
|
||||||
|
*/
|
||||||
|
private BigDecimal receiptQty;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -146,4 +146,9 @@ public class WmsSrmQualityInspection implements Serializable {
|
||||||
* 最后修改时间
|
* 最后修改时间
|
||||||
*/
|
*/
|
||||||
private LocalDateTime lastModifyTime;
|
private LocalDateTime lastModifyTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SAP同步状态 0 已同步,1 未同步
|
||||||
|
*/
|
||||||
|
private Short sapStatus;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.nflg.wms.repository.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.nflg.wms.repository.entity.WmsSrmMaterialQmsReceiptItem;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
public interface WmsSrmMaterialQmsReceiptItemMapper extends BaseMapper<WmsSrmMaterialQmsReceiptItem> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.nflg.wms.repository.service;
|
||||||
|
|
||||||
|
import com.nflg.wms.repository.entity.WmsSrmMaterialQmsReceiptItem;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
public interface IWmsSrmMaterialQmsReceiptItemService extends IService<WmsSrmMaterialQmsReceiptItem> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -19,4 +19,6 @@ import jakarta.validation.Valid;
|
||||||
public interface IWmsSrmQualityInspectionService extends IService<WmsSrmQualityInspection> {
|
public interface IWmsSrmQualityInspectionService extends IService<WmsSrmQualityInspection> {
|
||||||
|
|
||||||
IPage<QualityInspectionVO> search(@Valid NomalQMOrderSearchQO request);
|
IPage<QualityInspectionVO> search(@Valid NomalQMOrderSearchQO request);
|
||||||
|
|
||||||
|
boolean saveQualityInspection(@Valid WmsSrmQualityInspection request);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.nflg.wms.repository.service.impl;
|
||||||
|
|
||||||
|
import com.nflg.wms.repository.entity.WmsSrmMaterialQmsReceiptItem;
|
||||||
|
import com.nflg.wms.repository.mapper.WmsSrmMaterialQmsReceiptItemMapper;
|
||||||
|
import com.nflg.wms.repository.service.IWmsSrmMaterialQmsReceiptItemService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class WmsSrmMaterialQmsReceiptItemServiceImpl extends ServiceImpl<WmsSrmMaterialQmsReceiptItemMapper, WmsSrmMaterialQmsReceiptItem> implements IWmsSrmMaterialQmsReceiptItemService {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -2,24 +2,31 @@ package com.nflg.wms.repository.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.nflg.wms.common.pojo.PageData;
|
import com.nflg.wms.common.pojo.PageData;
|
||||||
import com.nflg.wms.common.pojo.qo.NomalQMOrderSearchQO;
|
import com.nflg.wms.common.pojo.qo.NomalQMOrderSearchQO;
|
||||||
import com.nflg.wms.common.pojo.vo.QualityInspectionVO;
|
import com.nflg.wms.common.pojo.vo.QualityInspectionVO;
|
||||||
import com.nflg.wms.common.pojo.vo.StorageVO;
|
import com.nflg.wms.common.pojo.vo.StorageVO;
|
||||||
import com.nflg.wms.repository.entity.WmsBin;
|
import com.nflg.wms.repository.entity.*;
|
||||||
import com.nflg.wms.repository.entity.WmsSrmQualityInspection;
|
|
||||||
import com.nflg.wms.repository.mapper.WmsSrmQualityInspectionMapper;
|
import com.nflg.wms.repository.mapper.WmsSrmQualityInspectionMapper;
|
||||||
|
import com.nflg.wms.repository.service.IWmsSrmMaterialQmsReceiptItemService;
|
||||||
|
import com.nflg.wms.repository.service.IWmsSrmMaterialReceiptItemService;
|
||||||
|
import com.nflg.wms.repository.service.IWmsSrmMaterialReceiptService;
|
||||||
import com.nflg.wms.repository.service.IWmsSrmQualityInspectionService;
|
import com.nflg.wms.repository.service.IWmsSrmQualityInspectionService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.postgresql.core.Utils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 服务实现类
|
* 服务实现类
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author 代码生成器生成
|
* @author 代码生成器生成
|
||||||
|
|
@ -28,8 +35,42 @@ import java.util.List;
|
||||||
@Service
|
@Service
|
||||||
public class WmsSrmQualityInspectionServiceImpl extends ServiceImpl<WmsSrmQualityInspectionMapper, WmsSrmQualityInspection> implements IWmsSrmQualityInspectionService {
|
public class WmsSrmQualityInspectionServiceImpl extends ServiceImpl<WmsSrmQualityInspectionMapper, WmsSrmQualityInspection> implements IWmsSrmQualityInspectionService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IWmsSrmMaterialQmsReceiptItemService wmsSrmMaterialQmsReceiptItemService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IWmsSrmMaterialReceiptService wmsSrmMaterialReceiptService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<QualityInspectionVO> search(NomalQMOrderSearchQO request) {
|
public IPage<QualityInspectionVO> search(NomalQMOrderSearchQO request) {
|
||||||
return baseMapper.search(request,new Page<>(request.getPage(),request.getPageSize()));
|
return baseMapper.search(request, new Page<>(request.getPage(), request.getPageSize()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public boolean saveQualityInspection(WmsSrmQualityInspection request) {
|
||||||
|
boolean result = this.save(request);
|
||||||
|
if (result) {
|
||||||
|
result = wmsSrmMaterialQmsReceiptItemService.update(
|
||||||
|
new LambdaUpdateWrapper<WmsSrmMaterialQmsReceiptItem>()
|
||||||
|
.setSql("check_qty = check_qty + " + request.getUnqualifiedQty().add(request.getQualifiedQty()))
|
||||||
|
.eq(WmsSrmMaterialQmsReceiptItem::getNoteNum, request.getNoteNum())
|
||||||
|
.eq(WmsSrmMaterialQmsReceiptItem::getLineNumber, request.getLineNumber())
|
||||||
|
);
|
||||||
|
//修改状态
|
||||||
|
List<WmsSrmMaterialQmsReceiptItem> receiptItems = wmsSrmMaterialQmsReceiptItemService.lambdaQuery()
|
||||||
|
.eq(WmsSrmMaterialQmsReceiptItem::getNoteNum, request.getNoteNum())
|
||||||
|
.apply("check_qty>in_qty")
|
||||||
|
.list();
|
||||||
|
//修改下状态
|
||||||
|
if (CollectionUtil.isNotEmpty(receiptItems)) {
|
||||||
|
// result =wmsSrmMaterialReceiptService.update(
|
||||||
|
// new LambdaUpdateWrapper<WmsSrmMaterialQmsReceiptItem>()
|
||||||
|
// .setSql("check_qty = check_qty + " + request.getUnqualifiedQty().add(request.getQualifiedQty()))
|
||||||
|
// .eq(WmsSrmMaterialQmsReceiptItem::getNoteNum, request.getNoteNum())
|
||||||
|
// .eq(WmsSrmMaterialQmsReceiptItem::getLineNumber, request.getLineNumber())
|
||||||
|
// );
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.nflg.wms.repository.mapper.WmsSrmMaterialQmsReceiptItemMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
|
|
@ -17,10 +17,8 @@
|
||||||
select
|
select
|
||||||
a.inspection_num,a.factory,a.suppler_num as supplier_num,c.supplier_name,a.delivery_qty,a.inspection_result,a.item_code,a.inspection_type,
|
a.inspection_num,a.factory,a.suppler_num as supplier_num,c.supplier_name,a.delivery_qty,a.inspection_result,a.item_code,a.inspection_type,
|
||||||
a.po_line_number,a.inspection_qty,a.item_name,a.unit,a.received_warehouse,a.unqualified_reason,a.po_num,a.receive_num,a.unqualified_qty,
|
a.po_line_number,a.inspection_qty,a.item_name,a.unit,a.received_warehouse,a.unqualified_reason,a.po_num,a.receive_num,a.unqualified_qty,
|
||||||
a.qualified_qty,a.material_batch as receive_batch_num,a.serial_num,a.line_number,a.note_num,COALESCE(b.data_status,0) as
|
a.qualified_qty,a.material_batch as receive_batch_num,a.serial_num,a.line_number,a.note_num,,a.sap_status as in_status
|
||||||
in_status
|
from wms_srm_quality_inspection a
|
||||||
from wms_srm_quality_inspection a left join wms_in_task_item b on a.note_num=b.note_num and
|
|
||||||
a.line_number=b.line_number
|
|
||||||
left join user_supplier c on a.suppler_num=c.supplier_code
|
left join user_supplier c on a.suppler_num=c.supplier_code
|
||||||
<where>
|
<where>
|
||||||
<if test="request.poNum !=null and request.poNum !='' ">
|
<if test="request.poNum !=null and request.poNum !='' ">
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ public class CodeGeneratorTest {
|
||||||
)
|
)
|
||||||
.strategyConfig(builder -> {
|
.strategyConfig(builder -> {
|
||||||
builder
|
builder
|
||||||
.addInclude("wms_in_produce_back_ticket_item") //只生成指定表
|
.addInclude("wms_srm_material_receipt") //只生成指定表
|
||||||
.entityBuilder().idType(IdType.ASSIGN_ID)
|
.entityBuilder().idType(IdType.ASSIGN_ID)
|
||||||
.enableLombok()
|
.enableLombok()
|
||||||
.enableChainModel()
|
.enableChainModel()
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
@ -80,6 +81,7 @@ public class SRMController extends BaseController {
|
||||||
srmOrderItemService.saveBatch(request.getResultSet().stream().map(it -> {
|
srmOrderItemService.saveBatch(request.getResultSet().stream().map(it -> {
|
||||||
WmsSrmOrderItem item = Convert.convert(WmsSrmOrderItem.class, it);
|
WmsSrmOrderItem item = Convert.convert(WmsSrmOrderItem.class, it);
|
||||||
item.setOrderId(finalOrder.getId());
|
item.setOrderId(finalOrder.getId());
|
||||||
|
item.setReceiptQty(new BigDecimal(0));
|
||||||
return item;
|
return item;
|
||||||
}).toList());
|
}).toList());
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -97,82 +99,38 @@ public class SRMController extends BaseController {
|
||||||
@PostMapping("/SendNFInspect")
|
@PostMapping("/SendNFInspect")
|
||||||
public Object receiveQualityInspection(@RequestBody SRMQualityInspectionResult request) {
|
public Object receiveQualityInspection(@RequestBody SRMQualityInspectionResult request) {
|
||||||
Integer result = 1;
|
Integer result = 1;
|
||||||
|
WmsSrmQualityInspection inspect = new WmsSrmQualityInspection()
|
||||||
|
.setId(IdUtil.getSnowflakeNextId())
|
||||||
|
.setInspectionNum(request.getInspectionNum())
|
||||||
|
.setFactory(request.getFactory())
|
||||||
|
.setDeliveryQty(request.getDeliveryQty())
|
||||||
|
.setInspectionResult(request.getInspectionResult())
|
||||||
|
.setItemCode(request.getItemCode())
|
||||||
|
.setSupplerNum(request.getSupplierNum())
|
||||||
|
.setInspectionType(request.getInspectionType())
|
||||||
|
.setPoLineNumber(String.valueOf(request.getPoLineNumber()))
|
||||||
|
.setInspectionQty(request.getInspectionQty())
|
||||||
|
.setItemName(request.getItemName())
|
||||||
|
.setUnit(request.getUnit())
|
||||||
|
.setReceivedWarehouse(request.getReceivedWarehouse())
|
||||||
|
.setUnqualifiedReason(request.getUnqualifiedReason())
|
||||||
|
.setReceiveNum(request.getReceiveNum())
|
||||||
|
.setPoNum(request.getPoNum())
|
||||||
|
.setUnqualifiedQty(request.getUnqualifiedQty())
|
||||||
|
.setQualifiedQty(request.getQualifiedQty())
|
||||||
|
.setMaterialBatch(request.getMaterialBatch())
|
||||||
|
.setSerialNum(request.getSerialNum())
|
||||||
|
.setLineNumber(request.getLineNumber())
|
||||||
|
.setNoteNum(request.getNoteNum())
|
||||||
|
.setSapStatus((short) 0)
|
||||||
|
.setAcceptTime(LocalDateTime.now());
|
||||||
try {
|
try {
|
||||||
WmsSrmQualityInspection inspect = srmQualityInspectionService.lambdaQuery()
|
result = srmQualityInspectionService.saveQualityInspection(inspect) ? 0 : 1;
|
||||||
.eq(WmsSrmQualityInspection::getInspectionNum, request.getInspectionNum())
|
if (result == 0) {
|
||||||
.one();
|
log.error("质检单生成上架任务成功");
|
||||||
List<WmsInTaskItem> tasks = new ArrayList<WmsInTaskItem>();
|
return result;
|
||||||
if (Objects.nonNull(inspect)) {
|
} else
|
||||||
inspect.setFactory(request.getFactory())
|
return "质检单生成上架任务失败";
|
||||||
.setDeliveryQty(request.getDeliveryQty())
|
|
||||||
.setInspectionResult(request.getInspectionResult())
|
|
||||||
.setItemCode(request.getItemCode())
|
|
||||||
.setItemName(request.getItemName())
|
|
||||||
.setSupplerNum(request.getSupplierNum())
|
|
||||||
.setInspectionType(request.getInspectionType())
|
|
||||||
.setPoLineNumber(String.valueOf(request.getPoLineNumber()))
|
|
||||||
.setInspectionQty(request.getInspectionQty())
|
|
||||||
.setUnit(request.getUnit())
|
|
||||||
.setReceivedWarehouse(request.getReceivedWarehouse())
|
|
||||||
.setUnqualifiedQty(request.getUnqualifiedQty())
|
|
||||||
.setPoNum(request.getPoNum())
|
|
||||||
.setQualifiedQty(request.getQualifiedQty())
|
|
||||||
.setMaterialBatch(request.getMaterialBatch())
|
|
||||||
.setSerialNum(request.getSerialNum())
|
|
||||||
.setLineNumber(request.getLineNumber())
|
|
||||||
.setNoteNum(request.getNoteNum())
|
|
||||||
.setLastModifyTime(LocalDateTime.now());
|
|
||||||
result = srmQualityInspectionService.updateById(inspect) ? 0 : 1;
|
|
||||||
} else {
|
|
||||||
inspect = new WmsSrmQualityInspection()
|
|
||||||
.setId(IdUtil.getSnowflakeNextId())
|
|
||||||
.setInspectionNum(request.getInspectionNum())
|
|
||||||
.setFactory(request.getFactory())
|
|
||||||
.setDeliveryQty(request.getDeliveryQty())
|
|
||||||
.setInspectionResult(request.getInspectionResult())
|
|
||||||
.setItemCode(request.getItemCode())
|
|
||||||
.setItemName(request.getItemName())
|
|
||||||
.setSupplerNum(request.getSupplierNum())
|
|
||||||
.setInspectionType(request.getInspectionType())
|
|
||||||
.setPoLineNumber(String.valueOf(request.getPoLineNumber()))
|
|
||||||
.setInspectionQty(request.getInspectionQty())
|
|
||||||
.setUnit(request.getUnit())
|
|
||||||
.setReceivedWarehouse(request.getReceivedWarehouse())
|
|
||||||
.setUnqualifiedQty(request.getUnqualifiedQty())
|
|
||||||
.setPoNum(request.getPoNum())
|
|
||||||
.setQualifiedQty(request.getQualifiedQty())
|
|
||||||
.setMaterialBatch(request.getMaterialBatch())
|
|
||||||
.setSerialNum(request.getSerialNum())
|
|
||||||
.setLineNumber(request.getLineNumber())
|
|
||||||
.setNoteNum(request.getNoteNum())
|
|
||||||
.setAcceptTime(LocalDateTime.now());
|
|
||||||
result = srmQualityInspectionService.save(inspect) ? 0 : 1;
|
|
||||||
}
|
|
||||||
tasks.add(
|
|
||||||
new WmsInTaskItem().setItemCode(request.getItemCode())
|
|
||||||
.setItemName(request.getItemName())
|
|
||||||
.setReceivedWarehouse(request.getReceivedWarehouse())
|
|
||||||
.setInspectionQty(request.getInspectionQty())
|
|
||||||
.setIsQuality(true)
|
|
||||||
.setFactory(request.getFactory())
|
|
||||||
.setFailResult(request.unqualifiedReason)
|
|
||||||
.setPoLineNumber(String.valueOf(request.getPoLineNumber()))
|
|
||||||
.setPoNum(request.getPoNum())
|
|
||||||
.setUnit(request.getUnit())
|
|
||||||
.setUnqualifiedQty(request.getUnqualifiedQty())
|
|
||||||
.setQualifiedQty(request.getQualifiedQty())
|
|
||||||
.setSerialNumber(String.valueOf(request.getSerialNum()))
|
|
||||||
.setSerialNumber(String.valueOf(request.getSerialNum()))
|
|
||||||
.setLineNumber(String.valueOf(request.getLineNumber()))
|
|
||||||
.setNoteNum(request.getNoteNum())
|
|
||||||
.setInspectionOrder(request.receiveNum)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (result == 0 && CollectionUtil.isNotEmpty(tasks))
|
|
||||||
if (!taskService.generateTask(tasks, (short) 1))
|
|
||||||
log.error("质检单生成上架任务失败");
|
|
||||||
|
|
||||||
return result;
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
log.error("SRM送货单保存失败", ex);
|
log.error("SRM送货单保存失败", ex);
|
||||||
return ex.getMessage();
|
return ex.getMessage();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue