This commit is contained in:
lym
2024-11-28 11:01:38 +08:00
72 changed files with 2094 additions and 398 deletions
@@ -45,4 +45,25 @@ public class OrderPartsRespVO {
@Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED)
private String remark;
@Schema(description = "配件颜色", requiredMode = Schema.RequiredMode.REQUIRED)
private String partsColor;
@Schema(description = "配件宽度", requiredMode = Schema.RequiredMode.REQUIRED)
private Double partsWidth;
@Schema(description = "配件长度", requiredMode = Schema.RequiredMode.REQUIRED)
private Double partsLength;
@Schema(description = "配件厚度", requiredMode = Schema.RequiredMode.REQUIRED)
private Double partsThickness;
@Schema(description = "配件主类:1封边2五金3组件", requiredMode = Schema.RequiredMode.REQUIRED)
private String category;
@Schema(description = "子配件ID列表,复合部件时记录子配件ID,半角逗号分隔", requiredMode = Schema.RequiredMode.REQUIRED)
private String subparts;
}
@@ -23,7 +23,7 @@ public class OtherPackReqVO {
@Schema(description = "配件名称", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "配件名称不能为空")
@Size(max = 30, message = "配件名称长度不能超过 64 个字符")
@Size(max = 64, message = "配件名称长度不能超过 64 个字符")
private String name;
@@ -31,6 +31,12 @@ public class OtherPackReqVO {
@NumberValid(name = "配件数量")
private Double num;
@Schema(description = "配件单位", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank(message = "配件单位不能为空")
@Size(max = 32, message = "配件单位长度不能超过 32 个字符")
private String unit;
@Schema(description = "包裹编号", requiredMode = Schema.RequiredMode.REQUIRED)
private String packNo;
@@ -105,4 +105,23 @@ public class PackageDetailsRespVO {
private String factory;
@Schema(description = "配件颜色", requiredMode = Schema.RequiredMode.REQUIRED)
private String partsColor;
@Schema(description = "配件宽度", requiredMode = Schema.RequiredMode.REQUIRED)
private Double partsWidth;
@Schema(description = "配件长度", requiredMode = Schema.RequiredMode.REQUIRED)
private Double partsLength;
@Schema(description = "配件厚度", requiredMode = Schema.RequiredMode.REQUIRED)
private Double partsThickness;
@Schema(description = "配件主类:1封边2五金3组件", requiredMode = Schema.RequiredMode.REQUIRED)
private String category;
@Schema(description = "子配件ID列表,复合部件时记录子配件ID,半角逗号分隔", requiredMode = Schema.RequiredMode.REQUIRED)
private String subparts;
}
@@ -10,7 +10,6 @@ import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
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.PlateAndPartIdList;
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;
@@ -73,8 +72,6 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
List<PackRespVO> selectPackPieceCount(@Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
List<PlateAndPartIdList> selectOrderPack(@Param("orderId") Long orderId,@Param("organId") Long organId);
// 删除当前生产单下所有的包裹
default void updateDelete(Long orderId,Long organId) {
@@ -3,6 +3,7 @@ package com.cf.imes.module.manage.dal.mysql.query;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateAndPartIdList;
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
import com.cf.imes.module.manage.controller.admin.process.vo.PlateDetails;
import com.cf.imes.module.manage.controller.admin.process.vo.ProcessPlateReqVO;
@@ -80,17 +81,6 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
}
default List<OrderItemDO> selectPartsList(Long orderId, Long organId) {
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
.eq(OrderItemDO::getOrganId, organId)
.eqIfPresent(OrderItemDO::getOrderId, orderId)
.eq(OrderItemDO::getPackageId,0)
.select(OrderItemDO::getPartsId));
}
default List<OrderItemDO> selectPackByPlateId(List<Long> plateId,Long orderId ,Long organId) {
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
.eq(OrderItemDO::getOrganId, organId)
@@ -98,4 +88,11 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
.inIfPresent(OrderItemDO::getPlateId, plateId)
.select(OrderItemDO::getPackageId));
}
List<PlateAndPartIdList> selectOrderPackPartsIds(@Param("orderId") Long orderId, @Param("organId") Long organId);
List<PlateAndPartIdList> selectOrderPackPlateIds(@Param("orderId") Long orderId,@Param("organId") Long organId);
}
@@ -44,6 +44,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -268,7 +269,6 @@ public class PackServiceImpl implements PackService {
@Override
public List<OrderPartsRespVO> getPartsList(OrderPartsReqVO reqVO) {
return orderPartsMapper.selectPartsList(reqVO.getOrderId(), getUserOrganId());
}
@@ -381,6 +381,7 @@ public class PackServiceImpl implements PackService {
if(orderDO.getStatus().equals(OrderStatusEnum.FINISH_PRODUCTION.getStatus())){
orderDO.setStatus(OrderStatusEnum.IN_PRODUCTION.getStatus());
orderDO.setFinishTime(null);
}
ordersMapper.updateById(orderDO);
@@ -491,10 +492,11 @@ public class PackServiceImpl implements PackService {
return false;
}
List<PlateAndPartIdList> plateAndPartIdLists = orderPackageMapper.selectOrderPack(orderId, getUserOrganId());
List<PlateAndPartIdList> partsIds = orderItemMapper.selectOrderPackPartsIds(orderId, getUserOrganId());
List<PlateAndPartIdList> plateIds = orderItemMapper.selectOrderPackPlateIds(orderId, getUserOrganId());
return plateAndPartIdLists.isEmpty();
return partsIds.isEmpty() && plateIds.isEmpty();
}
@@ -512,6 +514,7 @@ public class PackServiceImpl implements PackService {
if(orderPlanApi.getOrder(orderId).getData()){
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
orderDO.setFinishTime(LocalDateTime.now());
}
@@ -618,6 +621,7 @@ public class PackServiceImpl implements PackService {
OrderPartsNDO orderParts = BeanUtils.toBean(reqVO, OrderPartsNDO.class);
// 因为是外部配件,所以配件类型的名称固定为 “ 外部配件”
orderParts.setType("外部配件");
orderParts.setUnit(reqVO.getUnit());
orderPartsMapper.insert(orderParts);
@@ -665,6 +669,7 @@ public class PackServiceImpl implements PackService {
OrderPartsNDO orderParts = BeanUtils.toBean(reqVO, OrderPartsNDO.class);
// 因为是外部配件,所以配件类型的名称固定为 “ 外部配件”
orderParts.setType("外部配件");
orderParts.setUnit(reqVO.getUnit());
orderPartsMapper.insert(orderParts);
// 在生产单明细表中添加数据(生产单号,配件ID,包裹ID,部件数量)
@@ -825,13 +830,14 @@ public class PackServiceImpl implements PackService {
orderItemMapper.updateBatch(orderItemDOS);
// 查询配件是否为空,为空,修改生产单的状态为已打包
List<OrderItemDO> orderItemDoPartsList = orderItemMapper.selectPartsList(reqVO.getOrderId(), getUserOrganId());
List<PlateAndPartIdList> partsIds = orderItemMapper.selectOrderPackPartsIds(reqVO.getOrderId(), getUserOrganId());
if (orderItemDoPartsList.isEmpty()) {
if (partsIds.isEmpty()) {
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
if(Boolean.TRUE.equals(orderPlanApi.getOrder(reqVO.getOrderId()).getData())){
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
orderDO.setFinishTime(LocalDateTime.now());
}
ordersMapper.updateById(orderDO);
}
@@ -110,21 +110,6 @@
</select>
<select id="selectOrderPack"
resultType="com.cf.imes.module.manage.controller.admin.pack.vo.PlateAndPartIdList">
select distinct oi.plate_id,
oi.parts_id
from order_package op
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id
where op.organ_id = #{organId} and op.order_id = #{orderId} and op.deleted = false and oi.package_id = 0
</select>
<select id="selectPackListByOrderId"
resultType="com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO">
@@ -316,5 +316,33 @@
</select>
<select id="selectOrderPackPartsIds"
resultType="com.cf.imes.module.manage.controller.admin.pack.vo.PlateAndPartIdList">
select distinct oi.parts_id
from order_item oi
join order_parts op on oi.organ_id = op.organ_id and oi.order_id = op.order_id and oi.parts_id = op.id
where oi.organ_id = #{organId} and oi.order_id = #{orderId} and oi.package_id = 0 and op.type != '封边条'
</select>
<select id="selectOrderPackPlateIds"
resultType="com.cf.imes.module.manage.controller.admin.pack.vo.PlateAndPartIdList">
select distinct plate_id
from order_item
where organ_id = #{organId}
and order_id = #{orderId}
and package_id = 0
and plate_id !=0
</select>
</mapper>
@@ -17,6 +17,12 @@
<result property="brand" column="brand"/>
<result property="factory" column="factory"/>
<result property="remark" column="remark"/>
<result property="partsColor" column="partsColor"/>
<result property="partsWidth" column="partsWidth"/>
<result property="partsLength" column="partsLength"/>
<result property="partsThickness" column="partsThickness"/>
<result property="category" column="category"/>
<result property="subparts" column="subparts"/>
</resultMap>
<select id="selectParts"
@@ -37,6 +43,12 @@
op.type as type,
op.remark as remark,
op.is_composite as isComposite,
op.color as partsColor,
op.width as partsWidth,
op.length as partsLength,
op.thickness as partsThickness,
op.category as category,
op.subparts as subparts,
oi.num as num
from order_parts op
@@ -65,6 +77,12 @@
<result property="brand" column="brand"/>
<result property="factory" column="factory"/>
<result property="remark" column="remark"/>
<result property="partsColor" column="partsColor"/>
<result property="partsWidth" column="partsWidth"/>
<result property="partsLength" column="partsLength"/>
<result property="partsThickness" column="partsThickness"/>
<result property="category" column="category"/>
<result property="subparts" column="subparts"/>
</resultMap>
<select id="selectPartsList"
parameterType="java.lang.Long"
@@ -72,11 +90,26 @@
select distinct
op.id as partsId,op.name,op.model,op.spec,oi.num as num,op.unit,op.brand,op.factory,op.remark,op.type
op.id as partsId,
op.name,
op.model,
op.spec,
oi.num as num,
op.unit,
op.brand,
op.factory,
op.remark,
op.color as partsColor,
op.width as partsWidth,
op.length as partsLength,
op.thickness as partsThickness,
op.category as category,
op.subparts as subparts,
op.type
from order_parts op
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.parts_id
where op.organ_id = #{organId} and op.order_id = #{orderId} and op.deleted = false and oi.package_id = 0
where op.organ_id = #{organId} and op.order_id = #{orderId} and op.deleted = false and op.type != '封边条' and oi.package_id = 0
</select>