mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
Merge branch 'main' of ssh://192.168.1.205:9922/cf_devdept2/cf_imes_server
This commit is contained in:
+4
@@ -19,6 +19,10 @@ public interface ErrorCodeConstants {
|
||||
|
||||
ErrorCode PLAN_ERROR = new ErrorCode(1_001_107_004, "{} 排单数据不存在");
|
||||
|
||||
ErrorCode PLATE_ERROR = new ErrorCode(1_001_107_005, "当前新增的板材非同一类型的板材,禁止更改");
|
||||
|
||||
|
||||
|
||||
// ========== 生产单商品 TODO 补充编号 ==========
|
||||
ErrorCode GOODS_NOT_EXISTS = new ErrorCode(1_001_108_000, "生产单商品不存在");
|
||||
|
||||
|
||||
+1
-6
@@ -41,7 +41,7 @@ public class OptimizeRemainPlate {
|
||||
|
||||
|
||||
@Schema(description = "商品名", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String goodsName;
|
||||
private String name;
|
||||
|
||||
|
||||
@Schema(description = "材质", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@@ -67,11 +67,6 @@ public class OptimizeRemainPlate {
|
||||
|
||||
|
||||
|
||||
@Schema(description = "排单号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String planCode;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Integer count;
|
||||
|
||||
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
|
||||
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@Schema(description = "优化生产使用的余料板的信息")
|
||||
public class RemainBoardList {
|
||||
|
||||
|
||||
|
||||
@Schema(description = "前端生成的ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String id;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "余料板材质", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String material;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "余料板颜色", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String color;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "余料板宽", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Double width;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "余料板长", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Double length;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "余料板厚度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Double thickness;
|
||||
|
||||
|
||||
@Schema(description = "余料板数量", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Integer count;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "纹路 纹路(0正纹1可翻转2反纹)")
|
||||
private Integer texture;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "是否手动添加余料", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Boolean isHandAdd;
|
||||
|
||||
|
||||
}
|
||||
+13
-16
@@ -1,13 +1,10 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
|
||||
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsSaveReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateDetialRespVO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.OptimizeBoardModelDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@@ -29,18 +26,18 @@ public class SavePlanPlateResultReqVO {
|
||||
|
||||
|
||||
|
||||
@Schema(description = "优化后的小板列表数据", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<PlateDetialRespVO> plateList;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "优化后新增的小板ID")
|
||||
private List<Long> addPlateIds;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "优化后删除的小板ID")
|
||||
private List<Long> deletePlateIds;
|
||||
// @Schema(description = "优化后的小板列表数据", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
// private List<PlateDetialRespVO> plateList;
|
||||
//
|
||||
//
|
||||
//
|
||||
// @Schema(description = "优化后新增的小板ID")
|
||||
// private List<Long> addPlateIds;
|
||||
//
|
||||
//
|
||||
//
|
||||
// @Schema(description = "优化后删除的小板ID")
|
||||
// private List<Long> deletePlateIds;
|
||||
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -42,7 +42,7 @@ public class OrderPageReqVOCopy extends PageParam {
|
||||
private Boolean twoDimensionalToolPath;
|
||||
@Schema(description = "门板")
|
||||
private Boolean isDoor;
|
||||
@Schema(description = "创建时间", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
|
||||
@Schema(description = "生产单订单日期", example = "[2022-07-01 00:00:00,2022-07-01 23:59:59]")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
@Schema(description = "长 小范围")
|
||||
@@ -55,7 +55,7 @@ public class OrderPageReqVOCopy extends PageParam {
|
||||
private BigDecimal widthMaxRang;
|
||||
|
||||
|
||||
// todo 目前商品ID的数据筛选只解决了非混单的情况(非混单,数据类型为Long即可,混单情况需要改变),混单数据筛选待解决
|
||||
// todo 目前商品ID的数据筛选只解决了非混单的情况(非混单,数据类型为Long即可,混单情况需要改变),混单数据筛选待解决
|
||||
@Schema(description = "商品ID-板材库对应的大板ID")
|
||||
private Long goodsId;
|
||||
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ public class PlanSaveReqVO {
|
||||
private LocalDateTime produceTime;
|
||||
|
||||
|
||||
@Schema(description = "生产单id与商品id 列表",requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@Schema(description = "生产单id与商品id 列表,修改排单时,只传入新增的那一部分",requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<Item> itemList;
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ public class PlateDetialRespVO {
|
||||
private Long id;
|
||||
|
||||
|
||||
@Schema(description = "大板实例ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@Schema(description = "大板实际ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long goodsId;
|
||||
|
||||
@Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
|
||||
+3
@@ -57,4 +57,7 @@ public class PlateInfoVO {
|
||||
@Schema(description = "优化大板片数")
|
||||
private Long optimizeGoodsCount;
|
||||
|
||||
@Schema(description = "排单对应的小板信息")
|
||||
private List<PlatePage> platePages;
|
||||
|
||||
}
|
||||
|
||||
+6
-6
@@ -1,14 +1,10 @@
|
||||
package com.cf.imes.module.executor.dal.dataobject.goods;
|
||||
|
||||
import com.cf.imes.framework.organ.core.db.OrganBaseDO;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
|
||||
import lombok.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
/**
|
||||
* 生产单商品 DO
|
||||
@@ -45,6 +41,10 @@ public class GoodsDO extends BaseDO {
|
||||
* 商品 ID
|
||||
*/
|
||||
private String goodsId;
|
||||
/**
|
||||
* 排单 ID
|
||||
*/
|
||||
private Long planId;
|
||||
/**
|
||||
* 商品名称
|
||||
*/
|
||||
|
||||
+4
@@ -2,6 +2,7 @@ package com.cf.imes.module.executor.dal.dataobject.goods;
|
||||
|
||||
|
||||
import com.cf.imes.framework.es.core.dal.ESDocument;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.RemainBoardList;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -142,6 +143,9 @@ public class OptimizeBoardModelDO extends ESDocument {
|
||||
|
||||
|
||||
|
||||
@Schema(description = "余料板的数据列表")
|
||||
private List<RemainBoardList> remainBoardList;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+42
-3
@@ -1,14 +1,15 @@
|
||||
package com.cf.imes.module.executor.dal.mysql.goods;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsPageReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.GoodsReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderGoodsResp;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@@ -50,7 +51,7 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
||||
List<GoodsReqVO> selectGoodsList(@Param("orderId") Long orderId, @Param("organId") Long organId);
|
||||
|
||||
|
||||
List<GoodsReqVO> selectGoodsListByOrderIds(@Param("goodsIds") List<Long> goodsIds, @Param("organId") Long organId);
|
||||
List<GoodsReqVO> selectGoodsListByOrderIds(@Param("planId") Long planId, @Param("organId") Long organId);
|
||||
|
||||
|
||||
// 单个修改删除状态
|
||||
@@ -143,4 +144,42 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
||||
|
||||
}
|
||||
|
||||
default PageResult<GoodsDO> selectTestSQL(OrderPageReqVOCopy pageReqVO) {
|
||||
return selectPage(pageReqVO, new LambdaQueryWrapperX<GoodsDO>()
|
||||
.eq(GoodsDO::getOrganId, getUserOrganId())
|
||||
.orderByDesc(GoodsDO::getId));
|
||||
}
|
||||
|
||||
|
||||
IPage<OrderGoodsResp> selectOrderGoodsList(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper<GoodsDO> wrapper);
|
||||
|
||||
|
||||
List<PlateInfoVO> selectOrderGoodsPlateList(@Param("planIds") List<Long> planIds, @Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
default List<GoodsDO> selectPlanGoodsList(List<Long> goodsIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<GoodsDO>()
|
||||
.eq(GoodsDO::getOrganId, organId)
|
||||
.eq(GoodsDO::getDeleted, false)
|
||||
.inIfPresent(GoodsDO::getId,goodsIds));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
default List<GoodsDO> selectPlanGoods(Long planId, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<GoodsDO>()
|
||||
.eq(GoodsDO::getOrganId, organId)
|
||||
.eq(GoodsDO::getDeleted, false)
|
||||
.eqIfPresent(GoodsDO::getPlanId,planId)
|
||||
.select(GoodsDO::getGoodsId,GoodsDO::getId,GoodsDO::getOrderId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<OrderGoodsResp> selectGoodsListByGoodsId(@Param(Constants.WRAPPER) Wrapper<GoodsDO> wrapper);
|
||||
|
||||
|
||||
IPage<PlateResList> selectPlanGoodsListByPlanId(@Param("page") IPage<PlateResList> page, @Param(Constants.WRAPPER) Wrapper<GoodsDO> wrapper);
|
||||
}
|
||||
+4
-1
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
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.QueryWrapperX;
|
||||
import com.cf.imes.framework.organ.core.aop.OrganIgnore;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderCountProducePeriodRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderOverdueRespVO;
|
||||
@@ -242,10 +243,12 @@ public interface OrderMapper extends BaseMapperX<OrderDO> {
|
||||
.likeIfPresent(OrderDO::getCustomOrderNo,pageReqVO.getDefaultId())
|
||||
.likeIfPresent(OrderDO::getCustomer,pageReqVO.getConsignee())
|
||||
.likeIfPresent(OrderDO::getAddress,pageReqVO.getConsigneeAddress())
|
||||
.betweenIfPresent(OrderDO::getCreateTime,pageReqVO.getCreateTime())
|
||||
.betweenIfPresent(OrderDO::getOrderDate,pageReqVO.getCreateTime())
|
||||
.select(OrderDO::getId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<OrderGoodsResp> selectGoodsListByGoodsId(@Param(Constants.WRAPPER) QueryWrapperX<OrderDO> queryWrapperX);
|
||||
|
||||
}
|
||||
|
||||
+15
@@ -125,4 +125,19 @@ public interface OrderBodyMapper extends BaseMapperX<OrderBodyDO> {
|
||||
return delete(new LambdaQueryWrapperX<OrderBodyDO>()
|
||||
.in(OrderBodyDO::getOrderId, orderId));
|
||||
}
|
||||
|
||||
|
||||
List<OrderBodyDO> selectTestSQL(@Param("filed") String filed,@Param("bodyIds") List<Long> bodyIds,@Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
default List<OrderBodyDO> selectOrderBodyList(List<Long> bodyIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<OrderBodyDO>()
|
||||
.eq(OrderBodyDO::getOrganId, organId)
|
||||
.eq(OrderBodyDO::getDeleted,false)
|
||||
.in(OrderBodyDO::getId, bodyIds)
|
||||
.select(OrderBodyDO::getId,OrderBodyDO::getName,OrderBodyDO::getRoomName));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+5
-4
@@ -1,15 +1,12 @@
|
||||
package com.cf.imes.module.executor.dal.mysql.orderGroup;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
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.orderBody.OrderBodyDO;
|
||||
import com.cf.imes.module.executor.api.plan.vo.OrderGroupRespVO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -109,4 +106,8 @@ public interface OrderGroupMapper extends BaseMapperX<OrderGroupDO> {
|
||||
.eq(OrderGroupDO::getOrganId, organId)
|
||||
.in(OrderGroupDO::getBodyId, bodyIds)).stream().map(OrderGroupDO::getId).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
List<OrderGroupRespVO> selectTestSQL(@Param("filed") String filed, @Param("field2") String field2 ,@Param("groupIds") List<Long> groupIds, @Param("organId") Long organId);
|
||||
|
||||
}
|
||||
+17
-1
@@ -7,6 +7,7 @@ import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlatesDe
|
||||
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
|
||||
@@ -99,8 +100,23 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
||||
default List<OrderItemDO> selectPartsList(List<Long> partIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
||||
.eq(OrderItemDO::getOrganId,organId)
|
||||
.inIfPresent(OrderItemDO::getPlateId, partIds)
|
||||
.inIfPresent(OrderItemDO::getPartsId, partIds)
|
||||
.select(OrderItemDO::getNum));
|
||||
|
||||
}
|
||||
|
||||
IPage<OrderRespVOCopy> selectTestNum(@Param("page") IPage page,@Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
default List<OrderItemDO> selectOrderPlateList(List<Long> plateIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
||||
.eq(OrderItemDO::getOrganId,organId)
|
||||
.inIfPresent(OrderItemDO::getPlateId, plateIds)
|
||||
.select(OrderItemDO::getBodyId,OrderItemDO::getRoomId,OrderItemDO::getGroupId,OrderItemDO::getPlateId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
+6
-5
@@ -6,10 +6,9 @@ import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@@ -43,9 +42,11 @@ public interface PlanMapper extends BaseMapperX<PlanDO> {
|
||||
.betweenIfPresent(PlanDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(PlanDO::getOperator, reqVO.getOperator())
|
||||
.betweenIfPresent(PlanDO::getProduceTime, reqVO.getProduceTime())
|
||||
.leftJoin(PlanItemDO.class, PlanItemDO::getPlanId, PlanDO::getId)
|
||||
.leftJoin(OrderItemDO.class, OrderItemDO::getId, PlanItemDO::getItemId)
|
||||
.leftJoin(OrderDO.class, OrderDO::getId, OrderItemDO::getOrderId)
|
||||
|
||||
// todo 如果后续生产单加入排单状态,这里可以更改只连 orders 表
|
||||
.leftJoin(GoodsDO.class, GoodsDO::getPlanId, PlanDO::getId)
|
||||
// .leftJoin(OrderItemDO.class, OrderItemDO::getId, PlanItemDO::getItemId)
|
||||
.leftJoin(OrderDO.class, OrderDO::getId, GoodsDO::getOrderId)
|
||||
.like(OrderDO::getCustomer, reqVO.getCustomer())
|
||||
.orderBy(true, true, PlanDO::getSort)
|
||||
.orderByDesc(PlanDO::getUpdateTime)
|
||||
|
||||
-4
@@ -2,7 +2,6 @@ package com.cf.imes.module.executor.dal.mysql.planitem;
|
||||
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.PlanOrderRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateInfoVO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@@ -18,9 +17,6 @@ import java.util.List;
|
||||
public interface PlanItemMapper extends BaseMapperX<PlanItemDO> {
|
||||
|
||||
|
||||
List<PlateInfoVO> selectGoodsList(@Param("planIds") List<Long> planIds, @Param("organId") Long organId);
|
||||
|
||||
|
||||
List<PlanOrderRespVO> selectOrderList(@Param("planIds") List<Long> planIds, @Param("organId") Long userOrganId);
|
||||
|
||||
}
|
||||
+14
-8
@@ -174,7 +174,7 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
List<PlateDetialRespVO> selectPlateListByGoodIds(@Param("goodIds") List<Long> goodIds,@Param("organId") Long organId);
|
||||
|
||||
|
||||
List<PlateInfoVO> selectPlateArea(@Param("orderIdsList") List<OrderIds> orderIdsList,@Param("organId") Long organId);
|
||||
// List<PlateInfoVO> selectPlateArea(@Param("orderIdsList") List<OrderIds> orderIdsList,@Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
@@ -188,13 +188,7 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
|
||||
|
||||
|
||||
default List<PlateDO> selectPlateListByGoodsIds(List<Long> deleteIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||
.eq(PlateDO::getOrganId,organId)
|
||||
.inIfPresent(PlateDO::getGoodsId, deleteIds)
|
||||
.select(PlateDO::getPlateNo));
|
||||
|
||||
}
|
||||
List<PlateDetialRespVO> selectPlateListByGoodsIds(@Param("goodsIdList") List<Long> goodsIdList,@Param("organId") Long organId);
|
||||
|
||||
|
||||
// 批量删除
|
||||
@@ -219,6 +213,18 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
}
|
||||
|
||||
|
||||
|
||||
default List<PlateDO> selectPlateIds(OrderPageReqVOCopy pageReqVO, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||
.eq(PlateDO::getOrganId,organId)
|
||||
.eq(PlateDO::getDeleted,false)
|
||||
.eqIfPresent(PlateDO::getIsSpecialShaped,pageReqVO.getSpecialShaped())
|
||||
.eqIfPresent(PlateDO::getIsDoor,pageReqVO.getIsDoor())
|
||||
.select(PlateDO::getGoodsId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
// List<PlateDO> selectTestSQL(@Param("sql") String sql);
|
||||
|
||||
|
||||
|
||||
+4
-1
@@ -3,7 +3,10 @@ package com.cf.imes.module.executor.service.optimizeplan;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderSource;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.CuttingStatusRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.SavePlanPlateResultReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.AddRemainReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.GetSourceDataReq;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPageReqVOCopy;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.OptimizeBoardModelDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
||||
|
||||
|
||||
+136
-93
@@ -11,13 +11,11 @@ import co.elastic.clients.elasticsearch.core.search.Hit;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
||||
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
||||
import com.cf.imes.framework.common.enums.RemainTypeEnum;
|
||||
import com.cf.imes.framework.common.exception.ServiceException;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
||||
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||
import com.cf.imes.framework.security.core.LoginUser;
|
||||
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderSource;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessGroupList;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepAreaIds;
|
||||
@@ -28,7 +26,7 @@ import com.cf.imes.module.executor.dal.dataobject.goods.CutedBoardInfo;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.OptimizeBoardModelDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
|
||||
@@ -37,6 +35,8 @@ import com.cf.imes.module.executor.dal.dataobject.processStep.ProcessStepDO;
|
||||
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.order.OrderMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderGroup.OrderGroupMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
|
||||
@@ -53,7 +53,6 @@ import com.cf.imes.module.system.api.process.dto.ProcessDTO;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -70,7 +69,6 @@ import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.ge
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_NOT_EXISTS;
|
||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLAN_NOT_EXISTS;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.INSUFFICIENT_PERMISSIONS;
|
||||
|
||||
/**
|
||||
* @author there
|
||||
@@ -126,6 +124,12 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
@Resource
|
||||
private ProcessStepItemMapper processStepItemMapper;
|
||||
|
||||
@Resource
|
||||
private OrderBodyMapper orderBodyMapper;
|
||||
|
||||
@Resource
|
||||
private OrderGroupMapper orderGroupMapper;
|
||||
|
||||
|
||||
@Override
|
||||
public List<PlateOptimize> getPlateListByPlanId(Long planId) {
|
||||
@@ -474,6 +478,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
List<PlateDetialRespVO> plateDOS = plateMapper.selectPlateDetialList(orderId,getUserOrganId());
|
||||
|
||||
|
||||
for (PlateDetialRespVO plateDetailsRespVO : plateDOS) {
|
||||
String name = "";
|
||||
if(!plateDetailsRespVO.getProcessGroupLists().isEmpty()) {
|
||||
@@ -504,7 +509,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
|
||||
// 大板数据的尺寸长度
|
||||
Integer boardSize = goodsDOS.stream().map(m -> m.getId()).collect(Collectors.toList()).size();
|
||||
Integer boardSize = goodsDOS.stream().map(GoodsReqVO::getId).toList().size();
|
||||
|
||||
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByOrderId(orderId, ORDER_REMAIN_PLATE_MODEL, boardSize);
|
||||
@@ -528,29 +533,41 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
if (Objects.isNull(planDO)) {
|
||||
throw exception(PLAN_NOT_EXISTS);
|
||||
}
|
||||
MPJLambdaWrapper<OrderItemDO> wrapper = new MPJLambdaWrapperX<OrderItemDO>()
|
||||
.select(OrderItemDO::getOrderId,OrderItemDO::getPlateId)
|
||||
.rightJoin(PlanItemDO.class, PlanItemDO::getItemId, OrderItemDO::getId)
|
||||
.eq(PlanItemDO::getPlanId, planId)
|
||||
.isNotNull(OrderItemDO::getId);
|
||||
List<OrderItemDO> orderItemDOS = orderItemMapper.selectJoinList(OrderItemDO.class, wrapper);
|
||||
List<Long> orderIds = orderItemDOS.stream().map(OrderItemDO::getOrderId).collect(Collectors.toList());
|
||||
|
||||
// 查询排单对应的大板信息
|
||||
List<GoodsReqVO> goodsDOS = goodsMapper.selectGoodsListByOrderIds(planId,getUserOrganId());
|
||||
|
||||
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
|
||||
// List<GoodsDO> goodsDOS = goodsMapper.selectList(new LambdaQueryWrapperX<GoodsDO>().in(GoodsDO::getOrderId, orderIds));
|
||||
List<Long> orderIds = goodsDOS.stream().map(GoodsReqVO::getOrderId).toList();
|
||||
|
||||
|
||||
List<Long> plateIds = orderItemDOS.stream().map(OrderItemDO::getPlateId).distinct().toList();
|
||||
List<Long> ids = goodsDOS.stream().map(GoodsReqVO::getId).toList();
|
||||
|
||||
List<Long> goodsIds = plateMapper.selectBatchIds(plateIds).stream().map(PlateDO::getGoodsId).distinct().toList();
|
||||
|
||||
List<GoodsReqVO> goodsDOS = goodsMapper.selectGoodsListByOrderIds(goodsIds,getUserOrganId());
|
||||
List<PlateDetialRespVO> plateDetialRespVOS = plateMapper.selectPlateListByGoodsIds(ids, getUserOrganId());
|
||||
|
||||
List<PlateDetialRespVO> plateDOS = plateMapper.selectPlateDetialListByIds(plateIds,getUserOrganId());
|
||||
|
||||
for (PlateDetialRespVO plateDetailsRespVO : plateDOS) {
|
||||
List<Long> bodyIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getBodyId).distinct().toList();
|
||||
|
||||
|
||||
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectOrderBodyList(bodyIds, getUserOrganId());
|
||||
|
||||
|
||||
List<PlateDetialRespVO> detialRespVOS = new ArrayList<>();
|
||||
|
||||
|
||||
for (OrderBodyDO orderBodyDO : orderBodyDOS) {
|
||||
|
||||
detialRespVOS.addAll(plateDetialRespVOS.stream().filter(f -> f.getBodyId().equals(orderBodyDO.getId())).peek(m -> {
|
||||
m.setBodyName(orderBodyDO.getName());
|
||||
m.setRoomName(orderBodyDO.getRoomName());
|
||||
}).toList());
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
for (PlateDetialRespVO plateDetailsRespVO : detialRespVOS) {
|
||||
String name = "";
|
||||
if(!plateDetailsRespVO.getProcessGroupLists().isEmpty()) {
|
||||
for (ProcessGroupList groupNameList : plateDetailsRespVO.getProcessGroupLists()) {
|
||||
@@ -561,12 +578,26 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
name = name.substring(0, name.length() - 1);
|
||||
}
|
||||
plateDetailsRespVO.setProcessGroupName(name);
|
||||
|
||||
plateDetailsRespVO.setGoodsId(goodsDOS
|
||||
.stream()
|
||||
.filter(f->f.getId().equals(plateDetailsRespVO.getId()))
|
||||
.map(GoodsReqVO::getGoodsId)
|
||||
.findAny().orElse(null));
|
||||
|
||||
plateDetailsRespVO.setGoodsName(goodsDOS
|
||||
.stream()
|
||||
.filter(f->f.getId().equals(plateDetailsRespVO.getId()))
|
||||
.map(GoodsReqVO::getGoodsName)
|
||||
.findAny().orElse(null));
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
|
||||
// 造型数据的尺寸长度
|
||||
Integer orderModelSize = plateDOS.size();
|
||||
Integer orderModelSize = plateDetialRespVOS.size();
|
||||
|
||||
List<OrderModelDO> orderModelDOS = buildRespByOrderIds(orderIds, ORDER_PLATE_MODEL, orderModelSize);
|
||||
|
||||
@@ -592,7 +623,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
.orderList(orderDOS)
|
||||
.plan(planDO)
|
||||
.goodsList(goodsDOS)
|
||||
.plateList(plateDOS)
|
||||
.plateList(plateDetialRespVOS)
|
||||
.plateModels(orderModelDOS)
|
||||
.optimizeBoardModelDOS(optimizeBoardModelDOS)
|
||||
.optimizeRemainPlates(optimizeRemainPlates)
|
||||
@@ -627,10 +658,30 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
||||
|
||||
List<PlateDetialRespVO> plateDetialRespVOS = plateMapper.selectPlateListByGoodIds(ids, getUserOrganId());
|
||||
|
||||
List<PlateDetialRespVO> plateDetialRespVOS = plateMapper.selectPlateListByGoodsIds(ids, getUserOrganId());
|
||||
|
||||
|
||||
for (PlateDetialRespVO plateDetailsRespVO : plateDetialRespVOS) {
|
||||
List<Long> bodyIds = plateDetialRespVOS.stream().map(PlateDetialRespVO::getBodyId).distinct().toList();
|
||||
|
||||
|
||||
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectOrderBodyList(bodyIds, getUserOrganId());
|
||||
|
||||
|
||||
List<PlateDetialRespVO> detialRespVOS = new ArrayList<>();
|
||||
|
||||
|
||||
for (OrderBodyDO orderBodyDO : orderBodyDOS) {
|
||||
|
||||
detialRespVOS.addAll(plateDetialRespVOS.stream().filter(f -> f.getBodyId().equals(orderBodyDO.getId())).peek(m -> {
|
||||
m.setBodyName(orderBodyDO.getName());
|
||||
m.setRoomName(orderBodyDO.getRoomName());
|
||||
}).toList());
|
||||
|
||||
}
|
||||
|
||||
|
||||
for (PlateDetialRespVO plateDetailsRespVO : detialRespVOS) {
|
||||
String name = "";
|
||||
if(!plateDetailsRespVO.getProcessGroupLists().isEmpty()) {
|
||||
for (ProcessGroupList groupNameList : plateDetailsRespVO.getProcessGroupLists()) {
|
||||
@@ -684,6 +735,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
// 先根据排单查找是否有优化数据,如果有,删除
|
||||
List<Long> planIds = req.getOptimizeBoardModelDOS().stream().map(OptimizeBoardModelDO::getPlanId).toList();
|
||||
|
||||
// todo 目前只解决非混单的情况下,
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanIds(planIds, ORDER_REMAIN_PLATE_MODEL, planIds.size());
|
||||
if(!optimizeBoardModelDOS.isEmpty()){
|
||||
|
||||
@@ -696,84 +748,75 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
batchSaveBoardModel(req.getOptimizeBoardModelDOS());
|
||||
|
||||
|
||||
// 保存余料板的数据
|
||||
if (CollectionUtil.isNotEmpty(req.getOptimizeRemainPlates())) {
|
||||
ArrayList<RemainPlateDO> remainPlateDOS = new ArrayList<>();
|
||||
|
||||
for (OptimizeRemainPlate optimizeRemainPlate : req.getOptimizeRemainPlates()) {
|
||||
remainPlateDOS.add(RemainPlateDO.builder()
|
||||
.id(optimizeRemainPlate.getId())
|
||||
.planId(optimizeRemainPlate.getPlanId())
|
||||
.initPlanId(optimizeRemainPlate.getInitPlanId())
|
||||
.organId(getUserOrganId())
|
||||
.status(optimizeRemainPlate.getStatus())
|
||||
.isCutting(true)
|
||||
.useType(RemainTypeEnum.PATCHINGPLATE.getType())
|
||||
.goodsId(optimizeRemainPlate.getGoodsId().toString())
|
||||
.name(optimizeRemainPlate.getGoodsName())
|
||||
.material(optimizeRemainPlate.getMaterial())
|
||||
.color(optimizeRemainPlate.getColor())
|
||||
.width(optimizeRemainPlate.getWidth())
|
||||
.length(optimizeRemainPlate.getLength())
|
||||
.thickness(optimizeRemainPlate.getThickness())
|
||||
.brand(optimizeRemainPlate.getBrand())
|
||||
.placeStyle(optimizeRemainPlate.getPlaceStyle())
|
||||
.store("")
|
||||
.count(optimizeRemainPlate.getCount())
|
||||
.remark(optimizeRemainPlate.getRemark())
|
||||
.outLineJson(optimizeRemainPlate.getOutLineJson())
|
||||
.build());
|
||||
}
|
||||
List<RemainPlateDO> remainPlateDoS = BeanUtils.toBean(req.getOptimizeRemainPlates(), RemainPlateDO.class)
|
||||
.stream()
|
||||
.map(m -> m.setUseType(1))
|
||||
.map(m -> m.setOutLineJson("")).toList();
|
||||
|
||||
remainPlateMapper.updateBatch(remainPlateDOS);
|
||||
|
||||
List<RemainPlateDO> insertPlateDoS = remainPlateDoS.stream().filter(f -> f.getId() == null).toList();
|
||||
|
||||
List<RemainPlateDO> updatePlateDoS = remainPlateDoS.stream().filter(f -> f.getId() != null).toList();
|
||||
|
||||
Boolean aBoolean = insertPlateDoS.isEmpty() ? null : remainPlateMapper.insertBatch(insertPlateDoS);
|
||||
|
||||
Boolean bBoolean = updatePlateDoS.isEmpty() ? null : remainPlateMapper.updateBatch(updatePlateDoS);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 有新增小板,往数据库新增小板
|
||||
if (CollectionUtil.isNotEmpty(req.getAddPlateIds())) {
|
||||
// todo 目前新增小板在界面就已经走接口了,这个逻辑应该用不到了
|
||||
|
||||
List<PlateDetialRespVO> addPlates = req.getPlateList().stream()
|
||||
.filter(m -> req.getAddPlateIds().contains(m.getPlateId()))
|
||||
.map(m -> m.setPlateId(null))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 批量新增小板信息
|
||||
List<PlateDO> plateDOS = BeanUtils.toBean(addPlates, PlateDO.class);
|
||||
|
||||
plateMapper.insertBatch(plateDOS);
|
||||
|
||||
// 批量新增生产单明细表信息
|
||||
ArrayList<OrderItemDO> orderItemDOS = new ArrayList<>();
|
||||
|
||||
for (PlateDetialRespVO plateDetialRespVO : req.getPlateList()) {
|
||||
orderItemDOS.add(OrderItemDO.builder()
|
||||
// .id(plateDetialRespVO.getItemId())
|
||||
.bodyId(plateDetialRespVO.getBodyId())
|
||||
.roomId(plateDetialRespVO.getRoomId())
|
||||
// .groupId(Long.valueOf(plateDetialRespVO.getProcessGroupId()))
|
||||
.orderId(plateDetialRespVO.getOrderId())
|
||||
.type(1)
|
||||
.plateId(plateDetialRespVO.getPlateId())
|
||||
.build());
|
||||
}
|
||||
|
||||
|
||||
orderItemMapper.insertBatch(orderItemDOS);
|
||||
|
||||
}
|
||||
|
||||
// 有删除的小板ID,删除小板
|
||||
if (CollectionUtil.isNotEmpty(req.getDeletePlateIds())) {
|
||||
|
||||
// 删除生产单板件表的小板
|
||||
plateMapper.deleteBatchIds(req.getDeletePlateIds());
|
||||
|
||||
// 删除生产单明细表中对应的小板数据
|
||||
orderItemMapper.deleteByPlateId(req.getDeletePlateIds());
|
||||
|
||||
|
||||
}
|
||||
// if (CollectionUtil.isNotEmpty(req.getAddPlateIds())) {
|
||||
//
|
||||
// List<PlateDetialRespVO> addPlates = req.getPlateList().stream()
|
||||
// .filter(m -> req.getAddPlateIds().contains(m.getPlateId()))
|
||||
// .map(m -> m.setPlateId(null))
|
||||
// .collect(Collectors.toList());
|
||||
//
|
||||
// // 批量新增小板信息
|
||||
// List<PlateDO> plateDOS = BeanUtils.toBean(addPlates, PlateDO.class);
|
||||
//
|
||||
// plateMapper.insertBatch(plateDOS);
|
||||
//
|
||||
// // 批量新增生产单明细表信息
|
||||
// ArrayList<OrderItemDO> orderItemDOS = new ArrayList<>();
|
||||
//
|
||||
// for (PlateDetialRespVO plateDetialRespVO : req.getPlateList()) {
|
||||
// orderItemDOS.add(OrderItemDO.builder()
|
||||
//// .id(plateDetialRespVO.getItemId())
|
||||
// .bodyId(plateDetialRespVO.getBodyId())
|
||||
// .roomId(plateDetialRespVO.getRoomId())
|
||||
//// .groupId(Long.valueOf(plateDetialRespVO.getProcessGroupId()))
|
||||
// .orderId(plateDetialRespVO.getOrderId())
|
||||
// .type(1)
|
||||
// .plateId(plateDetialRespVO.getPlateId())
|
||||
// .build());
|
||||
// }
|
||||
//
|
||||
//
|
||||
// orderItemMapper.insertBatch(orderItemDOS);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// // 有删除的小板ID,删除小板
|
||||
// if (CollectionUtil.isNotEmpty(req.getDeletePlateIds())) {
|
||||
//
|
||||
// // 删除生产单板件表的小板
|
||||
// plateMapper.deleteBatchIds(req.getDeletePlateIds());
|
||||
//
|
||||
// // 删除生产单明细表中对应的小板数据
|
||||
// orderItemMapper.deleteByPlateId(req.getDeletePlateIds());
|
||||
//
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
+266
-150
@@ -24,7 +24,6 @@ import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.BlockPlaceInfo;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
@@ -48,9 +47,6 @@ import com.cf.imes.module.executor.enums.OrderStatusEnum;
|
||||
import com.cf.imes.module.executor.service.optimizeplan.OptimizePlanService;
|
||||
import com.cf.imes.module.system.api.machine.MachineApi;
|
||||
import com.cf.imes.module.system.api.machine.dto.CuttingRespDTO;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -71,7 +67,6 @@ import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparato
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.*;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.THE_BOARD_HAS_BEEN_CUT_INTO_PIECES;
|
||||
|
||||
/**
|
||||
* 生产单开料排单 Service 实现类
|
||||
@@ -130,7 +125,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
ArrayList<PlanDO> planDOS = new ArrayList<>();
|
||||
|
||||
ArrayList<PlanItemDO> planItemDOS = new ArrayList<>();
|
||||
List<GoodsDO> goodsDOS = new ArrayList<>();
|
||||
|
||||
Map<Long,Long> goodsPlanId = new HashMap<>();
|
||||
|
||||
@@ -154,18 +149,24 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
goodsPlanId.put(entry.getKey(), plan.getId());
|
||||
|
||||
Set<Long> itemIds = plateMapper.selectBatchOrderIdsAndGoodsIds(items,getUserOrganId());
|
||||
// Set<Long> itemIds = plateMapper.selectBatchOrderIdsAndGoodsIds(items,getUserOrganId());
|
||||
|
||||
if (CollectionUtil.isNotEmpty(itemIds)) {
|
||||
List<Long> goodsIds = items.stream().map(PlanSaveReqVO.Item::getId).toList();
|
||||
|
||||
for (Long itemId : itemIds) {
|
||||
planItemDOS.add(PlanItemDO.builder()
|
||||
.planId(plan.getId())
|
||||
.itemId(itemId)
|
||||
.build());
|
||||
}
|
||||
List<GoodsDO> goodsDOList = goodsMapper.selectPlanGoodsList(goodsIds, getUserOrganId()).stream().map(m -> m.setPlanId(plan.getId())).toList();
|
||||
|
||||
}
|
||||
goodsDOS.addAll(goodsDOList);
|
||||
|
||||
// if (CollectionUtil.isNotEmpty(itemIds)) {
|
||||
//
|
||||
// for (Long itemId : itemIds) {
|
||||
// planItemDOS.add(PlanItemDO.builder()
|
||||
// .planId(plan.getId())
|
||||
// .itemId(itemId)
|
||||
// .build());
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
@@ -173,7 +174,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
planMapper.insertBatch(planDOS);
|
||||
|
||||
|
||||
planItemMapper.insertBatch(planItemDOS);
|
||||
goodsMapper.updateBatch(goodsDOS);
|
||||
|
||||
|
||||
return goodsPlanId;
|
||||
@@ -207,74 +208,111 @@ public class PlanServiceImpl implements PlanService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updatePlan(PlanSaveReqVO updateReqVO) {
|
||||
|
||||
// 校验存在
|
||||
// 校验排单是否存在,是否开料
|
||||
validatePlanExists(updateReqVO.getId(),updateReqVO.getMachineId());
|
||||
|
||||
// 更新
|
||||
PlanDO plan = BeanUtils.toBean(updateReqVO, PlanDO.class);
|
||||
|
||||
// 目前只解决非混单的情况
|
||||
// 校验新增的板材是否和排单为统一类型的
|
||||
if(!updateReqVO.getItemList().isEmpty()){
|
||||
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(plan.getId(), ORDER_REMAIN_PLATE_MODEL, 99);
|
||||
// todo 目前之解决非混单的情况,混单的情况待解决
|
||||
Long goodsId = updateReqVO.getItemList().stream().map(PlanSaveReqVO.Item::getGoodsId).distinct().toList().get(0);
|
||||
|
||||
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||
|
||||
List<Long> goodsNo = optimizeBoardModelDO.getCutedBoardInfo().getCutedBoardList();
|
||||
// todo 目前只解决非混单的情况
|
||||
Long goodsIds = BeanUtils.toBean(goodsMapper.selectPlanGoods(plan.getId(), getUserOrganId()).stream().map(GoodsDO::getGoodsId).toList(), Long.class).get(0);
|
||||
|
||||
List<Long> plateNo = new ArrayList<>();
|
||||
|
||||
// 创建一个列表存储 BlockPlaceInfo 对象,将优化的小板信息拿出,获取到小板编号,查询生产单,修改生产单的状态
|
||||
List<BlockPlaceInfo> outputList = new ArrayList<>();
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
try {
|
||||
// 解析 JSON 字符串
|
||||
JsonNode jsonArray = mapper.readTree(optimizeBoardModelDO.getBlockPlaceInfo());
|
||||
|
||||
// 遍历 JSON 数组并提取所需字段
|
||||
if (jsonArray.isArray()) {
|
||||
for (JsonNode jsonNode : jsonArray) {
|
||||
Long bi = jsonNode.get("bi").asLong();
|
||||
Long bo = jsonNode.get("bo").asLong();
|
||||
outputList.add(new BlockPlaceInfo(bi,bo));
|
||||
}
|
||||
}
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
if(goodsId.equals(goodsIds)){
|
||||
throw exception(PLATE_ERROR);
|
||||
}
|
||||
|
||||
for (Long goods : goodsNo) {
|
||||
plateNo.addAll(outputList.stream().filter(f -> f.getBi().equals(goods)).map(BlockPlaceInfo::getBo).distinct().toList());
|
||||
}
|
||||
// 修改排单板材,删除排单的优化生产数据
|
||||
deleteByPlanId(Collections.singletonList(plan.getId()),ORDER_REMAIN_PLATE_MODEL);
|
||||
|
||||
if(updateReqVO.getDeleteIds() != null) {
|
||||
List<Long> ids = updateReqVO.getItemList().stream().map(PlanSaveReqVO.Item::getId).toList();
|
||||
|
||||
List<PlateDO> plateDOS = plateMapper.selectPlateListByGoodsIds(updateReqVO.getDeleteIds(), getUserOrganId());
|
||||
List<GoodsDO> goodsDOS = new ArrayList<>(goodsMapper.selectPlanGoodsList(ids, getUserOrganId())
|
||||
.stream().map(m -> m.setPlanId(plan.getId())).toList());
|
||||
|
||||
List<Long> deletePlateNos = plateDOS.stream().map(PlateDO::getPlateNo).map(Long::valueOf).toList();
|
||||
if (!updateReqVO.getDeleteIds().isEmpty()){
|
||||
|
||||
List<Long> plateNoCopyList = new ArrayList<>(plateNo);
|
||||
|
||||
// 使用retainAll方法保留 plateNo 中与 deletePlateNos 相同的元素
|
||||
plateNoCopyList.retainAll(deletePlateNos);
|
||||
|
||||
// 如果 plateNoCopyList 不为空,说明两个List有共同的元素
|
||||
boolean b = !plateNoCopyList.isEmpty();
|
||||
|
||||
if (b) {
|
||||
|
||||
throw exception(THE_BOARD_HAS_BEEN_CUT_INTO_PIECES);
|
||||
|
||||
}
|
||||
goodsDOS.addAll(goodsMapper.selectPlanGoodsList(ids, getUserOrganId()).stream().map(m -> m.setPlanId(null)).toList());
|
||||
|
||||
}
|
||||
|
||||
goodsMapper.updateBatch(goodsDOS);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
planMapper.updateById(plan);
|
||||
|
||||
|
||||
//
|
||||
// // todo 目前只解决非混单的情况,混单的情况待解决,这个逻辑目前应该不用,排单是否开料判断了,可保留,万一以后需求更改
|
||||
// if(!updateReqVO.getItemList().isEmpty()){
|
||||
//
|
||||
// List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanId(plan.getId(), ORDER_REMAIN_PLATE_MODEL, 10);
|
||||
//
|
||||
// OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||
//
|
||||
// List<Long> goodsNo = optimizeBoardModelDO.getCutedBoardInfo().getCutedBoardList();
|
||||
//
|
||||
// List<Long> plateNo = new ArrayList<>();
|
||||
//
|
||||
// // 创建一个列表存储 BlockPlaceInfo 对象,将优化的小板信息拿出,获取到小板编号,查询生产单,修改生产单的状态
|
||||
// List<BlockPlaceInfo> outputList = new ArrayList<>();
|
||||
//
|
||||
// ObjectMapper mapper = new ObjectMapper();
|
||||
//
|
||||
// try {
|
||||
// // 解析 JSON 字符串
|
||||
// JsonNode jsonArray = mapper.readTree(optimizeBoardModelDO.getBlockPlaceInfo());
|
||||
//
|
||||
// // 遍历 JSON 数组并提取所需字段
|
||||
// if (jsonArray.isArray()) {
|
||||
// for (JsonNode jsonNode : jsonArray) {
|
||||
// Long bi = jsonNode.get("bi").asLong();
|
||||
// Long bo = jsonNode.get("bo").asLong();
|
||||
// outputList.add(new BlockPlaceInfo(bi,bo));
|
||||
// }
|
||||
// }
|
||||
// } catch (JsonProcessingException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// for (Long goods : goodsNo) {
|
||||
// plateNo.addAll(outputList.stream().filter(f -> f.getBi().equals(goods)).map(BlockPlaceInfo::getBo).distinct().toList());
|
||||
// }
|
||||
//
|
||||
// if(updateReqVO.getDeleteIds() != null) {
|
||||
//
|
||||
// List<PlateDO> plateDOS = plateMapper.selectPlateListByGoodsIds(updateReqVO.getDeleteIds(), getUserOrganId());
|
||||
//
|
||||
// List<Long> deletePlateNos = plateDOS.stream().map(PlateDO::getPlateNo).map(Long::valueOf).toList();
|
||||
//
|
||||
// List<Long> plateNoCopyList = new ArrayList<>(plateNo);
|
||||
//
|
||||
// // 使用retainAll方法保留 plateNo 中与 deletePlateNos 相同的元素
|
||||
// plateNoCopyList.retainAll(deletePlateNos);
|
||||
//
|
||||
// // 如果 plateNoCopyList 不为空,说明两个List有共同的元素
|
||||
// boolean b = !plateNoCopyList.isEmpty();
|
||||
//
|
||||
// if (b) {
|
||||
//
|
||||
// throw exception(THE_BOARD_HAS_BEEN_CUT_INTO_PIECES);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -358,7 +396,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
|
||||
|
||||
private void validatePlanExists(Long id,Long machineId) {
|
||||
private void validatePlanExists(Long id, Long machineId) {
|
||||
PlanDO planDO = planMapper.selectById(id);
|
||||
if ( planDO== null) {
|
||||
throw exception(PLAN_NOT_EXISTS);
|
||||
@@ -462,31 +500,47 @@ public class PlanServiceImpl implements PlanService {
|
||||
List<CuttingRespDTO> machines = machineApi.list(machineIds).getCheckedData();
|
||||
|
||||
|
||||
|
||||
List<PlateInfoVO> plateInfoVOS = planItemMapper.selectGoodsList(planIds,getUserOrganId());
|
||||
|
||||
List<OrderIds> orderIdsList = new ArrayList<>();
|
||||
|
||||
plateInfoVOS.forEach(f->
|
||||
orderIdsList.addAll(f.getOrderIdList()));
|
||||
// List<PlateInfoVO> plateInfoVOS = planItemMapper.selectGoodsList(planIds,getUserOrganId());
|
||||
|
||||
|
||||
List<PlateInfoVO> plateInfoVOList = plateMapper.selectPlateArea(orderIdsList, getUserOrganId());
|
||||
// 查询排单对应的大板板材信息
|
||||
List<PlateInfoVO> plateInfoVOS = goodsMapper.selectOrderGoodsPlateList(planIds, getUserOrganId());
|
||||
|
||||
|
||||
// todo 目前这种情况只解决没有混单的情况,混单情况待解决 (目前解决,数据正确性待测试)
|
||||
for (PlateInfoVO plateInfoVO : plateInfoVOS) {
|
||||
plateInfoVO.setArea(plateInfoVOList.stream()
|
||||
.filter(s->s.getGoodsId().equals(plateInfoVO.getGoodsId()))
|
||||
.map(PlateInfoVO::getArea)
|
||||
.reduce(BigDecimal.ZERO,BigDecimal::add));
|
||||
// 查询排单对应的小板数量和小板面积
|
||||
List<PlateInfoVO> infoVOList = plateInfoVOS.stream().peek(m -> {
|
||||
|
||||
// plateInfoVO.setOptimizeGoodsCount(plateInfoVOList.stream().filter(s->s.getGoodsId().equals(plateInfoVO.getGoodsId())).mapToLong(PlateInfoVO::getOptimizeGoodsCount).sum());
|
||||
}
|
||||
m.setCount((int) m.getPlatePages().stream().map(PlatePage::getPlateId).count());
|
||||
|
||||
m.setArea(m.getPlatePages().stream().map(PlatePage::getArea).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
m.setPlatePages(null);
|
||||
|
||||
}).toList();
|
||||
|
||||
|
||||
// List<OrderIds> orderIdsList = new ArrayList<>();
|
||||
//
|
||||
// plateInfoVOS.forEach(f->
|
||||
// orderIdsList.addAll(f.getOrderIdList()));
|
||||
//
|
||||
//
|
||||
// List<PlateInfoVO> plateInfoVOList = plateMapper.selectPlateArea(orderIdsList, getUserOrganId());
|
||||
//
|
||||
//
|
||||
//
|
||||
// // todo 目前这种情况只解决没有混单的情况,混单情况待解决 (目前解决,数据正确性待测试)
|
||||
// for (PlateInfoVO plateInfoVO : plateInfoVOS) {
|
||||
// plateInfoVO.setArea(plateInfoVOList.stream()
|
||||
// .filter(s->s.getGoodsId().equals(plateInfoVO.getGoodsId()))
|
||||
// .map(PlateInfoVO::getArea)
|
||||
// .reduce(BigDecimal.ZERO,BigDecimal::add));
|
||||
//
|
||||
//// plateInfoVO.setOptimizeGoodsCount(plateInfoVOList.stream().filter(s->s.getGoodsId().equals(plateInfoVO.getGoodsId())).mapToLong(PlateInfoVO::getOptimizeGoodsCount).sum());
|
||||
// }
|
||||
|
||||
|
||||
// 根据排单ID查询ES中的优化数据 todo 目前只解决无混单的情况,混单情况待解决
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanIds(planIds, ORDER_REMAIN_PLATE_MODEL, plateInfoVOS.size());
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanIds(planIds, ORDER_REMAIN_PLATE_MODEL, infoVOList.size());
|
||||
|
||||
|
||||
// 获取排单对应的生产单的信息
|
||||
@@ -504,11 +558,11 @@ public class PlanServiceImpl implements PlanService {
|
||||
.findAny()
|
||||
.orElse(null));
|
||||
// 板材信息列表
|
||||
e.setPlateInfoList(plateInfoVOS.stream()
|
||||
e.setPlateInfoList(infoVOList.stream()
|
||||
.filter(f -> Objects.equals(f.getPlanId(), e.getId()))
|
||||
.collect(Collectors.toList()));
|
||||
// todo 小板总数量目前只解决没有混单的情况时的小板数量,后续待加入混单情况 (目前解决,数据正确性待测试)
|
||||
e.setPlateNum(plateInfoVOS.stream()
|
||||
e.setPlateNum(infoVOList.stream()
|
||||
.filter(f -> Objects.equals(f.getPlanId(), e.getId()))
|
||||
.mapToLong(PlateInfoVO::getCount)
|
||||
.sum());
|
||||
@@ -559,32 +613,44 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>();
|
||||
queryWrapperX
|
||||
.eq("a.organ_id",getUserOrganId())
|
||||
// .eq("a.status",OrderStatusEnum.SORTED.getStatus())
|
||||
.eq("a.deleted",false)
|
||||
.in("a.status",statusList)
|
||||
.isNull("opi.item_id")
|
||||
.eq("o.organ_id",getUserOrganId())
|
||||
.eq("o.deleted",false)
|
||||
.in("o.status",statusList)
|
||||
.eq("og.organ_id",getUserOrganId())
|
||||
.eq("og.plan_id",0)
|
||||
.eq("og.deleted",false)
|
||||
// .isNull("opi.item_id")
|
||||
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
|
||||
.inIfPresent("op.goods_id",goodsDOS.isEmpty() ? null :goodsDOS.stream().map(GoodsDO::getId).toList())
|
||||
|
||||
.inIfPresent("a.id",pageReqVO.getOrderIds())
|
||||
.likeIfPresent("a.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null)
|
||||
.inIfPresent("o.id",pageReqVO.getOrderIds())
|
||||
.likeIfPresent("o.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null)
|
||||
.inIfPresent("op.goods_id",pageReqVO.getIds())
|
||||
.eqIfPresent("a.customer", pageReqVO.getConsignee())
|
||||
.eqIfPresent("a.custom_order_no", pageReqVO.getDefaultId())
|
||||
.eqIfPresent("a.address", pageReqVO.getConsigneeAddress())
|
||||
.betweenIfPresent("a.create_time", pageReqVO.getCreateTime())
|
||||
.groupBy("a.id", " a.order_date", "a.delivery_date", "a.customer", "a.address", "a.custom_order_no","a.create_time","a.update_time","a.status")
|
||||
.likeIfPresent("o.customer", pageReqVO.getConsignee())
|
||||
.likeIfPresent("o.custom_order_no", pageReqVO.getDefaultId())
|
||||
.likeIfPresent("o.address", pageReqVO.getConsigneeAddress())
|
||||
.betweenIfPresent("o.order_date", pageReqVO.getCreateTime())
|
||||
.groupBy("o.id", " o.order_date", "o.delivery_date", "o.customer", "o.address", "o.custom_order_no","o.status")
|
||||
.having("count(op.id) != 0")
|
||||
.orderByDesc("a.create_time");
|
||||
.orderByDesc("o.order_date");
|
||||
|
||||
|
||||
IPage<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderPage(page, queryWrapperX);
|
||||
// todo 目前修改一半,速度无法再进行特别的优化,需等后面修改表结构再进行优化
|
||||
IPage<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderPage(page,queryWrapperX);
|
||||
|
||||
if (CollectionUtil.isEmpty(orderRespVOCopies.getRecords())) {
|
||||
return new PageResult<>();
|
||||
}
|
||||
|
||||
// List<OrderRespVOCopy> records = orderRespVOCopies.getRecords();
|
||||
//
|
||||
// orderRespVOCopies.setRecords(records.stream().peek(m -> {
|
||||
//
|
||||
// m.setNum((int) m.getPlatePages().stream().map(PlatePage::getPlateId).count());
|
||||
//
|
||||
// m.setArea(m.getPlatePages().stream().map(PlatePage::getArea).reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
// m.setPlatePages(null);
|
||||
//
|
||||
// }).toList());
|
||||
|
||||
|
||||
return new PageResult<>(orderRespVOCopies.getRecords(), orderRespVOCopies.getTotal());
|
||||
|
||||
@@ -718,16 +784,26 @@ public class PlanServiceImpl implements PlanService {
|
||||
statusList.add(OrderStatusEnum.IN_PRODUCTION.getStatus());
|
||||
statusList.add(OrderStatusEnum.SORTED.getStatus());
|
||||
|
||||
List<Long> orderIds = orderMapper.selectOrderIdsList(pageReqVO, statusList, getUserOrganId())
|
||||
.stream().map(OrderDO::getId).toList();
|
||||
// List<Long> orderIds = orderMapper.selectOrderIdsList(pageReqVO, statusList, getUserOrganId())
|
||||
// .stream().map(OrderDO::getId).distinct().toList();
|
||||
//
|
||||
// List<Long> goodsIds = plateMapper.selectPlateIds(pageReqVO, getUserOrganId())
|
||||
// .stream().map(PlateDO::getGoodsId).distinct().toList();
|
||||
|
||||
|
||||
QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>();
|
||||
queryWrapperX
|
||||
.eq("oi.organ_id",getUserOrganId())
|
||||
.eq("o.organ_id",getUserOrganId())
|
||||
.eq("o.deleted",false)
|
||||
.in("o.status",statusList)
|
||||
.eq("og.organ_id",getUserOrganId())
|
||||
.eq("og.plan_id",0)
|
||||
.eq("og.deleted",false)
|
||||
.inIfPresent("oi.order_id", orderIds)
|
||||
.isNull("opi.item_id")
|
||||
.isNotNull("og.id")
|
||||
|
||||
.inIfPresent("og.order_id", pageReqVO.getOrderIds())
|
||||
// .inIfPresent("og.id", goodsIds)
|
||||
// .isNull("opi.item_id")
|
||||
// .isNotNull("og.id")
|
||||
|
||||
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
|
||||
.eqIfPresent("og.goods_id",pageReqVO.getGoodsId())
|
||||
@@ -751,44 +827,80 @@ public class PlanServiceImpl implements PlanService {
|
||||
queryWrapperX.likeIfPresent("op.filter_type", insertSeparator(filterTypes));
|
||||
|
||||
|
||||
// List<Long> orderIds = orderMapper.selectOrderIds(queryWrapperX);
|
||||
|
||||
|
||||
IPage<OrderGoodsResp> orderGoodsResps = orderMapper.selectOrderIds(page,queryWrapperX);
|
||||
|
||||
// if(orderIds.isEmpty()){
|
||||
// return new PageResult<>();
|
||||
// }
|
||||
|
||||
// IPage<OrderGoodsResp> orderGoodsResps = goodsMapper.selectOrderGoodsList(page, queryWrapperX);
|
||||
|
||||
|
||||
if (CollectionUtil.isEmpty(orderGoodsResps.getRecords())) {
|
||||
return new PageResult<>();
|
||||
}
|
||||
|
||||
|
||||
List<OrderGoodsResp> records = orderGoodsResps.getRecords();
|
||||
|
||||
|
||||
System.out.println("哈哈哈哈哈哈1 "+records.size());
|
||||
|
||||
List<Long> goodsIdList = records.stream().map(OrderGoodsResp::getGoodsId).toList();
|
||||
|
||||
queryWrapperX.in("og.goods_id", goodsIdList);
|
||||
|
||||
|
||||
List<OrderGoodsResp> goodsResp = orderMapper.selectGoodsListByGoodsId(queryWrapperX);
|
||||
|
||||
|
||||
//
|
||||
// Map<Long, List<OrderGoodsResp>> collect = records.stream().collect(Collectors.groupingBy(OrderGoodsResp::getGoodsId));
|
||||
|
||||
|
||||
// for (OrderGoodsResp orderGoodsResp : goodsResp) {
|
||||
//
|
||||
// List<OrderGoodsResp> orderGoodsResps1 = collect.get(orderGoodsResp.getGoodsId());
|
||||
//
|
||||
//
|
||||
// List<OrderIds> orderIdsList = plateMapper.selectOrderIds(orderIds,getUserOrganId());
|
||||
//
|
||||
//
|
||||
// List<Long> goodsList = orderIdsList.stream().map(OrderIds::getGoodsId).distinct().toList();
|
||||
//
|
||||
// // 修改排单时进行数据筛选,todo 目前只解决非混单情况
|
||||
// if(pageReqVO.getGoodsId() != null){
|
||||
//
|
||||
// goodsList = goodsList.stream().filter(f->f.equals(pageReqVO.getGoodsId())).toList();
|
||||
// if (orderGoodsResps1 != null) {
|
||||
// // 合并 otherObjectList 到 obj1 副本中
|
||||
// orderGoodsResps1.get().addAll(obj2.getOtherObjectList());
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
|
||||
for (OrderGoodsResp record : records) {
|
||||
|
||||
|
||||
List<OrderIds> orderIdsList = new ArrayList<>();
|
||||
|
||||
|
||||
List<List<OrderIds>> list = goodsResp.stream().filter(f -> f.getGoodsId().equals(record.getGoodsId())).map(OrderGoodsResp::getOrderIds).toList();
|
||||
|
||||
|
||||
if(!list.isEmpty()){
|
||||
|
||||
orderIdsList = list.stream().flatMap(Collection::stream).toList();
|
||||
|
||||
}
|
||||
|
||||
record.setOrderIds(orderIdsList);
|
||||
|
||||
}
|
||||
|
||||
|
||||
orderGoodsResps.setRecords(records);
|
||||
|
||||
// for (Map.Entry<Long, List<OrderGoodsResp>> entry : collect.entrySet()) {
|
||||
//
|
||||
// IPage<OrderGoodsResp> orderGoodsResps = goodsMapper.selectGoods(page,goodsList, getUserOrganId());
|
||||
|
||||
|
||||
// List<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderListByIds(orderIdsList, getUserOrganId());
|
||||
|
||||
|
||||
// for (OrderGoodsResp record : orderGoodsResps.getRecords()) {
|
||||
// record.setNum(orderRespVOCopies.stream().filter(e-> Objects.equals(e.getGoodsId(), record.getGoodsId())).
|
||||
// mapToInt(OrderRespVOCopy::getNum).sum());
|
||||
// List<List<OrderIds>> list = entry.getValue().stream().map(OrderGoodsResp::getOrderIds).toList();
|
||||
//
|
||||
// record.setArea(orderRespVOCopies.stream().filter(e-> Objects.equals(e.getGoodsId(), record.getGoodsId()))
|
||||
// .map(OrderRespVOCopy::getArea)
|
||||
// .reduce(BigDecimal.ZERO,BigDecimal::add));
|
||||
// List<OrderIds> orderds = list.stream().flatMap(Collection::stream).toList();
|
||||
//
|
||||
// List<OrderGoodsResp> list1 = records.stream().filter(f -> f.getGoodsId().equals(entry.getKey())).map(m -> m.setOrderIds(orderds)).toList();
|
||||
//
|
||||
// orderGoodsResps.setRecords(list1);
|
||||
//
|
||||
// record.setOrderIds(orderIdsList.stream().filter(e -> Objects.equals(e.getGoodsId(), record.getGoodsId())).collect(Collectors.toList()));
|
||||
//// record.setOrderList(orderRespVOCopies.stream().filter(e -> Objects.equals(e.getGoodsId(), record.getGoodsId())).collect(Collectors.toList()));
|
||||
// }
|
||||
|
||||
|
||||
@@ -859,7 +971,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
for (Long planId : vo.getPlanIds()) {
|
||||
validatePlanExists(planId,null);
|
||||
}
|
||||
QueryWrapperX<PlateDO> queryWrapperX = new QueryWrapperX<>();
|
||||
QueryWrapperX<GoodsDO> queryWrapperX = new QueryWrapperX<>();
|
||||
|
||||
String filterTypes = "";
|
||||
if (Objects.nonNull(vo.getHoleThrough()) && vo.getHoleThrough()) {
|
||||
@@ -872,21 +984,25 @@ public class PlanServiceImpl implements PlanService {
|
||||
filterTypes += PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType().toString();
|
||||
}
|
||||
|
||||
queryWrapperX.in("p.plan_id", vo.getPlanIds())
|
||||
.eq("a.organ_id",getUserOrganId())
|
||||
.eqIfPresent("a.is_door", vo.getIsDoor())
|
||||
.eqIfPresent("a.is_special_shaped", vo.getRectangle() != null ? false: null)
|
||||
.eqIfPresent("a.is_special_shaped", vo.getSpecialShaped())
|
||||
.eqIfPresent("a.is_sculpt", vo.getSculpt())
|
||||
.betweenIfPresent("a.width", new BigDecimal[]{vo.getWidthMinRang(), vo.getWidthMaxRang()})
|
||||
.betweenIfPresent("a.height", new BigDecimal[]{vo.getLongMinRang(), vo.getLongMaxRang()})
|
||||
.likeIfPresent("a.filter_type", insertSeparator(filterTypes))
|
||||
.betweenIfPresent("f.delivery_date", new Date[]{vo.getBeginDate(), vo.getEndDate()})
|
||||
.orderByDesc("a.order_id")
|
||||
.orderByDesc("a.name");
|
||||
queryWrapperX.eq("og.organ_id",getUserOrganId())
|
||||
.in("og.plan_id", vo.getPlanIds())
|
||||
.eqIfPresent("op.is_door", vo.getIsDoor())
|
||||
.eqIfPresent("op.is_special_shaped", vo.getRectangle() != null ? false: null)
|
||||
.eqIfPresent("op.is_special_shaped", vo.getSpecialShaped())
|
||||
.eqIfPresent("op.is_sculpt", vo.getSculpt())
|
||||
.betweenIfPresent("op.width", new BigDecimal[]{vo.getWidthMinRang(), vo.getWidthMaxRang()})
|
||||
.betweenIfPresent("op.height", new BigDecimal[]{vo.getLongMinRang(), vo.getLongMaxRang()})
|
||||
.likeIfPresent("op.filter_type", insertSeparator(filterTypes))
|
||||
.orderByDesc("op.order_id");
|
||||
|
||||
PageDTO<PlateResList> page = new PageDTO<>(vo.getPageNo(), vo.getPageSize());
|
||||
IPage<PlateResList> pageResult = plateMapper.selectPlateByPlanId(page, queryWrapperX);
|
||||
|
||||
// IPage<PlateResList> pageResult = plateMapper.selectPlateByPlanId(page, queryWrapperX);
|
||||
|
||||
IPage<PlateResList> pageResult = goodsMapper.selectPlanGoodsListByPlanId(page, queryWrapperX);
|
||||
|
||||
Set<Long> bodyIds = pageResult.getRecords().stream().map(PlateResList::getBodyId).collect(Collectors.toSet());
|
||||
|
||||
if (CollectionUtil.isNotEmpty(bodyIds)) {
|
||||
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectBatchIds(bodyIds);
|
||||
for (PlateResList resList : pageResult.getRecords()) {
|
||||
@@ -900,12 +1016,12 @@ public class PlanServiceImpl implements PlanService {
|
||||
@Override
|
||||
public PageResult<OrderRespVO> getOrderByPlanId(PlanOrderPageReqVO pageReqVO) {
|
||||
MPJLambdaWrapperX<OrderDO> lambdaWrapperX = new MPJLambdaWrapperX<>();
|
||||
lambdaWrapperX.leftJoin(OrderItemDO.class, OrderItemDO::getOrderId, OrderDO::getId)
|
||||
.leftJoin(PlanItemDO.class, PlanItemDO::getItemId, OrderItemDO::getId)
|
||||
.eq(PlanItemDO::getOrganId,getUserOrganId())
|
||||
.eq(PlanItemDO::getPlanId, pageReqVO.getPlanId())
|
||||
lambdaWrapperX.leftJoin(GoodsDO.class, GoodsDO::getOrderId, OrderDO::getId)
|
||||
.eq(GoodsDO::getOrganId,getUserOrganId())
|
||||
.eq(GoodsDO::getPlanId, pageReqVO.getPlanId())
|
||||
.distinct();
|
||||
|
||||
|
||||
PageResult<OrderDO> pageResult = orderMapper.selectJoinPage(pageReqVO, OrderDO.class, lambdaWrapperX);
|
||||
return BeanUtils.toBean(pageResult, OrderRespVO.class);
|
||||
}
|
||||
|
||||
+168
-5
@@ -32,11 +32,7 @@
|
||||
orp.id as remainId
|
||||
from order_goods og
|
||||
left join order_remain_plate orp on og.id = orp.goods_id and og.organ_id = orp.organ_id
|
||||
where og.organ_id =#{organId} and og.deleted = false and og.id in
|
||||
|
||||
<foreach item="id" collection="goodsIds" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
where og.organ_id =#{organId} and og.deleted = false and og.plan_id = #{planId}
|
||||
|
||||
|
||||
</select>
|
||||
@@ -134,4 +130,171 @@
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<resultMap id="OrderGoodsMap" type="com.cf.imes.module.executor.controller.admin.plan.vo.OrderGoodsResp">
|
||||
|
||||
<result property="goodsName" column="goodsName"/>
|
||||
<result property="material" column="material"/>
|
||||
<result property="width" column="width"/>
|
||||
<result property="height" column="height"/>
|
||||
<result property="thickness" column="thickness"/>
|
||||
<result property="texture" column="texture"/>
|
||||
<result property="color" column="color"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
|
||||
<collection property="orderIds" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds" resultMap="OrderIdMap"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
|
||||
<select id="selectOrderGoodsList" resultMap="OrderGoodsMap">
|
||||
|
||||
select distinct
|
||||
og.goods_name as goodsName,
|
||||
og.material as material,
|
||||
og.color as color,
|
||||
og.width as width,
|
||||
og.height as height,
|
||||
og.thickness as thickness,
|
||||
og.texture as texture,
|
||||
og.goods_id as goodsId
|
||||
-- og.order_id as orderId,
|
||||
-- og.id as id
|
||||
from orders o
|
||||
left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id
|
||||
left join order_plate op on og.organ_id = op.organ_id and og.id = op.goods_id and og.deleted = op.deleted
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
<resultMap id="GoodsListMap" type="com.cf.imes.module.executor.controller.admin.plan.vo.PlateInfoVO">
|
||||
<result property="planId" column="planId"/>
|
||||
<result property="material" column="material"/>
|
||||
<result property="width" column="width"/>
|
||||
<result property="height" column="height"/>
|
||||
<result property="thickness" column="thickness"/>
|
||||
<result property="color" column="color"/>
|
||||
<result property="count" column="plateNum"/>
|
||||
<result property="area" column="area"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
|
||||
<collection property="orderIdList" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds" resultMap="OrderIdMap"/>
|
||||
|
||||
<collection property="platePages" ofType="com.cf.imes.module.executor.controller.admin.plan.vo.PlatePage" resultMap="PlatePageMap"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<resultMap id="OrderIdMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds">
|
||||
|
||||
<result property="id" column="id"/>
|
||||
<result property="orderId" column="orderId"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<resultMap id="PlatePageMap" type="com.cf.imes.module.executor.controller.admin.plan.vo.PlatePage">
|
||||
|
||||
|
||||
<result property="plateId" column="plateId"/>
|
||||
<result property="area" column="plateArea"/>
|
||||
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="selectOrderGoodsPlateList" resultMap="GoodsListMap" parameterType="java.lang.Long">
|
||||
|
||||
|
||||
|
||||
select distinct
|
||||
og.plan_id as planId,
|
||||
og.material as material,
|
||||
og.width as width,
|
||||
og.height as height,
|
||||
og.thickness as thickness ,
|
||||
og.color as color,
|
||||
|
||||
og.goods_id as goodsId,
|
||||
og.order_id as orderId,
|
||||
og.id as id,
|
||||
|
||||
op.id as plateId,
|
||||
op.area as plateArea
|
||||
|
||||
from order_goods og
|
||||
|
||||
left join order_plate op on og.organ_id = op.organ_id and og.id = op.goods_id and og.deleted = op.deleted
|
||||
|
||||
where og.organ_id = #{organId}
|
||||
|
||||
and og.plan_id in
|
||||
<foreach collection="planIds" item="ids" open="(" close=")" separator=",">
|
||||
#{ids}
|
||||
</foreach>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
<select id="selectGoodsListByGoodsId" resultMap="OrderGoodsMap">
|
||||
|
||||
|
||||
select distinct
|
||||
og.goods_id as goodsId,
|
||||
og.order_id as orderId,
|
||||
og.id as id
|
||||
from orders o
|
||||
left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id
|
||||
left join order_plate op on og.organ_id = op.organ_id and og.id = op.goods_id and og.deleted = op.deleted
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectPlanGoodsListByPlanId"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList">
|
||||
|
||||
select distinct op.id as plateId,
|
||||
op.order_id,
|
||||
op.plate_no ,
|
||||
op.name as plateName,
|
||||
op.is_special_shaped,
|
||||
op.is_sculpt,
|
||||
op.area,
|
||||
op.seal_left,
|
||||
op.seal_right,
|
||||
op.seal_up,
|
||||
op.seal_down,
|
||||
og.material,
|
||||
og.color,
|
||||
op.width,
|
||||
op.height,
|
||||
op.thickness,
|
||||
oi.room_id,
|
||||
oi.body_id
|
||||
|
||||
from order_goods og
|
||||
left join order_plate op on og.organ_id = op.organ_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.id = oi.plate_id
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
+70
-11
@@ -2,13 +2,54 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.cf.imes.module.executor.dal.mysql.order.OrderMapper">
|
||||
|
||||
<select id="selectOrderPage" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy">
|
||||
select distinct a.id as orderId, a.order_date, a.delivery_date, a.customer, a.address, a.custom_order_no as defineId,a.status,
|
||||
count(op.id) as num, sum(op.area) as area,a.update_time,a.create_time
|
||||
from `orders` a
|
||||
left join order_item oi on a.id = oi.order_id and a.organ_id = oi.organ_id
|
||||
left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
<resultMap id="OrderPageMap" type="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy">
|
||||
|
||||
|
||||
<result property="orderId" column="orderId"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="defineId" column="defineId"/>
|
||||
<result property="customer" column="customer"/>
|
||||
<result property="address" column="address"/>
|
||||
<result property="deliveryDate" column="deliveryDate"/>
|
||||
<result property="orderDate" column="orderDate"/>
|
||||
<result property="num" column="num"/>
|
||||
<result property="area" column="area"/>
|
||||
|
||||
|
||||
<!-- <collection property="platePages" ofType="com.cf.imes.module.executor.controller.admin.plan.vo.PlatePage" resultMap="PlatePageMap"/>-->
|
||||
|
||||
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="PlatePageMap" type="com.cf.imes.module.executor.controller.admin.plan.vo.PlatePage">
|
||||
|
||||
|
||||
<result property="plateId" column="plateId"/>
|
||||
<result property="area" column="area"/>
|
||||
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
|
||||
<select id="selectOrderPage" resultMap="OrderPageMap">
|
||||
|
||||
select distinct
|
||||
o.id as orderId,
|
||||
o.order_date as orderDate,
|
||||
o.delivery_date as deliveryDate,
|
||||
o.customer as customer,
|
||||
o.address as address,
|
||||
o.custom_order_no as defineId,
|
||||
o.status as status,
|
||||
count( op.id) as num ,
|
||||
sum(op.area) as area
|
||||
|
||||
from orders o
|
||||
|
||||
left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id
|
||||
|
||||
left join order_plate op on og.organ_id = op.organ_id and og.id = op.goods_id and og.deleted = op.deleted
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
@@ -260,10 +301,10 @@
|
||||
og.width,
|
||||
og.height,
|
||||
og.brand
|
||||
from order_item oi
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
|
||||
left join order_goods og on op.goods_id = og.id and op.organ_id = og.organ_id
|
||||
|
||||
from orders o
|
||||
left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id
|
||||
left join order_plate op on og.organ_id = op.organ_id and og.id = op.goods_id and og.deleted = op.deleted
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
@@ -271,4 +312,22 @@
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectGoodsListByGoodsId" resultMap="OrderGoodsMap">
|
||||
|
||||
|
||||
select distinct
|
||||
og.goods_id as goodsId,
|
||||
og.order_id as orderId,
|
||||
og.id as id
|
||||
from orders o
|
||||
left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id
|
||||
left join order_plate op on og.organ_id = op.organ_id and og.id = op.goods_id and og.deleted = op.deleted
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
+15
@@ -55,5 +55,20 @@
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectTestSQL" resultType="java.util.Map">
|
||||
|
||||
|
||||
select distinct ${filed} from order_body
|
||||
where organ_id = #{organId}
|
||||
and deleted = false
|
||||
and id in
|
||||
<foreach item="bodyIds" collection="bodyIds" open="(" separator="," close=")">
|
||||
#{bodyIds}
|
||||
</foreach>
|
||||
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
+15
@@ -11,4 +11,19 @@
|
||||
from `order_group` as gp
|
||||
where gp.order_id = #{orderId} and gp.organ_id = #{organId} and gp.deleted = 0
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectTestSQL" resultType="java.util.Map">
|
||||
|
||||
|
||||
select ${filed} from order_group
|
||||
where id in
|
||||
<foreach item="groupIds" collection="groupIds" open="(" separator="," close=")">
|
||||
#{groupIds}
|
||||
</foreach>
|
||||
and organ_id = #{organId}
|
||||
and deleted = false
|
||||
${field2}
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
+31
@@ -258,4 +258,35 @@
|
||||
</select>
|
||||
|
||||
|
||||
<resultMap id="TestMap" type="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy">
|
||||
|
||||
<result property="orderId" column="orderId"/>
|
||||
|
||||
<!-- <collection property="platePages" ofType="com.cf.imes.module.executor.controller.admin.plan.vo.PlatePage" resultMap="Test2Map"/>-->
|
||||
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="Test2Map" type="com.cf.imes.module.executor.controller.admin.plan.vo.PlatePage">
|
||||
|
||||
<result property="plateId" column="plateId"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
|
||||
<select id="selectTestNum"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy">
|
||||
|
||||
select distinct
|
||||
|
||||
oi.order_id as orderId
|
||||
|
||||
from order_item oi
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
|
||||
where oi.organ_id = #{organId} and opi.item_id is null and oi.plate_id !=0;
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
+17
-64
@@ -4,62 +4,6 @@
|
||||
|
||||
|
||||
|
||||
<resultMap id="GoodsListMap" type="com.cf.imes.module.executor.controller.admin.plan.vo.PlateInfoVO">
|
||||
<result property="planId" column="planId"/>
|
||||
<result property="material" column="material"/>
|
||||
<result property="width" column="width"/>
|
||||
<result property="height" column="height"/>
|
||||
<result property="thickness" column="thickness"/>
|
||||
<result property="color" column="color"/>
|
||||
<result property="count" column="plateNum"/>
|
||||
<result property="area" column="area"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
|
||||
<collection property="orderIdList" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds" resultMap="OrderIdMap"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="OrderIdMap" type="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds">
|
||||
|
||||
<result property="id" column="id"/>
|
||||
<result property="orderId" column="orderId"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
<select id="selectGoodsList" resultMap="GoodsListMap" parameterType="java.lang.Long">
|
||||
|
||||
|
||||
select distinct
|
||||
opi.plan_id as planId,
|
||||
og.material as material,
|
||||
og.width as width,
|
||||
og.height as height,
|
||||
og.thickness as thickness ,
|
||||
og.color as color,
|
||||
og.goods_id as goodsId,
|
||||
og.order_id as orderId,
|
||||
og.id as id,
|
||||
count(distinct op.id) as plateNum
|
||||
|
||||
from order_plan_item opi
|
||||
left join order_item oi on opi.item_id = oi.id and opi.organ_id = oi.organ_id
|
||||
left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
|
||||
left join order_goods og on op.goods_id = og.id and op.organ_id = og.organ_id
|
||||
|
||||
where opi.organ_id = #{organId}
|
||||
and
|
||||
opi.plan_id in
|
||||
<foreach collection="planIds" item="ids" open="(" close=")" separator=",">
|
||||
#{ids}
|
||||
</foreach>
|
||||
|
||||
and og.goods_id !=0
|
||||
|
||||
group by planId,material,width,height,thickness,color,goodsId,orderId,id;
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectOrderList"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlanOrderRespVO">
|
||||
@@ -67,15 +11,24 @@
|
||||
|
||||
|
||||
select distinct
|
||||
opi.plan_id as planId,
|
||||
o.*
|
||||
o.id,
|
||||
og.plan_id,
|
||||
o.order_date,
|
||||
o.delivery_date,
|
||||
o.custom_order_no,
|
||||
o.customer,
|
||||
o.address,
|
||||
o.phone_number,
|
||||
o.salesman,
|
||||
o.splitter,
|
||||
o.remark
|
||||
from orders o
|
||||
|
||||
from order_plan_item opi
|
||||
join order_item oi on opi.item_id = oi.id and opi.organ_id = oi.organ_id
|
||||
join orders o on oi.order_id = o.id
|
||||
where opi.organ_id = #{organId}
|
||||
and
|
||||
opi.plan_id in
|
||||
left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id
|
||||
|
||||
where og.organ_id = #{organId}
|
||||
|
||||
and og.plan_id in
|
||||
<foreach collection="planIds" item="ids" open="(" close=")" separator=",">
|
||||
#{ids}
|
||||
</foreach>
|
||||
|
||||
+86
-18
@@ -767,34 +767,34 @@
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectPlateArea"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateInfoVO">
|
||||
<!-- <select id="selectPlateArea"-->
|
||||
<!-- resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateInfoVO">-->
|
||||
|
||||
select
|
||||
og.goods_id as goodsId,
|
||||
-- count(distinct og.id) as optimizeGoodsCount,
|
||||
sum(op.area) as area
|
||||
<!-- select-->
|
||||
<!-- og.goods_id as goodsId,-->
|
||||
<!---- count(distinct og.id) as optimizeGoodsCount,-->
|
||||
<!-- sum(op.area) as area-->
|
||||
|
||||
from order_plate op
|
||||
left join order_goods og on op.goods_id = og.id
|
||||
<!-- from order_plate op-->
|
||||
<!-- left join order_goods og on op.goods_id = og.id-->
|
||||
|
||||
where og.organ_id = #{organId} and og.goods_id in
|
||||
<!-- where og.organ_id = #{organId} and og.goods_id in-->
|
||||
|
||||
<foreach collection="orderIdsList" item="orderIdsList" open="(" close=")" separator=",">
|
||||
(#{orderIdsList.goodsId})
|
||||
</foreach>
|
||||
<!-- <foreach collection="orderIdsList" item="orderIdsList" open="(" close=")" separator=",">-->
|
||||
<!-- (#{orderIdsList.goodsId})-->
|
||||
<!-- </foreach>-->
|
||||
|
||||
and og.order_id in
|
||||
<!-- and og.order_id in-->
|
||||
|
||||
<foreach collection="orderIdsList" item="orderIdsList" open="(" close=")" separator=",">
|
||||
(#{orderIdsList.orderId})
|
||||
</foreach>
|
||||
<!-- <foreach collection="orderIdsList" item="orderIdsList" open="(" close=")" separator=",">-->
|
||||
<!-- (#{orderIdsList.orderId})-->
|
||||
<!-- </foreach>-->
|
||||
|
||||
group by goodsId;
|
||||
<!-- group by goodsId;-->
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
<!-- </select>-->
|
||||
|
||||
<select id="selectTestSQL" resultType="java.util.Map">
|
||||
|
||||
@@ -811,4 +811,72 @@
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectPlateListByGoodsIds"
|
||||
resultMap="PlateDetialMap">
|
||||
|
||||
|
||||
select distinct
|
||||
|
||||
oi.body_id as bodyId,
|
||||
oi.group_id as groupId,
|
||||
oi.room_id as roomId,
|
||||
og.name as groupName,
|
||||
|
||||
op.id as plateId,
|
||||
op.order_id as orderId,
|
||||
op.name as name,
|
||||
op.plate_no as plateNo,
|
||||
op.type as type,
|
||||
op.goods_id as goodsId,
|
||||
op.width as width,
|
||||
op.height as height,
|
||||
op.thickness as thickness,
|
||||
op.split_width as splitWidth,
|
||||
op.split_height as splitHeight,
|
||||
op.split_thickness as splitThickness,
|
||||
op.seal_left as sealLeft,
|
||||
op.seal_right as sealRight,
|
||||
op.seal_up as sealUp,
|
||||
op.seal_down as sealDown,
|
||||
op.area as area,
|
||||
op.texture as texture,
|
||||
op.hole_face as holeFace,
|
||||
op.hole_arrange as holeArrange,
|
||||
op.unregular_point_count as unregularPointCount,
|
||||
op.front_hole_count as frontHoleCount,
|
||||
op.back_hole_count as backHoleCount,
|
||||
op.side_hole_count as sideHoleCount,
|
||||
op.front_model_count as frontModelCount,
|
||||
op.back_model_count as backModelCount,
|
||||
op.is_door as isDoor,
|
||||
op.open_door_type as openDoorType,
|
||||
op.offset_x as offsetX,
|
||||
op.offset_y as offsetY,
|
||||
op.is_arc_across as isArcAcross,
|
||||
op.module_type_id as moduleTypeId,
|
||||
op.is_special_shaped as isSpecialShaped,
|
||||
op.is_sculpt as isSculpt,
|
||||
op.is_row_hole as hasHole,
|
||||
op.remark as remark,
|
||||
op.filter_type as filterType,
|
||||
op.is_cancel as isCancel,
|
||||
op.is_row_hole as hasHole
|
||||
|
||||
from order_plate op
|
||||
left join order_item oi on op.organ_id = oi.organ_id and op.id = oi.plate_id
|
||||
left join order_group og on oi.organ_id = og.organ_id and oi.group_id = og.id
|
||||
|
||||
where op.organ_id = #{organId} and op.deleted = false and op.goods_id in
|
||||
|
||||
<foreach collection="goodsIdList" item="goodsIdList" open="(" close=")" separator=",">
|
||||
|
||||
#{goodsIdList}
|
||||
|
||||
</foreach>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user