新增打印工单打印队列

tags/yfai-mes-ext-v2.3
yxw 8 months ago
parent 9cfe026727
commit 29dd614d4b

@ -42,6 +42,9 @@ public interface IMesWorkOrderService extends IBaseMesService<MesWorkOrder> {
@ApiOperation("重新打开") @ApiOperation("重新打开")
void doReopen(Long[] ids,String userName,String organizeCode); void doReopen(Long[] ids,String userName,String organizeCode);
@ApiOperation("新增工单打印队列")
void doSaveWorkOrderPrintQueue(MesWorkOrder workOrder);
List<MesProductionRecord> getPreDayReportMesProductionRecord(String organizeCode , List<MesShift> mesShiftList, String workCenterCode); List<MesProductionRecord> getPreDayReportMesProductionRecord(String organizeCode , List<MesShift> mesShiftList, String workCenterCode);
List<MesProduceSn> getPreDayReportMesProduceSn(String organizeCode ,List<MesProductionRecord> mesProductionRecordList ); List<MesProduceSn> getPreDayReportMesProduceSn(String organizeCode ,List<MesProductionRecord> mesProductionRecordList );

@ -183,6 +183,22 @@ public class MesWorkOrderController extends BaseMesController<MesWorkOrder> {
} }
} }
@PostMapping(value = "/save-work-print-queue")
@ApiOperation(value = "新增打印工单打印队列")
public ResultBean doSaveWorkOrderPrintQueue(@RequestBody MesWorkOrder workOrder) {
try {
ValidatorBean.checkNotNull(workOrder.getOrganizeCode(),"工厂代码不能为空");
mesWorkOrderService.doSaveWorkOrderPrintQueue(workOrder);
return ResultBean.success("反向冲销成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode());
} catch (ImppBusiException busExcep) {
return ResultBean.fail(busExcep);
} catch (Exception e) {
return ImppExceptionBuilder.newInstance().buildExceptionResult(e);
}
}
@PutMapping(value = "/reopen") @PutMapping(value = "/reopen")
@ApiOperation(value = "重新打开") @ApiOperation(value = "重新打开")
public ResultBean doReopen(Long[] ids) { public ResultBean doReopen(Long[] ids) {

@ -170,22 +170,43 @@ public class MesWorkOrderCutService extends BaseMesService<MesWorkOrderCut> impl
List<MesWorkOrder> workOrders = workOrderListMapByPartNo.get(cutSchemeFg.getPartNo()); List<MesWorkOrder> workOrders = workOrderListMapByPartNo.get(cutSchemeFg.getPartNo());
MesWorkOrder workOrder = workOrders.get(0); //MesWorkOrder workOrder = workOrders.get(0);
if (workOrders.size() > 1) //if (workOrders.size() > 1)
MesException.throwMesBusiException("零件号【%s】存在多个工单", cutSchemeFg.getPartNo()); // MesException.throwMesBusiException("零件号【%s】存在多个工单", cutSchemeFg.getPartNo());
if (!workOrder.getWorkCenterCode().equals(cutScheme.getWorkCenterCode())) if (!CollectionUtils.isEmpty(workOrders)) workOrders.sort(Comparator.comparing(MesWorkOrder::getUnCompleteQty));
MesException.throwMesBusiException("工单【%s】关联产线【%】与裁片方案【%】关联产线不一致!", workOrder.getWorkCenterCode(), cutScheme.getWorkCenterCode());
// 成品配置计划数量 * 版数 = 裁片工单该成品总消耗数量 // 成品配置计划数量 * 版数 = 裁片工单该成品总消耗数量
Double totalQty = MathOperation.mul(cutSchemeFg.getQty(), editionNumber); Double totalQty = MathOperation.mul(cutSchemeFg.getQty(), editionNumber);
if (totalQty.compareTo(workOrder.getUnCompleteQty()) > 0) Double unCompleteQty = 0.0;
MesException.throwMesBusiException("零件号【%s】工单未完成数量【%s】不满足产成总数【%s】", List<String> needWorkOrderNoList = new ArrayList<>();
cutSchemeFg.getPartNo(), workOrder.getUnCompleteQty(), totalQty); for (MesWorkOrder order : workOrders) {
workOrderUnCompleteMap.put(workOrder.getWorkOrderNo(), MathOperation.sub(workOrder.getUnCompleteQty(), totalQty)); if (!order.getWorkCenterCode().equals(cutScheme.getWorkCenterCode()))
MesException.throwMesBusiException("工单【%s】关联产线【%】与裁片方案【%】关联产线不一致!", order.getWorkCenterCode(), cutScheme.getWorkCenterCode());
if (unCompleteQty.compareTo(totalQty) > 0)
MesException.throwMesBusiException("零件号【%s】工单【%s】未完成数量汇总【%s】已满足产成总数【%s】!请取消勾选工单【%s】", order.getWorkCenterCode(), needWorkOrderNoList, cutScheme.getWorkCenterCode(), workOrders.subList(needWorkOrderNoList.size(), workOrders.size()));
unCompleteQty = MathOperation.add(unCompleteQty, order.getUnCompleteQty());
needWorkOrderNoList.add(order.getWorkOrderNo());
if (order.getUnCompleteQty().compareTo(totalQty) >= 0) {
workOrderUnCompleteMap.put(order.getWorkOrderNo(), MathOperation.sub(order.getUnCompleteQty(), totalQty));
} else {
workOrderUnCompleteMap.put(order.getWorkOrderNo(), 0.0);
}
}
if (totalQty.compareTo(unCompleteQty) > 0) {
List<String> workOrderNoList = workOrders.stream().map(MesWorkOrder::getWorkOrderNo).collect(Collectors.toList());
MesException.throwMesBusiException("零件号【%s】工单【%s】未完成数量【%s】不满足产成总数【%s】!",
cutSchemeFg.getPartNo(), workOrderNoList, unCompleteQty, totalQty);
}
} }
} }

@ -446,7 +446,7 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
MesPrintQueue printQueue = new MesPrintQueue(); MesPrintQueue printQueue = new MesPrintQueue();
BeanUtils.copyProperties(workOrder, printQueue, MesExtConstWords.ID); BeanUtils.copyProperties(workOrder, printQueue, MesExtConstWords.ID);
printQueue.setPrintQueueType(MesExtEnumUtil.PRINT_QUEUE_TYPE.WORK_ORDER.getValue()); printQueue.setPrintQueueType(MesExtEnumUtil.PRINT_QUEUE_TYPE.WORK_ORDER_ASSEMBLY.getValue());
printQueue.setPartProdGroupCode(mesPartProdGroup.getPartProdGroupCode()); printQueue.setPartProdGroupCode(mesPartProdGroup.getPartProdGroupCode());
printQueue.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue()); printQueue.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue());
return printQueueRepository.save(printQueue); return printQueueRepository.save(printQueue);
@ -1138,6 +1138,20 @@ public class MesWorkOrderService extends BaseMesService<MesWorkOrder> implements
mesCcscTaskService.insertMesCcscTask(organizeCode,mesWorkOrderList); mesCcscTaskService.insertMesCcscTask(organizeCode,mesWorkOrderList);
} }
@Override
public void doSaveWorkOrderPrintQueue(MesWorkOrder workOrder) {
if (workOrder == null) return;
if (workOrder.getWorkOrderType() != MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) {
log.info("doSaveWorkOrderPrintQueue --- 工单:{} 为非排序,无需新增打印队列", workOrder.getWorkOrderNo());
return;
}
insertPrintQueue(workOrder, null);
}
private List<MesWorkOrder> getMesWorkOrderList(Long[] ids, String organizeCode) { private List<MesWorkOrder> getMesWorkOrderList(Long[] ids, String organizeCode) {
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackArray(ids,"id",packBean); DdlPreparedPack.getInPackArray(ids,"id",packBean);

Loading…
Cancel
Save