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