Merge remote-tracking branch 'origin/main'

This commit is contained in:
gaoqr
2024-09-27 17:16:04 +08:00
31 changed files with 198 additions and 872 deletions
@@ -0,0 +1,27 @@
package com.cf.imes.framework.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
@AllArgsConstructor
@Getter
public enum OrderItemTypeEnum {
PLATE(1, "板材"),
PARTS(2, "五金/配件"),
OTHER(3, "其他"),
QUOTATIONACCESSORIES(4, "报价配件");
private final Integer type;
private String description;
public boolean equals(Integer status) {
return this.type .equals(status) ;
}
public boolean equals(OrderItemTypeEnum enableStatusEnum) {
return enableStatusEnum != null && enableStatusEnum.type .equals(this.getType()) ;
}
}
@@ -33,8 +33,11 @@ public interface GlobalErrorCodeConstants {
ErrorCode INTERNAL_SERVER_ERROR = new ErrorCode(500, "系统异常,请联系客服处理");
ErrorCode NOT_IMPLEMENTED = new ErrorCode(501, "功能未实现/未开启");
ErrorCode ERROR_CONFIGURATION = new ErrorCode(502, "错误的配置项");
ErrorCode ES_ERROR_UPDATE = new ErrorCode(503, "ES文档更新失败");
ErrorCode ES_ERROR_DELETE = new ErrorCode(504, "ES文档删除失败");
// ES文档更新失败
ErrorCode ES_ERROR_UPDATE = new ErrorCode(503, "数据异常,请勿点击过快,请稍等再试");
// ES文档删除失败
ErrorCode ES_ERROR_DELETE = new ErrorCode(504, "数据异常,请勿点击过快,请稍等再试");
ErrorCode DATA_EXCEPTION_ERROR = new ErrorCode(505, "数据异常,请联系客服处理");
// ========== 自定义错误段 ==========
@@ -236,9 +236,13 @@ public class GlobalExceptionHandler {
return tableNotExistsResult;
}
// if(ex instanceof NullPointerException){
// return CommonResult.error(DATA_EXCEPTION_ERROR.getCode(), DATA_EXCEPTION_ERROR.getMsg());
// }
if(ex instanceof NullPointerException){
// 处理异常
log.error("[defaultExceptionHandler]", ex);
// 插入异常日志
this.createExceptionLog(req, ex);
return CommonResult.error(DATA_EXCEPTION_ERROR.getCode(), DATA_EXCEPTION_ERROR.getMsg());
}
// 情况二:部分特殊的库的处理
if (Objects.equals("io.github.resilience4j.ratelimiter.RequestNotPermitted", ex.getClass().getName())) {
@@ -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">
@@ -38,6 +38,10 @@ public class OrderDO extends BaseDO {
// 客户地址
private String address;
// 生产单日期
private LocalDateTime orderDate;
// 客户电话
private String phoneNumber;
@@ -7,8 +7,6 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import java.math.BigDecimal;
@TableName("order_item")
@Data
@ToString(callSuper = true)
@@ -24,6 +22,9 @@ public class OrderItemDO {
// 生产单号
private Long orderId;
// 明细类型,1 板材 2 五金/配件 3 其他 4 报价配件
private Integer type;
// 房间 ID
private Long roomId;
@@ -1,9 +1,8 @@
package com.cf.imes.module.manage.dal.dataobject.remainplaten;
import com.cf.imes.framework.organ.core.db.OrganBaseDO;
import lombok.*;
import com.baomidou.mybatisplus.annotation.*;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;
import lombok.*;
import java.math.BigDecimal;
@@ -11,7 +11,6 @@ import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO;
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateAndPartIdList;
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO;
import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO;
import org.apache.ibatis.annotations.Mapper;
@@ -24,12 +23,6 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
// default List<OrderPackageDO> selectByOrderNo(PackageDetailsReqVO reqVO) {
// return selectList(new LambdaQueryWrapperX<OrderPackageDO>()
// .eqIfPresent(OrderPackageDO::getOrderNo, orderNo)
// .orderByDesc(OrderPackageDO::getId));
// }
// IPage<OrderPackageVO> selectByOrderNo(@Param("page") IPage page, @Param("reqVO") PackageDetailsReqVO reqVO,@Param("packId") List<Long> packId, @Param("organId") Long organId);
@@ -46,10 +39,6 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
List<PackRespVO> selectPackPage(@Param("orderIds") List<Long> orderIds,@Param("organId") Long organId);
IPage<PlateDetailsRespVO> selectMissingBoard( @Param("page") IPage page, @Param("orderNo") Long orderNo, @Param("organId") Long organId);
default OrderPackageDO selectByPackId(Long packId,Long orderId,Long organId) {
return selectOne(new LambdaQueryWrapperX<OrderPackageDO>()
@@ -6,20 +6,11 @@ import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.manage.dal.dataobject.pack.OrderPrepackagedDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface OrderPrepackagedMapper extends BaseMapperX<OrderPrepackagedDO> {
default List<OrderPrepackagedDO> selectOrderList(Long orderId, Long organId) {
return selectList(new LambdaQueryWrapperX<OrderPrepackagedDO>()
.eq(OrderPrepackagedDO::getOrganId, organId)
.eqIfPresent(OrderPrepackagedDO::getOrderId, orderId));
}
default OrderPrepackagedDO selectOrder(Long orderId, Long organId) {
return selectOne(new LambdaQueryWrapperX<OrderPrepackagedDO>()
@@ -40,13 +40,10 @@ public interface OrdersMapper extends BaseMapperX<OrderDO> {
List<PackRespVO> selectOrderIdsFalse( @Param("createTime") String createTime,@Param("organId") Long organId, @Param("orderId") Long orderId);
List<PackRespVO> selectOrderIdsFalse(@Param("createTime") String createTime,@Param("organId") Long organId, @Param("orderId") Long orderId);
IPage<PackRespVO> selectOrderPlate(@Param("page") IPage page, @Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
PrintOrderPackRespVO selectOrderPack(@Param("orderNo")Long orderNo, @Param("packageNo") Long packageNo, @Param("organId") Long organId);
@@ -4,6 +4,7 @@ package com.cf.imes.module.manage.service.pack;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cf.imes.framework.common.enums.OrderItemTypeEnum;
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
import com.cf.imes.framework.common.enums.UserSettingTypeEnum;
@@ -693,6 +694,7 @@ public class PackServiceImpl implements PackService {
// 在生产单明细表中添加数据(生产单号,配件ID,包裹ID,部件数量)
OrderItemDO orderItemDO = new OrderItemDO();
orderItemDO.setOrderId(reqVO.getOrderId());
orderItemDO.setType(OrderItemTypeEnum.QUOTATIONACCESSORIES.getType());
orderItemDO.setPartsId(orderParts.getId());
orderItemDO.setPackageId(orderPackageDO.getId());
orderItemDO.setNum(reqVO.getNum());
@@ -5,9 +5,6 @@
<resultMap id="PackMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO">
<result property="id" column="orderId"/>
<!-- <result property="packCount" column="packCount"/>-->
<!-- <result property="packPieceCount" column="packPieceCount"/>-->
<collection property="plateIdList" ofType="java.lang.Long" column="plateId"/>
<collection property="packIdList" ofType="java.lang.Long" column="packId"/>
@@ -73,66 +70,6 @@
<resultMap id="PlateDetailsMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO">
<result property="roomName" column="roomName"/>
<result property="cabinetName" column="bodyName"/>
<result property="plateNo" column="palteId"/>
<result property="plateName" column="plateName"/>
<result property="material" column="plateMaterial"/>
<result property="color" column="palteColor"/>
<result property="width" column="plateWidth"/>
<result property="height" column="plateHeight"/>
<result property="thickness" column="plateThickness"/>
<result property="area" column="plateArea"/>
<result property="texture" column="texture"/>
<result property="specialShaped" column="specialShaped"/>
<result property="profiling" column="profiling"/>
<result property="rowHole" column="rowHole"/>
<result property="remark" column="remark"/>
<result property="processGroup" column="name"/>
</resultMap>
<select id="selectMissingBoard"
parameterType="java.lang.Long"
resultMap="PlateDetailsMap">
select DISTINCT
ob.room_name as roomName,
ob.name as bodyName,
op.id as palteId,
op.name as plateName,
ogs.material as plateMaterial,
ogs.color as palteColor,
op.height as plateHeight,
op.width as plateWidth,
op.thickness as plateThickness,
op.area as plateArea,
op.texture as texture,
op.remark as remark,
op.is_special_shaped as specialShaped,
op.is_sculpt as profiling,
op.is_row_hole AS rowHole
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
where
oi.order_id = #{orderNo}
and
oi.organ_id = #{organId}
and oi.plate_id != 0
and
op.id not in (
select DISTINCT oi2.plate_id
from order_item oi2
where oi2.order_id = #{orderNo} and oi2.package_id &lt;&gt; '');
</select>
<update id="updateParts"
parameterType="java.lang.Long">
@@ -22,7 +22,7 @@
splitter as splitter,
packaged as packaged
FROM orders
WHERE organ_id = #{organId} and deleted = false and status != 0 and create_time &gt;= #{createTime} and id != #{orderId}
WHERE organ_id = #{organId} and deleted = false and status in (1,2,3,4) and create_time &gt;= #{createTime} and id != #{orderId}
ORDER BY create_time
LIMIT 1 ;
@@ -49,7 +49,7 @@
splitter as splitter,
packaged as packaged
FROM orders
WHERE organ_id = #{organId} and deleted = false and status != 0 and create_time &lt;= #{createTime} and id != #{orderId}
WHERE organ_id = #{organId} and deleted = false and status != 0 and create_time &lt;= #{createTime} and id != #{orderId}
ORDER BY create_time desc
LIMIT 1 ;
@@ -81,43 +81,6 @@
</resultMap>
<select id="selectOrderPlate"
parameterType="java.lang.Long"
resultMap="PackMap">
SELECT distinct
o.id as orderNo,
o.custom_order_no as customOrderNo,
o.dealer as dealer,
o.dealer_phone_number as dealerPhoneNumber,
o.order_date as orderDate,
o.create_time as createTime,
o.delivery_date as deliveryDate,
o.customer as customer,
o.phone_number as phoneNumber,
o.address as address,
o.salesman as salesman,
o.splitter as splitter,
o.packaged as packaged,
(count(distinct oi.plate_id )-1) as totalPieceCount
FROM `orders` o
join order_item oi on o.id = oi.order_id and o.organ_id = oi.organ_id
WHERE
o.organ_id = #{organId} and
o.id in
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id}
</foreach>
group by orderNo,customOrderNo,dealer,deliveryDate,customer,phoneNumber,address,salesman,splitter,packaged,dealerPhoneNumber,orderDate,o.create_time
order by o.create_time desc
</select>
<resultMap id="PrintMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PrintOrderPackRespVO">
@@ -200,7 +163,7 @@
</where>
order by order_date desc
order by create_time desc
</select>
@@ -3,7 +3,6 @@ package com.cf.imes.module.system.controller.admin.datasource.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.util.List;
@@ -17,7 +16,7 @@ public class DataSourceFiledReqVO {
@Schema(description = "主键ID")
private Long id;
@Schema(description = "数据源id")
@Schema(description = "数据源id-父级ID")
private String sourceId;
@Schema(description = "字段名称")
@@ -1,12 +1,15 @@
package com.cf.imes.module.system.controller.admin.machine.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.fastjson.JSONObject;
import com.cf.imes.module.system.dal.dataobject.machine.CuttingSettingDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 机台 Response VO")
@Data
@@ -16,55 +19,42 @@ import com.alibaba.excel.annotation.*;
@AllArgsConstructor
public class CuttingRespVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "14092")
@ExcelProperty("主键")
private Long id;
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
@ExcelProperty("名称")
private String name;
@Schema(description = "1机台设备 2CNC设备", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("1机台设备 2CNC设备")
private Integer machineType;
@Schema(description = "标签id")
private Long labelId;
@Schema(description = "品牌ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
@ExcelProperty("品牌ID")
private Long brandId;
@Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
private String brand;
// @Schema(description = "品牌", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
// @ExcelProperty("品牌")
// private String brand;
// @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
// @ExcelProperty("型号")
// private String model;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
/* @Schema(description = "机台配置")
private CuttingSettingDO machineSettingDO;*/
@Schema(description = "机台配置")
private JSONObject machineSettingDO;
/**
* 机台权限相关配置
*/
@Schema(description ="加工模式 开料机加工模式 默认true,显示开料机工作模式(是否排钻/造型,sc)配置")
private Boolean showPriorFacing;
@Schema(description = "双工位")
private Boolean showDualWorkstation;
@Schema(description = "自动贴标")
private Boolean showAutoNotePrinter;
}
@@ -385,13 +385,14 @@ public class MachineServiceImpl implements MachineService {
// 对机台的配置进行解压
machineDO.setSetting(JsonUtils.unzipString(machineDO.getSetting()));
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
assert loginUser != null;
// MachineLimitDO machineLimitDO = machineLimitMapper.selectOne(new LambdaQueryWrapperX<MachineLimitDO>()
// .eq(MachineLimitDO::getMachineId, id)
// .eq(MachineLimitDO::getOrganId, loginUser.getOrganId())
// );
Long brandId = machineDO.getBrandId();
MachineBrandDO machineBrandDO = machineBrandMapper.selectById(brandId);
CuttingRespVO respVO = MachineConvert.convert(machineDO);
respVO.setBrand(machineBrandDO.getBrand());
return respVO;
}
@@ -194,6 +194,7 @@ chenfeng:
- system_notify_message_readinfo
- system_data_source_field
- system_machine_brand
- system_machine_limit
use-data-code: imes_prod #动态数据源标识,后期添加的数据源需要修改此值
sms-code: # 短信验证码相关的配置项