【UPDATE-BUGFIX】优化计算气柜管路产能统计底表数据计算功能
| | |
| | | @Excel(name = "下一工序名称") |
| | | private String nextOpName; |
| | | |
| | | /** 下一工序名称 */ |
| | | @Excel(name = "当前工序名称") |
| | | private String stdOp; |
| | | |
| | | public String getStdOp() { |
| | | return stdOp; |
| | | } |
| | | |
| | | public void setStdOp(String stdOp) { |
| | | this.stdOp = stdOp; |
| | | } |
| | | |
| | | public String getOpStatus() { |
| | | return opStatus; |
| | | } |
| | |
| | | //工序总工时 等于 标准工时*生产数量 |
| | | apsGasPipingRouteStat.setProcessTotalTime(apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity())); |
| | | //计划开工日 如果是当前序 |
| | | if(apsGasPipingRouteStat.getCurrentProcessNumber().toString().equals(apsGasPipingRouteStat.getRoadProcessNumber())) { |
| | | /* 对 stat.getProcessPlanStartDay() 和当前日期 进行对比,只对比到日,不用管十分秒*/ |
| | | LocalDate startLocalDate = LocalDate.ofInstant(apsProcessRoute.getProcessPlanStartDay().toInstant(), ZoneId.systemDefault()); |
| | | LocalDate nowLocalDate = LocalDate.now(); |
| | | if (startLocalDate.isBefore(nowLocalDate)) { |
| | | apsGasPipingRouteStat.setProcessPlanStartDay(new Date()); |
| | | }else{ |
| | | apsGasPipingRouteStat.setProcessPlanStartDay(apsProcessRoute.getProcessPlanStartDay()); |
| | | if(apsGasPipingPlan.getProcessNumber().equals(apsProcessRoute.getProcessNumber())) { |
| | | if(apsGasPipingPlan.getOpStatus()==null || apsGasPipingPlan.getOpStatus().equals("完工")){ |
| | | break; |
| | | } |
| | | LocalDateTime planStartDay = apsGasPipingRouteStat.getProcessPlanStartDay().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); |
| | | long seconds = apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity()).multiply(new BigDecimal(60)).multiply(new BigDecimal(60)).longValue(); |
| | | apsGasPipingRouteStat.setProcessPlanEndDay(Date.from(planStartDay.plusSeconds(seconds).atZone(ZoneId.systemDefault()).toInstant())); |
| | | isCurrentProcess = true; |
| | | }else{ |
| | | } |
| | | // 上一道工序的结束时间 = 上一道工序的开始时间 + 上一道工序的总工时 |
| | | if(i==0){ |
| | | apsGasPipingRouteStat.setProcessPlanEndDay(apsGasPipingPlan.getPlanEndDay()); |
| | |
| | | long seconds = apsProcessRoute.getStandardTime().multiply(apsGasPipingPlan.getProductionQuantity()).multiply(new BigDecimal(60)).multiply(new BigDecimal(60)).longValue(); |
| | | LocalDateTime planStartDay = planEndDay.plusSeconds(-seconds); |
| | | apsGasPipingRouteStat.setProcessPlanStartDay(Date.from(planStartDay.atZone(ZoneId.systemDefault()).toInstant())); |
| | | } |
| | | } |
| | | //插入 年 月 日 |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| | |
| | | <result property="processNumber" column="process_number" /> |
| | | <result property="planType" column="plan_type" /> |
| | | <result property="planEndDay" column="plan_end_day" /> |
| | | <result property="stdOp" column="std_op" /> |
| | | <result property="opStatus" column="op_status" /> |
| | | <collection property="apsProcessRoutes" javaType="java.util.ArrayList" ofType="com.aps.core.domain.ApsProcessRoute"> |
| | | <result property="processNumber" column="process_number_sub" /> |
| | | <result property="processName" column="process_name" /> |
| | |
| | | </update> |
| | | |
| | | <select id="selectApsGasPipingPlanWithProcess" parameterType="ApsGasPipingPlan" resultMap="ApsGasPipingPlanResultWithProcess"> |
| | | select c.* from (select a.document_number,a.item_number,a.process_number,a.production_quantity,a.plan_type,a.plan_end_day,b.process_name,b.process_number as process_number_sub,b.standard_time,b.process_plan_start_day,b.process_plan_end_day from aps_gas_piping_plan a |
| | | select c.* from (select a.document_number,a.item_number,a.process_number,a.production_quantity,a.plan_type,a.plan_end_day,a.std_op,a.op_status,b.process_name,b.process_number as process_number_sub,b.standard_time,b.process_plan_start_day,b.process_plan_end_day from aps_gas_piping_plan a |
| | | left join aps_process_route b on a.document_number = b.work_order_no |
| | | where a.document_status in ('0','1','2','4') and b.process_plan_start_day is not null and b.process_name in(select process_name from aps_standard_process where major='气柜' or major='管路') ORDER BY a.document_number,b.process_number) c GROUP BY c.document_number,c.item_number,c.process_number,c.production_quantity,c.process_name,c.process_number_sub,c.standard_time,c.process_plan_start_day,c.plan_type,c.process_plan_end_day,c.plan_end_day |
| | | where a.document_status in ('0','1','2','4') and b.process_plan_start_day is not null and b.process_name in(select process_name from aps_standard_process where major='气柜' or major='管路') ORDER BY a.document_number,b.process_number) c GROUP BY c.document_number,c.item_number,c.process_number,c.production_quantity,c.process_name,c.process_number_sub,c.standard_time,c.process_plan_start_day,c.plan_type,c.process_plan_end_day,c.plan_end_day,c.std_op,c.op_status |
| | | </select> |
| | | |
| | | </mapper> |