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++;
            }