fix(barcode): 修复条码处理阶段状态及优化二维码生成逻辑
- 将条码处理阶段常量中的"已拒收"状态更正为"已越库" - 注释掉生产订单控制器中重复的二维码批量保存逻辑 - 重构二维码获取方法,添加按项目获取二维码的逻辑并处理数量计算 - 修复SQL查询中COALESCE函数语法错误,确保锁定数量计算准确 - 调整质检任务排序规则,按检验状态和要求完成时间排序 - 注释掉工单处理中的消息推送逻辑避免重复通知
This commit is contained in:
parent
8a0c901fe9
commit
0b55fa9d1e
|
|
@ -916,13 +916,13 @@ public class QmsIssueTicketControllerService {
|
||||||
|
|
||||||
issueTicketToDoService.processed(entity.getId());
|
issueTicketToDoService.processed(entity.getId());
|
||||||
|
|
||||||
// 推送消息给工单创建人
|
// // 推送消息给工单创建人
|
||||||
if (entity.getCreateUserId() != null) {
|
// if (entity.getCreateUserId() != null) {
|
||||||
QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo()
|
// QmsIssueTicketToDo todoItem = new QmsIssueTicketToDo()
|
||||||
.setTicketId(entity.getId())
|
// .setTicketId(entity.getId())
|
||||||
.setHandlerUserId(entity.getCreateUserId());
|
// .setHandlerUserId(entity.getCreateUserId());
|
||||||
issueTicketToDoService.save(todoItem);
|
// issueTicketToDoService.save(todoItem);
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (request.getApprovalStatus() != 6) {
|
if (request.getApprovalStatus() != 6) {
|
||||||
wmsIncomingInspectionTaskCallbackService.processAsync(entity.getSourceId(), request.getApprovalStatus());
|
wmsIncomingInspectionTaskCallbackService.processAsync(entity.getSourceId(), request.getApprovalStatus());
|
||||||
|
|
|
||||||
|
|
@ -176,42 +176,43 @@ public class InProduceOrderController extends BaseController {
|
||||||
)
|
)
|
||||||
.toList();
|
.toList();
|
||||||
produceOrderItemService.saveBatch(items);
|
produceOrderItemService.saveBatch(items);
|
||||||
qrCodeMasterService.saveBatch(
|
// qrCodeMasterService.saveBatch(
|
||||||
items.stream().map(it -> new WmsQrCodeMaster()
|
// items.stream().map(it -> new WmsQrCodeMaster()
|
||||||
.setBarcodeCode(KeyUtil.next())
|
// .setBarcodeCode(KeyUtil.next())
|
||||||
.setProcessStage(BarCodeProcessStage.ForStorage.getState())
|
// .setProcessStage(BarCodeProcessStage.ForStorage.getState())
|
||||||
.setBarcodeType(BarCodeType.Production.getState())
|
// .setBarcodeType(BarCodeType.Production.getState())
|
||||||
.setMaterialCode(it.getMaterialNo())
|
// .setMaterialCode(it.getMaterialNo())
|
||||||
.setMaterialDescription(it.getMaterialDesc())
|
// .setMaterialDescription(it.getMaterialDesc())
|
||||||
.setPackagingType((short) 0)
|
// .setPackagingType((short) 0)
|
||||||
.setQuantity(NumberUtil.multiply(it.getNum(), parent.getNum()))
|
// .setQuantity(NumberUtil.multiply(it.getNum(), parent.getNum()))
|
||||||
.setUnit(it.getUnit())
|
// .setUnit(it.getUnit())
|
||||||
.setBatchNo(it.getBatchNo())
|
// .setBatchNo(it.getBatchNo())
|
||||||
.setSerialNo(it.getSernr())
|
// .setSerialNo(it.getSernr())
|
||||||
.setExtendId(it.getId())
|
// .setExtendId(it.getId())
|
||||||
.setCreateUserId(UserUtil.getUserId())
|
// .setCreateUserId(UserUtil.getUserId())
|
||||||
.setCreateUserName(UserUtil.getUserName())
|
// .setCreateUserName(UserUtil.getUserName())
|
||||||
.setCreateTime(LocalDateTime.now())
|
// .setCreateTime(LocalDateTime.now())
|
||||||
).toList()
|
// ).toList()
|
||||||
);
|
// );
|
||||||
} else {
|
|
||||||
qrCodeMasterService.save(new WmsQrCodeMaster()
|
|
||||||
.setBarcodeCode(KeyUtil.next())
|
|
||||||
.setProcessStage(BarCodeProcessStage.ForStorage.getState())
|
|
||||||
.setBarcodeType(BarCodeType.Production.getState())
|
|
||||||
.setMaterialCode(parent.getMaterialNo())
|
|
||||||
.setMaterialDescription(parent.getMaterialDesc())
|
|
||||||
.setPackagingType((short) 0)
|
|
||||||
.setQuantity(parent.getNum())
|
|
||||||
.setUnit(parent.getUnit())
|
|
||||||
.setBatchNo(parent.getBatchNo())
|
|
||||||
.setSerialNo(parent.getSernr())
|
|
||||||
.setExtendId(parent.getId())
|
|
||||||
.setCreateUserId(UserUtil.getUserId())
|
|
||||||
.setCreateUserName(UserUtil.getUserName())
|
|
||||||
.setCreateTime(LocalDateTime.now())
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
// else {
|
||||||
|
// qrCodeMasterService.save(new WmsQrCodeMaster()
|
||||||
|
// .setBarcodeCode(KeyUtil.next())
|
||||||
|
// .setProcessStage(BarCodeProcessStage.ForStorage.getState())
|
||||||
|
// .setBarcodeType(BarCodeType.Production.getState())
|
||||||
|
// .setMaterialCode(parent.getMaterialNo())
|
||||||
|
// .setMaterialDescription(parent.getMaterialDesc())
|
||||||
|
// .setPackagingType((short) 0)
|
||||||
|
// .setQuantity(parent.getNum())
|
||||||
|
// .setUnit(parent.getUnit())
|
||||||
|
// .setBatchNo(parent.getBatchNo())
|
||||||
|
// .setSerialNo(parent.getSernr())
|
||||||
|
// .setExtendId(parent.getId())
|
||||||
|
// .setCreateUserId(UserUtil.getUserId())
|
||||||
|
// .setCreateUserName(UserUtil.getUserName())
|
||||||
|
// .setCreateTime(LocalDateTime.now())
|
||||||
|
// );
|
||||||
|
// }
|
||||||
if (request.isNeedInspection()) {
|
if (request.isNeedInspection()) {
|
||||||
qmsService.pushPdiInspection(order.getOrderNo(), parent);
|
qmsService.pushPdiInspection(order.getOrderNo(), parent);
|
||||||
}
|
}
|
||||||
|
|
@ -286,7 +287,12 @@ public class InProduceOrderController extends BaseController {
|
||||||
if (order.getList()) {
|
if (order.getList()) {
|
||||||
items.removeIf(it -> it.getParentId() == 0);
|
items.removeIf(it -> it.getParentId() == 0);
|
||||||
}
|
}
|
||||||
List<QrCodeMasterPrintDTO> datas = convertToPrintDTO(qrCodeMasterService.getByExtendIds(items.stream().map(WmsInProduceOrderItem::getId).toList()));
|
BigDecimal parentNum = items.stream()
|
||||||
|
.filter(it -> it.getParentId() == 0)
|
||||||
|
.map(WmsInProduceOrderItem::getNum)
|
||||||
|
.findFirst()
|
||||||
|
.orElse(BigDecimal.ONE);
|
||||||
|
List<QrCodeMasterPrintDTO> datas = convertToPrintDTO(getQrCodesByItems(items,parentNum));
|
||||||
Map<String, Object> variables = new HashMap<>();
|
Map<String, Object> variables = new HashMap<>();
|
||||||
variables.put("list", datas);
|
variables.put("list", datas);
|
||||||
if (Objects.equals(type, 1)) {
|
if (Objects.equals(type, 1)) {
|
||||||
|
|
@ -300,6 +306,32 @@ public class InProduceOrderController extends BaseController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<WmsQrCodeMaster> getQrCodesByItems(List<WmsInProduceOrderItem> items, BigDecimal parentNum) {
|
||||||
|
List<WmsQrCodeMaster> qrCodeMasters = qrCodeMasterService.getByExtendIds(items.stream().map(WmsInProduceOrderItem::getId).toList());
|
||||||
|
items.removeIf(it -> qrCodeMasters.stream().anyMatch(qr -> qr.getExtendId().equals(it.getId())));
|
||||||
|
if (CollectionUtil.isNotEmpty(items)){
|
||||||
|
List<WmsQrCodeMaster> qrNew=items.stream().map(it -> new WmsQrCodeMaster()
|
||||||
|
.setBarcodeCode(KeyUtil.next())
|
||||||
|
.setProcessStage(BarCodeProcessStage.ForStorage.getState())
|
||||||
|
.setBarcodeType(BarCodeType.Production.getState())
|
||||||
|
.setMaterialCode(it.getMaterialNo())
|
||||||
|
.setMaterialDescription(it.getMaterialDesc())
|
||||||
|
.setPackagingType((short) 0)
|
||||||
|
.setQuantity(NumberUtil.multiply(it.getNum(), parentNum))
|
||||||
|
.setUnit(it.getUnit())
|
||||||
|
.setBatchNo(it.getBatchNo())
|
||||||
|
.setSerialNo(it.getSernr())
|
||||||
|
.setExtendId(it.getId())
|
||||||
|
.setCreateUserId(UserUtil.getUserId())
|
||||||
|
.setCreateUserName(UserUtil.getUserName())
|
||||||
|
.setCreateTime(LocalDateTime.now())
|
||||||
|
).toList();
|
||||||
|
qrCodeMasterService.saveBatch(qrNew);
|
||||||
|
qrCodeMasters.addAll(qrNew);
|
||||||
|
}
|
||||||
|
return qrCodeMasters;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出物料标签图片ZIP
|
* 导出物料标签图片ZIP
|
||||||
* @param id 订单ID
|
* @param id 订单ID
|
||||||
|
|
@ -314,7 +346,12 @@ public class InProduceOrderController extends BaseController {
|
||||||
if (order.getList()) {
|
if (order.getList()) {
|
||||||
items.removeIf(it -> it.getParentId() == 0);
|
items.removeIf(it -> it.getParentId() == 0);
|
||||||
}
|
}
|
||||||
List<QrCodeMasterPrintDTO> datas = convertToPrintDTO(qrCodeMasterService.getByExtendIds(items.stream().map(WmsInProduceOrderItem::getId).toList()));
|
BigDecimal parentNum = items.stream()
|
||||||
|
.filter(it -> it.getParentId() == 0)
|
||||||
|
.map(WmsInProduceOrderItem::getNum)
|
||||||
|
.findFirst()
|
||||||
|
.orElse(BigDecimal.ONE);
|
||||||
|
List<QrCodeMasterPrintDTO> datas = convertToPrintDTO(getQrCodesByItems(items, parentNum));
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
try (ZipOutputStream zos = new ZipOutputStream(baos)) {
|
try (ZipOutputStream zos = new ZipOutputStream(baos)) {
|
||||||
for (QrCodeMasterPrintDTO it : datas) {
|
for (QrCodeMasterPrintDTO it : datas) {
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ public enum BarCodeProcessStage {
|
||||||
*/
|
*/
|
||||||
Reject((short) 11, "拒收"),
|
Reject((short) 11, "拒收"),
|
||||||
/**
|
/**
|
||||||
* 已拒收
|
* 已越库
|
||||||
*/
|
*/
|
||||||
Cross((short) 12, "已越库");
|
Cross((short) 12, "已越库");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -177,7 +177,7 @@
|
||||||
)
|
)
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
ORDER BY t.required_finish_time ASC
|
ORDER BY t.inspection_status,t.required_finish_time ASC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getDetail" resultType="com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO">
|
<select id="getDetail" resultType="com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO">
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<mapper namespace="com.nflg.wms.repository.mapper.WmsOutAssistanceItemMapper">
|
<mapper namespace="com.nflg.wms.repository.mapper.WmsOutAssistanceItemMapper">
|
||||||
|
|
||||||
<select id="getLockedNum" resultType="java.math.BigDecimal">
|
<select id="getLockedNum" resultType="java.math.BigDecimal">
|
||||||
SELECT COALESCE(SUM(oai."left",0)) AS "lockedNum"
|
SELECT COALESCE(SUM(oai."left"),0) AS "lockedNum"
|
||||||
FROM wms_out_assistance_item oai
|
FROM wms_out_assistance_item oai
|
||||||
INNER JOIN wms_out_assistance oa ON oai.order_id=oa."id"
|
INNER JOIN wms_out_assistance oa ON oai.order_id=oa."id"
|
||||||
WHERE oa.ebeln=#{ebeln} AND oai.ebelp=#{ebelp}
|
WHERE oa.ebeln=#{ebeln} AND oai.ebelp=#{ebelp}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue