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 String batchCode;
/** /**
* *
*/ */
private Long materialQty; private Long materialQty;
/** /**
* *
*/ */
private Long apportionQty; private Long apportionQty;

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

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

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

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

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

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

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

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

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

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

@ -18,7 +18,9 @@ import org.dromara.wms.domain.vo.WmsInstockPrintVo;
import org.dromara.wms.mapper.WmsInstockPrintMapper; import org.dromara.wms.mapper.WmsInstockPrintMapper;
import org.dromara.wms.service.IWmsInstockPrintService; import org.dromara.wms.service.IWmsInstockPrintService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -91,10 +93,6 @@ public class WmsInstockPrintServiceImpl implements IWmsInstockPrintService {
.select(BaseMaterialCategory::getMaterialCategoryName) .select(BaseMaterialCategory::getMaterialCategoryName)
.leftJoin(BaseMaterialCategory.class, BaseMaterialCategory::getMaterialCategoryId, WmsInstockPrint::getMaterialCategoryId) .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(bo.getInstockPrintId() != null, WmsInstockPrint::getInstockPrintId, bo.getInstockPrintId())
.eq(StringUtils.isNotBlank(bo.getInstockCode()), WmsInstockPrint::getInstockCode, bo.getInstockCode()) .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()) .like(StringUtils.isNotBlank(bo.getUnitName()), WmsInstockPrint::getUnitName, bo.getUnitName())
.eq(StringUtils.isNotBlank(bo.getCodeYesNo()), WmsInstockPrint::getCodeYesNo, bo.getCodeYesNo()) .eq(StringUtils.isNotBlank(bo.getCodeYesNo()), WmsInstockPrint::getCodeYesNo, bo.getCodeYesNo())
.eq(StringUtils.isNotBlank(bo.getMaterialCategoryId()), WmsInstockPrint::getMaterialCategoryId, bo.getMaterialCategoryId()) .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); .orderByDesc(WmsInstockPrint::getCreateTime);
return lqw; return lqw;
} }
@ -168,4 +176,25 @@ public class WmsInstockPrintServiceImpl implements IWmsInstockPrintService {
} }
return baseMapper.deleteByIds(ids) > 0; 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