diff --git a/cf-dependencies/pom.xml b/cf-dependencies/pom.xml
index 05d4205d2..78ac4e6b5 100644
--- a/cf-dependencies/pom.xml
+++ b/cf-dependencies/pom.xml
@@ -29,8 +29,7 @@
3.5.5
4.3.0
1.4.10
- 3.18.0
-
+ 3.36.0
8.1.3.62
8.8.1
2.1.1
@@ -284,6 +283,18 @@
org.redisson
redisson-spring-boot-starter
${redisson.version}
+
+
+ org.redisson
+
+ redisson-spring-data-33
+
+
+
+
+ org.redisson
+ redisson-spring-data-27
+ ${redisson.version}
diff --git a/cf-framework/cf-spring-boot-starter-redis/pom.xml b/cf-framework/cf-spring-boot-starter-redis/pom.xml
index a1ecea901..3855ecb07 100644
--- a/cf-framework/cf-spring-boot-starter-redis/pom.xml
+++ b/cf-framework/cf-spring-boot-starter-redis/pom.xml
@@ -26,6 +26,10 @@
org.redisson
redisson-spring-boot-starter
+
+ org.redisson
+ redisson-spring-data-27
+
org.springframework.boot
diff --git a/cf-framework/cf-spring-boot-starter-redis/src/main/java/com/cf/imes/framework/redis/config/ChenfengRedisEncryptAutoConfiguration.java b/cf-framework/cf-spring-boot-starter-redis/src/main/java/com/cf/imes/framework/redis/config/ChenfengRedisEncryptAutoConfiguration.java
index 490d1ad50..415725d3c 100644
--- a/cf-framework/cf-spring-boot-starter-redis/src/main/java/com/cf/imes/framework/redis/config/ChenfengRedisEncryptAutoConfiguration.java
+++ b/cf-framework/cf-spring-boot-starter-redis/src/main/java/com/cf/imes/framework/redis/config/ChenfengRedisEncryptAutoConfiguration.java
@@ -4,8 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
import com.cf.imes.framework.common.util.encrypt.AesUtils;
import org.redisson.config.ClusterServersConfig;
import org.redisson.config.Config;
-import org.redisson.config.MasterSlaveServersConfig;
-import org.redisson.config.ReplicatedServersConfig;
import org.redisson.config.SentinelServersConfig;
import org.redisson.config.SingleServerConfig;
import org.redisson.spring.starter.RedissonAutoConfigurationCustomizer;
@@ -33,44 +31,31 @@ public class ChenfengRedisEncryptAutoConfiguration {
BeanUtil.copyProperties(configuration, redissonConfig);
String password;
- SingleServerConfig singleServerConfig = redissonConfig.useSingleServer();
- if (singleServerConfig != null) {
+ // 单机模式
+ if (redissonConfig.isSingleConfig()) {
+ SingleServerConfig singleServerConfig = redissonConfig.useSingleServer();
password = singleServerConfig.getPassword();
singleServerConfig.setPassword(
StringUtils.isEmpty(password) ? null : AesUtils.decrypt(password, publicKey));
return;
}
- MasterSlaveServersConfig masterSlaveServersConfig = redissonConfig.useMasterSlaveServers();
- if (masterSlaveServersConfig != null) {
- password = masterSlaveServersConfig.getPassword();
- masterSlaveServersConfig.setPassword(
- StringUtils.isEmpty(password) ? null : AesUtils.decrypt(password, publicKey));
- return;
- }
-
- SentinelServersConfig sentinelServersConfig = redissonConfig.useSentinelServers();
- if (sentinelServersConfig != null) {
+ // 哨兵模式
+ if (redissonConfig.isSentinelConfig()) {
+ SentinelServersConfig sentinelServersConfig = redissonConfig.useSentinelServers();
password = sentinelServersConfig.getPassword();
sentinelServersConfig.setPassword(
StringUtils.isEmpty(password) ? null : AesUtils.decrypt(password, publicKey));
return;
}
- ClusterServersConfig clusterServersConfig = redissonConfig.useClusterServers();
- if (clusterServersConfig != null) {
+ // 集群模式
+ if (redissonConfig.isClusterConfig()) {
+ ClusterServersConfig clusterServersConfig = redissonConfig.useClusterServers();
password = clusterServersConfig.getPassword();
clusterServersConfig.setPassword(
StringUtils.isEmpty(password) ? null : AesUtils.decrypt(password, publicKey));
- return;
- }
-
- ReplicatedServersConfig replicatedServersConfig = redissonConfig.useReplicatedServers();
- if (replicatedServersConfig != null) {
- password = replicatedServersConfig.getPassword();
- replicatedServersConfig.setPassword(
- StringUtils.isEmpty(password) ? null : AesUtils.decrypt(password, publicKey));
}
};
}
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java
index 1fff3cd9b..6cc9adec1 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java
@@ -111,6 +111,7 @@ public class OrderController {
public static final String ORDER_PLATE_MODEL = "imes_order_plate_model";
public static final String ORDER_PLATE_MODEL_COMPRESS = "imes_order_plate_model_compress";
+ public static final String ORDER_PARTS_REMARK_MODEL = "imes_order_parts_remark_model";
@PutMapping("/update")
@Operation(summary = "更新生产单")
@PreAuthorize("@ss.hasPermission('production:manager-list:edit')")
@@ -231,6 +232,7 @@ public class OrderController {
if (orderDO == null) {
orderInputProcessor.deleteByOrderId(orderId, ORDER_PLATE_MODEL);
orderInputProcessor.deleteByOrderId(orderId, ORDER_PLATE_MODEL_COMPRESS);
+ orderInputProcessor.deleteByOrderId(orderId, ORDER_PARTS_REMARK_MODEL);
}
Throwable cause = e.getCause();
@@ -380,6 +382,7 @@ public class OrderController {
Long deleteOrderId = orderDO.getId();
orderInputProcessor.deleteByOrderId(deleteOrderId, ORDER_PLATE_MODEL);
orderInputProcessor.deleteByOrderId(deleteOrderId, ORDER_PLATE_MODEL_COMPRESS);
+ orderInputProcessor.deleteByOrderId(deleteOrderId, ORDER_PARTS_REMARK_MODEL);
}
} finally {
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java
index 05537d902..706577ad2 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java
@@ -174,7 +174,7 @@ public interface PlateMapper extends BaseMapperX {
- List selectPlateListByGoodsIds(@Param("orderIds") List orderIds,@Param("goodsIdList") List goodsIdList, @Param("organId") Long organId);
+ List selectPlateListByGoodsIds(@Param("orderIds") List orderIds, @Param("organId") Long organId);
List selectNoPlanPlate(@Param("orderIds") List orderIds, @Param("ids") List ids, @Param("organId") Long organId);
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/customplatenorule/OrderNoGenerateRuleServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/customplatenorule/OrderNoGenerateRuleServiceImpl.java
index 620bd8ff9..f0fb76625 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/customplatenorule/OrderNoGenerateRuleServiceImpl.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/customplatenorule/OrderNoGenerateRuleServiceImpl.java
@@ -166,15 +166,17 @@ public class OrderNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
private int resetByYear(int curr, CustomPlateNoSeqDTO orgCustomPlateNoSeqRespDTO, CustomPlateNoRuleVO plateNoRule) {
// 上一次的年
Integer lastYear = orgCustomPlateNoSeqRespDTO.getLastYear();
+ // 初始值
+ Integer initValue = plateNoRule.getInitValue();
String nowYearFormat = plateNoRule.getNow().format(YEAR_FORMATTER);
if (ObjectUtil.notEqual(String.valueOf(lastYear), nowYearFormat)) {
int nowDayNum = Integer.parseInt(nowYearFormat);
// 跨年,把上一次的年设成当前年,后续不再跨年
orgCustomPlateNoSeqRespDTO.setLastYear(nowDayNum);
// 复位
- return nowDayNum;
+ return initValue;
}
- return curr;
+ return curr + plateNoRule.getIncrementStep();
}
/**
@@ -188,15 +190,17 @@ public class OrderNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
private int resetByMonth(int curr, CustomPlateNoSeqDTO orgCustomPlateNoSeqRespDTO, CustomPlateNoRuleVO plateNoRule) {
// 上一次的月
Integer lastMonth = orgCustomPlateNoSeqRespDTO.getLastMonth();
+ // 初始值
+ Integer initValue = plateNoRule.getInitValue();
String nowMonthFormat = plateNoRule.getNow().format(MONTH_FORMATTER);
if (ObjectUtil.notEqual(String.valueOf(lastMonth), nowMonthFormat)) {
int nowDayNum = Integer.parseInt(nowMonthFormat);
// 跨月,把上一次的月设成当前月,后续不再跨月
orgCustomPlateNoSeqRespDTO.setLastMonth(nowDayNum);
// 复位
- return nowDayNum;
+ return initValue;
}
- return curr;
+ return curr + plateNoRule.getIncrementStep();
}
/**
@@ -210,14 +214,16 @@ public class OrderNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
private int resetByDay(int curr, CustomPlateNoSeqDTO orgCustomPlateNoSeqRespDTO, CustomPlateNoRuleVO plateNoRule) {
// 上一次的天
Integer lastDay = orgCustomPlateNoSeqRespDTO.getLastDay();
+ // 初始值
+ Integer initValue = plateNoRule.getInitValue();
String nowDayFormat = plateNoRule.getNow().format(DAY_FORMATTER);
if (ObjectUtil.notEqual(String.valueOf(lastDay), nowDayFormat)) {
int nowDayNum = Integer.parseInt(nowDayFormat);
// 跨月,把上一次的月设成当前月,后续不再跨月
orgCustomPlateNoSeqRespDTO.setLastDay(nowDayNum);
// 复位
- return nowDayNum;
+ return initValue;
}
- return curr;
+ return curr + plateNoRule.getIncrementStep();
}
}
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java
index 56d5e9f9b..b6ad0e5d8 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java
@@ -492,9 +492,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
List goodsDOS = goodsMapper.selectGoodsList(orderId,getUserOrganId());
- List goodsIds = goodsDOS.stream().map(GoodsReqVO::getId).distinct().toList();
+ AssertUtils.notEmpty(goodsDOS,THIS_ORDER_NOT_PLATE_DATA);
- List plateDOS = plateMapper.selectPlateListByGoodsIds(Collections.singletonList(orderId),goodsIds,getUserOrganId());
+ List plateDOS = plateMapper.selectPlateListByGoodsIds(Collections.singletonList(orderId),getUserOrganId());
AssertUtils.notEmpty(plateDOS,ORDER_PLATE_ERROR);
@@ -673,7 +673,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
List optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_CONFIG_ID,FIELD_PLAN_ID,req.getPlanConfigId(), planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
- List isLocks = new ArrayList<>();
+// List isLocks = new ArrayList<>();
// 查询原优化信息然后进行判断
if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){
@@ -682,7 +682,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
throw exception(THIS_PLAN_OPTIMIZE_DATA_ERROR);
}
- isLocks.addAll(optimizeBoardModelDOS.stream().map(OptimizeBoardModelDO::getIsLock).distinct().toList());
+// isLocks.addAll(optimizeBoardModelDOS.stream().map(OptimizeBoardModelDO::getIsLock).distinct().toList());
OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
@@ -702,27 +702,25 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
List plateDOS = planItemMapper.selectOrderPlanPlateListByPlanId(planId,getUserOrganId());
- AssertUtils.notEmpty(plateDOS,THIS_PLAN_PLATE_DATA_ERROR);
+ if(CollUtil.isNotEmpty(plateDOS)) {
+ plateDOS.forEach(f -> {
+ f.setIsOptimized(true);
+ });
- if(processId != null && !planDO.getProcessId().equals(processId)) {
-
- validatePlanStatus(planDO,isLocks);
-
- planMapper.updateById(planDO.setProcessId(processId));
-
+ plateMapper.updateBatch(plateDOS);
}
+ // 这个逻辑暂时先不用,等后面方案组逻辑完善后可加入
+// if(processId != null && !planDO.getProcessId().equals(processId)) {
+//
+// validatePlanStatus(planDO,isLocks);
+//
+// planMapper.updateById(planDO.setProcessId(processId));
+//
+// }
- plateDOS.forEach(f->{
- f.setIsOptimized(true);
- });
-
- plateMapper.updateBatch(plateDOS);
-
-// Long planConfigId = req.getPlanConfigId();
-
-// esUtils.deleteEsDocument(FIELD_PLAN_CONFIG_ID,FIELD_PLAN_ID,planConfigId,planId,ORDER_OPTIMIZE_PLATE_MODEL);
+ esUtils.deleteEsDocument(FIELD_PLAN_ID,FIELD_PLAN_CONFIG_ID,planId,req.getPlanConfigId(),ORDER_OPTIMIZE_PLATE_MODEL);
// 保存优化后的大板数据
esUtils.saveEsDocument(ORDER_OPTIMIZE_PLATE_MODEL,req.getOptimizeBoardModelDOS());
@@ -743,66 +741,106 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
List modelDOList = saveProcessSchemeReqVO.getModelDOList();
- Long planId = modelDOList.stream().map(SaveProcessSchemeModelDO::getPlanId).distinct().toList().get(0);
+ List schemeModelDOS = new ArrayList<>(modelDOList.stream().filter(Objects::nonNull).toList());
+
+ SaveProcessSchemeModelDO saveProcessSchemeModelDO = Optional.ofNullable(schemeModelDOS.get(0)).orElseThrow(() -> new ServiceException(THIS_PLAN_SCHEME_DATA_ERROR));
+
+ Long planId = Optional.ofNullable(saveProcessSchemeModelDO.getPlanId()).orElseThrow(() -> new ServiceException(THIS_PLAN_SCHEME_DATA_ERROR));
+
PlanDO planDO = planMapper.selectById(planId);
AssertUtils.notEmpty(planDO,PLAN_NOT_EXISTS);
- List planConfigIds = modelDOList.stream().map(SaveProcessSchemeModelDO::getPlanConfigId).distinct().toList();
+ List planConfigIds = schemeModelDOS.stream().map(SaveProcessSchemeModelDO::getPlanConfigId).distinct().toList();
List plateDOS = planItemMapper.selectOrderPlanPlateListByPlanId(planId,getUserOrganId());
- AssertUtils.notEmpty(plateDOS,THIS_PLAN_PLATE_DATA_ERROR);
- plateDOS.forEach(f->{
- f.setIsOptimized(true);
- });
-
- plateMapper.updateBatch(plateDOS);
-
-
- // 不能加非空判断,因为方案组里可能没有优化信息
- List optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
-
- List isLocks = new ArrayList<>();
-
- if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){
-
- optimizeBoardModelDOS.forEach(f->{
-
- isLocks.add(Optional.ofNullable(f.getIsLock()).orElse(false));
-
- modelDOList.add(SaveProcessSchemeModelDO.builder()
- .planConfigId(f.getPlanConfigId())
- .planName(f.getPlanConfigName())
- .plateNum(f.getPlaceBlockNumber())
- .goodsNum(f.getBoardCount())
- .isOptimized(true)
- .build());
+ if(CollUtil.isNotEmpty(plateDOS)) {
+ plateDOS.forEach(f -> {
+ f.setIsOptimized(true);
});
+ plateMapper.updateBatch(plateDOS);
}
+
// 如果方案组ID不相等,就删除旧的方案组信息,再保存新的加工方案组ID
if(!planDO.getProcessId().equals(processId)){
- validatePlanStatus(planDO,isLocks);
+// validatePlanStatus(planDO,isLocks);
+
+ if(planDO.getStatus().equals(PlanStatusEnum.OPENING.getStatus()) || planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){
+ throw exception(THIS_PLAN_PLATE_IS_CUT);
+ }
+
+
+ // todo 是否全部执行的判断,需要等前端完善加工方案那边的逻辑后,再判断
+// Integer processSize = systemConfigApi.getProcessSizeByIds(Collections.singletonList(planDO.getProcessId())).getCheckedData();
+//
+// List processSchemeModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, processSize, PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL, SaveProcessSchemeModelDO.class);
+//
+// if(CollUtil.isNotEmpty(processSchemeModelDOS) && processSize == processSchemeModelDOS.size()){
+// throw exception(THIS_PLAN_SCHEME_OPTIMIZE_SIZE_ERROR);
+// }
planMapper.updateById(planDO.setProcessId(processId));
+
+ // 修改方案组,删除全部的方案组的优化信息
+ esUtils.deleteEsDocument(FIELD_PLAN_ID,planId,PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL);
+
+ // 删除全部的生产优化信息
+ esUtils.deleteEsDocument(FIELD_PLAN_ID,planId,ORDER_OPTIMIZE_PLATE_MODEL);
+
+ // 保存此时的方案组的优化信息
+ esUtils.saveEsDocument(PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL,schemeModelDOS);
+
+ return;
+
}
esUtils.deleteEsDocument(FIELD_PLAN_ID,FIELD_PLAN_CONFIG_ID,planId,planConfigIds,PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL);
- esUtils.saveEsDocument(PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL,modelDOList);
+ esUtils.saveEsDocument(PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL,schemeModelDOS);
+
+
}
+// // 不能加非空判断,因为方案组里可能没有优化信息
+// List optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
+//
+//// List isLocks = new ArrayList<>();
+//
+// if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){
+//
+// optimizeBoardModelDOS.forEach(f->{
+//
+//// isLocks.add(Optional.ofNullable(f.getIsLock()).orElse(false));
+//
+// schemeModelDOS.add(SaveProcessSchemeModelDO.builder()
+// .planConfigId(f.getPlanConfigId())
+// .planName(f.getPlanConfigName())
+// .plateNum(f.getPlaceBlockNumber())
+// .goodsNum(f.getBoardCount())
+// .isOptimized(true)
+// .build());
+//
+// });
+//
+// }
+
+
+
+
+
+
@Override
public PlanProcessSchemeList getProcessSchemeConfig(Long processId,Long planId) {
@@ -816,55 +854,82 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
validatePlanExists(planId);
// 查询排单对应的方案组信息
- List saveProcessSchemeReqVOS = Optional.ofNullable(esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL, SaveProcessSchemeModelDO.class)).orElse(new ArrayList<>());
+// List saveProcessSchemeReqVOS = Optional.ofNullable(esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL, SaveProcessSchemeModelDO.class)).orElse(new ArrayList<>());
+
+ List saveProcessSchemeReqVOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL, SaveProcessSchemeModelDO.class);
- // 查询排单对应的优化信息
- List optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, schemeDTOList.size(), ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
+ if(CollUtil.isNotEmpty(saveProcessSchemeReqVOS)){
+ // 查询排单对应的优化信息
+ List optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, schemeDTOList.size(), ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
- if (CollUtil.isNotEmpty(optimizeBoardModelDOS)) {
-
-
- if (CollUtil.isNotEmpty(saveProcessSchemeReqVOS)) {
+ if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){
saveProcessSchemeReqVOS.forEach(f -> {
List modelDOList = optimizeBoardModelDOS.stream().filter(o -> o.getPlanConfigId().equals(f.getPlanConfigId())).toList();
if (CollUtil.isNotEmpty(modelDOList)) {
- String jsonString = toJsonString(modelDOList.get(0));
+ OptimizeBoardModelDO optimizeBoardModelDO = modelDOList.get(0);
+
+ String jsonString = toJsonString(optimizeBoardModelDO);
f.setPlanOptimize(jsonString);
+ f.setGoodsNum(optimizeBoardModelDO.getBoardCount());
}
});
- } else {
- optimizeBoardModelDOS.forEach(f -> {
- saveProcessSchemeReqVOS.add(SaveProcessSchemeModelDO.builder()
- .planConfigId(f.getPlanConfigId())
- .planName(f.getPlanConfigName())
- .planId(f.getPlanId())
- .plateNum(f.getPlaceBlockNumber())
- .goodsNum(f.getBoardCount())
- .planOptimize(toJsonString(f))
- .build());
- });
}
+
}
+
planProcessSchemeList.setSaveProcessSchemeReqVOS(saveProcessSchemeReqVOS);
-
-
-
return planProcessSchemeList;
}
+ //
+// // 查询排单对应的优化信息
+// List optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, schemeDTOList.size(), ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
+//
+//
+// if (CollUtil.isNotEmpty(optimizeBoardModelDOS)) {
+//
+//
+// if (CollUtil.isNotEmpty(saveProcessSchemeReqVOS)) {
+//
+// saveProcessSchemeReqVOS.forEach(f -> {
+//
+// List modelDOList = optimizeBoardModelDOS.stream().filter(o -> o.getPlanConfigId().equals(f.getPlanConfigId())).toList();
+// if (CollUtil.isNotEmpty(modelDOList)) {
+//
+// String jsonString = toJsonString(modelDOList.get(0));
+//
+// f.setPlanOptimize(jsonString);
+// }
+// });
+// } else {
+// optimizeBoardModelDOS.forEach(f -> {
+//
+// saveProcessSchemeReqVOS.add(SaveProcessSchemeModelDO.builder()
+// .planConfigId(f.getPlanConfigId())
+// .planName(f.getPlanConfigName())
+// .planId(f.getPlanId())
+// .plateNum(f.getPlaceBlockNumber())
+// .goodsNum(f.getBoardCount())
+// .planOptimize(toJsonString(f))
+// .build());
+//
+// });
+// }
+// }
+
@Override
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java
index d86d72091..8e4a645fd 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java
@@ -449,7 +449,7 @@ public class OrderServiceImpl implements OrderService {
// 配件信息
List partsDOS = getPartsGoods(partsDO);
- customPlateNoGenerateService.generateCustomPlateNo(order, plateDO, false);
+ customPlateNoGenerateService.generateCustomPlateNo(order, plateDO, true);
orderMapper.insert(order);
orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, itemDO, goodsDO, plateGoodDOS, partsDOS);
List orderModelDOs = BeanUtils.toBean(plateDetail, OrderModelDO.class);
@@ -1252,7 +1252,7 @@ public class OrderServiceImpl implements OrderService {
String orderPlateModeList = toJsonString(BeanUtils.toBean(orderModelDOs, OrderPlateList.class));
orderModelCompressDO.setOrderModelZip(zipString(orderPlateModeList));
- // 板材造型数据添加 大板分类ID,实际ID,优化信息(默认为 false)
+ // 板材造型数据添加 大板分类ID,实际ID
List orderGoodsPlateIds = BeanUtils.toBean(plateDO, OrderGoodsPlateIds.class);
List finalGoodsDO = goodsDO;
orderGoodsPlateIds.forEach(f->
@@ -1261,7 +1261,7 @@ public class OrderServiceImpl implements OrderService {
orderModelDOs.forEach(f->{
f.setGoodsId(orderGoodsPlateIds.stream().filter(fo->fo.getId().equals(f.getPlateId())).map(OrderGoodsPlateIds::getActualGoodsId).toList().get(0));
f.setPlateGoodsId(orderGoodsPlateIds.stream().filter(fo->fo.getId().equals(f.getPlateId())).map(OrderGoodsPlateIds::getGoodsId).toList().get(0));
-// f.setIsOptimized(false);
+
});
}
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java
index 827b157a2..536bd26f3 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java
@@ -386,6 +386,7 @@ public class PlanServiceImpl implements PlanService {
if(CollUtil.isEmpty(orderIds)){
planMapper.deleteBatchIds(planDOS);
+ return;
}
@@ -540,7 +541,7 @@ public class PlanServiceImpl implements PlanService {
// 根据排单ID查询ES中的优化数据
- List optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLANID, planIds, planIds.size(), ORDER_REMAIN_PLATE_MODEL, OptimizeBoardModelDO.class);
+ List optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLANID, planIds, 999, ORDER_REMAIN_PLATE_MODEL, OptimizeBoardModelDO.class);
// 获取排单对应的生产单的信息
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml
index f09ade425..163406109 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml
@@ -394,6 +394,7 @@
where opi.organ_id = #{organId}
and opi.plan_id = #{planId}
+ and op.is_optimized = false
diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml
index 64e445f34..3aac53ff8 100644
--- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml
+++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml
@@ -445,11 +445,6 @@
#{orderIds}
- and op.goods_id in
-
- #{goodsIdList}
-
-
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PlateDetailsRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PlateDetailsRespVO.java
index 780ad44dc..52f654ee3 100644
--- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PlateDetailsRespVO.java
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PlateDetailsRespVO.java
@@ -6,8 +6,6 @@ import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
import java.util.List;
@@ -42,6 +40,9 @@ public class PlateDetailsRespVO {
@Schema(description = "板材ID", requiredMode = Schema.RequiredMode.REQUIRED)
private String plateId;
+ @Schema(description = "自定义板编号", requiredMode = Schema.RequiredMode.REQUIRED)
+ private String customPlateNo;
+
@Schema(description = "板编号", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("板编号")
private String plateNo;
diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.xml
index f4a983ea2..17ce652fa 100644
--- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.xml
+++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.xml
@@ -213,6 +213,7 @@
+
@@ -243,6 +244,7 @@
op.id as plateId,
op.plate_no as plateNo,
op.name as plateName,
+ op.custom_plate_no as customPlateNo,
ogs.material as plateMaterial,
ogs.color as plateColor,
op.order_id as orderId,
diff --git a/cf-module-report/cf-module-report-api/src/main/java/com/cf/imes/module/report/enums/ErrorCodeConstants.java b/cf-module-report/cf-module-report-api/src/main/java/com/cf/imes/module/report/enums/ErrorCodeConstants.java
index f63be99b0..33517e6e6 100644
--- a/cf-module-report/cf-module-report-api/src/main/java/com/cf/imes/module/report/enums/ErrorCodeConstants.java
+++ b/cf-module-report/cf-module-report-api/src/main/java/com/cf/imes/module/report/enums/ErrorCodeConstants.java
@@ -16,6 +16,7 @@ public final class ErrorCodeConstants {
public static final ErrorCode TEMPLATE_NAME_UNIQE_ERROR = new ErrorCode(1_003_001_003, "模板名【{}】已存在,请编辑模板名后重试");
public static final ErrorCode TEMPLATE_PREIVEW_QUERYPARAM_EMPTY = new ErrorCode(1_003_001_004, "查询参数不能为空:{}");
public static final ErrorCode TEMPLATE_IMPORT_CONTENT_EMPTY_ERROR = new ErrorCode(1_003_001_005, "导入模板内容不能为空,请检查");
+ public static final ErrorCode TEMPLATE_PREVIEW_TEMPLATE_CONTENT_EMPTY_ERROR = new ErrorCode(1_003_001_006, "报表模板内容为空,请检查");
// ========== UREPORT datasource模块 1-003-002-000 ==========
public static final ErrorCode DATASOURCE_NOT_EXISTS = new ErrorCode(1_003_002_001, "报表数据源不存在");
diff --git a/cf-module-report/cf-module-report-biz/pom.xml b/cf-module-report/cf-module-report-biz/pom.xml
index eded7e7c2..37b870edc 100644
--- a/cf-module-report/cf-module-report-biz/pom.xml
+++ b/cf-module-report/cf-module-report-biz/pom.xml
@@ -135,6 +135,11 @@
${commons-text.version}
+
+ org.apache.poi
+ poi
+ ${poi-ooxml.version}
+
org.apache.poi
poi-ooxml-full
@@ -148,6 +153,10 @@
org.apache.poi
poi-ooxml-lite
+
+ poi
+ org.apache.poi
+
${poi-ooxml.version}
diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/ReportTemplateController.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/ReportTemplateController.java
index 06cf3df39..18122242d 100644
--- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/ReportTemplateController.java
+++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/ReportTemplateController.java
@@ -12,6 +12,7 @@ import com.bstek.ureport.utils.StringUtils;
import com.cf.imes.framework.common.exception.ServiceException;
import com.cf.imes.framework.common.pojo.CommonResult;
import com.cf.imes.framework.common.util.object.BeanUtils;
+import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateCommonPreviewReqVO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplatePreviewReqVO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateReqVO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateRespVO;
@@ -114,6 +115,12 @@ public class ReportTemplateController {
return success(templateService.preview(reqVO));
}
+ @PostMapping("/template/preview/common/")
+ @Operation(summary = "模板通用预览")
+ public CommonResult commonPreview(@RequestBody ReportTemplateCommonPreviewReqVO reqVO) {
+ return success(templateService.commonPreview(reqVO));
+ }
+
@PostMapping("/template/print")
@Operation(summary = "模板预览打印")
@PreAuthorize("@ss.hasPermission('report:preview')")
@@ -121,6 +128,13 @@ public class ReportTemplateController {
templateService.print(reqVO, response);
}
+ @PostMapping("/template/print/common")
+ @Operation(summary = "模板预览打印")
+ @PreAuthorize("@ss.hasPermission('report:preview')")
+ public void commonPrint(@RequestBody ReportTemplateCommonPreviewReqVO reqVO, HttpServletResponse response) {
+ templateService.commonPrint(reqVO, response);
+ }
+
@PostMapping("/template/download/{type}")
@Operation(summary = "模板预览下载")
@PreAuthorize("@ss.hasPermission('report:preview')")
@@ -128,6 +142,13 @@ public class ReportTemplateController {
templateService.download(type, reqVO, response);
}
+ @PostMapping("/template/download/{type}/common")
+ @Operation(summary = "模板预览下载")
+ @PreAuthorize("@ss.hasPermission('report:preview')")
+ public void commonPrint(@PathVariable @ReportTemplateProducerTypeInEnum @NotBlank(message = "模板下载类型不能为空") String type, @RequestBody ReportTemplateCommonPreviewReqVO reqVO, HttpServletResponse response) {
+ templateService.commonDownload(type, reqVO, response);
+ }
+
@PostMapping("/template/excel/import")
@Operation(summary = "导入excel模板")
@PreAuthorize("@ss.hasPermission('report:design')")
diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplateCommonPreviewReqVO.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplateCommonPreviewReqVO.java
new file mode 100644
index 000000000..f1f94fd03
--- /dev/null
+++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/controller/admin/template/vo/ReportTemplateCommonPreviewReqVO.java
@@ -0,0 +1,47 @@
+package com.cf.imes.module.report.controller.admin.template.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.util.Map;
+
+/**
+ * @author Gqr
+ * @since 2024/7/19 9:22
+ */
+@Data
+@Schema(description = "管理后台 - 报表模板通用预览请求参数 Request VO")
+public class ReportTemplateCommonPreviewReqVO {
+ @Schema(description = "页码",example = "1")
+ @Min(value = 1, message = "页码最小值为 1")
+ private int pageIndex;
+
+ @Schema(description = "报表模板编号")
+ @NotNull(message = "报表模板编号不能为空")
+ private Long templateId;
+
+ /**
+ * 表单参数
+ */
+ @Schema(description = "表单参数")
+ @Size(max = 30, message = "表单参数数量不能超过30个")
+ private Map query;
+
+ /**
+ * 表单对应组件唯一标识
+ */
+ @Schema(description = "表单对应组件唯一标识")
+ @Size(max = 30, message = "表单对应组件唯一标识数量不能超过30个")
+ private Map component;
+
+ /**
+ * 图表图片目前用于PDF导出
+ */
+ @Schema(description = "图表图片")
+ @Size(max = 30, message = "图表图片数量不能超过30个")
+ private Map chartImages;
+
+}
\ No newline at end of file
diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateService.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateService.java
index 88fce28ea..2fe7aaf81 100644
--- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateService.java
+++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateService.java
@@ -2,6 +2,7 @@ package com.cf.imes.module.report.service.template;
import com.bstek.designer.bean.ReportDefinitionWrapper;
import com.bstek.ureport.export.html.HtmlReport;
+import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateCommonPreviewReqVO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplatePreviewReqVO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateReqVO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateRespVO;
@@ -30,6 +31,7 @@ public interface ReportTemplateService {
/**
* 复制报表模版
+ *
* @param createReqVO
* @return
*/
@@ -81,11 +83,27 @@ public interface ReportTemplateService {
*/
HtmlReport preview(ReportTemplatePreviewReqVO reqVO);
+
+ /**
+ * 模板通用预览
+ * 通过模板id+query参数获取预览界面
+ *
+ * @param reqVO
+ * @return
+ */
+ HtmlReport commonPreview(ReportTemplateCommonPreviewReqVO reqVO);
+
/**
* 模版预览打印
*/
void print(ReportTemplatePreviewReqVO reqVO, HttpServletResponse response);
+ /**
+ * 模版通用预览打印
+ * 通过模板id+query参数获取打印内容
+ */
+ void commonPrint(ReportTemplateCommonPreviewReqVO reqVO, HttpServletResponse response);
+
/**
* 模版预览下载
*
@@ -95,6 +113,16 @@ public interface ReportTemplateService {
*/
void download(String type, ReportTemplatePreviewReqVO reqVO, HttpServletResponse response);
+ /**
+ * 模版通用预览下载
+ * 通过模板id+query参数获取文件
+ *
+ * @param type 文件类型
+ * @param reqVO
+ * @param response
+ */
+ void commonDownload(String type, ReportTemplateCommonPreviewReqVO reqVO, HttpServletResponse response);
+
/**
* 模板导出
*
diff --git a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateServiceImpl.java b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateServiceImpl.java
index cef2e3949..1f97b55f8 100644
--- a/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateServiceImpl.java
+++ b/cf-module-report/cf-module-report-biz/src/main/java/com/cf/imes/module/report/service/template/ReportTemplateServiceImpl.java
@@ -25,6 +25,10 @@ import com.bstek.ureport.definition.datasource.ApiDatasourceDefinition;
import com.bstek.ureport.definition.datasource.DatasourceDefinition;
import com.bstek.ureport.definition.datasource.JdbcDatasourceDefinition;
import com.bstek.ureport.definition.datasource.SpringBeanDatasourceDefinition;
+import com.bstek.ureport.definition.searchform.Component;
+import com.bstek.ureport.definition.searchform.InputComponent;
+import com.bstek.ureport.definition.searchform.SearchForm;
+import com.bstek.ureport.definition.searchform.TextInputComponent;
import com.bstek.ureport.exception.ReportComputeException;
import com.bstek.ureport.exception.ReportException;
import com.bstek.ureport.export.ExportUtils;
@@ -45,6 +49,7 @@ import com.cf.imes.framework.organ.core.aop.OrganIgnore;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.framework.security.core.LoginUser;
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
+import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateCommonPreviewReqVO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplatePreviewReqVO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateReqVO;
import com.cf.imes.module.report.controller.admin.template.vo.ReportTemplateRespVO;
@@ -77,6 +82,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
@@ -86,6 +92,7 @@ import static com.cf.imes.module.report.enums.ErrorCodeConstants.TEMPLATE_IMPORT
import static com.cf.imes.module.report.enums.ErrorCodeConstants.TEMPLATE_NAME_UNIQE_ERROR;
import static com.cf.imes.module.report.enums.ErrorCodeConstants.TEMPLATE_NOT_EXISTS;
import static com.cf.imes.module.report.enums.ErrorCodeConstants.TEMPLATE_PREIVEW_QUERYPARAM_EMPTY;
+import static com.cf.imes.module.report.enums.ErrorCodeConstants.TEMPLATE_PREVIEW_TEMPLATE_CONTENT_EMPTY_ERROR;
/**
* 报表模板信息 Service 实现类
@@ -113,6 +120,7 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
private static final String ATTACHMENT_PREFIX = "attachment; filename=";
private static final String DATASETIDS_FIELD_NAME = "datasetIds";
private static final String DATASOURCEIDS_FIELD_NAME = "datasourceIds";
+ private static final String DOWNLOAD_SUCCESS_HEADER_CODE = "20000";
@Resource
private TenantParamsUtils tenantParamsUtils;
@@ -417,21 +425,90 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
@Override
public HtmlReport preview(ReportTemplatePreviewReqVO reqVO) {
- // 检查查询参数中的空值
- checkQueryNotEmpty(reqVO.getQuery());
// 自定义请求vo转ureport对象
PreviewParameters params = BeanUtils.toBean(reqVO, PreviewParameters.class);
HtmlProducer htmlProducer = new HtmlProducer();
ReportRender reportRender = new ReportRender();
- ReportDefinition reportDefinition = getReportDefinition(reportRender, params);
- Map parameters = params.getQuery();
+ ReportDefinition reportDefinition = getReportDefinition(reportRender, params, true);
+
+ Map query = params.getQuery();
+ // 检查表单配置
+ checkSearchForm(reportDefinition.getSearchForm(), query);
// 增加多租户参数
- tenantParamsUtils.prepareTenantParam(parameters);
- Report report = reportRender.render(reportDefinition, parameters);
+ tenantParamsUtils.prepareTenantParam(query);
+ Report report = reportRender.render(reportDefinition, query);
return htmlProducer.produce(reportDefinition, report);
}
+ @Override
+ public HtmlReport commonPreview(ReportTemplateCommonPreviewReqVO reqVO) {
+ // 查询模板
+ ReportTemplateDO reportTemplateDO = templateMapper.selectById(reqVO.getTemplateId());
+ if (ObjectUtil.isNull(reportTemplateDO)) {
+ throw exception(TEMPLATE_NOT_EXISTS);
+ }
+ // 检查模板内容
+ String content = reportTemplateDO.getContent();
+ if (StringUtils.isEmpty(content)) {
+ throw exception(TEMPLATE_PREVIEW_TEMPLATE_CONTENT_EMPTY_ERROR);
+ }
+ // 自定义请求vo转ureport对象
+ PreviewParameters params = BeanUtils.toBean(reqVO, PreviewParameters.class);
+ params.setContent(content);
+
+ // 生成html
+ HtmlProducer htmlProducer = new HtmlProducer();
+ ReportRender reportRender = new ReportRender();
+ ReportDefinition reportDefinition = getReportDefinition(reportRender, params, false);
+
+ Map query = params.getQuery();
+ // 检查表单配置
+ checkSearchForm(reportDefinition.getSearchForm(), query);
+
+ // 增加多租户参数
+ tenantParamsUtils.prepareTenantParam(query);
+ Report report = reportRender.render(reportDefinition, query);
+ return htmlProducer.produce(reportDefinition, report);
+ }
+
+ /**
+ * 检查报表模板定义的表单参数是否为空
+ *
+ * @param searchForm 模板定义的表单参数
+ * @param parameters 表单查询参数
+ */
+ private void checkSearchForm(SearchForm searchForm, Map parameters) {
+ if (ObjectUtil.isNotNull(searchForm)) {
+ List components = Optional.ofNullable(searchForm.getComponents()).orElse(new ArrayList<>());
+ for (Component component : components) {
+ checkComponent(component, parameters);
+ }
+ }
+ }
+
+ /**
+ * 检查表单中的组件明细
+ *
+ * @param component
+ * @param parameters
+ */
+ private void checkComponent(Component component, Map parameters) {
+ InputComponent inputComponent = (InputComponent) component;
+ if (ObjectUtil.isNotNull(inputComponent)) {
+ String bindParameter = inputComponent.getBindParameter();
+ if (StringUtils.isNotEmpty(bindParameter)) {
+ if (inputComponent instanceof TextInputComponent) {
+ Object bindValue = parameters.get(bindParameter);
+ if (parameters.containsKey(bindParameter) && ObjectUtil.isNotNull(bindValue) && StringUtils.isEmpty(String.valueOf(bindValue))) {
+ throw ServiceExceptionUtil.exception(TEMPLATE_PREIVEW_QUERYPARAM_EMPTY, bindParameter);
+ }
+ }
+ }
+ }
+ }
+
+
@Override
public void print(ReportTemplatePreviewReqVO reqVO, HttpServletResponse response) {
// 自定义请求vo转ureport对象
@@ -439,8 +516,10 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
long start = System.currentTimeMillis();
ReportRender reportRender = new ReportRender();
- ReportDefinition reportDefinition = getReportDefinition(reportRender, params);
+ ReportDefinition reportDefinition = getReportDefinition(reportRender, params, true);
Map query = params.getQuery();
+ // 检查表单配置
+ checkSearchForm(reportDefinition.getSearchForm(), query);
// 增加多租户参数
tenantParamsUtils.prepareTenantParam(query);
Report report = reportRender.render(reportDefinition, query);
@@ -455,7 +534,53 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
String downFileName = com.bstek.common.utils.StringUtils.randomFileName() + com.bstek.common.utils.StringUtils.getFileSuffix(p);
response.setHeader(Header.CONTENT_DISPOSITION.getValue(), ATTACHMENT_PREFIX + URLEncoder.encode(downFileName, UTF8_CHARSET));
- response.setHeader("code", "20000");
+ response.setHeader("code", DOWNLOAD_SUCCESS_HEADER_CODE);
+ ExportUtils.export(out, report, p);
+ long end = System.currentTimeMillis();
+ ToolUtils.logToConsole("获取打印文件耗时:" + (end - start) + "ms");
+ } catch (Exception ex) {
+ log.error("模版预览打印异常", ex);
+ throw new ReportException(ex);
+ }
+ }
+
+ @Override
+ public void commonPrint(ReportTemplateCommonPreviewReqVO reqVO, HttpServletResponse response) {
+ // 查询模板
+ ReportTemplateDO reportTemplateDO = templateMapper.selectById(reqVO.getTemplateId());
+ if (ObjectUtil.isNull(reportTemplateDO)) {
+ throw exception(TEMPLATE_NOT_EXISTS);
+ }
+ // 检查模板内容
+ String content = reportTemplateDO.getContent();
+ if (StringUtils.isEmpty(content)) {
+ throw exception(TEMPLATE_PREVIEW_TEMPLATE_CONTENT_EMPTY_ERROR);
+ }
+ // 自定义请求vo转ureport对象
+ PreviewParameters params = BeanUtils.toBean(reqVO, PreviewParameters.class);
+ params.setContent(content);
+
+ long start = System.currentTimeMillis();
+ ReportRender reportRender = new ReportRender();
+ ReportDefinition reportDefinition = getReportDefinition(reportRender, params, false);
+ Map query = params.getQuery();
+ // 检查表单配置
+ checkSearchForm(reportDefinition.getSearchForm(), query);
+ // 增加多租户参数
+ tenantParamsUtils.prepareTenantParam(query);
+ Report report = reportRender.render(reportDefinition, query);
+ Map chartImages = params.getChartImages();
+ report.setChartImages(chartImages);
+ try {
+ OutputStream out = response.getOutputStream();
+ response.setCharacterEncoding(UTF8_CHARSET);
+ response.setContentType("application/pdf; charset=UTF-8");
+ // 创建下载文件
+ ProducerEnum p = ProducerEnum.PDF;
+ String downFileName = com.bstek.common.utils.StringUtils.randomFileName() + com.bstek.common.utils.StringUtils.getFileSuffix(p);
+ response.setHeader(Header.CONTENT_DISPOSITION.getValue(), ATTACHMENT_PREFIX + URLEncoder.encode(downFileName, UTF8_CHARSET));
+
+ response.setHeader("code", DOWNLOAD_SUCCESS_HEADER_CODE);
ExportUtils.export(out, report, p);
long end = System.currentTimeMillis();
ToolUtils.logToConsole("获取打印文件耗时:" + (end - start) + "ms");
@@ -471,8 +596,10 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
PreviewParameters params = BeanUtils.toBean(reqVO, PreviewParameters.class);
ReportRender reportRender = new ReportRender();
- ReportDefinition reportDefinition = getReportDefinition(reportRender, params);
+ ReportDefinition reportDefinition = getReportDefinition(reportRender, params, true);
Map query = params.getQuery();
+ // 检查表单配置
+ checkSearchForm(reportDefinition.getSearchForm(), query);
// 增加多租户参数
tenantParamsUtils.prepareTenantParam(query);
Report report = reportRender.render(reportDefinition, query);
@@ -486,7 +613,52 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
ProducerEnum p = ProducerEnum.valueOf(type.toUpperCase());
String downFileName = com.bstek.common.utils.StringUtils.randomFileName() + com.bstek.common.utils.StringUtils.getFileSuffix(p);
response.setHeader(Header.CONTENT_DISPOSITION.getValue(), ATTACHMENT_PREFIX + URLEncoder.encode(downFileName, UTF8_CHARSET));
- response.setHeader("code", "20000");
+ response.setHeader("code", DOWNLOAD_SUCCESS_HEADER_CODE);
+ long start = System.currentTimeMillis();
+ ExportUtils.export(out, report, p);
+ long end = System.currentTimeMillis();
+ ToolUtils.logToConsole("下载 " + type + " 报表耗时:" + (end - start) + "ms");
+ } catch (Exception ex) {
+ log.error("模版预览下载文件异常", ex);
+ throw new ReportException(ex);
+ }
+ }
+
+ @Override
+ public void commonDownload(String type, ReportTemplateCommonPreviewReqVO reqVO, HttpServletResponse response) {
+ // 查询模板
+ ReportTemplateDO reportTemplateDO = templateMapper.selectById(reqVO.getTemplateId());
+ if (ObjectUtil.isNull(reportTemplateDO)) {
+ throw exception(TEMPLATE_NOT_EXISTS);
+ }
+ // 检查模板内容
+ String content = reportTemplateDO.getContent();
+ if (StringUtils.isEmpty(content)) {
+ throw exception(TEMPLATE_PREVIEW_TEMPLATE_CONTENT_EMPTY_ERROR);
+ }
+ // 自定义请求vo转ureport对象
+ PreviewParameters params = BeanUtils.toBean(reqVO, PreviewParameters.class);
+ params.setContent(content);
+
+ ReportRender reportRender = new ReportRender();
+ ReportDefinition reportDefinition = getReportDefinition(reportRender, params, true);
+ Map query = params.getQuery();
+ // 检查表单配置
+ checkSearchForm(reportDefinition.getSearchForm(), query);
+ // 增加多租户参数
+ tenantParamsUtils.prepareTenantParam(query);
+ Report report = reportRender.render(reportDefinition, query);
+ Map chartImages = params.getChartImages();
+ report.setChartImages(chartImages);
+ try {
+ OutputStream out = response.getOutputStream();
+ response.setCharacterEncoding(UTF8_CHARSET);
+ response.setContentType("application/octet-stream; charset=UTF-8");
+ // 创建下载文件
+ ProducerEnum p = ProducerEnum.valueOf(type.toUpperCase());
+ String downFileName = com.bstek.common.utils.StringUtils.randomFileName() + com.bstek.common.utils.StringUtils.getFileSuffix(p);
+ response.setHeader(Header.CONTENT_DISPOSITION.getValue(), ATTACHMENT_PREFIX + URLEncoder.encode(downFileName, UTF8_CHARSET));
+ response.setHeader("code", DOWNLOAD_SUCCESS_HEADER_CODE);
long start = System.currentTimeMillis();
ExportUtils.export(out, report, p);
long end = System.currentTimeMillis();
@@ -545,7 +717,7 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
getSelf().validateTemplateNameUnique(createReqVO, isSuperAdmin);
// 复制信息
String content = jsonObject.getString("content");
- if(StringUtils.isEmpty(content)) {
+ if (StringUtils.isEmpty(content)) {
throw new ServiceException(TEMPLATE_IMPORT_CONTENT_EMPTY_ERROR);
}
// 生成id
@@ -572,12 +744,22 @@ public class ReportTemplateServiceImpl implements ReportTemplateService {
}
}
- private ReportDefinition getReportDefinition(ReportRender reportRender, PreviewParameters params) {
+ /**
+ * 获取报表定义
+ *
+ * @param reportRender 报表渲染器
+ * @param params 预览参数
+ * @param needDecode 是否需要解码(从前端直接拿来的需要url解码)
+ * @return
+ */
+ private ReportDefinition getReportDefinition(ReportRender reportRender, PreviewParameters params, boolean needDecode) {
ReportDefinition reportDefinition;
String content = params.getContent();
if (StringUtils.isNotBlank(content)) {
- content = URLUtil.decode(content);
+ if (needDecode) {
+ content = URLUtil.decode(content);
+ }
reportDefinition = reportRender.getReportDefinition(content, "utf-8");
} else {
throw new ReportComputeException("模版文件不能为空");
diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java
index b50986bbc..9cb9ac62f 100644
--- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java
+++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java
@@ -329,6 +329,8 @@ public class ErrorCodeConstants {
public static final ErrorCode THIS_PLAN_PROCESS_SCHEME_IS_LOCK = new ErrorCode(1_002_041_043, "当前排单已被锁定,无法修改方案组,请解锁后再进行修改");
public static final ErrorCode THIS_PLAN_OPTIMIZE_DATA_ERROR = new ErrorCode(1_002_041_044, "当前排单已全部开料,无法进行再次优化");
public static final ErrorCode THIS_PLAN_PLATE_IS_CUT = new ErrorCode(1_002_041_045, "当前排单已有板材开料,无法修改");
+ public static final ErrorCode THIS_ORDER_NOT_PLATE_DATA = new ErrorCode(1_002_041_046, "当前生产单无板材数据,无法进行用板量计算");
+ public static final ErrorCode THIS_PLAN_SCHEME_DATA_ERROR = new ErrorCode(1_002_041_047, "当前方案组的优化信息有误,请重新选择方案组或重新导入排单再进行优化");
public static final ErrorCode THIS_PLAN_PLATE_OPTIMIZE_IS_ALL = new ErrorCode(1_002_041_046, "当前排单已全部开料,无法进行选择");
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/systemconfig/SystemConfigApiImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/systemconfig/SystemConfigApiImpl.java
index 3deec6dc7..5a2348412 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/systemconfig/SystemConfigApiImpl.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/systemconfig/SystemConfigApiImpl.java
@@ -13,9 +13,15 @@ import com.cf.imes.module.system.controller.admin.systemconfig.vo.ProcessSchemeC
import com.cf.imes.module.system.dal.dataobject.lable.LabelDO;
import com.cf.imes.module.system.dal.dataobject.machine.MachineDO;
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
+import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDataDO;
+import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigProcessDO;
+import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigSchemeDO;
import com.cf.imes.module.system.dal.mysql.label.LabelMapper;
import com.cf.imes.module.system.dal.mysql.machine.MachineMapper;
+import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigDataMapper;
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigMapper;
+import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigProcessMapper;
+import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigSchemeMapper;
import com.cf.imes.module.system.enums.config.SystemConfigTypeEnum;
import com.cf.imes.module.system.service.systemconfig.SystemConfigService;
import lombok.extern.slf4j.Slf4j;
@@ -57,6 +63,14 @@ public class SystemConfigApiImpl implements SystemConfigApi {
@Resource
private LabelMapper labelMapper;
+ @Resource
+ private SystemConfigSchemeMapper systemConfigSchemeMapper;
+
+ @Resource
+ private SystemConfigProcessMapper systemConfigProcessMapper;
+
+ @Resource
+ private SystemConfigDataMapper systemConfigDataMapper;
@Override
public CommonResult getOrgCustomPlateNoConfig() {
@@ -65,23 +79,23 @@ public class SystemConfigApiImpl implements SystemConfigApi {
@Override
public CommonResult getById(Long id) {
- return success(BeanUtils.toBean(systemConfigService.getSystemConfig(id), SystemConfigRespDTO.class));
+ return success(BeanUtils.toBean(systemConfigService.getSystemConfig(id,SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType()), SystemConfigRespDTO.class));
}
@Override
public CommonResult> getProcessByIds(List processIds) {
- List systemConfigDOS = systemConfigMapper.selectList(new LambdaQueryWrapperX()
- .eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId())
- .in(SystemConfigDO::getId, processIds)
- .select(SystemConfigDO::getId,SystemConfigDO::getName));
+ List systemConfigSchemeDOS = systemConfigSchemeMapper.selectList(new LambdaQueryWrapperX()
+ .eq(SystemConfigSchemeDO::getOrganId, OrganContextHolder.getOrganId())
+ .in(SystemConfigSchemeDO::getId, processIds)
+ .select(SystemConfigSchemeDO::getId,SystemConfigDO::getName));
- if(CollUtil.isEmpty(systemConfigDOS)){
+ if(CollUtil.isEmpty(systemConfigSchemeDOS)){
return success(new ArrayList<>());
}
- return success(BeanUtils.toBean(systemConfigDOS,SystemConfigRespDTO.class));
+ return success(BeanUtils.toBean(systemConfigSchemeDOS,SystemConfigRespDTO.class));
}
@@ -89,18 +103,18 @@ public class SystemConfigApiImpl implements SystemConfigApi {
@Override
public CommonResult getProcessSizeByIds(List processIds) {
- List systemConfigDOS = systemConfigMapper.selectList(new LambdaQueryWrapperX()
- .eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId())
- .in(SystemConfigDO::getId, processIds)
- .select(SystemConfigDO::getId,SystemConfigDO::getSetting));
+ List systemConfigSchemeDOS = systemConfigSchemeMapper.selectList(new LambdaQueryWrapperX()
+ .eq(SystemConfigSchemeDO::getOrganId, OrganContextHolder.getOrganId())
+ .in(SystemConfigSchemeDO::getId, processIds)
+ .select(SystemConfigSchemeDO::getId,SystemConfigDO::getSetting));
- if(CollUtil.isEmpty(systemConfigDOS)){
+ if(CollUtil.isEmpty(systemConfigSchemeDOS)){
throw exception(PLAN_PROCESS_CONFIG_ALL_IS_NULL);
}
AtomicReference processSize = new AtomicReference<>(0);
- systemConfigDOS.forEach(f->{
+ systemConfigSchemeDOS.forEach(f->{
try {
@@ -124,26 +138,26 @@ public class SystemConfigApiImpl implements SystemConfigApi {
@Override
public CommonResult getDefaultProcessConfig() {
- List systemConfigDOS = systemConfigMapper.selectSystemConfigList(SystemConfigTypeEnum.PROCESS_SCHEME.getType(), CommonStatusEnum.ENABLE.getStatus());
+ List systemConfigSchemeDOS = systemConfigSchemeMapper.selectSystemConfigList(SystemConfigTypeEnum.PROCESS_SCHEME.getType(), CommonStatusEnum.ENABLE.getStatus());
- AssertUtils.notEmpty(systemConfigDOS,PROCESS_CONFIG_DEFAULT_DATA_ERROR);
+ AssertUtils.notEmpty(systemConfigSchemeDOS,PROCESS_CONFIG_DEFAULT_DATA_ERROR);
- return success(BeanUtils.toBean(systemConfigDOS.get(0),SystemConfigRespDTO.class));
+ return success(BeanUtils.toBean(systemConfigSchemeDOS.get(0),SystemConfigRespDTO.class));
}
@Override
public CommonResult> getProcessById(Long processId) {
- SystemConfigDO systemConfigDO = systemConfigMapper.selectById(processId);
+ SystemConfigSchemeDO systemConfigSchemeDO = systemConfigSchemeMapper.selectById(processId);
- AssertUtils.notEmpty(systemConfigDO,THIS_PROCESS_CONFIG_DATA_ERROR);
+ AssertUtils.notEmpty(systemConfigSchemeDO,THIS_PROCESS_CONFIG_DATA_ERROR);
List processSchemeConfigs;
try {
- processSchemeConfigs = parseArray(systemConfigDO.getSetting(), ProcessSchemeConfig.class);
+ processSchemeConfigs = parseArray(systemConfigSchemeDO.getSetting(), ProcessSchemeConfig.class);
}catch (Exception e){
log.error(e.getMessage());
@@ -168,11 +182,11 @@ public class SystemConfigApiImpl implements SystemConfigApi {
// 配置查询和数据校验
- List processLineConfigList = systemConfigMapper.selectBatchIds(processLineConfigIds);
+ List processLineConfigList = systemConfigProcessMapper.selectBatchIds(processLineConfigIds);
checkValueIsNotEmpty(processLineConfigList,"加工分线");
- List optimizationConfigList = systemConfigMapper.selectBatchIds(optimizationConfigIds);
+ List optimizationConfigList = systemConfigDataMapper.selectBatchIds(optimizationConfigIds);
checkValueIsNotEmpty(optimizationConfigList,"优化数据配置");
@@ -240,10 +254,8 @@ public class SystemConfigApiImpl implements SystemConfigApi {
@Override
public CommonResult getMultiColorConfigStatus() {
-
List systemConfigDOS = systemConfigMapper.selectSystemConfigList(SystemConfigTypeEnum.MULTI_COLOR_ORDER_PLAN.getType(), CommonStatusEnum.ENABLE.getStatus());
-
return success(CollUtil.isNotEmpty(systemConfigDOS));
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/organ/vo/organ/OrganSaveReqVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/organ/vo/organ/OrganSaveReqVO.java
index 0c970fc4c..ab5c1cf1f 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/organ/vo/organ/OrganSaveReqVO.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/organ/vo/organ/OrganSaveReqVO.java
@@ -6,6 +6,7 @@ import com.cf.imes.module.system.validation.common.CommonStatus;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
+import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
@@ -54,6 +55,7 @@ public class OrganSaveReqVO {
@Schema(description = "账号数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
@NotNull(message = "账号数量不能为空")
@NumberValid(name = "账号数量")
+ @Min(value = 1 , message = "组织账号数量必须大于0")
private Integer accountCount;
// ========== 仅【创建】时,需要传递的字段 ==========
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/SystemConfigController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/SystemConfigController.java
index 4e73d23bc..85e0f8c6a 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/SystemConfigController.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/systemconfig/SystemConfigController.java
@@ -13,7 +13,6 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
-
import java.util.List;
import static com.cf.imes.framework.common.pojo.CommonResult.success;
@@ -43,8 +42,8 @@ public class SystemConfigController {
@GetMapping("/{id}")
@Operation(summary = "根据id查询系统配置")
@PreAuthorize("@ss.hasAnyPermissions('system:base-setting:query','unplannedOrders:query','placeorder:query')")
- public CommonResult getSystemConfig(@PathVariable("id") Long id) {
- SystemConfigDO systemConfigDO = systemConfigService.getSystemConfig(id);
+ public CommonResult getSystemConfig(@PathVariable("id") Long id,@RequestParam("type") Integer type) {
+ SystemConfigDO systemConfigDO = systemConfigService.getSystemConfig(id,type);
return success(BeanUtils.toBean(systemConfigDO, ConfigRespVO.class));
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/UserController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/UserController.java
index 7f11b9731..856687bdb 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/UserController.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/user/UserController.java
@@ -43,6 +43,7 @@ import javax.annotation.security.PermitAll;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -173,6 +174,9 @@ public class UserController {
HttpServletResponse response) throws IOException {
exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List list = userService.getUserPage(exportReqVO).getList();
+ if (CollUtil.isEmpty(list)) {
+ ExcelUtils.write(response, "用户数据.xls", "数据", UserExportRespVO.class, new ArrayList<>());
+ }
List userPostDTOS = postMapper.selectJoinList(UserPostDTO.class, new MPJLambdaWrapperX()
.select(PostDO::getName)
.leftJoin(UserPostDO.class, UserPostDO::getPostId, PostDO::getId)
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigDO.java
index 8fda641a3..1107ea653 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigDO.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigDO.java
@@ -16,7 +16,7 @@ import lombok.ToString;
/**
- * 系统配置
+ * 系统配置-自定义板编号 和 是否混单
*
* @author Gqr
* @since 2024/11/7 16:12
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigDataDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigDataDO.java
new file mode 100644
index 000000000..b9fb778f2
--- /dev/null
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigDataDO.java
@@ -0,0 +1,21 @@
+package com.cf.imes.module.system.dal.dataobject.systemconfig;
+
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+/**
+ * @author 优化数据配置
+ */
+
+@TableName(value = "system_config_data", autoResultMap = true)
+@KeySequence("system_config_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class SystemConfigDataDO extends SystemConfigDO{
+
+
+
+}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigFilterDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigFilterDO.java
new file mode 100644
index 000000000..ffd64da8e
--- /dev/null
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigFilterDO.java
@@ -0,0 +1,20 @@
+package com.cf.imes.module.system.dal.dataobject.systemconfig;
+
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+
+/**
+ * @author 板件分线
+ */
+@TableName(value = "system_config_filter", autoResultMap = true)
+@KeySequence("system_config_filter_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class SystemConfigFilterDO extends SystemConfigDO{
+
+
+}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigProcessDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigProcessDO.java
new file mode 100644
index 000000000..1f964a5f1
--- /dev/null
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigProcessDO.java
@@ -0,0 +1,20 @@
+package com.cf.imes.module.system.dal.dataobject.systemconfig;
+
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+/**
+ * @author 加工分线
+ */
+
+@TableName(value = "system_config_process", autoResultMap = true)
+@KeySequence("system_config_process_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class SystemConfigProcessDO extends SystemConfigDO{
+
+
+}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigSchemeDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigSchemeDO.java
new file mode 100644
index 000000000..20bf533ce
--- /dev/null
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/systemconfig/SystemConfigSchemeDO.java
@@ -0,0 +1,18 @@
+package com.cf.imes.module.system.dal.dataobject.systemconfig;
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+/**
+ * @author 加工方案
+ */
+
+@TableName(value = "system_config_scheme", autoResultMap = true)
+@KeySequence("system_config_scheme_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class SystemConfigSchemeDO extends SystemConfigDO{
+
+}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigDataMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigDataMapper.java
new file mode 100644
index 000000000..86c3c980e
--- /dev/null
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigDataMapper.java
@@ -0,0 +1,29 @@
+package com.cf.imes.module.system.dal.mysql.systemconfig;
+
+
+import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.framework.organ.core.context.OrganContextHolder;
+import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
+import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDataDO;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @author 优化数据配置 Mapper
+ */
+
+@Mapper
+public interface SystemConfigDataMapper extends BaseMapperX {
+
+ default List selectSystemConfigList(Integer type, Integer status) {
+ return selectList(new LambdaQueryWrapperX()
+ .eqIfPresent(SystemConfigDataDO::getOrganId, OrganContextHolder.getOrganId())
+ .eq(SystemConfigDataDO::getDeleted,false)
+ .eq(SystemConfigDataDO::getType, type)
+ .eqIfPresent(SystemConfigDataDO::getStatus,status)
+ .orderByAsc(SystemConfigDataDO::getSort, SystemConfigDO::getCreateTime));
+ }
+
+}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigFilterMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigFilterMapper.java
new file mode 100644
index 000000000..8f920e0c3
--- /dev/null
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigFilterMapper.java
@@ -0,0 +1,30 @@
+package com.cf.imes.module.system.dal.mysql.systemconfig;
+
+import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.framework.organ.core.context.OrganContextHolder;
+import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
+import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigFilterDO;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @author 板件分线 Mapper
+ */
+
+@Mapper
+public interface SystemConfigFilterMapper extends BaseMapperX {
+
+
+ default List selectSystemConfigList(Integer type, Integer status) {
+ return selectList(new LambdaQueryWrapperX()
+ .eqIfPresent(SystemConfigFilterDO::getOrganId, OrganContextHolder.getOrganId())
+ .eq(SystemConfigFilterDO::getDeleted,false)
+ .eq(SystemConfigFilterDO::getType, type)
+ .eqIfPresent(SystemConfigFilterDO::getStatus,status)
+ .orderByAsc(SystemConfigFilterDO::getSort,SystemConfigDO::getCreateTime));
+ }
+
+
+}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigProcessMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigProcessMapper.java
new file mode 100644
index 000000000..0224a48f2
--- /dev/null
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigProcessMapper.java
@@ -0,0 +1,31 @@
+package com.cf.imes.module.system.dal.mysql.systemconfig;
+
+
+import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.framework.organ.core.context.OrganContextHolder;
+import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
+import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigProcessDO;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+
+/**
+ * @author 加工分线 Mapper
+ */
+
+@Mapper
+public interface SystemConfigProcessMapper extends BaseMapperX {
+
+
+ default List selectSystemConfigList(Integer type, Integer status) {
+ return selectList(new LambdaQueryWrapperX()
+ .eqIfPresent(SystemConfigProcessDO::getOrganId, OrganContextHolder.getOrganId())
+ .eq(SystemConfigProcessDO::getDeleted,false)
+ .eq(SystemConfigProcessDO::getType, type)
+ .eqIfPresent(SystemConfigProcessDO::getStatus,status)
+ .orderByAsc(SystemConfigProcessDO::getSort, SystemConfigDO::getCreateTime));
+ }
+
+}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigSchemeMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigSchemeMapper.java
new file mode 100644
index 000000000..7906cd276
--- /dev/null
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/systemconfig/SystemConfigSchemeMapper.java
@@ -0,0 +1,30 @@
+package com.cf.imes.module.system.dal.mysql.systemconfig;
+
+
+import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.framework.organ.core.context.OrganContextHolder;
+import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
+import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigSchemeDO;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @author 加工方案 Mapper
+ */
+
+@Mapper
+public interface SystemConfigSchemeMapper extends BaseMapperX {
+
+
+ default List selectSystemConfigList(Integer type, Integer status) {
+ return selectList(new LambdaQueryWrapperX()
+ .eqIfPresent(SystemConfigSchemeDO::getOrganId, OrganContextHolder.getOrganId())
+ .eq(SystemConfigSchemeDO::getDeleted,false)
+ .eq(SystemConfigSchemeDO::getType, type)
+ .eqIfPresent(SystemConfigSchemeDO::getStatus,status)
+ .orderByAsc(SystemConfigSchemeDO::getSort, SystemConfigDO::getCreateTime));
+ }
+
+}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/config/SystemConfigTypeEnum.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/config/SystemConfigTypeEnum.java
index a9724ba2f..bc05cd710 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/config/SystemConfigTypeEnum.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/config/SystemConfigTypeEnum.java
@@ -29,7 +29,7 @@ public enum SystemConfigTypeEnum {
ADVANCED_SCREEN(3, "高级筛选"),
/**
- * 加工筛选
+ * 加工分线
*/
PROCESSING_SCREENING(4, "加工分线"),
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/SystemConfigService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/SystemConfigService.java
index 9da6931ce..72c1874ea 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/SystemConfigService.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/SystemConfigService.java
@@ -27,7 +27,7 @@ public interface SystemConfigService {
* @param id
* @return
*/
- SystemConfigDO getSystemConfig(Long id);
+ SystemConfigDO getSystemConfig(Long id,Integer type);
/**
* 新增/修改基础配置
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/SystemConfigServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/SystemConfigServiceImpl.java
index 9c0069059..3f9aebab3 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/SystemConfigServiceImpl.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/SystemConfigServiceImpl.java
@@ -1,10 +1,8 @@
package com.cf.imes.module.system.service.systemconfig;
-import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
-import com.cf.imes.framework.common.util.object.BeanUtils;
-import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.framework.common.exception.ServiceException;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.system.controller.admin.systemconfig.vo.*;
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
@@ -19,12 +17,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
-
-import java.util.ArrayList;
import java.util.List;
-import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static com.cf.imes.module.system.enums.ErrorCodeConstants.SYSTEM_CONFIG_NOT_EXISTS;
+import static com.cf.imes.module.system.enums.ErrorCodeConstants.THIS_CONFIG_DATA_ERROR;
/**
* 系统配置接口实现类
@@ -50,8 +45,12 @@ public class SystemConfigServiceImpl implements SystemConfigService {
}
@Override
- public SystemConfigDO getSystemConfig(Long id) {
- return validateSystemConfigExists(id);
+ public SystemConfigDO getSystemConfig(Long id,Integer type) {
+
+ AbstractSystemConfigServiceHandler configService = configServiceFactory.getConfigServiceHandler(type);
+
+ return configService.getSystemConfig(id);
+
}
@Override
@@ -59,57 +58,34 @@ public class SystemConfigServiceImpl implements SystemConfigService {
public void modifySystemConfig(ConfigSaveReqVO reqVO) {
// 根据配置类型选择对应的service
AbstractSystemConfigServiceHandler configService = configServiceFactory.getConfigServiceHandler(reqVO.getType());
- // 校验规则
- configService.checkValid(reqVO.getSetting());
- // 系统配置保存前操作
- configService.beforeSaveConfig(reqVO);
- SystemConfigDO systemConfigDO;
- if (ObjectUtil.isNotNull(reqVO.getId())) {
- systemConfigDO = validateSystemConfigExists(reqVO.getId());
- // 覆盖配置
- systemConfigDO.setSetting(reqVO.getSetting());
- // 覆盖名称
- systemConfigDO.setName(reqVO.getName());
- // 更新
- systemConfigMapper.updateById(systemConfigDO);
- } else {
- systemConfigDO = BeanUtils.toBean(reqVO, SystemConfigDO.class);
- // 新增
- systemConfigMapper.insert(systemConfigDO);
- }
- // 系统配置保存后操作
- configService.afterSaveConfig(systemConfigDO, reqVO);
+
+ configService.modifySystemConfig(reqVO);
+
}
@Override
public void updateStatus(ConfigUpdateStatusReqVO reqVO) {
// 根据配置类型选择对应的service
AbstractSystemConfigServiceHandler configService = configServiceFactory.getConfigServiceHandler(reqVO.getType());
- Long id = reqVO.getId();
- // 校验存在
- SystemConfigDO systemConfigDO = validateSystemConfigExists(id);
- // 更新状态
- systemConfigMapper.update(new LambdaUpdateWrapper().eq(SystemConfigDO::getId, id).set(SystemConfigDO::getStatus, reqVO.getStatus()));
- // 更新状态后操作
- configService.afterUpdateStatus(systemConfigDO, reqVO);
+
+ configService.updateConfigStatus(reqVO);
+
}
@Override
public void updateConfigSort(List reqVO) {
- ArrayList systemConfigDOS = new ArrayList<>();
+ if(reqVO.isEmpty()){
+ return;
+ }
- reqVO.forEach(f->
- systemConfigDOS.add(SystemConfigDO
- .builder()
- .id(f.getId())
- .type(f.getType())
- .status(f.getStatus())
- .sort(f.getSort())
- .build()));
+ Integer type = reqVO.stream().map(ConfigUpdateSortReqVO::getType).findFirst().orElseThrow(() -> new ServiceException(THIS_CONFIG_DATA_ERROR));
- systemConfigMapper.updateBatch(systemConfigDOS);
+ // 根据配置类型选择对应的service
+ AbstractSystemConfigServiceHandler configService = configServiceFactory.getConfigServiceHandler(type);
+
+ configService.updateConfigSort(reqVO);
}
@@ -126,26 +102,10 @@ public class SystemConfigServiceImpl implements SystemConfigService {
@Override
public void deleteSystemConfig(ConfigDeleteReqVO reqVO) {
- validateSystemConfigExists(reqVO.getId());
// 根据配置类型选择对应的service
AbstractSystemConfigServiceHandler configService = configServiceFactory.getConfigServiceHandler(reqVO.getType());
configService.deleteConfig(reqVO);
}
- /**
- * 校验基础配置是否存在
- *
- * @param id
- * @return
- */
- private SystemConfigDO validateSystemConfigExists(Long id) {
- SystemConfigDO systemConfigDO = systemConfigMapper.selectOne(new LambdaQueryWrapperX()
- .eq(SystemConfigDO::getId, id)
- .eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId()));
- if (ObjectUtil.isNull(systemConfigDO)) {
- throw exception(SYSTEM_CONFIG_NOT_EXISTS);
- }
- return systemConfigDO;
- }
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/SystemConfigServiceFactory.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/SystemConfigServiceFactory.java
index 4d529e809..f68b2b293 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/SystemConfigServiceFactory.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/SystemConfigServiceFactory.java
@@ -47,7 +47,7 @@ public class SystemConfigServiceFactory {
// 高级筛选
case ADVANCED_SCREEN:
return applicationContext.getBean(AdvancedScreenServiceHandler.class);
- // 加工筛选
+ // 加工分线
case PROCESSING_SCREENING:
return applicationContext.getBean(ProcessScreeningServiceHandler.class);
// 数据处理
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/AbstractSystemConfigServiceHandler.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/AbstractSystemConfigServiceHandler.java
index ef332c7c7..585909616 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/AbstractSystemConfigServiceHandler.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/AbstractSystemConfigServiceHandler.java
@@ -1,9 +1,6 @@
package com.cf.imes.module.system.service.systemconfig.factory.service;
-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.ConfigSaveReqVO;
-import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO;
+import com.cf.imes.module.system.controller.admin.systemconfig.vo.*;
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
import java.util.List;
@@ -47,14 +44,6 @@ public abstract class AbstractSystemConfigServiceHandler {
*/
public abstract void afterSaveConfig(SystemConfigDO systemConfigDO, ConfigSaveReqVO reqVO);
- /**
- * 修改系统配置状态后操作
- *
- * @param systemConfigDO
- * @param reqVO
- */
- public abstract void afterUpdateStatus(SystemConfigDO systemConfigDO, ConfigUpdateStatusReqVO reqVO);
-
/**
* 删除系统配置操作
@@ -64,4 +53,35 @@ public abstract class AbstractSystemConfigServiceHandler {
public abstract void deleteConfig(ConfigDeleteReqVO reqVO);
+ /**
+ * 修改系统配置状态操作
+ *
+ * @param reqVO
+ */
+ public abstract void updateConfigStatus(ConfigUpdateStatusReqVO reqVO);
+
+
+ /**
+ * 修改系统配置排序操作
+ *
+ * @param reqVO
+ */
+ public abstract void updateConfigSort(List reqVO);
+
+
+ /**
+ * 根据 ID 查询对应的系统配置信息
+ *
+ * @param id
+ */
+ public abstract SystemConfigDO getSystemConfig(Long id);
+
+
+ /**
+ * 修改系统配置操作
+ *
+ * @param reqVO
+ */
+ public abstract void modifySystemConfig(ConfigSaveReqVO reqVO);
+
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/AdvancedScreenServiceHandler.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/AdvancedScreenServiceHandler.java
index 2c5f1fe3f..4ebe6a0f4 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/AdvancedScreenServiceHandler.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/AdvancedScreenServiceHandler.java
@@ -1,10 +1,7 @@
package com.cf.imes.module.system.service.systemconfig.factory.service.impl;
-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.ConfigSaveReqVO;
-import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO;
+import com.cf.imes.module.system.controller.admin.systemconfig.vo.*;
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
import com.cf.imes.module.system.service.systemconfig.factory.service.AbstractSystemConfigServiceHandler;
import lombok.extern.slf4j.Slf4j;
@@ -42,13 +39,29 @@ public class AdvancedScreenServiceHandler extends AbstractSystemConfigServiceHan
// todo afterSaveConfig
}
- @Override
- public void afterUpdateStatus(SystemConfigDO systemConfigDO, ConfigUpdateStatusReqVO reqVO) {
- // todo afterUpdateStatus
- }
-
@Override
public void deleteConfig(ConfigDeleteReqVO reqVO) {
// todo deleteConfig
}
+
+ @Override
+ public void updateConfigStatus(ConfigUpdateStatusReqVO reqVO) {
+
+ }
+
+ @Override
+ public void updateConfigSort(List reqVO) {
+
+ }
+
+ @Override
+ public SystemConfigDO getSystemConfig(Long id) {
+
+ return null;
+ }
+
+ @Override
+ public void modifySystemConfig(ConfigSaveReqVO reqVO) {
+
+ }
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/CustomPlateNoServiceHandler.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/CustomPlateNoServiceHandler.java
index c93a127ed..c8ed54db4 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/CustomPlateNoServiceHandler.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/CustomPlateNoServiceHandler.java
@@ -10,12 +10,10 @@ import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.common.exception.ErrorCode;
import com.cf.imes.framework.common.exception.ServiceException;
import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil;
+import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
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.ConfigPageReqVO;
-import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigSaveReqVO;
-import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO;
+import com.cf.imes.module.system.controller.admin.systemconfig.vo.*;
import com.cf.imes.module.system.dal.dataobject.customplateno.CustomPlateNoSeqDO;
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
import com.cf.imes.module.system.dal.dataobject.dict.DictDataDO;
@@ -34,21 +32,15 @@ import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import static com.cf.imes.module.system.enums.ErrorCodeConstants.CUSTOM_PLATE_NO_RULE_CHECK_BOL_TYPE_ERROR;
-import static com.cf.imes.module.system.enums.ErrorCodeConstants.CUSTOM_PLATE_NO_RULE_CHECK_INT_TYPE_ERROR;
-import static com.cf.imes.module.system.enums.ErrorCodeConstants.CUSTOM_PLATE_NO_RULE_CHECK_INT_TYPE_NO_EMPTY;
-import static com.cf.imes.module.system.enums.ErrorCodeConstants.CUSTOM_PLATE_NO_RULE_CHECK_RESETMODE_ERROR;
-import static com.cf.imes.module.system.enums.ErrorCodeConstants.CUSTOM_PLATE_NO_RULE_CHECK_RULECODE_EMPTY_ERROR;
-import static com.cf.imes.module.system.enums.ErrorCodeConstants.SYSTEM_CONFIG_CUSTOM_PLATE_NO_RULE_SAVE_CHECK_ERROR;
-import static com.cf.imes.module.system.enums.ErrorCodeConstants.CUSTOM_PLATE_NO_RULE_CHECK_RULECODE_NOT_MATCH_ERROR;
-import static com.cf.imes.module.system.enums.ErrorCodeConstants.CUSTOM_PLATE_NO_RULE_CHECK_DATE_TYPE_FORMAT_ERROR;
-import static com.cf.imes.module.system.enums.ErrorCodeConstants.CUSTOM_PLATE_NO_RULE_CHECK_CUSTOM_VALUE_EMPTY_ERROR;
+import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
/**
* 自定义板编号服务处理器
@@ -78,23 +70,18 @@ public class CustomPlateNoServiceHandler extends AbstractSystemConfigServiceHand
public List selectList(ConfigPageReqVO pageReqVO) {
SystemConfigTypeEnum customPlateNoEnum = SystemConfigTypeEnum.CUSTOM_PLATE_NO;
List systemConfigDOS = systemConfigMapper.selectList(new LambdaQueryWrapperX()
- .eq(SystemConfigDO::getStatus, CommonStatusEnum.ENABLE.getStatus())
- .eq(SystemConfigDO::getType, pageReqVO.getType())
- .eqIfPresent(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId())
- .orderByAsc(SystemConfigDO::getId));
+ .eq(SystemConfigDO::getType, customPlateNoEnum.getType())
+ .eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId())
+ .orderByAsc(SystemConfigDO::getVersion));
if (systemConfigDOS.isEmpty()) {
SystemConfigDO initCustomPlateNoConfig = new SystemConfigDO().builder().id(null).name(customPlateNoEnum.getName()).type(customPlateNoEnum.getType()).build();
return List.of(initCustomPlateNoConfig);
- } else {
- // configDOPageResult下的自定义板编号配置只保留version最大的一项
- Optional maxVersionCustPlateNoConfigOptinal = systemConfigDOS.stream()
- .filter(s -> ObjectUtil.equal(customPlateNoEnum.getType(), s.getType()))
- .max(Comparator.comparing(SystemConfigDO::getVersion));
- if (maxVersionCustPlateNoConfigOptinal.isPresent()) {
- systemConfigDOS.removeIf(s -> ObjectUtil.equal(customPlateNoEnum.getType(), s.getType()) && ObjectUtil.notEqual(s.getId(), maxVersionCustPlateNoConfigOptinal.get().getId()));
- }
- return systemConfigDOS;
}
+ // configDOPageResult下的自定义板编号配置只保留version最大的一项
+ return systemConfigDOS.stream()
+ .max(Comparator.comparing(SystemConfigDO::getVersion))
+ .map(Collections::singletonList)
+ .orElse(Collections.emptyList());
}
@Override
@@ -304,18 +291,103 @@ public class CustomPlateNoServiceHandler extends AbstractSystemConfigServiceHand
}
}
- @Override
- public void afterUpdateStatus(SystemConfigDO systemConfigDO, ConfigUpdateStatusReqVO reqVO) {
- if (CommonStatusEnum.DISABLE.getStatus().equals(reqVO.getStatus())) {
- // 禁用配置移除缓存
- String redisKey = String.format("%s:%d:%s", RedisKeyConstants.SYSTEM_CONFIG, OrganContextHolder.getOrganId(), RedisKeyConstants.CUSTOM_PLATE_NO);
- Boolean delete = stringRedisTemplate.delete(redisKey);
- log.info("[CustomPlateNoGenerateService][afterUpdateStatus]key:{}缓存删除结果:{}", redisKey, delete);
- }
- }
@Override
public void deleteConfig(ConfigDeleteReqVO reqVO) {
// TODO document why this method is empty
}
+
+
+ @Override
+ public void updateConfigStatus(ConfigUpdateStatusReqVO reqVO) {
+ Long id = reqVO.getId();
+ // 状态
+ Integer status = reqVO.getStatus();
+ // 组织
+ Long organId = OrganContextHolder.getOrganId();
+
+ // 校验存在
+ SystemConfigDO systemConfigDO = systemConfigMapper.selectOne(new LambdaQueryWrapperX()
+ .eq(SystemConfigDO::getId, id)
+ .eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId()));
+ if (ObjectUtil.isNull(systemConfigDO)) {
+ throw exception(SYSTEM_CONFIG_NOT_EXISTS);
+ }
+
+ if (CommonStatusEnum.ENABLE.getStatus().equals(status)) {
+ // 查询最大版本号
+ List systemConfigDOS = systemConfigMapper.selectList(new LambdaQueryWrapperX()
+ .eq(SystemConfigDO::getType, SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType())
+ .eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId())
+ .orderByAsc(SystemConfigDO::getVersion));
+ Optional maxVersionCustPlateNoConfigOptinal = systemConfigDOS.stream()
+ .max(Comparator.comparing(SystemConfigDO::getVersion));
+ if (maxVersionCustPlateNoConfigOptinal.isPresent()) {
+ // 启用配置,启用最大版本号
+ systemConfigMapper.update(new LambdaUpdateWrapper()
+ .eq(SystemConfigDO::getOrganId, organId)
+ .eq(SystemConfigDO::getId, maxVersionCustPlateNoConfigOptinal.get().getId())
+ .eq(SystemConfigDO::getType, SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType())
+ .set(SystemConfigDO::getStatus, status));
+ }
+ } else {
+ // 禁用配置,禁用组织下所有板编号配置
+ systemConfigMapper.update(new LambdaUpdateWrapper()
+ .eq(SystemConfigDO::getOrganId, organId)
+ .eq(SystemConfigDO::getType, SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType())
+ .set(SystemConfigDO::getStatus, status));
+
+ // 禁用配置移除缓存
+ String redisKey = String.format("%s:%d:%s", RedisKeyConstants.SYSTEM_CONFIG, organId, RedisKeyConstants.CUSTOM_PLATE_NO);
+ Boolean delete = stringRedisTemplate.delete(redisKey);
+ log.info("[CustomPlateNoGenerateService][afterUpdateStatus]key:{}缓存删除结果:{}", redisKey, delete);
+ }
+
+ }
+
+ @Override
+ public void updateConfigSort(List reqVO) {
+ // TODO document why this method is empty
+ }
+
+
+ @Override
+ public SystemConfigDO getSystemConfig(Long id) {
+
+ SystemConfigDO systemConfigDO = systemConfigMapper.selectOne(new LambdaQueryWrapperX()
+ .eq(SystemConfigDO::getId, id)
+ .eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId()));
+ if (ObjectUtil.isNull(systemConfigDO)) {
+ throw exception(SYSTEM_CONFIG_NOT_EXISTS);
+ }
+
+ return systemConfigDO;
+
+ }
+
+ @Override
+ public void modifySystemConfig(ConfigSaveReqVO reqVO) {
+
+ // 校验规则
+ checkValid(reqVO.getSetting());
+ // 系统配置保存前操作
+ beforeSaveConfig(reqVO);
+ SystemConfigDO systemConfigDO;
+ if (ObjectUtil.isNotNull(reqVO.getId())) {
+ systemConfigDO = getSystemConfig(reqVO.getId());
+ // 覆盖配置
+ systemConfigDO.setSetting(reqVO.getSetting());
+ // 覆盖名称
+ systemConfigDO.setName(reqVO.getName());
+ // 更新
+ systemConfigMapper.updateById(systemConfigDO);
+ } else {
+ systemConfigDO = BeanUtils.toBean(reqVO, SystemConfigDO.class);
+ // 新增
+ systemConfigMapper.insert(systemConfigDO);
+ }
+ // 系统配置保存后操作
+ afterSaveConfig(systemConfigDO, reqVO);
+
+ }
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/DataProcessServiceHandler.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/DataProcessServiceHandler.java
index 5ecff24da..f8948999e 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/DataProcessServiceHandler.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/DataProcessServiceHandler.java
@@ -1,19 +1,26 @@
package com.cf.imes.module.system.service.systemconfig.factory.service.impl;
-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.ConfigSaveReqVO;
-import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.cf.imes.framework.common.util.object.BeanUtils;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.framework.organ.core.context.OrganContextHolder;
+import com.cf.imes.module.system.controller.admin.systemconfig.vo.*;
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.dataobject.systemconfig.SystemConfigDataDO;
+import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigDataMapper;
import com.cf.imes.module.system.service.systemconfig.factory.service.AbstractSystemConfigServiceHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.util.ArrayList;
import java.util.List;
+import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.cf.imes.module.system.enums.ErrorCodeConstants.SYSTEM_CONFIG_NOT_EXISTS;
+
/**
* @author 数据处理服务处理器
*/
@@ -22,18 +29,18 @@ import java.util.List;
public class DataProcessServiceHandler extends AbstractSystemConfigServiceHandler {
@Resource
- private SystemConfigMapper systemConfigMapper;
+ private SystemConfigDataMapper systemConfigDataMapper;
@Override
public List selectList(ConfigPageReqVO pageReqVO) {
- List systemConfigDOS = systemConfigMapper.selectSystemConfigList(pageReqVO.getType(),null);
+ List systemConfigDOS = systemConfigDataMapper.selectSystemConfigList(pageReqVO.getType(),null);
if (systemConfigDOS.isEmpty()){
return null;
}
- return systemConfigDOS;
+ return BeanUtils.toBean(systemConfigDOS,SystemConfigDO.class);
}
@@ -54,16 +61,111 @@ public class DataProcessServiceHandler extends AbstractSystemConfigServiceHandle
// todo afterSaveConfig
}
- @Override
- public void afterUpdateStatus(SystemConfigDO systemConfigDO, ConfigUpdateStatusReqVO reqVO) {
- // todo afterUpdateStatus
- }
@Override
public void deleteConfig(ConfigDeleteReqVO reqVO) {
- systemConfigMapper.deleteById(reqVO.getId());
+ validateSystemConfigExists(reqVO.getId());
+
+ systemConfigDataMapper.deleteById(reqVO.getId());
}
+ @Override
+ public void updateConfigStatus(ConfigUpdateStatusReqVO reqVO) {
+
+ Long id = reqVO.getId();
+
+ // 校验存在
+ SystemConfigDataDO systemConfigDataDO = systemConfigDataMapper.selectOne(new LambdaQueryWrapperX()
+ .eq(SystemConfigDataDO::getId, id)
+ .eq(SystemConfigDataDO::getOrganId, OrganContextHolder.getOrganId()));
+
+ if (ObjectUtil.isNull(systemConfigDataDO)) {
+ throw exception(SYSTEM_CONFIG_NOT_EXISTS);
+ }
+
+ // 更新状态
+ systemConfigDataMapper.update(new LambdaUpdateWrapper()
+ .eq(SystemConfigDataDO::getId, id)
+ .set(SystemConfigDataDO::getStatus, reqVO.getStatus()));
+
+ }
+
+ @Override
+ public void updateConfigSort(List reqVO) {
+
+ ArrayList systemConfigDataDOS = new ArrayList<>();
+
+ reqVO.forEach(f->
+ systemConfigDataDOS.add(BeanUtils.toBean(SystemConfigDO
+ .builder()
+ .id(f.getId())
+ .type(f.getType())
+ .status(f.getStatus())
+ .sort(f.getSort())
+ .build(),SystemConfigDataDO.class)));
+
+ systemConfigDataMapper.updateBatch(systemConfigDataDOS);
+
+
+ }
+
+ @Override
+ public SystemConfigDO getSystemConfig(Long id) {
+
+ SystemConfigDataDO systemConfigDataDO = validateSystemConfigExists(id);
+
+ return BeanUtils.toBean(systemConfigDataDO,SystemConfigDO.class);
+
+ }
+
+
+ @Override
+ public void modifySystemConfig(ConfigSaveReqVO reqVO) {
+
+ // 校验规则
+ checkValid(reqVO.getSetting());
+ // 系统配置保存前操作
+ beforeSaveConfig(reqVO);
+ SystemConfigDataDO systemConfigDataDO;
+ if (ObjectUtil.isNotNull(reqVO.getId())) {
+ systemConfigDataDO = validateSystemConfigExists(reqVO.getId());
+ // 覆盖配置
+ systemConfigDataDO.setSetting(reqVO.getSetting());
+ // 覆盖名称
+ systemConfigDataDO.setName(reqVO.getName());
+ // 更新
+ systemConfigDataMapper.updateById(systemConfigDataDO);
+ } else {
+ systemConfigDataDO = BeanUtils.toBean(reqVO, SystemConfigDataDO.class);
+ // 新增
+ systemConfigDataMapper.insert(systemConfigDataDO);
+ }
+ // 系统配置保存后操作
+ afterSaveConfig(systemConfigDataDO, reqVO);
+
+
+ }
+
+
+
+ /**
+ * 校验基础配置是否存在
+ *
+ * @param id
+ * @return
+ */
+ private SystemConfigDataDO validateSystemConfigExists(Long id) {
+
+ SystemConfigDataDO systemConfigDataDO = systemConfigDataMapper.selectOne(new LambdaQueryWrapperX()
+ .eq(SystemConfigDataDO::getId, id)
+ .eq(SystemConfigDataDO::getOrganId, OrganContextHolder.getOrganId()));
+
+ if (ObjectUtil.isNull(systemConfigDataDO)) {
+ throw exception(SYSTEM_CONFIG_NOT_EXISTS);
+ }
+
+ return systemConfigDataDO;
+ }
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/DefaultSystemConfigServiceHandler.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/DefaultSystemConfigServiceHandler.java
index 47046fe21..1abd0aede 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/DefaultSystemConfigServiceHandler.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/DefaultSystemConfigServiceHandler.java
@@ -4,10 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
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.ConfigPageReqVO;
-import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigSaveReqVO;
-import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO;
+import com.cf.imes.module.system.controller.admin.systemconfig.vo.*;
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.enums.config.SystemConfigTypeEnum;
@@ -41,7 +38,7 @@ public class DefaultSystemConfigServiceHandler extends AbstractSystemConfigServi
// 自定义板编号、高级筛选不走通用分页查询
List list = allConfigTypes.stream()
- .filter(f -> ObjectUtil.notEqual(SystemConfigTypeEnum.ADVANCED_SCREEN.getType(), f.getType()) && ObjectUtil.notEqual(SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType(), f.getType())).toList();
+ .filter(f -> ObjectUtil.notEqual(SystemConfigTypeEnum.ADVANCED_SCREEN.getType(), f.getType())).toList();
List systemConfigDOS = systemConfigMapper.selectList(new LambdaQueryWrapperX()
.likeIfPresent(SystemConfigDO::getName, reqVO.getName())
@@ -68,6 +65,14 @@ public class DefaultSystemConfigServiceHandler extends AbstractSystemConfigServi
.type(configTypeEnum.getType())
.build();
+ // 自定义板编号
+ if(configTypeEnum.getType().equals(SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType())){
+ initConfig.setStatus(CommonStatusEnum.DISABLE.getStatus());
+ resultList.add(initConfig);
+ continue;
+ }
+
+ // 支持多种颜色排单
if(configTypeEnum.getType().equals(SystemConfigTypeEnum.MULTI_COLOR_ORDER_PLAN.getType())){
SystemConfigDO systemConfigDO = SystemConfigDO
.builder()
@@ -93,9 +98,6 @@ public class DefaultSystemConfigServiceHandler extends AbstractSystemConfigServi
}
}
- // 增加自定义板编号配置
- List customPlateNoConfigList = customPlateNoServiceHandler.selectList(ConfigPageReqVO.builder().type(SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType()).build());
- resultList.addAll(0, customPlateNoConfigList);
return resultList;
}
@@ -114,13 +116,30 @@ public class DefaultSystemConfigServiceHandler extends AbstractSystemConfigServi
// todo afterSaveConfig
}
- @Override
- public void afterUpdateStatus(SystemConfigDO systemConfigDO, ConfigUpdateStatusReqVO reqVO) {
- // todo afterUpdateStatus
- }
@Override
public void deleteConfig(ConfigDeleteReqVO reqVO) {
// TODO document why this method is empty
}
+
+ @Override
+ public void updateConfigStatus(ConfigUpdateStatusReqVO reqVO) {
+ // TODO document why this method is empty
+ }
+
+ @Override
+ public void updateConfigSort(List reqVO) {
+ // TODO document why this method is empty
+ }
+
+ @Override
+ public SystemConfigDO getSystemConfig(Long id) {
+
+ return null;
+ }
+
+ @Override
+ public void modifySystemConfig(ConfigSaveReqVO reqVO) {
+ // TODO document why this method is empty
+ }
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/IntellectBranchingService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/IntellectBranchingService.java
index e8d1b9955..567ed25e5 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/IntellectBranchingService.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/IntellectBranchingService.java
@@ -1,42 +1,47 @@
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.cf.imes.framework.common.enums.CommonStatusEnum;
+import com.cf.imes.framework.common.util.object.BeanUtils;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
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.ConfigPageReqVO;
-import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigSaveReqVO;
-import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO;
+import com.cf.imes.module.system.controller.admin.systemconfig.vo.*;
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.dataobject.systemconfig.SystemConfigFilterDO;
+import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigFilterMapper;
import com.cf.imes.module.system.service.systemconfig.factory.service.AbstractSystemConfigServiceHandler;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.util.ArrayList;
import java.util.List;
+import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.cf.imes.module.system.enums.ErrorCodeConstants.SYSTEM_CONFIG_NOT_EXISTS;
+
/**
- * @author 智能分线生成服务
+ * @author 板件分线生成服务
*/
@Service("intellectBranchingService")
public class IntellectBranchingService extends AbstractSystemConfigServiceHandler {
- @Resource
- private SystemConfigMapper systemConfigMapper;
+ @Resource
+ private SystemConfigFilterMapper systemConfigFilterMapper;
@Override
public List selectList(ConfigPageReqVO pageReqVO) {
- List systemConfigDOS = systemConfigMapper.selectSystemConfigList(pageReqVO.getType(),null);
+ List systemConfigDOS = systemConfigFilterMapper.selectSystemConfigList(pageReqVO.getType(),null);
if (systemConfigDOS.isEmpty()){
return null;
}
- return systemConfigDOS;
+ return BeanUtils.toBean(systemConfigDOS,SystemConfigDO.class);
}
@Override
@@ -56,36 +61,132 @@ public class IntellectBranchingService extends AbstractSystemConfigServiceHandle
@Override
public void afterSaveConfig(SystemConfigDO systemConfigDO, ConfigSaveReqVO reqVO) {
- List systemConfigDOS = systemConfigMapper.selectSystemConfigList(reqVO.getType(), CommonStatusEnum.ENABLE.getStatus());
+ List systemConfigDOS = systemConfigFilterMapper.selectSystemConfigList(reqVO.getType(), CommonStatusEnum.ENABLE.getStatus());
if(systemConfigDOS.size() > 1){
- systemConfigMapper.update(new LambdaUpdateWrapper()
- .eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId())
- .eq(SystemConfigDO::getId,systemConfigDO.getId())
- .set(SystemConfigDO::getStatus, CommonStatusEnum.DISABLE.getStatus()));
+ systemConfigFilterMapper.update(new LambdaUpdateWrapper()
+ .eq(SystemConfigFilterDO::getOrganId, OrganContextHolder.getOrganId())
+ .eq(SystemConfigFilterDO::getId,systemConfigDO.getId())
+ .set(SystemConfigFilterDO::getStatus, CommonStatusEnum.DISABLE.getStatus()));
}
}
- @Override
- public void afterUpdateStatus(SystemConfigDO systemConfigDO, ConfigUpdateStatusReqVO reqVO) {
-
- systemConfigMapper.update(new LambdaUpdateWrapper()
- .eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId())
- .eq(SystemConfigDO::getDeleted,false)
- .notIn(SystemConfigDO::getId,reqVO.getId())
- .eq(SystemConfigDO::getType, systemConfigDO.getType())
- .set(SystemConfigDO::getStatus, CommonStatusEnum.DISABLE.getStatus()));
-
- }
-
@Override
public void deleteConfig(ConfigDeleteReqVO reqVO) {
- systemConfigMapper.deleteById(reqVO.getId());
+ validateSystemConfigExists(reqVO.getId());
+
+ systemConfigFilterMapper.deleteById(reqVO.getId());
}
+ @Override
+ public void updateConfigStatus(ConfigUpdateStatusReqVO reqVO) {
+
+ Long id = reqVO.getId();
+
+ // 校验存在
+ SystemConfigFilterDO systemConfigFilterDO = systemConfigFilterMapper.selectOne(new LambdaQueryWrapperX()
+ .eq(SystemConfigFilterDO::getId, id)
+ .eq(SystemConfigFilterDO::getOrganId, OrganContextHolder.getOrganId()));
+ if (ObjectUtil.isNull(systemConfigFilterDO)) {
+ throw exception(SYSTEM_CONFIG_NOT_EXISTS);
+ }
+
+ // 更新状态
+ systemConfigFilterMapper.update(new LambdaUpdateWrapper()
+ .eq(SystemConfigFilterDO::getId, id)
+ .set(SystemConfigFilterDO::getStatus, reqVO.getStatus()));
+
+ systemConfigFilterMapper.update(new LambdaUpdateWrapper()
+ .eq(SystemConfigFilterDO::getOrganId, OrganContextHolder.getOrganId())
+ .eq(SystemConfigFilterDO::getDeleted,false)
+ .notIn(SystemConfigFilterDO::getId,reqVO.getId())
+ .eq(SystemConfigFilterDO::getType, systemConfigFilterDO.getType())
+ .set(SystemConfigFilterDO::getStatus, CommonStatusEnum.DISABLE.getStatus()));
+
+ }
+
+
+
+ @Override
+ public void updateConfigSort(List reqVO) {
+
+ ArrayList systemConfigFilterDOS = new ArrayList<>();
+
+ reqVO.forEach(f->
+ systemConfigFilterDOS.add(BeanUtils.toBean(SystemConfigDO
+ .builder()
+ .id(f.getId())
+ .type(f.getType())
+ .status(f.getStatus())
+ .sort(f.getSort())
+ .build(),SystemConfigFilterDO.class)));
+
+ systemConfigFilterMapper.updateBatch(systemConfigFilterDOS);
+
+ }
+
+
+ @Override
+ public SystemConfigDO getSystemConfig(Long id) {
+
+ SystemConfigFilterDO systemConfigFilterDO = validateSystemConfigExists(id);
+
+ return BeanUtils.toBean(systemConfigFilterDO,SystemConfigDO.class);
+
+ }
+
+ @Override
+ public void modifySystemConfig(ConfigSaveReqVO reqVO) {
+
+ // 校验规则
+ checkValid(reqVO.getSetting());
+ // 系统配置保存前操作
+ beforeSaveConfig(reqVO);
+ SystemConfigFilterDO systemConfigFilterDO;
+ if (ObjectUtil.isNotNull(reqVO.getId())) {
+ systemConfigFilterDO = validateSystemConfigExists(reqVO.getId());
+ // 覆盖配置
+ systemConfigFilterDO.setSetting(reqVO.getSetting());
+ // 覆盖名称
+ systemConfigFilterDO.setName(reqVO.getName());
+ // 更新
+ systemConfigFilterMapper.updateById(systemConfigFilterDO);
+ } else {
+ systemConfigFilterDO = BeanUtils.toBean(reqVO, SystemConfigFilterDO.class);
+ // 新增
+ systemConfigFilterMapper.insert(systemConfigFilterDO);
+ }
+ // 系统配置保存后操作
+ afterSaveConfig(systemConfigFilterDO, reqVO);
+
+ }
+
+
+ /**
+ * 校验基础配置是否存在
+ *
+ * @param id
+ * @return
+ */
+ private SystemConfigFilterDO validateSystemConfigExists(Long id) {
+
+ SystemConfigFilterDO systemConfigFilterDO = systemConfigFilterMapper.selectOne(new LambdaQueryWrapperX()
+ .eq(SystemConfigFilterDO::getId, id)
+ .eq(SystemConfigFilterDO::getOrganId, OrganContextHolder.getOrganId()));
+
+ if (ObjectUtil.isNull(systemConfigFilterDO)) {
+ throw exception(SYSTEM_CONFIG_NOT_EXISTS);
+ }
+
+ return systemConfigFilterDO;
+ }
+
+
+
+
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/MultiColorOrderPlanServiceHandler.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/MultiColorOrderPlanServiceHandler.java
index f38ce8baa..4c295be37 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/MultiColorOrderPlanServiceHandler.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/MultiColorOrderPlanServiceHandler.java
@@ -1,10 +1,12 @@
package com.cf.imes.module.system.service.systemconfig.factory.service.impl;
-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.ConfigSaveReqVO;
-import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.cf.imes.framework.common.util.object.BeanUtils;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.framework.organ.core.context.OrganContextHolder;
+import com.cf.imes.module.system.controller.admin.systemconfig.vo.*;
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.service.systemconfig.factory.service.AbstractSystemConfigServiceHandler;
@@ -14,6 +16,9 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
+import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.cf.imes.module.system.enums.ErrorCodeConstants.SYSTEM_CONFIG_NOT_EXISTS;
+
/**
* @author 多种颜色排单
@@ -58,16 +63,77 @@ public class MultiColorOrderPlanServiceHandler extends AbstractSystemConfigServi
}
- @Override
- public void afterUpdateStatus(SystemConfigDO systemConfigDO, ConfigUpdateStatusReqVO reqVO) {
- // todo afterUpdateStatus
- }
-
-
@Override
public void deleteConfig(ConfigDeleteReqVO reqVO) {
// todo deleteConfig
}
+ @Override
+ public void updateConfigStatus(ConfigUpdateStatusReqVO reqVO) {
+
+ Long id = reqVO.getId();
+
+ // 校验存在
+ SystemConfigDO systemConfigDO = systemConfigMapper.selectOne(new LambdaQueryWrapperX()
+ .eq(SystemConfigDO::getId, id)
+ .eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId()));
+ if (ObjectUtil.isNull(systemConfigDO)) {
+ throw exception(SYSTEM_CONFIG_NOT_EXISTS);
+ }
+
+ // 更新状态
+ systemConfigMapper.update(new LambdaUpdateWrapper().eq(SystemConfigDO::getId, id).set(SystemConfigDO::getStatus, reqVO.getStatus()));
+
+ }
+
+ @Override
+ public void updateConfigSort(List reqVO) {
+
+ }
+
+
+ @Override
+ public SystemConfigDO getSystemConfig(Long id) {
+
+ SystemConfigDO systemConfigDO = systemConfigMapper.selectOne(new LambdaQueryWrapperX()
+ .eq(SystemConfigDO::getId, id)
+ .eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId()));
+
+ if (ObjectUtil.isNull(systemConfigDO)) {
+ throw exception(SYSTEM_CONFIG_NOT_EXISTS);
+ }
+
+ return systemConfigDO;
+
+ }
+
+
+ @Override
+ public void modifySystemConfig(ConfigSaveReqVO reqVO) {
+
+ // 校验规则
+ checkValid(reqVO.getSetting());
+ // 系统配置保存前操作
+ beforeSaveConfig(reqVO);
+ SystemConfigDO systemConfigDO;
+ if (ObjectUtil.isNotNull(reqVO.getId())) {
+ systemConfigDO = getSystemConfig(reqVO.getId());
+ // 覆盖配置
+ systemConfigDO.setSetting(reqVO.getSetting());
+ // 覆盖名称
+ systemConfigDO.setName(reqVO.getName());
+ // 更新
+ systemConfigMapper.updateById(systemConfigDO);
+ } else {
+ systemConfigDO = BeanUtils.toBean(reqVO, SystemConfigDO.class);
+ // 新增
+ systemConfigMapper.insert(systemConfigDO);
+ }
+ // 系统配置保存后操作
+ afterSaveConfig(systemConfigDO, reqVO);
+
+ }
+
+
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessSchemeServiceHandler.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessSchemeServiceHandler.java
index aeaaf2955..5e06b449a 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessSchemeServiceHandler.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessSchemeServiceHandler.java
@@ -2,18 +2,23 @@ package com.cf.imes.module.system.service.systemconfig.factory.service.impl;
import cn.hutool.core.text.CharSequenceUtil;
+import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.cf.imes.framework.common.enums.CommonStatusEnum;
+import com.cf.imes.framework.common.util.object.BeanUtils;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.executor.api.plan.OrderPlanApi;
import com.cf.imes.module.system.controller.admin.systemconfig.vo.*;
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.dataobject.systemconfig.SystemConfigSchemeDO;
+import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigSchemeMapper;
import com.cf.imes.module.system.service.systemconfig.factory.service.AbstractSystemConfigServiceHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicLong;
@@ -21,8 +26,7 @@ import java.util.concurrent.atomic.AtomicLong;
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.cf.imes.framework.common.util.json.JsonUtils.parseArray;
import static com.cf.imes.framework.common.util.json.JsonUtils.toJsonString;
-import static com.cf.imes.module.system.enums.ErrorCodeConstants.SYSTEM_PROCESS_SCHEME_CONFIG_IS_PLAN;
-import static com.cf.imes.module.system.enums.ErrorCodeConstants.SYSTEM_PROCESS_SCHEME_DATA_ERROR;
+import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
/**
* @author 加工方案服务处理器
@@ -32,9 +36,9 @@ import static com.cf.imes.module.system.enums.ErrorCodeConstants.SYSTEM_PROCESS_
@Slf4j
public class ProcessSchemeServiceHandler extends AbstractSystemConfigServiceHandler {
-
@Resource
- private SystemConfigMapper systemConfigMapper;
+ private SystemConfigSchemeMapper systemConfigSchemeMapper;
+
@Resource
private OrderPlanApi orderPlanApi;
@@ -42,13 +46,13 @@ public class ProcessSchemeServiceHandler extends AbstractSystemConfigServiceHand
@Override
public List selectList(ConfigPageReqVO pageReqVO) {
- List systemConfigDOS = systemConfigMapper.selectSystemConfigList(pageReqVO.getType(),null);
+ List systemConfigDOS = systemConfigSchemeMapper.selectSystemConfigList(pageReqVO.getType(),null);
if (systemConfigDOS.isEmpty()){
return null;
}
- return systemConfigDOS;
+ return BeanUtils.toBean(systemConfigDOS,SystemConfigDO.class);
}
@@ -104,38 +108,115 @@ public class ProcessSchemeServiceHandler extends AbstractSystemConfigServiceHand
@Override
public void afterSaveConfig(SystemConfigDO systemConfigDO, ConfigSaveReqVO reqVO) {
- List systemConfigDOS = systemConfigMapper.selectSystemConfigList(reqVO.getType(), CommonStatusEnum.ENABLE.getStatus());
+ List systemConfigDOS = systemConfigSchemeMapper.selectSystemConfigList(reqVO.getType(), CommonStatusEnum.ENABLE.getStatus());
if(systemConfigDOS.size() > 1){
- systemConfigMapper.update(new LambdaUpdateWrapper()
- .eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId())
- .eq(SystemConfigDO::getId,systemConfigDO.getId())
- .set(SystemConfigDO::getStatus, CommonStatusEnum.DISABLE.getStatus()));
+ systemConfigSchemeMapper.update(new LambdaUpdateWrapper()
+ .eq(SystemConfigSchemeDO::getOrganId, OrganContextHolder.getOrganId())
+ .eq(SystemConfigSchemeDO::getId,systemConfigDO.getId())
+ .set(SystemConfigSchemeDO::getStatus, CommonStatusEnum.DISABLE.getStatus()));
}
}
- @Override
- public void afterUpdateStatus(SystemConfigDO systemConfigDO, ConfigUpdateStatusReqVO reqVO) {
-
- systemConfigMapper.update(new LambdaUpdateWrapper()
- .eq(SystemConfigDO::getOrganId, OrganContextHolder.getOrganId())
- .eq(SystemConfigDO::getDeleted,false)
- .notIn(SystemConfigDO::getId,reqVO.getId())
- .eq(SystemConfigDO::getType, systemConfigDO.getType())
- .set(SystemConfigDO::getStatus, CommonStatusEnum.DISABLE.getStatus()));
- }
-
@Override
public void deleteConfig(ConfigDeleteReqVO reqVO) {
+ validateSystemConfigExists(reqVO.getId());
+
Boolean data = orderPlanApi.getOrderProcessScheme(reqVO.getId()).getCheckedData();
if(Boolean.TRUE.equals(data)){
throw exception(SYSTEM_PROCESS_SCHEME_CONFIG_IS_PLAN);
}
- systemConfigMapper.deleteById(reqVO.getId());
+ systemConfigSchemeMapper.deleteById(reqVO.getId());
+
+ }
+
+
+ @Override
+ public void updateConfigStatus(ConfigUpdateStatusReqVO reqVO) {
+
+ Long id = reqVO.getId();
+
+ // 校验存在
+ SystemConfigSchemeDO systemConfigSchemeDO = systemConfigSchemeMapper.selectOne(new LambdaQueryWrapperX()
+ .eq(SystemConfigSchemeDO::getId, id)
+ .eq(SystemConfigSchemeDO::getOrganId, OrganContextHolder.getOrganId()));
+
+ if (ObjectUtil.isNull(systemConfigSchemeDO)) {
+ throw exception(SYSTEM_CONFIG_NOT_EXISTS);
+ }
+
+ // 更新状态
+ systemConfigSchemeMapper.update(new LambdaUpdateWrapper()
+ .eq(SystemConfigSchemeDO::getId, id)
+ .set(SystemConfigSchemeDO::getStatus, reqVO.getStatus()));
+
+
+ systemConfigSchemeMapper.update(new LambdaUpdateWrapper()
+ .eq(SystemConfigSchemeDO::getOrganId, OrganContextHolder.getOrganId())
+ .eq(SystemConfigSchemeDO::getDeleted,false)
+ .notIn(SystemConfigSchemeDO::getId,reqVO.getId())
+ .eq(SystemConfigSchemeDO::getType, systemConfigSchemeDO.getType())
+ .set(SystemConfigSchemeDO::getStatus, CommonStatusEnum.DISABLE.getStatus()));
+
+
+ }
+
+ @Override
+ public void updateConfigSort(List reqVO) {
+
+ ArrayList systemConfigSchemeDOS = new ArrayList<>();
+
+ reqVO.forEach(f->
+ systemConfigSchemeDOS.add(BeanUtils.toBean(SystemConfigDO
+ .builder()
+ .id(f.getId())
+ .type(f.getType())
+ .status(f.getStatus())
+ .sort(f.getSort())
+ .build(),SystemConfigSchemeDO.class)));
+
+ systemConfigSchemeMapper.updateBatch(systemConfigSchemeDOS);
+
+ }
+
+
+ @Override
+ public SystemConfigDO getSystemConfig(Long id) {
+
+ SystemConfigSchemeDO systemConfigSchemeDO = validateSystemConfigExists(id);
+
+ return BeanUtils.toBean(systemConfigSchemeDO,SystemConfigDO.class);
+
+ }
+
+
+ @Override
+ public void modifySystemConfig(ConfigSaveReqVO reqVO) {
+
+ // 校验规则
+ checkValid(reqVO.getSetting());
+ // 系统配置保存前操作
+ beforeSaveConfig(reqVO);
+ SystemConfigSchemeDO systemConfigSchemeDO;
+ if (ObjectUtil.isNotNull(reqVO.getId())) {
+ systemConfigSchemeDO = validateSystemConfigExists(reqVO.getId());
+ // 覆盖配置
+ systemConfigSchemeDO.setSetting(reqVO.getSetting());
+ // 覆盖名称
+ systemConfigSchemeDO.setName(reqVO.getName());
+ // 更新
+ systemConfigSchemeMapper.updateById(systemConfigSchemeDO);
+ } else {
+ systemConfigSchemeDO = BeanUtils.toBean(reqVO, SystemConfigSchemeDO.class);
+ // 新增
+ systemConfigSchemeMapper.insert(systemConfigSchemeDO);
+ }
+ // 系统配置保存后操作
+ afterSaveConfig(systemConfigSchemeDO, reqVO);
}
@@ -148,4 +229,24 @@ public class ProcessSchemeServiceHandler extends AbstractSystemConfigServiceHand
}
+
+
+ /**
+ * 校验基础配置是否存在
+ *
+ * @param id
+ * @return
+ */
+ private SystemConfigSchemeDO validateSystemConfigExists(Long id) {
+
+ SystemConfigSchemeDO systemConfigSchemeDO = systemConfigSchemeMapper.selectOne(new LambdaQueryWrapperX()
+ .eq(SystemConfigSchemeDO::getId, id)
+ .eq(SystemConfigSchemeDO::getOrganId, OrganContextHolder.getOrganId()));
+
+ if (ObjectUtil.isNull(systemConfigSchemeDO)) {
+ throw exception(SYSTEM_CONFIG_NOT_EXISTS);
+ }
+
+ return systemConfigSchemeDO;
+ }
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessScreeningServiceHandler.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessScreeningServiceHandler.java
index 25d58ca86..67ce300be 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessScreeningServiceHandler.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessScreeningServiceHandler.java
@@ -1,39 +1,47 @@
package com.cf.imes.module.system.service.systemconfig.factory.service.impl;
-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.ConfigSaveReqVO;
-import com.cf.imes.module.system.controller.admin.systemconfig.vo.ConfigUpdateStatusReqVO;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.cf.imes.framework.common.util.object.BeanUtils;
+import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.cf.imes.framework.organ.core.context.OrganContextHolder;
+import com.cf.imes.module.system.controller.admin.systemconfig.vo.*;
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.dataobject.systemconfig.SystemConfigProcessDO;
+import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigProcessMapper;
import com.cf.imes.module.system.service.systemconfig.factory.service.AbstractSystemConfigServiceHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.util.ArrayList;
import java.util.List;
+import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.cf.imes.module.system.enums.ErrorCodeConstants.SYSTEM_CONFIG_NOT_EXISTS;
+
/**
- * @author 加工筛选服务处理器
+ * @author 加工分线服务处理器
*/
@Service("processScreeningServiceHandler")
@Slf4j
public class ProcessScreeningServiceHandler extends AbstractSystemConfigServiceHandler {
+
@Resource
- private SystemConfigMapper systemConfigMapper;
+ private SystemConfigProcessMapper systemConfigProcessMapper;
@Override
public List selectList(ConfigPageReqVO pageReqVO) {
- List systemConfigDOS = systemConfigMapper.selectSystemConfigList(pageReqVO.getType(),null);
+ List systemConfigDOS = systemConfigProcessMapper.selectSystemConfigList(pageReqVO.getType(),null);
if (systemConfigDOS.isEmpty()){
return null;
}
- return systemConfigDOS;
+ return BeanUtils.toBean(systemConfigDOS,SystemConfigDO.class);
}
@@ -56,17 +64,113 @@ public class ProcessScreeningServiceHandler extends AbstractSystemConfigServiceH
@Override
- public void afterUpdateStatus(SystemConfigDO systemConfigDO, ConfigUpdateStatusReqVO reqVO) {
- // todo afterUpdateStatus
+ public void deleteConfig(ConfigDeleteReqVO reqVO) {
+
+ validateSystemConfigExists(reqVO.getId());
+
+ systemConfigProcessMapper.deleteById(reqVO.getId());
+
}
@Override
- public void deleteConfig(ConfigDeleteReqVO reqVO) {
+ public void updateConfigStatus(ConfigUpdateStatusReqVO reqVO) {
- systemConfigMapper.deleteById(reqVO.getId());
+ Long id = reqVO.getId();
+
+ // 校验存在
+ SystemConfigProcessDO systemConfigProcessDO = systemConfigProcessMapper.selectOne(new LambdaQueryWrapperX()
+ .eq(SystemConfigProcessDO::getId, id)
+ .eq(SystemConfigProcessDO::getOrganId, OrganContextHolder.getOrganId()));
+ if (ObjectUtil.isNull(systemConfigProcessDO)) {
+ throw exception(SYSTEM_CONFIG_NOT_EXISTS);
+ }
+
+ // 更新状态
+ systemConfigProcessMapper.update(new LambdaUpdateWrapper()
+ .eq(SystemConfigProcessDO::getId, id)
+ .set(SystemConfigProcessDO::getStatus, reqVO.getStatus()));
+
+ }
+
+ @Override
+ public void updateConfigSort(List reqVO) {
+
+ ArrayList systemConfigProcessDOS = new ArrayList<>();
+
+ reqVO.forEach(f->
+ systemConfigProcessDOS.add(BeanUtils.toBean(SystemConfigDO
+ .builder()
+ .id(f.getId())
+ .type(f.getType())
+ .status(f.getStatus())
+ .sort(f.getSort())
+ .build(),SystemConfigProcessDO.class)));
+
+ systemConfigProcessMapper.updateBatch(systemConfigProcessDOS);
}
+ @Override
+ public SystemConfigDO getSystemConfig(Long id) {
+
+ SystemConfigProcessDO systemConfigProcessDO = validateSystemConfigExists(id);
+
+ return BeanUtils.toBean(systemConfigProcessDO,SystemConfigDO.class);
+
+ }
+
+
+ @Override
+ public void modifySystemConfig(ConfigSaveReqVO reqVO) {
+
+ // 校验规则
+ checkValid(reqVO.getSetting());
+ // 系统配置保存前操作
+ beforeSaveConfig(reqVO);
+ SystemConfigProcessDO systemConfigProcessDO;
+ if (ObjectUtil.isNotNull(reqVO.getId())) {
+ systemConfigProcessDO = validateSystemConfigExists(reqVO.getId());
+ // 覆盖配置
+ systemConfigProcessDO.setSetting(reqVO.getSetting());
+ // 覆盖名称
+ systemConfigProcessDO.setName(reqVO.getName());
+ // 更新
+ systemConfigProcessMapper.updateById(systemConfigProcessDO);
+ } else {
+ systemConfigProcessDO = BeanUtils.toBean(reqVO, SystemConfigProcessDO.class);
+ // 新增
+ systemConfigProcessMapper.insert(systemConfigProcessDO);
+ }
+ // 系统配置保存后操作
+ afterSaveConfig(systemConfigProcessDO, reqVO);
+
+ }
+
+
+
+ /**
+ * 校验基础配置是否存在
+ *
+ * @param id
+ * @return
+ */
+ private SystemConfigProcessDO validateSystemConfigExists(Long id) {
+
+ SystemConfigProcessDO systemConfigProcessDO = systemConfigProcessMapper.selectOne(new LambdaQueryWrapperX()
+ .eq(SystemConfigProcessDO::getId, id)
+ .eq(SystemConfigProcessDO::getOrganId, OrganContextHolder.getOrganId()));
+
+ if (ObjectUtil.isNull(systemConfigProcessDO)) {
+ throw exception(SYSTEM_CONFIG_NOT_EXISTS);
+ }
+
+ return systemConfigProcessDO;
+ }
+
+
+
+
+
}
diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java
index f43c9a08f..4a594af8c 100644
--- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java
+++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/user/AdminUserServiceImpl.java
@@ -765,6 +765,7 @@ public class AdminUserServiceImpl implements AdminUserService {
// 新手机号入库 -> setUsername
userMapper.update(new LambdaUpdateWrapper()
.set(AdminUserDO::getUsername, mobile)
+ .set(AdminUserDO::getMobile, mobile)
.eq(AdminUserDO::getId, id));
// 校验和消耗验证码