From 240b7134e5c45108d02661083531e875070d6e3f Mon Sep 17 00:00:00 2001 From: wangqiong <1322446236@qq.com> Date: Wed, 24 Jul 2024 18:13:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=A0=87=E5=87=86=E6=88=90?= =?UTF-8?q?=E6=9C=AC=E4=BB=BB=E5=8A=A1=E6=89=A7=E8=A1=8C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-dev.yml | 5 +- .../entity/AppSceneCostResultValue.java | 2 + .../mapper/AppSceneCostResultValueMapper.java | 2 +- .../plugin/laborcost/LaborCostParameters.java | 3 +- .../plugin/laborcost/LaborCostTask.java | 21 +-- .../ManufacturingCostTask.java | 18 ++- .../plugin/materialcost/MaterialCostTask.java | 18 ++- .../materialinput/MaterialInputTask.java | 21 ++- .../materialinput/StandardCostService.java | 122 ++++++++++++++---- .../plugin/standardcost/StandardCostTask.java | 18 ++- .../CostMaterialProcessHoursService.java | 8 +- .../IAppSceneCostResultValueService.java | 9 +- .../AppSceneCostResultValueServiceImpl.java | 25 ++++ .../CostMaterialProcessHoursServiceImpl.java | 41 +++++- 14 files changed, 240 insertions(+), 73 deletions(-) diff --git a/qomo-kn-cost-manage-start/src/main/resources/application-dev.yml b/qomo-kn-cost-manage-start/src/main/resources/application-dev.yml index 2327bb0..4326d66 100644 --- a/qomo-kn-cost-manage-start/src/main/resources/application-dev.yml +++ b/qomo-kn-cost-manage-start/src/main/resources/application-dev.yml @@ -232,7 +232,7 @@ spring: rabbitmq: host: 192.168.50.9 port: 5672 - virtual-host: /qomoflow-dev + virtual-host: /qomoflow-standardcost username: admin password: kncloud connection-timeout: 5000 @@ -283,7 +283,8 @@ jeecg: webapp: /opt/webapp shiro: # excludeUrls: /api/**,/api/internalService/**,/test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**,/api/getUserInfo,/sys/sysDepart/**,/taskSocket/**,/flowSocket/**,/dataCheck/** - excludeUrls: /**/**,/**/**/** + excludeUrls: /api/internalService/**,/test/jeecgDemo/demo3,/test/jeecgDemo/redisDemo/**,/category/**,/visual/**,/map/**,/jmreport/bigscreen2/**,/api/getUserInfo,/sys/sysDepart/**,/taskSocket/**,/flowSocket/**,/dataCheck/** + #excludeUrls: /**/**,/**/**/** #阿里云oss存储和大鱼短信秘钥配置 oss: diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/entity/AppSceneCostResultValue.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/entity/AppSceneCostResultValue.java index 87f4bbc..5719301 100644 --- a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/entity/AppSceneCostResultValue.java +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/entity/AppSceneCostResultValue.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Builder; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; @@ -25,6 +26,7 @@ import lombok.experimental.Accessors; * @Version: V1.0 */ @Data +@Builder @TableName("app_scene_cost_result_value") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/mapper/AppSceneCostResultValueMapper.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/mapper/AppSceneCostResultValueMapper.java index 2553ce9..70abdc8 100644 --- a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/mapper/AppSceneCostResultValueMapper.java +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/mapper/AppSceneCostResultValueMapper.java @@ -7,7 +7,7 @@ import com.zzsmart.qomo.kn.cost.manage.entity.AppSceneCostResultValue; /** * @Description: app_scene_cost_result_value * @Author: jeecg-boot - * @Date: 2024-07-23 + * @Date: 2024-07-23 * @Version: V1.0 */ public interface AppSceneCostResultValueMapper extends BaseMapper { diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/laborcost/LaborCostParameters.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/laborcost/LaborCostParameters.java index e0fbb06..6860769 100644 --- a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/laborcost/LaborCostParameters.java +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/laborcost/LaborCostParameters.java @@ -45,7 +45,8 @@ public class LaborCostParameters extends AbstractParameters { @Override public String toString() { - return "人工成本任务"; + return getLocalParams().toString(); +// return "人工成本任务"; } } diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/laborcost/LaborCostTask.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/laborcost/LaborCostTask.java index 7b2767a..2c55376 100644 --- a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/laborcost/LaborCostTask.java +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/laborcost/LaborCostTask.java @@ -17,14 +17,9 @@ package com.zzsmart.qomo.kn.cost.manage.plugin.laborcost; -import com.zzsmart.qomo.kn.cost.manage.mapper.CostMaterialBomMapper; -import com.zzsmart.qomo.kn.cost.manage.service.IAppSceneCostResultValueService; -import com.zzsmart.qomo.plugin.task.api.AbstractTask; -import com.zzsmart.qomo.plugin.task.api.TaskCallBack; -import com.zzsmart.qomo.plugin.task.api.TaskException; -import com.zzsmart.qomo.plugin.task.api.TaskExecutionContext; +import com.zzsmart.qomo.kn.cost.manage.plugin.materialinput.StandardCostService; +import com.zzsmart.qomo.plugin.task.api.*; import com.zzsmart.qomo.plugin.task.api.parameters.AbstractParameters; -import org.springframework.beans.factory.annotation.Autowired; /** * 人工成本计算任务 @@ -59,9 +54,15 @@ public class LaborCostTask extends AbstractTask { @Override public void handle(TaskCallBack taskCallBack) throws TaskException { - log.info("Full EmptyTask parameters: {}", emptyParameters); - - //setExitStatusCode(TaskConstants.EXIT_CODE_SUCCESS); + log.info("Full EmptyTask parameters: {}", taskExecutionContext); + try { + StandardCostService.laborCostTask(taskExecutionContext); + } catch (Exception e) { + //运行失败退出 + setExitStatusCode(TaskConstants.EXIT_CODE_FAILURE); + } + //运行成功退出 + setExitStatusCode(TaskConstants.EXIT_CODE_SUCCESS); } @Override diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/manufacturingcost/ManufacturingCostTask.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/manufacturingcost/ManufacturingCostTask.java index dc8e76c..727b0c9 100644 --- a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/manufacturingcost/ManufacturingCostTask.java +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/manufacturingcost/ManufacturingCostTask.java @@ -20,11 +20,9 @@ package com.zzsmart.qomo.kn.cost.manage.plugin.manufacturingcost; import com.zzsmart.qomo.kn.cost.manage.entity.AppSceneCostResultValue; import com.zzsmart.qomo.kn.cost.manage.entity.CostMaterialBom; import com.zzsmart.qomo.kn.cost.manage.mapper.CostMaterialBomMapper; +import com.zzsmart.qomo.kn.cost.manage.plugin.materialinput.StandardCostService; import com.zzsmart.qomo.kn.cost.manage.service.IAppSceneCostResultValueService; -import com.zzsmart.qomo.plugin.task.api.AbstractTask; -import com.zzsmart.qomo.plugin.task.api.TaskCallBack; -import com.zzsmart.qomo.plugin.task.api.TaskException; -import com.zzsmart.qomo.plugin.task.api.TaskExecutionContext; +import com.zzsmart.qomo.plugin.task.api.*; import com.zzsmart.qomo.plugin.task.api.parameters.AbstractParameters; import org.springframework.beans.factory.annotation.Autowired; @@ -64,9 +62,15 @@ public class ManufacturingCostTask extends AbstractTask { @Override public void handle(TaskCallBack taskCallBack) throws TaskException { - log.info("Full EmptyTask parameters: {}", emptyParameters); - - //setExitStatusCode(TaskConstants.EXIT_CODE_SUCCESS); + log.info("Full EmptyTask parameters: {}", taskRequest); + try { + StandardCostService.manufacturingCostTask(taskRequest); + } catch (Exception e) { + //运行失败退出 + setExitStatusCode(TaskConstants.EXIT_CODE_FAILURE); + } + //运行成功退出 + setExitStatusCode(TaskConstants.EXIT_CODE_SUCCESS); } @Override diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/materialcost/MaterialCostTask.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/materialcost/MaterialCostTask.java index 86ce8da..4452ba6 100644 --- a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/materialcost/MaterialCostTask.java +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/materialcost/MaterialCostTask.java @@ -20,11 +20,9 @@ package com.zzsmart.qomo.kn.cost.manage.plugin.materialcost; import com.zzsmart.qomo.kn.cost.manage.entity.AppSceneCostResultValue; import com.zzsmart.qomo.kn.cost.manage.entity.CostMaterialBom; import com.zzsmart.qomo.kn.cost.manage.mapper.CostMaterialBomMapper; +import com.zzsmart.qomo.kn.cost.manage.plugin.materialinput.StandardCostService; import com.zzsmart.qomo.kn.cost.manage.service.IAppSceneCostResultValueService; -import com.zzsmart.qomo.plugin.task.api.AbstractTask; -import com.zzsmart.qomo.plugin.task.api.TaskCallBack; -import com.zzsmart.qomo.plugin.task.api.TaskException; -import com.zzsmart.qomo.plugin.task.api.TaskExecutionContext; +import com.zzsmart.qomo.plugin.task.api.*; import com.zzsmart.qomo.plugin.task.api.parameters.AbstractParameters; import org.springframework.beans.factory.annotation.Autowired; @@ -64,9 +62,15 @@ public class MaterialCostTask extends AbstractTask { @Override public void handle(TaskCallBack taskCallBack) throws TaskException { - log.info("Full EmptyTask parameters: {}", emptyParameters); - - //setExitStatusCode(TaskConstants.EXIT_CODE_SUCCESS); + log.info("Full EmptyTask parameters: {}", taskRequest); + try { + StandardCostService.materialCostTask(taskRequest); + } catch (Exception e) { + //运行失败退出 + setExitStatusCode(TaskConstants.EXIT_CODE_FAILURE); + } + //运行成功退出 + setExitStatusCode(TaskConstants.EXIT_CODE_SUCCESS); } @Override diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/materialinput/MaterialInputTask.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/materialinput/MaterialInputTask.java index 23f75b4..8e38a6e 100644 --- a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/materialinput/MaterialInputTask.java +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/materialinput/MaterialInputTask.java @@ -17,17 +17,8 @@ package com.zzsmart.qomo.kn.cost.manage.plugin.materialinput; -import com.zzsmart.qomo.kn.cost.manage.entity.AppSceneCostResultValue; -import com.zzsmart.qomo.kn.cost.manage.entity.CostMaterialBom; -import com.zzsmart.qomo.kn.cost.manage.mapper.CostMaterialBomMapper; -import com.zzsmart.qomo.kn.cost.manage.service.IAppSceneCostResultValueService; import com.zzsmart.qomo.plugin.task.api.*; import com.zzsmart.qomo.plugin.task.api.parameters.AbstractParameters; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.Date; -import java.util.List; /** * 物料编号输入任务 @@ -62,9 +53,15 @@ public class MaterialInputTask extends AbstractTask { @Override public void handle(TaskCallBack taskCallBack) throws TaskException { - log.info("Full EmptyTask parameters: {}", emptyParameters); - - //setExitStatusCode(TaskConstants.EXIT_CODE_SUCCESS); + log.info("Full EmptyTask parameters: {}", taskExecutionContext); + try { + StandardCostService.materialInputTask(taskExecutionContext); + } catch (Exception e) { + //运行失败退出 + setExitStatusCode(TaskConstants.EXIT_CODE_FAILURE); + } + //运行成功退出 + setExitStatusCode(TaskConstants.EXIT_CODE_SUCCESS); } @Override diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/materialinput/StandardCostService.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/materialinput/StandardCostService.java index f01a4e6..a545ba5 100644 --- a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/materialinput/StandardCostService.java +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/materialinput/StandardCostService.java @@ -2,21 +2,45 @@ package com.zzsmart.qomo.kn.cost.manage.plugin.materialinput; import com.zzsmart.qomo.kn.cost.manage.entity.AppSceneCostResultValue; import com.zzsmart.qomo.kn.cost.manage.entity.CostMaterialBom; +import com.zzsmart.qomo.kn.cost.manage.entity.CostMaterialProcessHours; import com.zzsmart.qomo.kn.cost.manage.mapper.CostMaterialBomMapper; +import com.zzsmart.qomo.kn.cost.manage.service.CostMaterialProcessHoursService; import com.zzsmart.qomo.kn.cost.manage.service.IAppSceneCostResultValueService; +import com.zzsmart.qomo.kn.cost.manage.service.IHourRateService; +import com.zzsmart.qomo.plugin.task.api.TaskExecutionContext; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; -import java.util.Date; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @Service @Slf4j public class StandardCostService { + /** + * 物料BOM信息 + */ @Autowired CostMaterialBomMapper costMaterialBomMapper; + + /** + * 小时费率 + */ + @Autowired + IHourRateService iHourRateService; + /** + * 工序 + */ + @Autowired + CostMaterialProcessHoursService costMaterialProcessHoursService; + /** + * 标准成本计算结果 + */ @Autowired IAppSceneCostResultValueService iAppSceneCostResultValueService; public static StandardCostService standardCostService; @@ -25,6 +49,8 @@ public class StandardCostService { public void init() { standardCostService = this; standardCostService.costMaterialBomMapper = this.costMaterialBomMapper; + standardCostService.iHourRateService = this.iHourRateService; + standardCostService.costMaterialProcessHoursService = this.costMaterialProcessHoursService; standardCostService.iAppSceneCostResultValueService = this.iAppSceneCostResultValueService; } @@ -32,25 +58,35 @@ public class StandardCostService { /** * 物料编号输入任务 */ - public static void materialInputTask(String materialCode) { - //1.查询出所有满足物料编号的物料(BOM物料) - String sql = "select * from app_scene_cost_material_bom "; - List list = standardCostService.costMaterialBomMapper.customSelect(sql); - log.info("Full EmptyTask list: {}", list); - //2.把查询的结果存放在临时表里(表命名规则:前缀_流程id_组件code) - AppSceneCostResultValue appSceneCostResultValue = new AppSceneCostResultValue(); - - appSceneCostResultValue.setInstanceCode("11"); - appSceneCostResultValue.setCountValue("11"); - appSceneCostResultValue.setCreateTime(new Date()); - standardCostService.iAppSceneCostResultValueService.save(appSceneCostResultValue); - + public static void materialInputTask(TaskExecutionContext parameters) { + try { + //获取最上层的物料号 + String materialCode = ""; + //获取任务类型 + String taskType = ""; + //获取任务代码 + String taskCode = ""; + //获取流程id + String flowInstanceId = "1"; + //1.查询出所有满足物料编号的物料(BOM物料) + String sql = "select * from app_scene_cost_material_bom "; + List list = standardCostService.costMaterialBomMapper.customSelect(sql); + log.info("Full EmptyTask list: {}", list); + //2.把查询的结果存放在临时表里(表命名规则:前缀_流程id_组件code) + for (int i = 0; list != null && i < list.size(); i++) { + CostMaterialBom material = list.get(i); + AppSceneCostResultValue appSceneCostResultValue = AppSceneCostResultValue.builder().belongTopMaterialNo(materialCode).marterialNo(material.getMaterialCode()).parentMarterialNo(material.getParentMaterialCode()).taskType(taskType).taskCode(taskCode).flowInstanceId(flowInstanceId).build(); + standardCostService.iAppSceneCostResultValueService.save(appSceneCostResultValue); + } + } catch (Exception e) { + throw new RuntimeException(e); + } } /** * 物料成本任务 */ - public static void materialCostTask(String materialCode) { + public static void materialCostTask(TaskExecutionContext parameters) { //1.查询出物料编号对应的下所有的BOM信息 //2.计算出所有的单个物料的物料成本 //2.1查询出物料的单价和采购数量 @@ -60,17 +96,59 @@ public class StandardCostService { /** * 人工成本任务 */ - public static void laborCostTask(String materialCode) { - //1.查询出物料编号对应的下所有的BOM信息 - //2.计算出所有的单个物料的人工成本 - //2.1查询出物料的人员工时和人工费率 - //2.2计算出人工成本并存储到成本结果数据表中 + public static void laborCostTask(TaskExecutionContext parameters) { + try { + //获取最上层的物料号 + String topMaterialCode = ""; + //获取任务类型 + String taskType = ""; + //获取上一节点任务类型 + String lastTaskType = "LaborCost"; + //获取任务代码 + String taskCode = ""; + //获取流程id + String flowInstanceId = "1"; + //人工费率 + BigDecimal laborRate = new BigDecimal("0.0"); + //1.查询出物料编号对应的下所有的BOM信息 + List list = standardCostService.iAppSceneCostResultValueService.getResultValueByTopMaterialNo(topMaterialCode, lastTaskType, flowInstanceId); + //2.计算出所有的单个物料的人工成本 + //2.1查询出物料的人员工时和人工小时费率(涉及:小时费率表和工序表) + List MarterialNoList = new ArrayList<>(); + if (list != null && list.size() > 0) { + MarterialNoList = list.stream().filter(s -> s.getMarterialNo() != null).map(AppSceneCostResultValue::getMarterialNo).collect(Collectors.toList()); + } + //查询工序工时 + Map> processHoursMap = standardCostService.costMaterialProcessHoursService.getProcessHoursByMaterialNo(MarterialNoList); + for (int i = 0; i < list.size(); i++) { + AppSceneCostResultValue appSceneCostResultValue = list.get(i); + String marterialNo = appSceneCostResultValue.getMarterialNo(); + if (marterialNo != null) { + BigDecimal totalLaborCost = new BigDecimal("0.0"); + List costMaterialProcessHours = processHoursMap.get(marterialNo); + if (costMaterialProcessHours != null && costMaterialProcessHours.size() > 0) { + for (int j = 0; j < costMaterialProcessHours.size(); j++) { + CostMaterialProcessHours processHours = costMaterialProcessHours.get(j); + BigDecimal laborHours = processHours.getLaborHours(); + //计算总人工成本 + totalLaborCost.add(laborHours.multiply(laborRate)); + } + } + //2.2计算出人工成本并存储到成本结果数据表中 + AppSceneCostResultValue resultValue = AppSceneCostResultValue.builder().belongTopMaterialNo(topMaterialCode).marterialNo(marterialNo).parentMarterialNo(appSceneCostResultValue.getParentMarterialNo()).taskType(taskType).taskCode(taskCode).flowInstanceId(flowInstanceId).countValue(totalLaborCost + "").build(); + standardCostService.iAppSceneCostResultValueService.save(resultValue); + } + } + } catch (Exception e) { + throw new RuntimeException(e); + } + } /** * 制造费用成本任务 */ - public static void manufacturingCostTask(String materialCode) { + public static void manufacturingCostTask(TaskExecutionContext parameters) { //1.查询出物料编号对应的下所有的BOM信息 //2.根据费用类型进行不同的费用计算 //2.1机器折旧费(机器工时*费率) @@ -83,7 +161,7 @@ public class StandardCostService { /** * 标准成本计算任务 */ - public static void standardCostTask(String materialCode) { + public static void standardCostTask(TaskExecutionContext parameters) { //1.查询出物料编号对应的下所有的BOM信息 //2.计算出所有的单个物料的本阶的标准成本(标准成本=物料成本+人工成本+制造费用) //3.计算出所有的单个物料的累计标准成本 diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/standardcost/StandardCostTask.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/standardcost/StandardCostTask.java index c705ee9..abacd55 100644 --- a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/standardcost/StandardCostTask.java +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/plugin/standardcost/StandardCostTask.java @@ -18,11 +18,9 @@ package com.zzsmart.qomo.kn.cost.manage.plugin.standardcost; import com.zzsmart.qomo.kn.cost.manage.mapper.CostMaterialBomMapper; +import com.zzsmart.qomo.kn.cost.manage.plugin.materialinput.StandardCostService; import com.zzsmart.qomo.kn.cost.manage.service.IAppSceneCostResultValueService; -import com.zzsmart.qomo.plugin.task.api.AbstractTask; -import com.zzsmart.qomo.plugin.task.api.TaskCallBack; -import com.zzsmart.qomo.plugin.task.api.TaskException; -import com.zzsmart.qomo.plugin.task.api.TaskExecutionContext; +import com.zzsmart.qomo.plugin.task.api.*; import com.zzsmart.qomo.plugin.task.api.parameters.AbstractParameters; import org.springframework.beans.factory.annotation.Autowired; @@ -60,9 +58,15 @@ public class StandardCostTask extends AbstractTask { @Override public void handle(TaskCallBack taskCallBack) throws TaskException { - log.info("Full EmptyTask parameters: {}", emptyParameters); - - //setExitStatusCode(TaskConstants.EXIT_CODE_SUCCESS); + log.info("Full EmptyTask parameters: {}", taskRequest); + try { + StandardCostService.standardCostTask(taskRequest); + } catch (Exception e) { + //运行失败退出 + setExitStatusCode(TaskConstants.EXIT_CODE_FAILURE); + } + //运行成功退出 + setExitStatusCode(TaskConstants.EXIT_CODE_SUCCESS); } @Override diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/CostMaterialProcessHoursService.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/CostMaterialProcessHoursService.java index c8957cc..182a7a7 100644 --- a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/CostMaterialProcessHoursService.java +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/CostMaterialProcessHoursService.java @@ -3,6 +3,9 @@ package com.zzsmart.qomo.kn.cost.manage.service; import com.zzsmart.qomo.kn.cost.manage.entity.CostMaterialProcessHours; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; +import java.util.Map; + /** *

* 物料工时工序表 服务类 @@ -12,5 +15,8 @@ import com.baomidou.mybatisplus.extension.service.IService; * @since 2024-06-19 */ public interface CostMaterialProcessHoursService extends IService { - +/** + * 查询满足物料编号的工时工序 + */ + Map> getProcessHoursByMaterialNo(List materialNos); } diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/IAppSceneCostResultValueService.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/IAppSceneCostResultValueService.java index cfdca85..5e42df0 100644 --- a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/IAppSceneCostResultValueService.java +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/IAppSceneCostResultValueService.java @@ -3,6 +3,8 @@ package com.zzsmart.qomo.kn.cost.manage.service; import com.baomidou.mybatisplus.extension.service.IService; import com.zzsmart.qomo.kn.cost.manage.entity.AppSceneCostResultValue; +import java.util.List; + /** * @Description: app_scene_cost_result_value * @Author: jeecg-boot @@ -10,5 +12,10 @@ import com.zzsmart.qomo.kn.cost.manage.entity.AppSceneCostResultValue; * @Version: V1.0 */ public interface IAppSceneCostResultValueService extends IService { - + /** + * 根据顶级物料编码查询满足条件的结果值 + * @param topMaterialCode + * @return + */ + List getResultValueByTopMaterialNo(String topMaterialCode,String lastTaskType,String flowInstanceId); } diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/impl/AppSceneCostResultValueServiceImpl.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/impl/AppSceneCostResultValueServiceImpl.java index 77db0b4..fe6e7a7 100644 --- a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/impl/AppSceneCostResultValueServiceImpl.java +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/impl/AppSceneCostResultValueServiceImpl.java @@ -1,12 +1,17 @@ package com.zzsmart.qomo.kn.cost.manage.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zzsmart.qomo.kn.cost.manage.entity.AppSceneCostResultValue; import com.zzsmart.qomo.kn.cost.manage.mapper.AppSceneCostResultValueMapper; import com.zzsmart.qomo.kn.cost.manage.service.IAppSceneCostResultValueService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + /** * @Description: app_scene_cost_result_value @@ -16,5 +21,25 @@ import org.springframework.stereotype.Service; */ @Service public class AppSceneCostResultValueServiceImpl extends ServiceImpl implements IAppSceneCostResultValueService { + @Autowired + private AppSceneCostResultValueMapper appSceneCostResultValueMapper; + /** + * 根据顶级物料编码查询满足条件的结果值 + * + * @param topMaterialCode + * @param lastTaskType + * @param flowInstanceId + * @return + */ + @Override + public List getResultValueByTopMaterialNo(String topMaterialCode, String lastTaskType, String flowInstanceId) { + List result = new ArrayList<>(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (topMaterialCode != null && !topMaterialCode.equals("") && lastTaskType != null && !lastTaskType.equals("") && flowInstanceId != null && !flowInstanceId.equals("")) { + queryWrapper.eq("belong_top_material_no", topMaterialCode).eq("task_type", lastTaskType).eq("flow_instance_id", flowInstanceId); + result = appSceneCostResultValueMapper.selectList(queryWrapper); + } + return result; + } } diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/impl/CostMaterialProcessHoursServiceImpl.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/impl/CostMaterialProcessHoursServiceImpl.java index f47c888..7c8a3b8 100644 --- a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/impl/CostMaterialProcessHoursServiceImpl.java +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/impl/CostMaterialProcessHoursServiceImpl.java @@ -1,20 +1,57 @@ package com.zzsmart.qomo.kn.cost.manage.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zzsmart.qomo.kn.cost.manage.entity.CostMaterialProcessHours; import com.zzsmart.qomo.kn.cost.manage.mapper.CostMaterialProcessHoursMapper; import com.zzsmart.qomo.kn.cost.manage.service.CostMaterialProcessHoursService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** *

* 物料工时工序表 服务实现类 *

* - * @author + * @author * @since 2024-06-19 */ @Service public class CostMaterialProcessHoursServiceImpl extends ServiceImpl implements CostMaterialProcessHoursService { + @Autowired + CostMaterialProcessHoursMapper costMaterialProcessHoursMapper; + /** + * 查询满足物料编号的工时工序 + * + * @param materialNos + */ + @Override + public Map> getProcessHoursByMaterialNo(List materialNos) { + Map> map = new HashMap<>(); + QueryWrapper queryWrapper = new QueryWrapper(); + if (materialNos != null && materialNos.size() > 0) { + queryWrapper.in("material_code", materialNos); + List costMaterialProcessHours = costMaterialProcessHoursMapper.selectList(queryWrapper); + for (int i = 0; i < costMaterialProcessHours.size(); i++) { + CostMaterialProcessHours costMaterialProcessHours1 = costMaterialProcessHours.get(i); + String materialCode = costMaterialProcessHours1.getMaterialCode(); + if (map.containsKey(materialCode)) { + List list = map.get(materialCode); + list.add(costMaterialProcessHours1); + map.put(materialCode, list); + } else { + List list = new ArrayList<>(); + list.add(costMaterialProcessHours1); + map.put(materialCode, list); + } + } + } + return map; + } }