Merge branch 'main' of ssh://192.168.1.205:9922/cf_devdept2/cf_imes_server

This commit is contained in:
lym
2024-07-09 09:11:52 +08:00
52 changed files with 586 additions and 99 deletions
@@ -8,7 +8,7 @@ import lombok.Getter;
@Getter @Getter
public enum ProcessProcessingTypeEnum { public enum ProcessProcessingTypeEnum {
CUTTINGMATERIALS(1,"开料"),
COMPONENTPROCESSING(7,"组件加工"), COMPONENTPROCESSING(7,"组件加工"),
PLATE(8,"板材加工"); PLATE(8,"板材加工");
@@ -1,6 +1,4 @@
package com.cf.imes.module.manage.util.search; package com.cf.imes.framework.common.util.string;
/** /**
@@ -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<Boolean> getOrderPlan(@RequestParam("machineId") Long id);
}
@@ -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<Boolean> getOrderPlan(Long machineId) {
List<PlanDO> planDOS = planMapper.selectByMachineId(machineId, getUserOrganId());
if(!planDOS.isEmpty()){
return CommonResult.success(true);
}
return CommonResult.success(false);
}
}
@@ -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;
}
@@ -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;
}
@@ -77,6 +77,14 @@ public interface PlanMapper extends BaseMapperX<PlanDO> {
PlanDO selectPlanByOrderIds(@Param("ids") List<Long> ids); PlanDO selectPlanByOrderIds(@Param("ids") List<Long> ids);
default List<PlanDO> selectByMachineId(Long machineId,Long organId) {
return selectList( new LambdaQueryWrapperX<PlanDO>()
.eq(PlanDO::getDeleted,false)
.eq(PlanDO::getOrganId,organId)
.eq(PlanDO::getMachineId,machineId));
}
// //
// default PlanDO selectByOrderId(Long orderId) { // default PlanDO selectByOrderId(Long orderId) {
// return selectOne(new MPJLambdaWrapperX<PlanDO>() // return selectOne(new MPJLambdaWrapperX<PlanDO>()
@@ -1,15 +1,18 @@
package com.cf.imes.module.executor.dal.mysql.processStep; package com.cf.imes.module.executor.dal.mysql.processStep;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; 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 com.cf.imes.module.executor.dal.dataobject.processStep.ProcessStepDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import com.cf.imes.module.executor.controller.admin.processStep.vo.*; 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; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
@@ -53,4 +56,19 @@ public interface ProcessStepMapper extends BaseMapperX<ProcessStepDO> {
wrapper.eq(ProcessStepDO::getDeleted, 1); wrapper.eq(ProcessStepDO::getDeleted, 1);
return update(wrapper); return update(wrapper);
} }
default List<ProcessStepDO> selectOrderList(List<Long> orderIds,Long organId) {
return selectList(new LambdaQueryWrapperX<ProcessStepDO>()
.eq(ProcessStepDO::getOrganId, organId)
.inIfPresent(ProcessStepDO::getOrderId, orderIds));
}
List<ProcessStepSalaryIds> calculateSalary(@Param("processStepAreaIds") List<ProcessStepAreaIds> processStepAreaIds, @Param("organId") Long organId);
void updateStatus(@Param("processStepSalaryIds") List<ProcessStepSalaryIds> processStepSalaryIds,@Param("nickname") String nickname);
} }
@@ -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.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepAreaIds;
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.dal.dataobject.processStepItem.OrderProcessStepItemDO; import com.cf.imes.module.executor.dal.dataobject.processStepItem.OrderProcessStepItemDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@@ -15,4 +13,9 @@ import java.util.List;
public interface ProcessStepItemMapper extends BaseMapperX<OrderProcessStepItemDO> { public interface ProcessStepItemMapper extends BaseMapperX<OrderProcessStepItemDO> {
List<ProcessStepAreaIds> selectAreaByProcessStepId(@Param("processStepId") List<Long> processStepId, @Param("organId") Long organId);
void updateStatus(@Param("processStepIds") List<Long> processStepIds);
} }
@@ -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.application.ApplicationApi;
import com.cf.imes.module.system.api.dataSource.DataSourceApi; 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.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.process.ProcessGroupApi;
import com.cf.imes.module.system.api.user.AdminUserApi; import com.cf.imes.module.system.api.user.AdminUserApi;
import com.cf.imes.module.system.api.dict.DictDataApi; import com.cf.imes.module.system.api.dict.DictDataApi;
@@ -15,6 +16,6 @@ import org.springframework.context.annotation.Configuration;
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@EnableFeignClients(clients = {AdminUserApi.class, MachineApi.class, DictDataApi.class, @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 { public class RpcConfiguration {
} }
@@ -9,8 +9,7 @@ import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.elasticsearch._types.FieldValue; import co.elastic.clients.elasticsearch._types.FieldValue;
import co.elastic.clients.elasticsearch.core.*; import co.elastic.clients.elasticsearch.core.*;
import co.elastic.clients.elasticsearch.core.search.Hit; import co.elastic.clients.elasticsearch.core.search.Hit;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.cf.imes.framework.common.enums.PlanStatusEnum; import com.cf.imes.framework.common.enums.PlanStatusEnum;
import com.cf.imes.framework.common.enums.RemainTypeEnum; import com.cf.imes.framework.common.enums.RemainTypeEnum;
import com.cf.imes.framework.common.exception.ServiceException; 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.es.core.service.ESDocumentService;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; 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.MPJLambdaWrapperX;
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX; import com.cf.imes.framework.security.core.LoginUser;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderSource; 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.dto.Material;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.OptimizeRemainPlate; import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.OptimizeRemainPlate;
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO; 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.plan.PlanDO;
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO; 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.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.OutlineDTO;
import com.cf.imes.module.executor.dal.dataobject.remainplaten.PointDTO; import com.cf.imes.module.executor.dal.dataobject.remainplaten.PointDTO;
import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO; 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.orderParts.OrderPartsMapper;
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper; 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.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.dal.mysql.remainplaten.RemainPlateMapper;
import com.cf.imes.module.executor.enums.ErrorCodeConstants; import com.cf.imes.module.executor.enums.ErrorCodeConstants;
import com.cf.imes.module.executor.util.RandomUtils; 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.infra.api.file.dto.FileCreateReqDTO;
import com.cf.imes.module.system.api.dataSource.DataSourceApi; 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.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 com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -62,13 +66,14 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; 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.INTERNAL_SERVER_ERROR;
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.UNKNOWN; 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.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.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.ORDER_NOT_EXISTS;
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLAN_NOT_EXISTS; import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLAN_NOT_EXISTS;
@@ -110,6 +115,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
@Resource @Resource
private MachineApi machineApi; private MachineApi machineApi;
@Resource
private ProcessApi processApi;
@Resource @Resource
private ESDocumentService esDocumentService; private ESDocumentService esDocumentService;
@@ -119,6 +127,13 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
@Resource @Resource
private OrderPartsMapper orderPartsMapper; private OrderPartsMapper orderPartsMapper;
@Resource
private ProcessStepMapper processStepMapper;
@Resource
private ProcessStepItemMapper processStepItemMapper;
@Override @Override
public List<PlateOptimize> getPlateListByPlanId(Long planId) { public List<PlateOptimize> getPlateListByPlanId(Long planId) {
return planMapper.selectPlateListByPlanId(planId,getUserOrganId()); return planMapper.selectPlateListByPlanId(planId,getUserOrganId());
@@ -197,6 +212,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Boolean endCutting(Long planId) { public Boolean endCutting(Long planId) {
PlanDO planDO = planMapper.selectById(planId); PlanDO planDO = planMapper.selectById(planId);
if (Objects.isNull(planDO)) { if (Objects.isNull(planDO)) {
@@ -205,11 +221,62 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
planMapper.updateById(PlanDO.builder() planMapper.updateById(PlanDO.builder()
.id(planId) .id(planId)
.status(PlanStatusEnum.OPENEDMATERIAL.getStatus()) .status(PlanStatusEnum.OPENEDMATERIAL.getStatus())
.produceTime(LocalDateTime.now())
.build()); .build());
LoginUser loginUser = getLoginUser();
List<ProcessDTO> userProcess = processApi.getUserProcess(loginUser.getId());
if(!userProcess.isEmpty()) {
List<Long> processStepIds = new ArrayList<>();
List<Long> orderIds = JSON.parseArray(planDO.getOrderNos()).toJavaList(Long.class);
List<ProcessStepDO> 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> processStepSalaryIds = calculateSalary(processStepIds);
// 修改生产明细表和步骤表的工序状态
processStepMapper.updateStatus(processStepSalaryIds, loginUser.getNickname());
processStepItemMapper.updateStatus(processStepIds);
}
}
return Boolean.TRUE; return Boolean.TRUE;
} }
// 计算工资金额
public List<ProcessStepSalaryIds> calculateSalary(List<Long> processStepId){
// 查询当前工序对应的板材的面积
List<ProcessStepAreaIds> processStepAreaIds = processStepItemMapper.selectAreaByProcessStepId(processStepId,getUserOrganId());
// 计算当前工序的工资金额
List<ProcessStepSalaryIds> salary = processStepMapper.calculateSalary(processStepAreaIds,getUserOrganId());
return salary;
}
@Override @Override
public OptimizeParamResVO getOptimizeParam(Long planId) { public OptimizeParamResVO getOptimizeParam(Long planId) {
//小板列表 //小板列表
@@ -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.common.exception.util.ServiceExceptionUtil.exception;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; 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.module.executor.enums.ErrorCodeConstants.*;
import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator;
/** /**
* 生产单开料排单 Service 实现类 * 生产单开料排单 Service 实现类
@@ -347,18 +348,18 @@ public class PlanServiceImpl implements PlanService {
.betweenIfPresent("op.width", new BigDecimal[]{pageReqVO.getWidthMinRang(), pageReqVO.getWidthMaxRang()}) .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") .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"); .orderByDesc("a.update_time");
List<Integer> filterTypes = new ArrayList<>(); String filterTypes = "";
if (Objects.nonNull(pageReqVO.getHoleThrough()) && pageReqVO.getHoleThrough()) { if (Objects.nonNull(pageReqVO.getHoleThrough()) && pageReqVO.getHoleThrough()) {
filterTypes.add(PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType()); filterTypes += PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType().toString();
} }
if (Objects.nonNull(pageReqVO.getBurrow()) && pageReqVO.getBurrow()) { if (Objects.nonNull(pageReqVO.getBurrow()) && pageReqVO.getBurrow()) {
filterTypes.add(PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType()); filterTypes += PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType().toString();
} }
if (Objects.nonNull(pageReqVO.getTwoDimensionalToolPath()) && pageReqVO.getTwoDimensionalToolPath()) { 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<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderPage(page, queryWrapperX); IPage<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderPage(page, queryWrapperX);
@@ -425,18 +426,18 @@ public class PlanServiceImpl implements PlanService {
.eqIfPresent("op.is_door", pageReqVO.getIsDoor()) .eqIfPresent("op.is_door", pageReqVO.getIsDoor())
.betweenIfPresent("op.height", new BigDecimal[]{pageReqVO.getLongMinRang(), pageReqVO.getLongMaxRang()}) .betweenIfPresent("op.height", new BigDecimal[]{pageReqVO.getLongMinRang(), pageReqVO.getLongMaxRang()})
.betweenIfPresent("op.width", new BigDecimal[]{pageReqVO.getWidthMinRang(), pageReqVO.getWidthMaxRang()}); .betweenIfPresent("op.width", new BigDecimal[]{pageReqVO.getWidthMinRang(), pageReqVO.getWidthMaxRang()});
List<Integer> filterTypes = new ArrayList<>(); String filterTypes = "";
if (Objects.nonNull(pageReqVO.getHoleThrough()) && pageReqVO.getHoleThrough()) { if (Objects.nonNull(pageReqVO.getHoleThrough()) && pageReqVO.getHoleThrough()) {
filterTypes.add(PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType()); filterTypes += PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType().toString();
} }
if (Objects.nonNull(pageReqVO.getBurrow()) && pageReqVO.getBurrow()) { if (Objects.nonNull(pageReqVO.getBurrow()) && pageReqVO.getBurrow()) {
filterTypes.add(PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType()); filterTypes += PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType().toString();
} }
if (Objects.nonNull(pageReqVO.getTwoDimensionalToolPath()) && pageReqVO.getTwoDimensionalToolPath()) { 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<Long> orderIds = orderMapper.selectOrderIds(queryWrapperX); List<Long> orderIds = orderMapper.selectOrderIds(queryWrapperX);
@@ -539,15 +540,16 @@ public class PlanServiceImpl implements PlanService {
validatePlanExists(planId); validatePlanExists(planId);
} }
QueryWrapperX<PlateDO> queryWrapperX = new QueryWrapperX<>(); QueryWrapperX<PlateDO> queryWrapperX = new QueryWrapperX<>();
List<Integer> filterTypes = new ArrayList<>();
String filterTypes = "";
if (Objects.nonNull(vo.getHoleThrough()) && vo.getHoleThrough()) { if (Objects.nonNull(vo.getHoleThrough()) && vo.getHoleThrough()) {
filterTypes.add(PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType()); filterTypes += PlanFilterTypeEnum.DIGGINGTHROUGHTHESHAPE.getType().toString();
} }
if (Objects.nonNull(vo.getBurrow()) && vo.getBurrow()) { if (Objects.nonNull(vo.getBurrow()) && vo.getBurrow()) {
filterTypes.add(PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType()); filterTypes += PlanFilterTypeEnum.THEREAREPERFORATEDHOLES.getType().toString();
} }
if (Objects.nonNull(vo.getTwoDimensionalToolPath()) && vo.getTwoDimensionalToolPath()) { if (Objects.nonNull(vo.getTwoDimensionalToolPath()) && vo.getTwoDimensionalToolPath()) {
filterTypes.add(PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType()); filterTypes += PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType().toString();
} }
queryWrapperX.in("p.plan_id", vo.getPlanIds()) queryWrapperX.in("p.plan_id", vo.getPlanIds())
@@ -558,7 +560,7 @@ public class PlanServiceImpl implements PlanService {
.eqIfPresent("a.is_sculpt", vo.getSculpt()) .eqIfPresent("a.is_sculpt", vo.getSculpt())
.betweenIfPresent("a.width", new BigDecimal[]{vo.getWidthMinRang(), vo.getWidthMaxRang()}) .betweenIfPresent("a.width", new BigDecimal[]{vo.getWidthMinRang(), vo.getWidthMaxRang()})
.betweenIfPresent("a.height", new BigDecimal[]{vo.getLongMinRang(), vo.getLongMaxRang()}) .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()}) .betweenIfPresent("f.delivery_date", new Date[]{vo.getBeginDate(), vo.getEndDate()})
.orderByDesc("a.order_id") .orderByDesc("a.order_id")
.orderByDesc("a.name"); .orderByDesc("a.name");
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.executor.dal.mysql.processStep.ProcessStepMapper">
<select id="calculateSalary"
parameterType="map"
resultType="com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepSalaryIds">
select distinct ROUND(ops.piece_rate *
<foreach collection="processStepAreaIds" item="processStepAreaIds" open="(" close=")" separator=",">
(#{processStepAreaIds.area})
</foreach>,3) as salary,
ops.id as processStepId
from order_process_step ops
where ops.organ_id = #{organId}
and ops.id in
<foreach collection="processStepAreaIds" item="processStepAreaIds" open="(" close=")" separator=",">
(#{processStepAreaIds.processStepId})
</foreach>
group by ops.piece_rate,ops.id;
</select>
<update id="updateStatus" parameterType="map">
update order_process_step
set status = true,
finish_time = now(),
manager = #{nickname},
salary_amount =
<foreach collection="processStepSalaryIds" item="processStepSalaryIds" open="(" close=")" separator=",">
(#{processStepSalaryIds.salary})
</foreach>
where id in
<foreach collection="processStepSalaryIds" item="processStepSalaryIds" open="(" close=")" separator=",">
(#{processStepSalaryIds.processStepId})
</foreach>
</update>
</mapper>
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.executor.dal.mysql.processStepItem.ProcessStepItemMapper">
<select id="selectAreaByProcessStepId"
resultType="com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepAreaIds">
select distinct
sum(op.area) as area,
opsi.process_step_id as processStepId
from order_process_step_item opsi
join order_body ob on opsi.body_id = ob.id and opsi.organ_id = ob.organ_id
join order_item oi on ob.id = oi.body_id and ob.organ_id = oi.organ_id
join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
where opsi.organ_id = #{organId}
and opsi.process_step_id in
<foreach item="processStepId" collection="processStepId" open="(" separator="," close=")">
#{processStepId}
</foreach>
group by opsi.process_step_id
</select>
<update id="updateStatus">
update order_process_step_item
SET status = TRUE
WHERE process_step_id in
<foreach item="processStepIds" collection="processStepIds" open="(" separator="," close=")">
#{processStepIds}
</foreach>
</update>
</mapper>
@@ -85,8 +85,8 @@ public class PackController {
@Operation(summary = "查看生产订单对应的包裹信息") @Operation(summary = "查看生产订单对应的包裹信息")
@PreAuthorize("@ss.hasPermission('manage:pack:query')") @PreAuthorize("@ss.hasPermission('manage:pack:query')")
public CommonResult<PageResult<OrderPackageVO>> getOrderPack(@Valid PackageDetailsReqVO reqVO) { public CommonResult<PageResult<OrderPackageVO>> getOrderPack(@Valid PackageDetailsReqVO reqVO) {
PageResult<OrderPackageDO> 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") @GetMapping("/getParts")
@Operation(summary = "查看配件列表分页") @Operation(summary = "查看配件列表")
@PreAuthorize("@ss.hasPermission('manage:pack-parts:query')") @PreAuthorize("@ss.hasPermission('manage:pack-parts:query')")
public CommonResult<PageResult<OrderPartsRespVO>> getParts(@Valid OrderPartsReqVO reqVO) { public CommonResult<List<OrderPartsRespVO>> getParts(@Valid OrderPartsReqVO reqVO) {
return success(packService.getPartsList(reqVO)); return success(packService.getPartsList(reqVO));
@@ -216,9 +216,9 @@ public class PackController {
@PostMapping("/insertParts") // @PostMapping("/insertParts")
@Operation(summary = "新增配件包裹") // @Operation(summary = "新增配件包裹")
@PreAuthorize("@ss.hasPermission('manage:pack:insert')") // @PreAuthorize("@ss.hasPermission('manage:pack:insert')")
public CommonResult<OrderPackRespVO> addNewPartsPack (@Valid @RequestBody OrderPackReqVO reqVO) { public CommonResult<OrderPackRespVO> addNewPartsPack (@Valid @RequestBody OrderPackReqVO reqVO) {
return success(packService.addNewPartsPack(reqVO)); return success(packService.addNewPartsPack(reqVO));
@@ -250,7 +250,7 @@ public class PackController {
@DeleteMapping("/deleteOtherParts") @DeleteMapping("/deleteOtherParts")
@Operation(summary = "删除配件包裹中的配件(删除某一个)") @Operation(summary = "删除包裹中的外部配件")
@PreAuthorize("@ss.hasPermission('manage:pack:delete')") @PreAuthorize("@ss.hasPermission('manage:pack:delete')")
public CommonResult<Boolean> deleteOtherParts (@Valid @RequestBody DeleteOtherPartsReqVO reqVO) { public CommonResult<Boolean> deleteOtherParts (@Valid @RequestBody DeleteOtherPartsReqVO reqVO) {
@@ -23,7 +23,7 @@ public class OrderPartsReqVO extends PageParam {
@Schema(description = "更新配件时传-包裹ID") @Schema(description = "更新配件时传-包裹ID")
private Long packId; private Long packId;
@Schema(description = "更新配件时传-新增的配件ID") @Schema(description = "新增的配件ID")
private List<Long> addPartsIdList; private List<Long> addPartsIdList;
@Schema(description = "更新配件时传-删除的配件ID") @Schema(description = "更新配件时传-删除的配件ID")
@@ -26,6 +26,9 @@ public class PlateDetailsRespVO {
@Schema(description = "柜体ID", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "柜体ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String bodyId; private String bodyId;
@Schema(description = "生产单ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String orderId;
@Schema(description = "板材ID", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "板材ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String plateId; private String plateId;
@@ -18,6 +18,9 @@ public class ProcessStepStatus {
// 工序明细表的状态 // 工序明细表的状态
private Boolean processStepItemStatus; private Boolean processStepItemStatus;
// 工序ID
private Long processId;
// 工序步骤表的类型 // 工序步骤表的类型
private Integer type; private Integer type;
@@ -18,6 +18,18 @@ public class OrderPackageVO {
@Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
private Long orderId; 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) @Schema(description = "包裹编号", requiredMode = Schema.RequiredMode.REQUIRED)
private String packageNo; private String packageNo;
@@ -33,8 +45,11 @@ public class OrderPackageVO {
@Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED)
private String creator; private String creator;
@Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "包裹备注", requiredMode = Schema.RequiredMode.REQUIRED)
private String remark; private String packRemark;
@Schema(description = "生产单备注", requiredMode = Schema.RequiredMode.REQUIRED)
private String orderRemark;
@Schema(description = "出库人", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "出库人", requiredMode = Schema.RequiredMode.REQUIRED)
private String updater; private String updater;
@@ -8,6 +8,10 @@ import lombok.Data;
@Data @Data
public class PackageDetailsRespVO { public class PackageDetailsRespVO {
@Schema(description = "生产单ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String orderId;
@Schema(description = "房间名称-板材类型显示", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "房间名称-板材类型显示", requiredMode = Schema.RequiredMode.REQUIRED)
private String roomName; private String roomName;
@@ -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.PackRespVO;
import com.cf.imes.module.manage.controller.admin.pack.vo.PackageDetailsReqVO; 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.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 com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@@ -25,7 +26,7 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
// } // }
IPage<OrderPackageDO> selectByOrderNo(@Param("page") IPage page,@Param("reqVO") PackageDetailsReqVO reqVO,@Param("organId") Long organId); IPage<OrderPackageVO> selectByOrderNo(@Param("page") IPage page, @Param("reqVO") PackageDetailsReqVO reqVO, @Param("organId") Long organId);
default OrderPackageDO selectByPackNo(String packNo,Long organId) { default OrderPackageDO selectByPackNo(String packNo,Long organId) {
@@ -22,7 +22,7 @@ public interface OrderPartsMapper extends BaseMapperX<OrderPartsNDO> {
IPage<PackageDetailsRespVO> selectParts(@Param("page") IPage page, @Param("packageId") Long packageId, @Param("organId") Long organId); IPage<PackageDetailsRespVO> selectParts(@Param("page") IPage page, @Param("packageId") Long packageId, @Param("organId") Long organId);
IPage<OrderPartsRespVO> selectPartsList(@Param("page") IPage page, @Param("orderId") Long orderId , @Param("organId") Long organId); List<OrderPartsRespVO> selectPartsList( @Param("orderId") Long orderId , @Param("organId") Long organId);
@@ -3,6 +3,7 @@ package com.cf.imes.module.manage.service.pack;
import com.cf.imes.framework.common.pojo.PageResult; 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.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.controller.admin.query.vo.productionStatus.OrderModuleReqVO;
import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO; import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
@@ -16,7 +17,7 @@ public interface PackService {
// 查看生产订单对应的包裹信息 // 查看生产订单对应的包裹信息
PageResult<OrderPackageDO> getOrderPack(PackageDetailsReqVO reqVO); PageResult<OrderPackageVO> getOrderPack(PackageDetailsReqVO reqVO);
@@ -34,7 +35,7 @@ public interface PackService {
// 查看配件列表分页 // 查看配件列表分页
PageResult<OrderPartsRespVO> getPartsList(OrderPartsReqVO reqVO); List<OrderPartsRespVO> getPartsList(OrderPartsReqVO reqVO);
OrderPackRespVO updateParts(OrderPartsReqVO reqVO); OrderPackRespVO updateParts(OrderPartsReqVO reqVO);
@@ -71,7 +72,7 @@ public interface PackService {
// 删除配件包裹中的配件(删除某一个) // 删除包裹中的外部配件
void deleteOtherParts(DeleteOtherPartsReqVO reqVO); void deleteOtherParts(DeleteOtherPartsReqVO reqVO);
@@ -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.framework.common.util.object.BeanUtils;
import com.cf.imes.module.manage.controller.admin.pack.vo.*; 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.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.controller.admin.query.vo.productionStatus.OrderModuleReqVO;
import com.cf.imes.module.manage.dal.dataobject.pack.OrderBodyDO; import com.cf.imes.module.manage.dal.dataobject.pack.OrderBodyDO;
import com.cf.imes.module.manage.dal.dataobject.process.OrderDO; import com.cf.imes.module.manage.dal.dataobject.process.OrderDO;
@@ -38,8 +39,8 @@ import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; 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.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.*; import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
@Service @Service
@@ -139,11 +140,11 @@ public class PackServiceImpl implements PackService {
// 查看生产订单对应的包裹信息 // 查看生产订单对应的包裹信息
@Override @Override
public PageResult<OrderPackageDO> getOrderPack(PackageDetailsReqVO reqVO) { public PageResult<OrderPackageVO> getOrderPack(PackageDetailsReqVO reqVO) {
PageDTO<OrderPackageDO> page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize()); PageDTO<OrderPackageVO> page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize());
IPage<OrderPackageDO> orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page,reqVO, getUserOrganId()); IPage<OrderPackageVO> orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page,reqVO, getUserOrganId());
if (CollectionUtil.isEmpty(orderPackageDOIPage.getRecords())) { if (CollectionUtil.isEmpty(orderPackageDOIPage.getRecords())) {
@@ -165,18 +166,14 @@ public class PackServiceImpl implements PackService {
// 查看配件列表分页 // 查看配件列表分页
@Override @Override
public PageResult<OrderPartsRespVO> getPartsList(OrderPartsReqVO reqVO) { public List<OrderPartsRespVO> getPartsList(OrderPartsReqVO reqVO) {
PageDTO<OrderPartsRespVO> page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize()); // PageDTO<OrderPartsRespVO> page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize());
IPage<OrderPartsRespVO> orderPartsRespVOS = orderPartsMapper.selectPartsList(page,reqVO.getOrderId(),getUserOrganId()); List<OrderPartsRespVO> orderPartsRespVOS = orderPartsMapper.selectPartsList(reqVO.getOrderId(),getUserOrganId());
if (CollectionUtil.isEmpty(orderPartsRespVOS.getRecords())) {
return new PageResult<>();
}
return new PageResult<>(orderPartsRespVOS.getRecords(), orderPartsRespVOS.getTotal()); return orderPartsRespVOS;
} }
@@ -188,6 +185,24 @@ public class PackServiceImpl implements PackService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public OrderPackRespVO updateParts(OrderPartsReqVO reqVO) { 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()); OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackId(reqVO.getPackId(), getUserOrganId());
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(reqVO.getPackId(), getUserOrganId()); List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(reqVO.getPackId(), getUserOrganId());
@@ -433,6 +448,13 @@ public class PackServiceImpl implements PackService {
throw exception(THE_CURRENT_PACKAGE_TYPE_IS_INCORRECT); 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); OrderPartsNDO orderParts = BeanUtils.toBean(reqVO, OrderPartsNDO.class);
// 因为是外部配件,所以配件类型的名称固定为 “ 外部配件” // 因为是外部配件,所以配件类型的名称固定为 “ 外部配件”
@@ -459,7 +481,7 @@ public class PackServiceImpl implements PackService {
// 删除配件包裹中的配件(删除某一个) // 删除包裹中的外部配件
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteOtherParts(DeleteOtherPartsReqVO reqVO) { public void deleteOtherParts(DeleteOtherPartsReqVO reqVO) {
@@ -34,9 +34,9 @@ import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; 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.getLoginUser;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; 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()){ if(orderProcessStepItemNDOS.isEmpty()){
// 修改生产单工序步骤表的状态 // 修改生产单工序步骤表的状态
BigDecimal salary = calculateSalary(reqVo.getProcessStepId()); BigDecimal salary = calculateSalary(reqVo.getProcessStepId(),processStepStatuses.getProcessId());
processStepMapper.updateStatusById(reqVo.getProcessStepId(),salary); processStepMapper.updateStatusById(reqVo.getProcessStepId(),salary);
@@ -181,7 +181,7 @@ public class ProductionProcessServiceImpl implements ProductionProcessService {
} }
try { try {
BigDecimal salary = calculateSalary(reqVo.getProcessStepId()); BigDecimal salary = calculateSalary(reqVo.getProcessStepId(),null);
// 修改生产明细表和步骤表的工序状态 // 修改生产明细表和步骤表的工序状态
processStepMapper.updateStatus(reqVo.getProcessStepId(),nickname,salary); 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 area = processStepItemMapper.selectAreaByProcessStepId(processStepId,getUserOrganId());
if(processId != null){
// 查询组件加工的工资 // 查询组件加工的工资
BigDecimal pieceRate = processApi.getProcess(); pieceRate = processApi.getProcess(processId);
}
// 计算当前工序的工资金额 // 计算当前工序的工资金额
BigDecimal salary = processStepMapper.calculateSalary(processStepId, area,pieceRate,getUserOrganId()); BigDecimal salary = processStepMapper.calculateSalary(processStepId, area,pieceRate,getUserOrganId());
@@ -134,12 +134,28 @@
<select id="selectByOrderNo" <select id="selectByOrderNo"
resultType="com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO" resultType="com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO"
parameterType="map"> parameterType="map">
select distinct select distinct
opn.* opn.id,
opn.order_id,
opn.package_no,
opn.type,
opn.status,
opn.organ_id,
opn.creator,
opn.remark as packRemark,
opn.updater,
opn.update_time,
opn.create_time,
o.custom_order_no,
o.dealer,
o.customer,
o.address,
o.remark as orderRemark
from order_package opn from order_package opn
join orders o on opn.order_id = o.id and opn.organ_id = o.organ_id
join order_item oi on opn.id = oi.package_id and opn.organ_id = oi.organ_id join order_item oi on opn.id = oi.package_id and opn.organ_id = oi.organ_id
left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
@@ -60,6 +60,7 @@
select distinct select distinct
ops.order_id as orderId, ops.order_id as orderId,
opsi.status as processStepItemStatus, opsi.status as processStepItemStatus,
ops.processinfo_id as processId,
ops.status as processStepStatus, ops.status as processStepStatus,
ops.type as type ops.type as type
from order_process_step_item opsi from order_process_step_item opsi
@@ -4,6 +4,7 @@
<resultMap id="orderItemMap" type="com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO"> <resultMap id="orderItemMap" type="com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO">
<result property="orderId" column="orderId"/>
<result property="roomName" column="roomName"/> <result property="roomName" column="roomName"/>
<result property="cabinetName" column="bodyName"/> <result property="cabinetName" column="bodyName"/>
<result property="plateId" column="plateId"/> <result property="plateId" column="plateId"/>
@@ -30,6 +31,7 @@
resultMap="orderItemMap"> resultMap="orderItemMap">
select distinct select distinct
op.order_id as orderId,
og.name as name, og.name as name,
ob.room_name as roomName, ob.room_name as roomName,
ob.name as bodyName, ob.name as bodyName,
@@ -117,6 +119,7 @@
<result property="cabinetName" column="bodyName"/> <result property="cabinetName" column="bodyName"/>
<result property="plateId" column="plateId"/> <result property="plateId" column="plateId"/>
<result property="plateNo" column="plateNo"/> <result property="plateNo" column="plateNo"/>
<result property="orderId" column="orderId"/>
<result property="plateName" column="plateName"/> <result property="plateName" column="plateName"/>
<result property="material" column="plateMaterial"/> <result property="material" column="plateMaterial"/>
<result property="color" column="plateColor"/> <result property="color" column="plateColor"/>
@@ -143,6 +146,7 @@
op.name as plateName, op.name as plateName,
ogs.material as plateMaterial, ogs.material as plateMaterial,
ogs.color as plateColor, ogs.color as plateColor,
op.order_id as orderId,
op.height as plateHeight, op.height as plateHeight,
op.width as plateWidth, op.width as plateWidth,
op.thickness as plateThickness, op.thickness as plateThickness,
@@ -207,13 +211,13 @@
<update id="deleteOtherParts" <delete id="deleteOtherParts"
parameterType="java.lang.Long"> parameterType="java.lang.Long">
DELETE FROM order_item DELETE FROM order_item
WHERE parts_id = #{partsId} WHERE parts_id = #{partsId}
</update> </delete>
@@ -425,6 +429,7 @@
op.name as plateName, op.name as plateName,
ogs.material as plateMaterial, ogs.material as plateMaterial,
ogs.color as plateColor, ogs.color as plateColor,
op.order_id as orderId,
op.height as plateHeight, op.height as plateHeight,
op.width as plateWidth, op.width as plateWidth,
op.thickness as plateThickness, op.thickness as plateThickness,
@@ -4,6 +4,7 @@
<resultMap id="partsMap" type="com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO"> <resultMap id="partsMap" type="com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO">
<result property="orderId" column="orderId"/>
<result property="partsId" column="partsId"/> <result property="partsId" column="partsId"/>
<result property="name" column="name"/> <result property="name" column="name"/>
<result property="type" column="type"/> <result property="type" column="type"/>
@@ -24,6 +25,7 @@
select distinct select distinct
op.order_id as orderId,
op.id as partsId, op.id as partsId,
op.name as name, op.name as name,
op.model as model, op.model as model,
@@ -61,7 +61,7 @@ public class ReportDatasetController {
@GetMapping("/dataset/{id}") @GetMapping("/dataset/{id}")
@Operation(summary = "获得报表数据集") @Operation(summary = "获得报表数据集")
@Parameter(name = "id", description = "编号", required = true, example = "1024") @Parameter(name = "id", description = "编号", required = true, example = "1")
@PreAuthorize("@ss.hasPermission('report:dataset:query')") @PreAuthorize("@ss.hasPermission('report:dataset:query')")
public CommonResult<ReportDatasetRespVO> getDataset(@PathVariable("id") Long id) { public CommonResult<ReportDatasetRespVO> getDataset(@PathVariable("id") Long id) {
ReportDatasetDO dataset = datasetService.getDataset(id); ReportDatasetDO dataset = datasetService.getDataset(id);
@@ -71,7 +71,9 @@ public class ReportDatasetController {
@GetMapping("/datasets") @GetMapping("/datasets")
@Operation(summary = "获取数据源下的报表数据集列表") @Operation(summary = "获取数据源下的报表数据集列表")
@PreAuthorize("@ss.hasPermission('report:dataset:query')") @PreAuthorize("@ss.hasPermission('report:dataset:query')")
public CommonResult<List<ReportDatasetRespVO>> getDatasetPage(@Valid ReportDatasetReqVO pageReqVO) { public CommonResult<List<ReportDatasetRespVO>> getDatasetPage(@RequestParam(value = "datasourceId") Long datasourceId,
return success(BeanUtils.toBean(datasetService.getDatasetList(pageReqVO), ReportDatasetRespVO.class)); @RequestParam(value = "name", required = false) String name) {
ReportDatasetReqVO reqVO = new ReportDatasetReqVO(name, datasourceId);
return success(BeanUtils.toBean(datasetService.getDatasetList(reqVO), ReportDatasetRespVO.class));
} }
} }
@@ -71,7 +71,10 @@ public class ReportDatasourceController {
@GetMapping("/datasources") @GetMapping("/datasources")
@Operation(summary = "获取报表模板下的报表数据源") @Operation(summary = "获取报表模板下的报表数据源")
@PreAuthorize("@ss.hasPermission('report:datasource:query')") @PreAuthorize("@ss.hasPermission('report:datasource:query')")
public CommonResult<List<ReportDatasourceRespVO>> getDatasourcePage(@Valid ReportDatasourceReqVO pageReqVO) { public CommonResult<List<ReportDatasourceRespVO>> getDatasourcePage(@RequestParam(value = "reportId") Long reportId,
return success(BeanUtils.toBean(datasourceService.getTemplateDatasourceList(pageReqVO), ReportDatasourceRespVO.class)); @RequestParam(value = "name", required = false) String name,
@RequestParam(value = "type", required = false) Integer type) {
ReportDatasourceReqVO reqVO = new ReportDatasourceReqVO(reportId, name, type);
return success(BeanUtils.toBean(datasourceService.getTemplateDatasourceList(reqVO), ReportDatasourceRespVO.class));
} }
} }
@@ -16,7 +16,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.security.PermitAll;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.List; import java.util.List;
@@ -40,7 +39,6 @@ public class ReportTemplateController {
@PutMapping("/template") @PutMapping("/template")
@Operation(summary = "创建报表模板信息") @Operation(summary = "创建报表模板信息")
@PreAuthorize("@ss.hasPermission('report:template:create')") @PreAuthorize("@ss.hasPermission('report:template:create')")
@PermitAll
public CommonResult<Long> createTemplate(@Valid @RequestBody ReportTemplateSaveReqVO createReqVO) { public CommonResult<Long> createTemplate(@Valid @RequestBody ReportTemplateSaveReqVO createReqVO) {
OrganContextHolder.setOrganId(1L); OrganContextHolder.setOrganId(1L);
return success(templateService.createReportTemplate(createReqVO)); return success(templateService.createReportTemplate(createReqVO));
@@ -75,8 +73,9 @@ public class ReportTemplateController {
@GetMapping("/templates") @GetMapping("/templates")
@Operation(summary = "获得报表模板信息列表") @Operation(summary = "获得报表模板信息列表")
@PreAuthorize("@ss.hasPermission('report:template:query')") @PreAuthorize("@ss.hasPermission('report:template:query')")
@PermitAll public CommonResult<List<ReportTemplateRespVO>> getTemplatePage(@RequestParam(value = "name", required = false) String name,
public CommonResult<List<ReportTemplateRespVO>> getTemplatePage(@Valid ReportTemplateReqVO pageReqVO) { @RequestParam(value = "type", required = false) Integer type) {
return success(BeanUtils.toBean(templateService.getReportTemplateList(pageReqVO), ReportTemplateRespVO.class)); ReportTemplateReqVO reqVO = new ReportTemplateReqVO(name, type);
return success(BeanUtils.toBean(templateService.getReportTemplateList(reqVO), ReportTemplateRespVO.class));
} }
} }
@@ -1,7 +1,9 @@
package com.cf.imes.module.report.controller.admin.template.vo; package com.cf.imes.module.report.controller.admin.template.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString; import lombok.ToString;
/** /**
@@ -11,6 +13,8 @@ import lombok.ToString;
@Schema(description = "管理后台 - 报表数据集 Request VO") @Schema(description = "管理后台 - 报表数据集 Request VO")
@Data @Data
@ToString(callSuper = true) @ToString(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
public class ReportDatasetReqVO { public class ReportDatasetReqVO {
@Schema(description = "数据集名称", example = "测试数据集") @Schema(description = "数据集名称", example = "测试数据集")
private String name; private String name;
@@ -1,7 +1,9 @@
package com.cf.imes.module.report.controller.admin.template.vo; package com.cf.imes.module.report.controller.admin.template.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@@ -12,6 +14,8 @@ import java.util.List;
*/ */
@Schema(description = "管理后台 - 报表数据集 Response VO") @Schema(description = "管理后台 - 报表数据集 Response VO")
@Data @Data
@AllArgsConstructor
@NoArgsConstructor
public class ReportDatasetRespVO { public class ReportDatasetRespVO {
@Schema(description = "数据集id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "数据集id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long id; private Long id;
@@ -1,8 +1,10 @@
package com.cf.imes.module.report.controller.admin.template.vo; package com.cf.imes.module.report.controller.admin.template.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
@@ -14,6 +16,8 @@ import java.util.List;
@Schema(description = "管理后台 - 报表数据集新增/修改 Request VO") @Schema(description = "管理后台 - 报表数据集新增/修改 Request VO")
@Data @Data
@Builder @Builder
@AllArgsConstructor
@NoArgsConstructor
public class ReportDatasetSaveReqVO { public class ReportDatasetSaveReqVO {
@Schema(description = "数据集id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "数据集id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long id; private Long id;
@@ -1,7 +1,9 @@
package com.cf.imes.module.report.controller.admin.template.vo; package com.cf.imes.module.report.controller.admin.template.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString; import lombok.ToString;
/** /**
@@ -11,6 +13,8 @@ import lombok.ToString;
@Schema(description = "管理后台 - 报表数据源 Request VO") @Schema(description = "管理后台 - 报表数据源 Request VO")
@Data @Data
@ToString(callSuper = true) @ToString(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
public class ReportDatasourceReqVO { public class ReportDatasourceReqVO {
@Schema(description = "模板id", example = "1", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "模板id", example = "1", requiredMode = Schema.RequiredMode.REQUIRED)
private Long reportId; private Long reportId;
@@ -1,7 +1,9 @@
package com.cf.imes.module.report.controller.admin.template.vo; package com.cf.imes.module.report.controller.admin.template.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -11,6 +13,8 @@ import java.time.LocalDateTime;
*/ */
@Schema(description = "管理后台 - 报表数据源 Response VO") @Schema(description = "管理后台 - 报表数据源 Response VO")
@Data @Data
@AllArgsConstructor
@NoArgsConstructor
public class ReportDatasourceRespVO { public class ReportDatasourceRespVO {
@Schema(description = "数据源id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "数据源id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@@ -1,8 +1,10 @@
package com.cf.imes.module.report.controller.admin.template.vo; package com.cf.imes.module.report.controller.admin.template.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@@ -13,8 +15,10 @@ import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 报表数据源新增/修改 Request VO") @Schema(description = "管理后台 - 报表数据源新增/修改 Request VO")
@Data @Data
@Builder @Builder
@AllArgsConstructor
@NoArgsConstructor
public class ReportDatasourceSaveReqVO { public class ReportDatasourceSaveReqVO {
@Schema(description = "数据源id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "数据源id", example = "1")
private Long id; private Long id;
@Schema(description = "模板id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "模板id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@@ -1,7 +1,9 @@
package com.cf.imes.module.report.controller.admin.template.vo; package com.cf.imes.module.report.controller.admin.template.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString; import lombok.ToString;
/** /**
@@ -11,6 +13,8 @@ import lombok.ToString;
@Schema(description = "管理后台 - 报表模板信息列表 Request VO") @Schema(description = "管理后台 - 报表模板信息列表 Request VO")
@Data @Data
@ToString(callSuper = true) @ToString(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
public class ReportTemplateReqVO { public class ReportTemplateReqVO {
@Schema(description = "模板名称", example = "生产单模板") @Schema(description = "模板名称", example = "生产单模板")
private String name; private String name;
@@ -1,7 +1,9 @@
package com.cf.imes.module.report.controller.admin.template.vo; package com.cf.imes.module.report.controller.admin.template.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -11,8 +13,10 @@ import java.time.LocalDateTime;
*/ */
@Schema(description = "管理后台 - 报表模板信息 Response VO") @Schema(description = "管理后台 - 报表模板信息 Response VO")
@Data @Data
@AllArgsConstructor
@NoArgsConstructor
public class ReportTemplateRespVO { public class ReportTemplateRespVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15176") @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private Long id; private Long id;
@Schema(description = "模板名称", example = "生产单模板") @Schema(description = "模板名称", example = "生产单模板")
@@ -21,7 +25,7 @@ public class ReportTemplateRespVO {
@Schema(description = "报表模板") @Schema(description = "报表模板")
private String template; private String template;
@Schema(description = "模板类型,0内置、1自定义", example = "2") @Schema(description = "模板类型,0内置、1自定义", example = "0")
private Long type; private Long type;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -1,8 +1,12 @@
package com.cf.imes.module.report.controller.admin.template.vo; package com.cf.imes.module.report.controller.admin.template.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/** /**
* @author Gqr * @author Gqr
@@ -11,9 +15,11 @@ import lombok.Data;
@Schema(description = "管理后台 - 报表模板信息新增/修改 Request VO") @Schema(description = "管理后台 - 报表模板信息新增/修改 Request VO")
@Data @Data
@Builder @Builder
public class ReportTemplateSaveReqVO { @AllArgsConstructor
@NoArgsConstructor
public class ReportTemplateSaveReqVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @Schema(description = "主键", example = "1")
private Long id; private Long id;
@Schema(description = "模板名称", example = "生产单模板") @Schema(description = "模板名称", example = "生产单模板")
@@ -67,7 +67,7 @@ public class ReportDatasetServiceImpl implements ReportDatasetService {
@Override @Override
public List<ReportDatasetDO> getDatasetList(ReportDatasetReqVO reqVO) { public List<ReportDatasetDO> getDatasetList(ReportDatasetReqVO reqVO) {
return datasetMapper.selectList(new LambdaQueryWrapperX<ReportDatasetDO>() return datasetMapper.selectList(new LambdaQueryWrapperX<ReportDatasetDO>()
.eq(ReportDatasetDO::getDatasourceId, reqVO.getDatasourceId()) .eqIfPresent(ReportDatasetDO::getDatasourceId, reqVO.getDatasourceId())
.likeIfPresent(ReportDatasetDO::getName, reqVO.getName()) .likeIfPresent(ReportDatasetDO::getName, reqVO.getName())
.orderByDesc(ReportDatasetDO::getCreateTime)); .orderByDesc(ReportDatasetDO::getCreateTime));
} }
@@ -72,9 +72,9 @@ public class ReportDatasourceServiceImpl implements ReportDatasourceService {
@Override @Override
public List<ReportDatasourceDO> getTemplateDatasourceList(ReportDatasourceReqVO reqVO) { public List<ReportDatasourceDO> getTemplateDatasourceList(ReportDatasourceReqVO reqVO) {
return datasourceMapper.selectList(new LambdaQueryWrapperX<ReportDatasourceDO>() return datasourceMapper.selectList(new LambdaQueryWrapperX<ReportDatasourceDO>()
.eq(ReportDatasourceDO::getReportId, reqVO.getReportId()) .eqIfPresent(ReportDatasourceDO::getReportId, reqVO.getReportId())
.likeIfPresent(ReportDatasourceDO::getName, reqVO.getName()) .likeIfPresent(ReportDatasourceDO::getName, reqVO.getName())
.eq(ReportDatasourceDO::getType, reqVO.getType()) .eqIfPresent(ReportDatasourceDO::getType, reqVO.getType())
.orderByDesc(ReportDatasourceDO::getCreateTime)); .orderByDesc(ReportDatasourceDO::getCreateTime));
} }
} }
@@ -1,5 +1,6 @@
package com.cf.imes.module.report.service.template; package com.cf.imes.module.report.service.template;
import cn.hutool.core.util.URLUtil;
import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateReqVO; import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateReqVO;
@@ -30,9 +31,10 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
@Override @Override
public Long createReportTemplate(ReportTemplateSaveReqVO createReqVO) { public Long createReportTemplate(ReportTemplateSaveReqVO createReqVO) {
String templateContent = createReqVO.getTemplate(); String templateContent = URLUtil.decode(createReqVO.getTemplate());
if(StringUtils.isNotEmpty(templateContent)) { if(StringUtils.isNotEmpty(templateContent)) {
// todo template压缩待完善 // todo template压缩待完善
createReqVO.setTemplate(templateContent);
} }
// 插入 // 插入
ReportTemplateDO template = BeanUtils.toBean(createReqVO, ReportTemplateDO.class); ReportTemplateDO template = BeanUtils.toBean(createReqVO, ReportTemplateDO.class);
@@ -82,7 +84,7 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
public List<ReportTemplateDO> getReportTemplateList(ReportTemplateReqVO reqVO) { public List<ReportTemplateDO> getReportTemplateList(ReportTemplateReqVO reqVO) {
return templateMapper.selectList(new LambdaQueryWrapperX<ReportTemplateDO>() return templateMapper.selectList(new LambdaQueryWrapperX<ReportTemplateDO>()
.likeIfPresent(ReportTemplateDO::getName, reqVO.getName()) .likeIfPresent(ReportTemplateDO::getName, reqVO.getName())
.eq(ReportTemplateDO::getType, reqVO.getType()) .eqIfPresent(ReportTemplateDO::getType, reqVO.getType())
.orderByDesc(ReportTemplateDO::getCreateTime)); .orderByDesc(ReportTemplateDO::getCreateTime));
} }
} }
@@ -1,6 +1,7 @@
package com.cf.imes.module.system.api.process; package com.cf.imes.module.system.api.process;
import com.cf.imes.module.system.api.process.dto.ProcessDTO;
import com.cf.imes.module.system.enums.ApiConstants; import com.cf.imes.module.system.enums.ApiConstants;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@@ -10,6 +11,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
@FeignClient(name = ApiConstants.NAME) // TODO 晨丰:fallbackFactory = @FeignClient(name = ApiConstants.NAME) // TODO 晨丰:fallbackFactory =
@Tag(name = "RPC 服务 - 工序") @Tag(name = "RPC 服务 - 工序")
@@ -21,9 +23,13 @@ public interface ProcessApi {
@GetMapping(PREFIX + "/getProcess") @GetMapping(PREFIX + "/getProcess")
@Operation(summary = "查看当前工序的信息") @Operation(summary = "查看当前工序的信息")
// @Parameter(name = "processId", description = "工序ID", required = true, example = "1024") @Parameter(name = "processId", description = "工序ID", required = true, example = "1024")
BigDecimal getProcess(/*@RequestParam("processId") Long processId*/); BigDecimal getProcess(@RequestParam("processId") Long processId);
@GetMapping(PREFIX + "/getUserProcess")
@Operation(summary = "查看当前工序的信息")
@Parameter(name = "userId", description = "用户ID", required = true, example = "1")
List<ProcessDTO> getUserProcess(@RequestParam("userId") Long userId);
} }
@@ -0,0 +1,28 @@
package com.cf.imes.module.system.api.process.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ProcessDTO {
@Schema(description = "工序ID")
private Long id;
@Schema(description = "工序名称")
private String name;
@Schema(description = "工序类型")
private Integer type;
}
@@ -208,6 +208,7 @@ public interface ErrorCodeConstants {
ErrorCode DEFAULT_TEMPLATE_NOT_DELETED = new ErrorCode(1_002_029_004, "不能删除默认模板"); ErrorCode DEFAULT_TEMPLATE_NOT_DELETED = new ErrorCode(1_002_029_004, "不能删除默认模板");
ErrorCode NOT_TEMPLATE_AUTH = new ErrorCode(1_002_029_005, "该组织无此机台模板权限"); ErrorCode NOT_TEMPLATE_AUTH = new ErrorCode(1_002_029_005, "该组织无此机台模板权限");
ErrorCode NOT_MACHINE_AUTH = new ErrorCode(1_002_029_005, "该组织无此机台权限"); ErrorCode NOT_MACHINE_AUTH = new ErrorCode(1_002_029_005, "该组织无此机台权限");
ErrorCode THE_CURRENT_MACHINE_IS_ALREADY_IN_USE = new ErrorCode(1_002_029_005, "当前机台已使用,禁止删除");
// ========== 标签模板 1-002-300-000 ========== // ========== 标签模板 1-002-300-000 ==========
ErrorCode LABEL_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_300_000, "标签模板不存在"); ErrorCode LABEL_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_300_000, "标签模板不存在");
@@ -2,6 +2,9 @@ package com.cf.imes.module.system.api.process;
import com.cf.imes.framework.common.enums.ProcessProcessingTypeEnum; import com.cf.imes.framework.common.enums.ProcessProcessingTypeEnum;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.system.api.process.dto.ProcessDTO;
import com.cf.imes.module.system.dal.dataobject.process.ProcessDO; import com.cf.imes.module.system.dal.dataobject.process.ProcessDO;
import com.cf.imes.module.system.dal.mysql.process.ProcessMapper; import com.cf.imes.module.system.dal.mysql.process.ProcessMapper;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@@ -10,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
@@ -27,9 +31,9 @@ public class ProcessApiImpl implements ProcessApi {
@Override @Override
public BigDecimal getProcess() { public BigDecimal getProcess(Long processId) {
ProcessDO processDO = processMapper.selectByType(ProcessProcessingTypeEnum.COMPONENTPROCESSING.getNumber(),getUserOrganId()); ProcessDO processDO = processMapper.selectByType(processId,getUserOrganId());
return processDO == null ? BigDecimal.ZERO : processDO.getPieceRate(); return processDO == null ? BigDecimal.ZERO : processDO.getPieceRate();
@@ -37,5 +41,16 @@ public class ProcessApiImpl implements ProcessApi {
@Override
public List<ProcessDTO> getUserProcess(Long userId) {
List<ProcessDO> processDOS = processMapper.selectProcessList(getUserOrganId(), userId)
.stream()
.filter(f-> Objects.equals(f.getType(),ProcessProcessingTypeEnum.CUTTINGMATERIALS.getNumber()))
.toList();
return BeanUtils.toBean(processDOS,ProcessDTO.class);
}
} }
@@ -69,10 +69,10 @@ public interface ProcessMapper extends BaseMapperX<ProcessDO> {
default ProcessDO selectByType(Integer number,Long organId) { default ProcessDO selectByType(Long processId,Long organId) {
return selectOne(new MPJLambdaWrapperX<ProcessDO>() return selectOne(new MPJLambdaWrapperX<ProcessDO>()
.eq(ProcessDO::getOrganId, organId) .eq(ProcessDO::getOrganId, organId)
.eqIfPresent(ProcessDO::getType,number)); .eqIfPresent(ProcessDO::getId,processId));
} }
@@ -1,12 +1,13 @@
package com.cf.imes.module.system.framework.rpc.config; package com.cf.imes.module.system.framework.rpc.config;
import com.cf.imes.module.executor.api.orderProcess.OrderProcessApi; import com.cf.imes.module.executor.api.orderProcess.OrderProcessApi;
import com.cf.imes.module.executor.api.plan.OrderPlanApi;
import com.cf.imes.module.infra.api.file.FileApi; import com.cf.imes.module.infra.api.file.FileApi;
import com.cf.imes.module.infra.api.websocket.WebSocketSenderApi; import com.cf.imes.module.infra.api.websocket.WebSocketSenderApi;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@EnableFeignClients(clients = {FileApi.class, WebSocketSenderApi.class, OrderProcessApi.class}) @EnableFeignClients(clients = {FileApi.class, WebSocketSenderApi.class, OrderProcessApi.class, OrderPlanApi.class})
public class RpcConfiguration { public class RpcConfiguration {
} }
@@ -17,6 +17,7 @@ import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.organ.core.aop.OrganIgnore; import com.cf.imes.framework.organ.core.aop.OrganIgnore;
import com.cf.imes.framework.security.core.LoginUser; import com.cf.imes.framework.security.core.LoginUser;
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
import com.cf.imes.module.executor.api.plan.OrderPlanApi;
import com.cf.imes.module.system.controller.admin.machine.vo.*; import com.cf.imes.module.system.controller.admin.machine.vo.*;
import com.cf.imes.module.system.convert.machine.MachineConvert; import com.cf.imes.module.system.convert.machine.MachineConvert;
import com.cf.imes.module.system.dal.dataobject.machine.DrillSettingDO; import com.cf.imes.module.system.dal.dataobject.machine.DrillSettingDO;
@@ -77,6 +78,9 @@ public class MachineServiceImpl implements MachineService {
@Resource @Resource
private MachineTemplateLimitMapper machineTemplateLimitMapper; private MachineTemplateLimitMapper machineTemplateLimitMapper;
@Resource
private OrderPlanApi orderPlanApi;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Long createCutting(CuttingSaveReqVO createReqVO) { public Long createCutting(CuttingSaveReqVO createReqVO) {
@@ -119,6 +123,10 @@ public class MachineServiceImpl implements MachineService {
if (machineDO == null) { if (machineDO == null) {
throw exception(MACHINE_NOT_EXISTS); throw exception(MACHINE_NOT_EXISTS);
} }
// 校验当前机台是否使用
if(orderPlanApi.getOrderPlan(id).getData()){
throw exception(THE_CURRENT_MACHINE_IS_ALREADY_IN_USE);
}
machineMapper.deleteById(id); machineMapper.deleteById(id);
} }
@@ -3,6 +3,7 @@ package com.cf.imes.module.system.service.process;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;;
import com.cf.imes.framework.common.enums.ProcessProcessingTypeEnum;
import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil; import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil;
import com.cf.imes.framework.organ.core.context.OrganContextHolder; import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.system.controller.admin.process.vo.process.*; import com.cf.imes.module.system.controller.admin.process.vo.process.*;
@@ -233,7 +234,11 @@ public class ProcessServiceImpl implements ProcessService {
// 获取组织id // 获取组织id
Long organId = OrganContextHolder.getOrganId(); Long organId = OrganContextHolder.getOrganId();
return processMapper.selectProcessList(organId,userId); return processMapper.selectProcessList(organId,userId)
.stream()
.filter(f-> (!Objects.equals(f.getType(), ProcessProcessingTypeEnum.CUTTINGMATERIALS.getNumber())))
.toList();
} }