diff --git a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/mapper/master/ProcessRouteTaskProcessesMapper.java b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/mapper/master/ProcessRouteTaskProcessesMapper.java index e75f5d3f..832e0b30 100644 --- a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/mapper/master/ProcessRouteTaskProcessesMapper.java +++ b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/mapper/master/ProcessRouteTaskProcessesMapper.java @@ -1,11 +1,10 @@ package com.nflg.product.technology.mapper.master; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.product.technology.pojo.dto.WorkingHourDTO; import com.nflg.product.technology.pojo.entity.ProcessRouteTaskProcessesEntity; -import java.math.BigDecimal; -import java.util.Map; -import java.util.Set; +import java.util.List; /** *

@@ -17,7 +16,5 @@ import java.util.Set; */ public interface ProcessRouteTaskProcessesMapper extends BaseMapper { - Map getWorkingHours(Set materialNos); - - Map getWorkingHour(String materialNo); + List getWorkingHour(String materialNo); } diff --git a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/pojo/dto/WorkingHourDTO.java b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/pojo/dto/WorkingHourDTO.java new file mode 100644 index 00000000..8b9c5cde --- /dev/null +++ b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/pojo/dto/WorkingHourDTO.java @@ -0,0 +1,13 @@ +package com.nflg.product.technology.pojo.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class WorkingHourDTO { + + private String materialWork; + + private BigDecimal workHours = BigDecimal.ZERO; +} diff --git a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/BomCostCalculateService.java b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/BomCostCalculateService.java index 7fe28e07..94d36883 100644 --- a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/BomCostCalculateService.java +++ b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/BomCostCalculateService.java @@ -8,6 +8,7 @@ import com.nflg.product.technology.pojo.BomCostCalculateConfig; import com.nflg.product.technology.pojo.dto.EBomCostCacheDTO; import com.nflg.product.technology.pojo.dto.EBomDTO; import com.nflg.product.technology.pojo.dto.ProductionCostDTO; +import com.nflg.product.technology.pojo.dto.WorkingHourDTO; import com.nflg.product.technology.pojo.entity.EBomChildEntity; import com.nflg.product.technology.pojo.entity.EBomParentEntity; import com.nflg.product.technology.pojo.entity.PaintCostConfigEntity; @@ -93,7 +94,7 @@ public class BomCostCalculateService { .filter(d -> StrUtil.equals(d.getParentMaterialNo(), dto.getMaterialNo())) .collect(Collectors.toList()); if (StrUtil.isBlank(cdata)) { - Map workingHours = processRouteTaskProcessesService.getWorkingHour(dto.getMaterialNo()); + List workingHours = processRouteTaskProcessesService.getWorkingHour(dto.getMaterialNo()); EBomCostCacheDTO cdto = new EBomCostCacheDTO(); cdto.setMaterialNo(dto.getMaterialNo()); cdto.setCategoryCode(dto.getMaterialCategoryCode()); @@ -171,7 +172,7 @@ public class BomCostCalculateService { } } - private List calculateProductionCosts(EBomDTO d, BomCostCalculateConfig config, Map workHours) { + private List calculateProductionCosts(EBomDTO d, BomCostCalculateConfig config, List workHours) { List productionCosts = new ArrayList<>(); BigDecimal hourlyWages; BigDecimal benefit; @@ -210,7 +211,7 @@ public class BomCostCalculateService { } } - private BigDecimal calculateWorkshopOfficeExpenses(EBomDTO dto, BomCostCalculateConfig config, Map workHours) { + private BigDecimal calculateWorkshopOfficeExpenses(EBomDTO dto, BomCostCalculateConfig config, List workHours) { BigDecimal cost = BigDecimal.ZERO; for (VirtualWorkingItemVO vw : config.getVirtualWorkings()) { cost = cost.add(vw.getWorkshopOfficeFee().multiply(getGsForWorkingType(dto, workHours, vw))); @@ -218,7 +219,7 @@ public class BomCostCalculateService { return cost; } - private BigDecimal calculateAuxiliaryDepartmentExpenses(EBomDTO dto, BomCostCalculateConfig config, Map workHours) { + private BigDecimal calculateAuxiliaryDepartmentExpenses(EBomDTO dto, BomCostCalculateConfig config, List workHours) { BigDecimal cost = BigDecimal.ZERO; for (VirtualWorkingItemVO vw : config.getVirtualWorkings()) { cost = cost.add(vw.getAssistantFee().multiply(getGsForWorkingType(dto, workHours, vw))); @@ -226,7 +227,7 @@ public class BomCostCalculateService { return cost; } - private BigDecimal calculateAuxiliaryDepartmentLaborCost(EBomDTO dto, BomCostCalculateConfig config, Map workHours) { + private BigDecimal calculateAuxiliaryDepartmentLaborCost(EBomDTO dto, BomCostCalculateConfig config, List workHours) { BigDecimal cost = BigDecimal.ZERO; for (VirtualWorkingItemVO vw : config.getVirtualWorkings()) { cost = cost.add(vw.getAssistantLaborFee().multiply(getGsForWorkingType(dto, workHours, vw))); @@ -234,7 +235,7 @@ public class BomCostCalculateService { return cost; } - private BigDecimal calculateWorkshopManagementLaborCost(EBomDTO dto, BomCostCalculateConfig config, Map workHours) { + private BigDecimal calculateWorkshopManagementLaborCost(EBomDTO dto, BomCostCalculateConfig config, List workHours) { BigDecimal cost = BigDecimal.ZERO; for (VirtualWorkingItemVO vw : config.getVirtualWorkings()) { cost = cost.add(vw.getWorkshopLaborFee().multiply(getGsForWorkingType(dto, workHours, vw))); @@ -242,7 +243,7 @@ public class BomCostCalculateService { return cost; } - private BigDecimal calculateDepreciationCost(EBomDTO dto, BomCostCalculateConfig config, Map workHours) { + private BigDecimal calculateDepreciationCost(EBomDTO dto, BomCostCalculateConfig config, List workHours) { BigDecimal cost = BigDecimal.ZERO; for (VirtualWorkingItemVO vw : config.getVirtualWorkings()) { cost = cost.add(vw.getEquipmentDepreciationFee().multiply(getGsForWorkingType(dto, workHours, vw))); @@ -250,7 +251,7 @@ public class BomCostCalculateService { return cost; } - private BigDecimal calculateHydropowerCost(EBomDTO dto, BomCostCalculateConfig config, Map workHours) { + private BigDecimal calculateHydropowerCost(EBomDTO dto, BomCostCalculateConfig config, List workHours) { BigDecimal cost = BigDecimal.ZERO; for (VirtualWorkingItemVO vw : config.getVirtualWorkings()) { cost = cost.add(vw.getConsumablesFee().multiply(getGsForWorkingType(dto, workHours, vw))); @@ -258,19 +259,24 @@ public class BomCostCalculateService { return cost; } - private BigDecimal getGsForWorkingType(EBomDTO dto, Map workHours, VirtualWorkingItemVO vw) { - return workHours.getOrDefault(dto.getMaterialNo() + '-' + vw.getWorkingTypeName(), BigDecimal.ZERO); + private BigDecimal getGsForWorkingType(EBomDTO dto, List workHours, VirtualWorkingItemVO vw) { + String key = dto.getMaterialNo() + '-' + StrUtil.trim(vw.getWorkingTypeName()); + return workHours.stream() + .filter(wh -> wh.getMaterialWork().equals(key)) + .findFirst() + .orElse(new WorkingHourDTO()) + .getWorkHours(); } - private BigDecimal calculateWelfareExpenses(EBomDTO dto, BomCostCalculateConfig config, Map workHours) { + private BigDecimal calculateWelfareExpenses(EBomDTO dto, BomCostCalculateConfig config, List workHours) { return getTGS(dto, config, workHours).multiply(Optional.ofNullable(config.getManday().getBenefit()).orElse(BigDecimal.ZERO)); } - private BigDecimal calculatePieceRateSalary(EBomDTO dto, BomCostCalculateConfig config, Map workHours) { + private BigDecimal calculatePieceRateSalary(EBomDTO dto, BomCostCalculateConfig config, List workHours) { return getTGS(dto, config, workHours).multiply(Optional.ofNullable(config.getManday().getHourlyWages()).orElse(BigDecimal.ZERO)); } - private BigDecimal getTGS(EBomDTO dto, BomCostCalculateConfig config, Map workHours) { + private BigDecimal getTGS(EBomDTO dto, BomCostCalculateConfig config, List workHours) { BigDecimal gs = BigDecimal.ZERO; for (VirtualWorkingItemVO vw : config.getVirtualWorkings()) { gs = gs.add(getGsForWorkingType(dto, workHours, vw)); diff --git a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessRouteTaskProcessesService.java b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessRouteTaskProcessesService.java index 48d3a080..7f0d6fdb 100644 --- a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessRouteTaskProcessesService.java +++ b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessRouteTaskProcessesService.java @@ -2,14 +2,13 @@ package com.nflg.product.technology.service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.product.technology.mapper.master.ProcessRouteTaskProcessesMapper; +import com.nflg.product.technology.pojo.dto.WorkingHourDTO; import com.nflg.product.technology.pojo.entity.ProcessRouteTaskProcessesEntity; import org.springframework.stereotype.Service; -import java.math.BigDecimal; -import java.util.HashMap; -import java.util.Map; +import java.util.Collections; +import java.util.List; import java.util.Optional; -import java.util.Set; /** *

@@ -22,11 +21,7 @@ import java.util.Set; @Service public class ProcessRouteTaskProcessesService extends ServiceImpl { - public Map getWorkingHours(Set materialNos) { - return Optional.ofNullable(this.baseMapper.getWorkingHours(materialNos)).orElse(new HashMap<>()); - } - - public Map getWorkingHour(String materialNo) { - return Optional.ofNullable(this.baseMapper.getWorkingHour(materialNo)).orElse(new HashMap<>()); + public List getWorkingHour(String materialNo) { + return Optional.ofNullable(this.baseMapper.getWorkingHour(materialNo)).orElse(Collections.emptyList()); } } diff --git a/nflg_project_dev/nflg-technology/src/main/resources/bootstrap-dev.yaml b/nflg_project_dev/nflg-technology/src/main/resources/bootstrap-dev.yaml index 5d58a6b2..4dc1edd1 100644 --- a/nflg_project_dev/nflg-technology/src/main/resources/bootstrap-dev.yaml +++ b/nflg_project_dev/nflg-technology/src/main/resources/bootstrap-dev.yaml @@ -2,7 +2,7 @@ nacos: server-addr: 192.168.0.194:8848 spring: redis: - database: 2 + database: 3 host: 192.168.0.194 password: port: 6379 @@ -11,8 +11,8 @@ spring: lettuce: pool: max-wait: -1ms - max-active: 8 - max-idle: 8 + max-active: 100 + max-idle: 100 min-idle: 0 logging: config: classpath:logback-sit.xml \ No newline at end of file diff --git a/nflg_project_dev/nflg-technology/src/main/resources/mapper/master/ProcessRouteTaskProcessesMapper.xml b/nflg_project_dev/nflg-technology/src/main/resources/mapper/master/ProcessRouteTaskProcessesMapper.xml index 4c230766..d9414d3c 100644 --- a/nflg_project_dev/nflg-technology/src/main/resources/mapper/master/ProcessRouteTaskProcessesMapper.xml +++ b/nflg_project_dev/nflg-technology/src/main/resources/mapper/master/ProcessRouteTaskProcessesMapper.xml @@ -2,24 +2,7 @@ - - SELECT CONCAT_WS('-', rt.material_no, t.`name`) AS 'material_work', SUM(IFNULL(r.two_work_hours, 0)) work_hours FROM t_technology_working_type t