From 32d1bd8a3f94c67198e397aff76bc7b33a30a6b6 Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期五, 09 五月 2025 15:15:45 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java | 4 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateOrderPlanManagerServiceImpl.java | 1 aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsMaterialStorageManagementJobServiceImpl.java | 221 ++++++++++ aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java | 6 aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWorkOrderJob.java | 34 + aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsBomController.java | 12 aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateStandardRequireErrorController.java | 12 aps-api/aps-api-system/src/main/java/com/aps/system/api/RemoteCoreService.java | 28 + aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java | 12 aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java | 28 + aps-modules/aps-job/src/main/resources/mapper/job/ApsBomHeaderJobMapper.xml | 7 aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsBomLineJobMapper.java | 5 aps-api/aps-api-system/src/main/java/com/aps/system/api/factory/RemoteCoreFallbackFactory.java | 26 + aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanOrderManagerMapper.xml | 11 aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml | 12 aps-common/aps-common-core/src/main/java/com/aps/common/core/constant/ServiceNameConstants.java | 10 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanDate.java | 5 aps-api/aps-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports | 2 aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteHeaderController.java | 12 aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsMaterialStorageManagementJob.java | 162 +++++++ aps-modules/aps-job/src/main/java/com/aps/job/service/IApsMaterialStorageManagementJobService.java | 82 +++ aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java | 33 + aps-modules/aps-job/src/main/resources/mapper/job/ApsBomLineJobMapper.xml | 7 aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsBomHeaderJobMapper.java | 5 aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanManager.java | 6 aps-modules/aps-job/src/main/java/com/aps/job/service/IApsBomHeaderJobService.java | 12 aps-modules/aps-job/src/main/resources/mapper/job/ApsMaterialStorageManagementJobMapper.xml | 152 +++++++ aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java | 32 + aps-api/aps-api-system/src/main/java/com/aps/system/api/factory/RemoteJobFallbackFactory.java | 26 + aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java | 156 ++++++ aps-api/aps-api-system/src/main/java/com/aps/system/api/RemoteJobService.java | 28 + aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsMaterialStorageManagementJobMapper.java | 88 ++++ 32 files changed, 1,174 insertions(+), 63 deletions(-) diff --git a/aps-api/aps-api-system/src/main/java/com/aps/system/api/RemoteCoreService.java b/aps-api/aps-api-system/src/main/java/com/aps/system/api/RemoteCoreService.java new file mode 100644 index 0000000..541813a --- /dev/null +++ b/aps-api/aps-api-system/src/main/java/com/aps/system/api/RemoteCoreService.java @@ -0,0 +1,28 @@ +package com.aps.system.api; + +import com.aps.common.core.constant.SecurityConstants; +import com.aps.common.core.constant.ServiceNameConstants; +import com.aps.common.core.domain.R; +import com.aps.system.api.factory.RemoteCoreFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestHeader; + +/** + * 浠诲姟鏈嶅姟 + * + * @author hjy + */ +@FeignClient(contextId = "remoteCoreService", value = ServiceNameConstants.CORE_SERVICE, fallbackFactory = RemoteCoreFallbackFactory.class) +public interface RemoteCoreService +{ + + /** + * 鍒锋柊BOM鏁版嵁鍒癛edis + * @param source + * @return + */ + @PostMapping("/ApsBomHeader/setBomDataToRedis") + R<Boolean> setBomDataToRedis(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); + +} diff --git a/aps-api/aps-api-system/src/main/java/com/aps/system/api/RemoteJobService.java b/aps-api/aps-api-system/src/main/java/com/aps/system/api/RemoteJobService.java new file mode 100644 index 0000000..c3f1be5 --- /dev/null +++ b/aps-api/aps-api-system/src/main/java/com/aps/system/api/RemoteJobService.java @@ -0,0 +1,28 @@ +package com.aps.system.api; + +import com.aps.common.core.constant.SecurityConstants; +import com.aps.common.core.constant.ServiceNameConstants; +import com.aps.common.core.domain.R; +import com.aps.system.api.factory.RemoteJobFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestHeader; + +/** + * 浠诲姟鏈嶅姟 + * + * @author hjy + */ +@FeignClient(contextId = "remoteJobService", value = ServiceNameConstants.JOB_SERVICE, fallbackFactory = RemoteJobFallbackFactory.class) +public interface RemoteJobService +{ + + /** + * 鍒锋柊BOM鍏ㄩ噺鏁版嵁 + * @param source + * @return + */ + @PostMapping("/job/refreshBomData") + R<Boolean> refreshBomData(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); + +} diff --git a/aps-api/aps-api-system/src/main/java/com/aps/system/api/factory/RemoteCoreFallbackFactory.java b/aps-api/aps-api-system/src/main/java/com/aps/system/api/factory/RemoteCoreFallbackFactory.java new file mode 100644 index 0000000..b2d846d --- /dev/null +++ b/aps-api/aps-api-system/src/main/java/com/aps/system/api/factory/RemoteCoreFallbackFactory.java @@ -0,0 +1,26 @@ +package com.aps.system.api.factory; + +import com.aps.common.core.domain.R; +import com.aps.system.api.RemoteCoreService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 鐢ㄦ埛鏈嶅姟闄嶇骇澶勭悊 + * + * @author ruoyi + */ +@Component +public class RemoteCoreFallbackFactory implements FallbackFactory<RemoteCoreService> +{ + private static final Logger log = LoggerFactory.getLogger(RemoteCoreFallbackFactory.class); + + @Override + public RemoteCoreService create(Throwable throwable) + { + log.error("浠诲姟鏈嶅姟璋冪敤澶辫触:{}", throwable.getMessage()); + return source -> R.fail("BOM鏁版嵁瀛樺偍鍒癛edis涓け璐�:" + throwable.getMessage()); + } +} diff --git a/aps-api/aps-api-system/src/main/java/com/aps/system/api/factory/RemoteJobFallbackFactory.java b/aps-api/aps-api-system/src/main/java/com/aps/system/api/factory/RemoteJobFallbackFactory.java new file mode 100644 index 0000000..12659b1 --- /dev/null +++ b/aps-api/aps-api-system/src/main/java/com/aps/system/api/factory/RemoteJobFallbackFactory.java @@ -0,0 +1,26 @@ +package com.aps.system.api.factory; + +import com.aps.common.core.domain.R; +import com.aps.system.api.RemoteJobService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 鐢ㄦ埛鏈嶅姟闄嶇骇澶勭悊 + * + * @author ruoyi + */ +@Component +public class RemoteJobFallbackFactory implements FallbackFactory<RemoteJobService> +{ + private static final Logger log = LoggerFactory.getLogger(RemoteJobFallbackFactory.class); + + @Override + public RemoteJobService create(Throwable throwable) + { + log.error("浠诲姟鏈嶅姟璋冪敤澶辫触:{}", throwable.getMessage()); + return source -> R.fail("鍒锋柊BOM鏁版嵁澶辫触:" + throwable.getMessage()); + } +} diff --git a/aps-api/aps-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/aps-api/aps-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 6d7e80c..e149c00 100644 --- a/aps-api/aps-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/aps-api/aps-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,3 +1,5 @@ com.aps.system.api.factory.RemoteUserFallbackFactory com.aps.system.api.factory.RemoteLogFallbackFactory com.aps.system.api.factory.RemoteFileFallbackFactory +com.aps.system.api.factory.RemoteJobFallbackFactory +com.aps.system.api.factory.RemoteCoreFallbackFactory diff --git a/aps-common/aps-common-core/src/main/java/com/aps/common/core/constant/ServiceNameConstants.java b/aps-common/aps-common-core/src/main/java/com/aps/common/core/constant/ServiceNameConstants.java index 52c3fea..25642ad 100644 --- a/aps-common/aps-common-core/src/main/java/com/aps/common/core/constant/ServiceNameConstants.java +++ b/aps-common/aps-common-core/src/main/java/com/aps/common/core/constant/ServiceNameConstants.java @@ -21,4 +21,14 @@ * 鏂囦欢鏈嶅姟鐨剆erviceid */ public static final String FILE_SERVICE = "aps-file"; + + /** + * aps鏈嶅姟鐨剆erviceid + */ + public static final String CORE_SERVICE = "aps-core"; + + /** + * 浠诲姟鏈嶅姟鐨剆erviceid + */ + public static final String JOB_SERVICE = "aps-job"; } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsBomController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsBomController.java index 16a850c..065ef6e 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsBomController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsBomController.java @@ -31,7 +31,7 @@ /** * 鏌ヨBOM鏁版嵁绠$悊鍒楄〃 */ - @RequiresPermissions("apsBom:list") + @RequiresPermissions("Aps:apsBom:list") @GetMapping("/list") public TableDataInfo list(ApsBom apsBom) { @@ -43,7 +43,7 @@ /** * 瀵煎嚭BOM鏁版嵁绠$悊鍒楄〃 */ - @RequiresPermissions("apsBom:export") + @RequiresPermissions("Aps:apsBom:export") @Log(title = "BOM鏁版嵁绠$悊", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ApsBom apsBom) @@ -56,7 +56,7 @@ /** * 鑾峰彇BOM鏁版嵁绠$悊璇︾粏淇℃伅 */ - @RequiresPermissions("apsBom:query") + @RequiresPermissions("Aps:apsBom:query") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { @@ -66,7 +66,7 @@ /** * 鏂板BOM鏁版嵁绠$悊 */ - @RequiresPermissions("apsBom:add") + @RequiresPermissions("Aps:apsBom:add") @Log(title = "BOM鏁版嵁绠$悊", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ApsBom apsBom) @@ -77,7 +77,7 @@ /** * 淇敼BOM鏁版嵁绠$悊 */ - @RequiresPermissions("apsBom:edit") + @RequiresPermissions("Aps:apsBom:edit") @Log(title = "BOM鏁版嵁绠$悊", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ApsBom apsBom) @@ -88,7 +88,7 @@ /** * 鍒犻櫎BOM鏁版嵁绠$悊 */ - @RequiresPermissions("apsBom:remove") + @RequiresPermissions("Aps:apsBom:remove") @Log(title = "BOM鏁版嵁绠$悊", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] 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 0aeb3f6..d26a61c 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 @@ -1,5 +1,7 @@ package com.aps.core.controller.mainPlan; +import com.aps.common.core.constant.SecurityConstants; +import com.aps.common.core.domain.R; import com.aps.common.core.utils.poi.ExcelUtil; import com.aps.common.core.web.controller.BaseController; import com.aps.common.core.web.domain.AjaxResult; @@ -9,6 +11,7 @@ import com.aps.common.security.annotation.RequiresPermissions; import com.aps.core.domain.ApsBomHeader; import com.aps.core.service.IApsBomHeaderService; +import com.aps.system.api.RemoteJobService; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -30,11 +33,14 @@ @Autowired private IApsBomHeaderService apsBomHeaderService; + @Autowired + private RemoteJobService remoteJobService; + /** * 鏌ヨBOM Header 鏁版嵁绠$悊鍒楄〃 */ - @RequiresPermissions("aps:ApsBomHeader:list") + @RequiresPermissions("Aps:ApsBomHeader:list") @GetMapping("/list") public TableDataInfo list(ApsBomHeader apsBomHeader) { @@ -104,6 +110,26 @@ return toAjax(apsBomHeaderService.deleteApsBomHeaderByIds(ids)); } + /** + * 鍒锋柊鍏ㄩ噺BOM鏁版嵁 + */ + @RequiresPermissions("Aps:ApsBomHeader:refreshBomData") + @PostMapping("/refreshBomData") + public void refreshBomData() + { + R<Boolean> res = remoteJobService.refreshBomData(SecurityConstants.INNER); + if (R.isSuccess(res)) + { + apsBomHeaderService.setBomDataToRedis(""); + } + } + + @PostMapping("/setBomDataToRedis") + public void setBomDataToRedis() + { + apsBomHeaderService.setBomDataToRedis(""); + } + @PostMapping("/test") public void test() { diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateStandardRequireErrorController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateStandardRequireErrorController.java index a5e2539..4aae62e 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateStandardRequireErrorController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsPlateStandardRequireErrorController.java @@ -37,7 +37,7 @@ */ @Operation(summary = "鏌ヨ閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭垪琛�", description = "鍒嗛〉鏌ヨ") - //@RequiresPermissions("ApsPlateStandardRequireError:ApsPlateStandardRequireError:list") + @RequiresPermissions("Aps:ApsPlateStandardRequireError:list") @GetMapping("/list") public TableDataInfo list(ApsPlateStandardRequireError apsPlateStandardRequireError) { @@ -50,7 +50,7 @@ * 瀵煎嚭閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭垪琛� */ @Operation(summary = "瀵煎嚭閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭垪琛�", description = "瀵煎嚭") - //@RequiresPermissions("ApsPlateStandardRequireError:ApsPlateStandardRequireError:export") + @RequiresPermissions("Aps:ApsPlateStandardRequireError:export") @Log(title = "閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ApsPlateStandardRequireError apsPlateStandardRequireError) @@ -64,7 +64,7 @@ * 鑾峰彇閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭缁嗕俊鎭� */ @Operation(summary = "鑾峰彇閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭缁嗕俊鎭�", description = "鏍规嵁id鑾峰彇") - //@RequiresPermissions("ApsPlateStandardRequireError:ApsPlateStandardRequireError:query") + @RequiresPermissions("Aps:ApsPlateStandardRequireError:query") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { @@ -75,7 +75,7 @@ * 鏂板閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� */ @Operation(summary = "鏂板閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", description = "鍗曚釜鏂板") - //@RequiresPermissions("ApsPlateStandardRequireError:ApsPlateStandardRequireError:add") + @RequiresPermissions("Aps:ApsPlateStandardRequireError:add") @Log(title = "閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ApsPlateStandardRequireError apsPlateStandardRequireError) @@ -87,7 +87,7 @@ * 淇敼閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� */ @Operation(summary = "淇敼閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", description = "鍗曚釜淇敼") - //@RequiresPermissions("ApsPlateStandardRequireError:ApsPlateStandardRequireError:edit") + @RequiresPermissions("Aps:ApsPlateStandardRequireError:edit") @Log(title = "閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ApsPlateStandardRequireError apsPlateStandardRequireError) @@ -99,7 +99,7 @@ * 鍒犻櫎閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭� */ @Operation(summary = "鍒犻櫎閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", description = "鎵归噺鍒犻櫎") - // @RequiresPermissions("ApsPlateStandardRequireError:ApsPlateStandardRequireError:remove") + @RequiresPermissions("Aps:ApsPlateStandardRequireError:remove") @Log(title = "閽i噾鏍囧噯闇�姹傚紓甯镐俊鎭�", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteHeaderController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteHeaderController.java index b48cc01..bfd9b80 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteHeaderController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteHeaderController.java @@ -34,7 +34,7 @@ * 鏌ヨ鏍囧噯宸ヨ壓璺嚎Header鍒楄〃 */ - @RequiresPermissions("aps:ApsStandardProcessRouteHeader:list") + @RequiresPermissions("Aps:ApsStandardProcessRouteHeader:list") @GetMapping("/list") public TableDataInfo list(ApsStandardProcessRouteHeader apsStandardProcessRouteHeader) { @@ -47,7 +47,7 @@ * 瀵煎嚭鏍囧噯宸ヨ壓璺嚎Header鍒楄〃 */ - @RequiresPermissions("aps:ApsStandardProcessRouteHeader:export") + @RequiresPermissions("Aps:ApsStandardProcessRouteHeader:export") @Log(title = "鏍囧噯宸ヨ壓璺嚎Header", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ApsStandardProcessRouteHeader apsStandardProcessRouteHeader) @@ -60,7 +60,7 @@ /** * 鑾峰彇鏍囧噯宸ヨ壓璺嚎Header璇︾粏淇℃伅 */ - @RequiresPermissions("aps:ApsStandardProcessRouteHeader:query") + @RequiresPermissions("Aps:ApsStandardProcessRouteHeader:query") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { @@ -70,7 +70,7 @@ /** * 鏂板鏍囧噯宸ヨ壓璺嚎Header */ - @RequiresPermissions("aps:ApsStandardProcessRouteHeader:add") + @RequiresPermissions("Aps:ApsStandardProcessRouteHeader:add") @Log(title = "鏍囧噯宸ヨ壓璺嚎Header", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ApsStandardProcessRouteHeader apsStandardProcessRouteHeader) @@ -81,7 +81,7 @@ /** * 淇敼鏍囧噯宸ヨ壓璺嚎Header */ - @RequiresPermissions("aps:ApsStandardProcessRouteHeader:edit") + @RequiresPermissions("Aps:ApsStandardProcessRouteHeader:edit") @Log(title = "鏍囧噯宸ヨ壓璺嚎Header", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ApsStandardProcessRouteHeader apsStandardProcessRouteHeader) @@ -92,7 +92,7 @@ /** * 鍒犻櫎鏍囧噯宸ヨ壓璺嚎Header */ - @RequiresPermissions("aps:ApsStandardProcessRouteHeader:remove") + @RequiresPermissions("Aps:ApsStandardProcessRouteHeader:remove") @Log(title = "鏍囧噯宸ヨ壓璺嚎Header", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java index 16abad2..cd8d9a7 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteLineController.java @@ -33,7 +33,7 @@ /** * 鏌ヨ鏍囧噯宸ヨ壓璺嚎Line鍒楄〃 */ - @RequiresPermissions("ApsStandardProcessRouteLine:ApsStandardProcessRouteLine:list") + @RequiresPermissions("Aps:ApsStandardProcessRouteLine:list") @GetMapping("/list") public TableDataInfo list(ApsStandardProcessRouteLine apsStandardProcessRouteLine) { @@ -45,7 +45,7 @@ /** * 瀵煎嚭鏍囧噯宸ヨ壓璺嚎Line鍒楄〃 */ - @RequiresPermissions("ApsStandardProcessRouteLine:ApsStandardProcessRouteLine:export") + @RequiresPermissions("Aps:ApsStandardProcessRouteLine:export") @Log(title = "鏍囧噯宸ヨ壓璺嚎Line", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ApsStandardProcessRouteLine apsStandardProcessRouteLine) @@ -58,7 +58,7 @@ /** * 鑾峰彇鏍囧噯宸ヨ壓璺嚎Line璇︾粏淇℃伅 */ - @RequiresPermissions("ApsStandardProcessRouteLine:ApsStandardProcessRouteLine:query") + @RequiresPermissions("Aps:ApsStandardProcessRouteLine:query") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { @@ -68,7 +68,7 @@ /** * 鏂板鏍囧噯宸ヨ壓璺嚎Line */ - @RequiresPermissions("ApsStandardProcessRouteLine:ApsStandardProcessRouteLine:add") + @RequiresPermissions("Aps:ApsStandardProcessRouteLine:add") @Log(title = "鏍囧噯宸ヨ壓璺嚎Line", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ApsStandardProcessRouteLine apsStandardProcessRouteLine) @@ -79,7 +79,7 @@ /** * 淇敼鏍囧噯宸ヨ壓璺嚎Line */ - @RequiresPermissions("ApsStandardProcessRouteLine:ApsStandardProcessRouteLine:edit") + @RequiresPermissions("Aps:ApsStandardProcessRouteLine:edit") @Log(title = "鏍囧噯宸ヨ壓璺嚎Line", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ApsStandardProcessRouteLine apsStandardProcessRouteLine) @@ -90,7 +90,7 @@ /** * 鍒犻櫎鏍囧噯宸ヨ壓璺嚎Line */ - @RequiresPermissions("ApsStandardProcessRouteLine:ApsStandardProcessRouteLine:remove") + @RequiresPermissions("Aps:ApsStandardProcessRouteLine:remove") @Log(title = "鏍囧噯宸ヨ壓璺嚎Line", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanDate.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanDate.java index 5908bd2..8ea0b85 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanDate.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanDate.java @@ -1,5 +1,7 @@ package com.aps.core.domain; +import com.aps.common.core.web.domain.BaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serial; @@ -13,7 +15,7 @@ * @date 2025-05-08 */ @Data -public class ApsPlateOrderPlanDate +public class ApsPlateOrderPlanDate extends BaseEntity { @Serial private static final long serialVersionUID = 1L; @@ -27,5 +29,6 @@ private List<Long> planIds; /** 鑷畾涔夋棩鏈� */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Timestamp customDate; } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanManager.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanManager.java index 5bcac8f..e43b215 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanManager.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateOrderPlanManager.java @@ -102,7 +102,7 @@ private Date completeDate; /** 鑷畾涔夋棩鏈� */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "鑷畾涔夋棩鏈�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date customTime; +// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") +// @Excel(name = "鑷畾涔夋棩鏈�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") +// private Date customTime; } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java index d56b49c..087713f 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlatePlan.java @@ -190,9 +190,9 @@ private Date orderCreateTime; /** 鑷畾涔夋椂闂� */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "鑷畾涔夋椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date customTime; +// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") +// @Excel(name = "鑷畾涔夋椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") +// private Date customTime; /** 鐢熶骇鍩哄湴 */ @Excel(name = "鐢熶骇鍩哄湴") diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java index f1b80b9..510df6b 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsPlateStandardRequire.java @@ -66,14 +66,17 @@ private BigDecimal netRequirement; /** 璁″垝寮�宸ユ棩 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "璁″垝寮�宸ユ棩") private Date startDate; /** 璁″垝瀹屽伐鏃� */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "璁″垝瀹屽伐鏃�") private Date completeDate; /** 闇�姹傛棩鏈� */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "闇�姹傛棩鏈�") private Date demandDate; @@ -101,6 +104,7 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "寤鸿瀹屾垚鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date suggestedCompletionDate; + /** 寤惰繜椋庨櫓鏍囪瘑 */ private String hasDelayRisk; diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateOrderPlanManagerServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateOrderPlanManagerServiceImpl.java index fde2037..48c0241 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateOrderPlanManagerServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlateOrderPlanManagerServiceImpl.java @@ -59,6 +59,7 @@ @Override public void updatePlanDate(ApsPlateOrderPlanDate apsPlateOrderPlanDate) { if (apsPlateOrderPlanDate.getIsCustom()) { + apsPlateOrderPlanDate.setUpdateBy(SecurityUtils.getUsername()); apsPlateOrderPlanManagerMapper.updatePlanDateByCustom(apsPlateOrderPlanDate); } else { List<ApsPlateOrderPlanRequireDate> planRequireDates = apsPlateOrderPlanManagerMapper.selectPlanRequireIds(apsPlateOrderPlanDate.getPlanIds()); diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanOrderManagerMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanOrderManagerMapper.xml index be61a98..b4358df 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanOrderManagerMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanOrderManagerMapper.xml @@ -23,7 +23,7 @@ <result property="hasDelayRisk" column="has_delay_risk" /> <result property="startDate" column="start_date" /> <result property="completeDate" column="complete_date" /> - <result property="customTime" column="custom_time" /> +<!-- <result property="customTime" column="custom_time" />--> </resultMap> <select id="selectApsPlanOrderManager" parameterType="ApsPlateOrderPlanManager" resultMap="ApsPlateOrderPlanManagerResult"> @@ -42,7 +42,6 @@ plan.plan_start_day, plan.plan_end_day, plan.unmatched_quantity, - plan.custom_time, require.has_delay_risk, plan.id, require.start_date, @@ -52,7 +51,7 @@ left join aps_plate_plan plan on detail.doc_no = plan.document_number <where> <if test="workOrderNo != null and workOrderNo != ''"> and detail.doc_no = #{workOrderNo}</if> - <if test="requireId != null and requireId != ''"> and detail.require_id = #{requireId}</if> + <if test="requireTrackId != null and requireTrackId != ''"> and detail.require_track_id = #{requireTrackId}</if> <if test="mainPartNumber != null and mainPartNumber != ''"> and plan.main_part_number = #{mainPartNumber}</if> <if test="hasDelayRisk != null and hasDelayRisk != ''"> and require.has_delay_risk = #{hasDelayRisk}</if> </where> @@ -159,11 +158,11 @@ <update id="updatePlanDateByCustom" parameterType="ApsPlateOrderPlanDate"> update aps_plate_plan set - custom_time = #{planRequireDate.customDate}, - update_by = #{planRequireDate.updateBy}, + plan_end_day = #{customDate}, + update_by = #{updateBy}, update_time = now() where id in - <foreach collection="planRequireDate.planIds" item="id" open="(" separator="," close=")"> + <foreach collection="planIds" item="id" open="(" separator="," close=")"> #{id} </foreach> </update> diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java b/aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java index 5616aa4..46c1747 100644 --- a/aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java +++ b/aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java @@ -1,32 +1,35 @@ package com.aps.job.controller; -import java.util.List; -import jakarta.servlet.http.HttpServletResponse; -import org.quartz.SchedulerException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -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.core.constant.Constants; +import com.aps.common.core.constant.SecurityConstants; import com.aps.common.core.exception.job.TaskException; import com.aps.common.core.utils.StringUtils; import com.aps.common.core.utils.poi.ExcelUtil; +import com.aps.common.core.utils.uuid.Sequence; import com.aps.common.core.web.controller.BaseController; import com.aps.common.core.web.domain.AjaxResult; import com.aps.common.core.web.page.TableDataInfo; import com.aps.common.log.annotation.Log; import com.aps.common.log.enums.BusinessType; -import com.aps.common.security.annotation.RequiresPermissions; import com.aps.common.security.utils.SecurityUtils; import com.aps.job.domain.SysJob; -import com.aps.job.service.ISysJobService; +import com.aps.job.service.*; import com.aps.job.util.CronUtils; import com.aps.job.util.ScheduleUtils; +import com.aps.system.api.RemoteCoreService; +import jakarta.servlet.http.HttpServletResponse; +import org.quartz.SchedulerException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.util.List; /** * 璋冨害浠诲姟淇℃伅鎿嶄綔澶勭悊 @@ -40,6 +43,23 @@ @Autowired private ISysJobService jobService; + @Autowired + private IApsWorkOrderProcessService apsWorkOrderProcessService; + + @Autowired + private IApsWorkOrderJobService apsWorkOrderJobService; + + @Autowired + private IApsBomHeaderJobService apsBomHeaderJobService; + + @Autowired + private Sequence sequence; + + @Autowired + private IApsMaterialStorageManagementJobService apsMaterialStorageManagementJobService; + + @Autowired + private RemoteCoreService remoteCoreService; /** * 鏌ヨ瀹氭椂浠诲姟鍒楄〃 */ @@ -183,4 +203,112 @@ jobService.deleteJobByIds(jobIds); return success(); } + + @PostMapping("/refreshBomData") + public Boolean refreshBomData() throws SchedulerException, TaskException + { + return apsBomHeaderJobService.syncBomDataJob(1, 1000, "", ""); + } + + @PutMapping("/test") + public void test(@RequestBody SysJob job) throws Exception + { + System.out.println("start"); + //灏咮OM鏁版嵁瀛樿繘Redis涓� + remoteCoreService.setBomDataToRedis(SecurityConstants.INNER); + //鍚屾鐗╂枡搴撳瓨鏁版嵁 +// apsMaterialStorageManagementJobService.syncApsMaterialStorageData(1, 1000, "", ""); + //鍚屾BOM鏁版嵁 +// apsBomHeaderJobService.syncBomData(1, 1000, "FORTUNA", ""); + +// System.out.println(sequence.nextId()); +// List<String> docNos = new ArrayList<>(); +// docNos.add("MO-240328010093"); +// apsWorkOrderProcessService.getWorkOrderProcessFromU9(docNos); +// apsWorkOrderProcessService.syncWorkOrderProcessData("", 100); +// apsWorkOrderJobService.syncPartOrderData(); +// apsWorkOrderJobService.syncPlateOrderData(); +// apsWorkOrderJobService.syncGasPipingData(); +// apsWorkOrderProcessService.syncProcessRouteData(); + System.out.println("end"); + //鐢熸垚鏁版嵁瀛楀吀 +// HikariConfig hikariConfig = new HikariConfig(); +// hikariConfig.setDriverClassName("org.postgresql.Driver"); +// hikariConfig.setJdbcUrl("jdbc:postgresql://192.168.50.160:5432/postgres?stringtype=unspecified"); +// hikariConfig.setUsername("postgres"); +// hikariConfig.setPassword("pwd@aps"); +// //璁剧疆鍙互鑾峰彇tables remarks淇℃伅 +// hikariConfig.addDataSourceProperty("useInformationSchema", "true"); +// hikariConfig.setMinimumIdle(2); +// hikariConfig.setMaximumPoolSize(5); +// DataSource dataSource = new HikariDataSource(hikariConfig); +// //鐢熸垚閰嶇疆 +// EngineConfig engineConfig = EngineConfig.builder() +// //鐢熸垚鏂囦欢璺緞 +// .fileOutputDir("D:\\projects\\aps\\鏂囨。") +// //鎵撳紑鐩綍 +// .openOutputDir(true) +// //鏂囦欢绫诲瀷 +// .fileType(EngineFileType.WORD) +// //鐢熸垚妯℃澘瀹炵幇 +// .produceType(EngineTemplateType.freemarker) +// //鑷畾涔夋枃浠跺悕绉� +// .fileName("鑷畾涔夋枃浠跺悕绉�").build(); +// +// //蹇界暐琛� +// ArrayList<String> ignoreTableName = new ArrayList<>(); +// ignoreTableName.add("test_user"); +// ignoreTableName.add("test_group"); +// //蹇界暐琛ㄥ墠缂� +// ArrayList<String> ignorePrefix = new ArrayList<>(); +// ignorePrefix.add("test_"); +// //蹇界暐琛ㄥ悗缂� +// ArrayList<String> ignoreSuffix = new ArrayList<>(); +// ignoreSuffix.add("_test"); +// ProcessConfig processConfig = ProcessConfig.builder() +// //鎸囧畾鐢熸垚閫昏緫銆佸綋瀛樺湪鎸囧畾琛ㄣ�佹寚瀹氳〃鍓嶇紑銆佹寚瀹氳〃鍚庣紑鏃讹紝灏嗙敓鎴愭寚瀹氳〃锛屽叾浣欒〃涓嶇敓鎴愩�佸苟璺宠繃蹇界暐琛ㄩ厤缃� +// //鏍规嵁鍚嶇О鎸囧畾琛ㄧ敓鎴� +// .designatedTableName(new ArrayList<>()) +// //鏍规嵁琛ㄥ墠缂�鐢熸垚 +// .designatedTablePrefix(new ArrayList<>()) +// //鏍规嵁琛ㄥ悗缂�鐢熸垚 +// .designatedTableSuffix(new ArrayList<>()) +// //蹇界暐琛ㄥ悕 +// .ignoreTableName(ignoreTableName) +// //蹇界暐琛ㄥ墠缂� +// .ignoreTablePrefix(ignorePrefix) +// //蹇界暐琛ㄥ悗缂� +// .ignoreTableSuffix(ignoreSuffix).build(); +// //閰嶇疆 +// Configuration config = Configuration.builder() +// //鐗堟湰 +// .version("1.0.0") +// //鎻忚堪 +// .description("鏁版嵁搴撹璁℃枃妗g敓鎴�") +// //鏁版嵁婧� +// .dataSource(dataSource) +// //鐢熸垚閰嶇疆 +// .engineConfig(engineConfig) +// //鐢熸垚閰嶇疆 +// .produceConfig(processConfig) +// .build(); +// //鎵ц鐢熸垚 +// new DocumentationExecute(config).execute(); +// System.out.println("end"); + } + + public static void main(String[] args) { + BigDecimal a = new BigDecimal("0.1234"); + Double b = a.doubleValue()*60*60*1000; + LocalDateTime now = LocalDateTime.now(); + //灏唍ow鎹㈡垚鎴愭绉� 鐒跺悗鍔犱笂a 鐒跺悗杞崲鎴怢ocalDateTime + //a杞崲鎴愭绉� + System.out.println(now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + System.out.println(b/1000/60); + Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli(); + milliSecond += b.longValue(); + System.out.println(LocalDateTime.ofInstant(Instant.ofEpochMilli(milliSecond), ZoneId.systemDefault()).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + System.out.println(new BigDecimal(585).divide(BigDecimal.valueOf(1232), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100))); + new BigDecimal(585).divide(BigDecimal.valueOf(1232), 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)); + } } diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsMaterialStorageManagementJob.java b/aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsMaterialStorageManagementJob.java new file mode 100644 index 0000000..5d1a72c --- /dev/null +++ b/aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsMaterialStorageManagementJob.java @@ -0,0 +1,162 @@ +package com.aps.job.domain; + +import com.aps.common.core.annotation.Excel; +import com.aps.common.core.web.domain.BaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 鐗╂枡搴撳瓨绠$悊瀵硅薄 aps_material_storage_management_job + * + * @author hjy + * @date 2025-05-08 + */ +@Schema(description = "鐗╂枡搴撳瓨绠$悊瀹炰綋绫�") +public class ApsMaterialStorageManagementJob extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** id */ + @Schema(description = "id") + private Long id; + + /** 鏂欏彿 */ + @Excel(name = "鏂欏彿") + @Schema(description = "鏂欏彿") + private String itemNumber; + + /** 鏁伴噺 */ + @Excel(name = "鏁伴噺") + @Schema(description = "鏁伴噺") + private BigDecimal num; + + /** 閫傜敤宸ュ巶 */ + @Excel(name = "閫傜敤宸ュ巶") + @Schema(description = "閫傜敤宸ュ巶") + private String applicableFactories; + + /** 闆嗘垚鏃ユ湡 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "闆嗘垚鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd") + @Schema(description = "闆嗘垚鏃ユ湡") + private Date integrationDate; + + /** 鍒锋柊鏃ユ湡 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "鍒锋柊鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd") + @Schema(description = "鍒锋柊鏃ユ湡") + private Date refreshDate; + + /** 鍓╀綑搴撳瓨 */ + @Excel(name = "鍓╀綑搴撳瓨") + @Schema(description = "鍓╀綑搴撳瓨") + private BigDecimal remainderStock; + + /** 淇敼鐗堟湰 */ + @Excel(name = "淇敼鐗堟湰") + @Schema(description = "淇敼鐗堟湰") + private Double version; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setItemNumber(String itemNumber) + { + this.itemNumber = itemNumber; + } + + public String getItemNumber() + { + return itemNumber; + } + + public void setNum(BigDecimal num) + { + this.num = num; + } + + public BigDecimal getNum() + { + return num; + } + + public void setApplicableFactories(String applicableFactories) + { + this.applicableFactories = applicableFactories; + } + + public String getApplicableFactories() + { + return applicableFactories; + } + + public void setIntegrationDate(Date integrationDate) + { + this.integrationDate = integrationDate; + } + + public Date getIntegrationDate() + { + return integrationDate; + } + + public void setRefreshDate(Date refreshDate) + { + this.refreshDate = refreshDate; + } + + public Date getRefreshDate() + { + return refreshDate; + } + + public void setRemainderStock(BigDecimal remainderStock) + { + this.remainderStock = remainderStock; + } + + public BigDecimal getRemainderStock() + { + return remainderStock; + } + + public void setVersion(Double version) + { + this.version = version; + } + + public Double getVersion() + { + return version; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("itemNumber", getItemNumber()) + .append("num", getNum()) + .append("applicableFactories", getApplicableFactories()) + .append("integrationDate", getIntegrationDate()) + .append("refreshDate", getRefreshDate()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remainderStock", getRemainderStock()) + .append("version", getVersion()) + .toString(); + } +} diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWorkOrderJob.java b/aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWorkOrderJob.java index 09322b3..1387e3a 100644 --- a/aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWorkOrderJob.java +++ b/aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsWorkOrderJob.java @@ -141,16 +141,44 @@ @Excel(name = "涓嬩竴宸ュ簭鍚嶇О") private String nextOpName; - /** - * 浣庨樁鐮� - */ + /** 浣庨樁鐮� */ + @JsonProperty("LowLevelCode") private String lowOrderCode; /** 宸ュ崟鍒涘缓鏃堕棿 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "宸ュ崟鍒涘缓鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("CreatedOn") private Date orderCreateTime; + /** 宸ュ崟瀹℃牳鏃堕棿 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "宸ュ崟瀹℃牳鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("ApproveOn") + private Date approveOn; + + /** 宸ュ崟寮�宸ユ椂闂� */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "宸ュ崟寮�宸ユ椂闂�", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("StartDatetime") + private Date startWorkDate; + + public Date getApproveOn() { + return approveOn; + } + + public void setApproveOn(Date approveOn) { + this.approveOn = approveOn; + } + + public Date getStartWorkDate() { + return startWorkDate; + } + + public void setStartWorkDate(Date startWorkDate) { + this.startWorkDate = startWorkDate; + } + public String getLowOrderCode() { return lowOrderCode; } diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsBomHeaderJobMapper.java b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsBomHeaderJobMapper.java index 5854349..e2302d9 100644 --- a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsBomHeaderJobMapper.java +++ b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsBomHeaderJobMapper.java @@ -79,4 +79,9 @@ * @return */ public void deleteApsBomHeader(); + + /** + * 鍒犻櫎涓棿琛˙OM Header鏁版嵁 + */ + public void deleteApsBomHeaderJob(); } diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsBomLineJobMapper.java b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsBomLineJobMapper.java index 3d2385d..6990931 100644 --- a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsBomLineJobMapper.java +++ b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsBomLineJobMapper.java @@ -79,4 +79,9 @@ */ public void deleteApsBomLine() ; + /** + * 鍒犻櫎涓棿琛˙OM Line鏁版嵁 + */ + public void deleteApsBomLineJob() ; + } diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsMaterialStorageManagementJobMapper.java b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsMaterialStorageManagementJobMapper.java new file mode 100644 index 0000000..c701221 --- /dev/null +++ b/aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsMaterialStorageManagementJobMapper.java @@ -0,0 +1,88 @@ +package com.aps.job.mapper; + +import com.aps.job.domain.ApsMaterialStorageManagementJob; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 鐗╂枡搴撳瓨绠$悊Mapper鎺ュ彛 + * + * @author hjy + * @date 2025-05-08 + */ +public interface ApsMaterialStorageManagementJobMapper +{ + /** + * 鏌ヨ鐗╂枡搴撳瓨绠$悊 + * + * @param id 鐗╂枡搴撳瓨绠$悊涓婚敭 + * @return 鐗╂枡搴撳瓨绠$悊 + */ + public ApsMaterialStorageManagementJob selectApsMaterialStorageManagementJobById(Long id); + + /** + * 鏌ヨ鐗╂枡搴撳瓨绠$悊鍒楄〃 + * + * @param apsMaterialStorageManagementJob 鐗╂枡搴撳瓨绠$悊 + * @return 鐗╂枡搴撳瓨绠$悊闆嗗悎 + */ + public List<ApsMaterialStorageManagementJob> selectApsMaterialStorageManagementJobList(ApsMaterialStorageManagementJob apsMaterialStorageManagementJob); + + /** + * 鏂板鐗╂枡搴撳瓨绠$悊 + * + * @param apsMaterialStorageManagementJob 鐗╂枡搴撳瓨绠$悊 + * @return 缁撴灉 + */ + public int insertApsMaterialStorageManagementJob(ApsMaterialStorageManagementJob apsMaterialStorageManagementJob); + + /** + * 淇敼鐗╂枡搴撳瓨绠$悊 + * + * @param apsMaterialStorageManagementJob 鐗╂枡搴撳瓨绠$悊 + * @return 缁撴灉 + */ + public int updateApsMaterialStorageManagementJob(ApsMaterialStorageManagementJob apsMaterialStorageManagementJob); + + /** + * 鍒犻櫎鐗╂枡搴撳瓨绠$悊 + * + * @param id 鐗╂枡搴撳瓨绠$悊涓婚敭 + * @return 缁撴灉 + */ + public int deleteApsMaterialStorageManagementJobById(Long id); + + /** + * 鎵归噺鍒犻櫎鐗╂枡搴撳瓨绠$悊 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteApsMaterialStorageManagementJobByIds(Long[] ids); + + /** + * 鎵归噺鎻掑叆鐗╂枡搴撳瓨鏁版嵁 + * @param list + * @return + */ + public int insertApsMaterialStorageBatch(@Param("list") List<ApsMaterialStorageManagementJob> list); + + /** + * 鎵归噺鎻掑叆鐗╂枡搴撳瓨鏁版嵁鍒颁笟鍔¤〃 + * @return + */ + public void insertIntoApsMaterialStorage(); + + /** + * 鍒犻櫎鐗╂枡搴撳瓨鏁版嵁 + * @return + */ + public void deleteApsMaterialStorage(); + + /** + * 鍒犻櫎涓棿琛ㄧ墿鏂欏簱瀛樻暟鎹� + */ + public void deleteApsMaterialStorageJob(); + +} diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsBomHeaderJobService.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsBomHeaderJobService.java index 2804618..47385d5 100644 --- a/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsBomHeaderJobService.java +++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsBomHeaderJobService.java @@ -65,4 +65,16 @@ * @return */ public boolean syncBomData(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList); + + /** + * 鍚屾bom鏁版嵁瀹氭椂浠诲姟 + * @param pageIndex + * @param pageSize + * @param orgCode + * @param itemCodeList + * @return + */ + public boolean syncBomDataJob(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList); + + } diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsMaterialStorageManagementJobService.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsMaterialStorageManagementJobService.java new file mode 100644 index 0000000..332a35f --- /dev/null +++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/IApsMaterialStorageManagementJobService.java @@ -0,0 +1,82 @@ +package com.aps.job.service; + +import com.aps.job.domain.ApsMaterialStorageManagementJob; + +import java.util.List; + +/** + * 鐗╂枡搴撳瓨绠$悊Service鎺ュ彛 + * + * @author hjy + * @date 2025-05-08 + */ +public interface IApsMaterialStorageManagementJobService +{ + /** + * 鏌ヨ鐗╂枡搴撳瓨绠$悊 + * + * @param id 鐗╂枡搴撳瓨绠$悊涓婚敭 + * @return 鐗╂枡搴撳瓨绠$悊 + */ + public ApsMaterialStorageManagementJob selectApsMaterialStorageManagementJobById(Long id); + + /** + * 鏌ヨ鐗╂枡搴撳瓨绠$悊鍒楄〃 + * + * @param apsMaterialStorageManagementJob 鐗╂枡搴撳瓨绠$悊 + * @return 鐗╂枡搴撳瓨绠$悊闆嗗悎 + */ + public List<ApsMaterialStorageManagementJob> selectApsMaterialStorageManagementJobList(ApsMaterialStorageManagementJob apsMaterialStorageManagementJob); + + /** + * 鏂板鐗╂枡搴撳瓨绠$悊 + * + * @param apsMaterialStorageManagementJob 鐗╂枡搴撳瓨绠$悊 + * @return 缁撴灉 + */ + public int insertApsMaterialStorageManagementJob(ApsMaterialStorageManagementJob apsMaterialStorageManagementJob); + + /** + * 淇敼鐗╂枡搴撳瓨绠$悊 + * + * @param apsMaterialStorageManagementJob 鐗╂枡搴撳瓨绠$悊 + * @return 缁撴灉 + */ + public int updateApsMaterialStorageManagementJob(ApsMaterialStorageManagementJob apsMaterialStorageManagementJob); + + /** + * 鎵归噺鍒犻櫎鐗╂枡搴撳瓨绠$悊 + * + * @param ids 闇�瑕佸垹闄ょ殑鐗╂枡搴撳瓨绠$悊涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteApsMaterialStorageManagementJobByIds(Long[] ids); + + /** + * 鍒犻櫎鐗╂枡搴撳瓨绠$悊淇℃伅 + * + * @param id 鐗╂枡搴撳瓨绠$悊涓婚敭 + * @return 缁撴灉 + */ + public int deleteApsMaterialStorageManagementJobById(Long id); + + /** + * 鍚屾鐗╂枡搴撳瓨鏁版嵁 + * @param pageIndex + * @param pageSize + * @param orgCode + * @param itemCodeList + * @return + */ + public boolean syncApsMaterialStorageData(int pageIndex, int pageSize, String orgCode, String itemCodeList); + + /** + * 鍚屾鍏ㄩ噺鐗╂枡搴撳瓨鏁版嵁瀹氭椂浠诲姟 + * @param pageIndex + * @param pageSize + * @param orgCode + * @param itemCodeList + * @return + */ + public boolean syncApsMaterialStorageDataJob(int pageIndex, int pageSize, String orgCode, String itemCodeList); +} diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java index 3a1fa14..c307d96 100644 --- a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java +++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java @@ -19,6 +19,7 @@ import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.client.RestTemplate; import java.util.ArrayList; @@ -39,9 +40,6 @@ @Autowired private ApsBomLineJobMapper apsBomLineJobMapper; - /** - * 鑾峰彇璁㈠崟鎺ュ彛 - * */ @Value("${u9.bomJobUrl}") private String getBomUrl; @@ -223,4 +221,33 @@ } return true; } + + /** + * 鍏ㄩ噺鍚屾BOM鏁版嵁瀹氭椂浠诲姟 + * @param pageIndex + * @param pageSize + * @param orgCode + * @param itemCodeList + * @return + */ + @Transactional(rollbackFor = Exception.class) + @Override + public boolean syncBomDataJob(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList){ + try { + apsBomHeaderJobMapper.deleteApsBomHeaderJob(); + apsBomLineJobMapper.deleteApsBomLineJob(); + boolean res = syncBomData(pageIndex, pageSize, orgCode, itemCodeList); + if(!res){ + return false; + } + apsBomHeaderJobMapper.deleteApsBomHeader(); + apsBomLineJobMapper.deleteApsBomLine(); + apsBomHeaderJobMapper.insertIntoApsBomHeader(); + apsBomLineJobMapper.insertIntoApsBomLine(); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + return true; + } } diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsMaterialStorageManagementJobServiceImpl.java b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsMaterialStorageManagementJobServiceImpl.java new file mode 100644 index 0000000..7126cfb --- /dev/null +++ b/aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsMaterialStorageManagementJobServiceImpl.java @@ -0,0 +1,221 @@ +package com.aps.job.service.impl; + +import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.aps.common.core.utils.DateUtils; +import com.aps.common.core.utils.StringUtils; +import com.aps.job.domain.ApsMaterialStorageManagementJob; +import com.aps.job.domain.ApsWorkOrderJobLog; +import com.aps.job.mapper.ApsMaterialStorageManagementJobMapper; +import com.aps.job.mapper.ApsWorkOrderJobLogMapper; +import com.aps.job.service.IApsMaterialStorageManagementJobService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.client.RestTemplate; + +import java.util.ArrayList; +import java.util.List; + +/** + * 鐗╂枡搴撳瓨绠$悊Service涓氬姟灞傚鐞� + * + * @author hjy + * @date 2025-05-08 + */ +@Service +public class ApsMaterialStorageManagementJobServiceImpl implements IApsMaterialStorageManagementJobService +{ + @Autowired + private ApsMaterialStorageManagementJobMapper apsMaterialStorageManagementJobMapper; + + @Value("${u9.materialStorageUrl}") + private String getMaterialStorageUrl; + + @Autowired + private ApsWorkOrderJobLogMapper jobLogMapper; + + @Autowired + private RestTemplate restTemplate; + + /** + * 鏌ヨ鐗╂枡搴撳瓨绠$悊 + * + * @param id 鐗╂枡搴撳瓨绠$悊涓婚敭 + * @return 鐗╂枡搴撳瓨绠$悊 + */ + @Override + public ApsMaterialStorageManagementJob selectApsMaterialStorageManagementJobById(Long id) + { + return apsMaterialStorageManagementJobMapper.selectApsMaterialStorageManagementJobById(id); + } + + /** + * 鏌ヨ鐗╂枡搴撳瓨绠$悊鍒楄〃 + * + * @param apsMaterialStorageManagementJob 鐗╂枡搴撳瓨绠$悊 + * @return 鐗╂枡搴撳瓨绠$悊 + */ + @Override + public List<ApsMaterialStorageManagementJob> selectApsMaterialStorageManagementJobList(ApsMaterialStorageManagementJob apsMaterialStorageManagementJob) + { + return apsMaterialStorageManagementJobMapper.selectApsMaterialStorageManagementJobList(apsMaterialStorageManagementJob); + } + + /** + * 鏂板鐗╂枡搴撳瓨绠$悊 + * + * @param apsMaterialStorageManagementJob 鐗╂枡搴撳瓨绠$悊 + * @return 缁撴灉 + */ + @Override + public int insertApsMaterialStorageManagementJob(ApsMaterialStorageManagementJob apsMaterialStorageManagementJob) + { + apsMaterialStorageManagementJob.setCreateTime(DateUtils.getNowDate()); + return apsMaterialStorageManagementJobMapper.insertApsMaterialStorageManagementJob(apsMaterialStorageManagementJob); + } + + /** + * 淇敼鐗╂枡搴撳瓨绠$悊 + * + * @param apsMaterialStorageManagementJob 鐗╂枡搴撳瓨绠$悊 + * @return 缁撴灉 + */ + @Override + public int updateApsMaterialStorageManagementJob(ApsMaterialStorageManagementJob apsMaterialStorageManagementJob) + { + apsMaterialStorageManagementJob.setUpdateTime(DateUtils.getNowDate()); + return apsMaterialStorageManagementJobMapper.updateApsMaterialStorageManagementJob(apsMaterialStorageManagementJob); + } + + /** + * 鎵归噺鍒犻櫎鐗╂枡搴撳瓨绠$悊 + * + * @param ids 闇�瑕佸垹闄ょ殑鐗╂枡搴撳瓨绠$悊涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteApsMaterialStorageManagementJobByIds(Long[] ids) + { + return apsMaterialStorageManagementJobMapper.deleteApsMaterialStorageManagementJobByIds(ids); + } + + /** + * 鍒犻櫎鐗╂枡搴撳瓨绠$悊淇℃伅 + * + * @param id 鐗╂枡搴撳瓨绠$悊涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteApsMaterialStorageManagementJobById(Long id) + { + return apsMaterialStorageManagementJobMapper.deleteApsMaterialStorageManagementJobById(id); + } + + @Override + public boolean syncApsMaterialStorageData(int pageIndex, int pageSize, String orgCode, String itemCodeList) { + JSONObject requestBody = new JSONObject(); + ResponseEntity<String> response = null; + ApsWorkOrderJobLog jobLog = new ApsWorkOrderJobLog(); + try { + // 璁剧疆璇锋眰澶� + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + // 璁剧疆璇锋眰浣� + while (true) { + jobLog = new ApsWorkOrderJobLog(); + requestBody = new JSONObject(); + requestBody.put("PageIndex", pageIndex); + requestBody.put("PageSize", pageSize); + if(!StringUtils.isEmpty(orgCode)){ + requestBody.put("OrgCode", orgCode); + } + // 鍒涘缓HttpEntity瀵硅薄 + HttpEntity<String> request = new HttpEntity<>(requestBody.toJSONString(), headers); + // 鍙戦�丳OST璇锋眰 + response = restTemplate.postForEntity(getMaterialStorageUrl, request, String.class); + JSONObject responseBodyJson = JSONObject.parseObject(response.getBody()); + if (response.getStatusCode().is2xxSuccessful() && "200".equals(responseBodyJson.getString("status"))) { + JSONArray jsonArray = responseBodyJson.getJSONArray("data"); + if (!jsonArray.isEmpty()) { + List<ApsMaterialStorageManagementJob> storageList = new ArrayList<>(); + for (Object o : jsonArray) { + JSONObject storage = (JSONObject) o; + ApsMaterialStorageManagementJob materialStorage = new ApsMaterialStorageManagementJob(); + materialStorage.setId(IdUtil.getSnowflakeNextId()); + materialStorage.setItemNumber(storage.getString("ItemCode")); + materialStorage.setNum(storage.getBigDecimal("StoreQty")); + materialStorage.setApplicableFactories(storage.getString("OrgCode")); + storageList.add(materialStorage); + } + List<ApsMaterialStorageManagementJob> temp = new ArrayList<>(); + for(int i=0;i<storageList.size();i++){ + temp.add(storageList.get(i)); + if(temp.size()>=20){ + apsMaterialStorageManagementJobMapper.insertApsMaterialStorageBatch(temp); + temp = new ArrayList<>(); + } + } + jobLog.setRequestData(requestBody.toJSONString()); + jobLog.setPageNum(Long.valueOf(pageIndex)); + jobLog.setPageCount(Long.valueOf(pageSize)); + jobLog.setCreateTime(DateUtils.getNowDate()); + jobLog.setBizType("storage"); + jobLog.setResult("storage:"+storageList.size()); + jobLogMapper.insertApsWorkOrderJobLog(jobLog); + pageIndex++; + }else{ + break; + } + }else{ + jobLog.setRequestData(requestBody.toJSONString()); + jobLog.setResponseData(response.getBody()); + jobLog.setPageNum(Long.valueOf(pageIndex)); + jobLog.setPageCount(Long.valueOf(pageSize)); + jobLog.setCreateTime(DateUtils.getNowDate()); + jobLog.setBizType("storage"); + jobLog.setResult("error"); + jobLogMapper.insertApsWorkOrderJobLog(jobLog); + break; + } + } + } catch (Exception e) { + e.printStackTrace(); + jobLog.setRequestData(requestBody.toJSONString()); + jobLog.setResponseData(response.getBody()); + jobLog.setPageNum(Long.valueOf(pageIndex)); + jobLog.setPageCount(Long.valueOf(pageSize)); + jobLog.setCreateTime(DateUtils.getNowDate()); + jobLog.setBizType("storage"); + jobLog.setResult("error"); + jobLogMapper.insertApsWorkOrderJobLog(jobLog); + return false; + } + return true; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public boolean syncApsMaterialStorageDataJob(int pageIndex, int pageSize, String orgCode, String itemCodeList) { + try { + apsMaterialStorageManagementJobMapper.deleteApsMaterialStorageJob(); + boolean res = syncApsMaterialStorageData(pageIndex, pageSize, orgCode, itemCodeList); + if(!res){ + return false; + } + apsMaterialStorageManagementJobMapper.deleteApsMaterialStorage(); + apsMaterialStorageManagementJobMapper.insertIntoApsMaterialStorage(); + return true; + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException(e); + } + } + +} diff --git a/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java b/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java index c48844c..837a54d 100644 --- a/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java +++ b/aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java @@ -1,9 +1,13 @@ package com.aps.job.task; +import com.aps.common.core.constant.SecurityConstants; import com.aps.common.core.utils.StringUtils; import com.aps.job.param.ApsWorkOrderJobParam; +import com.aps.job.service.IApsBomHeaderJobService; +import com.aps.job.service.IApsMaterialStorageManagementJobService; import com.aps.job.service.IApsWorkOrderJobService; import com.aps.job.service.IApsWorkOrderProcessService; +import com.aps.system.api.RemoteCoreService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -26,6 +30,15 @@ @Autowired private IApsWorkOrderJobService iApsWorkOrderJobService; + + @Autowired + private IApsBomHeaderJobService iApsBomHeaderJobService; + + @Autowired + private RemoteCoreService remoteCoreService; + + @Autowired + private IApsMaterialStorageManagementJobService apsMaterialStorageManagementJobService; public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) { @@ -133,4 +146,23 @@ iApsWorkOrderJobService.syncGasPipingData(); iApsWorkOrderProcessService.syncProcessRouteData(); } + + /** + * 鍚屾鍏ㄩ噺BOM鏁版嵁瀹氭椂浠诲姟 + */ + public void syncBomDataJob(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList) + { + boolean res = iApsBomHeaderJobService.syncBomDataJob(pageIndex, pageSize, orgCode, itemCodeList); + if(res){ + remoteCoreService.setBomDataToRedis(SecurityConstants.INNER); + } + } + + /** + * 鍚屾鍏ㄩ噺搴撳瓨鏁版嵁瀹氭椂浠诲姟 + */ + public void syncApsMaterialStorageDataJob(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList) + { + apsMaterialStorageManagementJobService.syncApsMaterialStorageDataJob(pageIndex, pageSize, orgCode, itemCodeList); + } } diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomHeaderJobMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomHeaderJobMapper.xml index 1eec45e..1f527b8 100644 --- a/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomHeaderJobMapper.xml +++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomHeaderJobMapper.xml @@ -150,9 +150,14 @@ FROM aps_bom_header_job </insert> - <!-- 鍒犻櫎 aps_process_route 琛ㄤ腑鐨勬暟鎹� --> + <!-- 鍒犻櫎 aps_bom_header 琛ㄤ腑鐨勬暟鎹� --> <delete id="deleteApsBomHeader"> DELETE FROM aps_bom_header </delete> + <!-- 鍒犻櫎 aps_bom_header_job 琛ㄤ腑鐨勬暟鎹� --> + <delete id="deleteApsBomHeaderJob"> + DELETE FROM aps_bom_header_job + </delete> + </mapper> \ No newline at end of file diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomLineJobMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomLineJobMapper.xml index 452300d..84e470b 100644 --- a/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomLineJobMapper.xml +++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsBomLineJobMapper.xml @@ -198,9 +198,14 @@ FROM aps_bom_line_job </insert> - <!-- 鍒犻櫎 aps_process_route 琛ㄤ腑鐨勬暟鎹� --> + <!-- 鍒犻櫎 aps_bom_line 琛ㄤ腑鐨勬暟鎹� --> <delete id="deleteApsBomLine"> DELETE FROM aps_bom_line </delete> + <!-- 鍒犻櫎 aps_bom_line_job 琛ㄤ腑鐨勬暟鎹� --> + <delete id="deleteApsBomLineJob"> + DELETE FROM aps_bom_line_job + </delete> + </mapper> \ No newline at end of file diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsMaterialStorageManagementJobMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsMaterialStorageManagementJobMapper.xml new file mode 100644 index 0000000..ce3ec29 --- /dev/null +++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsMaterialStorageManagementJobMapper.xml @@ -0,0 +1,152 @@ +<?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.job.mapper.ApsMaterialStorageManagementJobMapper"> + + <resultMap type="ApsMaterialStorageManagementJob" id="ApsMaterialStorageManagementJobResult"> + <result property="id" column="id" /> + <result property="itemNumber" column="item_number" /> + <result property="num" column="num" /> + <result property="applicableFactories" column="applicable_factories" /> + <result property="integrationDate" column="integration_date" /> + <result property="refreshDate" column="refresh_date" /> + <result property="createBy" column="create_by" /> + <result property="createTime" column="create_time" /> + <result property="updateBy" column="update_by" /> + <result property="updateTime" column="update_time" /> + <result property="remainderStock" column="remainder_stock" /> + <result property="version" column="version" /> + </resultMap> + + <sql id="selectApsMaterialStorageManagementJobVo"> + select id, item_number, num, applicable_factories, integration_date, refresh_date, create_by, create_time, update_by, update_time, remainder_stock, version from aps_material_storage_management_job + </sql> + + <select id="selectApsMaterialStorageManagementJobList" parameterType="ApsMaterialStorageManagementJob" resultMap="ApsMaterialStorageManagementJobResult"> + <include refid="selectApsMaterialStorageManagementJobVo"/> + <where> + <if test="itemNumber != null and itemNumber != ''"> and item_number = #{itemNumber}</if> + <if test="num != null "> and num = #{num}</if> + <if test="applicableFactories != null and applicableFactories != ''"> and applicable_factories = #{applicableFactories}</if> + <if test="integrationDate != null "> and integration_date = #{integrationDate}</if> + <if test="refreshDate != null "> and refresh_date = #{refreshDate}</if> + <if test="remainderStock != null "> and remainder_stock = #{remainderStock}</if> + <if test="version != null "> and version = #{version}</if> + </where> + </select> + + <select id="selectApsMaterialStorageManagementJobById" parameterType="Long" resultMap="ApsMaterialStorageManagementJobResult"> + <include refid="selectApsMaterialStorageManagementJobVo"/> + where id = #{id} + </select> + + <insert id="insertApsMaterialStorageManagementJob" parameterType="ApsMaterialStorageManagementJob"> + insert into aps_material_storage_management_job + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null">id,</if> + <if test="itemNumber != null">item_number,</if> + <if test="num != null">num,</if> + <if test="applicableFactories != null">applicable_factories,</if> + <if test="integrationDate != null">integration_date,</if> + <if test="refreshDate != null">refresh_date,</if> + <if test="createBy != null">create_by,</if> + <if test="createTime != null">create_time,</if> + <if test="updateBy != null">update_by,</if> + <if test="updateTime != null">update_time,</if> + <if test="remainderStock != null">remainder_stock,</if> + <if test="version != null">version,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null">#{id},</if> + <if test="itemNumber != null">#{itemNumber},</if> + <if test="num != null">#{num},</if> + <if test="applicableFactories != null">#{applicableFactories},</if> + <if test="integrationDate != null">#{integrationDate},</if> + <if test="refreshDate != null">#{refreshDate},</if> + <if test="createBy != null">#{createBy},</if> + <if test="createTime != null">#{createTime},</if> + <if test="updateBy != null">#{updateBy},</if> + <if test="updateTime != null">#{updateTime},</if> + <if test="remainderStock != null">#{remainderStock},</if> + <if test="version != null">#{version},</if> + </trim> + </insert> + + <update id="updateApsMaterialStorageManagementJob" parameterType="ApsMaterialStorageManagementJob"> + update aps_material_storage_management_job + <trim prefix="SET" suffixOverrides=","> + <if test="itemNumber != null">item_number = #{itemNumber},</if> + <if test="num != null">num = #{num},</if> + <if test="applicableFactories != null">applicable_factories = #{applicableFactories},</if> + <if test="integrationDate != null">integration_date = #{integrationDate},</if> + <if test="refreshDate != null">refresh_date = #{refreshDate},</if> + <if test="createBy != null">create_by = #{createBy},</if> + <if test="createTime != null">create_time = #{createTime},</if> + <if test="updateBy != null">update_by = #{updateBy},</if> + <if test="updateTime != null">update_time = #{updateTime},</if> + <if test="remainderStock != null">remainder_stock = #{remainderStock},</if> + <if test="version != null">version = #{version},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteApsMaterialStorageManagementJobById" parameterType="Long"> + delete from aps_material_storage_management_job where id = #{id} + </delete> + + <delete id="deleteApsMaterialStorageManagementJobByIds" parameterType="String"> + delete from aps_material_storage_management_job where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> + + <insert id="insertApsMaterialStorageBatch"> + INSERT INTO aps_material_storage_management_job ( + id, + item_number, + num, + applicable_factories, + create_time + ) VALUES + <foreach collection="list" item="item" separator=","> + ( + #{item.id}, + #{item.itemNumber}, + #{item.num}, + #{item.applicableFactories}, + now() + ) + </foreach> + </insert> + + <!-- 鎻掑叆鏁版嵁鍒� aps_material_storage_management --> + <insert id="insertIntoApsMaterialStorage"> + INSERT INTO aps_material_storage_management ( + id, + item_number, + num, + applicable_factories, + create_time + ) + SELECT + id, + item_number, + num, + applicable_factories, + now() + FROM aps_material_storage_management_job + </insert> + + <!-- 鍒犻櫎 aps_material_storage_management 琛ㄤ腑鐨勬暟鎹� --> + <delete id="deleteApsMaterialStorage"> + DELETE FROM aps_material_storage_management + </delete> + + <!-- 鍒犻櫎 aps_material_storage_management_job 琛ㄤ腑鐨勬暟鎹� --> + <delete id="deleteApsMaterialStorageJob"> + DELETE FROM aps_material_storage_management_job + </delete> + +</mapper> \ No newline at end of file diff --git a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml index 8e82da4..6edc249 100644 --- a/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml +++ b/aps-modules/aps-job/src/main/resources/mapper/job/ApsWorkOrderJobMapper.xml @@ -41,6 +41,8 @@ <result property="nextOpName" column="next_op_name" /> <result property="lowOrderCode" column="low_order_code" /> <result property="orderCreateTime" column="order_create_time" /> + <result property="approveOn" column="approve_on" /> + <result property="startWorkDate" column="start_work_date" /> </resultMap> <sql id="selectApsWorkOrderJobVo"> @@ -48,7 +50,7 @@ doc_status, item_code, item_figure, item_figure_version, pruduct_qty, work_qty, op_num, work_center, dept, start_date, complete_date, next_dept, is_hold_release, is_out_source, org, page_num, page_index, del_flag, create_by, create_time, update_by, update_time , process_status,org_code, std_op, op_status, next_op_name, - low_order_code, order_create_time + low_order_code, order_create_time, approve_on, start_work_date from aps_work_order_job </sql> @@ -295,7 +297,9 @@ op_status, next_op_name, low_order_code, - order_create_time + order_create_time, + approve_on, + start_work_date </trim> values <foreach collection="list" item="job" separator=","> @@ -336,7 +340,9 @@ #{job.opStatus}, #{job.nextOpName}, #{job.lowOrderCode}, - #{job.orderCreateTime} + #{job.orderCreateTime}, + #{job.approveOn}, + #{job.startWorkDate} ) </foreach> </insert> -- Gitblit v1.9.3