mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
新增排单-是否混单判断更改,未排单-板材查询参数更改,优化生产,保存优化结果异常提示补全,
This commit is contained in:
+1
-1
@@ -85,7 +85,7 @@ public class OrderPageReqVOCopy extends PageParam {
|
||||
|
||||
@Schema(description = "商品ID-板材库对应的大板ID-由板材查询生产单时传")
|
||||
// @Size(max = 20,message = "最多可同时查询20个板材")
|
||||
private List<String> goodsId;
|
||||
private List<String> goodsIds;
|
||||
|
||||
@Schema(description = "排单ID-修改排单时为必传条件")
|
||||
private Long planId;
|
||||
|
||||
-4
@@ -18,10 +18,6 @@ public class PlanSaveReqVO {
|
||||
private Long id;
|
||||
|
||||
|
||||
@Schema(description = "是否开启混单", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Boolean isMix;
|
||||
|
||||
|
||||
@Schema(description = "排单状态:0 未开料,1 开料中,2 已开料,3 已投产")
|
||||
// @NotNull(message = "排单状态:0 未开料,1 已投产,2 开料中,3 已开料", groups = UpdateGroup.class)
|
||||
@PlanStatusValid
|
||||
|
||||
-19
@@ -234,25 +234,6 @@ public interface OrderMapper extends BaseMapperX<OrderDO> {
|
||||
List<OrderDO> selectOrderDataSource(@Param("filed") String filed,@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
default List<OrderDO> selectOrderIdsList(OrderPageReqVOCopy pageReqVO, List<Integer> statusList, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<OrderDO>()
|
||||
.eqIfPresent(OrderDO::getOrganId, organId)
|
||||
.eq(OrderDO::getDeleted, false)
|
||||
.in(OrderDO::getStatus,statusList)
|
||||
.likeIfPresent(OrderDO::getId,pageReqVO.getOrderId() != null ? pageReqVO.getOrderId() : null)
|
||||
.inIfPresent(OrderDO::getId,pageReqVO.getOrderIds())
|
||||
.likeIfPresent(OrderDO::getCustomOrderNo,pageReqVO.getDefaultId())
|
||||
.likeIfPresent(OrderDO::getCustomer,pageReqVO.getConsignee())
|
||||
.likeIfPresent(OrderDO::getAddress,pageReqVO.getConsigneeAddress())
|
||||
.betweenIfPresent(OrderDO::getOrderDate,pageReqVO.getCreateTime())
|
||||
.select(OrderDO::getId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<OrderGoodsResp> selectGoodsListByGoodsId(@Param(Constants.WRAPPER) QueryWrapperX<OrderDO> queryWrapperX);
|
||||
|
||||
|
||||
|
||||
-10
@@ -1,9 +1,7 @@
|
||||
package com.cf.imes.module.executor.dal.mysql.pack;
|
||||
|
||||
|
||||
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.module.executor.dal.dataobject.pack.OrderPackageDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@@ -16,12 +14,4 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
|
||||
|
||||
void updatePackList(@Param("orderId") Long orderId, @Param("packIds") List<Long> packIds, @Param("organId") Long organId);
|
||||
|
||||
default List<OrderPackageDO> selectPackStatusList(Long orderId,Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<OrderPackageDO>()
|
||||
.eq(OrderPackageDO::getOrganId,organId)
|
||||
.eq(OrderPackageDO::getDeleted,false)
|
||||
.eq(OrderPackageDO::getStatus, OrderPackageStatusEnum.PACKAGED.getStatus())
|
||||
.eqIfPresent(OrderPackageDO::getOrderId, orderId));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -176,7 +176,7 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
|
||||
List<PlateDetailRespVO> selectPlateListByGoodsIds(@Param("orderIds") List<Long> orderIds,@Param("goodsIdList") List<Long> goodsIdList, @Param("organId") Long organId);
|
||||
|
||||
List<PlateDetailRespVO> selectNoPlanPlate(@Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
|
||||
List<PlateDetailRespVO> selectNoPlanPlate(@Param("orderIds") List<Long> orderIds, @Param("ids") List<Long> ids, @Param("organId") Long organId);
|
||||
|
||||
|
||||
// 批量删除
|
||||
|
||||
+19
-9
@@ -669,9 +669,25 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
AssertUtils.notEmpty(actualGoodsLists,PLAN_NO_ACTUAL_PLATE);
|
||||
|
||||
// 先根据排单查找是否有优化数据,如果有,删除
|
||||
Long planId = boardModelDO.getPlanId();
|
||||
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_CONFIG_ID,FIELD_PLAN_ID,req.getPlanConfigId(), planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
|
||||
|
||||
// 删除原来的优化信息
|
||||
if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){
|
||||
|
||||
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||
|
||||
Boolean isLock = Optional.ofNullable(optimizeBoardModelDO.getIsLock()).orElse(false);
|
||||
|
||||
if(Boolean.TRUE.equals(isLock)){
|
||||
throw exception(THIS_PLAN_IS_LOCK);
|
||||
}
|
||||
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_CONFIG_ID,FIELD_PLAN_ID,req.getPlanConfigId(),planId,ORDER_OPTIMIZE_PLATE_MODEL);
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<PlateDO> plateDOS = planItemMapper.selectOrderPlanPlateListByPlanId(planId,getUserOrganId());
|
||||
|
||||
@@ -683,13 +699,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
plateMapper.updateBatch(plateDOS);
|
||||
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_CONFIG_ID,FIELD_PLAN_ID,req.getPlanConfigId(), planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
|
||||
|
||||
// 删除原来的优化信息
|
||||
if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_CONFIG_ID,FIELD_PLAN_ID,req.getPlanConfigId(),planId,ORDER_OPTIMIZE_PLATE_MODEL);
|
||||
|
||||
}
|
||||
|
||||
// 保存优化后的大板数据
|
||||
esUtils.saveEsDocument(ORDER_OPTIMIZE_PLATE_MODEL,req.getOptimizeBoardModelDOS());
|
||||
@@ -870,12 +879,13 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
AssertUtils.notEmpty(goodsReqVOS,ORDER_GOODS_DATA_ERROR);
|
||||
|
||||
List<Long> ids = goodsReqVOS.stream().map(GoodsReqVO::getId).toList();
|
||||
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
|
||||
AssertUtils.notEmpty(orderDOS,THIS_ORDER_PLATE_DATA_ERROR);
|
||||
|
||||
List<PlateDetailRespVO> plateDetailRespVOS = plateMapper.selectNoPlanPlate(orderIds,getUserOrganId());
|
||||
List<PlateDetailRespVO> plateDetailRespVOS = plateMapper.selectNoPlanPlate(orderIds,ids,getUserOrganId());
|
||||
|
||||
AssertUtils.notEmpty(plateDetailRespVOS,ORDER_PLATE_ERROR);
|
||||
|
||||
|
||||
+10
-9
@@ -1,5 +1,6 @@
|
||||
package com.cf.imes.module.executor.service.order;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -33,7 +34,6 @@ import com.cf.imes.module.executor.dal.dataobject.orderParts.PartsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelCompressDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderPlateList;
|
||||
import com.cf.imes.module.executor.dal.dataobject.pack.OrderPackageDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO;
|
||||
@@ -320,7 +320,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
List<Long> partsList = orderPartsMapper.selectPartsIdListByBodyId(bodyIds, getUserOrganId(), orderId);
|
||||
|
||||
if (!partsList.isEmpty()){
|
||||
// // 判断是否含有重复的配件
|
||||
// 判断是否含有重复的配件
|
||||
Iterator<Long> iterator = partsList.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Long id = iterator.next(); // 配件id判断是否重复
|
||||
@@ -1100,27 +1100,28 @@ public class OrderServiceImpl implements OrderService {
|
||||
|
||||
|
||||
// 删除包裹,只需删除,无需还原
|
||||
List<Long> packIds = orderItemMapper.selectPackId(orderId,bodyIds, getUserOrganId()).stream().map(OrderItemDO::getPackageId).distinct().toList();
|
||||
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackId(orderId, bodyIds, getUserOrganId());
|
||||
|
||||
orderPackageMapper.updatePackList(orderId, packIds, getUserOrganId());
|
||||
if(CollUtil.isNotEmpty(orderItemDOS)) {
|
||||
|
||||
orderItemMapper.deletePackList(orderId, packIds, getUserOrganId());
|
||||
List<Long> packIds = orderItemDOS.stream().map(OrderItemDO::getPackageId).distinct().toList();
|
||||
|
||||
orderPrepackagedMapper.deletePacked(orderId, getUserOrganId());
|
||||
orderPackageMapper.updatePackList(orderId, packIds, getUserOrganId());
|
||||
|
||||
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatusList(orderId, getUserOrganId());
|
||||
orderItemMapper.deletePackList(orderId, packIds, getUserOrganId());
|
||||
|
||||
if (orderPackageDOS.isEmpty()) {
|
||||
orderPrepackagedMapper.deletePacked(orderId, getUserOrganId());
|
||||
|
||||
OrderDO orderDO = orderMapper.selectById(orderId);
|
||||
|
||||
AssertUtils.notEmpty(orderDO,ORDER_NOT_EXISTS);
|
||||
|
||||
orderDO.setPackaged(OrderPackageStatusEnum.UNPACKED.getStatus());
|
||||
|
||||
orderMapper.updateById(orderDO);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 删除大板
|
||||
List<PlateDO> goodsList = plateMapper.selectPlateDeletedStatus(orderId, goodsIds, getUserOrganId());
|
||||
|
||||
|
||||
+17
-13
@@ -151,6 +151,8 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
Long processId = systemConfigRespDTO.getId();
|
||||
|
||||
Boolean isMix = systemConfigApi.getMultiColorConfigStatus().getCheckedData();
|
||||
|
||||
ArrayList<PlanDO> planDOS = new ArrayList<>();
|
||||
|
||||
List<Long> ids = new ArrayList<>();
|
||||
@@ -164,7 +166,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
SavePlanPlateList savePlanPlateList = Optional.ofNullable(createReqVO.getSavePlanPlateList()).orElseThrow(()-> new ServiceException(PLAN_PLATE_DATA_ERROR));
|
||||
|
||||
|
||||
if (Boolean.TRUE.equals(createReqVO.getIsMix())) {
|
||||
if (Boolean.TRUE.equals(isMix)) {
|
||||
|
||||
// 混单时走的逻辑
|
||||
List<SavePlanPlateList.PlateItemList> plateItemList = Optional.ofNullable(savePlanPlateList.getPlateItemList()).orElseThrow(()-> new ServiceException(PLAN_PLATE_DATA_ERROR));
|
||||
@@ -654,7 +656,19 @@ public class PlanServiceImpl implements PlanService {
|
||||
statusList.add(OrderStatusEnum.IN_PRODUCTION.getStatus());
|
||||
statusList.add(OrderStatusEnum.SORTED.getStatus());
|
||||
|
||||
List<String> goodsId = Optional.ofNullable(pageReqVO.getGoodsId()).orElse(new ArrayList<>());
|
||||
List<String> goodsId = Optional.ofNullable(pageReqVO.getGoodsIds()).orElse(new ArrayList<>());
|
||||
|
||||
List<Long> ids = new ArrayList<>();
|
||||
|
||||
if(CollUtil.isNotEmpty(goodsId)) {
|
||||
|
||||
List<Long> orderIdList = Optional.ofNullable(pageReqVO.getOrderIds()).orElse(new ArrayList<>());
|
||||
|
||||
List<GoodsDO> goodsDOS = goodsMapper.selectListByGoodsId(orderIdList,goodsId, getUserOrganId());
|
||||
ids.addAll(goodsDOS.stream().map(GoodsDO::getId).toList());
|
||||
|
||||
}
|
||||
|
||||
|
||||
QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>();
|
||||
queryWrapperX
|
||||
@@ -665,7 +679,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
.isNull(FIELD_PLAN_ID)
|
||||
.isNotNull(FIELD_OP_ID)
|
||||
|
||||
.inIfPresent("og.goods_id",goodsId)
|
||||
.inIfPresent("op.goods_id",ids)
|
||||
.inIfPresent("o.id",pageReqVO.getOrderIds())
|
||||
.likeIfPresent("o.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId() : null)
|
||||
.likeIfPresent(FIELD_CUSTOMER, pageReqVO.getConsignee())
|
||||
@@ -685,16 +699,6 @@ public class PlanServiceImpl implements PlanService {
|
||||
List<Long> orderIds = records.stream().map(OrderRespVOCopy::getOrderId).toList();
|
||||
|
||||
|
||||
List<Long> ids = new ArrayList<>();
|
||||
|
||||
if(CollUtil.isNotEmpty(goodsId)) {
|
||||
|
||||
List<GoodsDO> goodsDOS = goodsMapper.selectListByGoodsId(orderIds,goodsId, getUserOrganId());
|
||||
ids.addAll(goodsDOS.stream().map(GoodsDO::getId).toList());
|
||||
|
||||
}
|
||||
|
||||
|
||||
QueryWrapperX<PlateDO> queryWrapperX2 = new QueryWrapperX<>();
|
||||
queryWrapperX2
|
||||
.eq("op.organ_id",getUserOrganId())
|
||||
|
||||
+12
-7
@@ -327,15 +327,20 @@ public class PlateServiceImpl implements PlateService {
|
||||
|
||||
List<PlateResList> plateResLists = orderMapper.selectNoPlanOrderPlateList(queryWrapperX,pageNo,pageReqVO.getPageSize());
|
||||
|
||||
List<Long> plateIds = plateResLists.stream().map(PlateResList::getPlateId).toList();
|
||||
if(CollUtil.isEmpty(plateResLists)){
|
||||
|
||||
List<OrderModelDO> orderModelDOS = esUtils.getEsDocument(FIELD_PLATE_ID, plateIds, plateIds.size(), ORDER_PLATE_MODEL, OrderModelDO.class);
|
||||
return new PageResult<>();
|
||||
|
||||
|
||||
PlateModelDetailRespVO.builder()
|
||||
.plateResLists(new PageResult<>(plateResLists, (long) plateCount.size()))
|
||||
.plateModels(orderModelDOS)
|
||||
.build();
|
||||
}
|
||||
// List<Long> plateIds = plateResLists.stream().map(PlateResList::getPlateId).toList();
|
||||
//
|
||||
// List<OrderModelDO> orderModelDOS = esUtils.getEsDocument(FIELD_PLATE_ID, plateIds, plateIds.size(), ORDER_PLATE_MODEL, OrderModelDO.class);
|
||||
//
|
||||
//
|
||||
// PlateModelDetailRespVO.builder()
|
||||
// .plateResLists(new PageResult<>(plateResLists, (long) plateCount.size()))
|
||||
// .plateModels(orderModelDOS)
|
||||
// .build();
|
||||
|
||||
return new PageResult<>(plateResLists, (long) plateCount.size());
|
||||
|
||||
|
||||
+7
-1
@@ -521,13 +521,19 @@
|
||||
left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id
|
||||
|
||||
where op.organ_id = #{organId}
|
||||
and op.deleted = false
|
||||
|
||||
and op.order_id in
|
||||
<foreach collection="orderIds" item="orderIds" open="(" close=")" separator=",">
|
||||
#{orderIds}
|
||||
</foreach>
|
||||
|
||||
and op.goods_id in
|
||||
<foreach collection="ids" item="ids" open="(" close=")" separator=",">
|
||||
#{ids}
|
||||
</foreach>
|
||||
|
||||
and op.deleted = false
|
||||
|
||||
and opi.plan_id is null
|
||||
|
||||
|
||||
|
||||
+6
@@ -150,6 +150,12 @@ public class PackServiceImpl implements PackService {
|
||||
@Override
|
||||
public List<PlateDetailsRespVO> getOrdersPlateList(List<Long> orderIds) {
|
||||
|
||||
// List<OrderDO> orderDOS = ordersMapper.selectBatchIds(orderIds);
|
||||
// orderDOS.forEach(f->{
|
||||
// if(OrderPackageStatusEnum.PACKAGED.equals(f.getPackaged())){
|
||||
//// throw exception(ORDER_IS_PACK_ERROR,f.getId());
|
||||
// }
|
||||
// });
|
||||
|
||||
List<PlateDetailsRespVO> plateDetailsRespVOS = orderPlateMapper.selectOrderPlateList(orderIds,getUserOrganId());
|
||||
|
||||
|
||||
+6
@@ -49,4 +49,10 @@ public interface SystemConfigApi {
|
||||
@GetMapping(PREFIX + "/organ/process-config")
|
||||
@Operation(summary = "获取排单下加工方案组的配置信息和具体配置项的配置信息")
|
||||
CommonResult<List<ProcessSchemeDTO>> getProcessById(@RequestParam("processId") Long processId);
|
||||
|
||||
|
||||
@GetMapping(PREFIX + "/organ/multi-color-config-status")
|
||||
@Operation(summary = "查询组织的混单是否开启")
|
||||
CommonResult<Boolean> getMultiColorConfigStatus();
|
||||
|
||||
}
|
||||
|
||||
+1
@@ -345,6 +345,7 @@ public class ErrorCodeConstants {
|
||||
public static final ErrorCode THIS_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_039, "当前排单对应的板材数据为空,请重新进行排单或检查生产单对应的板材信息");
|
||||
public static final ErrorCode PLAN_PROCESS_CONFIG_IS_NULL = new ErrorCode(1_002_041_040, "排单:{} 对应的方案组为空,请进行配置");
|
||||
public static final ErrorCode PLAN_PROCESS_CONFIG_ALL_IS_NULL = new ErrorCode(1_002_041_041, "当前所选排单对应的方案组配置均为空,请重新进行方案组配置");
|
||||
public static final ErrorCode THIS_PLAN_IS_LOCK = new ErrorCode(1_002_041_042, "当前排单已被锁定,无法进行优化,请解锁后再进行优化");
|
||||
|
||||
|
||||
|
||||
|
||||
+11
@@ -237,6 +237,17 @@ public class SystemConfigApiImpl implements SystemConfigApi {
|
||||
return success(schemeDTOS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<Boolean> getMultiColorConfigStatus() {
|
||||
|
||||
|
||||
List<SystemConfigDO> systemConfigDOS = systemConfigMapper.selectSystemConfigList(SystemConfigTypeEnum.MULTI_COLOR_ORDER_PLAN.getType(), CommonStatusEnum.ENABLE.getStatus());
|
||||
|
||||
|
||||
return success(CollUtil.isNotEmpty(systemConfigDOS));
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void checkValueIsNotEmpty(List<?> value,String error) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user