This commit is contained in:
parent
0665a12cb8
commit
4ee73bc191
|
|
@ -1,13 +1,16 @@
|
||||||
package com.nflg.wms.admin.controller;
|
package com.nflg.wms.admin.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.nflg.wms.common.pojo.qo.SRMOrderReceiveQO;
|
import com.nflg.wms.common.pojo.qo.SRMOrderReceiveQO;
|
||||||
|
import com.nflg.wms.common.pojo.qo.SRMQualityInspectionResult;
|
||||||
import com.nflg.wms.repository.entity.WmsSrmOrder;
|
import com.nflg.wms.repository.entity.WmsSrmOrder;
|
||||||
import com.nflg.wms.repository.entity.WmsSrmOrderItem;
|
import com.nflg.wms.repository.entity.WmsSrmOrderItem;
|
||||||
import com.nflg.wms.repository.service.IWmsSrmOrderItemService;
|
import com.nflg.wms.repository.entity.WmsSrmQualityInspection;
|
||||||
import com.nflg.wms.repository.service.IWmsSrmOrderService;
|
import com.nflg.wms.repository.entity.WmsTaskItem;
|
||||||
|
import com.nflg.wms.repository.service.*;
|
||||||
import com.nflg.wms.starter.BaseController;
|
import com.nflg.wms.starter.BaseController;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
@ -18,6 +21,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -34,18 +39,24 @@ public class SRMController extends BaseController {
|
||||||
@Resource
|
@Resource
|
||||||
private IWmsSrmOrderItemService srmOrderItemService;
|
private IWmsSrmOrderItemService srmOrderItemService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IWmsSrmQualityInspectionService srmQualityInspectionService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IWmsTaskService taskService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 接收SRM送货单
|
* 接收SRM送货单
|
||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
@PostMapping("/SendNFDelivery")
|
@PostMapping("/SendNFDelivery")
|
||||||
public Object receiveOrder(@RequestBody SRMOrderReceiveQO request){
|
public Object receiveOrder(@RequestBody SRMOrderReceiveQO request) {
|
||||||
try {
|
try {
|
||||||
WmsSrmOrder order=srmOrderService.lambdaQuery().eq(WmsSrmOrder::getNoteNum, request.getNoteNum()).one();
|
WmsSrmOrder order = srmOrderService.lambdaQuery().eq(WmsSrmOrder::getNoteNum, request.getNoteNum()).one();
|
||||||
if (Objects.nonNull(order)){
|
if (Objects.nonNull(order)) {
|
||||||
srmOrderService.removeById(order);
|
srmOrderService.removeById(order);
|
||||||
srmOrderItemService.remove(new LambdaQueryWrapper<WmsSrmOrderItem>().eq(WmsSrmOrderItem::getOrderId,order.getId()));
|
srmOrderItemService.remove(new LambdaQueryWrapper<WmsSrmOrderItem>().eq(WmsSrmOrderItem::getOrderId, order.getId()));
|
||||||
}else {
|
} else {
|
||||||
order = new WmsSrmOrder()
|
order = new WmsSrmOrder()
|
||||||
.setId(IdUtil.getSnowflakeNextId())
|
.setId(IdUtil.getSnowflakeNextId())
|
||||||
.setIuCode(request.getIuCode())
|
.setIuCode(request.getIuCode())
|
||||||
|
|
@ -58,14 +69,104 @@ public class SRMController extends BaseController {
|
||||||
srmOrderService.save(order);
|
srmOrderService.save(order);
|
||||||
}
|
}
|
||||||
WmsSrmOrder finalOrder = order;
|
WmsSrmOrder finalOrder = order;
|
||||||
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());
|
||||||
return item;
|
return item;
|
||||||
}).toList());
|
}).toList());
|
||||||
return 0;
|
return 0;
|
||||||
}catch (Exception ex){
|
} catch (Exception ex) {
|
||||||
log.error("SRM送货单保存失败",ex);
|
log.error("SRM送货单保存失败", ex);
|
||||||
|
return ex.getMessage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SRM 推送质检单到WMS
|
||||||
|
*/
|
||||||
|
@Transactional
|
||||||
|
@PostMapping("/SendNFInspect")
|
||||||
|
public Object receiveQualityInspection(@RequestBody SRMQualityInspectionResult request) {
|
||||||
|
Integer result = 1;
|
||||||
|
try {
|
||||||
|
WmsSrmQualityInspection inspect = srmQualityInspectionService.lambdaQuery()
|
||||||
|
.eq(WmsSrmQualityInspection::getInspectionNum, request.getInspectionNum())
|
||||||
|
.one();
|
||||||
|
List<WmsTaskItem> tasks = new ArrayList<WmsTaskItem>();
|
||||||
|
if (Objects.nonNull(inspect)) {
|
||||||
|
inspect.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())
|
||||||
|
.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 WmsTaskItem().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, "普通物料送货单"))
|
||||||
|
log.error("质检单生成上架任务失败");
|
||||||
|
|
||||||
|
return result;
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("SRM送货单保存失败", ex);
|
||||||
return ex.getMessage();
|
return ex.getMessage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
package com.nflg.wms.common.pojo.qo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SRMQualityInspectionResult {
|
||||||
|
/**
|
||||||
|
质检单号
|
||||||
|
*/
|
||||||
|
public String inspectionNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
工厂
|
||||||
|
*/
|
||||||
|
public String factory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
送货数量
|
||||||
|
*/
|
||||||
|
public BigDecimal deliveryQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
检验结果
|
||||||
|
*/
|
||||||
|
public String inspectionResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
物料号
|
||||||
|
*/
|
||||||
|
public String itemCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
供应商代码
|
||||||
|
*/
|
||||||
|
public String supplierNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
检验类型
|
||||||
|
*/
|
||||||
|
public String inspectionType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
采购单行号
|
||||||
|
*/
|
||||||
|
public String poLineNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
检验数量
|
||||||
|
*/
|
||||||
|
public BigDecimal inspectionQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
物料描述
|
||||||
|
*/
|
||||||
|
public String itemName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
单位
|
||||||
|
*/
|
||||||
|
public String unit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
收货仓库
|
||||||
|
*/
|
||||||
|
public String receivedWarehouse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
不合格原因
|
||||||
|
*/
|
||||||
|
public String unqualifiedReason;
|
||||||
|
|
||||||
|
/**
|
||||||
|
采购订单号
|
||||||
|
*/
|
||||||
|
public String poNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
物料凭证(收货时SAP返回的凭证)
|
||||||
|
*/
|
||||||
|
public String receiveNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
不合格数量
|
||||||
|
*/
|
||||||
|
public BigDecimal unqualifiedQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
合格数量合格数量
|
||||||
|
*/
|
||||||
|
public BigDecimal qualifiedQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
收货时的凭证
|
||||||
|
*/
|
||||||
|
public String materialBatch;
|
||||||
|
|
||||||
|
/**
|
||||||
|
收货时的批次
|
||||||
|
*/
|
||||||
|
public String receiveBatchNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
收货时的序列号
|
||||||
|
*/
|
||||||
|
public String serialNum;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
送货单行号
|
||||||
|
*/
|
||||||
|
public String lineNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
送货单号
|
||||||
|
*/
|
||||||
|
public String noteNum;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,149 @@
|
||||||
|
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_quality_inspection")
|
||||||
|
public class WmsSrmQualityInspection implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质检单号
|
||||||
|
*/
|
||||||
|
private String inspectionNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工厂
|
||||||
|
*/
|
||||||
|
private String factory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 送货数量
|
||||||
|
*/
|
||||||
|
private BigDecimal deliveryQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检验结果
|
||||||
|
*/
|
||||||
|
private String inspectionResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料编号
|
||||||
|
*/
|
||||||
|
private String itemCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商代码
|
||||||
|
*/
|
||||||
|
private String supplerNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检验类型
|
||||||
|
*/
|
||||||
|
private String inspectionType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购单行号
|
||||||
|
*/
|
||||||
|
private String poLineNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检验数量
|
||||||
|
*/
|
||||||
|
private BigDecimal inspectionQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料描述
|
||||||
|
*/
|
||||||
|
private String itemName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料单位
|
||||||
|
*/
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库编号
|
||||||
|
*/
|
||||||
|
private String receivedWarehouse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不合格原因
|
||||||
|
*/
|
||||||
|
private String unqualifiedReason;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购订单号
|
||||||
|
*/
|
||||||
|
private String poNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料凭证(收货时SAP返回的凭证)
|
||||||
|
*/
|
||||||
|
private String receiveNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不合格数量
|
||||||
|
*/
|
||||||
|
private BigDecimal unqualifiedQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合格数量
|
||||||
|
*/
|
||||||
|
private BigDecimal qualifiedQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收货时的凭证
|
||||||
|
*/
|
||||||
|
private String materialBatch;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收货时的序列号
|
||||||
|
*/
|
||||||
|
private String serialNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 送货单行号
|
||||||
|
*/
|
||||||
|
private String lineNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 送货单号
|
||||||
|
*/
|
||||||
|
private String noteNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接收时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime acceptTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最后修改时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime lastModifyTime;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
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.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString
|
||||||
|
@TableName("wms_task")
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class WmsTask implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务号,SJ-+任务源单号
|
||||||
|
*/
|
||||||
|
private String taskNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务来源(普通物料采购收货)
|
||||||
|
*/
|
||||||
|
private String taskFrom;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 任务源单号
|
||||||
|
*/
|
||||||
|
private String orderNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 最后一次添加任务单的时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime modifyTime;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,152 @@
|
||||||
|
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_task_item")
|
||||||
|
public class WmsTaskItem implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private String taskNumber;
|
||||||
|
|
||||||
|
private String poLineNumber;
|
||||||
|
|
||||||
|
private String poNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 送货单行号
|
||||||
|
*/
|
||||||
|
private String lineNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 送货单号
|
||||||
|
*/
|
||||||
|
private String noteNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料编号
|
||||||
|
*/
|
||||||
|
private String itemCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料描述
|
||||||
|
*/
|
||||||
|
private String itemName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料单位
|
||||||
|
*/
|
||||||
|
private String unit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库编号
|
||||||
|
*/
|
||||||
|
private String receivedWarehouse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 储位
|
||||||
|
*/
|
||||||
|
private String storageLocation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标志位
|
||||||
|
*/
|
||||||
|
private Short signPosition;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否质检
|
||||||
|
*/
|
||||||
|
private Boolean isQuality;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不合格数量
|
||||||
|
*/
|
||||||
|
private BigDecimal unqualifiedQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合格数量
|
||||||
|
*/
|
||||||
|
private BigDecimal qualifiedQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工厂
|
||||||
|
*/
|
||||||
|
private String factory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据状态 0 待上架;1 已上架;2 sap同步失败
|
||||||
|
*/
|
||||||
|
private Short dataStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sap 同步失败原因
|
||||||
|
*/
|
||||||
|
private String failResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上架操作人
|
||||||
|
*/
|
||||||
|
private Long operationUserId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上架操作人
|
||||||
|
*/
|
||||||
|
private String operationUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批次号
|
||||||
|
*/
|
||||||
|
private String batchNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 序列号,多个序列号使用;号隔开
|
||||||
|
*/
|
||||||
|
private String serialNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 报检数量
|
||||||
|
*/
|
||||||
|
private BigDecimal inspectionQty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料凭证编号
|
||||||
|
*/
|
||||||
|
private String materialVoucherNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料凭证年度
|
||||||
|
*/
|
||||||
|
private String materialVoucherYear;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料有效期
|
||||||
|
*/
|
||||||
|
private LocalDateTime periodTime;
|
||||||
|
|
||||||
|
private String inspectionOrder;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.nflg.wms.repository.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.nflg.wms.repository.entity.WmsSrmQualityInspection;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
public interface WmsSrmQualityInspectionMapper extends BaseMapper<WmsSrmQualityInspection> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.nflg.wms.repository.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.nflg.wms.repository.entity.WmsTaskItem;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
public interface WmsTaskItemMapper extends BaseMapper<WmsTaskItem> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.nflg.wms.repository.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.nflg.wms.repository.entity.WmsTask;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
public interface WmsTaskMapper extends BaseMapper<WmsTask> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.nflg.wms.repository.service;
|
||||||
|
|
||||||
|
import com.nflg.wms.repository.entity.WmsSrmQualityInspection;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
public interface IWmsSrmQualityInspectionService extends IService<WmsSrmQualityInspection> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.nflg.wms.repository.service;
|
||||||
|
|
||||||
|
import com.nflg.wms.repository.entity.WmsTaskItem;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
public interface IWmsTaskItemService extends IService<WmsTaskItem> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.nflg.wms.repository.service;
|
||||||
|
|
||||||
|
import com.nflg.wms.repository.entity.WmsTask;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.nflg.wms.repository.entity.WmsTaskItem;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
public interface IWmsTaskService extends IService<WmsTask> {
|
||||||
|
/**
|
||||||
|
生成任务单
|
||||||
|
*/
|
||||||
|
boolean generateTask(List<WmsTaskItem> tasks, String taskSource);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.nflg.wms.repository.service.impl;
|
||||||
|
|
||||||
|
import com.nflg.wms.repository.entity.WmsSrmQualityInspection;
|
||||||
|
import com.nflg.wms.repository.mapper.WmsSrmQualityInspectionMapper;
|
||||||
|
import com.nflg.wms.repository.service.IWmsSrmQualityInspectionService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class WmsSrmQualityInspectionServiceImpl extends ServiceImpl<WmsSrmQualityInspectionMapper, WmsSrmQualityInspection> implements IWmsSrmQualityInspectionService {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.nflg.wms.repository.service.impl;
|
||||||
|
|
||||||
|
import com.nflg.wms.repository.entity.WmsTaskItem;
|
||||||
|
import com.nflg.wms.repository.mapper.WmsTaskItemMapper;
|
||||||
|
import com.nflg.wms.repository.service.IWmsTaskItemService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class WmsTaskItemServiceImpl extends ServiceImpl<WmsTaskItemMapper, WmsTaskItem> implements IWmsTaskItemService {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,79 @@
|
||||||
|
package com.nflg.wms.repository.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.util.IdUtil;
|
||||||
|
import com.nflg.wms.repository.entity.WmsTask;
|
||||||
|
import com.nflg.wms.repository.entity.WmsTaskItem;
|
||||||
|
import com.nflg.wms.repository.mapper.WmsTaskMapper;
|
||||||
|
import com.nflg.wms.repository.service.IWmsTaskItemService;
|
||||||
|
import com.nflg.wms.repository.service.IWmsTaskService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 代码生成器生成
|
||||||
|
* @since 2025
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class WmsTaskServiceImpl extends ServiceImpl<WmsTaskMapper, WmsTask> implements IWmsTaskService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IWmsTaskItemService wmsTaskItemService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public boolean generateTask(List<WmsTaskItem> tasks, String taskSource) {
|
||||||
|
boolean result = false;
|
||||||
|
if (Objects.isNull(tasks) || CollectionUtil.isEmpty(tasks)) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
List<WmsTask> newTaskList = new ArrayList<WmsTask>();
|
||||||
|
List<WmsTask> oldTaskList = new ArrayList<WmsTask>();
|
||||||
|
tasks.forEach(task -> {
|
||||||
|
String taskNumber = "SJ-" + task.getNoteNum();
|
||||||
|
task.setId(IdUtil.getSnowflake().nextId());
|
||||||
|
task.setTaskNumber(taskNumber);
|
||||||
|
WmsTask wmsTask = lambdaQuery().eq(WmsTask::getTaskNumber, taskNumber).one();
|
||||||
|
if (Objects.nonNull(wmsTask)) {
|
||||||
|
if (!newTaskList.stream().anyMatch(t -> t.getTaskNumber().equals(taskNumber))) {
|
||||||
|
newTaskList.add(new WmsTask().setTaskFrom(taskSource)
|
||||||
|
.setId(IdUtil.getSnowflakeNextId())
|
||||||
|
.setTaskNumber(taskNumber)
|
||||||
|
.setOrderNumber(task.getNoteNum())
|
||||||
|
.setCreateTime(LocalDateTime.now())
|
||||||
|
.setModifyTime(LocalDateTime.now())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!oldTaskList.stream().anyMatch(t -> t.getTaskNumber().equals(taskNumber))) {
|
||||||
|
wmsTask.setModifyTime(LocalDateTime.now());
|
||||||
|
oldTaskList.add(wmsTask);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (CollectionUtil.isNotEmpty(newTaskList)) {
|
||||||
|
result = saveBatch(newTaskList);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result && CollectionUtil.isNotEmpty(oldTaskList)) {
|
||||||
|
result = updateBatchById(oldTaskList);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result) {
|
||||||
|
result = wmsTaskItemService.saveBatch(tasks);
|
||||||
|
}
|
||||||
|
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.WmsSrmQualityInspectionMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
|
|
@ -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.WmsTaskItemMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
|
|
@ -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.WmsTaskMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
|
|
@ -33,7 +33,7 @@ public class CodeGeneratorTest {
|
||||||
)
|
)
|
||||||
.strategyConfig(builder -> {
|
.strategyConfig(builder -> {
|
||||||
builder
|
builder
|
||||||
.addInclude("wms_srm_order_item") //只生成指定表
|
.addInclude("wms_task_item") //只生成指定表
|
||||||
.entityBuilder().idType(IdType.ASSIGN_ID)
|
.entityBuilder().idType(IdType.ASSIGN_ID)
|
||||||
.enableLombok()
|
.enableLombok()
|
||||||
.enableChainModel()
|
.enableChainModel()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue