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:
-4
@@ -19,7 +19,6 @@ import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||
|
||||
@@ -169,9 +168,6 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
||||
|
||||
List<OrderRoomBodyList> selectNoPlanRoomBody(@Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
|
||||
|
||||
|
||||
List<Long> selectPlanOrderList(@Param("orderId") Long orderId,@Param("roomIds") Set<Long> roomIds, @Param("bodyId") Long bodyId,@Param("organId") Long organId);
|
||||
|
||||
List<Long> selectPlanPlateList(@Param("planId") Long planId,@Param("organId") Long organId);
|
||||
|
||||
List<Long> selectPlanBodyIds(@Param("planId") Long planId,@Param("organId") Long organId);
|
||||
|
||||
+1
-1
@@ -290,7 +290,7 @@ public interface OrderMapper extends BaseMapperX<OrderDO> {
|
||||
IPage<OrderGoodsResp> selectFilterGoodsPlatePage(@Param("page") IPage page,@Param(Constants.WRAPPER) QueryWrapperX<OrderDO> queryWrapperX);
|
||||
|
||||
|
||||
Long selectNoPlanOrderPlateCount(@Param(Constants.WRAPPER) Wrapper<OrderDO> wrapper);
|
||||
List<Long> selectNoPlanOrderPlateCount(@Param(Constants.WRAPPER) Wrapper<OrderDO> wrapper);
|
||||
|
||||
List<PlateResList> selectNoPlanOrderPlateList(@Param(Constants.WRAPPER) Wrapper<OrderDO> wrapper,@Param("pageNo") Integer pageNo,@Param("pageSize") Integer pageSize);
|
||||
}
|
||||
|
||||
+2
@@ -131,4 +131,6 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
||||
|
||||
Integer countPartsNotId(@Param("orderId") Long orderId, @Param("bodyId") Set<Long> bodyIds, @Param("goodsId") Long partsId,
|
||||
@Param("organId") Long organId, @Param("deleted") Integer deleted);
|
||||
|
||||
List<Long> selectOrderPlanList(@Param("orderId") Long orderId,@Param("roomIds") Set<Long> roomIds, @Param("bodyId") Long bodyId,@Param("organId") Long organId);
|
||||
}
|
||||
+2
@@ -9,6 +9,7 @@ import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.OrderPlateIds;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
@@ -61,5 +62,6 @@ public interface PlanItemMapper extends BaseMapperX<PlanItemDO> {
|
||||
}
|
||||
|
||||
|
||||
List<PlateDO> selectOrderPlanPlateListByPlanId(@Param("planId") Long planId, @Param("organId") Long organId);
|
||||
|
||||
}
|
||||
+10
-10
@@ -269,16 +269,16 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
}
|
||||
|
||||
|
||||
default List<PlateDO> selectIsOptimizedPlate(List<Long> orderId,List<Long> ids, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||
.eq(PlateDO::getOrganId,organId)
|
||||
.eq(PlateDO::getDeleted,false)
|
||||
.inIfPresent(PlateDO::getOrderId,orderId)
|
||||
.inIfPresent(PlateDO::getGoodsId,ids)
|
||||
.eq(PlateDO::getIsOptimized,true)
|
||||
.select(PlateDO::getId,PlateDO::getId));
|
||||
|
||||
}
|
||||
// default List<PlateDO> selectIsOptimizedPlate(List<Long> orderId,List<Long> ids,List<Long> plateIds, Long organId) {
|
||||
// return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||
// .eq(PlateDO::getOrganId,organId)
|
||||
// .eq(PlateDO::getDeleted,false)
|
||||
// .inIfPresent(PlateDO::getOrderId,orderId)
|
||||
// .inIfPresent(PlateDO::getGoodsId,ids)
|
||||
// .eq(PlateDO::getIsOptimized,true)
|
||||
// .select(PlateDO::getId,PlateDO::getId));
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
default List<PlateDO> selectPlateIsCuttingStatus(List<Long> orderIds,Long organId) {
|
||||
|
||||
+122
-92
@@ -41,7 +41,6 @@ import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
|
||||
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.plan.PlanDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO;
|
||||
import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
|
||||
@@ -63,6 +62,7 @@ import com.cf.imes.module.system.api.systemconfig.SystemConfigApi;
|
||||
import com.cf.imes.module.system.api.systemconfig.dto.ProcessSchemeDTO;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.aop.framework.AopContext;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -448,84 +448,10 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
Long goodsNum = updatePlanOptimizeData(remainBoardInfos, optimizeBoardModelDO, orderIds, goodsIds, goodsNo, cutedType);
|
||||
|
||||
|
||||
if(OrderPlateCutStatusEnum.NOCUTTING.getStatus().equals(cutedType)){
|
||||
// 根据开料状态修改排单和生产单的状态
|
||||
OptimizePlanServiceImpl o = (OptimizePlanServiceImpl) AopContext.currentProxy();
|
||||
o.updateOrderAndPlanByCutStatus(planDO,goodsNum,cutedType,orderIds,boardCount);
|
||||
|
||||
planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
||||
planDO.setProduceTime(null);
|
||||
|
||||
if(goodsNum.equals(0L)){
|
||||
planDO.setStatus(PlanStatusEnum.NOCUTTING.getStatus());
|
||||
}
|
||||
|
||||
planMapper.updateById(planDO);
|
||||
|
||||
List<PlateDO> plateDOS = plateMapper.selectPlateIsCuttingStatus(orderIds, getUserOrganId());
|
||||
List<Long> orderIdList = plateDOS.stream().map(PlateDO::getOrderId).distinct().toList();
|
||||
|
||||
orderIds.removeAll(orderIdList);
|
||||
|
||||
if(CollUtil.isNotEmpty(orderIds)){
|
||||
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
AssertUtils.notEmpty(orderDOS,ORDER_PLAN_ERROR);
|
||||
|
||||
orderDOS.forEach(f->f.setStatus(OrderStatusEnum.SORTED.getStatus()));
|
||||
orderMapper.updateBatch(orderDOS);
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(OrderPlateCutStatusEnum.OPENING.getStatus().equals(cutedType)){
|
||||
|
||||
planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
||||
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
AssertUtils.notEmpty(orderDOS,ORDER_PLAN_ERROR);
|
||||
|
||||
orderDOS.forEach(f->f.setStatus(OrderStatusEnum.IN_PRODUCTION.getStatus()));
|
||||
|
||||
planMapper.updateById(planDO);
|
||||
orderMapper.updateBatch(orderDOS);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(OrderPlateCutStatusEnum.OPENED.getStatus().equals(cutedType)){
|
||||
|
||||
List<PlateDO> plateDOList = plateMapper.selectNoCutPlateByPlateId(orderIds, getUserOrganId());
|
||||
|
||||
List<Long> orderIdList = plateDOList.stream().map(PlateDO::getOrderId).distinct().toList();
|
||||
|
||||
orderIds.removeAll(orderIdList);
|
||||
|
||||
if(CollUtil.isNotEmpty(orderIds)){
|
||||
|
||||
// 查询生产单的打包状态是否为已打包
|
||||
List<OrderDO> orderDOS = orderMapper.selectOrderPackList(orderIds, getUserOrganId());
|
||||
if (CollUtil.isNotEmpty(orderDOS)) {
|
||||
orderDOS.forEach(f -> {
|
||||
f.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
|
||||
f.setFinishTime(LocalDateTime.now());
|
||||
});
|
||||
|
||||
orderMapper.updateBatch(orderDOS);
|
||||
}
|
||||
}
|
||||
|
||||
if(goodsNum.equals(Long.valueOf(boardCount))) {
|
||||
|
||||
planDO.setStatus(PlanStatusEnum.OPENED.getStatus());
|
||||
planDO.setProduceTime(LocalDateTime.now());
|
||||
|
||||
planMapper.updateById(planDO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -613,20 +539,20 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
// 查询生产单对应的包裹信息
|
||||
List<PrintOrderPackReqVO> printOrderPackReqVOS = plateMapper.selectOrderPackList(orderId,getUserOrganId());
|
||||
|
||||
// 统计每个订单的包装数量
|
||||
printOrderPackReqVOS
|
||||
.stream()
|
||||
.filter(f->f
|
||||
.getOrderId().equals(orderId))
|
||||
.forEach(f->f.setPackNum(printOrderPackReqVOS.stream().filter(e -> e.getOrderId().equals(orderId)).map(PrintOrderPackReqVO::getPackId).toList().size()));
|
||||
|
||||
if(CollUtil.isNotEmpty(printOrderPackReqVOS)) {
|
||||
// 统计每个订单的包装数量
|
||||
printOrderPackReqVOS
|
||||
.stream()
|
||||
.filter(f -> f
|
||||
.getOrderId().equals(orderId))
|
||||
.forEach(f -> f.setPackNum(printOrderPackReqVOS.stream().filter(e -> e.getOrderId().equals(orderId)).map(PrintOrderPackReqVO::getPackId).toList().size()));
|
||||
}
|
||||
|
||||
return OrderSource.builder()
|
||||
.orderList(Collections.singletonList(orderDO))
|
||||
.goodsList(goodsDOS)
|
||||
.plateList(plateDOS)
|
||||
.plateModels(orderModelDOS)
|
||||
// .optimizeBoardModelDOS(optimizeBoardModelDOS)
|
||||
.orderPartsRespVOS(printOrderPartsRespVOS)
|
||||
.orderPartsRemarks(orderPartsRemarks)
|
||||
.orderPackReqVOS(printOrderPackReqVOS)
|
||||
@@ -747,10 +673,20 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
Long planId = boardModelDO.getPlanId();
|
||||
|
||||
|
||||
List<PlateDO> plateDOS = planItemMapper.selectOrderPlanPlateListByPlanId(planId,getUserOrganId());
|
||||
|
||||
AssertUtils.notEmpty(plateDOS,THIS_PLAN_PLATE_DATA_ERROR);
|
||||
|
||||
plateDOS.forEach(f->{
|
||||
f.setIsOptimized(true);
|
||||
});
|
||||
|
||||
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(!optimizeBoardModelDOS.isEmpty()){
|
||||
if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_CONFIG_ID,FIELD_PLAN_ID,req.getPlanConfigId(),planId,ORDER_OPTIMIZE_PLATE_MODEL);
|
||||
|
||||
}
|
||||
@@ -778,6 +714,8 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
PlanDO planDO = planMapper.selectById(planId);
|
||||
|
||||
AssertUtils.notEmpty(planDO,PLAN_NOT_EXISTS);
|
||||
|
||||
// 如果方案组ID不相等,就删除旧的方案组信息,再保存新的加工方案组ID
|
||||
if(!planDO.getProcessId().equals(processId)){
|
||||
planMapper.updateById(planDO.setProcessId(processId));
|
||||
@@ -785,15 +723,16 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_ID,planId,PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL);
|
||||
|
||||
List<Long> orderIds = JSON.parseArray(planDO.getOrderNos()).toJavaList(Long.class).stream().distinct().toList();
|
||||
|
||||
List<PlanItemDO> planItemDOS = planItemMapper.selectPlanPlateList(Collections.singletonList(planId), orderIds, getUserOrganId());
|
||||
List<PlateDO> plateDOS = planItemMapper.selectOrderPlanPlateListByPlanId(planId,getUserOrganId());
|
||||
|
||||
List<Long> ids = planItemDOS.stream().map(PlanItemDO::getGoodsId).distinct().toList();
|
||||
AssertUtils.notEmpty(plateDOS,THIS_PLAN_PLATE_DATA_ERROR);
|
||||
|
||||
List<Long> plateIds = planItemDOS.stream().map(PlanItemDO::getPlateId).toList();
|
||||
plateDOS.forEach(f->{
|
||||
f.setIsOptimized(true);
|
||||
});
|
||||
|
||||
plateMapper.updatePlateIsOptimized(orderIds,ids,plateIds,getUserOrganId());
|
||||
plateMapper.updateBatch(plateDOS);
|
||||
|
||||
|
||||
// 不能加非空判断,因为方案组里可能没有优化信息
|
||||
@@ -934,9 +873,11 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
|
||||
AssertUtils.notEmpty(orderDOS,THIS_ORDER_PLATE_DATA_ERROR);
|
||||
|
||||
List<PlateDetailRespVO> plateDetailRespVOS = plateMapper.selectNoPlanPlate(orderIds,getUserOrganId());
|
||||
|
||||
AssertUtils.notEmpty(plateDetailRespVOS,ORDER_PLATE_ERROR);
|
||||
|
||||
for (PlateDetailRespVO plateDetailsRespVO : plateDetailRespVOS) {
|
||||
StringBuilder name = new StringBuilder();
|
||||
@@ -961,6 +902,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
List<OrderModelDO> orderModelDOS = esUtils.getEsDocument("plateId", plateIds, orderModelSize, OptimizePlanService.ORDER_PLATE_MODEL, OrderModelDO.class);
|
||||
|
||||
AssertUtils.notEmpty(plateDetailRespVOS,ORDER_PLATE_MODEL_DATE_ERROR);
|
||||
|
||||
return OrderSource.builder()
|
||||
.orderList(orderDOS)
|
||||
@@ -1550,5 +1492,93 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
}
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateOrderAndPlanByCutStatus(PlanDO planDO,Long goodsNum,Integer cutedType,List<Long> orderIds,Integer boardCount){
|
||||
|
||||
|
||||
if(OrderPlateCutStatusEnum.NOCUTTING.getStatus().equals(cutedType)){
|
||||
|
||||
planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
||||
planDO.setProduceTime(null);
|
||||
|
||||
if(goodsNum.equals(0L)){
|
||||
planDO.setStatus(PlanStatusEnum.NOCUTTING.getStatus());
|
||||
}
|
||||
|
||||
planMapper.updateById(planDO);
|
||||
|
||||
List<PlateDO> plateDOS = plateMapper.selectPlateIsCuttingStatus(orderIds, getUserOrganId());
|
||||
List<Long> orderIdList = plateDOS.stream().map(PlateDO::getOrderId).distinct().toList();
|
||||
|
||||
orderIds.removeAll(orderIdList);
|
||||
|
||||
if(CollUtil.isNotEmpty(orderIds)){
|
||||
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
AssertUtils.notEmpty(orderDOS,ORDER_PLAN_ERROR);
|
||||
|
||||
orderDOS.forEach(f->f.setStatus(OrderStatusEnum.SORTED.getStatus()));
|
||||
orderMapper.updateBatch(orderDOS);
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(OrderPlateCutStatusEnum.OPENING.getStatus().equals(cutedType)){
|
||||
|
||||
planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
||||
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
AssertUtils.notEmpty(orderDOS,ORDER_PLAN_ERROR);
|
||||
|
||||
orderDOS.forEach(f->f.setStatus(OrderStatusEnum.IN_PRODUCTION.getStatus()));
|
||||
|
||||
planMapper.updateById(planDO);
|
||||
orderMapper.updateBatch(orderDOS);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(OrderPlateCutStatusEnum.OPENED.getStatus().equals(cutedType)){
|
||||
|
||||
List<PlateDO> plateDOList = plateMapper.selectNoCutPlateByPlateId(orderIds, getUserOrganId());
|
||||
|
||||
List<Long> orderIdList = plateDOList.stream().map(PlateDO::getOrderId).distinct().toList();
|
||||
|
||||
orderIds.removeAll(orderIdList);
|
||||
|
||||
if(CollUtil.isNotEmpty(orderIds)){
|
||||
|
||||
// 查询生产单的打包状态是否为已打包
|
||||
List<OrderDO> orderDOS = orderMapper.selectOrderPackList(orderIds, getUserOrganId());
|
||||
if (CollUtil.isNotEmpty(orderDOS)) {
|
||||
orderDOS.forEach(f -> {
|
||||
f.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
|
||||
f.setFinishTime(LocalDateTime.now());
|
||||
});
|
||||
|
||||
orderMapper.updateBatch(orderDOS);
|
||||
}
|
||||
}
|
||||
|
||||
if(goodsNum.equals(Long.valueOf(boardCount))) {
|
||||
|
||||
planDO.setStatus(PlanStatusEnum.OPENED.getStatus());
|
||||
planDO.setProduceTime(LocalDateTime.now());
|
||||
|
||||
planMapper.updateById(planDO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+2
-1
@@ -1071,7 +1071,8 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
|
||||
// 判断小板是否已开料,已开料不允许删除
|
||||
List<Long> planIds = goodsMapper.selectPlanOrderList(orderId, roomIds, bodyId, organId);
|
||||
List<Long> planIds = orderItemMapper.selectOrderPlanList(orderId,roomIds,bodyId,organId);
|
||||
|
||||
if(!planIds.isEmpty()) {
|
||||
|
||||
List<PlanDO> planDOS = planMapper.selectPlanStatus(planIds, organId);
|
||||
|
||||
+15
-9
@@ -46,6 +46,7 @@ import com.cf.imes.module.system.api.systemconfig.SystemConfigApi;
|
||||
import com.cf.imes.module.system.api.systemconfig.dto.SystemConfigRespDTO;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.aop.framework.AopContext;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
@@ -273,9 +274,11 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
}
|
||||
|
||||
List<PlateDO> plateDOS = plateMapper.selectIsOptimizedPlate(orderIds, ids, getUserOrganId());
|
||||
List<PlateDO> plateDOS = plateMapper.selectBatchIds(plateIds);
|
||||
|
||||
AssertUtils.empty(plateDOS,CREAT_PLAN_PLATE_DATA_ERROR);
|
||||
List<PlateDO> plateDOList = plateDOS.stream().filter(f -> f.getIsOptimized().equals(true)).toList();
|
||||
|
||||
AssertUtils.empty(plateDOList,CREAT_PLAN_PLATE_DATA_ERROR);
|
||||
|
||||
List<OrderDO> orderDOList = orderMapper.selectBatchIds(orderIds);
|
||||
|
||||
@@ -291,9 +294,9 @@ public class PlanServiceImpl implements PlanService {
|
||||
planMapper.insertBatch(planDOS);
|
||||
|
||||
|
||||
plateMapper.updatePlateIsOptimized(orderIds, ids, plateIds, getUserOrganId());
|
||||
// plateMapper.updatePlateIsOptimized(orderIds, ids, plateIds, getUserOrganId());
|
||||
|
||||
|
||||
// 后面还需要测试一下这个新增的数量
|
||||
planItemMapper.insertBatch(planItemDOS, planItemDOS.size());
|
||||
|
||||
|
||||
@@ -337,7 +340,8 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
if(CollUtil.isNotEmpty(deleteOrderPlateIds)){
|
||||
|
||||
deletePlanPlate(deleteOrderPlateIds);
|
||||
PlanServiceImpl p = (PlanServiceImpl) AopContext.currentProxy();
|
||||
p.deletePlanPlate(deleteOrderPlateIds);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -348,7 +352,8 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
if(CollUtil.isNotEmpty(insertOrderPlateIds)){
|
||||
|
||||
insertPlanPlate(insertOrderPlateIds);
|
||||
PlanServiceImpl p = (PlanServiceImpl) AopContext.currentProxy();
|
||||
p.insertPlanPlate(insertOrderPlateIds);
|
||||
|
||||
}
|
||||
|
||||
@@ -1046,7 +1051,8 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
|
||||
|
||||
private void deletePlanPlate(List<OrderPlateIds> deleteOrderPlateIds) {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deletePlanPlate(List<OrderPlateIds> deleteOrderPlateIds) {
|
||||
|
||||
List<Long> deletePlanIds = deleteOrderPlateIds.stream().map(OrderPlateIds::getPlanId).distinct().toList();
|
||||
|
||||
@@ -1202,8 +1208,8 @@ public class PlanServiceImpl implements PlanService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void insertPlanPlate(List<OrderPlateIds> insertOrderPlateIds){
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void insertPlanPlate(List<OrderPlateIds> insertOrderPlateIds){
|
||||
|
||||
// 后面还需要看看是否需要进行混单的判断
|
||||
List<Long> insertPlanIds = insertOrderPlateIds.stream().map(OrderPlateIds::getPlanId).distinct().toList();
|
||||
|
||||
+3
-3
@@ -322,7 +322,7 @@ public class PlateServiceImpl implements PlateService {
|
||||
.eqIfPresent("op.is_row_hole",pageReqVO.getIsRowHole())
|
||||
.orderByDesc("o.id");
|
||||
|
||||
Long plateCount = orderMapper.selectNoPlanOrderPlateCount(queryWrapperX);
|
||||
List<Long> plateCount = orderMapper.selectNoPlanOrderPlateCount(queryWrapperX);
|
||||
|
||||
List<PlateResList> plateResLists = orderMapper.selectNoPlanOrderPlateList(queryWrapperX,pageNo,pageReqVO.getPageSize());
|
||||
|
||||
@@ -332,11 +332,11 @@ public class PlateServiceImpl implements PlateService {
|
||||
|
||||
|
||||
PlateModelDetailRespVO.builder()
|
||||
.plateResLists(new PageResult<>(plateResLists,plateCount))
|
||||
.plateResLists(new PageResult<>(plateResLists, (long) plateCount.size()))
|
||||
.plateModels(orderModelDOS)
|
||||
.build();
|
||||
|
||||
return new PageResult<>(plateResLists,plateCount);
|
||||
return new PageResult<>(plateResLists, (long) plateCount.size());
|
||||
|
||||
}
|
||||
|
||||
|
||||
-29
@@ -321,35 +321,6 @@
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectPlanOrderList" resultType="java.lang.Long">
|
||||
|
||||
|
||||
select distinct og.plan_id
|
||||
|
||||
from order_goods og
|
||||
|
||||
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id and og.deleted = op.deleted
|
||||
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id
|
||||
|
||||
<where> og.organ_id = #{organId}
|
||||
and og.deleted = false
|
||||
and og.order_id = #{orderId}
|
||||
and og.plan_id != 0
|
||||
<if test="bodyId !=null">
|
||||
and oi.body_id = #{bodyId}
|
||||
</if>
|
||||
|
||||
<if test="roomIds !=null">
|
||||
and oi.room_id in
|
||||
<foreach item="roomIds" collection="roomIds" open="(" separator="," close=")">
|
||||
#{roomIds}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectPlanPlateList" resultType="java.lang.Long">
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -412,7 +412,7 @@
|
||||
|
||||
|
||||
select
|
||||
count(op.id)
|
||||
op.id
|
||||
|
||||
from orders o
|
||||
left join order_plate op on o.organ_id = op.organ_id and o.id = op.order_id
|
||||
|
||||
+30
@@ -339,4 +339,34 @@
|
||||
AND ob.deleted = #{deleted}
|
||||
AND i.parts_id = #{goodsId};
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<select id="selectOrderPlanList" resultType="java.lang.Long">
|
||||
|
||||
|
||||
|
||||
select distinct
|
||||
opi.plan_id
|
||||
|
||||
from order_item oi
|
||||
left join order_plate op on oi.organ_id = op.organ_id and oi.order_id = op.order_id and oi.plate_id = op.id
|
||||
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> oi.organ_id = #{organId}
|
||||
and oi.order_id = #{orderId}
|
||||
<if test="bodyId !=null">
|
||||
and oi.body_id = #{bodyId}
|
||||
</if>
|
||||
|
||||
<if test="roomIds !=null">
|
||||
and oi.room_id in
|
||||
<foreach item="roomIds" collection="roomIds" open="(" separator="," close=")">
|
||||
#{roomIds}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
+17
@@ -382,4 +382,21 @@
|
||||
|
||||
|
||||
|
||||
<select id="selectOrderPlanPlateListByPlanId"
|
||||
resultType="com.cf.imes.module.executor.dal.dataobject.plate.PlateDO">
|
||||
|
||||
|
||||
select distinct
|
||||
op.*
|
||||
|
||||
from order_plan_item opi
|
||||
left join order_plate op on opi.organ_id = op.organ_id and opi.order_id = op.order_id and opi.plate_id = op.id
|
||||
|
||||
where opi.organ_id = #{organId}
|
||||
and opi.plan_id = #{planId}
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
+18
-5
@@ -63,14 +63,27 @@ public class ProcessSchemeDTO implements Serializable {
|
||||
@Schema(description = "解析器配置-机台的配置", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String analyzerConfigSetting;
|
||||
|
||||
|
||||
@Schema(description = "标签的配置", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String labelSetting;
|
||||
|
||||
|
||||
@Schema(description = "机台类型", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Integer machineType;
|
||||
|
||||
|
||||
@Schema(description = "标签ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long label;
|
||||
|
||||
@Schema(description = "标签的配置", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String labelSetting;
|
||||
|
||||
@Schema(description = "标签类型", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String labelType;
|
||||
|
||||
@Schema(description = "标签高", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Integer labelHeight;
|
||||
|
||||
@Schema(description = "标签宽", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Integer labelWidth;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+4
-3
@@ -308,8 +308,8 @@ public class ErrorCodeConstants {
|
||||
public static final ErrorCode ORDER_PLAN_OPTIMIZE_ERROR = new ErrorCode(1_002_041_005, "当前排单对应的优化数据为空,请重新进行优化");
|
||||
public static final ErrorCode ORDER_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_006, "生产单对应的板材造型数据为空,请重新导入生产单");
|
||||
public static final ErrorCode ORDER_PLAN_PLATE_ERROR = new ErrorCode(1_002_041_007, "当前排单对应的板材数据有异常,请查看板材信息或联系客服");
|
||||
public static final ErrorCode ORDER_PLAN_ERROR = new ErrorCode(1_002_041_008, "当前排单对应的生产单数据为空,请重新创建排单");
|
||||
public static final ErrorCode ORDER_PLAN_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_009, "当前排单对应的板材造型数据为空,请检查板材信息或者联系客服");
|
||||
public static final ErrorCode ORDER_PLAN_ERROR = new ErrorCode(1_002_041_008, "当前排单对应的生产单数据为空,请删掉排单并重新创建排单");
|
||||
public static final ErrorCode ORDER_PLAN_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_009, "当前排单对应的板材造型数据为空,请重新进行排单或重新导入生产单");
|
||||
public static final ErrorCode ORDER_GOODS_DATA_ERROR = new ErrorCode(1_002_041_010, "当前大板数据异常,请检查大板信息或者联系客服");
|
||||
public static final ErrorCode ORDER_PACK_DATA_NULL_ERROR = new ErrorCode(1_002_041_011, "当前包裹数据为空,请重新查看包裹数据或联系客服");
|
||||
public static final ErrorCode ORDER_BODY_DATA_ERROR = new ErrorCode(1_002_041_012, "当前柜体对应的板材数据为空,无法删除");
|
||||
@@ -341,7 +341,7 @@ public class ErrorCodeConstants {
|
||||
public static final ErrorCode PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_035, "当前排单没有选择板材数据,请进行选择");
|
||||
public static final ErrorCode DELETE_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_036, "当前删除的小板信息有误,请检查小板是否存在或重新创建排单");
|
||||
public static final ErrorCode PLAN_PLATE_OPTIMIZE_DATA_ERROR = new ErrorCode(1_002_041_037, "当前排单对应的优化数据异常,请重新进行优化");
|
||||
public static final ErrorCode THIS_ORDER_PLATE_DATA_ERROR = new ErrorCode(1_002_041_038, "当前选择的生产单数据为空,请检查生产单信息或稍后重试");
|
||||
public static final ErrorCode THIS_ORDER_PLATE_DATA_ERROR = new ErrorCode(1_002_041_038, "当前选择的生产单数据为空,请检查生产单信息或者重新导入生产单");
|
||||
public static final ErrorCode THIS_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_039, "当前排单对应的板材数据为空,请重新进行排单或检查生产单对应的板材信息");
|
||||
|
||||
|
||||
@@ -385,4 +385,5 @@ public class ErrorCodeConstants {
|
||||
public static final ErrorCode SYSTEM_PROCESS_SCHEME_CONFIG_DATA_ERROR = new ErrorCode(1_002_040_016, "加工方案组的:{} 为空,请检查配置信息");
|
||||
public static final ErrorCode SYSTEM_PROCESS_SCHEME_CONFIG_FIELD_ERROR = new ErrorCode(1_002_040_017, "当前方案组的配置异常,请重新配置");
|
||||
public static final ErrorCode SYSTEM_PROCESS_SCHEME_CONFIG_IS_PLAN = new ErrorCode(1_002_040_018, "当前方案组已在排单中使用,无法删除");
|
||||
public static final ErrorCode SYSTEM_PROCESS_SCHEME_CONFIG_MACHINE_LABEL = new ErrorCode(1_002_040_019, "当前方案组对应的解析器的机台的标签数据为空,请检查机台的标签配置信息");
|
||||
}
|
||||
|
||||
+25
-9
@@ -114,6 +114,7 @@ public class SystemConfigApiImpl implements SystemConfigApi {
|
||||
|
||||
List<ProcessSchemeDTO> schemeDTOS = BeanUtils.toBean(processSchemeConfigs, ProcessSchemeDTO.class);
|
||||
|
||||
// 配置ID查询和数据校验
|
||||
List<String> processLineConfigIds = processSchemeConfigs.stream().map(ProcessSchemeConfig::getProcessLineConfig).distinct().toList();
|
||||
|
||||
checkValueIsNotEmpty(processLineConfigIds,"加工分线");
|
||||
@@ -127,19 +128,30 @@ public class SystemConfigApiImpl implements SystemConfigApi {
|
||||
checkValueIsNotEmpty(analyzerIds,"解析器");
|
||||
|
||||
|
||||
// 配置查询和数据校验
|
||||
List<SystemConfigDO> processLineConfigList = systemConfigMapper.selectBatchIds(processLineConfigIds);
|
||||
|
||||
checkValueIsNotEmpty(processLineConfigList,"加工分线");
|
||||
|
||||
List<SystemConfigDO> optimizationConfigList = systemConfigMapper.selectBatchIds(optimizationConfigIds);
|
||||
|
||||
checkValueIsNotEmpty(optimizationConfigList,"优化数据配置");
|
||||
|
||||
List<MachineDO> analyzerList = machineMapper.selectBatchIds(analyzerIds);
|
||||
|
||||
checkValueIsNotEmpty(analyzerList,"解析器");
|
||||
|
||||
|
||||
// 标签ID和配置查询和数据校验
|
||||
List<Long> labelIds = analyzerList.stream().map(MachineDO::getLabelId).distinct().toList();
|
||||
|
||||
AssertUtils.notEmpty(labelIds,SYSTEM_PROCESS_SCHEME_CONFIG_MACHINE_LABEL);
|
||||
|
||||
List<LabelDO> labelDOS = labelMapper.selectBatchIds(labelIds);
|
||||
|
||||
AssertUtils.notEmpty(labelDOS,SYSTEM_PROCESS_SCHEME_CONFIG_MACHINE_LABEL);
|
||||
|
||||
// 匹配对应数据
|
||||
schemeDTOS.forEach(f->{
|
||||
|
||||
f.setProcessLineConfigName(processLineConfigList.stream()
|
||||
@@ -147,35 +159,39 @@ public class SystemConfigApiImpl implements SystemConfigApi {
|
||||
.map(SystemConfigDO::getName)
|
||||
.toList().get(0)
|
||||
);
|
||||
f.setProcessLineConfigSetting(toJsonString(
|
||||
f.setProcessLineConfigSetting(
|
||||
processLineConfigList.stream()
|
||||
.filter(p->f.getProcessLineConfig().equals(p.getId()))
|
||||
.map(SystemConfigDO::getSetting)
|
||||
.toList().get(0)
|
||||
));
|
||||
|
||||
|
||||
);
|
||||
|
||||
f.setOptimizationConfigName(processLineConfigList.stream()
|
||||
.filter(p->f.getProcessLineConfig().equals(p.getId()))
|
||||
.map(SystemConfigDO::getName)
|
||||
.toList().get(0)
|
||||
);
|
||||
f.setOptimizationConfigSetting(toJsonString(
|
||||
f.setOptimizationConfigSetting(
|
||||
optimizationConfigList.stream()
|
||||
.filter(p->f.getOptimizationConfig().equals(p.getId()))
|
||||
.map(SystemConfigDO::getSetting)
|
||||
.toList().get(0)
|
||||
));
|
||||
);
|
||||
|
||||
|
||||
MachineDO machineDO = analyzerList.stream().filter(p -> f.getAnalyzer().equals(p.getId())).toList().get(0);
|
||||
|
||||
f.setAnalyzerConfigName(machineDO.getName());
|
||||
f.setAnalyzerConfigSetting(toJsonString(unzipString(machineDO.getSetting())));
|
||||
f.setAnalyzerConfigSetting(unzipString(machineDO.getSetting()));
|
||||
f.setMachineType(machineDO.getMachineType());
|
||||
|
||||
|
||||
LabelDO labelDO = labelDOS.stream().filter(l -> machineDO.getLabelId().equals(l.getId())).toList().get(0);
|
||||
f.setLabel(labelDO.getId());
|
||||
f.setLabelHeight(labelDO.getHeight());
|
||||
f.setLabelWidth(labelDO.getWidth());
|
||||
f.setLabelType(labelDO.getType());
|
||||
f.setLabelSetting(unzipString(labelDO.getTemplate()));
|
||||
|
||||
});
|
||||
|
||||
|
||||
@@ -183,7 +199,7 @@ public class SystemConfigApiImpl implements SystemConfigApi {
|
||||
}
|
||||
|
||||
|
||||
private void checkValueIsNotEmpty(List<String> value,String error) {
|
||||
private void checkValueIsNotEmpty(List<?> value,String error) {
|
||||
|
||||
if(ObjectUtils.isEmpty(value)){
|
||||
throw exception(SYSTEM_PROCESS_SCHEME_CONFIG_DATA_ERROR,error);
|
||||
|
||||
Reference in New Issue
Block a user