From e4efff6637f4d598a7efdfca8b62fbb4c3286b02 Mon Sep 17 00:00:00 2001 From: hongjli <3117313295@qq.com> Date: 星期四, 22 五月 2025 15:39:39 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- aps-modules/aps-job/src/main/java/com/aps/job/util/AbstractQuartzJob.java | 6 aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsGasPipelineCapacityPlanController.java | 68 +++++--- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java | 19 ++ aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java | 7 aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java | 7 aps-modules/aps-core/src/main/java/com/aps/core/enums/PLAN_TASK_STATUS.java | 4 aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml | 11 aps-modules/aps-core/src/main/resources/templates/气体工单数据模板v1.0.xlsx | 0 aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomHeaderService.java | 2 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java | 4 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlanTaskServiceImpl.java | 39 ++-- aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineCapacityPlanMapper.xml | 15 + aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java | 22 -- aps-common/aps-common-redis/src/main/java/com/aps/common/redis/service/RedisLockUtils.java | 3 aps-modules/aps-core/src/main/resources/templates/气体预测数据模板v1.0.xlsx | 0 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelineCapacityPlanServiceImpl.java | 92 ++++++++-- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireBatchServiceImpl.java | 18 - aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireErrorServiceImpl.java | 21 ++ aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java | 9 + aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineCapacityPlan.java | 16 ++ aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireErrorMapper.xml | 4 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java | 5 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomStockDetailMapper.xml | 4 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsGasPipelineCapacityPlanMapper.java | 5 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireMapper.xml | 2 aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireBatchService.java | 2 /dev/null | 0 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireServiceImpl.java | 46 ++--- aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomOrderDetailMapper.xml | 2 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java | 4 aps-modules/aps-core/src/main/java/com/aps/core/service/IApsGasPipelineCapacityPlanService.java | 2 aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWeldSeamStandardJobServiceImpl.java | 14 + aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireErrorService.java | 4 aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml | 10 + 34 files changed, 305 insertions(+), 162 deletions(-) diff --git a/aps-common/aps-common-redis/src/main/java/com/aps/common/redis/service/RedisLockUtils.java b/aps-common/aps-common-redis/src/main/java/com/aps/common/redis/service/RedisLockUtils.java index 4460773..1dafb95 100644 --- a/aps-common/aps-common-redis/src/main/java/com/aps/common/redis/service/RedisLockUtils.java +++ b/aps-common/aps-common-redis/src/main/java/com/aps/common/redis/service/RedisLockUtils.java @@ -29,6 +29,9 @@ * 鍒ゆ柇鏄惁瀛樺湪閿� * */ public boolean existLock(String key,String value){ + if(null==this.redisTemplate.opsForValue().get(key)){ + return false; + } return this.redisTemplate.opsForValue().get(key).equals(value); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsGasPipelineCapacityPlanController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsGasPipelineCapacityPlanController.java index e2b1ddd..744750a 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsGasPipelineCapacityPlanController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsGasPipelineCapacityPlanController.java @@ -24,7 +24,7 @@ /** * 姘斾綋绠¤矾浜ц兘瑙勫垝Controller - * + * * @author hjy * @date 2025-04-24 */ @@ -32,8 +32,7 @@ @Tag(name = "姘斾綋绠¤矾浜ц兘瑙勫垝", description = "姘斾綋绠¤矾浜ц兘瑙勫垝鎺ュ彛") @RestController @RequestMapping("/gasPipelineCapacityPlan") -public class ApsGasPipelineCapacityPlanController extends BaseController -{ +public class ApsGasPipelineCapacityPlanController extends BaseController { @Autowired private IApsGasPipelineCapacityPlanService apsGasPipelineCapacityPlanService; @@ -46,43 +45,42 @@ @Operation(summary = "鏌ヨ姘斾綋绠¤矾浜ц兘瑙勫垝鍒楄〃", description = "鍒嗛〉鏌ヨ") @RequiresPermissions("aps:gasPipelineCapacityPlan:list") @GetMapping("/list") - public TableDataInfo list(ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) - { + public TableDataInfo list(ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) { // startPage(); List<ApsGasPipelineCapacityPlan> list = apsGasPipelineCapacityPlanService.selectApsGasPipelineCapacityPlanList(apsGasPipelineCapacityPlan); ApsStandardProcess apsStandardProcess = new ApsStandardProcess(); apsStandardProcess.setMajor(apsGasPipelineCapacityPlan.getMajor()); apsStandardProcess.setPlant(apsGasPipelineCapacityPlan.getOrgCode()); List<ApsStandardProcess> processList = apsStandardProcessService.selectApsStandardProcessListAll(apsStandardProcess); - if(list.isEmpty()){ - for(ApsStandardProcess apsStandardProcessTemp : processList){ + if (list.isEmpty()) { + for (ApsStandardProcess apsStandardProcessTemp : processList) { ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlanTemp = new ApsGasPipelineCapacityPlan(); apsGasPipelineCapacityPlanTemp.setProcessName(apsStandardProcessTemp.getProcessName()); apsGasPipelineCapacityPlanTemp.setOrgCode(apsStandardProcessTemp.getPlant()); list.add(apsGasPipelineCapacityPlanTemp); } } - if(processList.size()>list.size()){ + if (processList.size() > list.size()) { List<String> newProcess = new ArrayList<>(); - for(ApsStandardProcess apsStandardProcessTemp : processList){ + for (ApsStandardProcess apsStandardProcessTemp : processList) { boolean flag = true; - for(ApsGasPipelineCapacityPlan temp : list){ - if(apsStandardProcessTemp.getProcessName().equals(temp.getProcessName())){ + for (ApsGasPipelineCapacityPlan temp : list) { + if (apsStandardProcessTemp.getProcessName().equals(temp.getProcessName())) { flag = false; break; } } - if(flag){ + if (flag) { newProcess.add(apsStandardProcessTemp.getProcessName()); } } - for(String processName : newProcess){ + for (String processName : newProcess) { ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlanTemp = new ApsGasPipelineCapacityPlan(); apsGasPipelineCapacityPlanTemp.setProcessName(processName); list.add(apsGasPipelineCapacityPlanTemp); } } - list.sort((a, b)->a.getProcessName().compareTo(b.getProcessName())); + list.sort((a, b) -> a.getProcessName().compareTo(b.getProcessName())); return getDataTable(list); } @@ -93,11 +91,31 @@ @RequiresPermissions("aps:gasPipelineCapacityPlan:export") @Log(title = "姘斾綋绠¤矾浜ц兘瑙勫垝", businessType = BusinessType.EXPORT) @PostMapping("/export") - public void export(HttpServletResponse response, ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) - { + public void export(HttpServletResponse response, ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) { List<ApsGasPipelineCapacityPlan> list = apsGasPipelineCapacityPlanService.selectApsGasPipelineCapacityPlanList(apsGasPipelineCapacityPlan); ExcelUtil<ApsGasPipelineCapacityPlan> util = new ExcelUtil<ApsGasPipelineCapacityPlan>(ApsGasPipelineCapacityPlan.class); util.exportExcel(response, list, "姘斾綋绠¤矾浜ц兘瑙勫垝鏁版嵁"); + } + + + /** + * 澶嶅埗姘斾綋绠¤矾浜ц兘瑙勫垝 + */ + @Operation(summary = "澶嶅埗姘斾綋绠¤矾浜ц兘瑙勫垝", description = "澶嶅埗") +// @RequiresPermissions("aps:gasPipelineCapacityPlan:copy") + @Log(title = "澶嶅埗姘斾綋绠¤矾浜ц兘瑙勫垝", businessType = BusinessType.INSERT) + @PutMapping("/copy") + public AjaxResult copy( + // 鏍煎紡锛歽yyy-MM + @RequestParam String date, + @RequestParam String factory, + @RequestParam String major, + // 鏍煎紡锛歽yyy-MM + @RequestParam String toStart, + // 鏍煎紡锛歽yyy-MM + @RequestParam String toEnd) { + apsGasPipelineCapacityPlanService.copyPlan(date, factory, major, toStart, toEnd); + return success(); } /** @@ -106,8 +124,7 @@ @Operation(summary = "鑾峰彇姘斾綋绠¤矾浜ц兘瑙勫垝璇︾粏淇℃伅", description = "鏍规嵁id鑾峰彇") @RequiresPermissions("aps:gasPipelineCapacityPlan:query") @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") Long id) - { + public AjaxResult getInfo(@PathVariable("id") Long id) { return success(apsGasPipelineCapacityPlanService.selectApsGasPipelineCapacityPlanById(id)); } @@ -118,14 +135,13 @@ @RequiresPermissions("aps:gasPipelineCapacityPlan:add") @Log(title = "姘斾綋绠¤矾浜ц兘瑙勫垝", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@RequestBody List<ApsGasPipelineCapacityPlan> apsGasPipelineCapacityPlan) - { + public AjaxResult add(@RequestBody List<ApsGasPipelineCapacityPlan> apsGasPipelineCapacityPlan) { apsGasPipelineCapacityPlan.forEach(apsGasPipelineCapacityPlanTemp -> { - if(apsGasPipelineCapacityPlanTemp.getId()==null){ + if (apsGasPipelineCapacityPlanTemp.getId() == null) { apsGasPipelineCapacityPlanTemp.setCreateBy(SecurityUtils.getUsername()); apsGasPipelineCapacityPlanTemp.setCreateTime(DateUtils.getNowDate()); apsGasPipelineCapacityPlanService.insertApsGasPipelineCapacityPlan(apsGasPipelineCapacityPlanTemp); - }else{ + } else { apsGasPipelineCapacityPlanTemp.setUpdateBy(SecurityUtils.getUsername()); apsGasPipelineCapacityPlanTemp.setUpdateTime(DateUtils.getNowDate()); apsGasPipelineCapacityPlanService.updateApsGasPipelineCapacityPlan(apsGasPipelineCapacityPlanTemp); @@ -141,8 +157,7 @@ @RequiresPermissions("aps:gasPipelineCapacityPlan:edit") @Log(title = "姘斾綋绠¤矾浜ц兘瑙勫垝", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@RequestBody ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) - { + public AjaxResult edit(@RequestBody ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) { return toAjax(apsGasPipelineCapacityPlanService.updateApsGasPipelineCapacityPlan(apsGasPipelineCapacityPlan)); } @@ -152,9 +167,8 @@ @Operation(summary = "鍒犻櫎姘斾綋绠¤矾浜ц兘瑙勫垝", description = "鎵归噺鍒犻櫎") @RequiresPermissions("aps:gasPipelineCapacityPlan:remove") @Log(title = "姘斾綋绠¤矾浜ц兘瑙勫垝", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) - { + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(apsGasPipelineCapacityPlanService.deleteApsGasPipelineCapacityPlanByIds(ids)); } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java index 433c072..d1342ca 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java @@ -129,7 +129,8 @@ @PostMapping("/setBomDataToRedis") public void setBomDataToRedis() { - apsBomHeaderService.setBomDataToRedis(""); + apsBomHeaderService.setBomDataToRedis("FORTUNA"); + //apsBomHeaderService.setBomDataToRedis("FORTUNE"); } @PostMapping("/test") @@ -137,4 +138,10 @@ { apsBomHeaderService.setBomDataToRedis("FORTUNA"); } + + @GetMapping("/getBomRdsCount/{orgCode}") + public Integer getBomRdsCount(String orgCode) + { + return apsBomHeaderService.getBomKeys(orgCode); + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java index 28bdaa0..f99787f 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java @@ -130,13 +130,14 @@ */ @SneakyThrows @Operation(summary = "涓嬭浇姘斾綋宸ュ崟鏁版嵁瀵煎叆妯℃澘", description = "涓嬭浇姘斾綋宸ュ崟鏁版嵁瀵煎叆妯℃澘") - @RequiresPermissions("gasPipeline:mo:template") - @Log(title = "涓嬭浇姘斾綋宸ュ崟鏁版嵁瀵煎叆妯℃澘", businessType = BusinessType.EXPORT) +// @RequiresPermissions("gasPipeline:mo:template") +// @Log(title = "涓嬭浇姘斾綋宸ュ崟鏁版嵁瀵煎叆妯℃澘", businessType = BusinessType.EXPORT) @GetMapping("/template") public ResponseEntity<ByteArrayResource> exportTemplate() { - byte[] file = IOUtils.resourceToByteArray("/templates/涓婁紶姘斾綋宸ュ崟鏁版嵁妯℃澘.xlsx"); + byte[] file = IOUtils.resourceToByteArray("/templates/姘斾綋宸ュ崟鏁版嵁妯℃澘v1.0.xlsx"); ByteArrayResource resource = new ByteArrayResource(file); return ResponseEntity.ok() + .header("Access-Control-Expose-Headers", HttpHeaders.CONTENT_DISPOSITION) .header(HttpHeaders.CONTENT_DISPOSITION, String.format("attachment;filename=%s", URLEncoder.encode("姘斾綋宸ュ崟鏁版嵁妯℃澘.xlsx", StandardCharsets.UTF_8))) .header(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java index 48d9042..faf5e0a 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java @@ -70,13 +70,14 @@ */ @SneakyThrows @Operation(summary = "涓嬭浇姘斾綋棰勬祴鏁版嵁瀵煎叆妯℃澘", description = "涓嬭浇姘斾綋棰勬祴鏁版嵁瀵煎叆妯℃澘") - @RequiresPermissions("gasPipeline:prediction:template") - @Log(title = "涓嬭浇姘斾綋棰勬祴鏁版嵁瀵煎叆妯℃澘", businessType = BusinessType.EXPORT) +// @RequiresPermissions("gasPipeline:prediction:template") +// @Log(title = "涓嬭浇姘斾綋棰勬祴鏁版嵁瀵煎叆妯℃澘", businessType = BusinessType.EXPORT) @GetMapping("/template") public ResponseEntity<ByteArrayResource> exportTemplate() { - byte[] file = IOUtils.resourceToByteArray("/templates/涓婁紶姘斾綋棰勬祴鏁版嵁妯℃澘.xlsx"); + byte[] file = IOUtils.resourceToByteArray("/templates/姘斾綋棰勬祴鏁版嵁妯℃澘v1.0.xlsx"); ByteArrayResource resource = new ByteArrayResource(file); return ResponseEntity.ok() + .header("Access-Control-Expose-Headers", HttpHeaders.CONTENT_DISPOSITION) .header(HttpHeaders.CONTENT_DISPOSITION, String.format("attachment;filename=%s", URLEncoder.encode("姘斾綋棰勬祴鏁版嵁妯℃澘.xlsx", StandardCharsets.UTF_8))) .header(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineCapacityPlan.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineCapacityPlan.java index 46eb05a..3751687 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineCapacityPlan.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineCapacityPlan.java @@ -2,9 +2,14 @@ import com.aps.common.core.annotation.Excel; import com.aps.common.core.web.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; +import org.springframework.data.annotation.Id; import java.math.BigDecimal; @@ -14,12 +19,16 @@ * @author hjy * @date 2025-04-24 */ +@Data @Schema(description = "姘斾綋绠¤矾浜ц兘瑙勫垝瀹炰綋绫�") public class ApsGasPipelineCapacityPlan extends BaseEntity { private static final long serialVersionUID = 1L; + @Id + @TableId(type = IdType.AUTO) /** 涓婚敭id */ + @JsonFormat(shape = JsonFormat.Shape.STRING) @Schema(description = "涓婚敭id", type = "Long") private Long id; @@ -58,6 +67,7 @@ @Schema(description = "鏃ヤ骇鍑哄崟浣�", type = "String") private String dayProduceUnit; + /** 浜哄憳鏁伴噺 */ @Excel(name = "浜哄憳鏁伴噺") @Schema(description = "浜哄憳鏁伴噺", type = "BigDecimal") @@ -83,6 +93,12 @@ @Schema(description = "宸ュ巶浠g爜", type = "String") private String orgCode; + + /** 杞﹂棿 */ + @Excel(name = "杞﹂棿") + @Schema(description = "杞﹂棿", type = "String") + private String workshop; + public void setOrgCode(String orgCode) { this.orgCode = orgCode; diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/enums/PLAN_TASK_STATUS.java b/aps-modules/aps-core/src/main/java/com/aps/core/enums/PLAN_TASK_STATUS.java index ec1945d..1714dab 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/enums/PLAN_TASK_STATUS.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/enums/PLAN_TASK_STATUS.java @@ -2,8 +2,8 @@ public enum PLAN_TASK_STATUS { IN_PROCESS("InProgress","杩涜涓�"), - FINISHED("Finished","瀹屾垚"); - + FINISHED("Finished","瀹屾垚"), + ERROR("Error","澶辫触"); private String code; private String desc; diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsGasPipelineCapacityPlanMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsGasPipelineCapacityPlanMapper.java index 329bc9b..22ddc1c 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsGasPipelineCapacityPlanMapper.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsGasPipelineCapacityPlanMapper.java @@ -1,6 +1,7 @@ package com.aps.core.mapper; import com.aps.core.domain.ApsGasPipelineCapacityPlan; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -12,7 +13,7 @@ * @date 2025-04-24 */ @Mapper -public interface ApsGasPipelineCapacityPlanMapper +public interface ApsGasPipelineCapacityPlanMapper extends BaseMapper<ApsGasPipelineCapacityPlan> { /** * 鏌ヨ姘斾綋绠¤矾浜ц兘瑙勫垝 @@ -61,4 +62,6 @@ * @return 缁撴灉 */ public int deleteApsGasPipelineCapacityPlanByIds(Long[] ids); + + void deleteByDateAndFactory(String year, String month, String factory, String major); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireBatchService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireBatchService.java index 7e619a5..aeedfb3 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireBatchService.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireBatchService.java @@ -63,5 +63,5 @@ String getNewBatchNumber(); @Transactional - void initRequireBatch(); + void initRequireBatch(String batchNumber); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireErrorService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireErrorService.java index 25bf22c..d3958e1 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireErrorService.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/ApsPlate/IApsPlateStandardRequireErrorService.java @@ -1,6 +1,8 @@ package com.aps.core.service.ApsPlate; import java.util.List; + +import com.aps.core.domain.ApsPlate.ApsPlateStandardRequire; import com.aps.core.domain.ApsPlate.ApsPlateStandardRequireError; /** @@ -58,4 +60,6 @@ * @return 缁撴灉 */ public int deleteApsPlateStandardRequireErrorById(Long id); + + void saveRequireError(ApsPlateStandardRequire require, String message); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomHeaderService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomHeaderService.java index c985f36..794b14f 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomHeaderService.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsBomHeaderService.java @@ -66,4 +66,6 @@ * @return */ public boolean setBomDataToRedis(String orgCode); + + Integer getBomKeys(String orgCode); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsGasPipelineCapacityPlanService.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsGasPipelineCapacityPlanService.java index cfb8e5b..722bb30 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsGasPipelineCapacityPlanService.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/IApsGasPipelineCapacityPlanService.java @@ -59,4 +59,6 @@ * @return 缁撴灉 */ public int deleteApsGasPipelineCapacityPlanById(Long id); + + void copyPlan(String date, String factory, String major, String toStart, String toEnd); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java index e5ab958..939cd2b 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomHeaderServiceImpl.java @@ -131,4 +131,8 @@ } return true; } + @Override + public Integer getBomKeys(String orgCode){ + return redisTemplate.keys("BOM:BOM_"+orgCode+"*").size(); + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java index 0b9717b..bd7b3c8 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java @@ -140,10 +140,6 @@ bomLineList.add(apsBom); } } -// else { -// bomLineList = selectApsBomLineList(plant, itemNumber); -// } - return bomLineList; } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelineCapacityPlanServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelineCapacityPlanServiceImpl.java index f175d09..49a8da2 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelineCapacityPlanServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelineCapacityPlanServiceImpl.java @@ -5,56 +5,59 @@ import com.aps.core.domain.ApsGasPipelineCapacityPlan; import com.aps.core.mapper.ApsGasPipelineCapacityPlanMapper; import com.aps.core.service.IApsGasPipelineCapacityPlanService; +import lombok.SneakyThrows; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.util.Calendar; +import java.util.Date; import java.util.List; /** * 姘斾綋绠¤矾浜ц兘瑙勫垝Service涓氬姟灞傚鐞� - * + * * @author hjy * @date 2025-04-24 */ @Service -public class ApsGasPipelineCapacityPlanServiceImpl implements IApsGasPipelineCapacityPlanService -{ +public class ApsGasPipelineCapacityPlanServiceImpl implements IApsGasPipelineCapacityPlanService { @Autowired private ApsGasPipelineCapacityPlanMapper apsGasPipelineCapacityPlanMapper; /** * 鏌ヨ姘斾綋绠¤矾浜ц兘瑙勫垝 - * + * * @param id 姘斾綋绠¤矾浜ц兘瑙勫垝涓婚敭 * @return 姘斾綋绠¤矾浜ц兘瑙勫垝 */ @Override - public ApsGasPipelineCapacityPlan selectApsGasPipelineCapacityPlanById(Long id) - { + public ApsGasPipelineCapacityPlan selectApsGasPipelineCapacityPlanById(Long id) { return apsGasPipelineCapacityPlanMapper.selectApsGasPipelineCapacityPlanById(id); } /** * 鏌ヨ姘斾綋绠¤矾浜ц兘瑙勫垝鍒楄〃 - * + * * @param apsGasPipelineCapacityPlan 姘斾綋绠¤矾浜ц兘瑙勫垝 * @return 姘斾綋绠¤矾浜ц兘瑙勫垝 */ @Override - public List<ApsGasPipelineCapacityPlan> selectApsGasPipelineCapacityPlanList(ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) - { + public List<ApsGasPipelineCapacityPlan> selectApsGasPipelineCapacityPlanList(ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) { return apsGasPipelineCapacityPlanMapper.selectApsGasPipelineCapacityPlanList(apsGasPipelineCapacityPlan); } /** * 鏂板姘斾綋绠¤矾浜ц兘瑙勫垝 - * + * * @param apsGasPipelineCapacityPlan 姘斾綋绠¤矾浜ц兘瑙勫垝 * @return 缁撴灉 */ @Override - public int insertApsGasPipelineCapacityPlan(ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) - { + public int insertApsGasPipelineCapacityPlan(ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) { apsGasPipelineCapacityPlan.setCreateTime(DateUtils.getNowDate()); apsGasPipelineCapacityPlan.setCreateBy(SecurityUtils.getUsername()); return apsGasPipelineCapacityPlanMapper.insertApsGasPipelineCapacityPlan(apsGasPipelineCapacityPlan); @@ -62,13 +65,12 @@ /** * 淇敼姘斾綋绠¤矾浜ц兘瑙勫垝 - * + * * @param apsGasPipelineCapacityPlan 姘斾綋绠¤矾浜ц兘瑙勫垝 * @return 缁撴灉 */ @Override - public int updateApsGasPipelineCapacityPlan(ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) - { + public int updateApsGasPipelineCapacityPlan(ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlan) { apsGasPipelineCapacityPlan.setUpdateTime(DateUtils.getNowDate()); apsGasPipelineCapacityPlan.setUpdateBy(SecurityUtils.getUsername()); return apsGasPipelineCapacityPlanMapper.updateApsGasPipelineCapacityPlan(apsGasPipelineCapacityPlan); @@ -76,25 +78,73 @@ /** * 鎵归噺鍒犻櫎姘斾綋绠¤矾浜ц兘瑙勫垝 - * + * * @param ids 闇�瑕佸垹闄ょ殑姘斾綋绠¤矾浜ц兘瑙勫垝涓婚敭 * @return 缁撴灉 */ @Override - public int deleteApsGasPipelineCapacityPlanByIds(Long[] ids) - { + public int deleteApsGasPipelineCapacityPlanByIds(Long[] ids) { return apsGasPipelineCapacityPlanMapper.deleteApsGasPipelineCapacityPlanByIds(ids); } /** * 鍒犻櫎姘斾綋绠¤矾浜ц兘瑙勫垝淇℃伅 - * + * * @param id 姘斾綋绠¤矾浜ц兘瑙勫垝涓婚敭 * @return 缁撴灉 */ @Override - public int deleteApsGasPipelineCapacityPlanById(Long id) - { + public int deleteApsGasPipelineCapacityPlanById(Long id) { return apsGasPipelineCapacityPlanMapper.deleteApsGasPipelineCapacityPlanById(id); } + + @SneakyThrows + @Override + @Transactional(rollbackFor = Exception.class) + public void copyPlan(String date, String factory, String major, String toStart, String toEnd) { + + String[] dtSrc = date.split("-"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + Calendar dtStart = Calendar.getInstance(); + dtStart.setTime(sdf.parse(toStart)); + dtStart.set(Calendar.DAY_OF_MONTH, 1); + Calendar dtEnd = Calendar.getInstance(); + dtEnd.setTime(sdf.parse(toEnd)); + dtEnd.set(Calendar.DAY_OF_MONTH, 2); + + ApsGasPipelineCapacityPlan plan = new ApsGasPipelineCapacityPlan(); + plan.setYear(Integer.valueOf(dtSrc[0]).toString()); + plan.setMonth(Integer.valueOf(dtSrc[1]).toString()); + plan.setOrgCode(factory); + plan.setMajor(major); + List<ApsGasPipelineCapacityPlan> templatePlans = apsGasPipelineCapacityPlanMapper.selectApsGasPipelineCapacityPlanList(plan); + templatePlans.forEach(p -> { + p.setCreateBy(SecurityUtils.getUsername()); + p.setCreateTime(new Date()); + p.setUpdateBy(null); + p.setUpdateTime(null); +// apsGasPipelineCapacityPlanMapper.insertApsGasPipelineCapacityPlan(p); + }); + + while (dtStart.before(dtEnd)) { + String year = dtStart.get(Calendar.YEAR) + ""; + String month = (dtStart.get(Calendar.MONTH) + 1) + ""; + apsGasPipelineCapacityPlanMapper.deleteByDateAndFactory( + year, + month, + factory, + major + ); + templatePlans.forEach(p -> { + p.setId(null); + p.setYear(year); + p.setMonth(month); +// apsGasPipelineCapacityPlanMapper.insertApsGasPipelineCapacityPlan(p); + }); + apsGasPipelineCapacityPlanMapper.insert(templatePlans); + + dtStart.add(Calendar.MONTH, 1); + } + + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlanTaskServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlanTaskServiceImpl.java index 6469be7..d00d0af 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlanTaskServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlanTaskServiceImpl.java @@ -90,36 +90,37 @@ } @Override - public AjaxResult generatorPlan() - { + public AjaxResult generatorPlan() { String plateOrderPlanKey = PLATE_ORDER_PLAN.getKey(); boolean existsLock = redisLockUtils.existLock(plateOrderPlanKey, PLAN_TASK_TYPE.PLATE_PLAN.getCode()); - if (existsLock){ + if (existsLock) { return AjaxResult.warn("閽i噾宸ュ崟璁″垝浠诲姟姝e湪鎵ц涓�!"); } - LambdaQueryWrapper<ApsPlanTask> queryWrapper=new LambdaQueryWrapper<>(); - queryWrapper.eq(ApsPlanTask::getTaskType,PLAN_TASK_TYPE.PLATE_PLAN.getCode()); - queryWrapper.eq(ApsPlanTask::getTaskStatus,PLAN_TASK_STATUS.IN_PROCESS.getCode()); + LambdaQueryWrapper<ApsPlanTask> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ApsPlanTask::getTaskType, PLAN_TASK_TYPE.PLATE_PLAN.getCode()); + queryWrapper.eq(ApsPlanTask::getTaskStatus, PLAN_TASK_STATUS.IN_PROCESS.getCode()); boolean existsDbTask = mapper.exists(queryWrapper); - if (existsDbTask){ + if (existsDbTask) { return AjaxResult.warn("閽i噾宸ュ崟璁″垝浠诲姟姝e湪鎵ц涓�!!"); } + String currentBatchNum = requireBatchService.getNewBatchNumber(); try { - redisLockUtils.getLock(plateOrderPlanKey,PLAN_TASK_TYPE.PLATE_PLAN.getCode(), 3*60L); - String batchNum= requireBatchService.getNewBatchNumber(); - this.savePlanTask(batchNum); - apsPlateStandardRequireService.generatorPlan(batchNum); - this.updateTaskStatus(batchNum, PLAN_TASK_STATUS.FINISHED); + redisLockUtils.getLock(plateOrderPlanKey, PLAN_TASK_TYPE.PLATE_PLAN.getCode(), 15 * 60L); + this.savePlanTask(currentBatchNum); + //Thread.sleep(60*1000); + apsPlateStandardRequireService.generatorPlan(currentBatchNum); /*娓呴櫎宸茬粡瀛樺湪鐨� 宸ュ崟璁″垝瀹屽伐鏃堕棿*/ orderEndDayMapper.batchRemove(); - log.info("璁″垝浠诲姟鎵ц瀹屾垚!"+batchNum); + this.updateTaskStatus(currentBatchNum, PLAN_TASK_STATUS.FINISHED); + log.info("璁″垝浠诲姟鎵ц瀹屾垚!" + currentBatchNum); return success(); - }catch (Exception e){ - redisLockUtils.releaseLock(plateOrderPlanKey,PLAN_TASK_TYPE.PLATE_PLAN.getCode()); - log.error("璁″垝浠诲姟鎵ц澶辫触!"+e.getMessage()); - return AjaxResult.error("璁″垝浠诲姟鎵ц澶辫触!"+e.getMessage()); - }finally { - redisLockUtils.releaseLock(plateOrderPlanKey,PLAN_TASK_TYPE.PLATE_PLAN.getCode()); + } catch (Exception e) { + redisLockUtils.releaseLock(plateOrderPlanKey, PLAN_TASK_TYPE.PLATE_PLAN.getCode()); + log.error("璁″垝浠诲姟鎵ц澶辫触!" + e.getMessage()); + this.updateTaskStatus(currentBatchNum, PLAN_TASK_STATUS.ERROR); + return AjaxResult.error("璁″垝浠诲姟鎵ц澶辫触!" + e.getMessage()); + } finally { + redisLockUtils.releaseLock(plateOrderPlanKey, PLAN_TASK_TYPE.PLATE_PLAN.getCode()); } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java index 2315067..2436835 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessShopStatServiceImpl.java @@ -18,6 +18,7 @@ import com.aps.core.domain.ApsPlate.ApsPlateProcessShopStat; import com.aps.core.domain.ApsPlate.ApsPlateProcessStat; import com.aps.core.mapper.*; +import com.aps.core.service.ApsPlate.IApsPlateProcessStatService; import com.aps.system.api.domain.SysDictData; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; @@ -59,6 +60,9 @@ @Resource private ApsPlatePlanMapper apsPlatePlanMapper; + @Autowired + private IApsPlateProcessStatService apsPlateProcessStatService; + /** @@ -136,6 +140,7 @@ @Override public void saveShopStat() { try { + apsPlateProcessStatService.savePlateProcessStat(); // 寮�濮嬩箣鍓嶅厛鍒犻櫎鎵�鏈夊巻鍙叉暟鎹� apsPlateProcessShopStatMapper.deleteAll(); diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java index 6544ed3..410a1d6 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateProcessStatServiceImpl.java @@ -2,12 +2,15 @@ import java.math.BigDecimal; import java.time.*; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; +import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.uuid.IdUtils; import com.aps.common.security.utils.SecurityUtils; +import com.aps.core.domain.ApsPlate.ApsPlateStandardRequireBomOrderDetail; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.aps.core.mapper.ApsPlateProcessStatMapper; @@ -109,9 +112,11 @@ public void savePlateProcessStat() { String batchNum = IdUtils.fastSimpleUUID(); List<ApsPlateProcessStat> tempList = apsPlateProcessStatMapper.queryTempStat(); + ApsPlateProcessStat apsPlateProcessStat = tempList.stream().filter(x -> x.getWorkOrderNo().equals("MO-250409003498")).findFirst().get(); Map<String, List<ApsPlateProcessStat>> groupByOrderNo = tempList.stream().collect(groupingBy(ApsPlateProcessStat::getWorkOrderNo)); Boolean hasBefore = false; LocalDateTime now = LocalDateTime.now(); + List<ApsPlateProcessStat> totalList=new ArrayList<>(); for (Map.Entry<String, List<ApsPlateProcessStat>> entry : groupByOrderNo.entrySet()) { List<ApsPlateProcessStat> statPerOrder = entry.getValue(); /*num 涓烘牴鎹畬宸ユ椂闂存帓搴忓嚭鐨勫簭鍙凤紝鎸夋鎺掑簭锛屽彲淇濊瘉鏄寜瀹屽伐鏃堕棿鍊掑彊鎺掑垪*/ @@ -176,13 +181,21 @@ } } last = stat; - apsPlateProcessStatMapper.insertApsPlateProcessStat(stat); + totalList.add(stat); + //apsPlateProcessStatMapper.insertApsPlateProcessStat(stat); } hasBefore=false; - } apsPlateProcessStatMapper.removeOtherStat(batchNum); - + if(!totalList.isEmpty()){ + int batchSize = 1000; + totalList.forEach(x->x.setId(String.valueOf(IdUtil.getSnowflakeNextId()))); + for (int i = 0; i < totalList.size(); i += batchSize) { + int end = Math.min(i + batchSize, totalList.size()); + List<ApsPlateProcessStat> batch = totalList.subList(i, end); + apsPlateProcessStatMapper.batchInsertPlateStat(batch); + } + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireBatchServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireBatchServiceImpl.java index e765fc6..5046800 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireBatchServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireBatchServiceImpl.java @@ -136,16 +136,12 @@ @Transactional @Override - public void initRequireBatch() { - ApsPlateStandardRequireBatch batch=apsPlateStandardRequireBatchMapper.selectLastRequireBatch(); - if (batch!=null){ - String batchNumber = batch.getBatchNumber(); - apsPlateStandardRequireMapper.deleteLastPatch(batchNumber); - apsPlateStandardRequireBomOrderDetailMapper.deleteLastPatch(batchNumber); - apsPlateStandardRequireBomStockDetailMapper.deleteLastPatch(batchNumber); - apsPlateStandardRequireErrorMapper.deleteLastPatch(batchNumber); - apsPlatePlanMapper.initUnMatchQty(); - apsMaterialStorageManagementMapper.initRemainderStock(); - } + public void initRequireBatch(String currentBatchNumber) { + apsPlateStandardRequireMapper.deleteLastPatch(currentBatchNumber); + apsPlateStandardRequireBomOrderDetailMapper.deleteLastPatch(currentBatchNumber); + apsPlateStandardRequireBomStockDetailMapper.deleteLastPatch(currentBatchNumber); + apsPlateStandardRequireErrorMapper.deleteLastPatch(currentBatchNumber); + apsPlatePlanMapper.initUnMatchQty(); + apsMaterialStorageManagementMapper.initRemainderStock(); } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireErrorServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireErrorServiceImpl.java index 606a101..a342cee 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireErrorServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireErrorServiceImpl.java @@ -1,7 +1,11 @@ package com.aps.core.service.impl.ApsPlate; import java.util.List; + +import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.DateUtils; +import com.aps.common.security.utils.SecurityUtils; +import com.aps.core.domain.ApsPlate.ApsPlateStandardRequire; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.aps.core.mapper.ApsPlateStandardRequireErrorMapper; @@ -93,4 +97,21 @@ { return apsPlateStandardRequireErrorMapper.deleteApsPlateStandardRequireErrorById(id); } + + @Override + public void saveRequireError(ApsPlateStandardRequire require, String message) { + ApsPlateStandardRequireError data = ApsPlateStandardRequireError.builder() + .id(IdUtil.getSnowflakeNextId()) + .requireId(require.getId()) + .batchNumber(require.getBatchNumber()) + .docNum(require.getDocNum()) + .itemNum(require.getBomLineCode()) + .orgCode(require.getOrgCode()) + .message(message) + .delFlag("0") + .build(); + data.setCreateBy(SecurityUtils.getUsername()); + data.setCreateTime(DateUtils.getNowDate()); + apsPlateStandardRequireErrorMapper.insertApsPlateStandardRequireError(data); + } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireServiceImpl.java index e6b8cd9..a7653f6 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlate/ApsPlateStandardRequireServiceImpl.java @@ -1,29 +1,27 @@ package com.aps.core.service.impl.ApsPlate; -import java.math.BigDecimal; -import java.util.*; - import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.DateUtils; import com.aps.common.security.utils.DictUtils; import com.aps.common.security.utils.SecurityUtils; -import com.aps.core.domain.*; -import com.aps.core.domain.ApsPlate.ApsPlatePlan; -import com.aps.core.domain.ApsPlate.ApsPlateStandardRequireBomOrderDetail; -import com.aps.core.domain.ApsPlate.ApsPlateStandardRequireBomStockDetail; +import com.aps.core.domain.ApsBom; +import com.aps.core.domain.ApsMaterialStorageManagement; +import com.aps.core.domain.ApsPlate.*; +import com.aps.core.domain.ApsStandardProcessRouteLine; import com.aps.core.mapper.*; -import com.aps.core.service.*; import com.aps.core.service.ApsPlate.*; +import com.aps.core.service.IApsBomService; +import com.aps.core.service.IApsMaterialStorageManagementService; +import com.aps.core.service.IApsStandardProcessRouteLineService; import com.aps.system.api.domain.SysDictData; import jakarta.annotation.Resource; -import com.aps.core.domain.ApsPlate.ApsPlateStandardRequire; -import com.aps.core.mapper.ApsPlateStandardRequireMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; +import java.math.BigDecimal; +import java.util.*; /** * 閽i噾宸ュ崟鏍囧噯闇�姹係ervice涓氬姟灞傚鐞� @@ -39,29 +37,17 @@ private ApsPlateStandardRequireMapper apsPlateStandardRequireMapper; @Resource - private ApsPlateStandardRequireBatchMapper requireBatchMapper; - - @Resource ApsPlatePlanMapper platePlanMapper; @Resource - ApsBomHeaderMapper bomHeaderMapper; - @Resource IApsBomService bomLineService; - - @Resource - ApsMaterialStorageManagementMapper itemStorageMapper; @Resource ApsPlateStandardRequireBomStockDetailMapper plateBomStockDetailMapper; @Resource IApsPlateStandardRequireBomStockDetailService bomStockDetailService; - @Resource - ApsStandardProcessRouteHeaderMapper standardProcessRouteHeaderMapper; - @Resource - ApsStandardProcessRouteLineMapper ApsStandardProcessRouteLineMapper; @Resource ApsPlateStandardRequireBomOrderDetailMapper plateBomOrderDetailMapper; @@ -76,10 +62,11 @@ IApsStandardProcessRouteLineService routeLineService; @Resource - IApsPlateStandardRequireBatchService requireBatchService; + IApsPlateStandardRequireErrorService requireErrorService; @Resource private IApsMaterialStorageManagementService storageManagementService; - + @Resource + IApsPlateStandardRequireBatchService requireBatchService; /** * 鏌ヨ閽i噾宸ュ崟鏍囧噯闇�姹� * @@ -167,9 +154,7 @@ @Transactional @Override public void generatorPlan(String batchNum){ - - /*鍒濆鍖栨暟鎹�*/ - requireBatchService.initRequireBatch(); + requireBatchService.initRequireBatch(batchNum); /*瀹氫箟宸ュ巶涓哄崡閫� */ String plantCode="FORTUNA"; /*鑾峰彇閽i噾涓诲崟淇℃伅*/ @@ -296,7 +281,10 @@ if (itemStorageOpt.isPresent()) { ApsMaterialStorageManagement itemStorage=itemStorageOpt.get(); - BigDecimal remainderStock =itemStorage.getRemainderStock(); + BigDecimal remainderStock =BigDecimal.ZERO; + if(null!=itemStorage.getRemainderStock()){ + remainderStock = itemStorage.getRemainderStock(); + } /*璁$畻鍑�闇�姹� 榛樿=闇�姹傛暟閲�*/ if (remainderStock.compareTo(BigDecimal.ZERO) == 0) { require.setNetRequirement(require.getBomUseAmount()); diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java index b9b2ac3..0185f67 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteLineServiceImpl.java @@ -12,6 +12,7 @@ import com.aps.core.domain.ApsStandardProcessRouteHeader; import com.aps.core.mapper.ApsPlateStandardRequireErrorMapper; import com.aps.core.mapper.ApsStandardProcessRouteHeaderMapper; +import com.aps.core.service.ApsPlate.IApsPlateStandardRequireErrorService; import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; @@ -34,7 +35,7 @@ @Resource ApsStandardProcessRouteHeaderMapper standardProcessRouteHeaderMapper; @Resource - ApsPlateStandardRequireErrorMapper requireErrorMapper; + IApsPlateStandardRequireErrorService requireErrorService; @Resource private RedisTemplate redisTemplate; @@ -141,7 +142,7 @@ ret.setRouteTime(totalRouteTime); ret.setRouteId(routeHeader.getRouteId()); }else { - saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�"); + requireErrorService.saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�"); } // 杩斿洖鎬诲伐鏃� return ret; @@ -170,7 +171,7 @@ ret.setRouteTime(totalRouteTime.multiply(netRequirement)); return ret; } else { - saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�"); + requireErrorService.saveRequireError(require,"鏍囧噯宸ヨ壓璺嚎涓嶅瓨鍦�"); /*// 鏌ヨ鏍囧噯宸ヨ壓璺嚎澶撮儴淇℃伅 Optional<ApsStandardProcessRouteHeader> firstProcessRoute = standardProcessRouteHeaderMapper.queryStandardProcessRouteHeaderByPlantAndItemCode(plant, itemCode).stream().findFirst(); if (firstProcessRoute.isPresent()) { @@ -193,19 +194,4 @@ } } - private void saveRequireError(ApsPlateStandardRequire require,String message) { - ApsPlateStandardRequireError data = ApsPlateStandardRequireError.builder() - .id(IdUtil.getSnowflakeNextId()) - .requireId(require.getId()) - .batchNumber(require.getBatchNumber()) - .docNum(require.getDocNum()) - .itemNum(require.getBomLineCode()) - .orgCode(require.getOrgCode()) - .message(message) - .delFlag("0") - .build(); - data.setCreateBy(SecurityUtils.getUsername()); - data.setCreateTime(DateUtils.getNowDate()); - requireErrorMapper.insertApsPlateStandardRequireError(data); - } } diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml index aaa2a8e..174bc86 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsBomHeaderMapper.xml @@ -109,13 +109,10 @@ LEFT JOIN aps_bom_line b on a.bom_header_id=b.bom_header_id LEFT JOIN aps_material_management d on b.item_code=d.item_number LEFT JOIN aps_material_management c on a.item_code=c.item_number - <where> - <if test="orgCode != null and orgCode != ''"> - and a.org_code=#{orgCode} and d.applicable_factories=#{orgCode} - </if> - and d.material_type='鍒堕�犱欢' - and c.material_type='鍒堕�犱欢' - </where> + where d.material_type='鍒堕�犱欢' and c.material_type='鍒堕�犱欢' + <if test="orgCode != null and orgCode != ''"> + and a.org_code=#{orgCode} and d.applicable_factories=#{orgCode} + </if> ORDER BY mainItemCode </select> </mapper> \ No newline at end of file diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineCapacityPlanMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineCapacityPlanMapper.xml index 329ee58..5c16e41 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineCapacityPlanMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineCapacityPlanMapper.xml @@ -10,6 +10,7 @@ <result property="year" column="year" /> <result property="month" column="month" /> <result property="major" column="major" /> + <result property="workshop" column="workshop" /> <result property="dayProduceType" column="day_produce_type" /> <result property="dayProduceNum" column="day_produce_num" /> <result property="dayProduceUnit" column="day_produce_unit" /> @@ -26,7 +27,7 @@ </resultMap> <sql id="selectApsGasPipelineCapacityPlanVo"> - select id, process_name, year, month, major, day_produce_type, day_produce_num, day_produce_unit, personnel_number, day_produce_all_num, days, month_produce_all_num, remark, create_by, create_time, update_by, update_time, org_code from aps_gas_pipeline_capacity_plan + select id, process_name, year, month, major, workshop, day_produce_type, day_produce_num, day_produce_unit, personnel_number, day_produce_all_num, days, month_produce_all_num, remark, create_by, create_time, update_by, update_time, org_code from aps_gas_pipeline_capacity_plan </sql> <select id="selectApsGasPipelineCapacityPlanList" parameterType="com.aps.core.domain.ApsGasPipelineCapacityPlan" resultMap="ApsGasPipelineCapacityPlanResult"> @@ -36,6 +37,7 @@ <if test="year != null and year != ''"> and year = #{year}</if> <if test="month != null and month != ''"> and month = #{month}</if> <if test="major != null and major != ''"> and major = #{major}</if> + <if test="workshop != null and workshop != ''"> and workshop = #{workshop}</if> <if test="dayProduceType != null and dayProduceType != ''"> and day_produce_type = #{dayProduceType}</if> <if test="dayProduceNum != null "> and day_produce_num = #{dayProduceNum}</if> <if test="dayProduceUnit != null and dayProduceUnit != ''"> and day_produce_unit = #{dayProduceUnit}</if> @@ -63,6 +65,7 @@ <if test="year != null">year,</if> <if test="month != null">month,</if> <if test="major != null">major,</if> + <if test="workshop != null">workshop,</if> <if test="dayProduceType != null">day_produce_type,</if> <if test="dayProduceNum != null">day_produce_num,</if> <if test="dayProduceUnit != null">day_produce_unit,</if> @@ -83,6 +86,7 @@ <if test="year != null">#{year},</if> <if test="month != null">#{month},</if> <if test="major != null">#{major},</if> + <if test="workshop != null">workshop,</if> <if test="dayProduceType != null">#{dayProduceType},</if> <if test="dayProduceNum != null">#{dayProduceNum},</if> <if test="dayProduceUnit != null">#{dayProduceUnit},</if> @@ -106,6 +110,7 @@ <if test="year != null">year = #{year},</if> <if test="month != null">month = #{month},</if> <if test="major != null">major = #{major},</if> + <if test="workshop != null">workshop,</if> <if test="dayProduceType != null">day_produce_type = #{dayProduceType},</if> <if test="dayProduceNum != null">day_produce_num = #{dayProduceNum},</if> <if test="dayProduceUnit != null">day_produce_unit = #{dayProduceUnit},</if> @@ -133,4 +138,12 @@ #{id} </foreach> </delete> + + <delete id="deleteByDateAndFactory" > + delete from aps_gas_pipeline_capacity_plan + where year = #{year} + and month = #{month} + and org_code = #{factory} + and major = #{major} + </delete> </mapper> \ No newline at end of file diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml index a7f7adc..2db812a 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateProcessStatMapper.xml @@ -173,10 +173,13 @@ production_quantity, standard_time, process_total_time, + process_plan_start_day, process_plan_end_day, + order_plan_end_day, batch_number, create_by, - del_flag + del_flag, + warning ) values <foreach collection="list" item="item" index="index" separator=","> @@ -190,10 +193,13 @@ #{item.productionQuantity}, #{item.standardTime}, #{item.processTotalTime}, + #{item.processPlanStartDay}, #{item.processPlanEndDay}, + #{item.orderPlanEndDay}, #{item.batchNumber}, #{item.createBy}, - '0' + '0', + #{item.warning} ) </foreach> </insert> diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomOrderDetailMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomOrderDetailMapper.xml index 69ff69f..306615d 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomOrderDetailMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomOrderDetailMapper.xml @@ -127,7 +127,7 @@ </delete> <update id="deleteLastPatch" parameterType="String"> - update aps_plate_standard_require_bom_order_detail set del_flag = '1' where batch_number = #{batchNumber} + update aps_plate_standard_require_bom_order_detail set del_flag = '1' where del_flag = '0' and batch_number != #{batchNumber} </update> <insert id="batchInsert" parameterType="com.aps.core.domain.ApsPlate.ApsPlateStandardRequireBomOrderDetail"> diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomStockDetailMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomStockDetailMapper.xml index 4ede8e3..8a6bfc3 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomStockDetailMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireBomStockDetailMapper.xml @@ -120,7 +120,9 @@ </delete> <update id="deleteLastPatch" parameterType="String"> - update aps_plate_standard_require_bom_stock_detail set del_flag = '1' where batch_number = #{batchNumber} + update aps_plate_standard_require_bom_stock_detail + set del_flag = '1' + where del_flag = '0' and batch_number != #{batchNumber} </update> <insert id="batchInsert" parameterType="com.aps.core.domain.ApsPlate.ApsPlateStandardRequireBomStockDetail"> diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireErrorMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireErrorMapper.xml index bba08bb..5ab7280 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireErrorMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireErrorMapper.xml @@ -103,6 +103,8 @@ </foreach> </delete> <update id="deleteLastPatch" parameterType="String"> - update aps_plate_standard_require_error set del_flag = '1' where batch_number = #{batchNumber} + update aps_plate_standard_require_error + set del_flag = '1' + where del_flag = '0' and batch_number != #{batchNumber} </update> </mapper> \ No newline at end of file diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireMapper.xml index 1e16f2c..b8d1c57 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlate/ApsPlateStandardRequireMapper.xml @@ -226,6 +226,6 @@ </foreach> </insert> <update id="deleteLastPatch" parameterType="String"> - update aps_plate_standard_require set del_flag = '1' where batch_number = #{batchNumber} + update aps_plate_standard_require set del_flag = '1' where del_flag = '0' and batch_number != #{batchNumber} </update> </mapper> \ No newline at end of file diff --git "a/aps-modules/aps-core/src/main/resources/templates/\344\270\212\344\274\240\346\260\224\344\275\223\345\267\245\345\215\225\346\225\260\346\215\256\346\250\241\346\235\277.xlsx" "b/aps-modules/aps-core/src/main/resources/templates/\344\270\212\344\274\240\346\260\224\344\275\223\345\267\245\345\215\225\346\225\260\346\215\256\346\250\241\346\235\277.xlsx" deleted file mode 100644 index f3a4177..0000000 --- "a/aps-modules/aps-core/src/main/resources/templates/\344\270\212\344\274\240\346\260\224\344\275\223\345\267\245\345\215\225\346\225\260\346\215\256\346\250\241\346\235\277.xlsx" +++ /dev/null Binary files differ diff --git "a/aps-modules/aps-core/src/main/resources/templates/\344\270\212\344\274\240\346\260\224\344\275\223\351\242\204\346\265\213\346\225\260\346\215\256\346\250\241\346\235\277.xlsx" "b/aps-modules/aps-core/src/main/resources/templates/\344\270\212\344\274\240\346\260\224\344\275\223\351\242\204\346\265\213\346\225\260\346\215\256\346\250\241\346\235\277.xlsx" deleted file mode 100644 index 6a261c6..0000000 --- "a/aps-modules/aps-core/src/main/resources/templates/\344\270\212\344\274\240\346\260\224\344\275\223\351\242\204\346\265\213\346\225\260\346\215\256\346\250\241\346\235\277.xlsx" +++ /dev/null Binary files differ diff --git "a/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\345\267\245\345\215\225\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" "b/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\345\267\245\345\215\225\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" new file mode 100644 index 0000000..e67251f --- /dev/null +++ "b/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\345\267\245\345\215\225\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" Binary files differ diff --git "a/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\351\242\204\346\265\213\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" "b/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\351\242\204\346\265\213\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" new file mode 100644 index 0000000..50fb427 --- /dev/null +++ "b/aps-modules/aps-core/src/main/resources/templates/\346\260\224\344\275\223\351\242\204\346\265\213\346\225\260\346\215\256\346\250\241\346\235\277v1.0.xlsx" Binary files differ diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWeldSeamStandardJobServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWeldSeamStandardJobServiceImpl.java index 3e6c84b..49daf90 100644 --- a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWeldSeamStandardJobServiceImpl.java +++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsWeldSeamStandardJobServiceImpl.java @@ -1,5 +1,6 @@ package com.aps.job.service.impl; +import cn.hutool.core.collection.ListUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; @@ -179,11 +180,16 @@ deleteAllApsWeldSeamStandardJob(); // 鎵归噺鎻掑叆鏂版暟鎹� - batchInsertApsWeldSeamStandardJob(jobList); - + List<List<ApsWeldSeamStandardJob>> dataGroupInterface = ListUtil.split(jobList, 1000); + for (List<ApsWeldSeamStandardJob> data : dataGroupInterface) { + batchInsertApsWeldSeamStandardJob(data); + } + // 鍚屾鏁版嵁鍒颁笟鍔¤〃 - syncToBizTable(jobList); - + List<List<ApsWeldSeamStandardJob>> dataGroup = ListUtil.split(jobList, 1000); + for (List<ApsWeldSeamStandardJob> data : dataGroup) { + syncToBizTable(data); + } return true; } catch (Exception e) { log.error("鍚屾鐗╂枡鏍囧噯鐒婄紳鏁版嵁寮傚父", e); diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/util/AbstractQuartzJob.java b/aps-modules/aps-job/src/main/java/com/aps/job/util/AbstractQuartzJob.java index 833fca7..2db5dbd 100644 --- a/aps-modules/aps-job/src/main/java/com/aps/job/util/AbstractQuartzJob.java +++ b/aps-modules/aps-job/src/main/java/com/aps/job/util/AbstractQuartzJob.java @@ -78,7 +78,11 @@ sysJobLog.setStartTime(startTime); sysJobLog.setStopTime(new Date()); long runMs = sysJobLog.getStopTime().getTime() - sysJobLog.getStartTime().getTime(); - sysJobLog.setJobMessage(sysJobLog.getJobName() + " 鎬诲叡鑰楁椂锛�" + runMs + "姣"); + long totalSeconds = runMs / 1000; + long minutes = totalSeconds / 60; + long seconds = totalSeconds % 60; + String formattedTime = minutes + "鍒�" + seconds + "绉�"; + sysJobLog.setJobMessage(sysJobLog.getJobName() + " 鎬诲叡鑰楁椂锛�" +formattedTime); if (e != null) { sysJobLog.setStatus("1"); -- Gitblit v1.9.3