板材、余料字段检验

This commit is contained in:
lym
2024-10-15 16:10:12 +08:00
68 changed files with 674 additions and 175 deletions
@@ -174,8 +174,12 @@
<artifactId>gson</artifactId>
<version>2.8.8</version> <!-- 使用最新版本 -->
</dependency>
<dependency>
<groupId>com.cf.imes</groupId>
<artifactId>cf-module-prod-executor-api</artifactId>
<version>2.0.0-jdk8-snapshot</version>
<scope>compile</scope>
</dependency>
</dependencies>
@@ -1,13 +1,12 @@
package com.cf.imes.module.manage.controller.admin.plate.vo.plate;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.cf.imes.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.time.LocalDateTime;
import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -19,15 +18,19 @@ import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH
public class PlatePageReqVO extends PageParam {
@Schema(description = "客户的商品编号", example = "1")
@Size(max = 32, message = "商品编号长度不能超过32个字符")
private String goodsId;
@Schema(description = "商品名称", example = "赵六")
@Size(max = 64, message = "商品名称长度不能超过64个字符")
private String goodsName;
@Schema(description = "材质:颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板")
@Size(max = 64, message = "材质长度不能超过64个字符")
private String material;
@Schema(description = "颜色")
@Size(max = 32, message = "颜色长度不能超过32个字符")
private String color;
@Schema(description = "纹理")
@@ -46,12 +49,15 @@ public class PlatePageReqVO extends PageParam {
// private Double price;
@Schema(description = "品牌")
@Size(max = 64, message = "品牌长度不能超过64个字符")
private String brand;
@Schema(description = "规格")
@Size(max = 64, message = "规格长度不能超过64个字符")
private String spec;
@Schema(description = "备注", example = "随便")
@Size(max = 255, message = "备注长度不能超过255个字符")
private String remark;
@Schema(description = "创建时间")
@@ -1,11 +1,9 @@
package com.cf.imes.module.manage.controller.admin.plate.vo.plate;
import com.alibaba.excel.annotation.ExcelProperty;
import com.cf.imes.module.manage.validation.length.ValidLength;
import com.cf.imes.module.manage.validation.texture.ValidBoolean;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@@ -20,7 +18,7 @@ public class PlateSaveReqVO {
@Schema(description = "客户的商品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "客户的商品编号不能为空")
@Size(max = 30, message = "客户的商品编号长度不能超过32个字符")
@Size(max = 32, message = "商品编号长度不能超过32个字符")
private String goodsId;
@Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@@ -30,12 +28,12 @@ public class PlateSaveReqVO {
@Schema(description = "材质:颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "材质:颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板不能为空")
@Size(max = 64, message = "商品材料长度不能超过64个字符")
@Size(max = 64, message = "材质长度不能超过64个字符")
private String material;
@Schema(description = "颜色", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "颜色不能为空")
@Size(max = 32, message = "商品颜色长度不能超过32个字符")
@Size(max = 32, message = "颜色长度不能超过32个字符")
private String color;
@Schema(description = "纹理", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -61,14 +59,15 @@ public class PlateSaveReqVO {
// private Double price;
@Schema(description = "品牌")
@Size(max = 64, message = "商品品牌长度不能超过64个字符")
@Size(max = 64, message = "品牌长度不能超过64个字符")
private String brand;
@Schema(description = "规格")
@Size(max = 64, message = "商品规格长度不能超过64个字符")
@Size(max = 64, message = "规格长度不能超过64个字符")
private String spec;
@Schema(description = "备注", example = "随便")
@Size(max = 255, message = "备注长度不能超过255个字符")
private String remark;
private Long organId;
@@ -1,5 +1,6 @@
package com.cf.imes.module.manage.framework.rpc.config;
import com.cf.imes.module.executor.api.plan.OrderPlanApi;
import com.cf.imes.module.system.api.organ.OrganApi;
import com.cf.imes.module.system.api.permission.PermissionApi;
import com.cf.imes.module.system.api.process.ProcessApi;
@@ -9,6 +10,6 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false)
@EnableFeignClients(clients = {AdminUserApi.class, OrganApi.class, ProcessApi.class, SettingApi.class,PermissionApi.class})
@EnableFeignClients(clients = {AdminUserApi.class, OrganApi.class, ProcessApi.class, SettingApi.class,PermissionApi.class, OrderPlanApi.class})
public class RpcConfiguration {
}
@@ -4,15 +4,13 @@ package com.cf.imes.module.manage.service.pack;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cf.imes.framework.common.enums.OrderItemTypeEnum;
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
import com.cf.imes.framework.common.enums.UserSettingTypeEnum;
import com.cf.imes.framework.common.enums.*;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.Assert.AssertUtils;
import com.cf.imes.framework.common.util.json.JsonUtils;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
import com.cf.imes.module.executor.api.plan.OrderPlanApi;
import com.cf.imes.module.manage.controller.admin.pack.prePack.PackPlateList;
import com.cf.imes.module.manage.controller.admin.pack.prePack.PrePackOptimizeInfo;
import com.cf.imes.module.manage.controller.admin.pack.prePack.PrePackReqVO;
@@ -80,7 +78,6 @@ public class PackServiceImpl implements PackService {
@Resource
private OrdersMapper ordersMapper;
@Resource
private SnowflakeIdWorker3rd idWorker;
@@ -91,6 +88,9 @@ public class PackServiceImpl implements PackService {
@Resource
private SettingApi settingApi;
@Resource
private OrderPlanApi orderPlanApi;
// 打包分页查询
@Override
@@ -374,6 +374,7 @@ public class PackServiceImpl implements PackService {
@Transactional(rollbackFor = Exception.class)
public OrderPackRespVO updateParts(OrderPartsReqVO reqVO) {
validateOrdersExists(reqVO.getOrderId(),null);
// 判断包裹ID是否为空,为空,走新增,不为空,走更新
if (reqVO.getPackId() == null) {
@@ -404,6 +405,7 @@ public class PackServiceImpl implements PackService {
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackId(reqVO.getPackId(),reqVO.getOrderId(), getUserOrganId());
AssertUtils.notEmpty(orderPackageDO,ORDER_PACK_DATA_ERROR);
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(reqVO.getPackId(), reqVO.getOrderId(), getUserOrganId());
List<Long> partsList = orderItemDOS.stream().map(OrderItemDO::getPartsId).distinct().toList();
@@ -460,7 +462,7 @@ public class PackServiceImpl implements PackService {
OrderPackageDO packageDO = orderPackageMapper.selectById(packageID);
AssertUtils.notEmpty(packageDO,ORDER_PACK_DATA_ERROR );
AssertUtils.notEmpty(packageDO,ORDER_PACK_DATA_NULL_ERROR );
Long orderId = packageDO.getOrderId();
@@ -469,6 +471,11 @@ public class PackServiceImpl implements PackService {
AssertUtils.notEmpty(orderDO,ORDER_NO_DATA_ERROR);
orderDO.setPackaged(OrderPackageStatusEnum.UNPACKED.getStatus());
if(orderDO.getStatus().equals(OrderStatusEnum.FINISH_PRODUCTION.getStatus())){
orderDO.setStatus(OrderStatusEnum.IN_PRODUCTION.getStatus());
}
ordersMapper.updateById(orderDO);
packageDO.setStatus(OrderPackageStatusEnum.UNPACKED.getStatus());
@@ -484,6 +491,7 @@ public class PackServiceImpl implements PackService {
@Transactional(rollbackFor = Exception.class)
public OrderPackRespVO updatePack(OrderPackReqVO packageVO) {
validateOrdersExists(packageVO.getOrderId(),null);
// 判断包裹ID是否为空,为空,走新增,不为空,走更新
if (packageVO.getPackId() == null) {
@@ -509,6 +517,9 @@ public class PackServiceImpl implements PackService {
OrderPackageDO orderPackageDO = orderPackageMapper.selectByPackId(packageVO.getPackId(),packageVO.getOrderId(), getUserOrganId());
AssertUtils.notEmpty(orderPackageDO,ORDER_PACK_DATA_ERROR);
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackList(packageVO.getPackId(), packageVO.getOrderId(), getUserOrganId());
List<Long> plateList = orderItemDOS.stream().map(OrderItemDO::getPlateId).distinct().toList();
@@ -588,9 +599,16 @@ public class PackServiceImpl implements PackService {
// 修改生产单的打包状态为已打包
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
if(orderPlanApi.getOrder(orderId).getData()){
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
}
ordersMapper.updateById(orderDO);
}
@@ -622,6 +640,8 @@ public class PackServiceImpl implements PackService {
@Transactional(rollbackFor = Exception.class)
public void deleteOrderPack(PackReqVO reqVO) {
// 判断包裹的类型是否为其他类型,如果是,则删除其包裹信息
if (reqVO.getIsOther()) {
@@ -900,6 +920,9 @@ public class PackServiceImpl implements PackService {
if (orderItemDoPartsList.isEmpty()) {
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
if(orderPlanApi.getOrder(reqVO.getOrderId()).getData()){
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
}
ordersMapper.updateById(orderDO);
}
@@ -952,6 +975,18 @@ public class PackServiceImpl implements PackService {
}
private void validateOrdersExists(Long orderId, Long packId) {
OrderDO orderDO = ordersMapper.selectById(orderId);
AssertUtils.notEmpty(orderDO,ORDER_PACK_ERROR);
if(packId != null){
OrderPackageDO orderPackageDO = orderPackageMapper.selectById(packId);
AssertUtils.notEmpty(orderPackageDO,ORDER_PACK_DATA_ERROR);
}
}
// 类型转换
private OrderPackRespVO typeConversion(OrderPackageDO orderPackageDO) {
return OrderPackRespVO.builder()