mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 13:42:07 +08:00
排单-新数据结构,接口逻辑,参数更改
This commit is contained in:
+4
@@ -19,6 +19,10 @@ public interface ErrorCodeConstants {
|
|||||||
|
|
||||||
ErrorCode PLAN_ERROR = new ErrorCode(1_001_107_004, "{} 排单数据不存在");
|
ErrorCode PLAN_ERROR = new ErrorCode(1_001_107_004, "{} 排单数据不存在");
|
||||||
|
|
||||||
|
ErrorCode PLATE_ERROR = new ErrorCode(1_001_107_005, "当前新增的板材非同一类型的板材,禁止更改");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ========== 生产单商品 TODO 补充编号 ==========
|
// ========== 生产单商品 TODO 补充编号 ==========
|
||||||
ErrorCode GOODS_NOT_EXISTS = new ErrorCode(1_001_108_000, "生产单商品不存在");
|
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)
|
@Schema(description = "商品名", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private String goodsName;
|
private String name;
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "材质", requiredMode = Schema.RequiredMode.REQUIRED)
|
@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)
|
@Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private Integer count;
|
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;
|
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.goods.OptimizeBoardModelDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@@ -29,18 +26,18 @@ public class SavePlanPlateResultReqVO {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "优化后的小板列表数据", requiredMode = Schema.RequiredMode.REQUIRED)
|
// @Schema(description = "优化后的小板列表数据", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private List<PlateDetialRespVO> plateList;
|
// private List<PlateDetialRespVO> plateList;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
@Schema(description = "优化后新增的小板ID")
|
// @Schema(description = "优化后新增的小板ID")
|
||||||
private List<Long> addPlateIds;
|
// private List<Long> addPlateIds;
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
@Schema(description = "优化后删除的小板ID")
|
// @Schema(description = "优化后删除的小板ID")
|
||||||
private List<Long> deletePlateIds;
|
// private List<Long> deletePlateIds;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -42,7 +42,7 @@ public class OrderPageReqVOCopy extends PageParam {
|
|||||||
private Boolean twoDimensionalToolPath;
|
private Boolean twoDimensionalToolPath;
|
||||||
@Schema(description = "门板")
|
@Schema(description = "门板")
|
||||||
private Boolean isDoor;
|
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)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private LocalDateTime[] createTime;
|
private LocalDateTime[] createTime;
|
||||||
@Schema(description = "长 小范围")
|
@Schema(description = "长 小范围")
|
||||||
|
|||||||
+1
-1
@@ -56,7 +56,7 @@ public class PlanSaveReqVO {
|
|||||||
private LocalDateTime produceTime;
|
private LocalDateTime produceTime;
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "生产单id与商品id 列表",requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "生产单id与商品id 列表,修改排单时,只传入新增的那一部分",requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private List<Item> itemList;
|
private List<Item> itemList;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -39,7 +39,7 @@ public class PlateDetialRespVO {
|
|||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "大板实例ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "大板实际ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
private Long goodsId;
|
private Long goodsId;
|
||||||
|
|
||||||
@Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
|||||||
+3
@@ -57,4 +57,7 @@ public class PlateInfoVO {
|
|||||||
@Schema(description = "优化大板片数")
|
@Schema(description = "优化大板片数")
|
||||||
private Long optimizeGoodsCount;
|
private Long optimizeGoodsCount;
|
||||||
|
|
||||||
|
@Schema(description = "排单对应的小板信息")
|
||||||
|
private List<PlatePage> platePages;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-6
@@ -1,14 +1,10 @@
|
|||||||
package com.cf.imes.module.executor.dal.dataobject.goods;
|
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 lombok.*;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
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
|
* 生产单商品 DO
|
||||||
@@ -45,6 +41,10 @@ public class GoodsDO extends BaseDO {
|
|||||||
* 商品 ID
|
* 商品 ID
|
||||||
*/
|
*/
|
||||||
private String goodsId;
|
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.framework.es.core.dal.ESDocument;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.RemainBoardList;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.AllArgsConstructor;
|
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;
|
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.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
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.common.pojo.PageResult;
|
||||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsPageReqVO;
|
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.saveOptimize.NotPlanGoodsRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.vo.GoodsReqVO;
|
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderGoodsResp;
|
|
||||||
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
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> 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.common.pojo.PageResult;
|
||||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
|
||||||
import com.cf.imes.framework.organ.core.aop.OrganIgnore;
|
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.OrderCountProducePeriodRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderOverdueRespVO;
|
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::getCustomOrderNo,pageReqVO.getDefaultId())
|
||||||
.likeIfPresent(OrderDO::getCustomer,pageReqVO.getConsignee())
|
.likeIfPresent(OrderDO::getCustomer,pageReqVO.getConsignee())
|
||||||
.likeIfPresent(OrderDO::getAddress,pageReqVO.getConsigneeAddress())
|
.likeIfPresent(OrderDO::getAddress,pageReqVO.getConsigneeAddress())
|
||||||
.betweenIfPresent(OrderDO::getCreateTime,pageReqVO.getCreateTime())
|
.betweenIfPresent(OrderDO::getOrderDate,pageReqVO.getCreateTime())
|
||||||
.select(OrderDO::getId));
|
.select(OrderDO::getId));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
List<OrderGoodsResp> selectGoodsListByGoodsId(@Param(Constants.WRAPPER) QueryWrapperX<OrderDO> queryWrapperX);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+15
@@ -123,4 +123,19 @@ public interface OrderBodyMapper extends BaseMapperX<OrderBodyDO> {
|
|||||||
return delete(new LambdaQueryWrapperX<OrderBodyDO>()
|
return delete(new LambdaQueryWrapperX<OrderBodyDO>()
|
||||||
.in(OrderBodyDO::getOrderId, orderId));
|
.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
-5
@@ -1,19 +1,15 @@
|
|||||||
package com.cf.imes.module.executor.dal.mysql.orderGroup;
|
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.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
|
||||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.cf.imes.module.executor.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 com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.apache.ibatis.annotations.Update;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生产单加工组 Mapper
|
* 生产单加工组 Mapper
|
||||||
@@ -96,4 +92,8 @@ public interface OrderGroupMapper extends BaseMapperX<OrderGroupDO> {
|
|||||||
return delete(new LambdaQueryWrapperX<OrderGroupDO>()
|
return delete(new LambdaQueryWrapperX<OrderGroupDO>()
|
||||||
.in(OrderGroupDO::getOrderId, orderId));
|
.in(OrderGroupDO::getOrderId, orderId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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.orderParts.vo.OrderPartsRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList;
|
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.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.PlateDetailReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailRespVO;
|
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
|
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) {
|
default List<OrderItemDO> selectPartsList(List<Long> partIds, Long organId) {
|
||||||
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
||||||
.eq(OrderItemDO::getOrganId,organId)
|
.eq(OrderItemDO::getOrganId,organId)
|
||||||
.inIfPresent(OrderItemDO::getPlateId, partIds)
|
.inIfPresent(OrderItemDO::getPartsId, partIds)
|
||||||
.select(OrderItemDO::getNum));
|
.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.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.order.vo.order.OrderStatisticsReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
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.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.plan.PlanDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@@ -43,9 +42,11 @@ public interface PlanMapper extends BaseMapperX<PlanDO> {
|
|||||||
.betweenIfPresent(PlanDO::getCreateTime, reqVO.getCreateTime())
|
.betweenIfPresent(PlanDO::getCreateTime, reqVO.getCreateTime())
|
||||||
.eqIfPresent(PlanDO::getOperator, reqVO.getOperator())
|
.eqIfPresent(PlanDO::getOperator, reqVO.getOperator())
|
||||||
.betweenIfPresent(PlanDO::getProduceTime, reqVO.getProduceTime())
|
.betweenIfPresent(PlanDO::getProduceTime, reqVO.getProduceTime())
|
||||||
.leftJoin(PlanItemDO.class, PlanItemDO::getPlanId, PlanDO::getId)
|
|
||||||
.leftJoin(OrderItemDO.class, OrderItemDO::getId, PlanItemDO::getItemId)
|
// todo 如果后续生产单加入排单状态,这里可以更改只连 orders 表
|
||||||
.leftJoin(OrderDO.class, OrderDO::getId, OrderItemDO::getOrderId)
|
.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())
|
.like(OrderDO::getCustomer, reqVO.getCustomer())
|
||||||
.orderBy(true, true, PlanDO::getSort)
|
.orderBy(true, true, PlanDO::getSort)
|
||||||
.orderByDesc(PlanDO::getUpdateTime)
|
.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.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.PlanOrderRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateInfoVO;
|
|
||||||
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
|
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@@ -18,9 +17,6 @@ import java.util.List;
|
|||||||
public interface PlanItemMapper extends BaseMapperX<PlanItemDO> {
|
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);
|
List<PlanOrderRespVO> selectOrderList(@Param("planIds") List<Long> planIds, @Param("organId") Long userOrganId);
|
||||||
|
|
||||||
}
|
}
|
||||||
+14
-8
@@ -175,7 +175,7 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
|||||||
List<PlateDetialRespVO> selectPlateListByGoodIds(@Param("goodIds") List<Long> goodIds,@Param("organId") Long organId);
|
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);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -189,13 +189,7 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
default List<PlateDO> selectPlateListByGoodsIds(List<Long> deleteIds, Long organId) {
|
List<PlateDetialRespVO> selectPlateListByGoodsIds(@Param("goodsIdList") List<Long> goodsIdList,@Param("organId") Long organId);
|
||||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
|
||||||
.eq(PlateDO::getOrganId,organId)
|
|
||||||
.inIfPresent(PlateDO::getGoodsId, deleteIds)
|
|
||||||
.select(PlateDO::getPlateNo));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 批量删除
|
// 批量删除
|
||||||
@@ -220,6 +214,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);
|
// 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.bo.OrderSource;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.CuttingStatusRespVO;
|
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.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.goods.OptimizeBoardModelDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
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.alibaba.fastjson.JSON;
|
||||||
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
||||||
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
||||||
import com.cf.imes.framework.common.enums.RemainTypeEnum;
|
|
||||||
import com.cf.imes.framework.common.exception.ServiceException;
|
import com.cf.imes.framework.common.exception.ServiceException;
|
||||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||||
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
||||||
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
|
import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX;
|
||||||
import com.cf.imes.framework.security.core.LoginUser;
|
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.OrderSource;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessGroupList;
|
import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessGroupList;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepAreaIds;
|
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.GoodsDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.goods.OptimizeBoardModelDO;
|
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.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.ordermodel.OrderModelDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
|
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.dataobject.remainplaten.RemainPlateDO;
|
||||||
import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
|
import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
|
||||||
import com.cf.imes.module.executor.dal.mysql.order.OrderMapper;
|
import com.cf.imes.module.executor.dal.mysql.order.OrderMapper;
|
||||||
|
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.orderItem.OrderItemMapper;
|
||||||
import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper;
|
import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper;
|
||||||
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
|
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
|
||||||
@@ -53,7 +53,6 @@ import com.cf.imes.module.system.api.process.dto.ProcessDTO;
|
|||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
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.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.ORDER_NOT_EXISTS;
|
||||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLAN_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
|
* @author there
|
||||||
@@ -126,6 +124,12 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
@Resource
|
@Resource
|
||||||
private ProcessStepItemMapper processStepItemMapper;
|
private ProcessStepItemMapper processStepItemMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrderBodyMapper orderBodyMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrderGroupMapper orderGroupMapper;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PlateOptimize> getPlateListByPlanId(Long planId) {
|
public List<PlateOptimize> getPlateListByPlanId(Long planId) {
|
||||||
@@ -474,6 +478,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
List<PlateDetialRespVO> plateDOS = plateMapper.selectPlateDetialList(orderId,getUserOrganId());
|
List<PlateDetialRespVO> plateDOS = plateMapper.selectPlateDetialList(orderId,getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
for (PlateDetialRespVO plateDetailsRespVO : plateDOS) {
|
for (PlateDetialRespVO plateDetailsRespVO : plateDOS) {
|
||||||
String name = "";
|
String name = "";
|
||||||
if(!plateDetailsRespVO.getProcessGroupLists().isEmpty()) {
|
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);
|
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByOrderId(orderId, ORDER_REMAIN_PLATE_MODEL, boardSize);
|
||||||
@@ -528,29 +533,41 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
if (Objects.isNull(planDO)) {
|
if (Objects.isNull(planDO)) {
|
||||||
throw exception(PLAN_NOT_EXISTS);
|
throw exception(PLAN_NOT_EXISTS);
|
||||||
}
|
}
|
||||||
MPJLambdaWrapper<OrderItemDO> wrapper = new MPJLambdaWrapperX<OrderItemDO>()
|
|
||||||
.select(OrderItemDO::getOrderId,OrderItemDO::getPlateId)
|
// 查询排单对应的大板信息
|
||||||
.rightJoin(PlanItemDO.class, PlanItemDO::getItemId, OrderItemDO::getId)
|
List<GoodsReqVO> goodsDOS = goodsMapper.selectGoodsListByOrderIds(planId,getUserOrganId());
|
||||||
.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<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
List<Long> orderIds = goodsDOS.stream().map(GoodsReqVO::getOrderId).toList();
|
||||||
|
|
||||||
// List<GoodsDO> goodsDOS = goodsMapper.selectList(new LambdaQueryWrapperX<GoodsDO>().in(GoodsDO::getOrderId, orderIds));
|
|
||||||
|
|
||||||
|
|
||||||
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 = "";
|
String name = "";
|
||||||
if(!plateDetailsRespVO.getProcessGroupLists().isEmpty()) {
|
if(!plateDetailsRespVO.getProcessGroupLists().isEmpty()) {
|
||||||
for (ProcessGroupList groupNameList : plateDetailsRespVO.getProcessGroupLists()) {
|
for (ProcessGroupList groupNameList : plateDetailsRespVO.getProcessGroupLists()) {
|
||||||
@@ -561,12 +578,26 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
name = name.substring(0, name.length() - 1);
|
name = name.substring(0, name.length() - 1);
|
||||||
}
|
}
|
||||||
plateDetailsRespVO.setProcessGroupName(name);
|
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);
|
List<OrderModelDO> orderModelDOS = buildRespByOrderIds(orderIds, ORDER_PLATE_MODEL, orderModelSize);
|
||||||
|
|
||||||
@@ -592,7 +623,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
.orderList(orderDOS)
|
.orderList(orderDOS)
|
||||||
.plan(planDO)
|
.plan(planDO)
|
||||||
.goodsList(goodsDOS)
|
.goodsList(goodsDOS)
|
||||||
.plateList(plateDOS)
|
.plateList(plateDetialRespVOS)
|
||||||
.plateModels(orderModelDOS)
|
.plateModels(orderModelDOS)
|
||||||
.optimizeBoardModelDOS(optimizeBoardModelDOS)
|
.optimizeBoardModelDOS(optimizeBoardModelDOS)
|
||||||
.optimizeRemainPlates(optimizeRemainPlates)
|
.optimizeRemainPlates(optimizeRemainPlates)
|
||||||
@@ -627,10 +658,30 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
List<OrderDO> orderDOS = orderMapper.selectBatchIds(orderIds);
|
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 = "";
|
String name = "";
|
||||||
if(!plateDetailsRespVO.getProcessGroupLists().isEmpty()) {
|
if(!plateDetailsRespVO.getProcessGroupLists().isEmpty()) {
|
||||||
for (ProcessGroupList groupNameList : plateDetailsRespVO.getProcessGroupLists()) {
|
for (ProcessGroupList groupNameList : plateDetailsRespVO.getProcessGroupLists()) {
|
||||||
@@ -684,6 +735,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
// 先根据排单查找是否有优化数据,如果有,删除
|
// 先根据排单查找是否有优化数据,如果有,删除
|
||||||
List<Long> planIds = req.getOptimizeBoardModelDOS().stream().map(OptimizeBoardModelDO::getPlanId).toList();
|
List<Long> planIds = req.getOptimizeBoardModelDOS().stream().map(OptimizeBoardModelDO::getPlanId).toList();
|
||||||
|
|
||||||
|
// todo 目前只解决非混单的情况下,
|
||||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanIds(planIds, ORDER_REMAIN_PLATE_MODEL, planIds.size());
|
List<OptimizeBoardModelDO> optimizeBoardModelDOS = buildBoardByPlanIds(planIds, ORDER_REMAIN_PLATE_MODEL, planIds.size());
|
||||||
if(!optimizeBoardModelDOS.isEmpty()){
|
if(!optimizeBoardModelDOS.isEmpty()){
|
||||||
|
|
||||||
@@ -696,84 +748,75 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
batchSaveBoardModel(req.getOptimizeBoardModelDOS());
|
batchSaveBoardModel(req.getOptimizeBoardModelDOS());
|
||||||
|
|
||||||
|
|
||||||
|
// 保存余料板的数据
|
||||||
if (CollectionUtil.isNotEmpty(req.getOptimizeRemainPlates())) {
|
if (CollectionUtil.isNotEmpty(req.getOptimizeRemainPlates())) {
|
||||||
ArrayList<RemainPlateDO> remainPlateDOS = new ArrayList<>();
|
|
||||||
|
|
||||||
for (OptimizeRemainPlate optimizeRemainPlate : req.getOptimizeRemainPlates()) {
|
List<RemainPlateDO> remainPlateDoS = BeanUtils.toBean(req.getOptimizeRemainPlates(), RemainPlateDO.class)
|
||||||
remainPlateDOS.add(RemainPlateDO.builder()
|
.stream()
|
||||||
.id(optimizeRemainPlate.getId())
|
.map(m -> m.setUseType(1))
|
||||||
.planId(optimizeRemainPlate.getPlanId())
|
.map(m -> m.setOutLineJson("")).toList();
|
||||||
.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());
|
|
||||||
}
|
|
||||||
|
|
||||||
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()
|
// if (CollectionUtil.isNotEmpty(req.getAddPlateIds())) {
|
||||||
.filter(m -> req.getAddPlateIds().contains(m.getPlateId()))
|
//
|
||||||
.map(m -> m.setPlateId(null))
|
// List<PlateDetialRespVO> addPlates = req.getPlateList().stream()
|
||||||
.collect(Collectors.toList());
|
// .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);
|
// List<PlateDO> plateDOS = BeanUtils.toBean(addPlates, PlateDO.class);
|
||||||
|
//
|
||||||
// 批量新增生产单明细表信息
|
// plateMapper.insertBatch(plateDOS);
|
||||||
ArrayList<OrderItemDO> orderItemDOS = new ArrayList<>();
|
//
|
||||||
|
// // 批量新增生产单明细表信息
|
||||||
for (PlateDetialRespVO plateDetialRespVO : req.getPlateList()) {
|
// ArrayList<OrderItemDO> orderItemDOS = new ArrayList<>();
|
||||||
orderItemDOS.add(OrderItemDO.builder()
|
//
|
||||||
// .id(plateDetialRespVO.getItemId())
|
// for (PlateDetialRespVO plateDetialRespVO : req.getPlateList()) {
|
||||||
.bodyId(plateDetialRespVO.getBodyId())
|
// orderItemDOS.add(OrderItemDO.builder()
|
||||||
.roomId(plateDetialRespVO.getRoomId())
|
//// .id(plateDetialRespVO.getItemId())
|
||||||
// .groupId(Long.valueOf(plateDetialRespVO.getProcessGroupId()))
|
// .bodyId(plateDetialRespVO.getBodyId())
|
||||||
.orderId(plateDetialRespVO.getOrderId())
|
// .roomId(plateDetialRespVO.getRoomId())
|
||||||
.type(1)
|
//// .groupId(Long.valueOf(plateDetialRespVO.getProcessGroupId()))
|
||||||
.plateId(plateDetialRespVO.getPlateId())
|
// .orderId(plateDetialRespVO.getOrderId())
|
||||||
.build());
|
// .type(1)
|
||||||
}
|
// .plateId(plateDetialRespVO.getPlateId())
|
||||||
|
// .build());
|
||||||
|
// }
|
||||||
orderItemMapper.insertBatch(orderItemDOS);
|
//
|
||||||
|
//
|
||||||
}
|
// orderItemMapper.insertBatch(orderItemDOS);
|
||||||
|
//
|
||||||
// 有删除的小板ID,删除小板
|
// }
|
||||||
if (CollectionUtil.isNotEmpty(req.getDeletePlateIds())) {
|
//
|
||||||
|
// // 有删除的小板ID,删除小板
|
||||||
// 删除生产单板件表的小板
|
// if (CollectionUtil.isNotEmpty(req.getDeletePlateIds())) {
|
||||||
plateMapper.deleteBatchIds(req.getDeletePlateIds());
|
//
|
||||||
|
// // 删除生产单板件表的小板
|
||||||
// 删除生产单明细表中对应的小板数据
|
// plateMapper.deleteBatchIds(req.getDeletePlateIds());
|
||||||
orderItemMapper.deleteByPlateId(req.getDeletePlateIds());
|
//
|
||||||
|
// // 删除生产单明细表中对应的小板数据
|
||||||
|
// orderItemMapper.deleteByPlateId(req.getDeletePlateIds());
|
||||||
}
|
//
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+264
-148
@@ -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.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.OrderIds;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList;
|
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.NotPlanGoodsReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsRespVO;
|
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.NotPlanGoodsRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
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.executor.service.optimizeplan.OptimizePlanService;
|
||||||
import com.cf.imes.module.system.api.machine.MachineApi;
|
import com.cf.imes.module.system.api.machine.MachineApi;
|
||||||
import com.cf.imes.module.system.api.machine.dto.CuttingRespDTO;
|
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 com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
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.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.*;
|
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.NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE;
|
||||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.THE_BOARD_HAS_BEEN_CUT_INTO_PIECES;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生产单开料排单 Service 实现类
|
* 生产单开料排单 Service 实现类
|
||||||
@@ -130,7 +125,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
ArrayList<PlanDO> planDOS = new ArrayList<>();
|
ArrayList<PlanDO> planDOS = new ArrayList<>();
|
||||||
|
|
||||||
ArrayList<PlanItemDO> planItemDOS = new ArrayList<>();
|
List<GoodsDO> goodsDOS = new ArrayList<>();
|
||||||
|
|
||||||
Map<Long,Long> goodsPlanId = new HashMap<>();
|
Map<Long,Long> goodsPlanId = new HashMap<>();
|
||||||
|
|
||||||
@@ -154,18 +149,24 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
goodsPlanId.put(entry.getKey(), plan.getId());
|
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) {
|
List<GoodsDO> goodsDOList = goodsMapper.selectPlanGoodsList(goodsIds, getUserOrganId()).stream().map(m -> m.setPlanId(plan.getId())).toList();
|
||||||
planItemDOS.add(PlanItemDO.builder()
|
|
||||||
.planId(plan.getId())
|
|
||||||
.itemId(itemId)
|
|
||||||
.build());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
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);
|
planMapper.insertBatch(planDOS);
|
||||||
|
|
||||||
|
|
||||||
planItemMapper.insertBatch(planItemDOS);
|
goodsMapper.updateBatch(goodsDOS);
|
||||||
|
|
||||||
|
|
||||||
return goodsPlanId;
|
return goodsPlanId;
|
||||||
@@ -207,74 +208,111 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updatePlan(PlanSaveReqVO updateReqVO) {
|
public void updatePlan(PlanSaveReqVO updateReqVO) {
|
||||||
|
|
||||||
// 校验存在
|
// 校验排单是否存在,是否开料
|
||||||
validatePlanExists(updateReqVO.getId(),updateReqVO.getMachineId());
|
validatePlanExists(updateReqVO.getId(),updateReqVO.getMachineId());
|
||||||
|
|
||||||
// 更新
|
// 更新
|
||||||
PlanDO plan = BeanUtils.toBean(updateReqVO, PlanDO.class);
|
PlanDO plan = BeanUtils.toBean(updateReqVO, PlanDO.class);
|
||||||
|
|
||||||
// 目前只解决非混单的情况
|
// 校验新增的板材是否和排单为统一类型的
|
||||||
if(!updateReqVO.getItemList().isEmpty()){
|
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<>();
|
if(goodsId.equals(goodsIds)){
|
||||||
|
throw exception(PLATE_ERROR);
|
||||||
// 创建一个列表存储 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());
|
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);
|
goodsDOS.addAll(goodsMapper.selectPlanGoodsList(ids, getUserOrganId()).stream().map(m -> m.setPlanId(null)).toList());
|
||||||
|
|
||||||
// 使用retainAll方法保留 plateNo 中与 deletePlateNos 相同的元素
|
|
||||||
plateNoCopyList.retainAll(deletePlateNos);
|
|
||||||
|
|
||||||
// 如果 plateNoCopyList 不为空,说明两个List有共同的元素
|
|
||||||
boolean b = !plateNoCopyList.isEmpty();
|
|
||||||
|
|
||||||
if (b) {
|
|
||||||
|
|
||||||
throw exception(THE_BOARD_HAS_BEEN_CUT_INTO_PIECES);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
goodsMapper.updateBatch(goodsDOS);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
planMapper.updateById(plan);
|
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
|
@Override
|
||||||
@@ -462,31 +500,47 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
List<CuttingRespDTO> machines = machineApi.list(machineIds).getCheckedData();
|
List<CuttingRespDTO> machines = machineApi.list(machineIds).getCheckedData();
|
||||||
|
|
||||||
|
|
||||||
|
// List<PlateInfoVO> plateInfoVOS = planItemMapper.selectGoodsList(planIds,getUserOrganId());
|
||||||
List<PlateInfoVO> plateInfoVOS = planItemMapper.selectGoodsList(planIds,getUserOrganId());
|
|
||||||
|
|
||||||
List<OrderIds> orderIdsList = new ArrayList<>();
|
|
||||||
|
|
||||||
plateInfoVOS.forEach(f->
|
|
||||||
orderIdsList.addAll(f.getOrderIdList()));
|
|
||||||
|
|
||||||
|
|
||||||
List<PlateInfoVO> plateInfoVOList = plateMapper.selectPlateArea(orderIdsList, getUserOrganId());
|
// 查询排单对应的大板板材信息
|
||||||
|
List<PlateInfoVO> plateInfoVOS = goodsMapper.selectOrderGoodsPlateList(planIds, getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
// todo 目前这种情况只解决没有混单的情况,混单情况待解决 (目前解决,数据正确性待测试)
|
// 查询排单对应的小板数量和小板面积
|
||||||
for (PlateInfoVO plateInfoVO : plateInfoVOS) {
|
List<PlateInfoVO> infoVOList = plateInfoVOS.stream().peek(m -> {
|
||||||
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());
|
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 目前只解决无混单的情况,混单情况待解决
|
// 根据排单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()
|
.findAny()
|
||||||
.orElse(null));
|
.orElse(null));
|
||||||
// 板材信息列表
|
// 板材信息列表
|
||||||
e.setPlateInfoList(plateInfoVOS.stream()
|
e.setPlateInfoList(infoVOList.stream()
|
||||||
.filter(f -> Objects.equals(f.getPlanId(), e.getId()))
|
.filter(f -> Objects.equals(f.getPlanId(), e.getId()))
|
||||||
.collect(Collectors.toList()));
|
.collect(Collectors.toList()));
|
||||||
// todo 小板总数量目前只解决没有混单的情况时的小板数量,后续待加入混单情况 (目前解决,数据正确性待测试)
|
// todo 小板总数量目前只解决没有混单的情况时的小板数量,后续待加入混单情况 (目前解决,数据正确性待测试)
|
||||||
e.setPlateNum(plateInfoVOS.stream()
|
e.setPlateNum(infoVOList.stream()
|
||||||
.filter(f -> Objects.equals(f.getPlanId(), e.getId()))
|
.filter(f -> Objects.equals(f.getPlanId(), e.getId()))
|
||||||
.mapToLong(PlateInfoVO::getCount)
|
.mapToLong(PlateInfoVO::getCount)
|
||||||
.sum());
|
.sum());
|
||||||
@@ -559,32 +613,44 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
|
|
||||||
QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>();
|
QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>();
|
||||||
queryWrapperX
|
queryWrapperX
|
||||||
.eq("a.organ_id",getUserOrganId())
|
.eq("o.organ_id",getUserOrganId())
|
||||||
// .eq("a.status",OrderStatusEnum.SORTED.getStatus())
|
.eq("o.deleted",false)
|
||||||
.eq("a.deleted",false)
|
.in("o.status",statusList)
|
||||||
.in("a.status",statusList)
|
.eq("og.organ_id",getUserOrganId())
|
||||||
.isNull("opi.item_id")
|
.eq("og.plan_id",0)
|
||||||
|
.eq("og.deleted",false)
|
||||||
|
// .isNull("opi.item_id")
|
||||||
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
|
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
|
||||||
.inIfPresent("op.goods_id",goodsDOS.isEmpty() ? null :goodsDOS.stream().map(GoodsDO::getId).toList())
|
.inIfPresent("op.goods_id",goodsDOS.isEmpty() ? null :goodsDOS.stream().map(GoodsDO::getId).toList())
|
||||||
|
.inIfPresent("o.id",pageReqVO.getOrderIds())
|
||||||
.inIfPresent("a.id",pageReqVO.getOrderIds())
|
.likeIfPresent("o.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null)
|
||||||
.likeIfPresent("a.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null)
|
|
||||||
.inIfPresent("op.goods_id",pageReqVO.getIds())
|
.inIfPresent("op.goods_id",pageReqVO.getIds())
|
||||||
.eqIfPresent("a.customer", pageReqVO.getConsignee())
|
.likeIfPresent("o.customer", pageReqVO.getConsignee())
|
||||||
.eqIfPresent("a.custom_order_no", pageReqVO.getDefaultId())
|
.likeIfPresent("o.custom_order_no", pageReqVO.getDefaultId())
|
||||||
.eqIfPresent("a.address", pageReqVO.getConsigneeAddress())
|
.likeIfPresent("o.address", pageReqVO.getConsigneeAddress())
|
||||||
.betweenIfPresent("a.create_time", pageReqVO.getCreateTime())
|
.betweenIfPresent("o.order_date", 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")
|
.groupBy("o.id", " o.order_date", "o.delivery_date", "o.customer", "o.address", "o.custom_order_no","o.status")
|
||||||
.having("count(op.id) != 0")
|
.having("count(op.id) != 0")
|
||||||
.orderByDesc("a.create_time");
|
.orderByDesc("o.order_date");
|
||||||
|
|
||||||
|
|
||||||
|
// todo 目前修改一半,速度无法再进行特别的优化,需等后面修改表结构再进行优化
|
||||||
IPage<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderPage(page,queryWrapperX);
|
IPage<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderPage(page,queryWrapperX);
|
||||||
|
|
||||||
if (CollectionUtil.isEmpty(orderRespVOCopies.getRecords())) {
|
if (CollectionUtil.isEmpty(orderRespVOCopies.getRecords())) {
|
||||||
return new PageResult<>();
|
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());
|
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.IN_PRODUCTION.getStatus());
|
||||||
statusList.add(OrderStatusEnum.SORTED.getStatus());
|
statusList.add(OrderStatusEnum.SORTED.getStatus());
|
||||||
|
|
||||||
List<Long> orderIds = orderMapper.selectOrderIdsList(pageReqVO, statusList, getUserOrganId())
|
// List<Long> orderIds = orderMapper.selectOrderIdsList(pageReqVO, statusList, getUserOrganId())
|
||||||
.stream().map(OrderDO::getId).toList();
|
// .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<OrderDO> queryWrapperX = new QueryWrapperX<>();
|
||||||
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)
|
.eq("og.deleted",false)
|
||||||
.inIfPresent("oi.order_id", orderIds)
|
|
||||||
.isNull("opi.item_id")
|
.inIfPresent("og.order_id", pageReqVO.getOrderIds())
|
||||||
.isNotNull("og.id")
|
// .inIfPresent("og.id", goodsIds)
|
||||||
|
// .isNull("opi.item_id")
|
||||||
|
// .isNotNull("og.id")
|
||||||
|
|
||||||
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
|
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
|
||||||
.eqIfPresent("og.goods_id",pageReqVO.getGoodsId())
|
.eqIfPresent("og.goods_id",pageReqVO.getGoodsId())
|
||||||
@@ -751,44 +827,80 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
queryWrapperX.likeIfPresent("op.filter_type", insertSeparator(filterTypes));
|
queryWrapperX.likeIfPresent("op.filter_type", insertSeparator(filterTypes));
|
||||||
|
|
||||||
|
|
||||||
// List<Long> orderIds = orderMapper.selectOrderIds(queryWrapperX);
|
|
||||||
|
|
||||||
|
|
||||||
IPage<OrderGoodsResp> orderGoodsResps = orderMapper.selectOrderIds(page,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());
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// if (orderGoodsResps1 != null) {
|
||||||
|
// // 合并 otherObjectList 到 obj1 副本中
|
||||||
|
// orderGoodsResps1.get().addAll(obj2.getOtherObjectList());
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
//
|
|
||||||
// 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();
|
|
||||||
//
|
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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<List<OrderIds>> list = entry.getValue().stream().map(OrderGoodsResp::getOrderIds).toList();
|
||||||
|
|
||||||
|
|
||||||
// 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());
|
|
||||||
//
|
//
|
||||||
// record.setArea(orderRespVOCopies.stream().filter(e-> Objects.equals(e.getGoodsId(), record.getGoodsId()))
|
// List<OrderIds> orderds = list.stream().flatMap(Collection::stream).toList();
|
||||||
// .map(OrderRespVOCopy::getArea)
|
//
|
||||||
// .reduce(BigDecimal.ZERO,BigDecimal::add));
|
// 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()) {
|
for (Long planId : vo.getPlanIds()) {
|
||||||
validatePlanExists(planId,null);
|
validatePlanExists(planId,null);
|
||||||
}
|
}
|
||||||
QueryWrapperX<PlateDO> queryWrapperX = new QueryWrapperX<>();
|
QueryWrapperX<GoodsDO> queryWrapperX = new QueryWrapperX<>();
|
||||||
|
|
||||||
String filterTypes = "";
|
String filterTypes = "";
|
||||||
if (Objects.nonNull(vo.getHoleThrough()) && vo.getHoleThrough()) {
|
if (Objects.nonNull(vo.getHoleThrough()) && vo.getHoleThrough()) {
|
||||||
@@ -872,21 +984,25 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
filterTypes += PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType().toString();
|
filterTypes += PlanFilterTypeEnum.TWODIMENSIONALCUTTINGPATH.getType().toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
queryWrapperX.in("p.plan_id", vo.getPlanIds())
|
queryWrapperX.eq("og.organ_id",getUserOrganId())
|
||||||
.eq("a.organ_id",getUserOrganId())
|
.in("og.plan_id", vo.getPlanIds())
|
||||||
.eqIfPresent("a.is_door", vo.getIsDoor())
|
.eqIfPresent("op.is_door", vo.getIsDoor())
|
||||||
.eqIfPresent("a.is_special_shaped", vo.getRectangle() != null ? false: null)
|
.eqIfPresent("op.is_special_shaped", vo.getRectangle() != null ? false: null)
|
||||||
.eqIfPresent("a.is_special_shaped", vo.getSpecialShaped())
|
.eqIfPresent("op.is_special_shaped", vo.getSpecialShaped())
|
||||||
.eqIfPresent("a.is_sculpt", vo.getSculpt())
|
.eqIfPresent("op.is_sculpt", vo.getSculpt())
|
||||||
.betweenIfPresent("a.width", new BigDecimal[]{vo.getWidthMinRang(), vo.getWidthMaxRang()})
|
.betweenIfPresent("op.width", new BigDecimal[]{vo.getWidthMinRang(), vo.getWidthMaxRang()})
|
||||||
.betweenIfPresent("a.height", new BigDecimal[]{vo.getLongMinRang(), vo.getLongMaxRang()})
|
.betweenIfPresent("op.height", new BigDecimal[]{vo.getLongMinRang(), vo.getLongMaxRang()})
|
||||||
.likeIfPresent("a.filter_type", insertSeparator(filterTypes))
|
.likeIfPresent("op.filter_type", insertSeparator(filterTypes))
|
||||||
.betweenIfPresent("f.delivery_date", new Date[]{vo.getBeginDate(), vo.getEndDate()})
|
.orderByDesc("op.order_id");
|
||||||
.orderByDesc("a.order_id")
|
|
||||||
.orderByDesc("a.name");
|
|
||||||
PageDTO<PlateResList> page = new PageDTO<>(vo.getPageNo(), vo.getPageSize());
|
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());
|
Set<Long> bodyIds = pageResult.getRecords().stream().map(PlateResList::getBodyId).collect(Collectors.toSet());
|
||||||
|
|
||||||
if (CollectionUtil.isNotEmpty(bodyIds)) {
|
if (CollectionUtil.isNotEmpty(bodyIds)) {
|
||||||
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectBatchIds(bodyIds);
|
List<OrderBodyDO> orderBodyDOS = orderBodyMapper.selectBatchIds(bodyIds);
|
||||||
for (PlateResList resList : pageResult.getRecords()) {
|
for (PlateResList resList : pageResult.getRecords()) {
|
||||||
@@ -900,12 +1016,12 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
@Override
|
@Override
|
||||||
public PageResult<OrderRespVO> getOrderByPlanId(PlanOrderPageReqVO pageReqVO) {
|
public PageResult<OrderRespVO> getOrderByPlanId(PlanOrderPageReqVO pageReqVO) {
|
||||||
MPJLambdaWrapperX<OrderDO> lambdaWrapperX = new MPJLambdaWrapperX<>();
|
MPJLambdaWrapperX<OrderDO> lambdaWrapperX = new MPJLambdaWrapperX<>();
|
||||||
lambdaWrapperX.leftJoin(OrderItemDO.class, OrderItemDO::getOrderId, OrderDO::getId)
|
lambdaWrapperX.leftJoin(GoodsDO.class, GoodsDO::getOrderId, OrderDO::getId)
|
||||||
.leftJoin(PlanItemDO.class, PlanItemDO::getItemId, OrderItemDO::getId)
|
.eq(GoodsDO::getOrganId,getUserOrganId())
|
||||||
.eq(PlanItemDO::getOrganId,getUserOrganId())
|
.eq(GoodsDO::getPlanId, pageReqVO.getPlanId())
|
||||||
.eq(PlanItemDO::getPlanId, pageReqVO.getPlanId())
|
|
||||||
.distinct();
|
.distinct();
|
||||||
|
|
||||||
|
|
||||||
PageResult<OrderDO> pageResult = orderMapper.selectJoinPage(pageReqVO, OrderDO.class, lambdaWrapperX);
|
PageResult<OrderDO> pageResult = orderMapper.selectJoinPage(pageReqVO, OrderDO.class, lambdaWrapperX);
|
||||||
return BeanUtils.toBean(pageResult, OrderRespVO.class);
|
return BeanUtils.toBean(pageResult, OrderRespVO.class);
|
||||||
}
|
}
|
||||||
|
|||||||
+168
-5
@@ -32,11 +32,7 @@
|
|||||||
orp.id as remainId
|
orp.id as remainId
|
||||||
from order_goods og
|
from order_goods og
|
||||||
left join order_remain_plate orp on og.id = orp.goods_id and og.organ_id = orp.organ_id
|
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
|
where og.organ_id =#{organId} and og.deleted = false and og.plan_id = #{planId}
|
||||||
|
|
||||||
<foreach item="id" collection="goodsIds" open="(" separator="," close=")">
|
|
||||||
#{id}
|
|
||||||
</foreach>
|
|
||||||
|
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
@@ -134,4 +130,171 @@
|
|||||||
</select>
|
</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>
|
</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" >
|
<!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">
|
<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">
|
<resultMap id="OrderPageMap" type="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
|
<result property="orderId" column="orderId"/>
|
||||||
left join order_item oi on a.id = oi.order_id and a.organ_id = oi.organ_id
|
<result property="status" column="status"/>
|
||||||
left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
|
<result property="defineId" column="defineId"/>
|
||||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
<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}
|
${ew.customSqlSegment}
|
||||||
|
|
||||||
@@ -271,10 +312,10 @@
|
|||||||
og.width,
|
og.width,
|
||||||
og.height,
|
og.height,
|
||||||
og.brand
|
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
|
from orders o
|
||||||
left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
|
left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id
|
||||||
left join order_goods og on op.goods_id = og.id and op.organ_id = og.organ_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}
|
${ew.customSqlSegment}
|
||||||
|
|
||||||
@@ -282,4 +323,22 @@
|
|||||||
|
|
||||||
|
|
||||||
</select>
|
</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>
|
</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>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
+15
@@ -11,4 +11,19 @@
|
|||||||
from `order_group` as gp
|
from `order_group` as gp
|
||||||
where gp.order_id = #{orderId} and gp.organ_id = #{organId} and gp.deleted = 0
|
where gp.order_id = #{orderId} and gp.organ_id = #{organId} and gp.deleted = 0
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
+31
@@ -258,4 +258,35 @@
|
|||||||
</select>
|
</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>
|
</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"
|
<select id="selectOrderList"
|
||||||
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlanOrderRespVO">
|
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlanOrderRespVO">
|
||||||
@@ -67,15 +11,24 @@
|
|||||||
|
|
||||||
|
|
||||||
select distinct
|
select distinct
|
||||||
opi.plan_id as planId,
|
o.id,
|
||||||
o.*
|
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
|
left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id
|
||||||
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 og.organ_id = #{organId}
|
||||||
where opi.organ_id = #{organId}
|
|
||||||
and
|
and og.plan_id in
|
||||||
opi.plan_id in
|
|
||||||
<foreach collection="planIds" item="ids" open="(" close=")" separator=",">
|
<foreach collection="planIds" item="ids" open="(" close=")" separator=",">
|
||||||
#{ids}
|
#{ids}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
|||||||
+86
-18
@@ -774,34 +774,34 @@
|
|||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectPlateArea"
|
<!-- <select id="selectPlateArea"-->
|
||||||
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateInfoVO">
|
<!-- resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateInfoVO">-->
|
||||||
|
|
||||||
select
|
<!-- select-->
|
||||||
og.goods_id as goodsId,
|
<!-- og.goods_id as goodsId,-->
|
||||||
-- count(distinct og.id) as optimizeGoodsCount,
|
<!---- count(distinct og.id) as optimizeGoodsCount,-->
|
||||||
sum(op.area) as area
|
<!-- sum(op.area) as area-->
|
||||||
|
|
||||||
from order_plate op
|
<!-- from order_plate op-->
|
||||||
left join order_goods og on op.goods_id = og.id
|
<!-- 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=",">
|
<!-- <foreach collection="orderIdsList" item="orderIdsList" open="(" close=")" separator=",">-->
|
||||||
(#{orderIdsList.goodsId})
|
<!-- (#{orderIdsList.goodsId})-->
|
||||||
</foreach>
|
<!-- </foreach>-->
|
||||||
|
|
||||||
and og.order_id in
|
<!-- and og.order_id in-->
|
||||||
|
|
||||||
<foreach collection="orderIdsList" item="orderIdsList" open="(" close=")" separator=",">
|
<!-- <foreach collection="orderIdsList" item="orderIdsList" open="(" close=")" separator=",">-->
|
||||||
(#{orderIdsList.orderId})
|
<!-- (#{orderIdsList.orderId})-->
|
||||||
</foreach>
|
<!-- </foreach>-->
|
||||||
|
|
||||||
group by goodsId;
|
<!-- group by goodsId;-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</select>
|
<!-- </select>-->
|
||||||
|
|
||||||
<select id="selectTestSQL" resultType="java.util.Map">
|
<select id="selectTestSQL" resultType="java.util.Map">
|
||||||
|
|
||||||
@@ -818,4 +818,72 @@
|
|||||||
|
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
Reference in New Issue
Block a user