aps-modules/aps-core/src/main/java/com/aps/core/controller/ApsPartRouteStatController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartRouteStat.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPartRouteStatMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPartRouteStatService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
aps-modules/aps-core/src/main/resources/mapper/core/ApsPartRouteStatMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
aps-modules/aps-core/src/main/java/com/aps/core/controller/ApsPartRouteStatController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,105 @@ package com.aps.core.controller; import java.util.List; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.aps.common.log.annotation.Log; import com.aps.common.log.enums.BusinessType; import com.aps.common.security.annotation.RequiresPermissions; import com.aps.core.domain.ApsPartRouteStat; import com.aps.core.service.IApsPartRouteStatService; import com.aps.common.core.web.controller.BaseController; import com.aps.common.core.web.domain.AjaxResult; import com.aps.common.core.utils.poi.ExcelUtil; import com.aps.common.core.web.page.TableDataInfo; /** * é¶ä»¶ç»è®¡è¡¨Controller * * @author zhl * @date 2025-04-11 */ @RestController @RequestMapping("/ApsPartRouteStat") public class ApsPartRouteStatController extends BaseController { @Autowired private IApsPartRouteStatService apsPartRouteStatService; /** * æ¥è¯¢é¶ä»¶ç»è®¡è¡¨å表 */ @RequiresPermissions("ApsPartRouteStat:ApsPartRouteStat:list") @GetMapping("/list") public TableDataInfo list(ApsPartRouteStat apsPartRouteStat) { startPage(); List<ApsPartRouteStat> list = apsPartRouteStatService.selectApsPartRouteStatList(apsPartRouteStat); return getDataTable(list); } /** * 导åºé¶ä»¶ç»è®¡è¡¨å表 */ @RequiresPermissions("ApsPartRouteStat:ApsPartRouteStat:export") @Log(title = "é¶ä»¶ç»è®¡è¡¨", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ApsPartRouteStat apsPartRouteStat) { List<ApsPartRouteStat> list = apsPartRouteStatService.selectApsPartRouteStatList(apsPartRouteStat); ExcelUtil<ApsPartRouteStat> util = new ExcelUtil<ApsPartRouteStat>(ApsPartRouteStat.class); util.exportExcel(response, list, "é¶ä»¶ç»è®¡è¡¨æ°æ®"); } /** * è·åé¶ä»¶ç»è®¡è¡¨è¯¦ç»ä¿¡æ¯ */ @RequiresPermissions("ApsPartRouteStat:ApsPartRouteStat:query") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { return success(apsPartRouteStatService.selectApsPartRouteStatById(id)); } /** * æ°å¢é¶ä»¶ç»è®¡è¡¨ */ @RequiresPermissions("ApsPartRouteStat:ApsPartRouteStat:add") @Log(title = "é¶ä»¶ç»è®¡è¡¨", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ApsPartRouteStat apsPartRouteStat) { return toAjax(apsPartRouteStatService.insertApsPartRouteStat(apsPartRouteStat)); } /** * ä¿®æ¹é¶ä»¶ç»è®¡è¡¨ */ @RequiresPermissions("ApsPartRouteStat:ApsPartRouteStat:edit") @Log(title = "é¶ä»¶ç»è®¡è¡¨", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ApsPartRouteStat apsPartRouteStat) { return toAjax(apsPartRouteStatService.updateApsPartRouteStat(apsPartRouteStat)); } /** * å é¤é¶ä»¶ç»è®¡è¡¨ */ @RequiresPermissions("ApsPartRouteStat:ApsPartRouteStat:remove") @Log(title = "é¶ä»¶ç»è®¡è¡¨", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { return toAjax(apsPartRouteStatService.deleteApsPartRouteStatByIds(ids)); } } aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartRouteStat.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,190 @@ package com.aps.core.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.aps.common.core.annotation.Excel; import com.aps.common.core.web.domain.BaseEntity; import java.math.BigDecimal; import java.time.LocalDateTime; /** * é¶ä»¶ç»è®¡è¡¨å¯¹è±¡ aps_part_route_stat * * @author zhl * @date 2025-04-11 */ public class ApsPartRouteStat extends BaseEntity { private static final long serialVersionUID = 1L; /** 主é®id */ private String id; /** å·¥åå· */ @Excel(name = "å·¥åå·") private String workOrderNo; /** å·¥åºå· */ @Excel(name = "å·¥åºå·") private BigDecimal roadProcessNumber; /** å½åå·¥åºå· */ @Excel(name = "å½åå·¥åºå·") private BigDecimal currentProcessNumber; /** ç产æ°é */ @Excel(name = "ç产æ°é") private Long productionQuantity; /** æ åå·¥æ¶ */ @Excel(name = "æ åå·¥æ¶") private Long standardTime; /** å·¥åºæ»å·¥æ¶ */ @Excel(name = "å·¥åºæ»å·¥æ¶") private Long processTotalTime; /** 计åå¼å·¥æ¥ */ @Excel(name = "计åå¼å·¥æ¥") private LocalDateTime processPlanStartDay; /** è®¾è®¡å·¥æ¶ */ @Excel(name = "设计工æ¶") private Long designTimes; /** å 餿 å¿ï¼0代表åå¨ 2代表å é¤ï¼ */ private String delFlag; /** æ¹æ¬¡å· */ @Excel(name = "æ¹æ¬¡å·") private String batchNumber; public void setId(String id) { this.id = id; } public String getId() { return id; } public void setWorkOrderNo(String workOrderNo) { this.workOrderNo = workOrderNo; } public String getWorkOrderNo() { return workOrderNo; } public void setRoadProcessNumber(BigDecimal roadProcessNumber) { this.roadProcessNumber = roadProcessNumber; } public BigDecimal getRoadProcessNumber() { return roadProcessNumber; } public void setCurrentProcessNumber(BigDecimal currentProcessNumber) { this.currentProcessNumber = currentProcessNumber; } public BigDecimal getCurrentProcessNumber() { return currentProcessNumber; } public void setProductionQuantity(Long productionQuantity) { this.productionQuantity = productionQuantity; } public Long getProductionQuantity() { return productionQuantity; } public void setStandardTime(Long standardTime) { this.standardTime = standardTime; } public Long getStandardTime() { return standardTime; } public void setProcessTotalTime(Long processTotalTime) { this.processTotalTime = processTotalTime; } public Long getProcessTotalTime() { return processTotalTime; } public void setProcessPlanStartDay(LocalDateTime processPlanStartDay) { this.processPlanStartDay = processPlanStartDay; } public LocalDateTime getProcessPlanStartDay() { return processPlanStartDay; } public void setDesignTimes(Long designTimes) { this.designTimes = designTimes; } public Long getDesignTimes() { return designTimes; } public void setDelFlag(String delFlag) { this.delFlag = delFlag; } public String getDelFlag() { return delFlag; } public void setBatchNumber(String batchNumber) { this.batchNumber = batchNumber; } public String getBatchNumber() { return batchNumber; } @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("workOrderNo", getWorkOrderNo()) .append("roadProcessNumber", getRoadProcessNumber()) .append("currentProcessNumber", getCurrentProcessNumber()) .append("productionQuantity", getProductionQuantity()) .append("standardTime", getStandardTime()) .append("processTotalTime", getProcessTotalTime()) .append("processPlanStartDay", getProcessPlanStartDay()) .append("designTimes", getDesignTimes()) .append("delFlag", getDelFlag()) .append("createBy", getCreateBy()) .append("batchNumber", getBatchNumber()) .toString(); } } aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPartRouteStatMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,74 @@ package com.aps.core.mapper; import java.util.List; import com.aps.core.domain.ApsPartRouteStat; import org.apache.ibatis.annotations.Mapper; /** * é¶ä»¶ç»è®¡è¡¨Mapperæ¥å£ * * @author zhl * @date 2025-04-11 */ @Mapper public interface ApsPartRouteStatMapper { /** * æ¥è¯¢é¶ä»¶ç»è®¡è¡¨ * * @param id é¶ä»¶ç»è®¡è¡¨ä¸»é® * @return é¶ä»¶ç»è®¡è¡¨ */ public ApsPartRouteStat selectApsPartRouteStatById(String id); /** * æ¥è¯¢é¶ä»¶ç»è®¡è¡¨å表 * * @param apsPartRouteStat é¶ä»¶ç»è®¡è¡¨ * @return é¶ä»¶ç»è®¡è¡¨éå */ public List<ApsPartRouteStat> selectApsPartRouteStatList(ApsPartRouteStat apsPartRouteStat); /** * æ°å¢é¶ä»¶ç»è®¡è¡¨ * * @param apsPartRouteStat é¶ä»¶ç»è®¡è¡¨ * @return ç»æ */ public int insertApsPartRouteStat(ApsPartRouteStat apsPartRouteStat); /** * ä¿®æ¹é¶ä»¶ç»è®¡è¡¨ * * @param apsPartRouteStat é¶ä»¶ç»è®¡è¡¨ * @return ç»æ */ public int updateApsPartRouteStat(ApsPartRouteStat apsPartRouteStat); /** * å é¤é¶ä»¶ç»è®¡è¡¨ * * @param id é¶ä»¶ç»è®¡è¡¨ä¸»é® * @return ç»æ */ public int deleteApsPartRouteStatById(String id); /** * æ¹éå é¤é¶ä»¶ç»è®¡è¡¨ * * @param ids éè¦å é¤çæ°æ®ä¸»é®éå * @return ç»æ */ public int deleteApsPartRouteStatByIds(String[] ids); /** * æ¥è¯¢é¶ä»¶ç»è®¡ç¨äºè®¡ç® * @return */ List<ApsPartRouteStat> selectPartRoutStat(); /** * å¨éæ°æå ¥ä¹åï¼ å é¤é¤æ¤batchNumberä¹å¤çæ°æ®ï¼ * */ int deleteLastBatch(String batchNumber); } aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPartRouteStatService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,62 @@ package com.aps.core.service; import java.util.List; import com.aps.core.domain.ApsPartRouteStat; /** * é¶ä»¶ç»è®¡è¡¨Serviceæ¥å£ * * @author zhl * @date 2025-04-11 */ public interface IApsPartRouteStatService { /** * æ¥è¯¢é¶ä»¶ç»è®¡è¡¨ * * @param id é¶ä»¶ç»è®¡è¡¨ä¸»é® * @return é¶ä»¶ç»è®¡è¡¨ */ public ApsPartRouteStat selectApsPartRouteStatById(String id); /** * æ¥è¯¢é¶ä»¶ç»è®¡è¡¨å表 * * @param apsPartRouteStat é¶ä»¶ç»è®¡è¡¨ * @return é¶ä»¶ç»è®¡è¡¨éå */ public List<ApsPartRouteStat> selectApsPartRouteStatList(ApsPartRouteStat apsPartRouteStat); /** * æ°å¢é¶ä»¶ç»è®¡è¡¨ * * @param apsPartRouteStat é¶ä»¶ç»è®¡è¡¨ * @return ç»æ */ public int insertApsPartRouteStat(ApsPartRouteStat apsPartRouteStat); /** * ä¿®æ¹é¶ä»¶ç»è®¡è¡¨ * * @param apsPartRouteStat é¶ä»¶ç»è®¡è¡¨ * @return ç»æ */ public int updateApsPartRouteStat(ApsPartRouteStat apsPartRouteStat); /** * æ¹éå é¤é¶ä»¶ç»è®¡è¡¨ * * @param ids éè¦å é¤çé¶ä»¶ç»è®¡è¡¨ä¸»é®éå * @return ç»æ */ public int deleteApsPartRouteStatByIds(String[] ids); /** * å é¤é¶ä»¶ç»è®¡è¡¨ä¿¡æ¯ * * @param id é¶ä»¶ç»è®¡è¡¨ä¸»é® * @return ç»æ */ public int deleteApsPartRouteStatById(String id); } aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,145 @@ package com.aps.core.service.impl; import java.time.LocalDateTime; import java.util.List; import java.util.Map; import com.aps.common.core.utils.uuid.IdUtils; import com.aps.common.core.utils.uuid.UUID; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor; import org.springframework.stereotype.Service; import com.aps.core.mapper.ApsPartRouteStatMapper; import com.aps.core.domain.ApsPartRouteStat; import com.aps.core.service.IApsPartRouteStatService; import static java.util.stream.Collectors.groupingBy; /** * é¶ä»¶ç»è®¡è¡¨Serviceä¸å¡å±å¤ç * * @author zhl * @date 2025-04-11 */ @Service public class ApsPartRouteStatServiceImpl implements IApsPartRouteStatService { @Autowired private ApsPartRouteStatMapper apsPartRouteStatMapper; private DefaultsBindHandlerAdvisor.MappingsProvider mappingsProvider; /** * æ¥è¯¢é¶ä»¶ç»è®¡è¡¨ * * @param id é¶ä»¶ç»è®¡è¡¨ä¸»é® * @return é¶ä»¶ç»è®¡è¡¨ */ @Override public ApsPartRouteStat selectApsPartRouteStatById(String id) { return apsPartRouteStatMapper.selectApsPartRouteStatById(id); } /** * æ¥è¯¢é¶ä»¶ç»è®¡è¡¨å表 * * @param apsPartRouteStat é¶ä»¶ç»è®¡è¡¨ * @return é¶ä»¶ç»è®¡è¡¨ */ @Override public List<ApsPartRouteStat> selectApsPartRouteStatList(ApsPartRouteStat apsPartRouteStat) { return apsPartRouteStatMapper.selectApsPartRouteStatList(apsPartRouteStat); } /** * æ°å¢é¶ä»¶ç»è®¡è¡¨ * * @param apsPartRouteStat é¶ä»¶ç»è®¡è¡¨ * @return ç»æ */ @Override public int insertApsPartRouteStat(ApsPartRouteStat apsPartRouteStat) { return apsPartRouteStatMapper.insertApsPartRouteStat(apsPartRouteStat); } /** * ä¿®æ¹é¶ä»¶ç»è®¡è¡¨ * * @param apsPartRouteStat é¶ä»¶ç»è®¡è¡¨ * @return ç»æ */ @Override public int updateApsPartRouteStat(ApsPartRouteStat apsPartRouteStat) { return apsPartRouteStatMapper.updateApsPartRouteStat(apsPartRouteStat); } /** * æ¹éå é¤é¶ä»¶ç»è®¡è¡¨ * * @param ids éè¦å é¤çé¶ä»¶ç»è®¡è¡¨ä¸»é® * @return ç»æ */ @Override public int deleteApsPartRouteStatByIds(String[] ids) { return apsPartRouteStatMapper.deleteApsPartRouteStatByIds(ids); } /** * å é¤é¶ä»¶ç»è®¡è¡¨ä¿¡æ¯ * * @param id é¶ä»¶ç»è®¡è¡¨ä¸»é® * @return ç»æ */ @Override public int deleteApsPartRouteStatById(String id) { return apsPartRouteStatMapper.deleteApsPartRouteStatById(id); } public void updatePartRoutPlanDate() { List<ApsPartRouteStat> tempList = apsPartRouteStatMapper.selectPartRoutStat(); /*对tempList æç § workOrderNo è¿è¡åç»*/ Map<String, List<ApsPartRouteStat>> groupByWorkOrderNo = tempList.stream().collect(groupingBy(ApsPartRouteStat::getWorkOrderNo)); /*æ¬æ¬¡è®¡ç®æ¹æ¬¡å·*/ String batchNum = IdUtils.fastSimpleUUID(); apsPartRouteStatMapper.deleteLastBatch(batchNum); for (Map.Entry<String, List<ApsPartRouteStat>> entry : groupByWorkOrderNo.entrySet()) { /*ååºæ¯ä¸ªé¶ä»¶å·¥åçå·¥èºè·¯çº¿ä¿¡æ¯*/ List<ApsPartRouteStat> apsPartRouteStatList = entry.getValue(); /*æç §å·¥åºå·è¿è¡æåº*/ apsPartRouteStatList.sort((a, b)->a.getRoadProcessNumber().compareTo(b.getRoadProcessNumber())); /*临æ¶ä¿å ä¸ä¸éå·¥åºçå·¥åºæ»å·¥æ¶*/ ApsPartRouteStat last=null; for (int i = 0; i <apsPartRouteStatList.size(); i++) { ApsPartRouteStat stat = apsPartRouteStatList.get(0); /*夿å½åå·¥åº å½åå·¥åºåªæä¸æ¡*/ if (stat.getCurrentProcessNumber().equals(stat.getRoadProcessNumber())) { /* 对 stat.getProcessPlanStartDay() åå½åæ¥æ è¿è¡å¯¹æ¯ï¼åªå¯¹æ¯å°æ¥ï¼ä¸ç¨ç®¡ååç§*/ if (stat.getProcessPlanStartDay().toLocalDate().isBefore(LocalDateTime.now().toLocalDate())) { stat.setProcessPlanStartDay(LocalDateTime.now()); } } /*æªå¼å·¥å·¥åºç计åå¼å·¥æ¥=ä¸ä¸éå·¥åºç计åå¼å·¥æ¥+ä¸ä¸éå·¥åºçå·¥åºæ»å·¥æ¶ã*/ if (stat.getCurrentProcessNumber().compareTo(stat.getRoadProcessNumber()) > 0) { if (last != null) { stat.setProcessPlanStartDay(last.getProcessPlanStartDay().plusHours(last.getProcessTotalTime())); } } /*ä¿åä¸ä¸æ¥è®¡ç®ç å¼å·¥æ¥*/ last = stat; stat.setId(IdUtils.fastUUID().toString()); stat.setBatchNumber(batchNum); apsPartRouteStatMapper.insertApsPartRouteStat(stat); } } apsPartRouteStatMapper.deleteLastBatch(batchNum); } } aps-modules/aps-core/src/main/resources/mapper/core/ApsPartRouteStatMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,134 @@ <?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.ApsPartRouteStatMapper"> <resultMap type="ApsPartRouteStat" id="ApsPartRouteStatResult"> <result property="id" column="id" /> <result property="workOrderNo" column="work_order_no" /> <result property="roadProcessNumber" column="road_process_number" /> <result property="currentProcessNumber" column="current_process_number" /> <result property="productionQuantity" column="production_quantity" /> <result property="standardTime" column="standard_time" /> <result property="processTotalTime" column="process_total_time" /> <result property="processPlanStartDay" column="process_plan_start_day" /> <result property="designTimes" column="design_times" /> <result property="delFlag" column="del_flag" /> <result property="createBy" column="create_by" /> <result property="batchNumber" column="batch_number" /> </resultMap> <sql id="selectApsPartRouteStatVo"> select id, work_order_no, road_process_number, current_process_number, production_quantity, standard_time, process_total_time, process_plan_start_day, design_times, del_flag, create_by, batch_number from aps_part_route_stat </sql> <select id="selectApsPartRouteStatList" parameterType="ApsPartRouteStat" resultMap="ApsPartRouteStatResult"> <include refid="selectApsPartRouteStatVo"/> <where> <if test="workOrderNo != null and workOrderNo != ''"> and work_order_no = #{workOrderNo}</if> <if test="roadProcessNumber != null and roadProcessNumber != ''"> and road_process_number = #{roadProcessNumber}</if> <if test="currentProcessNumber != null and currentProcessNumber != ''"> and current_process_number = #{currentProcessNumber}</if> <if test="productionQuantity != null "> and production_quantity = #{productionQuantity}</if> <if test="standardTime != null "> and standard_time = #{standardTime}</if> <if test="processTotalTime != null "> and process_total_time = #{processTotalTime}</if> <if test="processPlanStartDay != null and processPlanStartDay != ''"> and process_plan_start_day = #{processPlanStartDay}</if> <if test="designTimes != null "> and design_times = #{designTimes}</if> <if test="batchNumber != null and batchNumber != ''"> and batch_number = #{batchNumber}</if> </where> </select> <select id="selectApsPartRouteStatById" parameterType="String" resultMap="ApsPartRouteStatResult"> <include refid="selectApsPartRouteStatVo"/> where id = #{id} </select> <insert id="insertApsPartRouteStat" parameterType="ApsPartRouteStat"> insert into aps_part_route_stat <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null">id,</if> <if test="workOrderNo != null">work_order_no,</if> <if test="roadProcessNumber != null and roadProcessNumber != ''">road_process_number,</if> <if test="currentProcessNumber != null">current_process_number,</if> <if test="productionQuantity != null">production_quantity,</if> <if test="standardTime != null">standard_time,</if> <if test="processTotalTime != null">process_total_time,</if> <if test="processPlanStartDay != null and processPlanStartDay != ''">process_plan_start_day,</if> <if test="designTimes != null">design_times,</if> <if test="delFlag != null">del_flag,</if> <if test="createBy != null">create_by,</if> <if test="batchNumber != null">batch_number,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="id != null">#{id},</if> <if test="workOrderNo != null">#{workOrderNo},</if> <if test="roadProcessNumber != null and roadProcessNumber != ''">#{roadProcessNumber},</if> <if test="currentProcessNumber != null">#{currentProcessNumber},</if> <if test="productionQuantity != null">#{productionQuantity},</if> <if test="standardTime != null">#{standardTime},</if> <if test="processTotalTime != null">#{processTotalTime},</if> <if test="processPlanStartDay != null and processPlanStartDay != ''">#{processPlanStartDay},</if> <if test="designTimes != null">#{designTimes},</if> <if test="delFlag != null">#{delFlag},</if> <if test="createBy != null">#{createBy},</if> <if test="batchNumber != null">#{batchNumber},</if> </trim> </insert> <update id="updateApsPartRouteStat" parameterType="ApsPartRouteStat"> update aps_part_route_stat <trim prefix="SET" suffixOverrides=","> <if test="workOrderNo != null">work_order_no = #{workOrderNo},</if> <if test="roadProcessNumber != null and roadProcessNumber != ''">road_process_number = #{roadProcessNumber},</if> <if test="currentProcessNumber != null">current_process_number = #{currentProcessNumber},</if> <if test="productionQuantity != null">production_quantity = #{productionQuantity},</if> <if test="standardTime != null">standard_time = #{standardTime},</if> <if test="processTotalTime != null">process_total_time = #{processTotalTime},</if> <if test="processPlanStartDay != null and processPlanStartDay != ''">process_plan_start_day = #{processPlanStartDay},</if> <if test="designTimes != null">design_times = #{designTimes},</if> <if test="delFlag != null">del_flag = #{delFlag},</if> <if test="createBy != null">create_by = #{createBy},</if> <if test="batchNumber != null">batch_number = #{batchNumber},</if> </trim> where id = #{id} </update> <update id="deleteApsPartRouteStatById" parameterType="String"> update aps_part_route_stat set del_flag = '1' where id = #{id} </update> <update id="deleteApsPartRouteStatByIds" parameterType="String"> update aps_part_route_stat set del_flag = '1' where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> </update> <update id="deleteLastBatch" parameterType="String"> update aps_part_route_stat set del_flag = '1' where batch_number != #{batchNumber} </update> <select id="selectPartRoutStat" resultMap="ApsPartRouteStatResult" > select rt.work_order_no, rt.process_name, cast( rt.process_number as numeric(18,2)) as road_process_number, cast( pl.process_number as numeric(18,2)) as current_process_number, pl.production_quantity, rt.standard_time, (rt.standard_time*pl.production_quantity) as process_total_time, rt.process_plan_start_day , (rs.devices_quantity*rs.theory_hours) as design_time from aps_part_plan as pl left join aps_process_route as rt on pl.document_number=rt.work_order_no left join aps_resource_group as rs on rs.resource_group_name=rt.process_name where pl.del_flag='0' and rt.del_flag='0' /*é¶ä»¶è®¡åç¶æä¸ºï¼éå®å·¥ */ and ( pl.order_status!='' and ( pl.order_status!='3' or pl.order_status!='å®å·¥') ) /*å·¥èºè·¯çº¿çå·¥åºå·>=é¶ä»¶è®¡åçå½åå·¥åº*/ and cast( rt.process_number as decimal(18,2)) >= cast( pl.process_number as decimal(18,2)) /*å·¥åºè®¡åå¼å·¥æ¥ <= èµæºç»çæªæ¢æ¥æ*/ and rt.process_plan_start_day<=rs.request_date /*èµæºç»éæ±æªæ¢æ¥æ<=å½åæ¥æ+15天*/ and rs.request_date<=(current_date + INTERVAL '15 day') order by rt.work_order_no,process_plan_start_day </select> </mapper>