aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamStatisticsV2Controller.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-core/src/main/java/com/aps/core/domain/mainPlan/ApsWeldSeamStatisticsV2.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-core/src/main/java/com/aps/core/mapper/mainPlan/ApsWeldSeamStatisticsV2Mapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/IApsWeldSeamStatisticsV2Service.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/impl/ApsWeldSeamStatisticsV2ServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStatisticsV2Mapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsWeldSeamStatisticsV2Controller.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,81 @@ package com.aps.core.controller.mainPlan; import com.aps.common.core.utils.poi.ExcelUtil; import com.aps.common.core.web.controller.BaseController; import com.aps.common.core.web.domain.AjaxResult; import com.aps.common.core.web.page.TableDataInfo; import com.aps.common.log.annotation.Log; import com.aps.common.log.enums.BusinessType; import com.aps.common.security.annotation.RequiresPermissions; import com.aps.common.security.utils.SecurityUtils; import com.aps.core.domain.mainPlan.ApsWeldSeamStatisticsV2; import com.aps.core.service.mainPlan.IApsWeldSeamStatisticsV2Service; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * çç¼ç»è®¡v2Controller * * @author wwj * @date 2025-04-09 */ @RestController @RequestMapping("/weldSeamStatisticsV2") public class ApsWeldSeamStatisticsV2Controller extends BaseController { @Autowired private IApsWeldSeamStatisticsV2Service apsWeldSeamStatisticsV2Service; /** * æ¥è¯¢çç¼ç»è®¡è¡¨V2å表 */ @RequiresPermissions("weldSeamStatistics:weldSeamStatisticsV2:list") @GetMapping("/list") public TableDataInfo list(ApsWeldSeamStatisticsV2 apsWeldSeamStatisticsV2) { // ä¸éè¦å页 // startPage(); List<ApsWeldSeamStatisticsV2> list = apsWeldSeamStatisticsV2Service.selectApsWeldSeamStatisticsV2List(apsWeldSeamStatisticsV2); return getDataTable(list); } /** * 导åºçç¼ç»è®¡è¡¨V2å表 */ @RequiresPermissions("weldSeamStatistics:weldSeamStatisticsV2:export") @Log(title = "çç¼ç»è®¡è¡¨V2", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ApsWeldSeamStatisticsV2 apsWeldSeamStatisticsV2) { List<ApsWeldSeamStatisticsV2> list = apsWeldSeamStatisticsV2Service.selectApsWeldSeamStatisticsV2List(apsWeldSeamStatisticsV2); ExcelUtil<ApsWeldSeamStatisticsV2> util = new ExcelUtil<ApsWeldSeamStatisticsV2>(ApsWeldSeamStatisticsV2.class); util.exportExcel(response, list, "çç¼ç»è®¡è¡¨V2æ°æ®"); } /** * ä¿®æ¹çç¼ç»è®¡è¡¨V2 */ @RequiresPermissions("weldSeamStatistics:weldSeamStatisticsV2:edit") @Log(title = "çç¼ç»è®¡è¡¨V2", businessType = BusinessType.UPDATE) @PostMapping("/update") public AjaxResult edit(@RequestBody ApsWeldSeamStatisticsV2 apsWeldSeamStatisticsV2) { ApsWeldSeamStatisticsV2 updatedRecord = apsWeldSeamStatisticsV2Service.updateApsWeldSeamStatisticsV2(apsWeldSeamStatisticsV2); return AjaxResult.success("ä¿®æ¹æå", updatedRecord); } /** * å·æ°çç¼ç»è®¡è¡¨V2æ°æ® */ @RequiresPermissions("weldSeamStatistics:weldSeamStatisticsV2:refresh") @Log(title = "çç¼ç»è®¡è¡¨V2", businessType = BusinessType.OTHER) @PostMapping("/refresh") public AjaxResult refreshStatistics() { String username = SecurityUtils.getUsername(); int count = apsWeldSeamStatisticsV2Service.refreshWeldSeamStatistics(username); return success("å·æ°çç¼ç»è®¡è¡¨æåï¼å ±æ´æ° " + count + " æ¡è®°å½"); } } aps-modules/aps-core/src/main/java/com/aps/core/domain/mainPlan/ApsWeldSeamStatisticsV2.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,74 @@ package com.aps.core.domain.mainPlan; import com.aps.common.core.annotation.Excel; import com.aps.common.core.web.domain.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; import java.math.BigDecimal; /** * çç¼ç»è®¡è¡¨V2对象 aps_weld_seam_statistics_v2 * * @date 2023-08-01 */ @Data @EqualsAndHashCode(callSuper = true) public class ApsWeldSeamStatisticsV2 extends BaseEntity { private static final long serialVersionUID = 1L; /** ID */ private String id; /** 年份 */ @Excel(name = "年份") private Integer year; /** æä»½ */ @Excel(name = "æä»½") private Integer month; /** ç产åºå° */ @Excel(name = "ç产åºå°") private String productionBase; /** 管路订åéæ± */ @Excel(name = "管路订åéæ±") private BigDecimal pipingOrderRequirement; /** æ°æè®¢åéæ± */ @Excel(name = "æ°æè®¢åéæ±") private BigDecimal gasOrderRequirement; /** ç®¡è·¯é¢æµéæ± */ @Excel(name = "ç®¡è·¯é¢æµéæ±") private BigDecimal pipingPredictionRequirement; /** æ°æé¢æµéæ± */ @Excel(name = "æ°æé¢æµéæ±") private BigDecimal gasPredictionRequirement; /** é¢çç´§æ¥è®¢åäº§åº */ @Excel(name = "é¢çç´§æ¥è®¢å产åº") private BigDecimal reserveEmergencyOrderOutput; /** å计 */ @Excel(name = "å计") private BigDecimal total; /** å¤©æ° */ @Excel(name = "天æ°") private BigDecimal days; /** éæ±æ¥çç¼ */ @Excel(name = "éæ±æ¥çç¼") private BigDecimal requirementDayWeldSeam; /** ç产æ¥çç¼ */ @Excel(name = "ç产æ¥çç¼") private BigDecimal productionDayWeldSeam; /** æ¯å¦æ»¡è¶³ */ @Excel(name = "æ¯å¦æ»¡è¶³") private String isSatisfy; } aps-modules/aps-core/src/main/java/com/aps/core/mapper/mainPlan/ApsWeldSeamStatisticsV2Mapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,84 @@ package com.aps.core.mapper.mainPlan; import com.aps.core.domain.mainPlan.ApsWeldSeamStatisticsV2; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Mapper; import java.util.List; /** * çç¼ç»è®¡è¡¨V2Mapperæ¥å£ * * @date 2023-08-01 */ @Mapper public interface ApsWeldSeamStatisticsV2Mapper { /** * æ¥è¯¢çç¼ç»è®¡è¡¨V2 * * @param id çç¼ç»è®¡è¡¨V2ä¸»é® * @return çç¼ç»è®¡è¡¨V2 */ public ApsWeldSeamStatisticsV2 selectApsWeldSeamStatisticsV2ById(String id); /** * æ¥è¯¢çç¼ç»è®¡è¡¨V2å表 * * @param apsWeldSeamStatisticsV2 çç¼ç»è®¡è¡¨V2 * @return çç¼ç»è®¡è¡¨V2éå */ public List<ApsWeldSeamStatisticsV2> selectApsWeldSeamStatisticsV2List(ApsWeldSeamStatisticsV2 apsWeldSeamStatisticsV2); /** * æ°å¢çç¼ç»è®¡è¡¨V2 * * @param apsWeldSeamStatisticsV2 çç¼ç»è®¡è¡¨V2 * @return ç»æ */ public int insertApsWeldSeamStatisticsV2(ApsWeldSeamStatisticsV2 apsWeldSeamStatisticsV2); /** * ä¿®æ¹çç¼ç»è®¡è¡¨V2 * * @param apsWeldSeamStatisticsV2 çç¼ç»è®¡è¡¨V2 * @return ç»æ */ public int updateApsWeldSeamStatisticsV2(ApsWeldSeamStatisticsV2 apsWeldSeamStatisticsV2); /** * å é¤çç¼ç»è®¡è¡¨V2 * * @param id çç¼ç»è®¡è¡¨V2ä¸»é® * @return ç»æ */ public int deleteApsWeldSeamStatisticsV2ById(String id); /** * æ¹éå é¤çç¼ç»è®¡è¡¨V2 * * @param ids éè¦å é¤çæ°æ®ä¸»é®éå * @return ç»æ */ public int deleteApsWeldSeamStatisticsV2ByIds(String[] ids); /** * æ¸ ç©ºç»è®¡è¡¨ */ public void truncateTable(); /** * æ¹éæå ¥æ°æ® * * @param list æ°æ®å表 * @return ç»æ */ public int batchInsert(@Param("list") List<ApsWeldSeamStatisticsV2> list); /** * æ¥è¯¢ç»è®¡æ°æ® * * @return ç»è®¡æ°æ®å表 */ public List<ApsWeldSeamStatisticsV2> queryWeldSeamStatistics(); } aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/IApsWeldSeamStatisticsV2Service.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ package com.aps.core.service.mainPlan; import com.aps.core.domain.mainPlan.ApsWeldSeamStatisticsV2; import java.util.List; /** * çç¼ç»è®¡è¡¨V2æå¡æ¥å£ * * @date 2023-08-01 */ public interface IApsWeldSeamStatisticsV2Service { /** * æ¥è¯¢çç¼ç»è®¡è¡¨V2å表 * * @param apsWeldSeamStatisticsV2 çç¼ç»è®¡è¡¨V2 * @return çç¼ç»è®¡è¡¨V2éå */ public List<ApsWeldSeamStatisticsV2> selectApsWeldSeamStatisticsV2List(ApsWeldSeamStatisticsV2 apsWeldSeamStatisticsV2); /** * ä¿®æ¹çç¼ç»è®¡è¡¨V2 * * @param apsWeldSeamStatisticsV2 çç¼ç»è®¡è¡¨V2 * @return æ´æ°åçè®°å½ */ public ApsWeldSeamStatisticsV2 updateApsWeldSeamStatisticsV2(ApsWeldSeamStatisticsV2 apsWeldSeamStatisticsV2); /** * å·æ°çç¼ç»è®¡è¡¨æ°æ® * * @param username æä½ç¨æ· * @return åå½±åçè®°å½æ° */ public int refreshWeldSeamStatistics(String username); } aps-modules/aps-core/src/main/java/com/aps/core/service/mainPlan/impl/ApsWeldSeamStatisticsV2ServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,206 @@ package com.aps.core.service.mainPlan.impl; import com.aps.common.core.utils.DateUtils; import com.aps.common.core.utils.uuid.IdUtils; import com.aps.common.core.web.page.TableDataInfo; import com.aps.common.security.utils.SecurityUtils; import com.aps.core.controller.basicData.ApsGasPipelineCapacityPlanController; import com.aps.core.domain.ApsGasPipelineCapacityPlan; import com.aps.core.domain.mainPlan.ApsWeldSeamStatisticsV2; import com.aps.core.mapper.mainPlan.ApsWeldSeamStatisticsV2Mapper; import com.aps.core.service.IApsGasPipelineCapacityPlanService; import com.aps.core.service.mainPlan.IApsWeldSeamStatisticsV2Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * çç¼ç»è®¡è¡¨V2Serviceä¸å¡å±å¤ç * * @date 2023-08-01 */ @Service public class ApsWeldSeamStatisticsV2ServiceImpl implements IApsWeldSeamStatisticsV2Service { @Autowired private ApsWeldSeamStatisticsV2Mapper apsWeldSeamStatisticsV2Mapper; @Autowired private ApsGasPipelineCapacityPlanController apsGasPipelineCapacityPlanController; /** * æ¥è¯¢çç¼ç»è®¡è¡¨V2å表 * * @param apsWeldSeamStatisticsV2 çç¼ç»è®¡è¡¨V2 * @return çç¼ç»è®¡è¡¨V2 */ @Override public List<ApsWeldSeamStatisticsV2> selectApsWeldSeamStatisticsV2List(ApsWeldSeamStatisticsV2 apsWeldSeamStatisticsV2) { return apsWeldSeamStatisticsV2Mapper.selectApsWeldSeamStatisticsV2List(apsWeldSeamStatisticsV2); } /** * ä¿®æ¹çç¼ç»è®¡è¡¨V2 * * @param apsWeldSeamStatisticsV2 çç¼ç»è®¡è¡¨V2 * @return æ´æ°åçè®°å½ */ @Override @Transactional(rollbackFor = Exception.class) public ApsWeldSeamStatisticsV2 updateApsWeldSeamStatisticsV2(ApsWeldSeamStatisticsV2 apsWeldSeamStatisticsV2) { // è®¾ç½®æ´æ°æ¶é´ apsWeldSeamStatisticsV2.setUpdateTime(DateUtils.getNowDate()); apsWeldSeamStatisticsV2.setUpdateBy(SecurityUtils.getUsername()); // 1. 仿°æ®åºè·ååå§è®°å½ï¼ä»¥ä¿çå ¶ä»å段ä¸å ApsWeldSeamStatisticsV2 originalData = apsWeldSeamStatisticsV2Mapper.selectApsWeldSeamStatisticsV2ById(apsWeldSeamStatisticsV2.getId()); if (originalData == null) { throw new RuntimeException("è®°å½ä¸åå¨ï¼ID: " + apsWeldSeamStatisticsV2.getId()); } // 2. åªæ´æ°reserveEmergencyOrderOutputådaysä¸¤ä¸ªåæ®µ originalData.setReserveEmergencyOrderOutput(apsWeldSeamStatisticsV2.getReserveEmergencyOrderOutput()); originalData.setDays(apsWeldSeamStatisticsV2.getDays()); originalData.setUpdateTime(apsWeldSeamStatisticsV2.getUpdateTime()); originalData.setUpdateBy(apsWeldSeamStatisticsV2.getUpdateBy()); // 3. ç¡®ä¿ææç¨äºè®¡ç®çBigDecimalåæ®µä¸ä¸ºnull java.math.BigDecimal pipingOrderReq = (originalData.getPipingOrderRequirement() != null) ? originalData.getPipingOrderRequirement() : java.math.BigDecimal.ZERO; java.math.BigDecimal pipingPredictionReq = (originalData.getPipingPredictionRequirement() != null) ? originalData.getPipingPredictionRequirement() : java.math.BigDecimal.ZERO; java.math.BigDecimal gasOrderReq = (originalData.getGasOrderRequirement() != null) ? originalData.getGasOrderRequirement() : java.math.BigDecimal.ZERO; java.math.BigDecimal gasPredictionReq = (originalData.getGasPredictionRequirement() != null) ? originalData.getGasPredictionRequirement() : java.math.BigDecimal.ZERO; java.math.BigDecimal reserveEmergencyOutput = (originalData.getReserveEmergencyOrderOutput() != null) ? originalData.getReserveEmergencyOrderOutput() : java.math.BigDecimal.ZERO; // 4. 屿§1ï¼éæ°è®¡ç®totalï¼åè®¡ï¼ java.math.BigDecimal total = pipingOrderReq .add(pipingPredictionReq) .add(gasOrderReq) .add(gasPredictionReq) .add(reserveEmergencyOutput); originalData.setTotal(total); // 5. 妿daysä¸ä¸ºç©ºä¸å¤§äº0ï¼éæ°è®¡ç®requirementDayWeldSeamåisSatisfy if(originalData.getDays() != null && originalData.getDays().doubleValue() > 0) { // 屿§2ï¼è®¡ç®éæ±æ¥çç¼ = å计/天æ°ï¼åèäºå ¥ double result = total.doubleValue() / originalData.getDays().doubleValue(); java.math.BigDecimal requirementDayWeldSeam = new java.math.BigDecimal(result).setScale(0, java.math.RoundingMode.HALF_UP); originalData.setRequirementDayWeldSeam(requirementDayWeldSeam); // 屿§3ï¼å¤ææ¯å¦æ»¡è¶³ if(originalData.getProductionDayWeldSeam() != null) { if(originalData.getProductionDayWeldSeam().compareTo(requirementDayWeldSeam) >= 0) { originalData.setIsSatisfy("1"); // 满足 } else { originalData.setIsSatisfy("0"); // 䏿»¡è¶³ } } else { originalData.setIsSatisfy("0"); // é»è®¤ä¸æ»¡è¶³ } } else { // 妿天æ°ä¸ºç©ºæä¸º0ï¼è®¾ç½®ä¸ºä¸æ»¡è¶³ originalData.setIsSatisfy("0"); } // 6. æ´æ°æ°æ®åº apsWeldSeamStatisticsV2Mapper.updateApsWeldSeamStatisticsV2(originalData); // 7. è¿åæ´æ°åç宿´è®°å½ return originalData; } /** * å·æ°çç¼ç»è®¡è¡¨æ°æ® * * @param username æä½ç¨æ· * @return åå½±åçè®°å½æ° */ @Override @Transactional(rollbackFor = Exception.class) public int refreshWeldSeamStatistics(String username) { // 1. æ¸ ç©ºç»è®¡è¡¨ apsWeldSeamStatisticsV2Mapper.truncateTable(); // 2. è·åææ°çç»è®¡æ°æ® List<ApsWeldSeamStatisticsV2> statisticsList = apsWeldSeamStatisticsV2Mapper.queryWeldSeamStatistics(); // 3. 设置å建信æ¯åIDï¼å¹¶è·åç产æ¥çç¼æ°æ® Date now = new Date(); for (ApsWeldSeamStatisticsV2 statistics : statisticsList) { // 使ç¨UUIDä½ä¸ºID statistics.setId(IdUtils.fastUUID()); statistics.setCreateBy(username); statistics.setCreateTime(now); // å 计ç®éæ±æ¥çç¼(requirementDayWeldSeam) if(statistics.getDays() != null && statistics.getDays().doubleValue() > 0 && statistics.getTotal() != null) { // 计ç®éæ±æ¥çç¼ = å计/天æ°ï¼åèäºå ¥ double result = statistics.getTotal().doubleValue() / statistics.getDays().doubleValue(); BigDecimal requirementDayWeldSeam = new BigDecimal(result).setScale(0, java.math.RoundingMode.HALF_UP); statistics.setRequirementDayWeldSeam(requirementDayWeldSeam); } else if (statistics.getRequirementDayWeldSeam() == null) { // å¦ææ æ³è®¡ç®ä¸ä¹å没æå¼ï¼è®¾ç½®é»è®¤å¼ statistics.setRequirementDayWeldSeam(BigDecimal.ZERO); } // 设置ç产æ¥çç¼(productionDayWeldSeam) // æ ¹æ®yearãmonthãproductionBaseæ¥è¯¢å¯¹åºçç产æ¥çç¼æ°æ® if (statistics.getYear() != null && statistics.getMonth() != null && statistics.getProductionBase() != null) { // å建æ¥è¯¢æ¡ä»¶ ApsGasPipelineCapacityPlan queryParam = new ApsGasPipelineCapacityPlan(); queryParam.setYear(statistics.getYear().toString()); queryParam.setMonth(statistics.getMonth().toString()); queryParam.setOrgCode(statistics.getProductionBase()); // ç´æ¥è°ç¨Controllerçlistæ¹æ³è·åæ°æ® TableDataInfo tableDataInfo = apsGasPipelineCapacityPlanController.list(queryParam); List<ApsGasPipelineCapacityPlan> capacityPlans = (List<ApsGasPipelineCapacityPlan>) tableDataInfo.getRows(); // éåæ¾å°processName为"æ°ä½ç®¡è·¯è½¨éçæ¥ç»"çè®°å½ for (ApsGasPipelineCapacityPlan plan : capacityPlans) { if ("æ°ä½ç®¡è·¯è½¨éçæ¥ç»".equals(plan.getProcessName()) && plan.getDayProduceAllNum() != null) { // 设置ç产æ¥çç¼å¼ statistics.setProductionDayWeldSeam(plan.getDayProduceAllNum()); break; // æ¾å°å¹é è®°å½åéåºå¾ªç¯ } } } // å¦ææ²¡ææ¾å°å¹é ç产è½è§åæ°æ®ï¼è®¾ç½®é»è®¤ç¶æ if (statistics.getProductionDayWeldSeam() == null) { statistics.setProductionDayWeldSeam(BigDecimal.ZERO); } // æåç»ä¸è®¡ç®isSatisfyï¼æ¯å¦æ»¡è¶³ï¼ // å½ç产æ¥çç¼ >= éæ±æ¥çç¼æ¶ä¸ºæ»¡è¶³ï¼å¦åä¸ºä¸æ»¡è¶³ if (statistics.getRequirementDayWeldSeam() != null && statistics.getProductionDayWeldSeam() != null && statistics.getProductionDayWeldSeam().compareTo(statistics.getRequirementDayWeldSeam()) >= 0) { statistics.setIsSatisfy("1"); // 满足 } else { statistics.setIsSatisfy("0"); // 䏿»¡è¶³ } } // 4. æ¹éæå ¥æ°æ® int count = 0; if (!statisticsList.isEmpty()) { count = apsWeldSeamStatisticsV2Mapper.batchInsert(statisticsList); } return count; } } aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStatisticsV2Mapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,247 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.aps.core.mapper.mainPlan.ApsWeldSeamStatisticsV2Mapper"> <resultMap type="com.aps.core.domain.mainPlan.ApsWeldSeamStatisticsV2" id="ApsWeldSeamStatisticsV2Result"> <id property="id" column="id"/> <result property="year" column="year"/> <result property="month" column="month"/> <result property="productionBase" column="production_base"/> <result property="pipingOrderRequirement" column="piping_order_requirement"/> <result property="gasOrderRequirement" column="gas_order_requirement"/> <result property="pipingPredictionRequirement" column="piping_prediction_requirement"/> <result property="gasPredictionRequirement" column="gas_prediction_requirement"/> <result property="reserveEmergencyOrderOutput" column="reserve_emergency_order_output"/> <result property="total" column="total"/> <result property="days" column="days"/> <result property="requirementDayWeldSeam" column="requirement_day_weld_seam"/> <result property="productionDayWeldSeam" column="production_day_weld_seam"/> <result property="isSatisfy" column="is_satisfy"/> <result property="createBy" column="create_by"/> <result property="createTime" column="create_time"/> <result property="updateBy" column="update_by"/> <result property="updateTime" column="update_time"/> </resultMap> <sql id="selectApsWeldSeamStatisticsV2Vo"> select id, year, month, production_base, piping_order_requirement, gas_order_requirement, piping_prediction_requirement, gas_prediction_requirement, reserve_emergency_order_output, total, days, requirement_day_weld_seam, production_day_weld_seam, is_satisfy, create_by, create_time, update_by, update_time from aps_weld_seam_statistics_v2 </sql> <select id="selectApsWeldSeamStatisticsV2ById" parameterType="String" resultMap="ApsWeldSeamStatisticsV2Result"> <include refid="selectApsWeldSeamStatisticsV2Vo"/> where id = #{id} </select> <select id="selectApsWeldSeamStatisticsV2List" parameterType="com.aps.core.domain.mainPlan.ApsWeldSeamStatisticsV2" resultMap="ApsWeldSeamStatisticsV2Result"> <include refid="selectApsWeldSeamStatisticsV2Vo"/> <where> <if test="params.beginYear != null and params.beginYear != '' and params.endYear != null and params.endYear != ''"> and year between #{params.beginYear} and #{params.endYear}</if> <if test="params.beginMonth != null and params.beginMonth != '' and params.endMonth != null and params.endMonth != ''"> and month between #{params.beginMonth} and #{params.endMonth}</if> <if test="productionBase != null and productionBase != ''"> and production_base like '%'|| #{productionBase}|| '%'</if> </where> order by year, month, production_base </select> <insert id="insertApsWeldSeamStatisticsV2" parameterType="com.aps.core.domain.mainPlan.ApsWeldSeamStatisticsV2"> insert into aps_weld_seam_statistics_v2 <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null">id,</if> <if test="year != null">year,</if> <if test="month != null">month,</if> <if test="productionBase != null">production_base,</if> <if test="pipingOrderRequirement != null">piping_order_requirement,</if> <if test="gasOrderRequirement != null">gas_order_requirement,</if> <if test="pipingPredictionRequirement != null">piping_prediction_requirement,</if> <if test="gasPredictionRequirement != null">gas_prediction_requirement,</if> <if test="reserveEmergencyOrderOutput != null">reserve_emergency_order_output,</if> <if test="total != null">total,</if> <if test="days != null">days,</if> <if test="requirementDayWeldSeam != null">requirement_day_weld_seam,</if> <if test="productionDayWeldSeam != null">production_day_weld_seam,</if> <if test="isSatisfy != null">is_satisfy,</if> <if test="createBy != null">create_by,</if> <if test="createTime != null">create_time,</if> <if test="updateBy != null">update_by,</if> <if test="updateTime != null">update_time,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null">#{id},</if> <if test="year != null">#{year},</if> <if test="month != null">#{month},</if> <if test="productionBase != null">#{productionBase},</if> <if test="pipingOrderRequirement != null">#{pipingOrderRequirement},</if> <if test="gasOrderRequirement != null">#{gasOrderRequirement},</if> <if test="pipingPredictionRequirement != null">#{pipingPredictionRequirement},</if> <if test="gasPredictionRequirement != null">#{gasPredictionRequirement},</if> <if test="reserveEmergencyOrderOutput != null">#{reserveEmergencyOrderOutput},</if> <if test="total != null">#{total},</if> <if test="days != null">#{days},</if> <if test="requirementDayWeldSeam != null">#{requirementDayWeldSeam},</if> <if test="productionDayWeldSeam != null">#{productionDayWeldSeam},</if> <if test="isSatisfy != null">#{isSatisfy},</if> <if test="createBy != null">#{createBy},</if> <if test="createTime != null">#{createTime},</if> <if test="updateBy != null">#{updateBy},</if> <if test="updateTime != null">#{updateTime},</if> </trim> </insert> <update id="updateApsWeldSeamStatisticsV2" parameterType="com.aps.core.domain.mainPlan.ApsWeldSeamStatisticsV2"> update aps_weld_seam_statistics_v2 <trim prefix="SET" suffixOverrides=","> <if test="year != null">year = #{year},</if> <if test="month != null">month = #{month},</if> <if test="productionBase != null">production_base = #{productionBase},</if> <if test="pipingOrderRequirement != null">piping_order_requirement = #{pipingOrderRequirement},</if> <if test="gasOrderRequirement != null">gas_order_requirement = #{gasOrderRequirement},</if> <if test="pipingPredictionRequirement != null">piping_prediction_requirement = #{pipingPredictionRequirement},</if> <if test="gasPredictionRequirement != null">gas_prediction_requirement = #{gasPredictionRequirement},</if> <if test="reserveEmergencyOrderOutput != null">reserve_emergency_order_output = #{reserveEmergencyOrderOutput},</if> <if test="total != null">total = #{total},</if> <if test="days != null">days = #{days},</if> <if test="requirementDayWeldSeam != null">requirement_day_weld_seam = #{requirementDayWeldSeam},</if> <if test="productionDayWeldSeam != null">production_day_weld_seam = #{productionDayWeldSeam},</if> <if test="isSatisfy != null">is_satisfy = #{isSatisfy},</if> <if test="createBy != null">create_by = #{createBy},</if> <if test="createTime != null">create_time = #{createTime},</if> <if test="updateBy != null">update_by = #{updateBy},</if> <if test="updateTime != null">update_time = #{updateTime},</if> </trim> where id = #{id} </update> <delete id="deleteApsWeldSeamStatisticsV2ById" parameterType="String"> delete from aps_weld_seam_statistics_v2 where id = #{id} </delete> <delete id="deleteApsWeldSeamStatisticsV2ByIds" parameterType="String"> delete from aps_weld_seam_statistics_v2 where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> </delete> <update id="truncateTable"> TRUNCATE TABLE aps_weld_seam_statistics_v2 </update> <insert id="batchInsert" parameterType="java.util.List"> INSERT INTO aps_weld_seam_statistics_v2 ( id, year, month, production_base, piping_order_requirement, gas_order_requirement, piping_prediction_requirement, gas_prediction_requirement, reserve_emergency_order_output, total, days, requirement_day_weld_seam, production_day_weld_seam, is_satisfy, create_by, create_time ) VALUES <foreach collection="list" item="item" separator=","> ( #{item.id}, #{item.year}, #{item.month}, #{item.productionBase}, #{item.pipingOrderRequirement}, #{item.gasOrderRequirement}, #{item.pipingPredictionRequirement}, #{item.gasPredictionRequirement}, #{item.reserveEmergencyOrderOutput}, #{item.total}, #{item.days}, #{item.requirementDayWeldSeam}, #{item.productionDayWeldSeam}, #{item.isSatisfy}, #{item.createBy}, #{item.createTime} ) </foreach> </insert> <select id="queryWeldSeamStatistics" resultMap="ApsWeldSeamStatisticsV2Result"> WITH å·¥åçç¼è®¡ç® AS ( -- 计ç®å·¥åççç¼æ°é SELECT mo.factory as ç产åºå°, mo.material_code as æå·, EXTRACT(YEAR FROM mo.plan_end) as 年份, EXTRACT(MONTH FROM mo.plan_end) as æä»½, mo.quantity * COALESCE(ws.hup_qty, 0) as å·¥åçç¼æ°, mgm.domain as ä¸ä¸ FROM aps_gas_pipeline_mo mo LEFT JOIN aps_weld_seam_standard ws ON mo.material_code = ws.item_code AND ws.del_flag = 0 LEFT JOIN aps_material_product_group_management mgm ON mo.material_code = mgm.material_code ), 颿µçç¼è®¡ç® AS ( -- 计ç®é¢æµççç¼æ°é SELECT gp.factory as ç产åºå°, gp.material_code as æå·, EXTRACT(YEAR FROM gp.predict_date) as 年份, EXTRACT(MONTH FROM gp.predict_date) as æä»½, gp.predict_quantity * COALESCE(ws.hup_qty, 0) as 颿µçç¼æ°, mgm.domain as ä¸ä¸ FROM aps_gas_pipeline_prediction gp LEFT JOIN aps_weld_seam_standard ws ON gp.material_code = ws.item_code AND ws.del_flag = 0 LEFT JOIN aps_material_product_group_management mgm ON gp.material_code = mgm.material_code ), æ±æ»æ°æ® AS ( SELECT 年份, æä»½, ç产åºå°, -- 管路订åéæ± COALESCE(SUM(CASE WHEN ä¸ä¸ = 'GL' AND ç±»å = 'å·¥å' THEN çç¼æ° ELSE 0 END), 0) as 管路订åéæ±, -- æ°æè®¢åéæ± COALESCE(SUM(CASE WHEN ä¸ä¸ = 'QG' AND ç±»å = 'å·¥å' THEN çç¼æ° ELSE 0 END), 0) as æ°æè®¢åéæ±, -- ç®¡è·¯é¢æµéæ± COALESCE(SUM(CASE WHEN ä¸ä¸ = 'GL' AND ç±»å = '颿µ' THEN çç¼æ° ELSE 0 END), 0) as ç®¡è·¯é¢æµéæ±, -- æ°æé¢æµéæ± COALESCE(SUM(CASE WHEN ä¸ä¸ = 'QG' AND ç±»å = '颿µ' THEN çç¼æ° ELSE 0 END), 0) as æ°æé¢æµéæ± FROM ( SELECT 年份, æä»½, ç产åºå°, å·¥åçç¼æ° as çç¼æ°, 'å·¥å' as ç±»å, ä¸ä¸ FROM å·¥åçç¼è®¡ç® UNION ALL SELECT 年份, æä»½, ç产åºå°, 颿µçç¼æ° as çç¼æ°, '颿µ' as ç±»å, ä¸ä¸ FROM 颿µçç¼è®¡ç® ) åå¹¶æ°æ® GROUP BY 年份, æä»½, ç产åºå° ) SELECT s.年份 as "year", s.æä»½ as "month", s.ç产åºå° as "production_base", ROUND(s.管路订åéæ±, 4) as "piping_order_requirement", ROUND(s.æ°æè®¢åéæ±, 4) as "gas_order_requirement", ROUND(s.ç®¡è·¯é¢æµéæ±, 4) as "piping_prediction_requirement", ROUND(s.æ°æé¢æµéæ±, 4) as "gas_prediction_requirement", 0 as "reserve_emergency_order_output", ROUND(s.管路订åéæ± + s.æ°æè®¢åéæ± + s.ç®¡è·¯é¢æµéæ± + s.æ°æé¢æµéæ±, 4) as "total", 0 as "days", 0 as "requirement_day_weld_seam", 0 as "production_day_weld_seam", '0' as "is_satisfy", 'system' as "create_by", CURRENT_TIMESTAMP as "create_time" FROM æ±æ»æ°æ® s ORDER BY s.年份, s.æä»½, s.ç产åºå° </select> </mapper>