diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java index c1b3902c1..38bc90321 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java @@ -444,8 +444,8 @@ public class PlanServiceImpl implements PlanService { .betweenIfPresent("a.width", new BigDecimal[]{vo.getWidthMinRang(), vo.getWidthMaxRang()}) .betweenIfPresent("a.height", new BigDecimal[]{vo.getLongMinRang(), vo.getLongMaxRang()}) .inIfPresent("a.filter_type", filterTypes) - .betweenIfPresent("f.delivery_date", new Date[]{vo.getBeginDate(), vo.getEndDate()}); - + .betweenIfPresent("f.delivery_date", new Date[]{vo.getBeginDate(), vo.getEndDate()}) + .orderByDesc("a.name"); PageDTO page = new PageDTO<>(vo.getPageNo(), vo.getPageSize()); IPage pageResult = plateMapper.selectPlateByPlanId(page, queryWrapperX); Set bodyIds = pageResult.getRecords().stream().map(PlateResList::getBodyId).collect(Collectors.toSet()); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml index b5c3bd75e..62493b34b 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml @@ -3,7 +3,7 @@ - SELECT i.order_id, p.id, p.plate_no, g.material, p.name, p.area, p.seal_left, p.seal_down, + SELECT distinct i.order_id, p.id, p.plate_no, g.material, p.name, p.area, p.seal_left, p.seal_down, p.seal_right, p.seal_up, p.texture, p.is_special_shaped, p.is_sculpt, p.unregular_point_count, p.front_hole_count, p.back_hole_count, p.side_hole_count,p.width,p.height,p.thickness,gp.name FROM order_item i @@ -27,7 +27,7 @@ - SELECT i.order_id, i.room_id, i.body_id, i.parts_id, p.`name` as part_name, i.num as plate_num + SELECT distinct i.order_id, i.room_id, i.body_id, i.parts_id, p.`name` as part_name, i.num as plate_num FROM `order_item` i RIGHT JOIN `order_parts` p ON i.parts_id = p.id WHERE i.order_id = #{orderId} AND i.organ_id = #{organId} AND p.deleted = #{deleted} @@ -171,13 +171,13 @@ from order_item oi left join order_package op on oi.order_id = op.order_id and oi.organ_id = op.organ_id - where oi.parts_id = '' and oi.organ_id = #{organId} + where oi.parts_id = 0 and oi.organ_id = #{organId} and oi.order_id in #{orderIds} - group by oi.order_id,oi.plate_id,op.id,op.package_no; + group by oi.order_id,oi.plate_id,op.id,op.package_no,op.status; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml index 4a8f2154b..92d0861bd 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml @@ -4,7 +4,7 @@ - SELECT a.id, + SELECT distinct + a.id, a.goods_id, a.name, a.material, @@ -45,7 +46,7 @@ - select op.id as plan_id, op.plan_no, op.type as op_type, op.status as op_status, op.machine_id, op.plan_time, op.produce_time, op.remark as op_remark, op.operator, + select distinct op.id as plan_id, op.plan_no, op.type as op_type, op.status as op_status, op.machine_id, op.plan_time, op.produce_time, op.remark as op_remark, op.operator, oi.order_id, opl.id as plateId, opl.order_id opl_order_id, opl.name opl_name, opl.plate_no, opl.type as opl_type, opl.goods_id as opl_goods_id, opl.width opl_width, opl.height opl_height, opl.thickness as opl_thickness, opl.split_width, opl.split_height, opl.split_thickness, opl.seal_left, opl.seal_right, opl.seal_up, opl.seal_down, opl.area, opl.texture, opl.hole_face, opl.hole_arrange, opl.unregular_point_count, opl.front_hole_count, @@ -111,7 +111,7 @@ resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize" parameterType="java.lang.Long"> - select a.id, a.goods_name, a.material, a.color, a.width, a.height, a.thickness, count(b.id) as plateNum, d.* + select distinct a.id, a.goods_name, a.material, a.color, a.width, a.height, a.thickness, count(b.id) as plateNum, d.* from order_goods a left join order_plate b on a.id = b.goods_id and a.organ_id = b.organ_id left join order_item c on c.order_id = b.order_id and c.organ_id = b.organ_id diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml index 13a1fa43e..7667cfffc 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml @@ -5,7 +5,7 @@ - select a.order_id, a.plate_no , a.name as plateName,a.is_special_shaped,a.is_sculpt,a.area,a.seal_left,a.seal_right,a.seal_up,a.seal_down, e.material, e.color, a.width, a.height, a.thickness, b.room_id, b.body_id + select distinct a.order_id, a.plate_no , a.name as plateName,a.is_special_shaped,a.is_sculpt,a.area,a.seal_left,a.seal_right,a.seal_up,a.seal_down, e.material, e.color, a.width, a.height, a.thickness, b.room_id, b.body_id from order_plate a LEFT JOIN order_item b ON a.id = b.plate_id AND a.order_id = b.order_id and a.organ_id = b.organ_id LEFT JOIN order_goods e ON e.id = a.goods_id AND e.order_id = a.order_id and e.organ_id = a.organ_id @@ -40,7 +40,7 @@ - SELECT a.id, a.plate_no, a.height, a.thickness, a.width, a.name, a.area, a.seal_left, a.seal_right, + SELECT distinct a.id, a.plate_no, a.height, a.thickness, a.width, a.name, a.area, a.seal_left, a.seal_right, a.seal_up, a.seal_down, a.texture, a.hole_face, a.hole_arrange, a.unregular_point_count, a.front_hole_count, a.back_hole_count, a.side_hole_count, a.front_model_count, a.back_model_count, a.remark, c.material, c.color FROM order_plate a @@ -63,7 +63,7 @@ - select op.id, + select distinct + op.id, op.name, op.goods_id, ogs.goods_name, @@ -242,7 +243,7 @@ diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java index c1b78ebca..c112aedf7 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java @@ -91,7 +91,7 @@ public class PackController { @GetMapping("/queryPackageDetails") - @Operation(summary = "查看包裹对应的板材信息") + @Operation(summary = "查询包裹的详细信息") @PreAuthorize("@ss.hasPermission('manage:query:query')") public CommonResult> queryPackageDetails(@Valid PackDetailsReqVO reqVO){ diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/DeleteOtherPartsReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/DeleteOtherPartsReqVO.java index 409aaff6c..885da7b7c 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/DeleteOtherPartsReqVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/DeleteOtherPartsReqVO.java @@ -11,8 +11,6 @@ import lombok.ToString; public class DeleteOtherPartsReqVO { - @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED) - private Long orderId; @Schema(description = "包裹Id", requiredMode = Schema.RequiredMode.REQUIRED) private Long packageId; @@ -21,6 +19,10 @@ public class DeleteOtherPartsReqVO { private Long partsId; + @Schema(description = "是否是其他类型的配件", requiredMode = Schema.RequiredMode.REQUIRED) + private Boolean isOtherParts; + + } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java index 222e0ea6c..0e9801914 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java @@ -61,4 +61,15 @@ public interface OrderPackageMapper extends BaseMapperX { .eq(OrderPackageDO::getOrganId,organId) .eqIfPresent(OrderPackageDO::getOrderId, orderId)); } + + + default List selectPackList(Long packageId,Long organId) { + return selectList(new LambdaQueryWrapperX() + .eq(OrderPackageDO::getOrganId,organId) + .eqIfPresent(OrderPackageDO::getId, packageId)); + } + + void updatePackStatus(Long packageId); + + } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java index 75a8bde94..68e36213d 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java @@ -18,7 +18,9 @@ import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; + import java.util.List; +import java.util.stream.Collectors; @Mapper public interface OrderItemMapper extends BaseMapperX { @@ -41,14 +43,13 @@ public interface OrderItemMapper extends BaseMapperX { - void deleteOrderPack(@Param("reqVO") PackReqVO reqVO); + void deleteOrderPack(@Param("packId") Long packId); void deleteOtherParts(@Param("partsId") Long partsId); - void deleteParts(@Param("reqVO") PackReqVO reqVO); void insertPackId(@Param("plateIdList") List plateIdList, @Param("packId") Long packId); @@ -84,4 +85,10 @@ public interface OrderItemMapper extends BaseMapperX { .eq(OrderItemDO::getOrganId, organId) .eqIfPresent(OrderItemDO::getPackageId, packId)); } + + + void deleteParts(@Param("packageId") Long packageId, @Param("partsIds") List partsIds); + + void updateParts(@Param("partsId") Long partsId,@Param("packageId") Long packageId); + } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.java index 96dc6e217..f76b23d31 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.java @@ -29,7 +29,7 @@ public interface OrderPartsMapper extends BaseMapperX { List selectOrderParts(@Param("orderNo")Long orderNo,@Param("packageNo") Long packageNo); - void deleteOrderParts(@Param("packageId") Long packageId); + void deleteOrderParts(@Param("partsIds") List partsIds); default OrderPartsNDO selectOneParts(String otherPartsName,Long organId) { diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java index ddbaffe9e..337d46310 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java @@ -215,11 +215,13 @@ public class PackServiceImpl implements PackService { // 生产明细表新增的配件ID - orderItemMapper.insertParts(reqVO.getAddPartsList(),reqVO.getPackId(),reqVO.getOrderNo()); - + if(!reqVO.getAddPartsList().isEmpty()) { + orderItemMapper.insertParts(reqVO.getAddPartsList(), reqVO.getPackId(), reqVO.getOrderNo()); + } // 生产明细表删除的配件ID - orderItemMapper.deletePartsList(reqVO.getDeletePartsList(),reqVO.getPackId(),reqVO.getOrderNo()); - + if(!reqVO.getDeletePartsList().isEmpty()) { + orderItemMapper.deletePartsList(reqVO.getDeletePartsList(), reqVO.getPackId(), reqVO.getOrderNo()); + } orderPackageDO.setStatus(OrderPackageStatusEnum.PACKAGED.getStatus()); orderPackageMapper.updateById(orderPackageDO); @@ -329,8 +331,9 @@ public class PackServiceImpl implements PackService { orderPackageDO.setRemark(packageVO.getRemark()); orderPackageMapper.insert(orderPackageDO); // 生产单明细表新增包裹 ID - orderItemMapper.insertPackId(packageVO.getAddPlateIdList(), orderPackageDO.getId()); - + if(packageVO.getAddPlateIdList()!=null) { + orderItemMapper.insertPackId(packageVO.getAddPlateIdList(), orderPackageDO.getId()); + } return typeConversion(orderPackageDO); } @@ -363,11 +366,14 @@ public class PackServiceImpl implements PackService { // 生产明细表新增包裹ID - orderItemMapper.insertPackId(packageVO.getAddPlateIdList(), packageVO.getPackId()); + if(!packageVO.getAddPlateIdList().isEmpty()) { + orderItemMapper.insertPackId(packageVO.getAddPlateIdList(), packageVO.getPackId()); + } // 移除生产明细表中板件对应的包裹ID - orderItemMapper.deletePackId(packageVO.getDeletePlateIdList(), packageVO.getPackId()); - + if(!packageVO.getDeletePlateIdList().isEmpty()) { + orderItemMapper.deletePackId(packageVO.getDeletePlateIdList(), packageVO.getPackId()); + } orderPackageDO.setStatus(OrderPackageStatusEnum.PACKAGED.getStatus()); orderPackageMapper.updateById(orderPackageDO); @@ -414,13 +420,23 @@ public class PackServiceImpl implements PackService { // 判断包裹的类型是否为其他类型,如果是,则删除其包裹信息 if (reqVO.getIsOther() == true) { - orderPartsMapper.deleteOrderParts(reqVO.getPackageId()); + List partsIds = orderItemMapper.selectPackList(reqVO.getPackageId(), getUserOrganId()) + .stream().map(m -> m.getPartsId()) + .distinct() + .collect(Collectors.toList()); + + orderPartsMapper.deleteOrderParts(partsIds); + orderPackageMapper.updateParts(reqVO.getPackageId(), reqVO.getPackageNo()); - orderItemMapper.deleteParts(reqVO); + + + orderItemMapper.deleteParts(reqVO.getPackageId(),partsIds); return; } - orderItemMapper.deleteOrderPack(reqVO); + orderPackageMapper.updateParts(reqVO.getPackageId(),reqVO.getPackageNo()); + + orderItemMapper.deleteOrderPack(reqVO.getPackageId()); } @@ -438,6 +454,8 @@ public class PackServiceImpl implements PackService { // 配件表新增数据 OrderPartsNDO orderParts = BeanUtils.toBean(reqVO, OrderPartsNDO.class); + // 因为是外部配件,所以配件类型的名称固定为 “ 外部配件” + orderParts.setType("外部配件"); orderPartsMapper.insert(orderParts); @@ -485,6 +503,8 @@ public class PackServiceImpl implements PackService { // 配件表新增数据 OrderPartsNDO orderParts = BeanUtils.toBean(reqVO, OrderPartsNDO.class); + // 因为是外部配件,所以配件类型的名称固定为 “ 外部配件” + orderParts.setType("外部配件"); orderPartsMapper.insert(orderParts); // 在生产单明细表中添加数据(生产单号,配件ID,包裹ID,部件数量(目前一直为1)) @@ -512,10 +532,14 @@ public class PackServiceImpl implements PackService { @Transactional(rollbackFor = Exception.class) public void deleteOtherParts(DeleteOtherPartsReqVO reqVO) { - // 更新配件表中配件为逻辑删除 - orderPartsMapper.updateParts(reqVO.getPartsId()); - orderItemMapper.deleteOtherParts(reqVO.getPartsId()); + if(reqVO.getIsOtherParts()) { + // 更新配件表中配件为逻辑删除 + orderPartsMapper.updateParts(reqVO.getPartsId()); + orderItemMapper.deleteOtherParts(reqVO.getPartsId()); + } + + orderItemMapper.updateParts(reqVO.getPartsId(),reqVO.getPackageId()); } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml index b8824a7d5..e4d4bbd65 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml @@ -14,7 +14,7 @@ resultMap="PackMap"> - select + select DISTINCT count(DISTINCT oi.package_id ) as numberOfPackages, count(DISTINCT oi.plate_id) as packagedBoard @@ -55,7 +55,7 @@ parameterType="java.lang.Long" resultMap="PlateDetailsMap"> - select + select DISTINCT ob.room_name as roomName, ob.name as bodyName, op.id as palteId, @@ -84,7 +84,7 @@ oi.organ_id = #{organId} and op.id not in ( - select oi2.plate_id + select DISTINCT oi2.plate_id from order_item oi2 where oi2.order_id = #{orderNo} and oi2.package_id <> ''); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.xml index cb871055c..25338006f 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.xml @@ -31,7 +31,7 @@ parameterType="com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlatePageReqVO"> - select + select DISTINCT o.id as orderId, ob.name as cabinetName, op.id as plateNo, @@ -93,7 +93,7 @@ - select ob.room_name - from order_item oi - join order_body ob on oi.body_id = ob.id - where oi.plate_id = #{plateId}; +-- select ob.room_name +-- from order_item oi +-- join order_body ob on oi.body_id = ob.id +-- where oi.plate_id = #{plateId}; @@ -331,17 +336,17 @@ diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.xml index cb37adb4a..a6f0cb110 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.xml @@ -60,11 +60,15 @@ parameterType="java.lang.Long" resultMap="PartsListMap"> - select - id as partsId,name,model,spec,count(name) as num,unit,brand,factory,remark - from order_parts where order_id = #{orderId} and organ_id = #{organId} - group by partsId,name,model,spec,unit,brand,factory,remark; + select distinct + op.id as partsId,op.name,op.model,op.spec,count(op.name) as num,op.unit,op.brand,op.factory,op.remark + from order_parts op + join order_item oi on op.id = oi.parts_id and op.organ_id = oi.organ_id + + where op.order_id = #{orderId} and oi.package_id = 0 + + group by partsId,op.name,op.model,op.spec,op.unit,op.brand,op.factory,op.remark; @@ -77,7 +81,7 @@ resultMap="PartsListMap"> - select + select distinct op.id as partsId, op.name as name, op.model as model , @@ -103,8 +107,12 @@ - update order_parts op set op.deleted = true where op.id in ( - select oi.parts_id from order_item oi where package_id =#{packageId}); + + update order_parts op set op.deleted = true where op.id in + + + #{id} +