refactor(wms): 重复打印功能,入库打印新加质检要求

- 修改 WmsAllocateTask、WmsInstockDetail、WmsInstockPrint 等领域模型的字段名称和含义
- 更新相关的 BO、VO 类以保持一致性
- 优化 WmsInstockDetailServiceImpl 和 WmsInstockPrintServiceImpl 中的逻辑
- 新增 printCode 方法实现批量打印功能
master
zangch@mesnac.com 4 months ago
parent f1820d0828
commit 41333ee8ee

@ -39,12 +39,12 @@ public class WmsAllocateTask extends TenantEntity {
private String batchCode;
/**
*
*
*/
private Long materialQty;
/**
*
*
*/
private Long apportionQty;

@ -124,14 +124,14 @@ public class WmsInstockDetail{
private BigDecimal printedNum;
/**
*
*
*/
private BigDecimal apportionQty;
/**
*
*/
private String isInspection;
// private String isInspection;
/**
* (0,1)

@ -85,8 +85,6 @@ public class WmsInstockOrder{
private String agvStatus;
@TableField(fill = FieldFill.INSERT)
private String createBy;

@ -38,12 +38,12 @@ public class WmsInstockPrint{
private String batchCode;
/**
*
*
*/
private Long materialQty;
/**
*
*
*/
private BigDecimal apportionQty;
@ -137,6 +137,11 @@ public class WmsInstockPrint{
*/
private String agvStatus;
/**
* (0,1)
*/
private String inspectionRequest;
/**
*
*/

@ -38,12 +38,12 @@ public class WmsAllocateTaskBo extends BaseEntity {
private String batchCode;
/**
*
*
*/
private Long materialQty;
/**
*
*
*/
private Long apportionQty;

@ -112,7 +112,7 @@ public class WmsInstockDetailBo{
private String tenantId;
/**
*
*
*/
private BigDecimal apportionQty;
@ -123,7 +123,7 @@ public class WmsInstockDetailBo{
/**
*
*
*/
private BigDecimal printNum;
/**
@ -175,7 +175,7 @@ public class WmsInstockDetailBo{
@TableField(exist = false)
private Map<String, Object> params = new HashMap<>();
// 分包数量
// 条码数量
private Integer splitPackageCount;
// 打印份数(仅当不分包时有效)
@ -193,7 +193,7 @@ public class WmsInstockDetailBo{
/**
* >1使
* >1使
*/
private List<Integer> packageQtyList;

@ -41,15 +41,15 @@ public class WmsInstockPrintBo extends BaseEntity {
private String batchCode;
/**
*
*
*/
// @NotNull(message = "条码数量不能为空", groups = { AddGroup.class, EditGroup.class })
// @NotNull(message = "每包数量不能为空", groups = { AddGroup.class, EditGroup.class })
private Long materialQty;
/**
*
*
*/
// @NotNull(message = "分包数量不能为空", groups = { AddGroup.class, EditGroup.class })
// @NotNull(message = "条码数量不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal apportionQty;
/**
@ -122,4 +122,9 @@ public class WmsInstockPrintBo extends BaseEntity {
*/
private String agvStatus;
/**
* (0,1)
*/
private String inspectionRequest;
}

@ -49,15 +49,15 @@ public class WmsAllocateTaskVo implements Serializable {
private String batchCode;
/**
*
*
*/
@ExcelProperty(value = "条码数量")
@ExcelProperty(value = "每包数量")
private Long materialQty;
/**
*
*
*/
@ExcelProperty(value = "分包数量")
@ExcelProperty(value = "条码数量")
private Long apportionQty;
/**

@ -140,7 +140,7 @@ public class WmsInstockDetailVo implements Serializable {
private String tenantId;
/**
*
*
*/
private BigDecimal apportionQty;

@ -46,15 +46,15 @@ public class WmsInstockPrintVo implements Serializable {
private String batchCode;
/**
*
*
*/
@ExcelProperty(value = "条码数量")
@ExcelProperty(value = "每包数量")
private Long materialQty;
/**
*
*
*/
@ExcelProperty(value = "分包数量")
@ExcelProperty(value = "条码数量")
private BigDecimal apportionQty;
/**
@ -153,4 +153,9 @@ public class WmsInstockPrintVo implements Serializable {
*/
private String agvStatus;
/**
* (0,1)
*/
private String inspectionRequest;
}

@ -103,7 +103,7 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService {
.select(BaseMaterialInfo::getInspectionRequest)
.leftJoin(BaseMaterialInfo.class, BaseMaterialInfo::getMaterialId, WmsInstockDetail::getMaterialId)
.eq(StringUtils.isNotBlank(bo.getIsInspection()), WmsInstockDetail::getIsInspection, bo.getIsInspection())
// .eq(StringUtils.isNotBlank(bo.getIsInspection()), WmsInstockDetail::getIsInspection, bo.getIsInspection())
.eq(bo.getInstockQty() != null, WmsInstockDetail::getInstockQty, bo.getInstockQty())
.eq(bo.getInstockDetailId() != null, WmsInstockDetail::getInstockDetailId, bo.getInstockDetailId())
@ -141,6 +141,7 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService {
baseMaterialInfo.setMaterialId(detailBo.getMaterialId());
List<BaseMaterialInfoVo> baseMaterialInfoVos = baseMaterialInfoService.queryList(baseMaterialInfo);
WmsInstockDetail add = MapstructUtils.convert(detailBo, WmsInstockDetail.class);
add.setMaterialId(baseMaterialInfoVos.get(0).getMaterialId());
add.setMaterialCode(baseMaterialInfoVos.get(0).getMaterialCode());
add.setMaterialName(baseMaterialInfoVos.get(0).getMaterialName());
add.setMaterialSpe(baseMaterialInfoVos.get(0).getMaterialSpec());
@ -230,6 +231,9 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService {
Integer printSeq = (int) wmsInstockPrintService.queryPrintNum(bo) + 1;
String baseOrder = generateOrder(printSeq);
BigDecimal totalPackaged = BigDecimal.ZERO;
Long materialId = bo.getMaterialId();
BaseMaterialInfoVo baseMaterialInfo = baseMaterialInfoService.queryById(materialId);
String inspectionRequest = baseMaterialInfo.getInspectionRequest();
if (splitInt > 1) {
// 分包逻辑 - 统一处理模式
List<Integer> packageQtyList = bo.getPackageQtyList();
@ -258,12 +262,13 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService {
WmsInstockPrint print = new WmsInstockPrint();
BeanUtils.copyProperties(bo, print);
print.setBatchCode(batchCode);
print.setMaterialId(bo.getMaterialId());
print.setMaterialId(materialId);
print.setApportionQty(BigDecimal.ONE); // 打印的包数1包
print.setMaterialQty(currentPackageQty.longValue()); // 每包的物料数量
print.setInboundStatus("0"); // 入库状态(0-待入库,1-已入库,2-入库中)
print.setCreateBy(LoginHelper.getUsername());
print.setCreateTime(new Date());
print.setInspectionRequest(inspectionRequest);//质检要求(0必检,1免检)
wmsInstockPrintService.insertWmsInstockPrint(print);
@ -281,10 +286,13 @@ public class WmsInstockDetailServiceImpl implements IWmsInstockDetailService {
WmsInstockPrint print = new WmsInstockPrint();
BeanUtils.copyProperties(bo, print);
print.setBatchCode(batchCode);
print.setMaterialId(bo.getMaterialId());
print.setMaterialId(materialId);
print.setApportionQty(copies); // 打印的包数(打印份数)
print.setMaterialQty(detail.getInstockQty().longValue()); // 每包的物料数量(全部入库数量)
print.setInboundStatus("0");//入库状态(0-待入库,1-已入库,2-入库中)
print.setCreateBy(LoginHelper.getUsername());
print.setCreateTime(new Date());
print.setInspectionRequest(inspectionRequest);//质检要求(0必检,1免检)
wmsInstockPrintService.insertWmsInstockPrint(print);

@ -18,7 +18,9 @@ import org.dromara.wms.domain.vo.WmsInstockPrintVo;
import org.dromara.wms.mapper.WmsInstockPrintMapper;
import org.dromara.wms.service.IWmsInstockPrintService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@ -91,10 +93,6 @@ public class WmsInstockPrintServiceImpl implements IWmsInstockPrintService {
.select(BaseMaterialCategory::getMaterialCategoryName)
.leftJoin(BaseMaterialCategory.class, BaseMaterialCategory::getMaterialCategoryId, WmsInstockPrint::getMaterialCategoryId)
//待入库列表新增
.eq(bo.getActualInboundTime() != null, WmsInstockPrint::getActualInboundTime, bo.getActualInboundTime())
.eq(StringUtils.isNotBlank(bo.getInboundStatus()), WmsInstockPrint::getInboundStatus, bo.getInboundStatus())
.eq(bo.getLocationId() != null, WmsInstockPrint::getLocationId, bo.getLocationId())
//条码打印原有
.eq(bo.getInstockPrintId() != null, WmsInstockPrint::getInstockPrintId, bo.getInstockPrintId())
.eq(StringUtils.isNotBlank(bo.getInstockCode()), WmsInstockPrint::getInstockCode, bo.getInstockCode())
@ -108,6 +106,16 @@ public class WmsInstockPrintServiceImpl implements IWmsInstockPrintService {
.like(StringUtils.isNotBlank(bo.getUnitName()), WmsInstockPrint::getUnitName, bo.getUnitName())
.eq(StringUtils.isNotBlank(bo.getCodeYesNo()), WmsInstockPrint::getCodeYesNo, bo.getCodeYesNo())
.eq(StringUtils.isNotBlank(bo.getMaterialCategoryId()), WmsInstockPrint::getMaterialCategoryId, bo.getMaterialCategoryId())
//质检要求(0必检,1免检)
.eq(StringUtils.isNotBlank(bo.getInspectionRequest()), WmsInstockPrint::getInspectionRequest, bo.getInspectionRequest())
//待入库列表新增
.eq(bo.getActualInboundTime() != null, WmsInstockPrint::getActualInboundTime, bo.getActualInboundTime())
.eq(StringUtils.isNotBlank(bo.getInboundStatus()), WmsInstockPrint::getInboundStatus, bo.getInboundStatus())
.eq(bo.getLocationId() != null, WmsInstockPrint::getLocationId, bo.getLocationId())
//AGV列表新增
.eq(StringUtils.isNotBlank(bo.getIsAgv()), WmsInstockPrint::getIsAgv, bo.getIsAgv())
.eq(StringUtils.isNotBlank(bo.getAgvStatus()), WmsInstockPrint::getAgvStatus, bo.getAgvStatus())
.orderByDesc(WmsInstockPrint::getCreateTime);
return lqw;
}
@ -168,4 +176,25 @@ public class WmsInstockPrintServiceImpl implements IWmsInstockPrintService {
}
return baseMapper.deleteByIds(ids) > 0;
}
/**
* -
*
*
*
* @param WmsInstockPrintBos -
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean printCOde(List<WmsInstockPrintVo> WmsInstockPrintBos) {
for (WmsInstockPrintVo vo : WmsInstockPrintBos){
//条码数量+1
BigDecimal apportionQty = vo.getApportionQty().add(new BigDecimal(1));
WmsInstockPrintBo wmsInstockPrintBo = MapstructUtils.convert(vo, WmsInstockPrintBo.class);
wmsInstockPrintBo.setApportionQty(apportionQty);
updateByBo(wmsInstockPrintBo);
}
return true;
}
}

Loading…
Cancel
Save