diff --git a/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/ProcessProcessingTypeEnum.java b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/ProcessProcessingTypeEnum.java index 2f2ea99a7..3e9c5a7d5 100644 --- a/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/ProcessProcessingTypeEnum.java +++ b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/ProcessProcessingTypeEnum.java @@ -8,7 +8,7 @@ import lombok.Getter; @Getter public enum ProcessProcessingTypeEnum { - + CUTTINGMATERIALS(1,"开料"), COMPONENTPROCESSING(7,"组件加工"), PLATE(8,"板材加工"); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/util/search/SearchUtil.java b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/util/string/SearchUtil.java similarity index 94% rename from cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/util/search/SearchUtil.java rename to cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/util/string/SearchUtil.java index 2730825d8..3e7b945ba 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/util/search/SearchUtil.java +++ b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/util/string/SearchUtil.java @@ -1,6 +1,4 @@ -package com.cf.imes.module.manage.util.search; - - +package com.cf.imes.framework.common.util.string; /** diff --git a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/plan/OrderPlanApi.java b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/plan/OrderPlanApi.java new file mode 100644 index 000000000..743ec360b --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/api/plan/OrderPlanApi.java @@ -0,0 +1,25 @@ +package com.cf.imes.module.executor.api.plan; + + +import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.module.executor.enums.ApiConstants; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@FeignClient(name = ApiConstants.NAME) // TODO 晨丰:fallbackFactory = +@Tag(name = "RPC 服务 - 多组织") +public interface OrderPlanApi { + + String PREFIX = ApiConstants.PREFIX + "/plan"; + + + @GetMapping(PREFIX +"/apiGetOrderPlan") + @Operation(summary = "查询当前机台对应的排单是否有使用") + @Parameter(name = "machineId", description = "机台ID", required = true, example = "1024") + CommonResult getOrderPlan(@RequestParam("machineId") Long id); + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/plan/OrderPlanApiImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/plan/OrderPlanApiImpl.java new file mode 100644 index 000000000..92dc3c9b8 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/plan/OrderPlanApiImpl.java @@ -0,0 +1,39 @@ +package com.cf.imes.module.executor.api.plan; + + +import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO; +import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +import java.util.List; + +import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; + +@RestController // 提供 RESTful API 接口,给 Feign 调用 +@Validated +public class OrderPlanApiImpl implements OrderPlanApi{ + + + @Resource + private PlanMapper planMapper; + + + @Override + public CommonResult getOrderPlan(Long machineId) { + + List planDOS = planMapper.selectByMachineId(machineId, getUserOrganId()); + + if(!planDOS.isEmpty()){ + + return CommonResult.success(true); + } + + return CommonResult.success(false); + + } + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/ProcessStepAreaIds.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/ProcessStepAreaIds.java new file mode 100644 index 000000000..53b4676f5 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/ProcessStepAreaIds.java @@ -0,0 +1,20 @@ +package com.cf.imes.module.executor.controller.admin.plan.bo; + + +import lombok.Builder; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Builder +public class ProcessStepAreaIds { + + + // 生产单工序步骤ID + private Long processStepId; + + // 生产单工序步骤对应的板件面积 + private BigDecimal area; + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/ProcessStepSalaryIds.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/ProcessStepSalaryIds.java new file mode 100644 index 000000000..7bd81845f --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/ProcessStepSalaryIds.java @@ -0,0 +1,20 @@ +package com.cf.imes.module.executor.controller.admin.plan.bo; + + +import lombok.Builder; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Builder +public class ProcessStepSalaryIds { + + + // 生产单工序步骤ID + private Long processStepId; + + // 生产单工序步骤工资金额 + private BigDecimal salary; + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plan/PlanMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plan/PlanMapper.java index 6883a02e4..e3419e69d 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plan/PlanMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plan/PlanMapper.java @@ -77,6 +77,14 @@ public interface PlanMapper extends BaseMapperX { PlanDO selectPlanByOrderIds(@Param("ids") List ids); + + default List selectByMachineId(Long machineId,Long organId) { + return selectList( new LambdaQueryWrapperX() + .eq(PlanDO::getDeleted,false) + .eq(PlanDO::getOrganId,organId) + .eq(PlanDO::getMachineId,machineId)); + } + // // default PlanDO selectByOrderId(Long orderId) { // return selectOne(new MPJLambdaWrapperX() diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/processStep/ProcessStepMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/processStep/ProcessStepMapper.java index e2a00feb7..a1d77797e 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/processStep/ProcessStepMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/processStep/ProcessStepMapper.java @@ -1,15 +1,18 @@ package com.cf.imes.module.executor.dal.mysql.processStep; +import java.math.BigDecimal; import java.util.*; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; -import com.cf.imes.module.executor.dal.dataobject.process.OrderProcessDO; +import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepAreaIds; +import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepSalaryIds; import com.cf.imes.module.executor.dal.dataobject.processStep.ProcessStepDO; import org.apache.ibatis.annotations.Mapper; import com.cf.imes.module.executor.controller.admin.processStep.vo.*; +import org.apache.ibatis.annotations.Param; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; @@ -53,4 +56,19 @@ public interface ProcessStepMapper extends BaseMapperX { wrapper.eq(ProcessStepDO::getDeleted, 1); return update(wrapper); } + + + + default List selectOrderList(List orderIds,Long organId) { + return selectList(new LambdaQueryWrapperX() + .eq(ProcessStepDO::getOrganId, organId) + .inIfPresent(ProcessStepDO::getOrderId, orderIds)); + + } + + + List calculateSalary(@Param("processStepAreaIds") List processStepAreaIds, @Param("organId") Long organId); + + + void updateStatus(@Param("processStepSalaryIds") List processStepSalaryIds,@Param("nickname") String nickname); } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/processStepItem/ProcessStepItemMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/processStepItem/ProcessStepItemMapper.java index 3921e8bea..041b6ee8d 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/processStepItem/ProcessStepItemMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/processStepItem/ProcessStepItemMapper.java @@ -2,9 +2,7 @@ package com.cf.imes.module.executor.dal.mysql.processStepItem; import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; -import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; -import com.cf.imes.module.executor.controller.admin.plate.vo.BodyPlateDetailVO; -import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO; +import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepAreaIds; import com.cf.imes.module.executor.dal.dataobject.processStepItem.OrderProcessStepItemDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -15,4 +13,9 @@ import java.util.List; public interface ProcessStepItemMapper extends BaseMapperX { + List selectAreaByProcessStepId(@Param("processStepId") List processStepId, @Param("organId") Long organId); + + + void updateStatus(@Param("processStepIds") List processStepIds); + } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java index 520d0cae3..bed2ea5be 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java @@ -4,6 +4,7 @@ import com.cf.imes.module.infra.api.file.FileApi; import com.cf.imes.module.system.api.application.ApplicationApi; import com.cf.imes.module.system.api.dataSource.DataSourceApi; import com.cf.imes.module.system.api.machine.MachineApi; +import com.cf.imes.module.system.api.process.ProcessApi; import com.cf.imes.module.system.api.process.ProcessGroupApi; import com.cf.imes.module.system.api.user.AdminUserApi; import com.cf.imes.module.system.api.dict.DictDataApi; @@ -15,6 +16,6 @@ import org.springframework.context.annotation.Configuration; */ @Configuration(proxyBeanMethods = false) @EnableFeignClients(clients = {AdminUserApi.class, MachineApi.class, DictDataApi.class, - FileApi.class, ProcessGroupApi.class, FileApi.class, DataSourceApi.class, ApplicationApi.class}) + FileApi.class, ProcessGroupApi.class, FileApi.class, DataSourceApi.class, ApplicationApi.class, ProcessApi.class}) public class RpcConfiguration { } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java index 84900c11c..627980885 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java @@ -9,8 +9,7 @@ import co.elastic.clients.elasticsearch.ElasticsearchClient; import co.elastic.clients.elasticsearch._types.FieldValue; import co.elastic.clients.elasticsearch.core.*; import co.elastic.clients.elasticsearch.core.search.Hit; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.alibaba.fastjson.JSON; import com.cf.imes.framework.common.enums.PlanStatusEnum; import com.cf.imes.framework.common.enums.RemainTypeEnum; import com.cf.imes.framework.common.exception.ServiceException; @@ -19,10 +18,10 @@ import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.framework.es.core.service.ESDocumentService; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX; -import com.cf.imes.framework.mybatis.core.query.QueryWrapperX; -import com.cf.imes.framework.organ.core.context.OrganContextHolder; -import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; +import com.cf.imes.framework.security.core.LoginUser; import com.cf.imes.module.executor.controller.admin.plan.bo.OrderSource; +import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepAreaIds; +import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepSalaryIds; import com.cf.imes.module.executor.controller.admin.plan.dto.Material; import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.OptimizeRemainPlate; import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO; @@ -38,6 +37,7 @@ import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO; import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO; import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO; import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO; +import com.cf.imes.module.executor.dal.dataobject.processStep.ProcessStepDO; import com.cf.imes.module.executor.dal.dataobject.remainplaten.OutlineDTO; import com.cf.imes.module.executor.dal.dataobject.remainplaten.PointDTO; import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO; @@ -47,6 +47,8 @@ import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper; import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper; import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper; import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper; +import com.cf.imes.module.executor.dal.mysql.processStep.ProcessStepMapper; +import com.cf.imes.module.executor.dal.mysql.processStepItem.ProcessStepItemMapper; import com.cf.imes.module.executor.dal.mysql.remainplaten.RemainPlateMapper; import com.cf.imes.module.executor.enums.ErrorCodeConstants; import com.cf.imes.module.executor.util.RandomUtils; @@ -55,6 +57,8 @@ import com.cf.imes.module.infra.api.file.FileApi; import com.cf.imes.module.infra.api.file.dto.FileCreateReqDTO; import com.cf.imes.module.system.api.dataSource.DataSourceApi; import com.cf.imes.module.system.api.machine.MachineApi; +import com.cf.imes.module.system.api.process.ProcessApi; +import com.cf.imes.module.system.api.process.dto.ProcessDTO; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -62,13 +66,14 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR; import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.UNKNOWN; import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.cf.imes.framework.organ.core.context.OrganContextHolder.getOrganId; +import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_NOT_EXISTS; import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLAN_NOT_EXISTS; @@ -110,6 +115,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { @Resource private MachineApi machineApi; + @Resource + private ProcessApi processApi; + @Resource private ESDocumentService esDocumentService; @@ -119,6 +127,13 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { @Resource private OrderPartsMapper orderPartsMapper; + @Resource + private ProcessStepMapper processStepMapper; + + @Resource + private ProcessStepItemMapper processStepItemMapper; + + @Override public List getPlateListByPlanId(Long planId) { return planMapper.selectPlateListByPlanId(planId,getUserOrganId()); @@ -197,6 +212,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { } @Override + @Transactional(rollbackFor = Exception.class) public Boolean endCutting(Long planId) { PlanDO planDO = planMapper.selectById(planId); if (Objects.isNull(planDO)) { @@ -205,11 +221,62 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { planMapper.updateById(PlanDO.builder() .id(planId) .status(PlanStatusEnum.OPENEDMATERIAL.getStatus()) + .produceTime(LocalDateTime.now()) .build()); + + LoginUser loginUser = getLoginUser(); + List userProcess = processApi.getUserProcess(loginUser.getId()); + + if(!userProcess.isEmpty()) { + + List processStepIds = new ArrayList<>(); + + List orderIds = JSON.parseArray(planDO.getOrderNos()).toJavaList(Long.class); + + List processStepDOS = processStepMapper.selectOrderList(orderIds, getUserOrganId()); + + + for (ProcessDTO process : userProcess) { + processStepIds.addAll(processStepDOS.stream().filter(f -> Objects.equals(f.getProcessinfoId(), process.getId())) + .map(ProcessStepDO::getId).toList()); + } + + + if(!processStepIds.isEmpty()) { + + List processStepSalaryIds = calculateSalary(processStepIds); + + // 修改生产明细表和步骤表的工序状态 + processStepMapper.updateStatus(processStepSalaryIds, loginUser.getNickname()); + + processStepItemMapper.updateStatus(processStepIds); + + } + + } + + return Boolean.TRUE; } + + + // 计算工资金额 + public List calculateSalary(List processStepId){ + + // 查询当前工序对应的板材的面积 + List processStepAreaIds = processStepItemMapper.selectAreaByProcessStepId(processStepId,getUserOrganId()); + + + // 计算当前工序的工资金额 + List salary = processStepMapper.calculateSalary(processStepAreaIds,getUserOrganId()); + + return salary; + + } + + @Override public OptimizeParamResVO getOptimizeParam(Long planId) { //小板列表 diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java index ce687de8f..b8a12bd5c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java @@ -58,6 +58,7 @@ import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper; import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; import static com.cf.imes.module.executor.enums.ErrorCodeConstants.*; +import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator; /** * 生产单开料排单 Service 实现类 @@ -347,18 +348,18 @@ public class PlanServiceImpl implements PlanService { .betweenIfPresent("op.width", new BigDecimal[]{pageReqVO.getWidthMinRang(), pageReqVO.getWidthMaxRang()}) .groupBy("a.id", " a.order_date", "a.delivery_date", "a.customer", "a.address", "a.custom_order_no","a.create_time","a.update_time") .orderByDesc("a.update_time"); - List filterTypes = new ArrayList<>(); + String filterTypes = ""; if (Objects.nonNull(pageReqVO.getHoleThrough()) && pageReqVO.getHoleThrough()) { - filterTypes.add(PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType()); + filterTypes += PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType().toString(); } if (Objects.nonNull(pageReqVO.getBurrow()) && pageReqVO.getBurrow()) { - filterTypes.add(PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType()); + filterTypes += PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType().toString(); } if (Objects.nonNull(pageReqVO.getTwoDimensionalToolPath()) && pageReqVO.getTwoDimensionalToolPath()) { - filterTypes.add(PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType()); + filterTypes += PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType().toString(); } - queryWrapperX.inIfPresent("op.filter_type", filterTypes); + queryWrapperX.likeIfPresent("op.filter_type", insertSeparator(filterTypes)); IPage orderRespVOCopies = orderMapper.selectOrderPage(page, queryWrapperX); @@ -425,18 +426,18 @@ public class PlanServiceImpl implements PlanService { .eqIfPresent("op.is_door", pageReqVO.getIsDoor()) .betweenIfPresent("op.height", new BigDecimal[]{pageReqVO.getLongMinRang(), pageReqVO.getLongMaxRang()}) .betweenIfPresent("op.width", new BigDecimal[]{pageReqVO.getWidthMinRang(), pageReqVO.getWidthMaxRang()}); - List filterTypes = new ArrayList<>(); + String filterTypes = ""; if (Objects.nonNull(pageReqVO.getHoleThrough()) && pageReqVO.getHoleThrough()) { - filterTypes.add(PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType()); + filterTypes += PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType().toString(); } if (Objects.nonNull(pageReqVO.getBurrow()) && pageReqVO.getBurrow()) { - filterTypes.add(PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType()); + filterTypes += PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType().toString(); } if (Objects.nonNull(pageReqVO.getTwoDimensionalToolPath()) && pageReqVO.getTwoDimensionalToolPath()) { - filterTypes.add(PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType()); + filterTypes += PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType().toString(); } - queryWrapperX.inIfPresent("op.filter_type", filterTypes); + queryWrapperX.likeIfPresent("op.filter_type", insertSeparator(filterTypes)); List orderIds = orderMapper.selectOrderIds(queryWrapperX); @@ -539,15 +540,16 @@ public class PlanServiceImpl implements PlanService { validatePlanExists(planId); } QueryWrapperX queryWrapperX = new QueryWrapperX<>(); - List filterTypes = new ArrayList<>(); + + String filterTypes = ""; if (Objects.nonNull(vo.getHoleThrough()) && vo.getHoleThrough()) { - filterTypes.add(PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType()); + filterTypes += PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType().toString(); } if (Objects.nonNull(vo.getBurrow()) && vo.getBurrow()) { - filterTypes.add(PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType()); + filterTypes += PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType().toString(); } if (Objects.nonNull(vo.getTwoDimensionalToolPath()) && vo.getTwoDimensionalToolPath()) { - filterTypes.add(PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType()); + filterTypes += PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType().toString(); } queryWrapperX.in("p.plan_id", vo.getPlanIds()) @@ -558,7 +560,7 @@ public class PlanServiceImpl implements PlanService { .eqIfPresent("a.is_sculpt", vo.getSculpt()) .betweenIfPresent("a.width", new BigDecimal[]{vo.getWidthMinRang(), vo.getWidthMaxRang()}) .betweenIfPresent("a.height", new BigDecimal[]{vo.getLongMinRang(), vo.getLongMaxRang()}) - .inIfPresent("a.filter_type", filterTypes) + .likeIfPresent("a.filter_type", insertSeparator(filterTypes)) .betweenIfPresent("f.delivery_date", new Date[]{vo.getBeginDate(), vo.getEndDate()}) .orderByDesc("a.order_id") .orderByDesc("a.name"); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/processStep/ProcessStepMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/processStep/ProcessStepMapper.xml new file mode 100644 index 000000000..fb21bf479 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/processStep/ProcessStepMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + update order_process_step + set status = true, + finish_time = now(), + manager = #{nickname}, + salary_amount = + + (#{processStepSalaryIds.salary}) + + + where id in + + (#{processStepSalaryIds.processStepId}) + + + + + + + + + \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/processStepItem/ProcessStepItemMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/processStepItem/ProcessStepItemMapper.xml new file mode 100644 index 000000000..f5e46fadd --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/processStepItem/ProcessStepItemMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + update order_process_step_item + SET status = TRUE + + WHERE process_step_id in + + + #{processStepIds} + + + + + + + + + + \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java index 183080e19..fffafb1fd 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java @@ -85,8 +85,8 @@ public class PackController { @Operation(summary = "查看生产订单对应的包裹信息") @PreAuthorize("@ss.hasPermission('manage:pack:query')") public CommonResult> getOrderPack(@Valid PackageDetailsReqVO reqVO) { - PageResult orderPack = packService.getOrderPack(reqVO); - return success(BeanUtils.toBean(orderPack,OrderPackageVO.class)); + + return success(packService.getOrderPack(reqVO)); } @@ -122,9 +122,9 @@ public class PackController { @GetMapping("/getParts") - @Operation(summary = "查看配件列表分页") + @Operation(summary = "查看配件列表") @PreAuthorize("@ss.hasPermission('manage:pack-parts:query')") - public CommonResult> getParts(@Valid OrderPartsReqVO reqVO) { + public CommonResult> getParts(@Valid OrderPartsReqVO reqVO) { return success(packService.getPartsList(reqVO)); @@ -216,9 +216,9 @@ public class PackController { - @PostMapping("/insertParts") - @Operation(summary = "新增配件包裹") - @PreAuthorize("@ss.hasPermission('manage:pack:insert')") +// @PostMapping("/insertParts") +// @Operation(summary = "新增配件包裹") +// @PreAuthorize("@ss.hasPermission('manage:pack:insert')") public CommonResult addNewPartsPack (@Valid @RequestBody OrderPackReqVO reqVO) { return success(packService.addNewPartsPack(reqVO)); @@ -250,7 +250,7 @@ public class PackController { @DeleteMapping("/deleteOtherParts") - @Operation(summary = "删除配件包裹中的配件(删除某一个)") + @Operation(summary = "删除包裹中的外部配件") @PreAuthorize("@ss.hasPermission('manage:pack:delete')") public CommonResult deleteOtherParts (@Valid @RequestBody DeleteOtherPartsReqVO reqVO) { diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPartsReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPartsReqVO.java index a3ceaa983..678529d5e 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPartsReqVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/OrderPartsReqVO.java @@ -23,7 +23,7 @@ public class OrderPartsReqVO extends PageParam { @Schema(description = "更新配件时传-包裹ID") private Long packId; - @Schema(description = "更新配件时传-新增的配件ID") + @Schema(description = "新增的配件ID") private List addPartsIdList; @Schema(description = "更新配件时传-删除的配件ID") diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PlateDetailsRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PlateDetailsRespVO.java index 09249debb..9f9c244bb 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PlateDetailsRespVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PlateDetailsRespVO.java @@ -26,6 +26,9 @@ public class PlateDetailsRespVO { @Schema(description = "柜体ID", requiredMode = Schema.RequiredMode.REQUIRED) private String bodyId; + @Schema(description = "生产单ID", requiredMode = Schema.RequiredMode.REQUIRED) + private String orderId; + @Schema(description = "板材ID", requiredMode = Schema.RequiredMode.REQUIRED) private String plateId; diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/ProcessStepStatus.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/ProcessStepStatus.java index a5344a03b..0ac22ef12 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/ProcessStepStatus.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/process/vo/ProcessStepStatus.java @@ -18,6 +18,9 @@ public class ProcessStepStatus { // 工序明细表的状态 private Boolean processStepItemStatus; + // 工序ID + private Long processId; + // 工序步骤表的类型 private Integer type; diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/OrderPackageVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/OrderPackageVO.java index bcad5df25..535bcbed0 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/OrderPackageVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/OrderPackageVO.java @@ -18,6 +18,18 @@ public class OrderPackageVO { @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED) private Long orderId; + @Schema(description = "自定义单号") + private String customOrderNo; + + @Schema(description = "客户") + private String customer; + + @Schema(description = "客户地址") + private String address; + + @Schema(description = "经销商") + private String dealer; + @Schema(description = "包裹编号", requiredMode = Schema.RequiredMode.REQUIRED) private String packageNo; @@ -33,8 +45,11 @@ public class OrderPackageVO { @Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED) private String creator; - @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) - private String remark; + @Schema(description = "包裹备注", requiredMode = Schema.RequiredMode.REQUIRED) + private String packRemark; + + @Schema(description = "生产单备注", requiredMode = Schema.RequiredMode.REQUIRED) + private String orderRemark; @Schema(description = "出库人", requiredMode = Schema.RequiredMode.REQUIRED) private String updater; diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/PackageDetailsRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/PackageDetailsRespVO.java index 46488b4b4..d9837650d 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/PackageDetailsRespVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/query/vo/pack/PackageDetailsRespVO.java @@ -8,6 +8,10 @@ import lombok.Data; @Data public class PackageDetailsRespVO { + + @Schema(description = "生产单ID", requiredMode = Schema.RequiredMode.REQUIRED) + private String orderId; + @Schema(description = "房间名称-板材类型显示", requiredMode = Schema.RequiredMode.REQUIRED) private String roomName; diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java index 122440b7f..666fc5e6b 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java @@ -7,6 +7,7 @@ import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO; import com.cf.imes.module.manage.controller.admin.pack.vo.PackageDetailsReqVO; import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO; +import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO; import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -25,7 +26,7 @@ public interface OrderPackageMapper extends BaseMapperX { // } - IPage selectByOrderNo(@Param("page") IPage page,@Param("reqVO") PackageDetailsReqVO reqVO,@Param("organId") Long organId); + IPage selectByOrderNo(@Param("page") IPage page, @Param("reqVO") PackageDetailsReqVO reqVO, @Param("organId") Long organId); default OrderPackageDO selectByPackNo(String packNo,Long organId) { diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.java index b60fcd85a..6475c5e13 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.java @@ -22,7 +22,7 @@ public interface OrderPartsMapper extends BaseMapperX { IPage selectParts(@Param("page") IPage page, @Param("packageId") Long packageId, @Param("organId") Long organId); - IPage selectPartsList(@Param("page") IPage page, @Param("orderId") Long orderId , @Param("organId") Long organId); + List selectPartsList( @Param("orderId") Long orderId , @Param("organId") Long organId); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackService.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackService.java index 4fd34eb44..ecff41dc6 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackService.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackService.java @@ -3,6 +3,7 @@ package com.cf.imes.module.manage.service.pack; import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.module.manage.controller.admin.pack.vo.*; +import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO; import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleReqVO; import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO; @@ -16,7 +17,7 @@ public interface PackService { // 查看生产订单对应的包裹信息 - PageResult getOrderPack(PackageDetailsReqVO reqVO); + PageResult getOrderPack(PackageDetailsReqVO reqVO); @@ -34,7 +35,7 @@ public interface PackService { // 查看配件列表分页 - PageResult getPartsList(OrderPartsReqVO reqVO); + List getPartsList(OrderPartsReqVO reqVO); OrderPackRespVO updateParts(OrderPartsReqVO reqVO); @@ -71,7 +72,7 @@ public interface PackService { - // 删除配件包裹中的配件(删除某一个) + // 删除包裹中的外部配件 void deleteOtherParts(DeleteOtherPartsReqVO reqVO); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java index c6ff74db6..d1bc41099 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java @@ -11,6 +11,7 @@ import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.module.manage.controller.admin.pack.vo.*; import com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO; +import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO; import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleReqVO; import com.cf.imes.module.manage.dal.dataobject.pack.OrderBodyDO; import com.cf.imes.module.manage.dal.dataobject.process.OrderDO; @@ -38,8 +39,8 @@ import java.util.Objects; import java.util.stream.Collectors; import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; -import static com.cf.imes.module.manage.util.search.SearchUtil.insertSeparator; import static com.cf.imes.module.system.enums.ErrorCodeConstants.*; @Service @@ -139,11 +140,11 @@ public class PackServiceImpl implements PackService { // 查看生产订单对应的包裹信息 @Override - public PageResult getOrderPack(PackageDetailsReqVO reqVO) { + public PageResult getOrderPack(PackageDetailsReqVO reqVO) { - PageDTO page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize()); + PageDTO page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize()); - IPage orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page,reqVO, getUserOrganId()); + IPage orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page,reqVO, getUserOrganId()); if (CollectionUtil.isEmpty(orderPackageDOIPage.getRecords())) { @@ -165,18 +166,14 @@ public class PackServiceImpl implements PackService { // 查看配件列表分页 @Override - public PageResult getPartsList(OrderPartsReqVO reqVO) { + public List getPartsList(OrderPartsReqVO reqVO) { - PageDTO page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize()); +// PageDTO page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize()); - IPage orderPartsRespVOS = orderPartsMapper.selectPartsList(page,reqVO.getOrderId(),getUserOrganId()); - - if (CollectionUtil.isEmpty(orderPartsRespVOS.getRecords())) { - return new PageResult<>(); - } + List orderPartsRespVOS = orderPartsMapper.selectPartsList(reqVO.getOrderId(),getUserOrganId()); - return new PageResult<>(orderPartsRespVOS.getRecords(), orderPartsRespVOS.getTotal()); + return orderPartsRespVOS; } @@ -188,6 +185,24 @@ public class PackServiceImpl implements PackService { @Transactional(rollbackFor = Exception.class) public OrderPackRespVO updateParts(OrderPartsReqVO reqVO) { + + // 判断包裹ID是否为空,为空,走新增,不为空,走更新 + if(reqVO.getPackId()==null){ + + OrderPackageDO orderPackageDO = new OrderPackageDO(); + orderPackageDO.setOrderId(reqVO.getOrderId()); + orderPackageDO.setType(OrderPackageTypeEnum.PARTS.getType()); + orderPackageDO.setPackageNo(PackageNoUtil.randomPageNo()); + orderPackageDO.setStatus((OrderPackageStatusEnum.PACKAGED.getStatus())); + orderPackageMapper.insert(orderPackageDO); + // 生产单明细表新增包裹 ID + if(reqVO.getAddPartsIdList()!=null) { + orderItemMapper.insertPartsId( orderPackageDO.getId(),reqVO.getAddPartsIdList()); + } + return typeConversion(orderPackageDO); + } + + OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackId(reqVO.getPackId(), getUserOrganId()); List orderItemDOS = orderItemMapper.selectPackList(reqVO.getPackId(), getUserOrganId()); @@ -433,6 +448,13 @@ public class PackServiceImpl implements PackService { throw exception(THE_CURRENT_PACKAGE_TYPE_IS_INCORRECT); } + // 判断配件名称是否重复 + OrderPartsNDO orderPartsNDO = orderPartsMapper.selectOneParts(reqVO.getName(),getUserOrganId()); + + if (orderPartsNDO != null) { + throw exception(THE_ACCESSORY_NAME_CANNOT_BE_DUPLICATED); + } + // 配件表新增数据 OrderPartsNDO orderParts = BeanUtils.toBean(reqVO, OrderPartsNDO.class); // 因为是外部配件,所以配件类型的名称固定为 “ 外部配件” @@ -459,7 +481,7 @@ public class PackServiceImpl implements PackService { - // 删除配件包裹中的配件(删除某一个) + // 删除包裹中的外部配件 @Override @Transactional(rollbackFor = Exception.class) public void deleteOtherParts(DeleteOtherPartsReqVO reqVO) { diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java index afe3db11c..0609b8b70 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java @@ -34,9 +34,9 @@ import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; +import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; -import static com.cf.imes.module.manage.util.search.SearchUtil.insertSeparator; /** @@ -147,7 +147,7 @@ public class ProductionProcessServiceImpl implements ProductionProcessService { if(orderProcessStepItemNDOS.isEmpty()){ // 修改生产单工序步骤表的状态 - BigDecimal salary = calculateSalary(reqVo.getProcessStepId()); + BigDecimal salary = calculateSalary(reqVo.getProcessStepId(),processStepStatuses.getProcessId()); processStepMapper.updateStatusById(reqVo.getProcessStepId(),salary); @@ -181,7 +181,7 @@ public class ProductionProcessServiceImpl implements ProductionProcessService { } try { - BigDecimal salary = calculateSalary(reqVo.getProcessStepId()); + BigDecimal salary = calculateSalary(reqVo.getProcessStepId(),null); // 修改生产明细表和步骤表的工序状态 processStepMapper.updateStatus(reqVo.getProcessStepId(),nickname,salary); @@ -201,15 +201,16 @@ public class ProductionProcessServiceImpl implements ProductionProcessService { // 计算工资金额 - public BigDecimal calculateSalary(Long processStepId){ + public BigDecimal calculateSalary(Long processStepId,Long processId){ + BigDecimal pieceRate = BigDecimal.ZERO; // 查询当前工序对应的板材的面积 BigDecimal area = processStepItemMapper.selectAreaByProcessStepId(processStepId,getUserOrganId()); - - // 查询组件加工的工资 - BigDecimal pieceRate = processApi.getProcess(); - + if(processId != null){ + // 查询组件加工的工资 + pieceRate = processApi.getProcess(processId); + } // 计算当前工序的工资金额 BigDecimal salary = processStepMapper.calculateSalary(processStepId, area,pieceRate,getUserOrganId()); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml index 76ae09909..385405504 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml @@ -134,12 +134,28 @@