mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
优化生产修改开料状态逻辑,参数修改,添加小板数量查询修改
This commit is contained in:
+126
-137
@@ -17,7 +17,6 @@ import co.elastic.clients.json.JsonData;
|
|||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||||
import com.cf.imes.framework.common.enums.GoodsFilterConditionsEnum;
|
|
||||||
import com.cf.imes.framework.common.enums.OrderPlateCutStatusEnum;
|
import com.cf.imes.framework.common.enums.OrderPlateCutStatusEnum;
|
||||||
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
||||||
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
||||||
@@ -71,7 +70,7 @@ import java.io.IOException;
|
|||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
|
|
||||||
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.DATA_DATA_ERROR;
|
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.DATA_DATA_ERROR;
|
||||||
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.ES_DATA_ERROR;
|
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.ES_DATA_ERROR;
|
||||||
@@ -149,6 +148,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
private static final String FIELD_SORT = " order by createTime desc ";
|
private static final String FIELD_SORT = " order by createTime desc ";
|
||||||
private static final String FIELD_IS_OPTIMIZED = " op.is_optimized";
|
private static final String FIELD_IS_OPTIMIZED = " op.is_optimized";
|
||||||
private static final String FIELD_PLAN_CONFIG_ID = "planConfigId";
|
private static final String FIELD_PLAN_CONFIG_ID = "planConfigId";
|
||||||
|
private static final String FIELD_UPDATETIME = "updateTime";
|
||||||
|
|
||||||
private static final String ES_ORDER_MODEL_DATA_ERROR = "生产单板材造型信息ES文档查询数据异常: ";
|
private static final String ES_ORDER_MODEL_DATA_ERROR = "生产单板材造型信息ES文档查询数据异常: ";
|
||||||
|
|
||||||
@@ -239,7 +239,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
// 更新开料相关的数据
|
// 更新开料相关的数据
|
||||||
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
|
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
|
||||||
objectObjectHashMap.put("cutedBoardInfo",cutedBoardInfo);
|
objectObjectHashMap.put("cutedBoardInfo",cutedBoardInfo);
|
||||||
objectObjectHashMap.put("updateTime",simpleDateFormat.format(date));
|
objectObjectHashMap.put(FIELD_UPDATETIME,simpleDateFormat.format(date));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
@@ -341,7 +341,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
// 更新开料相关的数据
|
// 更新开料相关的数据
|
||||||
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
|
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
|
||||||
objectObjectHashMap.put("cutedBoardInfo",cutedBoardInfo);
|
objectObjectHashMap.put("cutedBoardInfo",cutedBoardInfo);
|
||||||
objectObjectHashMap.put("updateTime",simpleDateFormat.format(date));
|
objectObjectHashMap.put(FIELD_UPDATETIME,simpleDateFormat.format(date));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
@@ -680,6 +680,10 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
AssertUtils.notEmpty(planDO,ORDER_PLAN_DATE_ERROR);
|
AssertUtils.notEmpty(planDO,ORDER_PLAN_DATE_ERROR);
|
||||||
|
|
||||||
|
if(planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){
|
||||||
|
throw exception(THIS_PLAN_OPTIMIZE_DATA_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||||
|
|
||||||
Boolean isLock = Optional.ofNullable(optimizeBoardModelDO.getIsLock()).orElse(false);
|
Boolean isLock = Optional.ofNullable(optimizeBoardModelDO.getIsLock()).orElse(false);
|
||||||
@@ -1204,47 +1208,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void goodsFilter(List<String> filter, List<GoodsReqVO> goodsReqVOS) {
|
|
||||||
|
|
||||||
int goodsNum = goodsReqVOS.size();
|
|
||||||
|
|
||||||
Map<String, Function<GoodsReqVO, ?>> attributeMap = new HashMap<>();
|
|
||||||
attributeMap.put(GoodsFilterConditionsEnum.THICKNESS.getFilterField(), GoodsReqVO::getThickness);
|
|
||||||
attributeMap.put(GoodsFilterConditionsEnum.MATERIAL.getFilterField(), GoodsReqVO::getMaterial);
|
|
||||||
attributeMap.put(GoodsFilterConditionsEnum.COLOR.getFilterField(), GoodsReqVO::getColor);
|
|
||||||
attributeMap.put(GoodsFilterConditionsEnum.TEXTURE.getFilterField(), GoodsReqVO::getTexture);
|
|
||||||
attributeMap.put(GoodsFilterConditionsEnum.BRAND.getFilterField(), GoodsReqVO::getBrand);
|
|
||||||
attributeMap.put(GoodsFilterConditionsEnum.WIDTH.getFilterField(), GoodsReqVO::getWidth);
|
|
||||||
attributeMap.put(GoodsFilterConditionsEnum.HEIGHT.getFilterField(), GoodsReqVO::getWidth);
|
|
||||||
|
|
||||||
for (String s : filter) {
|
|
||||||
Function<GoodsReqVO, ?> attributeFunc = attributeMap.get(s);
|
|
||||||
if (attributeFunc == null) {
|
|
||||||
throw new ServiceException(PLAN_MIXED_DATA_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取当前属性的第一个值
|
|
||||||
Object attributeValue = goodsReqVOS.stream()
|
|
||||||
.map(attributeFunc)
|
|
||||||
.findFirst()
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
// 根据属性值过滤列表
|
|
||||||
long count = goodsReqVOS.stream()
|
|
||||||
.filter(f -> attributeValue.equals(attributeFunc.apply(f)))
|
|
||||||
.count();
|
|
||||||
|
|
||||||
if (goodsNum != count) {
|
|
||||||
throw exception(PLAN_MIXED_ORDER_ERROR,GoodsFilterConditionsEnum.getValueByKey(s));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private String conversion(String filed) {
|
private String conversion(String filed) {
|
||||||
|
|
||||||
// 去除字段中的 【 】
|
// 去除字段中的 【 】
|
||||||
@@ -1404,114 +1367,141 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private Long updatePlanOptimizeData(List<RemainBoardInfo> remainBoardInfos,
|
private Long updatePlanOptimizeData(List<RemainBoardInfo> remainBoardInfos,
|
||||||
OptimizeBoardModelDO optimizeBoardModelDO,
|
OptimizeBoardModelDO optimizeBoardModelDO,
|
||||||
List<Long> orderIds,
|
List<Long> orderIds,
|
||||||
List<String> goodsIds,
|
List<String> goodsIds,
|
||||||
List<Integer> goodsNo,
|
List<Integer> goodsNo,
|
||||||
Integer cutedType){
|
Integer cutedType) {
|
||||||
|
|
||||||
Date date = new Date();
|
|
||||||
|
|
||||||
long goodsNum = 0L;
|
|
||||||
|
|
||||||
List<String> planNo = new ArrayList<>();
|
|
||||||
|
|
||||||
remainBoardInfos.forEach(f->{
|
|
||||||
|
|
||||||
if(goodsIds.contains(f.getGoodsId())){
|
|
||||||
|
|
||||||
f.getPlaceBoardList().forEach(p->{
|
|
||||||
|
|
||||||
if(goodsNo.contains(p.getBoardId())) {
|
|
||||||
p.setCutedType(cutedType);
|
|
||||||
planNo.addAll(p.getBlocks().stream().map(RemainBoardInfo.Blocks::getBlockId).toList());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// 更新开料相关的数据
|
|
||||||
HashMap<String, Object> objectObjectHashMap = new HashMap<>();
|
|
||||||
|
|
||||||
|
|
||||||
if(OrderPlateCutStatusEnum.NOCUTTING.getStatus().equals(cutedType)){
|
Date currentDate = new Date();
|
||||||
|
AtomicLong goodsCount = new AtomicLong(0L);
|
||||||
|
List<String> planNos = new ArrayList<>();
|
||||||
|
|
||||||
// 开料的大板数量
|
// 更新板材状态并统计数量
|
||||||
long cutedBoardNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBoardNumber()).orElse(0L);
|
updateRemainBoardInfo(remainBoardInfos, goodsIds, goodsNo, cutedType, goodsCount, planNos);
|
||||||
|
|
||||||
// 开料的小板数量
|
// 更新优化数据
|
||||||
long cutedBlockNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBlockNumber()).orElse(0L);
|
long goodsNum = updateOptimizeData(optimizeBoardModelDO, goodsCount.get(), planNos.size(), cutedType);
|
||||||
|
|
||||||
if(cutedBoardNumber != 0L && cutedBlockNumber != 0L) {
|
// 同步数据到 ES
|
||||||
|
syncWithElasticsearch(remainBoardInfos, optimizeBoardModelDO, currentDate);
|
||||||
cutedBoardNumber -= goodsNo.size();
|
|
||||||
|
|
||||||
cutedBlockNumber -= planNo.size();
|
|
||||||
|
|
||||||
goodsNum = cutedBoardNumber;
|
|
||||||
|
|
||||||
objectObjectHashMap.put("cutedBoardNumber", cutedBoardNumber);
|
|
||||||
objectObjectHashMap.put("cutedBlockNumber", cutedBlockNumber);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(OrderPlateCutStatusEnum.OPENED.getStatus().equals(cutedType)){
|
|
||||||
|
|
||||||
// 开料的大板数量
|
|
||||||
long cutedBoardNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBoardNumber()).orElse(0L);
|
|
||||||
|
|
||||||
// 开料的小板数量
|
|
||||||
long cutedBlockNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBlockNumber()).orElse(0L);
|
|
||||||
|
|
||||||
cutedBoardNumber += goodsNo.size();
|
|
||||||
|
|
||||||
cutedBlockNumber += planNo.size();
|
|
||||||
|
|
||||||
goodsNum = cutedBoardNumber;
|
|
||||||
|
|
||||||
objectObjectHashMap.put("cutedBoardNumber", cutedBoardNumber);
|
|
||||||
objectObjectHashMap.put("cutedBlockNumber", cutedBlockNumber);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
objectObjectHashMap.put("remainBoardInfo", toJsonString(remainBoardInfos));
|
|
||||||
objectObjectHashMap.put("updateTime",simpleDateFormat.format(date));
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
esDocumentService.updateById(ORDER_OPTIMIZE_PLATE_MODEL, optimizeBoardModelDO.getId(), HashMap.class, objectObjectHashMap);
|
|
||||||
|
|
||||||
} catch (IOException | ElasticsearchException e) {
|
|
||||||
log.error(e.getMessage());
|
|
||||||
throw new ServiceException(ES_DATA_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
List<PlateDO> plateDOS = plateMapper.selectPlateByPlateNo(orderIds, planNo, getUserOrganId());
|
|
||||||
|
|
||||||
AssertUtils.notEmpty(plateDOS,THIS_PLAN_PLATE_DATA_ERROR);
|
|
||||||
|
|
||||||
plateDOS.forEach(f->{
|
|
||||||
f.setIsCutted(cutedType);
|
|
||||||
});
|
|
||||||
|
|
||||||
plateMapper.updateBatch(plateDOS);
|
|
||||||
|
|
||||||
|
// 更新数据库中的板材信息
|
||||||
|
updatePlateData(orderIds, planNos, cutedType);
|
||||||
|
|
||||||
return goodsNum;
|
return goodsNum;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void updateRemainBoardInfo(List<RemainBoardInfo> remainBoardInfos,
|
||||||
|
List<String> goodsIds,
|
||||||
|
List<Integer> goodsNo,
|
||||||
|
Integer cutedType,
|
||||||
|
AtomicLong goodsCount,
|
||||||
|
List<String> planNos) {
|
||||||
|
|
||||||
|
remainBoardInfos.stream()
|
||||||
|
.filter(remainBoard -> goodsIds.contains(remainBoard.getGoodsId()))
|
||||||
|
.flatMap(remainBoard -> remainBoard.getPlaceBoardList().stream())
|
||||||
|
.filter(board -> goodsNo.contains(board.getBoardId()) && !board.getCutedType().equals(cutedType) &&
|
||||||
|
(cutedType.equals(OrderPlateCutStatusEnum.OPENING.getStatus()) ?
|
||||||
|
!board.getCutedType().equals(OrderPlateCutStatusEnum.OPENED.getStatus()) : true))
|
||||||
|
.forEach(board -> {
|
||||||
|
goodsCount.incrementAndGet();
|
||||||
|
board.setCutedType(cutedType);
|
||||||
|
planNos.addAll(board.getBlocks().stream()
|
||||||
|
.map(RemainBoardInfo.Blocks::getBlockId)
|
||||||
|
.toList());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private long updateOptimizeData(OptimizeBoardModelDO optimizeBoardModelDO,
|
||||||
|
long goodsCount,
|
||||||
|
int blockCount,
|
||||||
|
Integer cutedType) {
|
||||||
|
|
||||||
|
long cutedBoardNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBoardNumber()).orElse(0L);
|
||||||
|
long cutedBlockNumber = Optional.ofNullable(optimizeBoardModelDO.getCutedBlockNumber()).orElse(0L);
|
||||||
|
|
||||||
|
if (OrderPlateCutStatusEnum.NOCUTTING.getStatus().equals(cutedType)) {
|
||||||
|
cutedBoardNumber -= goodsCount;
|
||||||
|
cutedBlockNumber -= blockCount;
|
||||||
|
} else if (OrderPlateCutStatusEnum.OPENED.getStatus().equals(cutedType)) {
|
||||||
|
cutedBoardNumber += goodsCount;
|
||||||
|
cutedBlockNumber += blockCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
optimizeBoardModelDO.setCutedBoardNumber(cutedBoardNumber);
|
||||||
|
optimizeBoardModelDO.setCutedBlockNumber(cutedBlockNumber);
|
||||||
|
|
||||||
|
return cutedBoardNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void syncWithElasticsearch(List<RemainBoardInfo> remainBoardInfos,
|
||||||
|
OptimizeBoardModelDO optimizeBoardModelDO,
|
||||||
|
Date date) {
|
||||||
|
|
||||||
|
Map<String, Object> updateData = new HashMap<>();
|
||||||
|
updateData.put("cutedBoardNumber", optimizeBoardModelDO.getCutedBoardNumber());
|
||||||
|
updateData.put("cutedBlockNumber", optimizeBoardModelDO.getCutedBlockNumber());
|
||||||
|
updateData.put("remainBoardInfo", toJsonString(remainBoardInfos));
|
||||||
|
updateData.put(FIELD_UPDATETIME, simpleDateFormat.format(date));
|
||||||
|
|
||||||
|
try {
|
||||||
|
esDocumentService.updateById(ORDER_OPTIMIZE_PLATE_MODEL, optimizeBoardModelDO.getId(), HashMap.class, updateData);
|
||||||
|
|
||||||
|
} catch (IOException | ElasticsearchException e) {
|
||||||
|
log.error("Failed to sync with Elasticsearch: {}", e.getMessage());
|
||||||
|
throw new ServiceException(ES_DATA_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void updatePlateData(List<Long> orderIds, List<String> planNo, Integer cutedType) {
|
||||||
|
List<PlateDO> plateDOS = plateMapper.selectPlateByPlateNo(orderIds, planNo, getUserOrganId());
|
||||||
|
AssertUtils.notEmpty(plateDOS, THIS_PLAN_PLATE_DATA_ERROR);
|
||||||
|
|
||||||
|
if(OrderPlateCutStatusEnum.OPENING.getStatus().equals(cutedType)){
|
||||||
|
|
||||||
|
plateDOS.forEach(plate -> {
|
||||||
|
if( !plate.getIsCutted().equals(cutedType) && !plate.getIsCutted().equals(OrderPlateCutStatusEnum.OPENED.getStatus())){
|
||||||
|
plate.setIsCutted(cutedType);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}else {
|
||||||
|
plateDOS.forEach(plate -> {
|
||||||
|
if(!plate.getIsCutted().equals(cutedType)){
|
||||||
|
plate.setIsCutted(cutedType);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
plateMapper.updateBatch(plateDOS);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateOrderAndPlanByCutStatus(PlanDO planDO,Long goodsNum,Integer cutedType,List<Long> orderIds,Integer boardCount){
|
public void updateOrderAndPlanByCutStatus(PlanDO planDO,Long goodsNum,Integer cutedType,List<Long> orderIds,Integer boardCount){
|
||||||
|
|
||||||
|
|
||||||
|
// 未开料
|
||||||
if(OrderPlateCutStatusEnum.NOCUTTING.getStatus().equals(cutedType)){
|
if(OrderPlateCutStatusEnum.NOCUTTING.getStatus().equals(cutedType)){
|
||||||
|
|
||||||
planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
||||||
@@ -1543,7 +1533,8 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(OrderPlateCutStatusEnum.OPENING.getStatus().equals(cutedType)){
|
// 开料中
|
||||||
|
if(OrderPlateCutStatusEnum.OPENING.getStatus().equals(cutedType) && !planDO.getStatus().equals(OrderPlateCutStatusEnum.OPENED.getStatus())){
|
||||||
|
|
||||||
planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
planDO.setStatus(PlanStatusEnum.OPENING.getStatus());
|
||||||
|
|
||||||
@@ -1559,6 +1550,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 已开料
|
||||||
if(OrderPlateCutStatusEnum.OPENED.getStatus().equals(cutedType)){
|
if(OrderPlateCutStatusEnum.OPENED.getStatus().equals(cutedType)){
|
||||||
|
|
||||||
List<PlateDO> plateDOList = plateMapper.selectNoCutPlateByPlateId(orderIds, getUserOrganId());
|
List<PlateDO> plateDOList = plateMapper.selectNoCutPlateByPlateId(orderIds, getUserOrganId());
|
||||||
@@ -1591,9 +1583,6 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+9
-75
@@ -9,7 +9,6 @@ import co.elastic.clients.elasticsearch.core.search.Hit;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||||
import com.cf.imes.framework.common.enums.GoodsFilterConditionsEnum;
|
|
||||||
import com.cf.imes.framework.common.enums.OrderPlateTypeEnum;
|
import com.cf.imes.framework.common.enums.OrderPlateTypeEnum;
|
||||||
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
import com.cf.imes.framework.common.enums.PlanStatusEnum;
|
||||||
import com.cf.imes.framework.common.enums.PlanTypeEnum;
|
import com.cf.imes.framework.common.enums.PlanTypeEnum;
|
||||||
@@ -60,8 +59,6 @@ import javax.annotation.Resource;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Consumer;
|
|
||||||
import java.util.function.Function;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.ES_DATA_ERROR;
|
import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.ES_DATA_ERROR;
|
||||||
@@ -287,9 +284,6 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
@Override
|
@Override
|
||||||
public PageResult<PlateResList> getOrderPlatePage(NoPlanPlatePageReqVO pageReqVO) {
|
public PageResult<PlateResList> getOrderPlatePage(NoPlanPlatePageReqVO pageReqVO) {
|
||||||
|
|
||||||
// 使用这种方法分页查询速度太慢,所以要自己实现分页
|
|
||||||
// PageDTO<PlateResList> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
|
||||||
|
|
||||||
List<Integer> statusList = new ArrayList<>();
|
List<Integer> statusList = new ArrayList<>();
|
||||||
statusList.add(OrderStatusEnum.NEW_ORDER.getStatus());
|
statusList.add(OrderStatusEnum.NEW_ORDER.getStatus());
|
||||||
statusList.add(OrderStatusEnum.IN_PRODUCTION.getStatus());
|
statusList.add(OrderStatusEnum.IN_PRODUCTION.getStatus());
|
||||||
@@ -303,6 +297,7 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
.eq("o.deleted",false)
|
.eq("o.deleted",false)
|
||||||
.in("o.status",statusList)
|
.in("o.status",statusList)
|
||||||
.isNull("opi.plan_id")
|
.isNull("opi.plan_id")
|
||||||
|
.isNotNull("op.id")
|
||||||
|
|
||||||
.inIfPresent("op.goods_id",pageReqVO.getGoodsIdList())
|
.inIfPresent("op.goods_id",pageReqVO.getGoodsIdList())
|
||||||
.likeIfPresent("o.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId() : null)
|
.likeIfPresent("o.id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId() : null)
|
||||||
@@ -323,7 +318,6 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
.likeIfPresent("op.remark",pageReqVO.getRemark())
|
.likeIfPresent("op.remark",pageReqVO.getRemark())
|
||||||
.orderByDesc("o.id");
|
.orderByDesc("o.id");
|
||||||
|
|
||||||
List<Long> plateCount = orderMapper.selectNoPlanOrderPlateCount(queryWrapperX);
|
|
||||||
|
|
||||||
List<PlateResList> plateResLists = orderMapper.selectNoPlanOrderPlateList(queryWrapperX,pageNo,pageReqVO.getPageSize());
|
List<PlateResList> plateResLists = orderMapper.selectNoPlanOrderPlateList(queryWrapperX,pageNo,pageReqVO.getPageSize());
|
||||||
|
|
||||||
@@ -332,17 +326,15 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
return new PageResult<>();
|
return new PageResult<>();
|
||||||
|
|
||||||
}
|
}
|
||||||
// List<Long> plateIds = plateResLists.stream().map(PlateResList::getPlateId).toList();
|
|
||||||
//
|
|
||||||
// List<OrderModelDO> orderModelDOS = esUtils.getEsDocument(FIELD_PLATE_ID, plateIds, plateIds.size(), ORDER_PLATE_MODEL, OrderModelDO.class);
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// PlateModelDetailRespVO.builder()
|
|
||||||
// .plateResLists(new PageResult<>(plateResLists, (long) plateCount.size()))
|
|
||||||
// .plateModels(orderModelDOS)
|
|
||||||
// .build();
|
|
||||||
|
|
||||||
return new PageResult<>(plateResLists, (long) plateCount.size());
|
queryWrapperX
|
||||||
|
.groupBy("o.id");
|
||||||
|
|
||||||
|
List<Long> plateCount = orderMapper.selectNoPlanOrderPlateCount(queryWrapperX);
|
||||||
|
|
||||||
|
long sum = plateCount.stream().mapToLong(Long::longValue).sum();
|
||||||
|
|
||||||
|
return new PageResult<>(plateResLists, sum);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -557,62 +549,4 @@ public class PlateServiceImpl implements PlateService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static void goodsFilter(List<String> filters, List<GoodsDO> goodsDOS,GoodsPlateFilterPageReqVO pageReqVO) {
|
|
||||||
|
|
||||||
int goodsNum = goodsDOS.size();
|
|
||||||
|
|
||||||
|
|
||||||
// 查询条件
|
|
||||||
Map<String, Function<GoodsDO, ?>> attributeGetters = new HashMap<>();
|
|
||||||
attributeGetters.put(GoodsFilterConditionsEnum.THICKNESS.getFilterField(), GoodsDO::getThickness);
|
|
||||||
attributeGetters.put(GoodsFilterConditionsEnum.MATERIAL.getFilterField(), GoodsDO::getMaterial);
|
|
||||||
attributeGetters.put(GoodsFilterConditionsEnum.COLOR.getFilterField(), GoodsDO::getColor);
|
|
||||||
attributeGetters.put(GoodsFilterConditionsEnum.TEXTURE.getFilterField(), GoodsDO::getTexture);
|
|
||||||
attributeGetters.put(GoodsFilterConditionsEnum.BRAND.getFilterField(), GoodsDO::getBrand);
|
|
||||||
attributeGetters.put(GoodsFilterConditionsEnum.WIDTH.getFilterField(), GoodsDO::getWidth);
|
|
||||||
attributeGetters.put(GoodsFilterConditionsEnum.HEIGHT.getFilterField(), GoodsDO::getHeight);
|
|
||||||
|
|
||||||
// 赋值
|
|
||||||
Map<String, Consumer<Object>> attributeSetters = new HashMap<>();
|
|
||||||
attributeSetters.put(GoodsFilterConditionsEnum.THICKNESS.getFilterField(), value -> pageReqVO.setThickness((BigDecimal) value));
|
|
||||||
attributeSetters.put(GoodsFilterConditionsEnum.MATERIAL.getFilterField(), value -> pageReqVO.setMaterial((String) value));
|
|
||||||
attributeSetters.put(GoodsFilterConditionsEnum.COLOR.getFilterField(), value -> pageReqVO.setColor((String) value));
|
|
||||||
// attributeSetters.put(GoodsFilterConditionsEnum.TEXTURE.getFilterField(), value -> pageReqVO.setTexture((Boolean) value));
|
|
||||||
// attributeSetters.put(GoodsFilterConditionsEnum.BRAND.getFilterField(), value -> pageReqVO.setBrand((String) value));
|
|
||||||
// attributeSetters.put(GoodsFilterConditionsEnum.WIDTH.getFilterField(), value -> pageReqVO.setWidth((BigDecimal) value));
|
|
||||||
// attributeSetters.put(GoodsFilterConditionsEnum.HEIGHT.getFilterField(), value -> pageReqVO.setHeight((BigDecimal) value));
|
|
||||||
|
|
||||||
for (String filter : filters) {
|
|
||||||
Function<GoodsDO, ?> getter = attributeGetters.get(filter);
|
|
||||||
|
|
||||||
Consumer<Object> setter = attributeSetters.get(filter);
|
|
||||||
|
|
||||||
if (getter == null || setter == null) {
|
|
||||||
throw exception(PLAN_MIXED_DATA_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取当前属性的第一个值
|
|
||||||
Object attributeValue = goodsDOS.stream()
|
|
||||||
.map(getter)
|
|
||||||
.findFirst()
|
|
||||||
.orElse(null);
|
|
||||||
|
|
||||||
// 根据属性值过滤列表
|
|
||||||
long count = goodsDOS.stream()
|
|
||||||
.filter(good -> attributeValue.equals(getter.apply(good)))
|
|
||||||
.count();
|
|
||||||
|
|
||||||
if (goodsNum != count) {
|
|
||||||
throw exception(PLAN_MIXED_ORDER_ERROR,GoodsFilterConditionsEnum.getValueByKey(filter));
|
|
||||||
}
|
|
||||||
|
|
||||||
// 设置属性值
|
|
||||||
setter.accept(attributeValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
+2
-2
@@ -412,12 +412,12 @@
|
|||||||
|
|
||||||
|
|
||||||
select
|
select
|
||||||
op.id
|
count(op.id)
|
||||||
|
|
||||||
from orders o
|
from orders o
|
||||||
left join order_plate op on o.organ_id = op.organ_id and o.id = op.order_id
|
left join order_plate op on o.organ_id = op.organ_id and o.id = op.order_id
|
||||||
left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id
|
|
||||||
left join order_goods og on op.organ_id = og.organ_id and op.order_id = og.order_id and op.goods_id = og.id
|
left join order_goods og on op.organ_id = og.organ_id and op.order_id = og.order_id and op.goods_id = og.id
|
||||||
|
left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id
|
||||||
|
|
||||||
${ew.customSqlSegment}
|
${ew.customSqlSegment}
|
||||||
|
|
||||||
|
|||||||
+7
-28
@@ -34,7 +34,7 @@ public class ErrorCodeConstants {
|
|||||||
public static final ErrorCode ROLE_CODE_DUPLICATE = new ErrorCode(1_002_002_002, "已经存在编码为【{}】的角色");
|
public static final ErrorCode ROLE_CODE_DUPLICATE = new ErrorCode(1_002_002_002, "已经存在编码为【{}】的角色");
|
||||||
public static final ErrorCode ROLE_CAN_NOT_UPDATE_SYSTEM_TYPE_ROLE = new ErrorCode(1_002_002_003, "不能操作类型为系统内置的角色");
|
public static final ErrorCode ROLE_CAN_NOT_UPDATE_SYSTEM_TYPE_ROLE = new ErrorCode(1_002_002_003, "不能操作类型为系统内置的角色");
|
||||||
public static final ErrorCode ROLE_IS_DISABLE = new ErrorCode(1_002_002_004, "名字为【{}】的角色已被禁用");
|
public static final ErrorCode ROLE_IS_DISABLE = new ErrorCode(1_002_002_004, "名字为【{}】的角色已被禁用");
|
||||||
public static final ErrorCode ROLE_ADMIN_CODE_ERROR = new ErrorCode(1_002_002_005, "编码【{}】不能使用");
|
public static final ErrorCode ROLE_ADMIN_CODE_ERROR = new ErrorCode(1_002_002_005, "编码【{}】不能使用");
|
||||||
public static final ErrorCode ROLE_ME_ERROR = new ErrorCode(1_002_002_006, "不可为自身分配角色");
|
public static final ErrorCode ROLE_ME_ERROR = new ErrorCode(1_002_002_006, "不可为自身分配角色");
|
||||||
public static final ErrorCode ROLE_NOT_SUPERADMIN_NO_ORGAN_ID_OPER_ERROR = new ErrorCode(1_002_002_007, "非超管分配权限");
|
public static final ErrorCode ROLE_NOT_SUPERADMIN_NO_ORGAN_ID_OPER_ERROR = new ErrorCode(1_002_002_007, "非超管分配权限");
|
||||||
public static final ErrorCode BUILDIN_ROLE_MODIFY_PERMISSION_ERROR = new ErrorCode(1_002_002_008, "修改内置角色下菜单权限的权限不足");
|
public static final ErrorCode BUILDIN_ROLE_MODIFY_PERMISSION_ERROR = new ErrorCode(1_002_002_008, "修改内置角色下菜单权限的权限不足");
|
||||||
@@ -212,14 +212,10 @@ public class ErrorCodeConstants {
|
|||||||
public static final ErrorCode MACHINE_NOT_EXISTS = new ErrorCode(1_002_029_000, "机台不存在");
|
public static final ErrorCode MACHINE_NOT_EXISTS = new ErrorCode(1_002_029_000, "机台不存在");
|
||||||
public static final ErrorCode MACHINE_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_029_001, "机台模板不存在");
|
public static final ErrorCode MACHINE_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_029_001, "机台模板不存在");
|
||||||
public static final ErrorCode DEFAULT_TEMPLATE_COUNT = new ErrorCode(1_002_029_002, "默认模板数量异常");
|
public static final ErrorCode DEFAULT_TEMPLATE_COUNT = new ErrorCode(1_002_029_002, "默认模板数量异常");
|
||||||
public static final ErrorCode DEFAULT_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_029_003, "该类型机台默认模板不存在");
|
|
||||||
public static final ErrorCode DEFAULT_TEMPLATE_NOT_DELETED = new ErrorCode(1_002_029_004, "不能删除默认模板");
|
|
||||||
public static final ErrorCode NOT_TEMPLATE_AUTH = new ErrorCode(1_002_029_005, "该组织无此机台模板权限");
|
|
||||||
public static final ErrorCode NOT_MACHINE_AUTH = new ErrorCode(1_002_029_005, "该组织无此机台权限");
|
|
||||||
public static final ErrorCode THE_CURRENT_MACHINE_IS_ALREADY_IN_USE = new ErrorCode(1_002_029_006, "当前机台已使用,禁止删除");
|
public static final ErrorCode THE_CURRENT_MACHINE_IS_ALREADY_IN_USE = new ErrorCode(1_002_029_006, "当前机台已使用,禁止删除");
|
||||||
public static final ErrorCode MACHINE_ERROR = new ErrorCode(1_002_029_007, "当前机台错误,请重新选择机台");
|
public static final ErrorCode MACHINE_ERROR = new ErrorCode(1_002_029_007, "当前机台错误,请重新选择机台");
|
||||||
public static final ErrorCode THE_CURRENT_BRAND_OF_THE_MACHINE_EXISTS = new ErrorCode(1_002_029_008, "当前机台配置的模板中,该品牌已存在,请重新输入品牌名称");
|
public static final ErrorCode THE_CURRENT_BRAND_OF_THE_MACHINE_EXISTS = new ErrorCode(1_002_029_008, "当前机台配置的模板中,该品牌已存在,请重新输入品牌名称");
|
||||||
public static final ErrorCode THE_MODEL_OF_THE_MACHINE_DOES_NOT_EXIST = new ErrorCode(1_002_029_009, "该型号的机台不存在,请进行配置");
|
public static final ErrorCode THE_MODEL_OF_THE_MACHINE_DOES_NOT_EXIST = new ErrorCode(1_002_029_009, "该型号的机台模板不存在,请进行配置");
|
||||||
public static final ErrorCode THE_CURRENT_BRAND = new ErrorCode(1_002_029_010, "品牌ID错误,或品牌不存在");
|
public static final ErrorCode THE_CURRENT_BRAND = new ErrorCode(1_002_029_010, "品牌ID错误,或品牌不存在");
|
||||||
public static final ErrorCode MACHINE_NUM_ERROR = new ErrorCode(1_002_029_011, "当前组织该类型的机台创建已达到最大值,无法继续创建");
|
public static final ErrorCode MACHINE_NUM_ERROR = new ErrorCode(1_002_029_011, "当前组织该类型的机台创建已达到最大值,无法继续创建");
|
||||||
public static final ErrorCode MACHINE_NAME_ERROR = new ErrorCode(1_002_029_012, "当前机台名称已存在,请重新输入机台名称");
|
public static final ErrorCode MACHINE_NAME_ERROR = new ErrorCode(1_002_029_012, "当前机台名称已存在,请重新输入机台名称");
|
||||||
@@ -236,7 +232,6 @@ public class ErrorCodeConstants {
|
|||||||
public static final ErrorCode DEFAULT_LABEL_NOT_EXISTS = new ErrorCode(1_002_300_002, "该类型标签默认模板不存在");
|
public static final ErrorCode DEFAULT_LABEL_NOT_EXISTS = new ErrorCode(1_002_300_002, "该类型标签默认模板不存在");
|
||||||
public static final ErrorCode MACHINE_USE_LABEL = new ErrorCode(1_002_300_003, "当前标签已有机台使用,无法删除");
|
public static final ErrorCode MACHINE_USE_LABEL = new ErrorCode(1_002_300_003, "当前标签已有机台使用,无法删除");
|
||||||
public static final ErrorCode DEFAULT_NOT_DELETED = new ErrorCode(1_002_300_004, "默认标签模板无法删除");
|
public static final ErrorCode DEFAULT_NOT_DELETED = new ErrorCode(1_002_300_004, "默认标签模板无法删除");
|
||||||
public static final ErrorCode LABEL_ERROR = new ErrorCode(1_002_300_005, "当前标签错误,请重新配置标签");
|
|
||||||
public static final ErrorCode LABEL_IS_USE_ERROR = new ErrorCode(1_002_300_006, "当前标签打包设置中已有用户使用,无法删除");
|
public static final ErrorCode LABEL_IS_USE_ERROR = new ErrorCode(1_002_300_006, "当前标签打包设置中已有用户使用,无法删除");
|
||||||
|
|
||||||
|
|
||||||
@@ -278,7 +273,6 @@ public class ErrorCodeConstants {
|
|||||||
|
|
||||||
|
|
||||||
// ========== 配件信息 1-002-035-000 ==========
|
// ========== 配件信息 1-002-035-000 ==========
|
||||||
public static final ErrorCode THE_ACCESSORY_NAME_CANNOT_BE_DUPLICATED = new ErrorCode(1_002_035_001, "配件名称不能重复");
|
|
||||||
public static final ErrorCode ORDER_PARTS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_035_002, "生产配件导入数据不可以为空");
|
public static final ErrorCode ORDER_PARTS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_035_002, "生产配件导入数据不可以为空");
|
||||||
|
|
||||||
|
|
||||||
@@ -309,35 +303,21 @@ public class ErrorCodeConstants {
|
|||||||
public static final ErrorCode ORDER_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_006, "生产单对应的板材造型数据为空,请重新导入生产单");
|
public static final ErrorCode ORDER_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_006, "生产单对应的板材造型数据为空,请重新导入生产单");
|
||||||
public static final ErrorCode ORDER_PLAN_PLATE_ERROR = new ErrorCode(1_002_041_007, "当前排单对应的板材数据有异常,请查看板材信息或联系客服");
|
public static final ErrorCode ORDER_PLAN_PLATE_ERROR = new ErrorCode(1_002_041_007, "当前排单对应的板材数据有异常,请查看板材信息或联系客服");
|
||||||
public static final ErrorCode ORDER_PLAN_ERROR = new ErrorCode(1_002_041_008, "当前排单对应的生产单数据为空,请删掉排单并重新创建排单");
|
public static final ErrorCode ORDER_PLAN_ERROR = new ErrorCode(1_002_041_008, "当前排单对应的生产单数据为空,请删掉排单并重新创建排单");
|
||||||
public static final ErrorCode ORDER_PLAN_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_009, "当前排单对应的板材造型数据为空,请重新进行排单或重新导入生产单");
|
public static final ErrorCode ORDER_PLAN_PLATE_MODEL_DATE_ERROR = new ErrorCode(1_002_041_009, "当前排单对应的板材造型数据为空,请重新导入生产单并排单");
|
||||||
public static final ErrorCode ORDER_GOODS_DATA_ERROR = new ErrorCode(1_002_041_010, "当前大板数据异常,请检查大板信息或者联系客服");
|
public static final ErrorCode ORDER_GOODS_DATA_ERROR = new ErrorCode(1_002_041_010, "当前大板数据异常,请检查大板信息或者联系客服");
|
||||||
public static final ErrorCode ORDER_PACK_DATA_NULL_ERROR = new ErrorCode(1_002_041_011, "当前包裹数据为空,请重新查看包裹数据或联系客服");
|
public static final ErrorCode ORDER_PACK_DATA_NULL_ERROR = new ErrorCode(1_002_041_011, "当前包裹数据为空,请重新查看包裹数据或联系客服");
|
||||||
public static final ErrorCode ORDER_BODY_DATA_ERROR = new ErrorCode(1_002_041_012, "当前柜体对应的板材数据为空,无法删除");
|
|
||||||
public static final ErrorCode ORDER_PLAN_NO_OPTIMIZE_ERROR = new ErrorCode(1_002_041_013, "当前排单还未保存优化结果,无法进行开料");
|
|
||||||
public static final ErrorCode ORDER_PLAN_NO_OPTIMIZE_UPDATE_ERROR = new ErrorCode(1_002_041_014, "当前排单还未保存优化结果,无法对开料结果进行修改");
|
public static final ErrorCode ORDER_PLAN_NO_OPTIMIZE_UPDATE_ERROR = new ErrorCode(1_002_041_014, "当前排单还未保存优化结果,无法对开料结果进行修改");
|
||||||
public static final ErrorCode ORDER_NO_DATA_ERROR = new ErrorCode(1_002_041_015, "生产单信息错误,请重新进行拆包");
|
public static final ErrorCode ORDER_NO_DATA_ERROR = new ErrorCode(1_002_041_015, "生产单信息为空,请检查生产单信息");
|
||||||
public static final ErrorCode ORDER_ROOM_ERROR = new ErrorCode(1_002_041_015, "当前板材没有选择房间,请选择");
|
|
||||||
public static final ErrorCode ORDER_BODY_ERROR = new ErrorCode(1_002_041_015, "当前板材没有选择柜体,请选择");
|
|
||||||
public static final ErrorCode ORDER_ERROR = new ErrorCode(1_002_041_015, "当前板材没有选择生产单,请选择");
|
|
||||||
public static final ErrorCode MACHINE_NO_DATA_ERROR = new ErrorCode(1_002_041_016, "当前所选机台有误,请检查机台信息或重新选择机台");
|
|
||||||
public static final ErrorCode PLATE_MULTIPLE_ERROR = new ErrorCode(1_002_041_017, "板材倍数有误,倍数必须大于 0");
|
|
||||||
public static final ErrorCode ORDER_PACK_ERROR = new ErrorCode(1_002_041_018, "当前生产单信息有误,请重新选择包裹");
|
public static final ErrorCode ORDER_PACK_ERROR = new ErrorCode(1_002_041_018, "当前生产单信息有误,请重新选择包裹");
|
||||||
public static final ErrorCode ORDER_PACK_DATA_ERROR = new ErrorCode(1_002_041_019, "当前包裹信息有误,请重新选择包裹");
|
public static final ErrorCode ORDER_PACK_DATA_ERROR = new ErrorCode(1_002_041_019, "当前包裹信息有误,请重新选择包裹");
|
||||||
public static final ErrorCode PLAN_BODY_DATA_ERROR = new ErrorCode(1_002_041_019, "当前排单的生产单对应的柜体数据异常,请查看柜体数据或联系客服");
|
public static final ErrorCode PLAN_BODY_DATA_ERROR = new ErrorCode(1_002_041_019, "当前排单的生产单对应的柜体数据异常,请查看柜体数据或联系客服");
|
||||||
public static final ErrorCode CREATE_PLAN_DATA_ERROR = new ErrorCode(1_002_041_020, "排单优化数据异常,请重新进行优化或者删除排单然后重新创建排单");
|
|
||||||
public static final ErrorCode PLAN_MIXED_ORDER_ERROR = new ErrorCode(1_002_041_021, "当前选择的混排板材条件:' {} ' 不相同,无法混排,请重新选择板材进行排单!");
|
|
||||||
public static final ErrorCode BRANCHING_DEFAULT_SETTING_ERROR = new ErrorCode(1_002_041_023, "当前组织智能分线无默认配置,请进行配置");
|
|
||||||
public static final ErrorCode ADVANCED_SCREENING_CONFIG_ERROR = new ErrorCode(1_002_041_024, "当前筛选的配置有误,请重新进行配置");
|
public static final ErrorCode ADVANCED_SCREENING_CONFIG_ERROR = new ErrorCode(1_002_041_024, "当前筛选的配置有误,请重新进行配置");
|
||||||
public static final ErrorCode CONFIG_DATA_ERROR = new ErrorCode(1_002_041_025, "当前配置为空,保存失败,请添加配置后再保存");
|
|
||||||
public static final ErrorCode PLAN_MIXED_DATA_ERROR = new ErrorCode(1_002_041_026, "当前混排条件错误,无法混排,请重新选择条件进行混单!");
|
|
||||||
public static final ErrorCode PLAN_GOODS_DATA_ERROR = new ErrorCode(1_002_041_027, "当前排单未保存大板和小板信息,请重新进行排单");
|
public static final ErrorCode PLAN_GOODS_DATA_ERROR = new ErrorCode(1_002_041_027, "当前排单未保存大板和小板信息,请重新进行排单");
|
||||||
public static final ErrorCode PLAN_PLATE_IS_CUTTED = new ErrorCode(1_002_041_028, "当前删除的小板中已有小板开料,无法删除!");
|
public static final ErrorCode PLAN_PLATE_IS_CUTTED = new ErrorCode(1_002_041_028, "当前删除的小板中已有小板开料,无法删除!");
|
||||||
public static final ErrorCode PROCESS_CONFIG_DATA_ERROR = new ErrorCode(1_002_041_029, "当前方案组的优化数据未保存,请保存或重新执行方案组");
|
|
||||||
public static final ErrorCode PLAN_NO_ACTUAL_PLATE = new ErrorCode(1_002_041_030, "当前排单未选择实际开料的大板信息,无法保存优化结果");
|
public static final ErrorCode PLAN_NO_ACTUAL_PLATE = new ErrorCode(1_002_041_030, "当前排单未选择实际开料的大板信息,无法保存优化结果");
|
||||||
public static final ErrorCode PROCESS_CONFIG_DEFAULT_DATA_ERROR = new ErrorCode(1_002_041_031, "当前组织没有默认的加工方案组,请在系统配置中进行配置");
|
public static final ErrorCode PROCESS_CONFIG_DEFAULT_DATA_ERROR = new ErrorCode(1_002_041_031, "当前组织没有默认的加工方案组,请在系统配置中进行配置");
|
||||||
public static final ErrorCode THIS_PROCESS_CONFIG_DATA_ERROR = new ErrorCode(1_002_041_032, "当前选择的加工方案组配置有误,请选择其他方案组或重新配置该方案组");
|
public static final ErrorCode THIS_PROCESS_CONFIG_DATA_ERROR = new ErrorCode(1_002_041_032, "当前选择的加工方案组配置有误,请选择其他方案组或重新配置该方案组");
|
||||||
public static final ErrorCode CREAT_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_033, "当前板材已有小板创建板材,请重新查询生产单信息再创建");
|
public static final ErrorCode CREAT_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_033, "当前板材已有小板创建板材,请重新查询生产单信息再创建");
|
||||||
public static final ErrorCode UPDATE_NO_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_034, "当前排单无开料板,无法取消开料,请重新尝试");
|
|
||||||
public static final ErrorCode PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_035, "当前排单没有选择板材数据,请进行选择");
|
public static final ErrorCode PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_035, "当前排单没有选择板材数据,请进行选择");
|
||||||
public static final ErrorCode DELETE_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_036, "当前删除的小板信息有误,请检查小板是否存在或重新创建排单");
|
public static final ErrorCode DELETE_PLAN_PLATE_DATA_ERROR = new ErrorCode(1_002_041_036, "当前删除的小板信息有误,请检查小板是否存在或重新创建排单");
|
||||||
public static final ErrorCode PLAN_PLATE_OPTIMIZE_DATA_ERROR = new ErrorCode(1_002_041_037, "当前排单对应的优化数据异常,请重新进行优化");
|
public static final ErrorCode PLAN_PLATE_OPTIMIZE_DATA_ERROR = new ErrorCode(1_002_041_037, "当前排单对应的优化数据异常,请重新进行优化");
|
||||||
@@ -346,6 +326,7 @@ public class ErrorCodeConstants {
|
|||||||
public static final ErrorCode PLAN_PROCESS_CONFIG_IS_NULL = new ErrorCode(1_002_041_040, "排单:{} 对应的方案组为空,请进行配置");
|
public static final ErrorCode PLAN_PROCESS_CONFIG_IS_NULL = new ErrorCode(1_002_041_040, "排单:{} 对应的方案组为空,请进行配置");
|
||||||
public static final ErrorCode PLAN_PROCESS_CONFIG_ALL_IS_NULL = new ErrorCode(1_002_041_041, "当前所选排单对应的方案组配置均为空,请重新进行方案组配置");
|
public static final ErrorCode PLAN_PROCESS_CONFIG_ALL_IS_NULL = new ErrorCode(1_002_041_041, "当前所选排单对应的方案组配置均为空,请重新进行方案组配置");
|
||||||
public static final ErrorCode THIS_PLAN_IS_LOCK = new ErrorCode(1_002_041_042, "当前排单已被锁定,无法进行优化,请解锁后再进行优化");
|
public static final ErrorCode THIS_PLAN_IS_LOCK = new ErrorCode(1_002_041_042, "当前排单已被锁定,无法进行优化,请解锁后再进行优化");
|
||||||
|
public static final ErrorCode THIS_PLAN_OPTIMIZE_DATA_ERROR = new ErrorCode(1_002_041_044, "当前排单已全部开料,无法进行再次优化");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -364,10 +345,8 @@ public class ErrorCodeConstants {
|
|||||||
|
|
||||||
//=========== 用户的系统配置 1-002-039-000 ============
|
//=========== 用户的系统配置 1-002-039-000 ============
|
||||||
public static final ErrorCode CURRENTLY_NO_CONFIGURATION_AVAILABLE = new ErrorCode(1_002_039_001, "当前没有{}配置信息,请前往设置配置");
|
public static final ErrorCode CURRENTLY_NO_CONFIGURATION_AVAILABLE = new ErrorCode(1_002_039_001, "当前没有{}配置信息,请前往设置配置");
|
||||||
public static final ErrorCode BRANCHING_SETTING_NAME_REPEAT = new ErrorCode(1_002_039_002, "分线配置名称重复,请重新设置");
|
|
||||||
public static final ErrorCode BRANCHING_SETTING_RULE_SAVE_CHECK_ERROR = new ErrorCode(1_002_039_003, "智能分线配置保存解析失败,数据有误,请检查配置规则或联系客服");
|
|
||||||
public static final ErrorCode BRANCHING_SETTING_SAVE_ERROR = new ErrorCode(1_002_039_004, "机台:{} 的配置为空,请添加配置");
|
|
||||||
public static final ErrorCode BRANCHING_SETTING_COUNT_ERROR = new ErrorCode(1_002_039_005, "智能分线配置机台数量必须大于2才能保存");
|
|
||||||
|
|
||||||
//=========== 系统配置 1-002-040-000 ============
|
//=========== 系统配置 1-002-040-000 ============
|
||||||
public static final ErrorCode SYSTEM_CONFIG_NOT_EXISTS = new ErrorCode(1_002_040_001, "系统配置不存在");
|
public static final ErrorCode SYSTEM_CONFIG_NOT_EXISTS = new ErrorCode(1_002_040_001, "系统配置不存在");
|
||||||
|
|||||||
-22
@@ -2,11 +2,8 @@ package com.cf.imes.module.system.controller.admin.setting;
|
|||||||
|
|
||||||
|
|
||||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
|
||||||
import com.cf.imes.module.system.controller.admin.setting.vo.PackageConfigReqVO;
|
import com.cf.imes.module.system.controller.admin.setting.vo.PackageConfigReqVO;
|
||||||
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigRespVO;
|
|
||||||
import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO;
|
import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO;
|
||||||
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
|
|
||||||
import com.cf.imes.module.system.service.setting.SettingService;
|
import com.cf.imes.module.system.service.setting.SettingService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
@@ -62,23 +59,4 @@ public class SettingController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/selectDefault")
|
|
||||||
@Operation(summary = "获取默认的智能分线配置")
|
|
||||||
public CommonResult<ConfigRespVO> selectDefaultBranching() {
|
|
||||||
SystemConfigDO systemConfigDO = settingService.selectDefaultBranching();
|
|
||||||
return success(BeanUtils.toBean(systemConfigDO, ConfigRespVO.class));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/selectScheme")
|
|
||||||
@Operation(summary = "根据加工方案ID获取加工方案的所有配置")
|
|
||||||
public CommonResult<ConfigRespVO> getProcessScheme(@RequestParam Long id) {
|
|
||||||
SystemConfigDO systemConfigDO = settingService.selectDefaultBranching();
|
|
||||||
return success(BeanUtils.toBean(systemConfigDO, ConfigRespVO.class));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
-3
@@ -3,7 +3,6 @@ package com.cf.imes.module.system.service.setting;
|
|||||||
|
|
||||||
import com.cf.imes.module.system.controller.admin.setting.vo.PackageConfigReqVO;
|
import com.cf.imes.module.system.controller.admin.setting.vo.PackageConfigReqVO;
|
||||||
import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO;
|
import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO;
|
||||||
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
|
|
||||||
|
|
||||||
public interface SettingService {
|
public interface SettingService {
|
||||||
|
|
||||||
@@ -14,6 +13,4 @@ public interface SettingService {
|
|||||||
Long updateSetting(PackageConfigReqVO reqVO);
|
Long updateSetting(PackageConfigReqVO reqVO);
|
||||||
|
|
||||||
PackageConfigDO selectSetting(Integer type);
|
PackageConfigDO selectSetting(Integer type);
|
||||||
|
|
||||||
SystemConfigDO selectDefaultBranching();
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-15
@@ -2,12 +2,10 @@ package com.cf.imes.module.system.service.setting;
|
|||||||
|
|
||||||
|
|
||||||
import com.cf.imes.framework.common.enums.UserSettingTypeEnum;
|
import com.cf.imes.framework.common.enums.UserSettingTypeEnum;
|
||||||
import com.cf.imes.framework.common.util.Assert.AssertUtils;
|
|
||||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||||
import com.cf.imes.framework.security.core.LoginUser;
|
import com.cf.imes.framework.security.core.LoginUser;
|
||||||
import com.cf.imes.module.system.controller.admin.setting.vo.PackageConfigReqVO;
|
import com.cf.imes.module.system.controller.admin.setting.vo.PackageConfigReqVO;
|
||||||
import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO;
|
import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO;
|
||||||
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
|
|
||||||
import com.cf.imes.module.system.dal.mysql.setting.PackageConfigMapper;
|
import com.cf.imes.module.system.dal.mysql.setting.PackageConfigMapper;
|
||||||
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigMapper;
|
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigMapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -18,7 +16,7 @@ import javax.annotation.Resource;
|
|||||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.cf.imes.framework.common.util.json.JsonUtils.unzipString;
|
import static com.cf.imes.framework.common.util.json.JsonUtils.unzipString;
|
||||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
||||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
|
import static com.cf.imes.module.system.enums.ErrorCodeConstants.CURRENTLY_NO_CONFIGURATION_AVAILABLE;
|
||||||
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -90,16 +88,4 @@ public class SettingServiceImpl implements SettingService{
|
|||||||
return packageConfigDO;
|
return packageConfigDO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SystemConfigDO selectDefaultBranching() {
|
|
||||||
|
|
||||||
SystemConfigDO systemConfigDO = systemConfigMapper.selectDefaultBranching();
|
|
||||||
|
|
||||||
AssertUtils.notEmpty(systemConfigDO,BRANCHING_DEFAULT_SETTING_ERROR);
|
|
||||||
|
|
||||||
return systemConfigDO;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-57
@@ -1,10 +1,8 @@
|
|||||||
package com.cf.imes.module.system.service.systemconfig.factory.service.impl;
|
package com.cf.imes.module.system.service.systemconfig.factory.service.impl;
|
||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.cf.imes.framework.common.enums.CommonStatusEnum;
|
import com.cf.imes.framework.common.enums.CommonStatusEnum;
|
||||||
import com.cf.imes.framework.common.exception.ServiceException;
|
|
||||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||||
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigDeleteReqVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigDeleteReqVO;
|
||||||
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigPageReqVO;
|
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigPageReqVO;
|
||||||
@@ -13,16 +11,11 @@ import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateSt
|
|||||||
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
|
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
|
||||||
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigMapper;
|
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigMapper;
|
||||||
import com.cf.imes.module.system.service.systemconfig.factory.service.AbstractSystemConfigServiceHandler;
|
import com.cf.imes.module.system.service.systemconfig.factory.service.AbstractSystemConfigServiceHandler;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
||||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.BRANCHING_SETTING_RULE_SAVE_CHECK_ERROR;
|
|
||||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.BRANCHING_SETTING_SAVE_ERROR;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 智能分线生成服务
|
* @author 智能分线生成服务
|
||||||
@@ -48,23 +41,8 @@ public class IntellectBranchingService extends AbstractSystemConfigServiceHandle
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void checkValid(String setting) {
|
public void checkValid(String setting) {
|
||||||
//
|
|
||||||
// JSONArray jsonArray = JSON.parseArray(setting);
|
|
||||||
//
|
|
||||||
// for (int i = 0; i < jsonArray.size(); i++) {
|
|
||||||
//
|
|
||||||
// JSONObject jsonObject = jsonArray.getJSONObject(i);
|
|
||||||
//
|
|
||||||
// checkMachineId(jsonObject.getString("machineId"));
|
|
||||||
// String machineName = jsonObject.getString("machineName");
|
|
||||||
// checkMachineName(machineName);
|
|
||||||
// checkMachineConfig(jsonObject.get("machineConfig"),machineName);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if(jsonArray.size() < 2){
|
|
||||||
// throw new ServiceException(BRANCHING_SETTING_COUNT_ERROR);
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
// todo checkValid
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -109,39 +87,5 @@ public class IntellectBranchingService extends AbstractSystemConfigServiceHandle
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 校验 机台ID
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private void checkMachineId(String machineId) {
|
|
||||||
if (StringUtils.isBlank(machineId)) {
|
|
||||||
throw new ServiceException(BRANCHING_SETTING_RULE_SAVE_CHECK_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 校验 机台名称
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private void checkMachineName(String machineName) {
|
|
||||||
if (StringUtils.isBlank(machineName)) {
|
|
||||||
throw new ServiceException(BRANCHING_SETTING_RULE_SAVE_CHECK_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 校验 机台分流条件
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private void checkMachineConfig(Object machineConfig,String machineName) {
|
|
||||||
if (ObjectUtil.isEmpty(machineConfig)) {
|
|
||||||
throw exception(BRANCHING_SETTING_SAVE_ERROR,machineName);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user