mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 13:42:07 +08:00
1、混单创建排单提示小板已排单问题修复,创建混单order_plan真实使用大板商品赋值规则修改;2、优化真实大板查询修复;3、订单详情-配件/组件详情列表不显示修复;
This commit is contained in:
+9
@@ -7,6 +7,7 @@ import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
|||||||
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.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO;
|
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderGoodsResp;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanPlateStatisticsRespVO;
|
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanPlateStatisticsRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanStatisticsAreaRespVO;
|
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanStatisticsAreaRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanStatisticsCountRespVO;
|
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanStatisticsCountRespVO;
|
||||||
@@ -123,6 +124,14 @@ public interface PlanMapper extends BaseMapperX<PlanDO> {
|
|||||||
|
|
||||||
List<PlanDO> selectIsTopDownPlan(@Param("updateTime") LocalDateTime updateTime,@Param("organId") Long organId);
|
List<PlanDO> selectIsTopDownPlan(@Param("updateTime") LocalDateTime updateTime,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询排单下的材质、颜色、品牌、厚度分组
|
||||||
|
* @param planId
|
||||||
|
* @param organId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<OrderGoodsResp> selectPlanGoodsList(@Param("planId") Long planId, @Param("organId") Long organId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 统计涉及移除小板的排单下还存在的排单数量
|
* 统计涉及移除小板的排单下还存在的排单数量
|
||||||
*
|
*
|
||||||
|
|||||||
+16
-1
@@ -28,6 +28,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
|||||||
import com.cf.imes.framework.common.enums.OrderPlateCutStatusEnum;
|
import com.cf.imes.framework.common.enums.OrderPlateCutStatusEnum;
|
||||||
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
||||||
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
||||||
|
import com.cf.imes.framework.common.enums.PlanTypeEnum;
|
||||||
import com.cf.imes.framework.common.exception.ServiceException;
|
import com.cf.imes.framework.common.exception.ServiceException;
|
||||||
import com.cf.imes.framework.common.pojo.PageResult;
|
import com.cf.imes.framework.common.pojo.PageResult;
|
||||||
import com.cf.imes.framework.common.util.Assert.AssertUtils;
|
import com.cf.imes.framework.common.util.Assert.AssertUtils;
|
||||||
@@ -51,6 +52,7 @@ import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
|||||||
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderPlateModel;
|
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderPlateModel;
|
||||||
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.plate.PlateDO;
|
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO;
|
import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO;
|
||||||
import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
|
import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
|
||||||
import com.cf.imes.module.executor.dal.mysql.order.OrderMapper;
|
import com.cf.imes.module.executor.dal.mysql.order.OrderMapper;
|
||||||
@@ -58,6 +60,7 @@ import com.cf.imes.module.executor.dal.mysql.orderGroup.OrderGroupMapper;
|
|||||||
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.planItem.PlanItemMapper;
|
import com.cf.imes.module.executor.dal.mysql.planItem.PlanItemMapper;
|
||||||
|
import com.cf.imes.module.executor.dal.mysql.plate.PlateGoodMapper;
|
||||||
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.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;
|
||||||
@@ -145,6 +148,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
@Resource
|
@Resource
|
||||||
private PlanItemMapper planItemMapper;
|
private PlanItemMapper planItemMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private PlateGoodMapper plateGoodMapper;
|
||||||
|
|
||||||
private static final String FIELD_ORDER_ID = "orderId";
|
private static final String FIELD_ORDER_ID = "orderId";
|
||||||
private static final String FIELD_PLATE_ID = "plateId";
|
private static final String FIELD_PLATE_ID = "plateId";
|
||||||
private static final String FIELD_PLAN_ID = "planId";
|
private static final String FIELD_PLAN_ID = "planId";
|
||||||
@@ -398,6 +404,15 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
List<OptimizeRemainPlate> optimizeRemainPlates = BeanUtils.toBean(remainPlateDOS, OptimizeRemainPlate.class);
|
List<OptimizeRemainPlate> optimizeRemainPlates = BeanUtils.toBean(remainPlateDOS, OptimizeRemainPlate.class);
|
||||||
|
|
||||||
|
// 查询混单实际请求大板信息
|
||||||
|
PlanActualGoodsModelDO planActualGoodsModelDO = null;
|
||||||
|
if (planDO.getType().equals(PlanTypeEnum.MIXEDORDERPLAN.getType())) {
|
||||||
|
List<PlateGoodDO> plateGoodDOS = plateGoodMapper.selectGoodsByGoodsId(List.of(planDO.getGoodsId()), getUserOrganId());
|
||||||
|
if (CollUtil.isNotEmpty(plateGoodDOS)) {
|
||||||
|
planActualGoodsModelDO = BeanUtils.toBean(plateGoodDOS.get(0), PlanActualGoodsModelDO.class);
|
||||||
|
planActualGoodsModelDO.setPlanId(planId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 查询生产单对应的配件信息
|
// 查询生产单对应的配件信息
|
||||||
List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId());
|
List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId());
|
||||||
@@ -428,7 +443,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
.goodsList(goodsDOS)
|
.goodsList(goodsDOS)
|
||||||
.plateList(plateDetailRespVOS)
|
.plateList(plateDetailRespVOS)
|
||||||
.plateModels(orderModelDOS)
|
.plateModels(orderModelDOS)
|
||||||
.planActualGoodsModelDO(BeanUtil.copyProperties(goodsDOS.get(0), PlanActualGoodsModelDO.class))
|
.planActualGoodsModelDO(planActualGoodsModelDO)
|
||||||
.optimizeRemainPlates(optimizeRemainPlates)
|
.optimizeRemainPlates(optimizeRemainPlates)
|
||||||
.orderPartsRespVOS(printOrderPartsRespVOS)
|
.orderPartsRespVOS(printOrderPartsRespVOS)
|
||||||
.orderPartsRemarks(orderPartsRemarks)
|
.orderPartsRemarks(orderPartsRemarks)
|
||||||
|
|||||||
+16
-24
@@ -56,7 +56,6 @@ import com.cf.imes.module.executor.util.elasticsearch.EsUtils;
|
|||||||
import com.cf.imes.module.system.api.systemconfig.SystemConfigApi;
|
import com.cf.imes.module.system.api.systemconfig.SystemConfigApi;
|
||||||
import com.cf.imes.module.system.api.systemconfig.dto.SystemConfigRespDTO;
|
import com.cf.imes.module.system.api.systemconfig.dto.SystemConfigRespDTO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.aop.framework.AopContext;
|
import org.springframework.aop.framework.AopContext;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -69,7 +68,6 @@ import java.time.LocalDateTime;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.DATA_DATA_ERROR;
|
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.DATA_DATA_ERROR;
|
||||||
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.ES_DATA_ERROR;
|
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.ES_DATA_ERROR;
|
||||||
@@ -145,6 +143,8 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
private static final String FIELD_ORDER_DATE = "o.order_date";
|
private static final String FIELD_ORDER_DATE = "o.order_date";
|
||||||
private static final String FIELD_OP_ID = "op.id";
|
private static final String FIELD_OP_ID = "op.id";
|
||||||
private static final String FIELD_OP_DELETED = "op.deleted";
|
private static final String FIELD_OP_DELETED = "op.deleted";
|
||||||
|
private static final String ES_FIELD_NEWVALUE = "new_value";
|
||||||
|
private static final String ORDER_PLAN_PROCESS_SCHEME_STATUS_UPDATE_ERROR_MSG = "排单加工方案状态更新异常:";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@@ -340,19 +340,16 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
.set(PlateDO::getPlanId, 0L)
|
.set(PlateDO::getPlanId, 0L)
|
||||||
.set(PlateDO::getIsOptimized, false));
|
.set(PlateDO::getIsOptimized, false));
|
||||||
|
|
||||||
// 排单对应的商品id
|
|
||||||
String goodsId = planDO.getGoodsId();
|
|
||||||
String orderNos = Optional.ofNullable(planDO.getOrderNos()).orElse("[]");
|
String orderNos = Optional.ofNullable(planDO.getOrderNos()).orElse("[]");
|
||||||
|
|
||||||
// 排单下的订单号列表
|
// 排单下的订单号列表
|
||||||
Set<Long> planOrderIds = JSON.parseArray(orderNos).toJavaList(Long.class).stream().collect(Collectors.toSet());
|
Set<Long> planOrderIds = JSON.parseArray(orderNos).toJavaList(Long.class).stream().collect(Collectors.toSet());
|
||||||
orderIds.addAll(planOrderIds);
|
orderIds.addAll(planOrderIds);
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(planOrderIds) && StringUtils.isNotEmpty(goodsId)) {
|
if (CollUtil.isNotEmpty(planOrderIds)) {
|
||||||
// 查询排单下所有订单材质order_goods
|
// 查询排单下所有订单材质order_goods
|
||||||
List<GoodsDO> goodsDO = goodsMapper.selectList(new LambdaQueryWrapper<GoodsDO>()
|
List<GoodsDO> goodsDO = goodsMapper.selectList(new LambdaQueryWrapper<GoodsDO>()
|
||||||
.in(GoodsDO::getOrderId, planOrderIds)
|
.in(GoodsDO::getOrderId, planOrderIds)
|
||||||
.eq(GoodsDO::getGoodsId, goodsId)
|
|
||||||
.eq(GoodsDO::getOrganId, getUserOrganId())
|
.eq(GoodsDO::getOrganId, getUserOrganId())
|
||||||
.eq(GoodsDO::getDeleted, false));
|
.eq(GoodsDO::getDeleted, false));
|
||||||
|
|
||||||
@@ -1334,7 +1331,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
))
|
))
|
||||||
.script(s -> s.inline(i -> i
|
.script(s -> s.inline(i -> i
|
||||||
.source("ctx._source.isNewInsertPlate = params.new_value")
|
.source("ctx._source.isNewInsertPlate = params.new_value")
|
||||||
.params("new_value", JsonData.of(Boolean.TRUE))
|
.params(ES_FIELD_NEWVALUE, JsonData.of(Boolean.TRUE))
|
||||||
));
|
));
|
||||||
|
|
||||||
UpdateByQueryRequest request = builder.build();
|
UpdateByQueryRequest request = builder.build();
|
||||||
@@ -1461,7 +1458,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
for (SavePlanPlateList.GoodsItemList item : items) {
|
for (SavePlanPlateList.GoodsItemList item : items) {
|
||||||
// 将 material 和 thickness 组合成键
|
// 将 material 和 thickness 组合成键
|
||||||
String key = item.getMaterial() + "|" + item.getThickness()+ "|" + item.getGoodsId();
|
String key = item.getMaterial() + "|" + item.getThickness();
|
||||||
|
|
||||||
// 如果键不存在,初始化一个新的列表
|
// 如果键不存在,初始化一个新的列表
|
||||||
groupedItems.putIfAbsent(key, new ArrayList<>());
|
groupedItems.putIfAbsent(key, new ArrayList<>());
|
||||||
@@ -1478,7 +1475,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
for (SavePlanPlateList.GoodsItemList item : items) {
|
for (SavePlanPlateList.GoodsItemList item : items) {
|
||||||
// 将 material 和 thickness 组合成键
|
// 将 material 和 thickness 组合成键
|
||||||
String key = item.getThickness().toString()+ "|" + item.getGoodsId();
|
String key = item.getThickness().toString();
|
||||||
|
|
||||||
// 如果键不存在,初始化一个新的列表
|
// 如果键不存在,初始化一个新的列表
|
||||||
groupedItems.putIfAbsent(key, new ArrayList<>());
|
groupedItems.putIfAbsent(key, new ArrayList<>());
|
||||||
@@ -1541,7 +1538,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
for (SavePlanPlateList.GoodsItemList item : items) {
|
for (SavePlanPlateList.GoodsItemList item : items) {
|
||||||
// 将 material 和 thickness 组合成键
|
// 将 material 和 thickness 组合成键
|
||||||
String key = item.getMaterial() + "|" + item.getThickness() + "|" + item.getGoodsId();
|
String key = item.getMaterial() + "|" + item.getThickness();
|
||||||
|
|
||||||
// 如果键不存在,初始化一个新的列表
|
// 如果键不存在,初始化一个新的列表
|
||||||
groupedItems.putIfAbsent(key, new ArrayList<>());
|
groupedItems.putIfAbsent(key, new ArrayList<>());
|
||||||
@@ -1562,7 +1559,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
for (SavePlanPlateList.GoodsItemList item : items) {
|
for (SavePlanPlateList.GoodsItemList item : items) {
|
||||||
// 将 material 和 thickness 组合成键
|
// 将 material 和 thickness 组合成键
|
||||||
String key = item.getThickness().toString()+ "|" + item.getGoodsId();
|
String key = item.getThickness().toString();
|
||||||
|
|
||||||
// 如果键不存在,初始化一个新的列表
|
// 如果键不存在,初始化一个新的列表
|
||||||
groupedItems.putIfAbsent(key, new ArrayList<>());
|
groupedItems.putIfAbsent(key, new ArrayList<>());
|
||||||
@@ -1585,7 +1582,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
for (SavePlanPlateList.GoodsItemList item : items) {
|
for (SavePlanPlateList.GoodsItemList item : items) {
|
||||||
// 将 material 和 thickness 组合成键
|
// 将 material 和 thickness 组合成键
|
||||||
String key = item.getMaterial() + "|" + item.getThickness() + "|" + item.getColor()+ "|" + item.getBrand() + "|" + item.getGoodsId();
|
String key = item.getMaterial() + "|" + item.getThickness() + "|" + item.getColor()+ "|" + item.getBrand();
|
||||||
|
|
||||||
// 如果键不存在,初始化一个新的列表
|
// 如果键不存在,初始化一个新的列表
|
||||||
groupedItems.putIfAbsent(key, new ArrayList<>());
|
groupedItems.putIfAbsent(key, new ArrayList<>());
|
||||||
@@ -1672,7 +1669,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
))
|
))
|
||||||
.script(s -> s.inline(i -> i
|
.script(s -> s.inline(i -> i
|
||||||
.source("ctx._source.isOptimized = params.new_value")
|
.source("ctx._source.isOptimized = params.new_value")
|
||||||
.params("new_value", JsonData.of(false))
|
.params(ES_FIELD_NEWVALUE, JsonData.of(false))
|
||||||
));
|
));
|
||||||
|
|
||||||
UpdateByQueryRequest request = builder.build();
|
UpdateByQueryRequest request = builder.build();
|
||||||
@@ -1681,7 +1678,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
elasticsearchClient.updateByQuery(request);
|
elasticsearchClient.updateByQuery(request);
|
||||||
|
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
log.error("排单加工方案状态更新异常:" + e.getMessage(), e);
|
log.error(ORDER_PLAN_PROCESS_SCHEME_STATUS_UPDATE_ERROR_MSG + e.getMessage(), e);
|
||||||
throw new ServiceException(DATA_DATA_ERROR);
|
throw new ServiceException(DATA_DATA_ERROR);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1707,7 +1704,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
))
|
))
|
||||||
.script(s -> s.inline(i -> i
|
.script(s -> s.inline(i -> i
|
||||||
.source("ctx._source.planId = params.new_value")
|
.source("ctx._source.planId = params.new_value")
|
||||||
.params("new_value", JsonData.of(planId))
|
.params(ES_FIELD_NEWVALUE, JsonData.of(planId))
|
||||||
));
|
));
|
||||||
|
|
||||||
UpdateByQueryRequest request = builder.build();
|
UpdateByQueryRequest request = builder.build();
|
||||||
@@ -1716,7 +1713,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
elasticsearchClient.updateByQuery(request);
|
elasticsearchClient.updateByQuery(request);
|
||||||
|
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
log.error("排单加工方案状态更新异常:"+e.getMessage());
|
log.error(ORDER_PLAN_PROCESS_SCHEME_STATUS_UPDATE_ERROR_MSG + e.getMessage(), e);
|
||||||
throw new ServiceException(DATA_DATA_ERROR);
|
throw new ServiceException(DATA_DATA_ERROR);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1754,7 +1751,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
))
|
))
|
||||||
.script(s -> s.inline(i -> i
|
.script(s -> s.inline(i -> i
|
||||||
.source("ctx._source.planId = params.new_value")
|
.source("ctx._source.planId = params.new_value")
|
||||||
.params("new_value", JsonData.of(0))
|
.params(ES_FIELD_NEWVALUE, JsonData.of(0))
|
||||||
));
|
));
|
||||||
|
|
||||||
UpdateByQueryRequest request = builder.build();
|
UpdateByQueryRequest request = builder.build();
|
||||||
@@ -1763,7 +1760,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
elasticsearchClient.updateByQuery(request);
|
elasticsearchClient.updateByQuery(request);
|
||||||
|
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
log.error("排单加工方案状态更新异常:"+e.getMessage());
|
log.error(ORDER_PLAN_PROCESS_SCHEME_STATUS_UPDATE_ERROR_MSG + e.getMessage(), e);
|
||||||
throw new ServiceException(DATA_DATA_ERROR);
|
throw new ServiceException(DATA_DATA_ERROR);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1919,10 +1916,6 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
Long planId = (Long) identifierGenerator.nextId(null);
|
Long planId = (Long) identifierGenerator.nextId(null);
|
||||||
|
|
||||||
// String key = item.getMaterial() + "|" + item.getThickness() + "|" + item.getColor()+ "|" + item.getBrand() + "|" + item.getGoodsId();
|
|
||||||
// 截取key中的goodsId
|
|
||||||
String goodsId = key.substring(key.lastIndexOf("|") + 1);
|
|
||||||
|
|
||||||
// 创建排单
|
// 创建排单
|
||||||
planDOS.add(PlanDO.builder()
|
planDOS.add(PlanDO.builder()
|
||||||
.id(planId)
|
.id(planId)
|
||||||
@@ -1934,7 +1927,6 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
.status(PlanStatusEnum.NOCUTTING.getStatus())
|
.status(PlanStatusEnum.NOCUTTING.getStatus())
|
||||||
.operator(loginUser.getNickname())
|
.operator(loginUser.getNickname())
|
||||||
.planTime(LocalDateTime.now())
|
.planTime(LocalDateTime.now())
|
||||||
.goodsId(goodsId)
|
|
||||||
.build());
|
.build());
|
||||||
|
|
||||||
// 更新板件排单id & 统计更新order_goods的数量和面积
|
// 更新板件排单id & 统计更新order_goods的数量和面积
|
||||||
@@ -1961,7 +1953,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
for (List<Long> plateIdList : batchPlanPlateIdList) {
|
for (List<Long> plateIdList : batchPlanPlateIdList) {
|
||||||
int updatePlateNum = plateMapper.update(new LambdaUpdateWrapper<PlateDO>()
|
int updatePlateNum = plateMapper.update(new LambdaUpdateWrapper<PlateDO>()
|
||||||
.in(PlateDO::getId, plateIdList)
|
.in(PlateDO::getId, plateIdList)
|
||||||
.eq(PlateDO::getPlanId, 0L)
|
.eq(PlateDO::getPlanId, 0)
|
||||||
.set(PlateDO::getPlanId, planId));
|
.set(PlateDO::getPlanId, planId));
|
||||||
if (updatePlateNum != plateIdList.size()) {
|
if (updatePlateNum != plateIdList.size()) {
|
||||||
throw new ServiceException(CREAT_PLAN_PLATE_DATA_ERROR);
|
throw new ServiceException(CREAT_PLAN_PLATE_DATA_ERROR);
|
||||||
|
|||||||
+23
-32
@@ -23,6 +23,7 @@ import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
|
|||||||
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
|
||||||
import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsSaveReqVO;
|
import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsSaveReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlanPlateNumAndAreaRespVO;
|
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlanPlateNumAndAreaRespVO;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderGoodsResp;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList;
|
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList;
|
||||||
import com.cf.imes.module.executor.controller.admin.plate.vo.*;
|
import com.cf.imes.module.executor.controller.admin.plate.vo.*;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||||
@@ -347,22 +348,17 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
|
|
||||||
AssertUtils.notEmpty(planDO, PLAN_NOT_EXISTS);
|
AssertUtils.notEmpty(planDO, PLAN_NOT_EXISTS);
|
||||||
|
|
||||||
List<PlateGoodDO> planGoods = plateGoodMapper.selectList(new LambdaQueryWrapper<PlateGoodDO>()
|
List<OrderGoodsResp> goodsRespVOS = planMapper.selectPlanGoodsList(planId, organId);
|
||||||
.eq(PlateGoodDO::getGoodsId, planDO.getGoodsId())
|
|
||||||
.eq(PlateGoodDO::getOrganId, organId)
|
|
||||||
.eq(PlateGoodDO::getDeleted, false)
|
|
||||||
.orderByAsc(PlateGoodDO::getCreateTime));
|
|
||||||
|
|
||||||
AssertUtils.notEmpty(planGoods, PLAN_NOT_EXISTS);
|
AssertUtils.notEmpty(goodsRespVOS,PLAN_NOT_EXISTS);
|
||||||
|
|
||||||
PlateGoodDO planGood = planGoods.get(0);
|
List<String> material = goodsRespVOS.stream().map(OrderGoodsResp::getMaterial).distinct().toList();
|
||||||
String material = planGood.getMaterial();
|
|
||||||
|
|
||||||
String color = planGood.getColor();
|
List<String> color = goodsRespVOS.stream().map(OrderGoodsResp::getColor).distinct().toList();
|
||||||
|
|
||||||
String brand = planGood.getBrand();
|
List<String> brand = goodsRespVOS.stream().map(OrderGoodsResp::getBrand).distinct().toList();
|
||||||
|
|
||||||
Double thickness = planGood.getThickness();
|
List<BigDecimal> thickness = goodsRespVOS.stream().map(OrderGoodsResp::getThickness).distinct().toList();
|
||||||
|
|
||||||
|
|
||||||
// 混单
|
// 混单
|
||||||
@@ -773,12 +769,10 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void mixedInsertQuery(NoPlanPlatePageReqVO pageReqVO,
|
private void mixedInsertQuery(NoPlanPlatePageReqVO pageReqVO,
|
||||||
PlanDO planDO,
|
PlanDO planDO,
|
||||||
String material,
|
List<String> material,
|
||||||
Double thickness,
|
List<BigDecimal> thickness,
|
||||||
QueryWrapperX<OrderDO> queryWrapperX) {
|
QueryWrapperX<OrderDO> queryWrapperX) {
|
||||||
|
|
||||||
|
|
||||||
@@ -791,10 +785,10 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
if(planDO.getFilter().equals(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.getType())){
|
if(planDO.getFilter().equals(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.getType())){
|
||||||
|
|
||||||
queryWrapperX
|
queryWrapperX
|
||||||
.eqIfPresent(FIELD_OG_MATERIAL,material)
|
.inIfPresent(FIELD_OG_MATERIAL,material)
|
||||||
.likeIfPresent(FIELD_OG_BRAND,pageReqVO.getBrand())
|
.likeIfPresent(FIELD_OG_BRAND,pageReqVO.getBrand())
|
||||||
.likeIfPresent(FIELD_OG_COLOR,pageReqVO.getColor())
|
.likeIfPresent(FIELD_OG_COLOR,pageReqVO.getColor())
|
||||||
.eqIfPresent(FIELD_OP_THICKNESS,thickness);
|
.inIfPresent(FIELD_OP_THICKNESS,thickness);
|
||||||
|
|
||||||
}
|
}
|
||||||
// 相同厚度
|
// 相同厚度
|
||||||
@@ -804,7 +798,7 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
.likeIfPresent(FIELD_OG_MATERIAL,pageReqVO.getMaterial())
|
.likeIfPresent(FIELD_OG_MATERIAL,pageReqVO.getMaterial())
|
||||||
.likeIfPresent(FIELD_OG_BRAND,pageReqVO.getBrand())
|
.likeIfPresent(FIELD_OG_BRAND,pageReqVO.getBrand())
|
||||||
.likeIfPresent(FIELD_OG_COLOR,pageReqVO.getColor())
|
.likeIfPresent(FIELD_OG_COLOR,pageReqVO.getColor())
|
||||||
.eqIfPresent(FIELD_OP_THICKNESS,thickness);
|
.inIfPresent(FIELD_OP_THICKNESS,thickness);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -812,15 +806,12 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void noMixedInsertQuery(NoPlanPlatePageReqVO pageReqVO,
|
private void noMixedInsertQuery(NoPlanPlatePageReqVO pageReqVO,
|
||||||
PlanDO planDO,
|
PlanDO planDO,
|
||||||
String material,
|
List<String> material,
|
||||||
String brand,
|
List<String> brand,
|
||||||
String color,
|
List<String> color,
|
||||||
Double thickness,
|
List<BigDecimal> thickness,
|
||||||
QueryWrapperX<OrderDO> queryWrapperX) {
|
QueryWrapperX<OrderDO> queryWrapperX) {
|
||||||
|
|
||||||
// 是否开启混单
|
// 是否开启混单
|
||||||
@@ -833,10 +824,10 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
// 相同材质和厚度 混单
|
// 相同材质和厚度 混单
|
||||||
if(pageReqVO.getMixedType().equals(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.getType())){
|
if(pageReqVO.getMixedType().equals(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.getType())){
|
||||||
queryWrapperX
|
queryWrapperX
|
||||||
.eqIfPresent(FIELD_OG_MATERIAL, material)
|
.inIfPresent(FIELD_OG_MATERIAL, material)
|
||||||
.likeIfPresent(FIELD_OG_BRAND, pageReqVO.getBrand())
|
.likeIfPresent(FIELD_OG_BRAND, pageReqVO.getBrand())
|
||||||
.likeIfPresent(FIELD_OG_COLOR, pageReqVO.getColor())
|
.likeIfPresent(FIELD_OG_COLOR, pageReqVO.getColor())
|
||||||
.eqIfPresent(FIELD_OP_THICKNESS, thickness);
|
.inIfPresent(FIELD_OP_THICKNESS, thickness);
|
||||||
|
|
||||||
}
|
}
|
||||||
// 相同厚度 混单
|
// 相同厚度 混单
|
||||||
@@ -845,15 +836,15 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
.likeIfPresent(FIELD_OG_MATERIAL, pageReqVO.getMaterial())
|
.likeIfPresent(FIELD_OG_MATERIAL, pageReqVO.getMaterial())
|
||||||
.likeIfPresent(FIELD_OG_BRAND, pageReqVO.getBrand())
|
.likeIfPresent(FIELD_OG_BRAND, pageReqVO.getBrand())
|
||||||
.likeIfPresent(FIELD_OG_COLOR, pageReqVO.getColor())
|
.likeIfPresent(FIELD_OG_COLOR, pageReqVO.getColor())
|
||||||
.eqIfPresent(FIELD_OP_THICKNESS, thickness);
|
.inIfPresent(FIELD_OP_THICKNESS, thickness);
|
||||||
|
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
queryWrapperX
|
queryWrapperX
|
||||||
.eqIfPresent(FIELD_OG_MATERIAL, material)
|
.inIfPresent(FIELD_OG_MATERIAL, material)
|
||||||
.eqIfPresent(FIELD_OG_BRAND, brand)
|
.inIfPresent(FIELD_OG_BRAND, brand)
|
||||||
.eqIfPresent(FIELD_OG_COLOR, color)
|
.inIfPresent(FIELD_OG_COLOR, color)
|
||||||
.eqIfPresent(FIELD_OP_THICKNESS, thickness);
|
.inIfPresent(FIELD_OP_THICKNESS, thickness);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -37,11 +37,11 @@
|
|||||||
og.remark,
|
og.remark,
|
||||||
orp.id as remainId
|
orp.id as remainId
|
||||||
|
|
||||||
from order_plan op
|
from order_plate op
|
||||||
join order_goods og on op.organ_id = og.organ_id and op.goods_id = og.goods_id
|
join order_goods og on op.organ_id = og.organ_id and op.goods_id = og.id
|
||||||
left join order_remain_plate orp on og.organ_id = orp.organ_id and og.id = orp.goods_id
|
left join order_remain_plate orp on og.organ_id = orp.organ_id and og.id = orp.goods_id
|
||||||
|
|
||||||
where op.organ_id = #{organId} and op.id = #{planId}
|
where op.organ_id = #{organId} and op.plan_id = #{planId}
|
||||||
|
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
+2
-2
@@ -41,7 +41,7 @@
|
|||||||
FROM order_item i
|
FROM order_item i
|
||||||
RIGHT JOIN `order_parts` p ON i.organ_id = p.organ_id AND i.order_id = p.order_id AND i.parts_id = p.id
|
RIGHT JOIN `order_parts` p ON i.organ_id = p.organ_id AND i.order_id = p.order_id AND i.parts_id = p.id
|
||||||
RIGHT JOIN `order_body` ob ON i.organ_id = ob.organ_id AND i.order_id = ob.order_id AND i.body_id = ob.id
|
RIGHT JOIN `order_body` ob ON i.organ_id = ob.organ_id AND i.order_id = ob.order_id AND i.body_id = ob.id
|
||||||
WHERE i.organ_id = #{organId} AND i.order_id = #{orderId} AND ob.deleted = #{deleted} AND i.group_id = 0
|
WHERE i.organ_id = #{organId} AND i.order_id = #{orderId} AND ob.deleted = #{deleted} AND (i.group_id is null or i.group_id = 0)
|
||||||
<if test="roomId != null and roomId.size() > 0">
|
<if test="roomId != null and roomId.size() > 0">
|
||||||
AND i.room_id IN
|
AND i.room_id IN
|
||||||
<foreach item="roomIdItem" collection="roomId" open="(" separator="," close=")">
|
<foreach item="roomIdItem" collection="roomId" open="(" separator="," close=")">
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
FROM `order_item` i
|
FROM `order_item` i
|
||||||
RIGHT JOIN `order_parts` p ON i.organ_id = p.organ_id AND i.order_id = p.order_id AND i.parts_id = p.id
|
RIGHT JOIN `order_parts` p ON i.organ_id = p.organ_id AND i.order_id = p.order_id AND i.parts_id = p.id
|
||||||
RIGHT JOIN `order_body` ob ON i.organ_id = ob.organ_id AND i.order_id = ob.order_id AND i.body_id = ob.id
|
RIGHT JOIN `order_body` ob ON i.organ_id = ob.organ_id AND i.order_id = ob.order_id AND i.body_id = ob.id
|
||||||
WHERE i.organ_id = #{organId} AND i.order_id = #{orderId} AND ob.deleted = #{deleted} AND i.group_id is null AND p.category in
|
WHERE i.organ_id = #{organId} AND i.order_id = #{orderId} AND ob.deleted = #{deleted} AND (i.group_id is null or i.group_id = 0) AND p.category in
|
||||||
<foreach item="type" collection="types" open="(" separator="," close=")">
|
<foreach item="type" collection="types" open="(" separator="," close=")">
|
||||||
#{type}
|
#{type}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
|||||||
+12
@@ -260,6 +260,18 @@
|
|||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectPlanGoodsList"
|
||||||
|
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderGoodsResp">
|
||||||
|
select distinct og.thickness as thickness,
|
||||||
|
og.material as material,
|
||||||
|
og.color as color,
|
||||||
|
og.brand as brand
|
||||||
|
from order_plate op
|
||||||
|
left join order_goods og on op.organ_id = og.organ_id and opi.goods_id = og.id
|
||||||
|
where op.organ_id = #{organId}
|
||||||
|
and op.plan_id = #{planId};
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="countDeletePlanPlate" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanPlateStatisticsRespVO">
|
<select id="countDeletePlanPlate" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanPlateStatisticsRespVO">
|
||||||
select op.plan_id as planId,
|
select op.plan_id as planId,
|
||||||
count(op.id) as count
|
count(op.id) as count
|
||||||
|
|||||||
Reference in New Issue
Block a user