addoperation - genscript-lz/manufacturing GitHub Wiki
List list = this.routeOperationDao.getAllList(standardRoutine); Date preExptdEndDate = new Date(); int seqNo = 1; if (list != null) { woOperationList = new ArrayList(); for (RouteOperation dto : list) { WorkOrderOperation wo = new WorkOrderOperation(); wo.setOperation(dto.getOperation()); wo.setStatus(WoOperStatus.New.value()); wo.setTimingPriority(workOrder.getTimingPriority()); if ("1".equals(workOrder.getTimingPriority())) { wo.setTimingPriorityChanged(2); } if (seqNo == 1) { wo.setExptdStartDate(new java.sql.Timestamp(new Date().getTime()));// 第一条设置Schedule // Start // Date. wo.updateExptdEndDate(); preExptdEndDate = wo.getExptdEndDate(); wo.setCustomStartDate(wo.getExptdStartDate()); wo.setCustomEndDate(wo.getExptdEndDate()); } else { wo.setExptdStartDate(new java.sql.Timestamp(preExptdEndDate.getTime()));// 第一条设置Schedule // Start // Date. wo.updateExptdEndDate(); preExptdEndDate = wo.getExptdEndDate(); wo.setCustomStartDate(wo.getExptdStartDate()); wo.setCustomEndDate(wo.getExptdEndDate()); } wo.setSeqNo(seqNo);
if (wo.getOperation().getName().toLowerCase().startsWith("ppet") && wo.getOperation().getName().toLowerCase().indexOf("in synthesis") != -1) {
if (itemTypeStr != null && itemTypeStr.toLowerCase().startsWith("peptide") && workOrder.getOrderItem() != null) {
OrderPeptide orderPeptide = this.orderPeptideDao.getById(workOrder.getOrderItem().getOrderItemId());
Integer length = orderPeptide != null ? orderPeptide.getSeqLength() : null;
Integer day = length != null ? (length % 7 == 0 ? length / 7 : length / 7 + 1) : 0;
BigDecimal hours = new BigDecimal((day + 1) * 24);
if (hours != null) {
long exptdStartTime = wo.getExptdStartDate().getTime();
long exptdEndTime = exptdStartTime + hours.multiply(new BigDecimal(3600)).multiply(new BigDecimal(1000)).longValue();
if (wo.getExptdEndDate().getTime() > exptdEndTime) {
wo.setExptdEndDate(new Timestamp(exptdEndTime));
}
}
}
}
wo.setCreatedBy(workOrder.getCreatedBy());
wo.setCreationDate(new Date());
wo.setModifiedBy(workOrder.getCreatedBy());
wo.setModifyDate(new Date());
wo.setWorkOrderNo(workOrder.getOrderNo());
this.workOrderOperationDao.save(wo);
woOperationList.add(wo);
seqNo++;
}