From 6c3b6d53a8a41777f0dc5f6beb6dd5db6a3f89f4 Mon Sep 17 00:00:00 2001 From: wenwj <‘1106994300@qq.com> Date: 星期五, 11 四月 2025 15:37:19 +0800 Subject: [PATCH] Merge branch 'dev' of http://192.168.50.149:8085/r/aps-backend into dev --- aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartRouteStat.java | 190 +++++++++++++++ aps-modules/aps-core/src/main/resources/mapper/core/ApsPartRouteStatMapper.xml | 134 +++++++++++ aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPartRouteStatMapper.java | 74 ++++++ aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java | 145 ++++++++++++ aps-modules/aps-core/src/main/java/com/aps/core/controller/ApsPartRouteStatController.java | 105 ++++++++ aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPartRouteStatService.java | 62 +++++ 6 files changed, 710 insertions(+), 0 deletions(-) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/ApsPartRouteStatController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/ApsPartRouteStatController.java new file mode 100644 index 0000000..2540418 --- /dev/null +++ b/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; + +/** + * 闆朵欢缁熻琛–ontroller + * + * @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)); + } +} diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartRouteStat.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPartRouteStat.java new file mode 100644 index 0000000..4eb129e --- /dev/null +++ b/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浠h〃瀛樺湪 2浠h〃鍒犻櫎锛� */ + 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(); + } +} diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPartRouteStatMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPartRouteStatMapper.java new file mode 100644 index 0000000..1b7f892 --- /dev/null +++ b/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; + +/** + * 闆朵欢缁熻琛∕apper鎺ュ彛 + * + * @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); + +} diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPartRouteStatService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPartRouteStatService.java new file mode 100644 index 0000000..9bd2305 --- /dev/null +++ b/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; + +/** + * 闆朵欢缁熻琛⊿ervice鎺ュ彛 + * + * @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); + +} diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java new file mode 100644 index 0000000..c9c4baa --- /dev/null +++ b/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; + +/** + * 闆朵欢缁熻琛⊿ervice涓氬姟灞傚鐞� + * + * @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(); + /*瀵箃empList 鎸夌収 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); + + } +} diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPartRouteStatMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPartRouteStatMapper.xml new file mode 100644 index 0000000..d029bb9 --- /dev/null +++ b/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> \ No newline at end of file -- Gitblit v1.9.3