获得机台新增品牌信息,排单,打包补全部分代码逻辑

This commit is contained in:
liuzhaotian
2024-09-27 15:42:51 +08:00
parent 8bcbb3eb9f
commit a0734b6f1f
31 changed files with 198 additions and 872 deletions
@@ -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,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
@@ -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);
@@ -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));
@@ -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);
@@ -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);
@@ -8,14 +8,12 @@ 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;
@@ -30,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;
@@ -48,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;
@@ -61,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;
@@ -221,16 +217,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);
@@ -325,16 +323,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());
}
}
@@ -350,46 +348,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;
@@ -504,6 +504,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());
@@ -515,14 +519,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)
@@ -530,6 +526,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
.plateModels(orderModelDOS)
.optimizeBoardModelDOS(optimizeBoardModelDOS)
.orderPartsRespVOS(printOrderPartsRespVOS)
.orderPartsRemarks(orderPartsRemarks)
.orderPackReqVOS(printOrderPackReqVOS)
.build();
@@ -712,7 +709,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();
@@ -288,7 +288,7 @@ public class OrderServiceImpl implements OrderService {
plateMapper.updateDeletedById(plateIds, status, getUserOrganId(), orderId);// 删小板
// 删除包裹,只需删除,无需还原
List<Long> packIds = orderItemMapper.selectPackId(bodyIds, getUserOrganId()).stream().map(OrderItemDO::getPackageId).distinct().toList();
List<Long> packIds = orderItemMapper.selectPackId(orderId,bodyIds, getUserOrganId()).stream().map(OrderItemDO::getPackageId).distinct().toList();
orderPackageMapper.updatePackList(orderId, packIds, getUserOrganId());
@@ -321,14 +321,14 @@ public class OrderServiceImpl implements OrderService {
if (goodsIdDeleted.size() > 0) {
goodsMapper.updateDeletedById(goodsIdDeleted, status, getUserOrganId());
goodsMapper.updateDeletedById(orderId,goodsIdDeleted, status, getUserOrganId());
}
if (!planIds.isEmpty()) {
// 判断删除的柜体对应的板材是否和排单板材一样
List<GoodsDO> goodsDOS = goodsMapper.selectPlanGoodsListByPlanIdList(planIds, getUserOrganId());
List<GoodsDO> goodsDOS = goodsMapper.selectPlanGoodsListByPlanIdList(null,planIds, getUserOrganId());
// 一样,同时删除排单的信息
if (goodsDOS.isEmpty()) {
@@ -61,7 +61,6 @@ public interface PlanService {
PageResult<OrderGoodsResp> getOrderGoodsPage(OrderPageReqVOCopy pageReqVO);
List<PlatePage> getNotPlanPlateListPage(PlateReqPageVO pageVO);
Boolean addPlate(AddPlateReq req);
@@ -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());
}
@@ -337,7 +343,7 @@ public class PlanServiceImpl implements PlanService {
if(!boardModelDOS.isEmpty()) {
List<Long> goodsIdList = goodsMapper.selectPlanGoodsListByPlanIdList(ids, getUserOrganId()).stream().map(GoodsDO::getId).toList();
List<Long> goodsIdList = goodsMapper.selectPlanGoodsListByPlanIdList(orderIds,ids, getUserOrganId()).stream().map(GoodsDO::getId).toList();
if(!goodsIdList.isEmpty()) {
// 修改删除的大板对应的小板为未优化
@@ -350,7 +356,11 @@ public class PlanServiceImpl implements PlanService {
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));
}
@@ -361,7 +371,7 @@ public class PlanServiceImpl implements PlanService {
}
// 删除商品表里的 planId
goodsMapper.deletePlanGoods(ids,getUserOrganId());
goodsMapper.deletePlanGoods(orderIds,ids,getUserOrganId());
List<Long> orderIdList = new ArrayList<>();
@@ -594,9 +604,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()) {
@@ -872,15 +880,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 +1122,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();
}
@@ -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>
@@ -44,8 +44,8 @@
o.status as status
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 and og.id = op.goods_id
STRAIGHT_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
STRAIGHT_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}
@@ -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>
@@ -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>
@@ -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,-->
<!--&#45;&#45; 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">