| | |
| | | require.setProcessRouteId(routeId); |
| | | require.setProcessRouteHours(String.valueOf(totalRouteTime)); |
| | | |
| | | /*完成时间,level=0 时默认为工单的计划完成日期*/ |
| | | Date completeDate = plan.getPlanEndDay(); |
| | | |
| | | /*预留天数*/ |
| | | Long reservedDay = getReservedDays(); |
| | | if (level > 0) { |
| | | /*设置完成日期*/ |
| | | if(level==0){ |
| | | /*完成时间,level=0 时默认为工单的计划完成日期*/ |
| | | require.setCompleteDate(plan.getPlanEndDay()); |
| | | require.setDemandDate(plan.getPlanEndDay()); |
| | | } else { |
| | | /* 当前需求完成日期为上阶层需求的开始时间 - 预留天数(转换为毫秒)*/ |
| | | long reservedMillisecond = reservedDay * 24 * millisecond; |
| | | Date completeDate = new Date(); |
| | | completeDate.setTime(upLevelStartDate.getTime() - reservedMillisecond); |
| | | } |
| | | /*设置完成日期*/ |
| | | require.setCompleteDate(completeDate); |
| | | require.setDemandDate(completeDate); |
| | | } |
| | | |
| | | |
| | | /*设置开始时间*/ |
| | | Date startDay = new Date(); |
| | | startDay.setTime(completeDate.getTime() - totalRouteMillisecond); |
| | | startDay.setTime(require.getCompleteDate().getTime() - totalRouteMillisecond); |
| | | require.setStartDate(startDay); |
| | | |
| | | /*计算是否有风险*/ |
| | |
| | | * 获取钣金计划 预留天数 |
| | | * */ |
| | | private Long getReservedDays(){ |
| | | Long days=0L; |
| | | List<SysDictData> dictDataList = DictUtils.getDictCache("aps_is_suspended"); |
| | | if (dictDataList != null) { |
| | | Long.getLong(dictDataList.get(0).getDictValue()); |
| | | long days=0L; |
| | | List<SysDictData> dictDataList = DictUtils.getDictCache("plate_plan_param"); |
| | | if (dictDataList != null && !dictDataList.isEmpty()) { |
| | | days = Long.parseLong(dictDataList.get(0).getDictValue()); |
| | | } |
| | | return days; |
| | | } |
| | |
| | | private void matchRequireAndSubPlan(ApsPlateStandardRequire require) { |
| | | BigDecimal netRequirement = require.getNetRequirement(); |
| | | require.setMatchMode("工单匹配"); |
| | | if(require.getBomLineCode().equals("W0202-100028")){ |
| | | System.out.println("W0202-100028"); |
| | | } |
| | | if (netRequirement.compareTo(BigDecimal.ZERO) > 0) { |
| | | ApsPlatePlan platePlan = apsPlatePlanMapper.selectUnMatchPlateSubPlan(require.getOrgCode(), require.getBomLineCode()); |
| | | /*子件工单的未匹配数量 作为当前的库存*/ |
| | |
| | | bomOrderDetailService.savePlastPlanAndBomOrderDetail(require, platePlan, subtract, stock, netRequirement); |
| | | netRequirement = BigDecimal.ZERO; |
| | | require.setMatchState("已匹配"); |
| | | require.setUnmatchedDemandAmount(netRequirement); |
| | | require.setUnmatchedDemandAmount(BigDecimal.ZERO); |
| | | /*净需求已经被满足,不需要继续匹配*/ |
| | | |
| | | } else if (netRequirement.compareTo(stock) == 0) { |
| | |
| | | bomOrderDetailService.savePlastPlanAndBomOrderDetail(require, platePlan, subtract, stock, netRequirement); |
| | | netRequirement = BigDecimal.ZERO; |
| | | require.setMatchState("已匹配"); |
| | | require.setUnmatchedDemandAmount(netRequirement); |
| | | require.setUnmatchedDemandAmount(BigDecimal.ZERO); |
| | | /*净需求已经被满足,不需要继续匹配*/ |
| | | } |
| | | if (netRequirement.compareTo(stock) > 0) { |
| | |
| | | platePlan = apsPlatePlanMapper.selectUnMatchPlateSubPlan(require.getOrgCode(), require.getBomLineCode()); |
| | | /*剩余净需求*/ |
| | | netRequirement = rest; |
| | | require.setUnmatchedDemandAmount(netRequirement); |
| | | require.setUnmatchedDemandAmount(rest); |
| | | } |
| | | } |
| | | } |
| | | require.setUnmatchedDemandAmount(require.getNetRequirement()); |
| | | |
| | | } |
| | | |
| | | |