优化标准成本任务执行逻辑
This commit is contained in:
@@ -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:
|
||||
|
||||
+2
@@ -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)
|
||||
|
||||
+1
-1
@@ -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<AppSceneCostResultValue> {
|
||||
|
||||
+2
-1
@@ -45,7 +45,8 @@ public class LaborCostParameters extends AbstractParameters {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "人工成本任务";
|
||||
return getLocalParams().toString();
|
||||
// return "人工成本任务";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+11
-10
@@ -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
|
||||
|
||||
+11
-7
@@ -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
|
||||
|
||||
+11
-7
@@ -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
|
||||
|
||||
+9
-12
@@ -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
|
||||
|
||||
+100
-22
@@ -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<CostMaterialBom> 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<CostMaterialBom> 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<AppSceneCostResultValue> list = standardCostService.iAppSceneCostResultValueService.getResultValueByTopMaterialNo(topMaterialCode, lastTaskType, flowInstanceId);
|
||||
//2.计算出所有的单个物料的人工成本
|
||||
//2.1查询出物料的人员工时和人工小时费率(涉及:小时费率表和工序表)
|
||||
List<String> MarterialNoList = new ArrayList<>();
|
||||
if (list != null && list.size() > 0) {
|
||||
MarterialNoList = list.stream().filter(s -> s.getMarterialNo() != null).map(AppSceneCostResultValue::getMarterialNo).collect(Collectors.toList());
|
||||
}
|
||||
//查询工序工时
|
||||
Map<String, List<CostMaterialProcessHours>> 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> 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.计算出所有的单个物料的累计标准成本
|
||||
|
||||
+11
-7
@@ -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
|
||||
|
||||
+7
-1
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 物料工时工序表 服务类
|
||||
@@ -12,5 +15,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
* @since 2024-06-19
|
||||
*/
|
||||
public interface CostMaterialProcessHoursService extends IService<CostMaterialProcessHours> {
|
||||
|
||||
/**
|
||||
* 查询满足物料编号的工时工序
|
||||
*/
|
||||
Map<String,List<CostMaterialProcessHours>> getProcessHoursByMaterialNo(List<String> materialNos);
|
||||
}
|
||||
|
||||
+8
-1
@@ -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<AppSceneCostResultValue> {
|
||||
|
||||
/**
|
||||
* 根据顶级物料编码查询满足条件的结果值
|
||||
* @param topMaterialCode
|
||||
* @return
|
||||
*/
|
||||
List<AppSceneCostResultValue> getResultValueByTopMaterialNo(String topMaterialCode,String lastTaskType,String flowInstanceId);
|
||||
}
|
||||
|
||||
+25
@@ -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<AppSceneCostResultValueMapper, AppSceneCostResultValue> implements IAppSceneCostResultValueService {
|
||||
@Autowired
|
||||
private AppSceneCostResultValueMapper appSceneCostResultValueMapper;
|
||||
|
||||
/**
|
||||
* 根据顶级物料编码查询满足条件的结果值
|
||||
*
|
||||
* @param topMaterialCode
|
||||
* @param lastTaskType
|
||||
* @param flowInstanceId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<AppSceneCostResultValue> getResultValueByTopMaterialNo(String topMaterialCode, String lastTaskType, String flowInstanceId) {
|
||||
List<AppSceneCostResultValue> result = new ArrayList<>();
|
||||
QueryWrapper<AppSceneCostResultValue> 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;
|
||||
}
|
||||
}
|
||||
|
||||
+39
-2
@@ -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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 物料工时工序表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author
|
||||
* @author
|
||||
* @since 2024-06-19
|
||||
*/
|
||||
@Service
|
||||
public class CostMaterialProcessHoursServiceImpl extends ServiceImpl<CostMaterialProcessHoursMapper, CostMaterialProcessHours> implements CostMaterialProcessHoursService {
|
||||
@Autowired
|
||||
CostMaterialProcessHoursMapper costMaterialProcessHoursMapper;
|
||||
|
||||
/**
|
||||
* 查询满足物料编号的工时工序
|
||||
*
|
||||
* @param materialNos
|
||||
*/
|
||||
@Override
|
||||
public Map<String, List<CostMaterialProcessHours>> getProcessHoursByMaterialNo(List<String> materialNos) {
|
||||
Map<String, List<CostMaterialProcessHours>> map = new HashMap<>();
|
||||
QueryWrapper<CostMaterialProcessHours> queryWrapper = new QueryWrapper();
|
||||
if (materialNos != null && materialNos.size() > 0) {
|
||||
queryWrapper.in("material_code", materialNos);
|
||||
List<CostMaterialProcessHours> 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<CostMaterialProcessHours> list = map.get(materialCode);
|
||||
list.add(costMaterialProcessHours1);
|
||||
map.put(materialCode, list);
|
||||
} else {
|
||||
List<CostMaterialProcessHours> list = new ArrayList<>();
|
||||
list.add(costMaterialProcessHours1);
|
||||
map.put(materialCode, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user