mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
Merge branch 'main' of ssh://192.168.1.205:9922/cf_devdept2/cf_imes_server
This commit is contained in:
+1
@@ -33,6 +33,7 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode ORDER_NOT_CANCEL = new ErrorCode(1_001_109_000, "生产单已排单,小板操作无效");
|
||||
ErrorCode ORDER_CANCEL = new ErrorCode(1_001_109_000, "生产单未作废,还原无效");
|
||||
ErrorCode ORDER_PLAN_ERROR = new ErrorCode(1_001_109_001, "选中删除对象有已开料板件,请联系管理员修改开料状态后再删除!");
|
||||
ErrorCode ORDER_ERROR = new ErrorCode(1_001_109_002, "当前生产单柜体,房间已全部删除!");
|
||||
|
||||
// ========== 生产单 TODO 补充编号 ==========
|
||||
ErrorCode MODULE_NOT_EXISTS = new ErrorCode(1_001_110_000, "模块不存在");
|
||||
|
||||
+6
-2
@@ -1,5 +1,6 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.bo;
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRemark;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.OptimizeRemainPlate;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPartsRespVO;
|
||||
@@ -16,8 +17,6 @@ import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -61,6 +60,11 @@ public class OrderSource {
|
||||
private List<PrintOrderPartsRespVO> orderPartsRespVOS;
|
||||
|
||||
|
||||
@Schema(description = "生产单配件的备注信息")
|
||||
private List<OrderPartsRemark> orderPartsRemarks;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "生产单包裹信息")
|
||||
private List<PrintOrderPackReqVO> orderPackReqVOS;
|
||||
|
||||
|
||||
+19
-2
@@ -1,25 +1,37 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
|
||||
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 标签对应的生产单配件信息")
|
||||
@Data
|
||||
public class PrintOrderPartsRespVO {
|
||||
|
||||
|
||||
@Schema(description = "房间ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long roomId;
|
||||
|
||||
|
||||
@Schema(description = "房间名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String roomName;
|
||||
|
||||
|
||||
@Schema(description = "柜体ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long bodyId;
|
||||
|
||||
|
||||
@Schema(description = "柜体名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String bodyName;
|
||||
|
||||
|
||||
@Schema(description = "加工组ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<Long> groupId;
|
||||
|
||||
|
||||
@Schema(description = "配件 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29347")
|
||||
@ExcelProperty("配件 ID")
|
||||
private Long id;
|
||||
|
||||
|
||||
@@ -27,6 +39,7 @@ public class PrintOrderPartsRespVO {
|
||||
private Long orderId;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "配件数量", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long partsNum;
|
||||
|
||||
@@ -51,4 +64,8 @@ public class PrintOrderPartsRespVO {
|
||||
private String factory;
|
||||
|
||||
|
||||
@Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String type;
|
||||
|
||||
|
||||
}
|
||||
|
||||
+14
-1
@@ -45,7 +45,7 @@ public class RemainBoardList {
|
||||
|
||||
|
||||
@Schema(description = "纹路 纹路(0正纹1可翻转2反纹)")
|
||||
private Integer texture;
|
||||
private Boolean texture;
|
||||
|
||||
|
||||
|
||||
@@ -53,4 +53,17 @@ public class RemainBoardList {
|
||||
private Boolean isHandAdd;
|
||||
|
||||
|
||||
@Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String brand;
|
||||
|
||||
|
||||
@Schema(description = "仓库", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String store;
|
||||
|
||||
|
||||
@Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String remark;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+2
@@ -42,6 +42,8 @@ public class OrderGoodsResp {
|
||||
@Schema(description = "板件数量")
|
||||
private int num;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "生产单信息")
|
||||
private List<OrderRespVOCopy> orderList;
|
||||
|
||||
+3
-7
@@ -1,14 +1,10 @@
|
||||
package com.cf.imes.module.executor.dal.dataobject.plan;
|
||||
|
||||
import com.cf.imes.framework.organ.core.db.OrganBaseDO;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
|
||||
import lombok.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 生产单开料排单 DO
|
||||
|
||||
+1
-5
@@ -1,12 +1,8 @@
|
||||
package com.cf.imes.module.executor.dal.dataobject.rawgoods;
|
||||
|
||||
import com.cf.imes.framework.organ.core.db.OrganBaseDO;
|
||||
import lombok.*;
|
||||
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;
|
||||
import lombok.*;
|
||||
|
||||
/**
|
||||
* 生产单设计商品表 order_raw_goods_{N} DO
|
||||
|
||||
+5
-19
@@ -75,7 +75,7 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
||||
}
|
||||
|
||||
// 删板材,批量
|
||||
void updateDeletedById(@Param("ids") List<Long> ids, @Param("deleted") Integer deleted, @Param("organId") Long organId);
|
||||
void updateDeletedById(@Param("orderId") Long orderId,@Param("ids") List<Long> ids, @Param("deleted") Integer deleted, @Param("organId") Long organId);
|
||||
|
||||
void deletedById(@Param("ids") List<Long> ids, @Param("organId") Long organId);
|
||||
|
||||
@@ -108,15 +108,6 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
||||
|
||||
|
||||
|
||||
default List<GoodsDO> selectListByGoodsIdList(List<String> goodsIds,List<Long> orderIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<GoodsDO>()
|
||||
.eq(GoodsDO::getOrganId, organId)
|
||||
.eq(GoodsDO::getDeleted, false)
|
||||
.in(GoodsDO::getGoodsId, goodsIds)
|
||||
.in(GoodsDO::getOrderId, orderIds));
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<GoodsDO> selectPlanGoodsDataSource(@Param("filed") String filed,@Param("planId") Long planId ,@Param("organId") Long organId);
|
||||
|
||||
@@ -133,9 +124,6 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
||||
|
||||
|
||||
|
||||
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);
|
||||
|
||||
|
||||
@@ -160,7 +148,6 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
||||
}
|
||||
|
||||
|
||||
List<OrderGoodsResp> selectGoodsListByGoodsId(@Param(Constants.WRAPPER) Wrapper<GoodsDO> wrapper);
|
||||
|
||||
|
||||
IPage<PlateResList> selectPlanGoodsListByPlanId(@Param("page") IPage<PlateResList> page, @Param(Constants.WRAPPER) Wrapper<GoodsDO> wrapper);
|
||||
@@ -168,23 +155,23 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
||||
List<GoodsReqVO> selectGoodsAndRemainPlate(@Param("ids") List<Long> ids,@Param("organId") Long organId);
|
||||
|
||||
|
||||
IPage<OrderRespVOCopy> selectNoPlanOrderList(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper<GoodsDO> wrapper);
|
||||
|
||||
|
||||
|
||||
default int deletePlanGoods(List<Long> ids, Long organId) {
|
||||
default int deletePlanGoods(List<Long> orderIds,List<Long> ids, Long organId) {
|
||||
return update(new LambdaUpdateWrapper<GoodsDO>()
|
||||
.set(GoodsDO::getPlanId, 0)
|
||||
.eq(GoodsDO::getOrganId, organId)
|
||||
.in(GoodsDO::getOrderId, orderIds)
|
||||
.in(GoodsDO::getPlanId, ids));
|
||||
}
|
||||
|
||||
|
||||
|
||||
default List<GoodsDO> selectPlanGoodsListByPlanIdList(List<Long> planIds, Long organId) {
|
||||
default List<GoodsDO> selectPlanGoodsListByPlanIdList(List<Long> orderIds,List<Long> planIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<GoodsDO>()
|
||||
.eq(GoodsDO::getOrganId, organId)
|
||||
.eq(GoodsDO::getDeleted, false)
|
||||
.inIfPresent(GoodsDO::getOrderId,orderIds)
|
||||
.in(GoodsDO::getPlanId,planIds)
|
||||
.select(GoodsDO::getGoodsId,GoodsDO::getId,GoodsDO::getOrderId));
|
||||
|
||||
@@ -196,7 +183,6 @@ public interface GoodsMapper extends BaseMapperX<GoodsDO> {
|
||||
|
||||
List<OrderRoomBodyList> selectNoPlanRoomBody(@Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
|
||||
|
||||
IPage<OrderRespVOCopy> selectOrderPlate(@Param("page") IPage page,@Param("organId") Long organId);
|
||||
|
||||
List<Long> selectPlanOrderList(@Param("orderId") Long orderId,@Param("roomIds") Set<Long> roomIds, @Param("bodyId") Long bodyId,@Param("organId") Long organId);
|
||||
|
||||
|
||||
+2
-15
@@ -5,7 +5,6 @@ import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlatesDetailRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateDetailRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
|
||||
@@ -79,17 +78,6 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
||||
|
||||
|
||||
|
||||
default List<OrderItemDO> selectPlateIdList(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));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
default List<OrderItemDO> selectPartsList(List<Long> partIds,List<Long> orderIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
||||
@@ -100,12 +88,11 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
||||
|
||||
}
|
||||
|
||||
IPage<OrderRespVOCopy> selectTestNum(@Param("page") IPage page,@Param("organId") Long organId);
|
||||
|
||||
|
||||
default List<OrderItemDO> selectPackId(List<Long> bodyIds, Long organId) {
|
||||
default List<OrderItemDO> selectPackId(Long orderId,List<Long> bodyIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
|
||||
.eq(OrderItemDO::getOrganId,organId)
|
||||
.eq(OrderItemDO::getOrderId,orderId)
|
||||
.inIfPresent(OrderItemDO::getBodyId,bodyIds)
|
||||
.select(OrderItemDO::getPackageId));
|
||||
|
||||
|
||||
+2
-3
@@ -74,9 +74,6 @@ public interface PlanMapper extends BaseMapperX<PlanDO> {
|
||||
|
||||
List<PlateOptimize> selectPlateListByPlanId(@Param("planId") Long planId, @Param("organId") Long organId);
|
||||
|
||||
OptimizeParamRespVO getOptimizePlanParam(Long planId);
|
||||
|
||||
PlanDO selectPlanByOrderIds(@Param("ids") List<Long> ids);
|
||||
|
||||
|
||||
|
||||
@@ -116,6 +113,8 @@ public interface PlanMapper extends BaseMapperX<PlanDO> {
|
||||
|
||||
List<PlanDO> selectPlanStatus(@Param("planIds") List<Long> planIds,@Param("organId") Long organId);
|
||||
|
||||
void updatePlanStatus(@Param("planId") Long planId,@Param("status") Integer status,@Param("organId") Long organId);
|
||||
|
||||
|
||||
|
||||
// List<PlanDO> seleTestSQL(@Param("sql") String sql);
|
||||
|
||||
+10
-37
@@ -8,8 +8,6 @@ import com.cf.imes.framework.common.enums.OrderPlateTypeEnum;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.GoodsNum;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateGoodsIdVO;
|
||||
@@ -75,11 +73,7 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
}
|
||||
|
||||
// IPage<PlatePage> selectPlatePage(@Param("page") IPage<PlatePage> page, @Param("orderId")Long organId, @Param("goodsId") String goodsId);
|
||||
List<PlatePage> selectPlatePage( @Param("orderId") Long orderId,@Param("organId") Long organId/*, @Param("goodsId") String goodsId*/);
|
||||
|
||||
IPage<PlateResList> selectPlateByPlanId(@Param("page") IPage<PlateResList> page, @Param(Constants.WRAPPER) Wrapper<PlateDO> wrapper);
|
||||
|
||||
List<PlateParam> selectPlateList(Long planId);
|
||||
|
||||
|
||||
IPage<PlateRespVO> selectProductList(@Param("page") IPage<PlateRespVO> page , @Param("orderId")Long orderId, @Param("roomId")Long roomId , @Param("bodyId")Long bodyId,@Param("organId") Long organId);
|
||||
@@ -92,9 +86,6 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
List<PlateDetialRespVO> selectPlateDetialList(@Param("orderId") Long orderId,@Param("organId") Long organId);
|
||||
|
||||
|
||||
List<PlateDetialRespVO> selectPlateDetialListByIds(@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
|
||||
|
||||
|
||||
List<PlateGoodsRespVO> selectPlateGoodsList(@Param("orderId") Long orderId, @Param("organId") Long organId, @Param("deleted") Integer deleted); // 明细
|
||||
|
||||
List<PlateGoodsRespVO> selectPlateGoodsListSummary(@Param("orderId") Long orderId, @Param("organId") Long organId, @Param("deleted") Integer deleted); // 汇总
|
||||
@@ -131,15 +122,9 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
List<NotPlanOrderPlateRespVO> selectGoodsPage( @Param(Constants.WRAPPER) Wrapper<PlateDO> wrapper);
|
||||
|
||||
|
||||
IPage<OrderGoodsResp> selectGoodsList(@Param("page") IPage<OrderGoodsResp> page,@Param("goodsIds") List<Long> goodsIds,@Param("organId") Long organId);
|
||||
|
||||
|
||||
List<OrderIds> selectOrderIds(@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
|
||||
|
||||
|
||||
void deletedById(@Param("plateIds") List<Long> plateIds, @Param("organId") Long organId);
|
||||
|
||||
List<GoodsNum> selectGoodsNum(@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
|
||||
|
||||
default List<PlateDO> selectPlateNum(Long orderId, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||
@@ -173,18 +158,6 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
|
||||
|
||||
|
||||
default List<PlateDO> selectGoodsPlateList(List<Long> goodIds, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||
.eq(PlateDO::getOrganId,organId)
|
||||
.inIfPresent(PlateDO::getGoodsId, goodIds));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<PlateDetialRespVO> selectPlateListByGoodIds(@Param("goodIds") List<Long> goodIds,@Param("organId") Long organId);
|
||||
|
||||
|
||||
// List<PlateInfoVO> selectPlateArea(@Param("orderIdsList") List<OrderIds> orderIdsList,@Param("organId") Long organId);
|
||||
|
||||
|
||||
@@ -227,16 +200,6 @@ 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<PlatePage> selectNoPlanPlateList(@Param(Constants.WRAPPER) Wrapper<PlateDO> queryWrapperX2);
|
||||
|
||||
|
||||
@@ -264,6 +227,16 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
||||
}
|
||||
|
||||
|
||||
|
||||
default List<PlateDO> selectPlateIsOptimized(Long orderId, Long organId) {
|
||||
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||
.eq(PlateDO::getOrganId,organId)
|
||||
.eq(PlateDO::getDeleted,false)
|
||||
.eqIfPresent(PlateDO::getOrderId,orderId)
|
||||
.eq(PlateDO::getIsOptimized,true));
|
||||
|
||||
}
|
||||
|
||||
// List<PlateDO> selectTestSQL(@Param("sql") String sql);
|
||||
|
||||
|
||||
|
||||
+4
@@ -19,6 +19,10 @@ public interface OptimizePlanService {
|
||||
|
||||
String ORDER_REMAIN_PLATE_MODEL = "imes_order_optimize_plate_model";
|
||||
|
||||
|
||||
String ORDER_PARTS_REMARK_MODEL = "imes_order_parts_remark_model";
|
||||
|
||||
|
||||
List<PlateOptimize> getPlateListByPlanId(Long planId);
|
||||
|
||||
Boolean addRemain(AddRemainReqVO vo);
|
||||
|
||||
+104
-64
@@ -8,14 +8,13 @@ import co.elastic.clients.elasticsearch.ElasticsearchClient;
|
||||
import co.elastic.clients.elasticsearch._types.FieldValue;
|
||||
import co.elastic.clients.elasticsearch.core.*;
|
||||
import co.elastic.clients.elasticsearch.core.search.Hit;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
||||
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
||||
import com.cf.imes.framework.common.exception.ServiceException;
|
||||
import com.cf.imes.framework.common.util.Assert.AssertUtils;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
||||
import com.cf.imes.framework.security.core.LoginUser;
|
||||
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRemark;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderSource;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessGroupList;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepAreaIds;
|
||||
@@ -29,7 +28,6 @@ import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
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.plate.PlateDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.processStep.ProcessStepDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO;
|
||||
import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.order.OrderMapper;
|
||||
@@ -47,7 +45,6 @@ import com.cf.imes.module.infra.api.file.FileApi;
|
||||
import com.cf.imes.module.system.api.dataSource.DataSourceApi;
|
||||
import com.cf.imes.module.system.api.machine.MachineApi;
|
||||
import com.cf.imes.module.system.api.process.ProcessApi;
|
||||
import com.cf.imes.module.system.api.process.dto.ProcessDTO;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
@@ -60,10 +57,10 @@ import java.io.IOException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.*;
|
||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId;
|
||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_NOT_EXISTS;
|
||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLAN_NOT_EXISTS;
|
||||
@@ -173,6 +170,13 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||
|
||||
if(!optimizeBoardModelDO.getIsOptimized()){
|
||||
|
||||
throw exception(ORDER_PLAN_NO_OPTIMIZE_ERROR);
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<Long> plateNo = new ArrayList<>();
|
||||
|
||||
// 创建一个列表存储 BlockPlaceInfo 对象,将优化的小板信息拿出,获取到小板编号,查询生产单,修改生产单的状态
|
||||
@@ -220,16 +224,18 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
long cutedBoardNumber = cutedBoardInfo.getCutedBoardNumber() == null ? 0 : cutedBoardInfo.getCutedBoardNumber();
|
||||
|
||||
|
||||
cutedBoardNumber += goodsNo.size();
|
||||
|
||||
|
||||
// 获取原排单的已开料的大板编号
|
||||
List<Long> cutedBoardList = cutedBoardInfo.getCutedBoardList() == null ? new ArrayList<>() : cutedBoardInfo.getCutedBoardList();
|
||||
|
||||
goodsNo.addAll(cutedBoardList);
|
||||
|
||||
// 将新开料的大板编号添加到已开料的大板编号中
|
||||
cutedBoardList.addAll(goodsNo);
|
||||
cutedBoardList.addAll(Stream.concat(
|
||||
cutedBoardList.stream().filter(str -> !goodsNo.contains(str)),
|
||||
goodsNo.stream().filter(str -> !cutedBoardList.contains(str)))
|
||||
.toList());
|
||||
|
||||
cutedBoardNumber = cutedBoardList.size();
|
||||
|
||||
// 将需要更新更新的数据更新到原数据中
|
||||
cutedBoardInfo.setCutedBoardNumber(cutedBoardNumber);
|
||||
@@ -289,6 +295,13 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||
|
||||
if(!optimizeBoardModelDO.getIsOptimized()){
|
||||
|
||||
throw exception(ORDER_PLAN_NO_OPTIMIZE_UPDATE_ERROR);
|
||||
|
||||
}
|
||||
|
||||
|
||||
CutedBoardInfo cutedBoardInfo = optimizeBoardModelDO.getCutedBoardInfo() == null ? new CutedBoardInfo() : optimizeBoardModelDO.getCutedBoardInfo();
|
||||
|
||||
|
||||
@@ -324,16 +337,16 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
if(cutedBoardInfo.getCutedBoardNumber() == 0){
|
||||
|
||||
planDO.setStatus(PlanStatusEnum.NOCUTTING.getStatus());
|
||||
planDO.setProduceTime(null);
|
||||
planMapper.updateById(planDO);
|
||||
// planDO.setStatus(PlanStatusEnum.NOCUTTING.getStatus());
|
||||
// planDO.setProduceTime(null);
|
||||
planMapper.updatePlanStatus(planId,PlanStatusEnum.NOCUTTING.getStatus(),getUserOrganId());
|
||||
|
||||
}
|
||||
|
||||
if(planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus()) && cutedBoardInfo.getCutedBoardNumber() > 0 && cutedBoardInfo.getCutedBoardNumber() < optimizeBoardModelDO.getBoardCount() ){
|
||||
planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
||||
planDO.setProduceTime(null);
|
||||
planMapper.updateById(planDO);
|
||||
// planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
||||
// planDO.setProduceTime(null);
|
||||
planMapper.updatePlanStatus(planId,PlanStatusEnum.OPENING.getStatus(),getUserOrganId());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -349,46 +362,48 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean endCutting(Long planId) {
|
||||
PlanDO planDO = planMapper.selectById(planId);
|
||||
if (Objects.isNull(planDO)) {
|
||||
throw exception(PLAN_NOT_EXISTS);
|
||||
}
|
||||
planMapper.updateById(PlanDO.builder()
|
||||
.id(planId)
|
||||
.status(PlanStatusEnum.OPENED.getStatus())
|
||||
.produceTime(LocalDateTime.now())
|
||||
.build());
|
||||
|
||||
LoginUser loginUser = getLoginUser();
|
||||
List<ProcessDTO> userProcess = processApi.getUserProcess(loginUser.getId());
|
||||
|
||||
if(!userProcess.isEmpty()) {
|
||||
|
||||
List<Long> processStepIds = new ArrayList<>();
|
||||
|
||||
List<Long> orderIds = JSON.parseArray(planDO.getOrderNos()).toJavaList(Long.class);
|
||||
|
||||
List<ProcessStepDO> processStepDOS = processStepMapper.selectOrderList(orderIds, getUserOrganId());
|
||||
|
||||
|
||||
for (ProcessDTO process : userProcess) {
|
||||
processStepIds.addAll(processStepDOS.stream().filter(f -> Objects.equals(f.getProcessinfoId(), process.getId()))
|
||||
.map(ProcessStepDO::getId).toList());
|
||||
}
|
||||
|
||||
|
||||
if(!processStepIds.isEmpty()) {
|
||||
|
||||
List<ProcessStepSalaryIds> processStepSalaryIds = calculateSalary(processStepIds);
|
||||
|
||||
// 修改生产明细表和步骤表的工序状态
|
||||
processStepMapper.updateStatus(processStepSalaryIds, loginUser.getNickname());
|
||||
|
||||
processStepItemMapper.updateStatus(processStepIds);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
// 目前结束开料已去掉,所以这些代码先注释,后面如果加再修改逻辑
|
||||
//
|
||||
// PlanDO planDO = planMapper.selectById(planId);
|
||||
// if (Objects.isNull(planDO)) {
|
||||
// throw exception(PLAN_NOT_EXISTS);
|
||||
// }
|
||||
// planMapper.updateById(PlanDO.builder()
|
||||
// .id(planId)
|
||||
// .status(PlanStatusEnum.OPENED.getStatus())
|
||||
// .produceTime(LocalDateTime.now())
|
||||
// .build());
|
||||
//
|
||||
// LoginUser loginUser = getLoginUser();
|
||||
// List<ProcessDTO> userProcess = processApi.getUserProcess(loginUser.getId());
|
||||
//
|
||||
// if(!userProcess.isEmpty()) {
|
||||
//
|
||||
// List<Long> processStepIds = new ArrayList<>();
|
||||
//
|
||||
// List<Long> orderIds = JSON.parseArray(planDO.getOrderNos()).toJavaList(Long.class);
|
||||
//
|
||||
// List<ProcessStepDO> processStepDOS = processStepMapper.selectOrderList(orderIds, getUserOrganId());
|
||||
//
|
||||
//
|
||||
// for (ProcessDTO process : userProcess) {
|
||||
// processStepIds.addAll(processStepDOS.stream().filter(f -> Objects.equals(f.getProcessinfoId(), process.getId()))
|
||||
// .map(ProcessStepDO::getId).toList());
|
||||
// }
|
||||
//
|
||||
//
|
||||
// if(!processStepIds.isEmpty()) {
|
||||
//
|
||||
// List<ProcessStepSalaryIds> processStepSalaryIds = calculateSalary(processStepIds);
|
||||
//
|
||||
// // 修改生产明细表和步骤表的工序状态
|
||||
// processStepMapper.updateStatus(processStepSalaryIds, loginUser.getNickname());
|
||||
//
|
||||
// processStepItemMapper.updateStatus(processStepIds);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
return Boolean.TRUE;
|
||||
@@ -503,6 +518,10 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(Collections.singletonList(orderId), getUserOrganId());
|
||||
|
||||
|
||||
// 查询生产单对应的配件的ES信息
|
||||
List<OrderPartsRemark> orderPartsRemarks = buildOrderPartsByOrderId(Collections.singletonList(orderId), ORDER_PARTS_REMARK_MODEL, printOrderPartsRespVOS.size());
|
||||
|
||||
|
||||
// 查询生产单对应的包裹信息
|
||||
List<PrintOrderPackReqVO> printOrderPackReqVOS = plateMapper.selectOrderPackList(orderId,getUserOrganId());
|
||||
|
||||
@@ -514,14 +533,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
.forEach(f->f.setPackNum(printOrderPackReqVOS.stream().filter(e -> e.getOrderId().equals(orderId)).map(PrintOrderPackReqVO::getPackId).toList().size()));
|
||||
|
||||
|
||||
// orderSource.setOrderList(Collections.singletonList(orderDO));
|
||||
// orderSource.setPlateList(plateDOS);
|
||||
// orderSource.setGoodsList(goodsDOS);
|
||||
// orderSource.setPlateModels(orderModelDOS);
|
||||
// orderSource.setOptimizeBoardModelDOS(optimizeBoardModelDOS);
|
||||
// orderSource.setOrderPartsRespVOS(printOrderPartsRespVOS);
|
||||
// orderSource.setOrderPackReqVOS(printOrderPackReqVOS);
|
||||
|
||||
return OrderSource.builder()
|
||||
.orderList(Collections.singletonList(orderDO))
|
||||
.goodsList(goodsDOS)
|
||||
@@ -529,6 +540,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
.plateModels(orderModelDOS)
|
||||
.optimizeBoardModelDOS(optimizeBoardModelDOS)
|
||||
.orderPartsRespVOS(printOrderPartsRespVOS)
|
||||
.orderPartsRemarks(orderPartsRemarks)
|
||||
.orderPackReqVOS(printOrderPackReqVOS)
|
||||
.build();
|
||||
|
||||
@@ -607,6 +619,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
// 查询生产单对应的配件信息
|
||||
List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId());
|
||||
|
||||
// 查询生产单对应的配件的ES信息
|
||||
List<OrderPartsRemark> orderPartsRemarks = buildOrderPartsByOrderId(orderIds, ORDER_PARTS_REMARK_MODEL, printOrderPartsRespVOS.size());
|
||||
|
||||
// 查询生产单对应的包裹信息
|
||||
List<PrintOrderPackReqVO> printOrderPackReqVOS = plateMapper.selectPlanPackList(ids,getUserOrganId());
|
||||
|
||||
@@ -631,6 +646,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
.optimizeBoardModelDOS(optimizeBoardModelDOS)
|
||||
.optimizeRemainPlates(optimizeRemainPlates)
|
||||
.orderPartsRespVOS(printOrderPartsRespVOS)
|
||||
.orderPartsRemarks(orderPartsRemarks)
|
||||
.orderPackReqVOS(printOrderPackReqVOS)
|
||||
.build();
|
||||
}
|
||||
@@ -707,7 +723,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
// 保存优化后的大板数据
|
||||
batchSaveBoardModel(req.getOptimizeBoardModelDOS());
|
||||
|
||||
List<GoodsDO> goodsDOS = goodsMapper.selectPlanGoodsListByPlanIdList(planIds, getUserOrganId());
|
||||
List<GoodsDO> goodsDOS = goodsMapper.selectPlanGoodsListByPlanIdList(null,planIds, getUserOrganId());
|
||||
|
||||
List<Long> ids = goodsDOS.stream().map(GoodsDO::getId).distinct().toList();
|
||||
|
||||
@@ -943,6 +959,30 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
}
|
||||
|
||||
|
||||
public List<OrderPartsRemark> buildOrderPartsByOrderId(List<Long> orderIds, String index, Integer size) {
|
||||
List<FieldValue> fieldValues = orderIds.stream().map(FieldValue::of).toList();
|
||||
SearchRequest.Builder builder = new SearchRequest.Builder();
|
||||
builder.index(index);
|
||||
builder.size(size);
|
||||
builder.query(q -> q.terms(b -> b.field("orderId").terms(e -> e.value(fieldValues))));
|
||||
try {
|
||||
SearchResponse<OrderPartsRemark> search = elasticsearchClient.search(builder.build(), OrderPartsRemark.class);
|
||||
List<Hit<OrderPartsRemark>> hits = search.hits().hits();
|
||||
if (CollectionUtil.isNotEmpty(hits)) {
|
||||
return hits.stream().map(Hit::source).collect(Collectors.toList());
|
||||
}
|
||||
return new ArrayList<>();
|
||||
} catch (IOException e) {
|
||||
log.error(e.getMessage());
|
||||
throw new ServiceException(INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public void deleteByPlanId(List<Long> planIds, String index) {
|
||||
List<FieldValue> fieldValues = planIds.stream().map(FieldValue::of).toList();
|
||||
|
||||
|
||||
+106
-97
@@ -58,8 +58,10 @@ import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.ExcelTy
|
||||
import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.OrderPlateImportExcelVO;
|
||||
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.VO.OrderXmlVO;
|
||||
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.XmlTypeRealize;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -259,7 +261,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateDeleteBody(Long orderId, Set<Long> roomIds, Long bodyId, Integer status) { // 要删除传1,还原传0
|
||||
// 判断生产单的状态和生产单柜体对应的板擦是否已开料
|
||||
List<Long> planIds = validateOrderStatus(orderId, roomIds, bodyId, getUserOrganId(), OrderDeletedEnum.NOT_DELETED.getStatus());
|
||||
List<Long> planIds = validateOrderStatus(orderId, roomIds, bodyId, getUserOrganId());
|
||||
|
||||
List<Long> bodyIds = new ArrayList<>();
|
||||
Integer index = status == 1 ? 0 : 1;
|
||||
@@ -274,6 +276,8 @@ public class OrderServiceImpl implements OrderService {
|
||||
if (bodyIds.size() != 0){
|
||||
|
||||
List<PlateDO> plateDOList = plateMapper.selectPlateTypeByRoomId(orderId, bodyIds, getUserOrganId(), index);
|
||||
|
||||
|
||||
List<Long> plateIds = plateDOList.stream().map(PlateDO::getId).toList();
|
||||
|
||||
List<Long> goodsIds = plateDOList.stream().map(PlateDO::getGoodsId).distinct().toList();
|
||||
@@ -284,63 +288,60 @@ public class OrderServiceImpl implements OrderService {
|
||||
|
||||
if (!plateDOList.isEmpty()) {
|
||||
plateMapper.updateDeletedById(plateIds, status, getUserOrganId(), orderId);// 删小板
|
||||
}
|
||||
|
||||
// 删除包裹,只需删除,无需还原
|
||||
List<Long> packIds = orderItemMapper.selectPackId(orderId,bodyIds, getUserOrganId()).stream().map(OrderItemDO::getPackageId).distinct().toList();
|
||||
|
||||
// 删除包裹,只需删除,无需还原
|
||||
List<Long> packIds = orderItemMapper.selectPackId(bodyIds, getUserOrganId()).stream().map(OrderItemDO::getPackageId).distinct().toList();
|
||||
orderPackageMapper.updatePackList(orderId, packIds, getUserOrganId());
|
||||
|
||||
orderPackageMapper.updatePackList(orderId, packIds, getUserOrganId());
|
||||
orderItemMapper.deletePackList(orderId, packIds, getUserOrganId());
|
||||
|
||||
orderItemMapper.deletePackList(orderId, packIds, getUserOrganId());
|
||||
orderPrepackagedMapper.deletePacked(orderId, getUserOrganId());
|
||||
|
||||
orderPrepackagedMapper.deletePacked(orderId,getUserOrganId());
|
||||
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatusList(orderId, getUserOrganId());
|
||||
|
||||
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatusList(orderId, getUserOrganId());
|
||||
if (orderPackageDOS.isEmpty()) {
|
||||
|
||||
if(orderPackageDOS.isEmpty()){
|
||||
OrderDO orderDO = orderMapper.selectById(orderId);
|
||||
|
||||
OrderDO orderDO = orderMapper.selectById(orderId);
|
||||
orderDO.setPackaged(OrderPackageStatusEnum.UNPACKED.getStatus());
|
||||
|
||||
orderDO.setPackaged(OrderPackageStatusEnum.UNPACKED.getStatus());
|
||||
orderMapper.updateById(orderDO);
|
||||
|
||||
orderMapper.updateById(orderDO);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 删除大板
|
||||
List<PlateDO> goodsList = plateMapper.selectPlateDeletedStatus(orderId, goodsIds, getUserOrganId());
|
||||
|
||||
List<Long> goodsIdList = goodsList.stream().map(PlateDO::getGoodsId).distinct().toList();
|
||||
|
||||
List<Long> goodsIdDeleted = Stream.concat(
|
||||
goodsIds.stream().filter(str -> !goodsIdList.contains(str)),
|
||||
goodsIdList.stream().filter(str -> !goodsIds.contains(str)))
|
||||
.toList();
|
||||
|
||||
if (goodsIdDeleted.size() > 0) {
|
||||
|
||||
goodsMapper.updateDeletedById(goodsIdDeleted, status, getUserOrganId());
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(!planIds.isEmpty()) {
|
||||
// 判断删除的柜体对应的板材是否和排单板材一样
|
||||
List<GoodsDO> goodsDOS = goodsMapper.selectPlanGoodsListByPlanIdList(planIds, getUserOrganId());
|
||||
|
||||
// 一样,同时删除排单的信息
|
||||
if(goodsDOS.isEmpty() && status.equals(1)){
|
||||
planService.deletePlan(planIds);
|
||||
}
|
||||
|
||||
// 只要有排单,不管删除的柜体的板材数和排单数一样,都要删除排单对应的优化数据(不用这种写法进行删除时,有时会报错,原因目前还没找到)
|
||||
planService.deleteByPlanId(planIds, ORDER_REMAIN_PLATE_MODEL);
|
||||
|
||||
// 删除大板
|
||||
List<PlateDO> goodsList = plateMapper.selectPlateDeletedStatus(orderId, goodsIds, getUserOrganId());
|
||||
|
||||
List<Long> goodsIdList = goodsList.stream().map(PlateDO::getGoodsId).distinct().toList();
|
||||
|
||||
List<Long> goodsIdDeleted = Stream.concat(
|
||||
goodsIds.stream().filter(str -> !goodsIdList.contains(str)),
|
||||
goodsIdList.stream().filter(str -> !goodsIds.contains(str)))
|
||||
.toList();
|
||||
|
||||
if (goodsIdDeleted.size() > 0) {
|
||||
|
||||
goodsMapper.updateDeletedById(orderId,goodsIdDeleted, status, getUserOrganId());
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (!planIds.isEmpty()) {
|
||||
// 判断删除的柜体对应的板材是否和排单板材一样
|
||||
List<GoodsDO> goodsDOS = goodsMapper.selectPlanGoodsListByPlanIdList(null,planIds, getUserOrganId());
|
||||
|
||||
// 一样,同时删除排单的信息
|
||||
if (goodsDOS.isEmpty()) {
|
||||
planService.deletePlan(planIds);
|
||||
} else {
|
||||
// 只要有排单,不管删除的柜体的板材数和排单数一样,都要删除排单对应的优化数据(不用这种写法进行删除时,有时会报错,原因目前还没找到)
|
||||
planService.deleteByPlanId(planIds, ORDER_REMAIN_PLATE_MODEL);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
List<Long> partsList = orderPartsMapper.selectPartsIdListByBodyId(bodyIds, getUserOrganId(), orderId); // 配件
|
||||
if (partsList != null && partsList.size() != 0){
|
||||
orderPartsMapper.updateDeletedById(partsList, status, getUserOrganId());
|
||||
@@ -349,7 +350,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
|
||||
|
||||
// 生产单柜体数量判断
|
||||
if (orderBodyMapper.selectCountByOrderId(orderId, getUserOrganId(), OrderDeletedEnum.NOT_DELETED.getStatus()) == 0) {
|
||||
if (orderBodyMapper.selectCountByOrderId(orderId, getUserOrganId(), OrderDeletedEnum.NOT_DELETED.getStatus()) == 0 ) {
|
||||
orderMapper.updateOrderStatus(orderId, OrderStatusEnum.EMPTY.getStatus(), getUserOrganId());
|
||||
}else {
|
||||
orderMapper.updateOrderStatus(orderId, OrderStatusEnum.NEW_ORDER.getStatus(), getUserOrganId());
|
||||
@@ -391,67 +392,67 @@ public class OrderServiceImpl implements OrderService {
|
||||
// 小板还原
|
||||
if (!plateDOList.isEmpty()) {
|
||||
plateMapper.updateDeletedById(plateIds, status, getUserOrganId(), orderId);
|
||||
}
|
||||
|
||||
// 还原大板
|
||||
List<GoodsDO> goodsDOS = goodsMapper.selectGoodsListByStatus(orderId, goodsIds, getUserOrganId());
|
||||
if(!goodsDOS.isEmpty()){
|
||||
goodsMapper.updateBatch(goodsDOS.stream().map(m -> m.setDeleted(false)).toList());
|
||||
}
|
||||
|
||||
|
||||
// 当大板对应的小板已经排单时,新建相同类型的大板,并将其他未排单的小板对应的大板ID修改为新的大板ID
|
||||
List<GoodsDO> goodsDOList = goodsMapper.selectNoPlanGoodsList(orderId, goodsIds, getUserOrganId());
|
||||
|
||||
List<GoodsDO> goodsList = BeanUtils.toBean(goodsDOList, GoodsDO.class);
|
||||
|
||||
if(!goodsDOList.isEmpty()){
|
||||
|
||||
// 新增的大板信息
|
||||
List<GoodsDO> list = goodsDOList.stream()
|
||||
.peek(m -> {
|
||||
m.setId(null);
|
||||
m.setPlanId(0L);
|
||||
m.setCreateTime(LocalDateTime.now());
|
||||
m.setUpdateTime(LocalDateTime.now());
|
||||
})
|
||||
.toList();
|
||||
|
||||
goodsMapper.insertBatch(list);
|
||||
|
||||
// 构建新的数据集,保存新的大板ID和旧的大板ID,大板的实际ID关联这两个信息
|
||||
List<OrderGoodsIds> orderGoodsIds = BeanUtils.toBean(list, OrderGoodsIds.class);
|
||||
|
||||
List<OrderGoodsIds> orderGoodsIdsList = new ArrayList<>();
|
||||
|
||||
for (GoodsDO goodsDO : goodsList) {
|
||||
orderGoodsIdsList.addAll(orderGoodsIds.stream()
|
||||
.filter(f -> f.getGoodsId().equals(goodsDO.getGoodsId()))
|
||||
// .filter(a -> a.getOldId() == null)
|
||||
.map(m -> m.setOldId(goodsDO.getId())).toList());
|
||||
|
||||
// 还原大板
|
||||
List<GoodsDO> goodsDOS = goodsMapper.selectGoodsListByStatus(orderId, goodsIds, getUserOrganId());
|
||||
if (!goodsDOS.isEmpty()) {
|
||||
goodsMapper.updateBatch(goodsDOS.stream().map(m -> m.setDeleted(false)).toList());
|
||||
}
|
||||
|
||||
// 需要修改的小板为未排单的部分,无论其是否删除,都需要修改,但只需修改大板ID即可,其他信息无需修改
|
||||
List<PlateDO> plateDOS = plateMapper.selectNoPlanPlate(orderId, goodsIds, getUserOrganId());
|
||||
|
||||
List<PlateDO> plateList = new ArrayList<>();
|
||||
// 当大板对应的小板已经排单时,新建相同类型的大板,并将其他未排单的小板对应的大板ID修改为新的大板ID
|
||||
List<GoodsDO> goodsDOList = goodsMapper.selectNoPlanGoodsList(orderId, goodsIds, getUserOrganId());
|
||||
|
||||
for (OrderGoodsIds ids : orderGoodsIdsList) {
|
||||
List<GoodsDO> goodsList = BeanUtils.toBean(goodsDOList, GoodsDO.class);
|
||||
|
||||
plateList.addAll(plateDOS.stream()
|
||||
.filter(f->f.getGoodsId().equals(ids.getOldId()))
|
||||
.peek(m->{
|
||||
m.setGoodsId(ids.getId());
|
||||
if (!goodsDOList.isEmpty()) {
|
||||
|
||||
// 新增的大板信息
|
||||
List<GoodsDO> list = goodsDOList.stream()
|
||||
.peek(m -> {
|
||||
m.setId(null);
|
||||
m.setPlanId(0L);
|
||||
m.setCreateTime(LocalDateTime.now());
|
||||
m.setUpdateTime(LocalDateTime.now());
|
||||
})
|
||||
.toList());
|
||||
.toList();
|
||||
|
||||
goodsMapper.insertBatch(list);
|
||||
|
||||
// 构建新的数据集,保存新的大板ID和旧的大板ID,大板的实际ID关联这两个信息
|
||||
List<OrderGoodsIds> orderGoodsIds = BeanUtils.toBean(list, OrderGoodsIds.class);
|
||||
|
||||
List<OrderGoodsIds> orderGoodsIdsList = new ArrayList<>();
|
||||
|
||||
for (GoodsDO goodsDO : goodsList) {
|
||||
orderGoodsIdsList.addAll(orderGoodsIds.stream()
|
||||
.filter(f -> f.getGoodsId().equals(goodsDO.getGoodsId()))
|
||||
// .filter(a -> a.getOldId() == null)
|
||||
.map(m -> m.setOldId(goodsDO.getId())).toList());
|
||||
|
||||
}
|
||||
|
||||
// 需要修改的小板为未排单的部分,无论其是否删除,都需要修改,但只需修改大板ID即可,其他信息无需修改
|
||||
List<PlateDO> plateDOS = plateMapper.selectNoPlanPlate(orderId, goodsIds, getUserOrganId());
|
||||
|
||||
List<PlateDO> plateList = new ArrayList<>();
|
||||
|
||||
for (OrderGoodsIds ids : orderGoodsIdsList) {
|
||||
|
||||
plateList.addAll(plateDOS.stream()
|
||||
.filter(f -> f.getGoodsId().equals(ids.getOldId()))
|
||||
.peek(m -> {
|
||||
m.setGoodsId(ids.getId());
|
||||
})
|
||||
.toList());
|
||||
}
|
||||
|
||||
plateMapper.updateBatch(plateList);
|
||||
|
||||
}
|
||||
|
||||
plateMapper.updateBatch(plateList);
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<Long> partsList = orderPartsMapper.selectPartsIdListByBodyId(bodyIds, getUserOrganId(), orderId); // 配件
|
||||
if (partsList != null && partsList.size() != 0){
|
||||
orderPartsMapper.updateDeletedById(partsList, status, getUserOrganId());
|
||||
@@ -586,6 +587,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
@Override
|
||||
public void exportTemplate(HttpServletResponse response, String value) {
|
||||
// 根据type获取文件名称
|
||||
InputStream fis = null;
|
||||
try {
|
||||
// path是指想要下载的文件的路径
|
||||
File file = new File(getSavePath() + File.separator + value);
|
||||
@@ -596,7 +598,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
|
||||
// 将文件写入输入流
|
||||
FileInputStream fileInputStream = new FileInputStream(file);
|
||||
InputStream fis = new BufferedInputStream(fileInputStream);
|
||||
fis = new BufferedInputStream(fileInputStream);
|
||||
byte[] buffer = new byte[fis.available()];
|
||||
fis.read(buffer);
|
||||
fis.close();
|
||||
@@ -611,6 +613,8 @@ public class OrderServiceImpl implements OrderService {
|
||||
outputStream.flush();
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
} finally {
|
||||
IOUtils.closeQuietly(fis);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -917,15 +921,20 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
|
||||
// 判断生产单状态是否符合(如果已开料,不允许删除)
|
||||
private List<Long> validateOrderStatus(Long orderId,Set<Long> roomIds, Long bodyId, Long organId, Integer status) {
|
||||
private List<Long> validateOrderStatus(Long orderId,Set<Long> roomIds, Long bodyId, Long organId) {
|
||||
// 校验存在
|
||||
OrderDO orderDO = orderMapper.selectOrderOne(orderId, organId);
|
||||
if (orderDO == null)
|
||||
throw exception(ORDER_NOT_EXISTS);
|
||||
|
||||
|
||||
if (ObjectUtils.isEmpty(roomIds) && ObjectUtils.isEmpty(bodyId)) {
|
||||
throw exception(ORDER_ERROR);
|
||||
}
|
||||
|
||||
// 判断小板是否已开料,已开料不允许删除
|
||||
List<Long> planIds = goodsMapper.selectPlanOrderList(orderId, roomIds, bodyId, organId);
|
||||
if(!planIds.isEmpty() && status.equals(1)) {
|
||||
if(!planIds.isEmpty()) {
|
||||
|
||||
List<PlanDO> planDOS = planMapper.selectPlanStatus(planIds, organId);
|
||||
|
||||
|
||||
+36
-25
@@ -11,7 +11,6 @@ import co.elastic.clients.elasticsearch._types.aggregations.CalendarInterval;
|
||||
import co.elastic.clients.elasticsearch._types.aggregations.DateHistogramAggregation;
|
||||
import co.elastic.clients.elasticsearch.core.SearchRequest;
|
||||
import co.elastic.clients.elasticsearch.core.SearchResponse;
|
||||
import co.elastic.clients.json.JsonData;
|
||||
import co.elastic.clients.util.NamedValue;
|
||||
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
@@ -86,6 +85,7 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService {
|
||||
private static final String ORDER_REMAIN_PLATE_MODEL_CREATE_TIME_FIELDNAME = "createTime";
|
||||
private static final String ORDER_REMAIN_PLATE_MODEL_GOODS_GROUP_NAME = "goods_group";
|
||||
private static final String ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME = "goods_count";
|
||||
private static final String ORDER_REMAIN_PLATE_MODEL_DATE_GROUP_NAME = "date_group";
|
||||
private static final String DATE_TIME_FORMATTER_PATTERN_YEAR_MONTH = "yyyy-M";
|
||||
private static final String DATE_TIME_FORMATTER_PATTERN_YEAR_MONTH_DAY = "yyyy-M-d";
|
||||
private static final String ORDER_REMAIN_PLATE_MODEL_GOODS_ID_NAME = "goodsId";
|
||||
@@ -427,10 +427,12 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService {
|
||||
SearchRequest searchRequest = new SearchRequest.Builder()
|
||||
.size(0)
|
||||
.index(OptimizePlanService.ORDER_REMAIN_PLATE_MODEL)
|
||||
.query(q -> q.range(r -> r.field(ORDER_REMAIN_PLATE_MODEL_CREATE_TIME_FIELDNAME)
|
||||
.gte(JsonData.of(reqVO.getCreateTime()[0].format(dateTimeFormatter)))
|
||||
.lte(JsonData.of(reqVO.getCreateTime()[1].format(dateTimeFormatter))))
|
||||
)
|
||||
.query(q ->
|
||||
q.bool(b -> b
|
||||
.must(m -> m.range(m1 -> m1.field(ORDER_REMAIN_PLATE_MODEL_CREATE_TIME_FIELDNAME)
|
||||
.from(reqVO.getCreateTime()[0].format(dateTimeFormatter))
|
||||
.to(reqVO.getCreateTime()[1].format(dateTimeFormatter))))
|
||||
.must(m -> m.match(m2 -> m2.field("organId").query(SecurityFrameworkUtils.getUserOrganId())))))
|
||||
.aggregations(ORDER_REMAIN_PLATE_MODEL_GOODS_GROUP_NAME,
|
||||
agg -> agg.terms(terms -> terms.field(ORDER_REMAIN_PLATE_MODEL_GOODS_ID_NAME).size(10).order(new NamedValue<>(ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME, SortOrder.Desc)))
|
||||
.aggregations(ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME, sumAgg -> sumAgg.sum(sum -> sum.field("boardCount")))
|
||||
@@ -456,16 +458,20 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService {
|
||||
SearchRequest dateGroupRequest = new SearchRequest.Builder()
|
||||
.size(0)
|
||||
.index(OptimizePlanService.ORDER_REMAIN_PLATE_MODEL)
|
||||
.query(q -> q.range(r -> r.field(ORDER_REMAIN_PLATE_MODEL_CREATE_TIME_FIELDNAME)
|
||||
.gte(JsonData.of(reqVO.getCreateTime()[0].format(dateTimeFormatter)))
|
||||
.lte(JsonData.of(reqVO.getCreateTime()[1].format(dateTimeFormatter))))
|
||||
.query(q ->
|
||||
q.bool(b -> b
|
||||
.must(m -> m.range(m1 -> m1.field(ORDER_REMAIN_PLATE_MODEL_CREATE_TIME_FIELDNAME)
|
||||
.from(reqVO.getCreateTime()[0].format(dateTimeFormatter))
|
||||
.to(reqVO.getCreateTime()[1].format(dateTimeFormatter))))
|
||||
.must(m -> m.match(m2 -> m2.field("organId").query(SecurityFrameworkUtils.getUserOrganId())))
|
||||
.must(m -> m.bool(m3 -> m3.must(t -> t.terms(gi -> gi.field(ORDER_REMAIN_PLATE_MODEL_GOODS_ID_NAME).terms(tv -> tv.value(goodsIdFieldValueList))))))
|
||||
)
|
||||
)
|
||||
.query(q -> q.bool(b -> b.must(m -> m.terms(t -> t.field(ORDER_REMAIN_PLATE_MODEL_GOODS_ID_NAME).terms(tv -> tv.value(goodsIdFieldValueList))))))
|
||||
.query(q -> q.match(m -> m.field("organId").query(SecurityFrameworkUtils.getUserOrganId())))
|
||||
.aggregations(ORDER_REMAIN_PLATE_MODEL_GOODS_GROUP_NAME,
|
||||
agg -> agg.terms(terms -> terms.field(ORDER_REMAIN_PLATE_MODEL_GOODS_ID_NAME).order(new NamedValue<>(ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME, SortOrder.Desc)))
|
||||
.aggregations("date_group", dateAgg -> dateAgg.dateHistogram(date -> getDateHistogram(unit, date.field(ORDER_REMAIN_PLATE_MODEL_CREATE_TIME_FIELDNAME))))
|
||||
.aggregations(ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME, sumAgg -> sumAgg.sum(sum -> sum.field("boardCount")))
|
||||
.aggregations(ORDER_REMAIN_PLATE_MODEL_GOODS_GROUP_NAME, agg ->
|
||||
agg.terms(terms -> terms.field(ORDER_REMAIN_PLATE_MODEL_GOODS_ID_NAME))
|
||||
.aggregations(ORDER_REMAIN_PLATE_MODEL_DATE_GROUP_NAME, dateAgg -> dateAgg.dateHistogram(date -> getDateHistogram(unit, date.field(ORDER_REMAIN_PLATE_MODEL_CREATE_TIME_FIELDNAME)))
|
||||
.aggregations(ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME, sumAgg -> sumAgg.sum(sum -> sum.field("boardCount")))
|
||||
)
|
||||
)
|
||||
.build();
|
||||
response = client.search(dateGroupRequest, Map.class);
|
||||
@@ -475,17 +481,22 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService {
|
||||
|
||||
goodsDateAgg.sterms().buckets().array().forEach(goodsDateAggBucket -> {
|
||||
// todo 目前没有发现好的es统计月周的方式,先把年月日查出来转周,后续优化
|
||||
String dateStr = dateToWeekMonth(goodsDateAggBucket.aggregations().get("date_group").dateHistogram().buckets().array().get(0).keyAsString(), unit);
|
||||
double goodsCount = goodsDateAggBucket.aggregations().get(ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME).sum().value();
|
||||
OrderGoodsPlateRespVO vo = OrderGoodsPlateRespVO.builder().goodsId(goodsDateAggBucket.key().stringValue()).orderDate(dateStr).orderCount((int) goodsCount).build();
|
||||
List<OrderGoodsPlateRespVO> orderGoodsPlateRespVOS = goodsDateGroupMap.get(dateStr);
|
||||
if (ObjectUtil.isNotNull(orderGoodsPlateRespVOS)) {
|
||||
orderGoodsPlateRespVOS.add(vo);
|
||||
} else {
|
||||
ArrayList<OrderGoodsPlateRespVO> goodsPlateRespVOS = new ArrayList<>();
|
||||
goodsPlateRespVOS.add(vo);
|
||||
goodsDateGroupMap.put(dateStr, goodsPlateRespVOS);
|
||||
}
|
||||
goodsDateAggBucket.aggregations().get(ORDER_REMAIN_PLATE_MODEL_DATE_GROUP_NAME).dateHistogram().buckets().array().forEach(dateHistogramBucket -> {
|
||||
// 时间轴
|
||||
String dateStr = dateToWeekMonth(dateHistogramBucket.keyAsString(), unit);
|
||||
// 时间轴下的boardCount
|
||||
double goodsCount = dateHistogramBucket.aggregations().get(ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME).sum().value();
|
||||
// goodsid+数量存入map,key:时间轴
|
||||
List<OrderGoodsPlateRespVO> orderGoodsPlateRespVOS = goodsDateGroupMap.get(dateStr);
|
||||
OrderGoodsPlateRespVO vo = OrderGoodsPlateRespVO.builder().goodsId(goodsDateAggBucket.key().stringValue()).orderDate(dateStr).orderCount((int) goodsCount).build();
|
||||
if (ObjectUtil.isNotNull(orderGoodsPlateRespVOS)) {
|
||||
orderGoodsPlateRespVOS.add(vo);
|
||||
} else {
|
||||
ArrayList<OrderGoodsPlateRespVO> goodsPlateRespVOS = new ArrayList<>();
|
||||
goodsPlateRespVOS.add(vo);
|
||||
goodsDateGroupMap.put(dateStr, goodsPlateRespVOS);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
-1
@@ -61,7 +61,6 @@ public interface PlanService {
|
||||
|
||||
PageResult<OrderGoodsResp> getOrderGoodsPage(OrderPageReqVOCopy pageReqVO);
|
||||
|
||||
List<PlatePage> getNotPlanPlateListPage(PlateReqPageVO pageVO);
|
||||
|
||||
Boolean addPlate(AddPlateReq req);
|
||||
|
||||
|
||||
+31
-36
@@ -151,7 +151,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
orderIdList.addAll(orderIds);
|
||||
|
||||
// 创建计划
|
||||
// 创建排单
|
||||
PlanDO plan = BeanUtils.toBean(createReqVO, PlanDO.class);
|
||||
plan.setId(identifierGenerator.nextId(plan).longValue());
|
||||
plan.setSort(0L);
|
||||
@@ -191,7 +191,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
public void updatePlan(PlanSaveReqVO updateReqVO) {
|
||||
|
||||
// 校验排单是否存在,是否开料
|
||||
validatePlanExists(updateReqVO.getId());
|
||||
Long machineId = validatePlanExists(updateReqVO.getId());
|
||||
|
||||
// 更新
|
||||
PlanDO plan = BeanUtils.toBean(updateReqVO, PlanDO.class);
|
||||
@@ -243,6 +243,12 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
}
|
||||
|
||||
if(!machineId.equals(plan.getMachineId())){
|
||||
|
||||
deleteByPlanId(Collections.singletonList(plan.getId()),ORDER_REMAIN_PLATE_MODEL);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
planMapper.updateById(plan);
|
||||
@@ -322,7 +328,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
List<Long> orderIds = new ArrayList<>();
|
||||
for (PlanDO planDO : planDOS) {
|
||||
|
||||
orderIds.addAll(JSON.parseArray(planDO.getOrderNos()).toJavaList(Long.class));
|
||||
orderIds.addAll(JSON.parseArray(planDO.getOrderNos()).toJavaList(Long.class).stream().distinct().toList());
|
||||
|
||||
}
|
||||
|
||||
@@ -331,44 +337,45 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
remainPlateMapper.deletePlanRemainPlate(ids,getUserOrganId());
|
||||
|
||||
List<Long> goodsIdList = goodsMapper.selectPlanGoodsListByPlanIdList(orderIds,ids, getUserOrganId()).stream().map(GoodsDO::getId).toList();
|
||||
|
||||
// 排单对应的自增板的删除 todo 目前值解决了非混单的情况
|
||||
List<OptimizeBoardModelDO> boardModelDOS = buildBoardByPlanIds(ids, ORDER_REMAIN_PLATE_MODEL, ids.size());
|
||||
if(!boardModelDOS.isEmpty()) {
|
||||
if(!goodsIdList.isEmpty()) {
|
||||
// 修改删除的大板对应的小板为未优化
|
||||
plateMapper.updateNoPlateOptimized(orderIds, goodsIdList, getUserOrganId());
|
||||
|
||||
|
||||
List<Long> goodsIdList = goodsMapper.selectPlanGoodsListByPlanIdList(ids, getUserOrganId()).stream().map(GoodsDO::getId).toList();
|
||||
|
||||
if(!goodsIdList.isEmpty()) {
|
||||
// 修改删除的大板对应的小板为未优化
|
||||
plateMapper.updateNoPlateOptimized(orderIds, goodsIdList, getUserOrganId());
|
||||
}
|
||||
|
||||
List<PlateDO> plateDOS = plateMapper.selectPlateIdList(orderIds,goodsIdList, getUserOrganId());
|
||||
if(!plateDOS.isEmpty()) {
|
||||
List<PlateDO> plateDOS = plateMapper.selectPlateIdList(orderIds, goodsIdList, getUserOrganId());
|
||||
if (!plateDOS.isEmpty()) {
|
||||
List<Long> plateIds = plateDOS.stream().map(PlateDO::getId).toList();
|
||||
|
||||
plateMapper.deleteBatchIds(plateIds);
|
||||
|
||||
orderItemMapper.delete(new LambdaQueryWrapperX<OrderItemDO>().in(OrderItemDO::getPlateId, plateIds));
|
||||
orderItemMapper.delete(new LambdaQueryWrapperX<OrderItemDO>()
|
||||
.eq(OrderItemDO::getOrganId, getUserOrganId())
|
||||
.in(OrderItemDO::getOrderId, orderIds)
|
||||
.in(OrderItemDO::getPlateId, plateIds));
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 排单对应的自增板的删除 todo 目前值解决了非混单的情况
|
||||
List<OptimizeBoardModelDO> boardModelDOS = buildBoardByPlanIds(ids, ORDER_REMAIN_PLATE_MODEL, ids.size());
|
||||
if(!boardModelDOS.isEmpty()) {
|
||||
// 删除排单对应的优化生产数据
|
||||
deleteByPlanId(ids, ORDER_REMAIN_PLATE_MODEL);
|
||||
|
||||
}
|
||||
|
||||
// 删除商品表里的 planId
|
||||
goodsMapper.deletePlanGoods(ids,getUserOrganId());
|
||||
goodsMapper.deletePlanGoods(orderIds,ids,getUserOrganId());
|
||||
|
||||
List<Long> orderIdList = new ArrayList<>();
|
||||
|
||||
List<Long> diff;
|
||||
|
||||
// 根据生产单ID查询ES的优化数据
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = optimizePlanService.buildBoardByOrderIds(orderIds, ORDER_REMAIN_PLATE_MODEL, 999);
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = optimizePlanService.buildBoardByOrderIds(orderIds, ORDER_REMAIN_PLATE_MODEL, 100);
|
||||
|
||||
if(optimizeBoardModelDOS.isEmpty()){
|
||||
|
||||
@@ -594,9 +601,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
.eqIfPresent("op.is_door", pageReqVO.getIsDoor())
|
||||
.betweenIfPresent("op.height", new BigDecimal[]{pageReqVO.getLongMinRang(), pageReqVO.getLongMaxRang()})
|
||||
.betweenIfPresent("op.width", new BigDecimal[]{pageReqVO.getWidthMinRang(), pageReqVO.getWidthMaxRang()})
|
||||
// .groupBy("o.id", " o.order_date", "o.delivery_date", "o.customer", "o.address", "o.custom_order_no","o.status")
|
||||
// .having("count(op.id) != 0")
|
||||
.orderByDesc("o.order_date");
|
||||
.orderByDesc("o.id");
|
||||
|
||||
String filterTypes = "";
|
||||
if (Objects.nonNull(pageReqVO.getHoleThrough()) && pageReqVO.getHoleThrough()) {
|
||||
@@ -631,7 +636,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
.in("order_id",orderIds)
|
||||
.eq("is_optimized",false)
|
||||
.inIfPresent("goods_id",goodsIds)
|
||||
.inIfPresent("id",pageReqVO.getIds())
|
||||
.inIfPresent("goods_id",pageReqVO.getIds())
|
||||
.eqIfPresent("is_special_shaped", pageReqVO.getRectangle() != null ? false: null)
|
||||
.eqIfPresent("is_special_shaped", pageReqVO.getSpecialShaped())
|
||||
.eqIfPresent("is_sculpt", pageReqVO.getSculpt())
|
||||
@@ -872,15 +877,6 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public List<PlatePage> getNotPlanPlateListPage(PlateReqPageVO pageVO) {
|
||||
|
||||
List<PlatePage> pageRes = plateMapper.selectPlatePage(/*page, */pageVO.getOrderId(),getUserOrganId()/*, pageVO.getGoodsId()*/);
|
||||
return pageRes;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean addPlate(AddPlateReq req) {
|
||||
@@ -1123,17 +1119,16 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
|
||||
|
||||
private void validatePlanExists(Long id) {
|
||||
private Long validatePlanExists(Long id) {
|
||||
PlanDO planDO = planMapper.selectById(id);
|
||||
// if ( planDO== null) {
|
||||
// throw exception(PLAN_NOT_EXISTS);
|
||||
// }
|
||||
|
||||
AssertUtils.notEmpty(planDO,PLAN_NOT_EXISTS);
|
||||
|
||||
if(planDO.getStatus().equals(PlanStatusEnum.OPENING.getStatus()) || planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){
|
||||
throw exception(LIST_CHANGES_ARE_PROHIBITED);
|
||||
}
|
||||
|
||||
return planDO.getMachineId();
|
||||
}
|
||||
|
||||
|
||||
|
||||
+3
-69
@@ -42,11 +42,12 @@
|
||||
<update id="updateDeletedById">
|
||||
UPDATE order_goods
|
||||
SET deleted = #{deleted},plan_id = 0
|
||||
WHERE id IN
|
||||
WHERE organ_id = #{organId}
|
||||
and order_id = #{orderId}
|
||||
and id IN
|
||||
<foreach item="id" collection="ids" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
AND organ_id = #{organId}
|
||||
</update>
|
||||
<delete id="deletedById">
|
||||
DELETE FROM order_goods
|
||||
@@ -87,29 +88,6 @@
|
||||
|
||||
|
||||
|
||||
<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">
|
||||
@@ -187,23 +165,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
<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">
|
||||
|
||||
@@ -256,18 +217,6 @@
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectNoPlanOrderList"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy">
|
||||
|
||||
|
||||
select distinct og.order_id as orderId,og.create_time as updateTime
|
||||
|
||||
from order_goods og
|
||||
left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id and og.deleted = op.deleted
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectPlateListByPlanId"
|
||||
@@ -361,21 +310,6 @@
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
<select id="selectOrderPlate"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy">
|
||||
|
||||
|
||||
|
||||
select distinct order_id,
|
||||
create_time as updateTime
|
||||
from order_goods
|
||||
where organ_id = #{organId}
|
||||
and deleted = false
|
||||
and plan_id = 0
|
||||
order by create_time;
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
+4
-4
@@ -45,7 +45,7 @@
|
||||
|
||||
from orders o
|
||||
join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id and og.plan_id = 0 and o.deleted = og.deleted
|
||||
join order_plate op on o.organ_id = op.organ_id and o.deleted = op.deleted and o.id = op.order_id and op.is_optimized = false
|
||||
join order_plate op on o.organ_id = op.organ_id and o.deleted = op.deleted and o.id = op.order_id and op.is_optimized = false and og.id = op.goods_id
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
@@ -219,6 +219,7 @@
|
||||
<result property="texture" column="texture"/>
|
||||
<result property="brand" column="brand"/>
|
||||
<result property="spec" column="spec"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
|
||||
<collection property="orderIds" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds" resultMap="OrderIdMap"/>
|
||||
@@ -239,8 +240,6 @@
|
||||
|
||||
select distinct
|
||||
|
||||
-- og.order_id as orderId,
|
||||
-- og.id as id,
|
||||
og.goods_id as goodsId,
|
||||
|
||||
og.goods_name,
|
||||
@@ -251,13 +250,14 @@
|
||||
og.width,
|
||||
og.height,
|
||||
og.brand,
|
||||
og.remark,
|
||||
og.spec
|
||||
|
||||
from orders o
|
||||
|
||||
join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id and og.plan_id = 0 and o.deleted = og.deleted
|
||||
|
||||
join order_plate op on o.organ_id = op.organ_id and o.deleted = op.deleted and o.id = op.order_id and op.is_optimized = false
|
||||
join order_plate op on o.organ_id = op.organ_id and o.deleted = op.deleted and o.id = op.order_id and op.is_optimized = false and og.id = op.goods_id
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
|
||||
-12
@@ -186,18 +186,6 @@
|
||||
</update>
|
||||
|
||||
|
||||
<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>
|
||||
+38
-10
@@ -87,19 +87,47 @@
|
||||
AND organ_id = #{organId}
|
||||
</delete>
|
||||
|
||||
<select id="selectPartList"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPartsRespVO">
|
||||
<resultMap id="OrderPartsMap" type="com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPartsRespVO">
|
||||
|
||||
select distinct oi.num as partsNum,
|
||||
<result property="partsNum" column="partsNum"/>
|
||||
<result property="bodyId" column="bodyId"/>
|
||||
<result property="roomId" column="roomId"/>
|
||||
<result property="bodyName" column="bodyName"/>
|
||||
<result property="roomName" column="roomName"/>
|
||||
<result property="id" column="id"/>
|
||||
<result property="spec" column="spec"/>
|
||||
<result property="brand" column="brand"/>
|
||||
<result property="factory" column="factory"/>
|
||||
<result property="model" column="model"/>
|
||||
<result property="name" column="name"/>
|
||||
<result property="orderId" column="orderId"/>
|
||||
<result property="type" column="type"/>
|
||||
|
||||
<collection property="groupId" ofType="java.lang.Long" column="groupId"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
|
||||
|
||||
<select id="selectPartList"
|
||||
parameterType="java.lang.Long"
|
||||
resultMap="OrderPartsMap">
|
||||
|
||||
select distinct oi.group_id as groupId,
|
||||
oi.num as partsNum,
|
||||
oi.body_id as bodyId,
|
||||
oi.room_id as roomId,
|
||||
ob.name as bodyName,
|
||||
ob.room_name as roomName,
|
||||
op.id,
|
||||
op.spec,
|
||||
op.brand,
|
||||
op.factory,
|
||||
op.model,
|
||||
op.name,
|
||||
op.order_id
|
||||
op.id as id,
|
||||
op.spec as spec,
|
||||
op.brand as brand,
|
||||
op.factory as factory,
|
||||
op.model as model ,
|
||||
op.name as name,
|
||||
op.order_id as orderId,
|
||||
op.type as type
|
||||
from order_parts op
|
||||
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.parts_id
|
||||
left join order_body ob on oi.organ_id = ob.organ_id and oi.order_id = ob.order_id and oi.body_id = ob.id
|
||||
|
||||
+15
-99
@@ -9,103 +9,6 @@
|
||||
文档可见:https://www.cf.com/MyBatis/x-plugins/
|
||||
-->
|
||||
|
||||
<resultMap id="map" type="com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize">
|
||||
<result column="goods_name" property="goodsName"/>
|
||||
<result column="material" property="material"/>
|
||||
<result column="color" property="color"/>
|
||||
<result column="width" property="width"/>
|
||||
<result column="height" property="height"/>
|
||||
<result column="plateNum" property="plateNum"/>
|
||||
<collection property="plateDOList" javaType="java.util.List" ofType="com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="optimizeMap" type="com.cf.imes.module.executor.controller.admin.plan.vo.OptimizeParamRespVO">
|
||||
<result column="plan_id" property="planId"/>
|
||||
<result column="plan_no" property="planNo"/>
|
||||
<result column="sort" property="sort"/>
|
||||
<result column="op_type" property="type"/>
|
||||
<result column="op_status" property="status"/>
|
||||
<result column="machine_id" property="machineId"/>
|
||||
<result column="plan_time" property="planTime"/>
|
||||
<result column="op_remark" property="remark"/>
|
||||
<result column="produce_time" property="produceTime" />
|
||||
<result column="operator" property="operator"/>
|
||||
<collection property="plateList" javaType="java.util.List" ofType="com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO" >
|
||||
<result column="plateId" property="id"/>
|
||||
<result column="plan_no" property="plateNo"/>
|
||||
<result column="opl_order_id" property="orderId"/>
|
||||
<result column="opl_type" property="type"/>
|
||||
<result column="opl_name" property="name"/>
|
||||
<result column="opl_goods_id" property="goodsId"/>
|
||||
<result column="opl_width" property="width"/>
|
||||
<result column="opl_height" property="height"/>
|
||||
<result column="opl_thickness" property="thickness"/>
|
||||
<result column="split_width" property="splitWidth"/>
|
||||
<result column="split_height" property="splitHeight"/>
|
||||
<result column="split_thickness" property="splitThickness"/>
|
||||
<result property="sealLeft" column="seal_left"/>
|
||||
<result property="sealRight" column="seal_right"/>
|
||||
<result property="sealUp" column="seal_up"/>
|
||||
<result property="sealDown" column="seal_down"/>
|
||||
<result property="area" column="area"/>
|
||||
<result property="texture" column="texture"/>
|
||||
<result property="holeFace" column="hole_face"/>
|
||||
<result property="holeArrange" column="hole_arrange"/>
|
||||
<result property="unregularPointCount" column="unregular_point_count"/>
|
||||
<result property="frontHoleCount" column="front_hole_count"/>
|
||||
<result property="backHoleCount" column="back_hole_count"/>
|
||||
<result property="sideHoleCount" column="side_hole_count"/>
|
||||
<result property="frontModelCount" column="front_model_count"/>
|
||||
<result property="backModelCount" column="back_model_count"/>
|
||||
<result property="isDoor" column="is_door"/>
|
||||
<result property="openDoorType" column="open_door_type"/>
|
||||
<result property="offsetX" column="offset_x"/>
|
||||
<result property="offsetY" column="offset_y"/>
|
||||
<result property="isArcAcross" column="is_arc_across"/>
|
||||
<result property="moduleTypeId" column="module_type_id"/>
|
||||
<result property="filterType" column="filter_type"/>
|
||||
<result property="isCancel" column="is_cancel"/>
|
||||
<result property="remark" column="opl_remark"/>
|
||||
<result property="createTime" column="opl_create_time"/>
|
||||
</collection>
|
||||
<collection property="orderList" javaType="java.util.List" ofType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderResp">
|
||||
<result property="orderId" column="o_id"/>
|
||||
<result property="type" column="o_type"/>
|
||||
<result property="status" column="o_status"/>
|
||||
<result property="dataType" column="data_type"/>
|
||||
<result property="customOrderNo" column="custom_order_no"/>
|
||||
<result column="customer" property="customer"/>
|
||||
<result column="address" property="address"/>
|
||||
<result column="phone_number" property="phoneNumber"/>
|
||||
<result column="dealer" property="dealer"/>
|
||||
<result column="dealer_phone_number" property="dealerPhoneNumber"/>
|
||||
<result column="salesman" property="salesman"/>
|
||||
<result column="splitter" property="splitter"/>
|
||||
<result column="o_status" property="status"/>
|
||||
<result column="delivery_date" property="deliveryDate"/>
|
||||
<result column="o_remark" property="remark"/>
|
||||
</collection>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="getOptimizePlanParam" resultMap="optimizeMap">
|
||||
select distinct op.id as plan_id, op.plan_no, op.type as op_type, op.status as op_status, op.machine_id, op.plan_time, op.produce_time, op.remark as op_remark, op.operator,
|
||||
oi.order_id, opl.id as plateId, opl.order_id opl_order_id, opl.name opl_name, opl.plate_no, opl.type as opl_type, opl.goods_id as opl_goods_id, opl.width opl_width,
|
||||
opl.height opl_height, opl.thickness as opl_thickness, opl.split_width, opl.split_height, opl.split_thickness, opl.seal_left, opl.seal_right,
|
||||
opl.seal_up, opl.seal_down, opl.area, opl.texture, opl.hole_face, opl.hole_arrange, opl.unregular_point_count, opl.front_hole_count,
|
||||
opl.back_hole_count, opl.side_hole_count, opl.front_model_count, opl.back_model_count, opl.is_door, opl.open_door_type, opl.offset_x, opl.offset_y,
|
||||
opl.is_arc_across, opl.module_type_id, opl.filter_type, opl.remark opl_remark, opl.is_cancel, opl.create_time as opl_create_time,
|
||||
o.id as o_id, o.type as o_type, o.data_type, o.status o_status, o.custom_order_no, o.customer,
|
||||
o.address, o.phone_number, o.dealer, o.dealer_phone_number, o.salesman, o.splitter, o.remark as o_remark, o.delivery_date
|
||||
from order_plan op
|
||||
left JOIN order_plan_item opi on op.id = opi.plan_id
|
||||
left join order_item oi on opi.item_id = oi.id
|
||||
left join order_plate opl on oi.plate_id = opl.id
|
||||
left join `orders` o on oi.order_id = o.id
|
||||
where op.id = #{planId}
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectPlateListByPlanId"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize"
|
||||
@@ -121,8 +24,6 @@
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectPlanByOrderIds" resultType="com.cf.imes.module.executor.dal.dataobject.plan.PlanDO"></select>
|
||||
|
||||
<select id="selectPlanCountGroupByCreateTime"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanStatisticsCountRespVO">
|
||||
select
|
||||
@@ -224,4 +125,19 @@
|
||||
</select>
|
||||
|
||||
|
||||
<update id="updatePlanStatus">
|
||||
|
||||
UPDATE order_plan
|
||||
|
||||
SET status = #{status}, produce_time = null
|
||||
|
||||
WHERE organ_id = #{organId}
|
||||
and deleted = false
|
||||
and id = #{planId}
|
||||
|
||||
|
||||
</update>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
+1
-1
@@ -60,7 +60,7 @@
|
||||
where g.deleted = 0
|
||||
and o.order_date between #{req.createTime[0]} and #{req.createTime[1]}
|
||||
group by g.goods_id
|
||||
order by orderArea
|
||||
order by orderArea desc
|
||||
limit 10;
|
||||
</select>
|
||||
|
||||
|
||||
+6
-347
@@ -3,57 +3,6 @@
|
||||
<mapper namespace="com.cf.imes.module.executor.dal.mysql.plate.PlateMapper">
|
||||
|
||||
|
||||
<select id="selectPlatePage" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlatePage">
|
||||
|
||||
select distinct a.id as plateId, a.name, a.width, a.height, a.thickness, a.area,
|
||||
b.custom_order_no, b.customer, b.address, b.remark, b.id as orderId,
|
||||
c.goods_name, c.material, c.color, a.goods_id,oi.num,a.is_special_shaped as specialShaped,a.is_sculpt as profiling
|
||||
|
||||
from order_plate a
|
||||
LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id and a.organ_id = oi.organ_id
|
||||
LEFT JOIN `orders` b on a.order_id = b.id and a.organ_id = b.organ_id
|
||||
LEFT JOIN order_goods c on a.goods_id = c.id and a.organ_id = c.organ_id
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
<where>
|
||||
a.organ_id = #{organId}
|
||||
and a.is_cancel = 0
|
||||
and opi.item_id is null
|
||||
<if test="orderId !=null">
|
||||
and a.order_id = #{orderId}
|
||||
</if>
|
||||
|
||||
</where>
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectPlateByPlanId"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList">
|
||||
select distinct a.id as plateId,a.order_id, a.plate_no , a.name as plateName,a.is_special_shaped,a.is_sculpt,a.area,a.seal_left,a.seal_right,a.seal_up,a.seal_down, e.material, e.color, a.width, a.height, a.thickness, b.room_id, b.body_id
|
||||
from order_plate a
|
||||
LEFT JOIN order_item b ON a.id = b.plate_id AND a.order_id = b.order_id and a.organ_id = b.organ_id
|
||||
LEFT JOIN order_goods e ON e.id = a.goods_id AND e.order_id = a.order_id and e.organ_id = a.organ_id
|
||||
LEFT JOIN order_plan_item p ON b.id = p.item_id and b.organ_id = p.organ_id
|
||||
${ew.customSqlSegment}
|
||||
|
||||
|
||||
</select>
|
||||
<select id="selectPlateList"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateParam">
|
||||
select distinct a.id,
|
||||
a.plate_no,
|
||||
a.height length,
|
||||
a.width,
|
||||
a.texture,
|
||||
a.hole_arrange,
|
||||
a.hole_face,
|
||||
if((count(a.unregular_point_count) = 0), 1, 0) as isRect
|
||||
from order_plate a
|
||||
left join order_item b on a.id = b.plate_id
|
||||
where b.plan_id = #{planId}
|
||||
group by a.id
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectProductList"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO">
|
||||
@@ -241,74 +190,6 @@
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectPlateDetialListByIds"
|
||||
resultMap="PlateDetialMap"
|
||||
resultType="java.lang.Long">
|
||||
|
||||
select distinct
|
||||
oi.group_id as groupId,
|
||||
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,
|
||||
ogs.goods_id as plateGoodsId,
|
||||
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,
|
||||
ogs.goods_name as goodsName,
|
||||
ob.id as bodyId,
|
||||
ob.room_id as roomId,
|
||||
ob.name as bodyName,
|
||||
ob.room_name as roomName,
|
||||
op.is_row_hole as hasHole
|
||||
from order_plate op
|
||||
join order_goods ogs on op.goods_id = ogs.id and op.organ_id = ogs.organ_id
|
||||
join order_item oi on op.id = oi.plate_id and op.organ_id = oi.organ_id
|
||||
join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
|
||||
left join order_group og on oi.group_id = og.id and oi.organ_id = og.organ_id
|
||||
|
||||
where op.organ_id = #{organId} and op.deleted = false and op.id in
|
||||
|
||||
<foreach collection="orderIds" item="orderIds" open="(" close=")" separator=",">
|
||||
|
||||
#{orderIds}
|
||||
|
||||
</foreach>
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectPlateGoodsList" resultType="com.cf.imes.module.executor.controller.admin.plate.vo.PlateGoodsRespVO">
|
||||
|
||||
@@ -401,13 +282,12 @@
|
||||
<update id="updateDeletedById">
|
||||
UPDATE order_plate
|
||||
SET deleted = #{deleted},is_optimized = false
|
||||
WHERE id IN
|
||||
<if test="plateIds != null and plateIds.size() > 0">
|
||||
<foreach item="plateId" collection="plateIds" open="(" separator="," close=")">
|
||||
#{plateId}
|
||||
</foreach>
|
||||
</if>
|
||||
AND organ_id = #{organId} and order_id = #{orderId}
|
||||
WHERE organ_id = #{organId}
|
||||
and order_id = #{orderId}
|
||||
and id IN
|
||||
<foreach item="plateId" collection="plateIds" open="(" separator="," close=")">
|
||||
#{plateId}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
|
||||
@@ -540,130 +420,6 @@
|
||||
|
||||
|
||||
|
||||
<resultMap id="GoodsList" type="com.cf.imes.module.executor.controller.admin.plan.vo.OrderGoodsResp">
|
||||
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
<result property="goodsName" column="goodsName"/>
|
||||
<result property="width" column="width"/>
|
||||
<result property="height" column="height"/>
|
||||
<result property="thickness" column="thickness"/>
|
||||
<result property="material" column="material"/>
|
||||
<result property="color" column="color"/>
|
||||
<result property="num" column="num"/>
|
||||
|
||||
|
||||
</resultMap>
|
||||
|
||||
<select id="selectGoodsList"
|
||||
resultMap="GoodsList"
|
||||
parameterType="map">
|
||||
|
||||
|
||||
|
||||
select distinct
|
||||
c.goods_id as goodsId,
|
||||
c.width as width,
|
||||
c.height as height,
|
||||
c.thickness as thickness,
|
||||
c.goods_name as goodsName,
|
||||
c.material as material,
|
||||
c.color as color,
|
||||
count(distinct a.id)
|
||||
|
||||
from order_plate a
|
||||
LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id and a.organ_id = oi.organ_id
|
||||
-- LEFT JOIN `orders` b on a.order_id = b.id and a.organ_id = b.organ_id
|
||||
LEFT JOIN order_goods c on a.goods_id = c.id and a.organ_id = c.organ_id
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
where
|
||||
c.organ_id = #{organId}
|
||||
and a.is_cancel = 0
|
||||
and b.status = 2
|
||||
and a.deleted = false
|
||||
and opi.item_id is null
|
||||
and c.goods_id in
|
||||
<foreach item="goodsIds" collection="goodsIds" open="(" separator="," close=")">
|
||||
#{goodsIds}
|
||||
</foreach>
|
||||
|
||||
group by c.goods_id,c.id,b.id ,c.goods_name,c.width,c.height,c.thickness, c.material, c.color;
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<select id="selectOrderIds" resultType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds" parameterType="map">
|
||||
select distinct
|
||||
a.order_id as orderId,
|
||||
c.id as id,
|
||||
c.goods_id as goodsId
|
||||
from order_plate a
|
||||
LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id and a.organ_id = oi.organ_id
|
||||
LEFT JOIN order_goods c on a.goods_id = c.id and a.organ_id = c.organ_id
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
where
|
||||
c.organ_id = #{organId}
|
||||
and a.deleted = false
|
||||
and opi.item_id is null
|
||||
and c.order_id in
|
||||
<foreach collection="orderIds" item="orderIds" open="(" close=")" separator=",">
|
||||
#{orderIds}
|
||||
</foreach>
|
||||
order by a.order_id
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<!-- select distinct
|
||||
a.order_id as orderId,
|
||||
c.id as id,
|
||||
c.goods_id as goodsId
|
||||
from order_plate a
|
||||
LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id and a.organ_id = oi.organ_id
|
||||
LEFT JOIN `orders` b on a.order_id = b.id and a.organ_id = b.organ_id
|
||||
LEFT JOIN order_goods c on a.goods_id = c.id and a.organ_id = c.organ_id
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
where
|
||||
c.organ_id = #{organId}
|
||||
and a.is_cancel = 0
|
||||
and b.status = 2
|
||||
and a.deleted = false
|
||||
and opi.item_id is null
|
||||
and c.order_id in
|
||||
<foreach collection="orderIds" item="orderIds" open="(" close=")" separator=",">
|
||||
#{orderIds}
|
||||
</foreach>
|
||||
order by a.order_id-->
|
||||
|
||||
<select id="selectGoodsNum" resultType="com.cf.imes.module.executor.controller.admin.plan.bo.GoodsNum">
|
||||
|
||||
|
||||
select distinct
|
||||
a.order_id as orderId,
|
||||
count(distinct c.id) as goodsNum
|
||||
from order_plate a
|
||||
LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id and a.organ_id = oi.organ_id
|
||||
LEFT JOIN `orders` b on a.order_id = b.id and a.organ_id = b.organ_id
|
||||
LEFT JOIN order_goods c on a.goods_id = c.id and a.organ_id = c.organ_id
|
||||
left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id
|
||||
where
|
||||
c.organ_id = #{organId}
|
||||
and a.is_cancel = 0
|
||||
and b.status = 2
|
||||
and a.deleted = false
|
||||
and opi.item_id is null
|
||||
and c.order_id in
|
||||
<foreach collection="orderIds" item="orderIds" open="(" close=")" separator=",">
|
||||
#{orderIds}
|
||||
</foreach>
|
||||
|
||||
group by orderId
|
||||
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectPlateTypeByRoomId"
|
||||
resultType="com.cf.imes.module.executor.dal.dataobject.plate.PlateDO" parameterType="java.lang.Long">
|
||||
@@ -681,103 +437,6 @@
|
||||
</select>
|
||||
|
||||
|
||||
<select id="selectPlateListByGoodIds"
|
||||
resultMap="PlateDetialMap"
|
||||
resultType="java.lang.Long">
|
||||
|
||||
|
||||
select distinct
|
||||
oi.group_id as groupId,
|
||||
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,
|
||||
ob.id as bodyId,
|
||||
ob.room_id as roomId,
|
||||
ob.name as bodyName,
|
||||
ob.room_name as roomName,
|
||||
op.is_row_hole as hasHole
|
||||
|
||||
from order_plate op
|
||||
left join order_item oi on op.id = oi.plate_id and op.organ_id = oi.organ_id
|
||||
left join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
|
||||
left join order_group og on oi.group_id = og.id and oi.organ_id = og.organ_id
|
||||
|
||||
where op.organ_id = #{organId} and op.deleted = false and op.goods_id in
|
||||
|
||||
<foreach collection="goodIds" item="goodIds" open="(" close=")" separator=",">
|
||||
|
||||
#{goodIds}
|
||||
|
||||
</foreach>
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<!-- <select id="selectPlateArea"-->
|
||||
<!-- resultType="com.cf.imes.module.executor.controller.admin.plan.vo.PlateInfoVO">-->
|
||||
|
||||
<!-- select-->
|
||||
<!-- og.goods_id as goodsId,-->
|
||||
<!---- count(distinct og.id) as optimizeGoodsCount,-->
|
||||
<!-- sum(op.area) as area-->
|
||||
|
||||
<!-- from order_plate op-->
|
||||
<!-- left join order_goods og on op.goods_id = og.id-->
|
||||
|
||||
<!-- where og.organ_id = #{organId} and og.goods_id in-->
|
||||
|
||||
<!-- <foreach collection="orderIdsList" item="orderIdsList" open="(" close=")" separator=",">-->
|
||||
<!-- (#{orderIdsList.goodsId})-->
|
||||
<!-- </foreach>-->
|
||||
|
||||
<!-- and og.order_id in-->
|
||||
|
||||
<!-- <foreach collection="orderIdsList" item="orderIdsList" open="(" close=")" separator=",">-->
|
||||
<!-- (#{orderIdsList.orderId})-->
|
||||
<!-- </foreach>-->
|
||||
|
||||
<!-- group by goodsId;-->
|
||||
|
||||
|
||||
|
||||
<!-- </select>-->
|
||||
|
||||
<select id="selectPlanPlateListDataSource" resultType="java.util.Map">
|
||||
|
||||
|
||||
-84
@@ -42,20 +42,6 @@ public class GoodsServiceImplTest extends BaseDbUnitTest {
|
||||
@Resource
|
||||
private GoodsMapper goodsMapper;
|
||||
|
||||
@Test
|
||||
public void testCreateGoods_success() {
|
||||
// // 准备参数
|
||||
// GoodsSaveReqVO createReqVO = randomPojo(GoodsSaveReqVO.class).setId(null);
|
||||
//
|
||||
// // 调用
|
||||
// Long goodsId = goodsService.createCorrespondsGoods(createReqVO);
|
||||
// // 断言
|
||||
// assertNotNull(goodsId);
|
||||
// // 校验记录的属性是否正确
|
||||
// GoodsDO goods = goodsMapper.selectById(goodsId);
|
||||
// assertPojoEquals(createReqVO, goods, "id");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateGoods_success() {
|
||||
// mock 数据
|
||||
@@ -105,74 +91,4 @@ public class GoodsServiceImplTest extends BaseDbUnitTest {
|
||||
assertServiceException(() -> goodsService.deleteGoods(id), GOODS_NOT_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetGoodsPage() {
|
||||
/* // mock 数据
|
||||
GoodsDO dbGoods = randomPojo(GoodsDO.class, o -> { // 等会查询到
|
||||
o.setOrderId(null);
|
||||
o.setGoodsId(null);
|
||||
o.setGoodsName(null);
|
||||
o.setMaterial(null);
|
||||
o.setColor(null);
|
||||
o.setWidth(null);
|
||||
o.setHeight(null);
|
||||
o.setThickness(null);
|
||||
o.setPrice(null);
|
||||
o.setBrand(null);
|
||||
o.setSpec(null);
|
||||
o.setRemark(null);
|
||||
o.setCreateTime(null);
|
||||
});
|
||||
goodsMapper.insert(dbGoods);
|
||||
// 测试 orderNo 不匹配
|
||||
goodsMapper.insert(cloneIgnoreId(dbGoods, o -> o.setOrderId(null)));
|
||||
// 测试 goodsId 不匹配
|
||||
goodsMapper.insert(cloneIgnoreId(dbGoods, o -> o.setGoodsId(null)));
|
||||
// 测试 goodsName 不匹配
|
||||
goodsMapper.insert(cloneIgnoreId(dbGoods, o -> o.setGoodsName(null)));
|
||||
// 测试 material 不匹配
|
||||
goodsMapper.insert(cloneIgnoreId(dbGoods, o -> o.setMaterial(null)));
|
||||
// 测试 color 不匹配
|
||||
goodsMapper.insert(cloneIgnoreId(dbGoods, o -> o.setColor(null)));
|
||||
// 测试 width 不匹配
|
||||
goodsMapper.insert(cloneIgnoreId(dbGoods, o -> o.setWidth(null)));
|
||||
// 测试 height 不匹配
|
||||
goodsMapper.insert(cloneIgnoreId(dbGoods, o -> o.setHeight(null)));
|
||||
// 测试 thickness 不匹配
|
||||
goodsMapper.insert(cloneIgnoreId(dbGoods, o -> o.setThickness(null)));
|
||||
// 测试 price 不匹配
|
||||
goodsMapper.insert(cloneIgnoreId(dbGoods, o -> o.setPrice(null)));
|
||||
// 测试 brand 不匹配
|
||||
goodsMapper.insert(cloneIgnoreId(dbGoods, o -> o.setBrand(null)));
|
||||
// 测试 spec 不匹配
|
||||
goodsMapper.insert(cloneIgnoreId(dbGoods, o -> o.setSpec(null)));
|
||||
// 测试 remark 不匹配
|
||||
goodsMapper.insert(cloneIgnoreId(dbGoods, o -> o.setRemark(null)));
|
||||
// 测试 createTime 不匹配
|
||||
goodsMapper.insert(cloneIgnoreId(dbGoods, o -> o.setCreateTime(null)));
|
||||
// 准备参数
|
||||
GoodsPageReqVO reqVO = new GoodsPageReqVO();
|
||||
reqVO.setOrderId(null);
|
||||
reqVO.setGoodsId(null);
|
||||
reqVO.setGoodsName(null);
|
||||
reqVO.setMaterial(null);
|
||||
reqVO.setColor(null);
|
||||
reqVO.setWidth(null);
|
||||
reqVO.setHeight(null);
|
||||
reqVO.setThickness(null);
|
||||
reqVO.setPrice(null);
|
||||
reqVO.setBrand(null);
|
||||
reqVO.setSpec(null);
|
||||
reqVO.setRemark(null);
|
||||
reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// 调用
|
||||
PageResult<GoodsDO> pageResult = goodsService.getGoodsPage(reqVO);
|
||||
// 断言
|
||||
assertEquals(1, pageResult.getTotal());
|
||||
assertEquals(1, pageResult.getList().size());
|
||||
assertPojoEquals(dbGoods, pageResult.getList().get(0));*/
|
||||
}
|
||||
|
||||
}
|
||||
-116
@@ -1,8 +1,6 @@
|
||||
package com.cf.imes.module.executor.service.plan;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@@ -11,23 +9,12 @@ import com.cf.imes.framework.test.core.ut.BaseDbUnitTest;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||
import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.hutool.core.util.RandomUtil.*;
|
||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.*;
|
||||
import static com.cf.imes.framework.test.core.util.AssertUtils.*;
|
||||
import static com.cf.imes.framework.test.core.util.RandomUtils.*;
|
||||
import static com.cf.imes.framework.common.util.date.LocalDateTimeUtils.*;
|
||||
import static com.cf.imes.framework.common.util.object.ObjectUtils.*;
|
||||
import static com.cf.imes.framework.common.util.date.DateUtils.*;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* {@link PlanServiceImpl} 的单元测试类
|
||||
*
|
||||
@@ -42,20 +29,6 @@ public class PlanServiceImplTest extends BaseDbUnitTest {
|
||||
@Resource
|
||||
private PlanMapper planMapper;
|
||||
|
||||
// @Test
|
||||
// public void testCreatePlan_success() {
|
||||
// // 准备参数
|
||||
// PlanSaveReqVO createReqVO = randomPojo(PlanSaveReqVO.class).setId(null);
|
||||
//
|
||||
// // 调用
|
||||
// Long planId = planService.createPlan(createReqVO);
|
||||
// // 断言
|
||||
// assertNotNull(planId);
|
||||
// // 校验记录的属性是否正确
|
||||
// PlanDO plan = planMapper.selectById(planId);
|
||||
// assertPojoEquals(createReqVO, plan, "id");
|
||||
// }
|
||||
|
||||
@Test
|
||||
public void testUpdatePlan_success() {
|
||||
// mock 数据
|
||||
@@ -82,93 +55,4 @@ public class PlanServiceImplTest extends BaseDbUnitTest {
|
||||
assertServiceException(() -> planService.updatePlan(updateReqVO), PLAN_NOT_EXISTS);
|
||||
}
|
||||
|
||||
// @Test
|
||||
// public void testDeletePlan_success() {
|
||||
// // mock 数据
|
||||
// PlanDO dbPlan = randomPojo(PlanDO.class);
|
||||
// planMapper.insert(dbPlan);// @Sql: 先插入出一条存在的数据
|
||||
// // 准备参数
|
||||
// Long id = dbPlan.getId();
|
||||
//
|
||||
// // 调用
|
||||
// planService.deletePlan(id);
|
||||
// // 校验数据不存在了
|
||||
// assertNull(planMapper.selectById(id));
|
||||
// }
|
||||
|
||||
// @Test
|
||||
// public void testDeletePlan_notExists() {
|
||||
// // 准备参数
|
||||
// Long id = randomLongId();
|
||||
//
|
||||
// // 调用, 并断言异常
|
||||
// assertServiceException(() -> planService.deletePlan(id), PLAN_NOT_EXISTS);
|
||||
// }
|
||||
|
||||
@Test
|
||||
@Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
|
||||
public void testGetPlanPage() {
|
||||
// // mock 数据
|
||||
// PlanDO dbPlan = randomPojo(PlanDO.class, o -> { // 等会查询到
|
||||
// o.setPlanNo(null);
|
||||
// o.setSort(null);
|
||||
// o.setType(null);
|
||||
// o.setStatus(null);
|
||||
// o.setIsPay(null);
|
||||
// o.setMachineId(null);
|
||||
// o.setPlanTime(null);
|
||||
// o.setOrderNos(null);
|
||||
// o.setRemark(null);
|
||||
// o.setCreateTime(null);
|
||||
// o.setOperator(null);
|
||||
// o.setProduceTime(null);
|
||||
// });
|
||||
// planMapper.insert(dbPlan);
|
||||
// // 测试 planNo 不匹配
|
||||
// planMapper.insert(cloneIgnoreId(dbPlan, o -> o.setPlanNo(null)));
|
||||
// // 测试 sort 不匹配
|
||||
// planMapper.insert(cloneIgnoreId(dbPlan, o -> o.setSort(null)));
|
||||
// // 测试 type 不匹配
|
||||
// planMapper.insert(cloneIgnoreId(dbPlan, o -> o.setType(null)));
|
||||
// // 测试 status 不匹配
|
||||
// planMapper.insert(cloneIgnoreId(dbPlan, o -> o.setStatus(null)));
|
||||
// // 测试 isPay 不匹配
|
||||
// planMapper.insert(cloneIgnoreId(dbPlan, o -> o.setIsPay(null)));
|
||||
// // 测试 machineId 不匹配
|
||||
// planMapper.insert(cloneIgnoreId(dbPlan, o -> o.setMachineId(null)));
|
||||
// // 测试 planTime 不匹配
|
||||
// planMapper.insert(cloneIgnoreId(dbPlan, o -> o.setPlanTime(null)));
|
||||
// // 测试 orderNos 不匹配
|
||||
// planMapper.insert(cloneIgnoreId(dbPlan, o -> o.setOrderNos(null)));
|
||||
// // 测试 remark 不匹配
|
||||
// planMapper.insert(cloneIgnoreId(dbPlan, o -> o.setRemark(null)));
|
||||
// // 测试 createTime 不匹配
|
||||
// planMapper.insert(cloneIgnoreId(dbPlan, o -> o.setCreateTime(null)));
|
||||
// // 测试 operator 不匹配
|
||||
// planMapper.insert(cloneIgnoreId(dbPlan, o -> o.setOperator(null)));
|
||||
// // 测试 produceTime 不匹配
|
||||
// planMapper.insert(cloneIgnoreId(dbPlan, o -> o.setProduceTime(null)));
|
||||
// // 准备参数
|
||||
// PlanPageReqVO reqVO = new PlanPageReqVO();
|
||||
// reqVO.setPlanNo(null);
|
||||
// reqVO.setSort(null);
|
||||
// reqVO.setType(null);
|
||||
// reqVO.setStatus(null);
|
||||
// reqVO.setIsPay(null);
|
||||
// reqVO.setMachineId(null);
|
||||
// reqVO.setPlanTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
// reqVO.setOrderNos(null);
|
||||
// reqVO.setRemark(null);
|
||||
// reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
// reqVO.setOperator(null);
|
||||
// reqVO.setProduceTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
|
||||
|
||||
// // 调用
|
||||
// PageResult<PlanRespVO> pageResult = planService.getPlanPage(reqVO);
|
||||
// // 断言
|
||||
// assertEquals(1, pageResult.getTotal());
|
||||
// assertEquals(1, pageResult.getList().size());
|
||||
// assertPojoEquals(dbPlan, pageResult.getList().get(0));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
-160
@@ -1,160 +0,0 @@
|
||||
package com.cf.imes.module.executor.service.zlib;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
import com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.handler.codec.compression.JdkZlibDecoder;
|
||||
import com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.handler.codec.compression.ZlibDecoder;
|
||||
import com.cf.imes.module.executor.util.CompressTest;
|
||||
import com.cf.imes.module.executor.util.ZLibUtils;
|
||||
import lombok.Data;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.http.*;
|
||||
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.client.RestClientException;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.URI;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.zip.Inflater;
|
||||
|
||||
public class ZlibTest {
|
||||
|
||||
private JdbcTemplate jdbcTemplate;
|
||||
|
||||
@BeforeEach
|
||||
public void init() {
|
||||
DruidDataSource druidDataSource = new DruidDataSource();
|
||||
druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
|
||||
druidDataSource.setUrl("jdbc:mysql://192.168.1.245:3306/cferp_test_1");
|
||||
druidDataSource.setUsername("mes_visitor");
|
||||
druidDataSource.setPassword("cf123456");
|
||||
//创建jdbc模板对象
|
||||
JdbcTemplate jdbcTemplate = new JdbcTemplate();
|
||||
jdbcTemplate.setDataSource(druidDataSource);
|
||||
this.jdbcTemplate = jdbcTemplate;
|
||||
}
|
||||
|
||||
@Test
|
||||
void getOrderBoxBlock() throws IOException {
|
||||
List<OrderBoxBlock> list = jdbcTemplate.query("select * from order_box_block limit 10", new BeanPropertyRowMapper<OrderBoxBlock>(OrderBoxBlock.class));
|
||||
for (OrderBoxBlock bean : list) {
|
||||
if (!Objects.isNull(bean.Data)) {
|
||||
byte[] bytes = Arrays.copyOfRange(bean.Data, 2, bean.Data.length - 1);
|
||||
System.out.println( new String(bean.Data));
|
||||
System.out.println( CompressTest.uncompress(new String(bytes)));
|
||||
//System.out.println(new String(ZLibUtils.decompress(bean.Data)));
|
||||
System.err.println("------------------------------------------");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void getOrderBlockPlanResult() throws UnsupportedEncodingException {
|
||||
List<OrderBlockPlanResult> list = jdbcTemplate.query("select * from order_block_plan_result limit 1", new BeanPropertyRowMapper<OrderBlockPlanResult>(OrderBlockPlanResult.class));
|
||||
for (OrderBlockPlanResult bean : list) {
|
||||
if (!Objects.isNull(bean.PlaceData)) {
|
||||
System.out.println(new String(ZLibUtils.decompress(bean.PlaceData)));
|
||||
System.err.println("------------------------------------------");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void test() {
|
||||
String source = "xxxxxxxxxxaassad";
|
||||
//压缩
|
||||
byte[] compress = ZLibUtils.compress(source.getBytes());
|
||||
String str = new String(compress);
|
||||
System.out.println(str);
|
||||
//解压
|
||||
System.out.println(new String(ZLibUtils.decompress(new ByteArrayInputStream(compress))));
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void insertByteArray(String tableName, byte[] data, String columnName) {
|
||||
final String sql = "INSERT INTO " + tableName + " (" + columnName + ") VALUES (?)";
|
||||
jdbcTemplate.update(
|
||||
conn -> {
|
||||
PreparedStatement ps = conn.prepareStatement(sql);
|
||||
ps.setBinaryStream(1, new ByteArrayInputStream(data), data.length);
|
||||
return ps;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
public static String uncompress(byte[] input) throws IOException {
|
||||
Inflater inflater = new Inflater();
|
||||
inflater.setInput(input);
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream(input.length);
|
||||
try {
|
||||
byte[] buff = new byte[1024];
|
||||
while (!inflater.finished()) {
|
||||
int count = inflater.inflate(buff);
|
||||
baos.write(buff, 0, count);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
baos.close();
|
||||
}
|
||||
inflater.end();
|
||||
byte[] output = baos.toByteArray();
|
||||
return new String(output, "UTF-8");
|
||||
}
|
||||
|
||||
|
||||
@Data
|
||||
public static class OrderBoxBlock {
|
||||
long BoxID;
|
||||
long ShardKey;
|
||||
long OrderNo;
|
||||
byte[] Data;
|
||||
long CompanyID;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class OrderBlockPlanResult {
|
||||
long ID;
|
||||
LocalDateTime SaveTime;
|
||||
byte[] PlaceData;
|
||||
long CompanyID;
|
||||
}
|
||||
|
||||
@Test
|
||||
void getRes() throws IOException {
|
||||
//创建url路径
|
||||
String url = "https://chenfeng.tech:777/api/v1/OrderBlockPlan/GetPlanOrderData";
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
|
||||
//接口参数
|
||||
map.add("id",1306667105);
|
||||
//头部类型
|
||||
headers.set("Cookie", ".AspNetCore.Cookies=CfDJ8CGzP7BhamtAnTFO8HhkPcxGBkdd4sCOIjQMV-nb37GAFKr4y6C0JA0B3JzRsDAckabiUgBXQaWyDNjCqVTvBNYwbHwVbI5b-eKdXwkIFqsJZObZA-RoLdsu1d9yy1LwBLQwJxDGKTSQzFtrs_eHDeDEuG8CWEF1Iq96X0goR_cFMn0EHWVeRnOlThmDzLkmTMhysVSludR6qV0HrD54GOv5MQvBzzcE-WlsrKTo5Uf0hT8z1fGMY8Hofa6UDh8yyJsz2LFTQTy4NpmklvyXIkwv0fw9bOynHLllUh5ToF0wgrxYFU3Rzgf863uAdtfRP1DY2Rqvf-51uvQHip-SIT_b5p7TaSRiG-M7pZTlI0oOVPZRhng7k-NeIJRdYQmj0h3G3WJHCTH7g1-YQjAGbYQkJFcZdAsZpR-kjOlp3sHpNCDUe0NucYrLNp4tTXesCL_-t8X5GsXMYGlX-oKU10I");
|
||||
//构造实体对象
|
||||
HttpEntity<MultiValueMap<String, Object>> param = new HttpEntity<>(map, headers);
|
||||
//发起请求,服务地址,请求参数,返回消息体的数据类型
|
||||
ResponseEntity<Resource> response = restTemplate.postForEntity(url, param, Resource.class);
|
||||
//body
|
||||
InputStream inputStream = response.getBody().getInputStream();
|
||||
BufferedOutputStream out = FileUtil.getOutputStream("C:\\Users\\Beal\\Desktop\\新建文件夹\\xx.txt");
|
||||
long copySize = IoUtil.copy(inputStream, out, IoUtil.DEFAULT_BUFFER_SIZE);
|
||||
IoUtil.close(inputStream);
|
||||
IoUtil.close(out);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
-3637
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user