mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
新增-每个排单都保存对应的方案组信息,增加修改排单方案组配置接口,创建组织复制系统配置信息,增加打印标签查询小板信息接口
This commit is contained in:
+25
@@ -196,6 +196,31 @@ public class OptimizePlanController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@GetMapping("/newPlanPlate")
|
||||
@Operation(summary = "获取排单是否有新加板材")
|
||||
@Parameter(name = "planId", description = "排单ID", required = true)
|
||||
public CommonResult<Boolean> getNewPlanPlate(@Valid @RequestParam("planId") Long planId) {
|
||||
|
||||
return success(optimizePlanService.getNewPlanPlate(planId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@PutMapping("/updateConfig")
|
||||
@Operation(summary = "修改排单对应的加工方案组的配置信息")
|
||||
public CommonResult<Boolean> updateProcessSchemeConfig(@RequestBody PlanSchemeConfigReqVO reqVO) {
|
||||
|
||||
optimizePlanService.updateProcessSchemeConfig(reqVO);
|
||||
return success(Boolean.TRUE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@GetMapping("/getGoodsDataFilter")
|
||||
@Operation(summary = "未排单高级筛选-板材分组")
|
||||
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
|
||||
|
||||
+13
@@ -196,4 +196,17 @@ public class PlanController {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("getPlanPlate")
|
||||
@Operation(summary = "根据排单ID获取打印标签需要的小板信息")
|
||||
@PreAuthorize("@ss.hasAnyPermissions('placeorder:print-label','producePlan:print-label')")
|
||||
public CommonResult<PageResult<PlateResList>> getPlanPlateList(@Valid PlanPageReqVO pageReqVO) {
|
||||
|
||||
return success(planService.getPlanPlateList(pageReqVO));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
|
||||
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PlanSchemeConfigReqVO {
|
||||
|
||||
|
||||
@Schema(description = "排单ID")
|
||||
private Long planId;
|
||||
|
||||
|
||||
@Schema(description = "方案组ID")
|
||||
private Long processId;
|
||||
|
||||
|
||||
@Schema(description = "加工方案组的配置项ID")
|
||||
private Long planConfigId;
|
||||
|
||||
|
||||
@Schema(description = "方案组配置项名称")
|
||||
private String planName;
|
||||
|
||||
|
||||
@Schema(description = "加工分线配置ID")
|
||||
private String processLineConfig;
|
||||
|
||||
|
||||
@Schema(description = "加工分线名称")
|
||||
private String processLineName;
|
||||
|
||||
|
||||
@Schema(description = "数据优化配置ID")
|
||||
private String optimizationConfig;
|
||||
|
||||
|
||||
@Schema(description = "数据优化配置名称")
|
||||
private String optimizationConfigName;
|
||||
|
||||
|
||||
@Schema(description = "解析器配置ID")
|
||||
private String analyzer;
|
||||
|
||||
|
||||
@Schema(description = "解析器名称")
|
||||
private String analyzerName;
|
||||
|
||||
|
||||
|
||||
}
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
|
||||
|
||||
|
||||
import com.cf.imes.framework.es.core.dal.ESDocument;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
/**
|
||||
* @author 排单对应的加工方案组的配置信息
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ProcessSchemeModelDO extends ESDocument {
|
||||
|
||||
|
||||
@Schema(description = "排单ID")
|
||||
private Long planId;
|
||||
|
||||
|
||||
@Schema(description = "方案组ID")
|
||||
private Long processId;
|
||||
|
||||
|
||||
@Schema(description = "加工方案组的配置项ID")
|
||||
private Long planConfigId;
|
||||
|
||||
|
||||
@Schema(description = "方案组配置项名称")
|
||||
private String planName;
|
||||
|
||||
|
||||
@Schema(description = "加工分线配置ID")
|
||||
private String processLineConfig;
|
||||
|
||||
|
||||
@Schema(description = "加工分线名称")
|
||||
private String processLineName;
|
||||
|
||||
|
||||
@Schema(description = "数据优化配置ID")
|
||||
private String optimizationConfig;
|
||||
|
||||
|
||||
@Schema(description = "数据优化配置名称")
|
||||
private String optimizationConfigName;
|
||||
|
||||
|
||||
@Schema(description = "解析器配置ID")
|
||||
private String analyzer;
|
||||
|
||||
|
||||
@Schema(description = "解析器名称")
|
||||
private String analyzerName;
|
||||
|
||||
|
||||
|
||||
}
|
||||
+4
@@ -48,6 +48,10 @@ public class OptimizeBoardModelDO extends ESDocument {
|
||||
private Boolean isLock;
|
||||
|
||||
|
||||
@Schema(description = "是否有新加入的小板")
|
||||
private Boolean isNewInsertPlate;
|
||||
|
||||
|
||||
@Schema(description = "实际的开料的大板的ID")
|
||||
@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
|
||||
private List<String> goodsId;
|
||||
|
||||
+6
@@ -22,6 +22,8 @@ public interface OptimizePlanService {
|
||||
|
||||
String PLAN_ACTUAL_GOODS_MODEL = "imes_plan_actual_goods_model";
|
||||
|
||||
String PLAN_PROCESS_SCHEME_CONFIG = "imes_plan_process_scheme_config_model";
|
||||
|
||||
|
||||
List<PlateOptimize> getPlateListByPlanId(Long planId);
|
||||
|
||||
@@ -61,5 +63,9 @@ public interface OptimizePlanService {
|
||||
|
||||
PageResult<OrderRespVOCopy> getOrderPlateDataFilter(FilterDataPageReqVO pageReqVO);
|
||||
|
||||
Boolean getNewPlanPlate(Long planId);
|
||||
|
||||
void updateProcessSchemeConfig(PlanSchemeConfigReqVO reqVO);
|
||||
|
||||
PageResult<OrderGoodsResp> getGoodsPlateDataFilter(FilterDataPageReqVO pageReqVO);
|
||||
}
|
||||
|
||||
+83
-61
@@ -712,6 +712,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
planDO.setProcessId(req.getProcessId());
|
||||
planMapper.updateById(planDO);
|
||||
|
||||
// 保存排单对应的方案组的配置信息
|
||||
getPlanProcessSchemeConfig(planDO.getProcessId(),planId);
|
||||
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_ID, planId, ORDER_OPTIMIZE_PLATE_MODEL);
|
||||
|
||||
}else {
|
||||
@@ -742,6 +745,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
plateMapper.updateBatch(plateDOS);
|
||||
}
|
||||
|
||||
boardModelDO.setIsNewInsertPlate(Boolean.FALSE);
|
||||
|
||||
|
||||
// 保存优化后的大板数据
|
||||
@@ -757,39 +761,12 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_ID, planId, ORDER_OPTIMIZE_PLATE_MODEL);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// List<OptimizeBoardModelDO> optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_CONFIG_ID,FIELD_PLAN_ID,req.getPlanConfigId(), planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
|
||||
|
||||
|
||||
// 查询原优化信息然后进行判断
|
||||
// if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){
|
||||
//
|
||||
// if(planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){
|
||||
// throw exception(THIS_PLAN_OPTIMIZE_DATA_ERROR);
|
||||
// }
|
||||
//
|
||||
//
|
||||
// OptimizeBoardModelDO optimizeBoardModelDO = optimizeBoardModelDOS.get(0);
|
||||
//
|
||||
// Boolean isLock = Optional.ofNullable(optimizeBoardModelDO.getIsLock()).orElse(false);
|
||||
//
|
||||
// LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||
// assert loginUser != null;
|
||||
//
|
||||
// Boolean data = permissionApi.hasAnyPermissions(loginUser.getId(), "placeorder:list").getCheckedData();
|
||||
//
|
||||
// if(Boolean.TRUE.equals(isLock) && planDO.getIsScheduled().equals(true) && Boolean.FALSE.equals(data)){
|
||||
// throw exception(THIS_PLAN_OPTIMIZE_IS_LOCK);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void saveProcessSchemeResults(SaveProcessSchemeReqVO saveProcessSchemeReqVO) {
|
||||
|
||||
@@ -815,9 +792,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
if(CollUtil.isNotEmpty(plateDOS)) {
|
||||
|
||||
plateDOS.forEach(f -> {
|
||||
f.setIsOptimized(true);
|
||||
});
|
||||
plateDOS.forEach(f -> f.setIsOptimized(true));
|
||||
|
||||
plateMapper.updateBatch(plateDOS);
|
||||
}
|
||||
@@ -830,10 +805,11 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
throw exception(THIS_PLAN_PLATE_IS_CUT);
|
||||
}
|
||||
|
||||
// 保存排单对应的加工方案组的配置信息
|
||||
getPlanProcessSchemeConfig(processId,planId);
|
||||
|
||||
planMapper.updateById(planDO.setProcessId(processId));
|
||||
|
||||
|
||||
// 修改方案组,删除全部的方案组的优化信息
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_ID,planId,PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL);
|
||||
|
||||
@@ -847,40 +823,23 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
}
|
||||
|
||||
List<ProcessSchemeModelDO> processSchemeModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_PROCESS_SCHEME_CONFIG, ProcessSchemeModelDO.class);
|
||||
|
||||
// 保存排单对应的加工方案组的配置信息
|
||||
if(CollUtil.isEmpty(processSchemeModelDOS)){
|
||||
|
||||
getPlanProcessSchemeConfig(processId,planId);
|
||||
|
||||
}
|
||||
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_ID,FIELD_PLAN_CONFIG_ID,planId,planConfigIds,PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL);
|
||||
|
||||
esUtils.saveEsDocument(PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL,schemeModelDOS);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// // 不能加非空判断,因为方案组里可能没有优化信息
|
||||
// List<OptimizeBoardModelDO> optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
|
||||
//
|
||||
//// List<Boolean> 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());
|
||||
//
|
||||
// });
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -891,11 +850,36 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
PlanProcessSchemeList planProcessSchemeList = new PlanProcessSchemeList();
|
||||
|
||||
List<ProcessSchemeDTO> schemeDTOList = systemConfigApi.getProcessById(processId).getCheckedData();
|
||||
PlanDO planDO = validatePlanExists(planId);
|
||||
|
||||
// List<ProcessSchemeDTO> schemeDTOList = systemConfigApi.getProcessById(processId).getCheckedData();
|
||||
|
||||
|
||||
List<ProcessSchemeDTO> schemeDTOList;
|
||||
|
||||
// 获取排单对应的方案组的配置信息
|
||||
List<ProcessSchemeModelDO> schemeModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_PROCESS_SCHEME_CONFIG, ProcessSchemeModelDO.class);
|
||||
|
||||
if(CollUtil.isNotEmpty(schemeModelDOS)){
|
||||
|
||||
if(!planDO.getProcessId().equals(processId)){
|
||||
schemeDTOList = systemConfigApi.getProcessById(processId).getCheckedData();
|
||||
|
||||
}else {
|
||||
|
||||
List<ProcessSchemeDTO> schemeDTOS = BeanUtils.toBean(schemeModelDOS, ProcessSchemeDTO.class);
|
||||
schemeDTOList = systemConfigApi.getPlanProcessSchemeConfig(schemeDTOS).getCheckedData();
|
||||
}
|
||||
|
||||
}else {
|
||||
|
||||
schemeDTOList = systemConfigApi.getProcessById(processId).getCheckedData();
|
||||
|
||||
}
|
||||
|
||||
|
||||
planProcessSchemeList.setProcessSchemeList(schemeDTOList);
|
||||
|
||||
validatePlanExists(planId);
|
||||
|
||||
// 查询排单对应的方案组信息
|
||||
List<SaveProcessSchemeModelDO> saveProcessSchemeReqVOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL, SaveProcessSchemeModelDO.class);
|
||||
@@ -1159,6 +1143,23 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Boolean getNewPlanPlate(Long planId) {
|
||||
|
||||
List<OptimizeBoardModelDO> optimizeBoardModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, ORDER_OPTIMIZE_PLATE_MODEL, OptimizeBoardModelDO.class);
|
||||
|
||||
if(CollUtil.isNotEmpty(optimizeBoardModelDOS)){
|
||||
List<OptimizeBoardModelDO> modelDOS = optimizeBoardModelDOS.stream().filter(f -> f.getIsNewInsertPlate().equals(Boolean.TRUE)).toList();
|
||||
return modelDOS.isEmpty() ? Boolean.FALSE : Boolean.TRUE;
|
||||
}
|
||||
|
||||
return Boolean.FALSE;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public PageResult<OrderGoodsResp> getGoodsPlateDataFilter(FilterDataPageReqVO pageReqVO) {
|
||||
|
||||
@@ -1768,6 +1769,27 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
|
||||
|
||||
|
||||
// 查询排单对应的加工方案组的配置信息并保存
|
||||
private void getPlanProcessSchemeConfig(Long processId,Long planId){
|
||||
|
||||
List<ProcessSchemeDTO> schemeDTOS = systemConfigApi.getProcessSchemeConfig(processId).getCheckedData();
|
||||
|
||||
List<ProcessSchemeModelDO> modelDOS = BeanUtils.toBean(schemeDTOS, ProcessSchemeModelDO.class);
|
||||
|
||||
modelDOS.forEach(f->{
|
||||
f.setProcessId(processId);
|
||||
f.setPlanId(planId);
|
||||
});
|
||||
|
||||
// 删除旧的排单对应的加工方案组的配置信息
|
||||
esUtils.deleteEsDocument(FIELD_PLAN_ID,planId,PLAN_PROCESS_SCHEME_CONFIG);
|
||||
|
||||
// 保存新的排单对应的加工方案组的配置信息
|
||||
esUtils.saveEsDocument(PLAN_PROCESS_SCHEME_CONFIG,modelDOS);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private void validatePlanStatus(PlanDO planDO,List<Boolean> isLocks){
|
||||
|
||||
+3
@@ -72,4 +72,7 @@ public interface PlanService {
|
||||
List<OrderRoomBodyList> getOrderRoomBody(List<Long> orderIds);
|
||||
|
||||
List<PlanActualGoodsResp> getPlanGoodsList(SavePlanPlateList savePlanPlateList);
|
||||
|
||||
PageResult<PlateResList> getPlanPlateList(PlanPageReqVO pageReqVO);
|
||||
|
||||
}
|
||||
+140
-29
@@ -24,6 +24,7 @@ import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PlatePlaceInfo;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.ProcessSchemeModelDO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.RemainBoardInfo;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.OrderPlateIds;
|
||||
@@ -119,6 +120,8 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
private static final String PLAN_ACTUAL_GOODS_MODEL = "imes_plan_actual_goods_model";
|
||||
|
||||
private static final String PLAN_PROCESS_SCHEME_CONFIG = "imes_plan_process_scheme_config_model";
|
||||
|
||||
@Resource
|
||||
private ElasticsearchClient elasticsearchClient;
|
||||
|
||||
@@ -225,6 +228,25 @@ public class PlanServiceImpl implements PlanService {
|
||||
orderMapper.updateBatch(orderDOS);
|
||||
}
|
||||
|
||||
// 排单对应的加工方案组的配置信息
|
||||
List<ProcessSchemeModelDO> processSchemeModelDOS;
|
||||
|
||||
try {
|
||||
processSchemeModelDOS = parseArray(systemConfigRespDTO.getSetting(), ProcessSchemeModelDO.class);
|
||||
|
||||
}catch (Exception e){
|
||||
log.error(e.getMessage());
|
||||
throw exception(SYSTEM_PROCESS_SCHEME_CONFIG_FIELD_ERROR);
|
||||
}
|
||||
|
||||
planDOS.forEach(f-> processSchemeModelDOS.forEach(p->{
|
||||
p.setPlanId(f.getId());
|
||||
p.setProcessId(processId);
|
||||
}));
|
||||
|
||||
esUtils.saveEsDocument(PLAN_PROCESS_SCHEME_CONFIG,processSchemeModelDOS);
|
||||
|
||||
|
||||
planMapper.insertBatch(planDOS);
|
||||
|
||||
planItemMapper.insertBatch(planItemDOS, planItemDOS.size());
|
||||
@@ -357,18 +379,8 @@ public class PlanServiceImpl implements PlanService {
|
||||
.inIfPresent(OrderItemDO::getOrderId, orderIds)
|
||||
.in(OrderItemDO::getPlateId, plateIdList));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 排单对应的优化数据删除
|
||||
esUtils.deleteEsDocument(FIELD_PLANID,planIds,ORDER_REMAIN_PLATE_MODEL);
|
||||
|
||||
|
||||
// 删除排单对应的加工方案的优化数据
|
||||
esUtils.deleteEsDocument(FIELD_PLANID,planIds,PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL);
|
||||
|
||||
|
||||
// 查询删除排单对应的生产单是否还有进行了其他排单
|
||||
List<Long> orderIdList = planItemMapper.selectOrderPlateList(orderIds, getUserOrganId());
|
||||
|
||||
@@ -387,6 +399,19 @@ public class PlanServiceImpl implements PlanService {
|
||||
orderMapper.updateBatch(orderList);
|
||||
}
|
||||
|
||||
|
||||
// 排单对应的优化数据删除
|
||||
esUtils.deleteEsDocument(FIELD_PLANID,planIds,ORDER_REMAIN_PLATE_MODEL);
|
||||
|
||||
|
||||
// 删除排单对应的加工方案的优化数据
|
||||
esUtils.deleteEsDocument(FIELD_PLANID,planIds,PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL);
|
||||
|
||||
|
||||
// 删除排单对应的加工方案组的配置信息
|
||||
esUtils.deleteEsDocument(FIELD_PLANID,planIds,PLAN_PROCESS_SCHEME_CONFIG);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -995,6 +1020,81 @@ public class PlanServiceImpl implements PlanService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public PageResult<PlateResList> getPlanPlateList(PlanPageReqVO pageReqVO) {
|
||||
|
||||
Long planId = Long.valueOf(pageReqVO.getId());
|
||||
|
||||
QueryWrapperX<PlanItemDO> queryWrapperX = new QueryWrapperX<>();
|
||||
|
||||
queryWrapperX.eq("opi.organ_id",getUserOrganId())
|
||||
.eq(FIELD_PLAN_ID,planId);
|
||||
|
||||
Integer pageNo = (pageReqVO.getPageNo() - 1) * pageReqVO.getPageSize();
|
||||
|
||||
List<PlateResList> plateResLists = planItemMapper.selectPlateListByPlateIds(queryWrapperX,pageNo,pageReqVO.getPageSize());
|
||||
|
||||
|
||||
if (CollUtil.isEmpty(plateResLists)) {
|
||||
return new PageResult<>();
|
||||
}
|
||||
|
||||
Long sum = planItemMapper.selectPlateCountByPlateIds(queryWrapperX);
|
||||
|
||||
List<OptimizeBoardModelDO> boardModelDOS = esUtils.getEsDocument(FIELD_PLANID, planId, ORDER_REMAIN_PLATE_MODEL, OptimizeBoardModelDO.class);
|
||||
|
||||
if(CollUtil.isNotEmpty(boardModelDOS)) {
|
||||
|
||||
List<RemainBoardInfo> remainBoardInfos = new ArrayList<>();
|
||||
|
||||
boardModelDOS.forEach(f -> {
|
||||
|
||||
if (f.getRemainBoardInfo() != null) {
|
||||
try {
|
||||
remainBoardInfos.addAll(new ArrayList<>(parseArray(f.getRemainBoardInfo(), RemainBoardInfo.class)));
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw exception(PLAN_PLATE_OPTIMIZE_DATA_ERROR);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
List<RemainBoardInfo.PlaceBoardList> placeBoardList = new ArrayList<>();
|
||||
|
||||
remainBoardInfos.forEach(f-> placeBoardList.addAll(f.getPlaceBoardList()));
|
||||
|
||||
if(CollUtil.isNotEmpty(placeBoardList)){
|
||||
|
||||
List<RemainBoardInfo.Blocks> blocksList = new ArrayList<>();
|
||||
placeBoardList.forEach(f->blocksList.addAll(f.getBlocks()));
|
||||
|
||||
if(CollUtil.isNotEmpty(blocksList)){
|
||||
|
||||
plateResLists.forEach(f->{
|
||||
|
||||
f.setBoardId(blocksList.stream().filter(b->b.getBlockId().equals(f.getPlateNo())).findFirst().orElse(new RemainBoardInfo.Blocks()).getBoardId());
|
||||
|
||||
f.setPlaceId(blocksList.stream().filter(b->b.getBlockId().equals(f.getPlateNo())).findFirst().orElse(new RemainBoardInfo.Blocks()).getPlaceId());
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
return new PageResult<>(plateResLists, sum);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private PlanDO validatePlan(Long id) {
|
||||
|
||||
PlanDO planDO = planMapper.selectById(id);
|
||||
@@ -1346,6 +1446,36 @@ public class PlanServiceImpl implements PlanService {
|
||||
});
|
||||
|
||||
|
||||
// 有新添加的小板,修改优化信息的字段信息
|
||||
try {
|
||||
|
||||
List<FieldValue> fieldValues = insertPlanIds.stream().map(FieldValue::of).toList();
|
||||
|
||||
UpdateByQueryRequest.Builder builder = new UpdateByQueryRequest.Builder();
|
||||
|
||||
builder.index(ORDER_REMAIN_PLATE_MODEL)
|
||||
.query(qb -> qb.bool(bq -> bq.filter(f->{
|
||||
f.terms(t->t.field(FIELD_PLANID).terms(e->e.value(fieldValues)));
|
||||
return f;
|
||||
})
|
||||
))
|
||||
.script(s -> s.inline(i -> i
|
||||
.source("ctx._source.isNewInsertPlate = params.new_value")
|
||||
.params("new_value", JsonData.of(Boolean.TRUE))
|
||||
));
|
||||
|
||||
UpdateByQueryRequest request = builder.build();
|
||||
|
||||
elasticsearchClient.updateByQuery(request);
|
||||
|
||||
}catch (Exception e){
|
||||
log.error(e.getMessage());
|
||||
throw new ServiceException(ES_DATA_ERROR);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 修改排单加工方案的优化状态
|
||||
updateProcessSchemeStatus(insertPlanIds);
|
||||
|
||||
@@ -1605,25 +1735,6 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
|
||||
|
||||
// // 构建查询和脚本
|
||||
// builder.index(PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL)
|
||||
// .query(qb -> qb.bool(bq -> bq
|
||||
// .must(mq -> mq.terms(tq -> tq.field("FIELD_PLANID").terms(t -> t.value(fieldValues))))
|
||||
// .must(mq -> mq.match(mtq -> mtq.field("machineType").query(MachineTypeEnum.CUTTING.getType())))
|
||||
// ))
|
||||
// .script(s -> s.inline(i -> i
|
||||
// .source("""
|
||||
// ctx._source.isOptimized = params.isOptimized;
|
||||
// ctx._source.lastUpdated = params.lastUpdated;
|
||||
// ctx._source.updatedBy = params.updatedBy;
|
||||
// """)
|
||||
// .params("isOptimized", JsonData.of(false))
|
||||
// .params("lastUpdated", JsonData.of("2025-01-02T12:00:00Z"))
|
||||
// .params("updatedBy", JsonData.of("AutomatedSystem"))
|
||||
// ));
|
||||
|
||||
|
||||
|
||||
|
||||
public static void mergeOrderGoodsLists(List<OrderGoodsResp> list1, List<OrderGoodsResp> list2) {
|
||||
// Build a map for quick lookup of items in list1 by their unique properties
|
||||
|
||||
+11
-8
@@ -7,9 +7,7 @@ import com.cf.imes.module.system.enums.ApiConstants;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -45,15 +43,20 @@ public interface SystemConfigApi {
|
||||
@Operation(summary = "获取默认的加工方案组的配置信息")
|
||||
CommonResult<SystemConfigRespDTO> getDefaultProcessConfig();
|
||||
|
||||
|
||||
@GetMapping(PREFIX + "/organ/process-config")
|
||||
@GetMapping(PREFIX + "/organ/plan-process-config")
|
||||
@Operation(summary = "获取排单下加工方案组的配置信息和具体配置项的配置信息")
|
||||
CommonResult<List<ProcessSchemeDTO>> getProcessById(@RequestParam("processId") Long processId);
|
||||
|
||||
|
||||
@GetMapping(PREFIX + "/organ/multi-color-config-status")
|
||||
@Operation(summary = "查询组织的混单是否开启")
|
||||
CommonResult<Boolean> getMultiColorConfigStatus();
|
||||
@PostMapping(PREFIX + "/organ/plan-scheme-config")
|
||||
@Operation(summary = "获取排单下加工方案组的配置信息和具体配置项的配置信息")
|
||||
CommonResult<List<ProcessSchemeDTO>> getPlanProcessSchemeConfig(@RequestBody List<ProcessSchemeDTO> schemeDTOList);
|
||||
|
||||
|
||||
@GetMapping(PREFIX + "/organ/process-config")
|
||||
@Operation(summary = "获取加工方案组的配置信息")
|
||||
CommonResult<List<ProcessSchemeDTO>> getProcessSchemeConfig(@RequestParam("processId") Long processId);
|
||||
|
||||
|
||||
@GetMapping(PREFIX + "/organ/sealedge-config")
|
||||
@Operation(summary = "获取组织下封边条对应配置")
|
||||
|
||||
+63
-29
@@ -16,14 +16,9 @@ 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.dataobject.systemconfig.SystemConfigSealedgeDO;
|
||||
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.dal.mysql.systemconfig.SystemConfigSealedgeMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.systemconfig.*;
|
||||
import com.cf.imes.module.system.enums.config.SystemConfigTypeEnum;
|
||||
import com.cf.imes.module.system.service.systemconfig.SystemConfigService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -151,6 +146,8 @@ public class SystemConfigApiImpl implements SystemConfigApi {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public CommonResult<List<ProcessSchemeDTO>> getProcessById(Long processId) {
|
||||
|
||||
@@ -169,19 +166,71 @@ public class SystemConfigApiImpl implements SystemConfigApi {
|
||||
throw exception(SYSTEM_PROCESS_SCHEME_CONFIG_FIELD_ERROR);
|
||||
}
|
||||
|
||||
|
||||
List<ProcessSchemeDTO> schemeDTOS = BeanUtils.toBean(processSchemeConfigs, ProcessSchemeDTO.class);
|
||||
|
||||
return success(getProcessSchemeConfig(schemeDTOS));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public CommonResult<List<ProcessSchemeDTO>> getPlanProcessSchemeConfig(List<ProcessSchemeDTO> schemeDTOList) {
|
||||
|
||||
return success(getProcessSchemeConfig(schemeDTOList));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public CommonResult<List<ProcessSchemeDTO>> getProcessSchemeConfig(Long processId) {
|
||||
|
||||
SystemConfigSchemeDO systemConfigSchemeDO = systemConfigSchemeMapper.selectById(processId);
|
||||
|
||||
AssertUtils.notEmpty(systemConfigSchemeDO,THIS_PROCESS_CONFIG_DATA_ERROR);
|
||||
|
||||
List<ProcessSchemeConfig> processSchemeConfigs;
|
||||
|
||||
try {
|
||||
|
||||
processSchemeConfigs = parseArray(systemConfigSchemeDO.getSetting(), ProcessSchemeConfig.class);
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw exception(SYSTEM_PROCESS_SCHEME_CONFIG_FIELD_ERROR);
|
||||
}
|
||||
|
||||
return success(BeanUtils.toBean(processSchemeConfigs,ProcessSchemeDTO.class));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private void checkValueIsNotEmpty(List<?> value,String error) {
|
||||
|
||||
if(ObjectUtils.isEmpty(value)){
|
||||
throw exception(SYSTEM_PROCESS_SCHEME_CONFIG_DATA_ERROR,error);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private List<ProcessSchemeDTO> getProcessSchemeConfig(List<ProcessSchemeDTO> schemeDTOS){
|
||||
|
||||
// 配置ID查询和数据校验
|
||||
List<String> processLineConfigIds = processSchemeConfigs.stream().map(ProcessSchemeConfig::getProcessLineConfig).distinct().toList();
|
||||
List<Long> processLineConfigIds = schemeDTOS.stream().map(ProcessSchemeDTO::getProcessLineConfig).distinct().toList();
|
||||
|
||||
checkValueIsNotEmpty(processLineConfigIds,"加工分线");
|
||||
|
||||
List<String> optimizationConfigIds = processSchemeConfigs.stream().map(ProcessSchemeConfig::getOptimizationConfig).distinct().toList();
|
||||
List<Long> optimizationConfigIds = schemeDTOS.stream().map(ProcessSchemeDTO::getOptimizationConfig).distinct().toList();
|
||||
|
||||
checkValueIsNotEmpty(optimizationConfigIds,"优化数据配置");
|
||||
|
||||
List<String> analyzerIds = processSchemeConfigs.stream().map(ProcessSchemeConfig::getAnalyzer).distinct().toList();
|
||||
List<Long> analyzerIds = schemeDTOS.stream().map(ProcessSchemeDTO::getAnalyzer).distinct().toList();
|
||||
|
||||
checkValueIsNotEmpty(analyzerIds,"解析器");
|
||||
|
||||
@@ -267,28 +316,13 @@ public class SystemConfigApiImpl implements SystemConfigApi {
|
||||
});
|
||||
|
||||
|
||||
return success(schemeDTOS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<Boolean> getMultiColorConfigStatus() {
|
||||
|
||||
// List<SystemConfigDO> systemConfigDOS = systemConfigMapper.selectSystemConfigList(SystemConfigTypeEnum.MULTI_COLOR_ORDER_PLAN.getType(), CommonStatusEnum.ENABLE.getStatus());
|
||||
//
|
||||
// return success(CollUtil.isNotEmpty(systemConfigDOS));
|
||||
|
||||
return success(Boolean.TRUE);
|
||||
}
|
||||
|
||||
|
||||
private void checkValueIsNotEmpty(List<?> value,String error) {
|
||||
|
||||
if(ObjectUtils.isEmpty(value)){
|
||||
throw exception(SYSTEM_PROCESS_SCHEME_CONFIG_DATA_ERROR,error);
|
||||
}
|
||||
return schemeDTOS;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public CommonResult<List<SystemConfigRespDTO>> getOrgSealEdgeConfig() {
|
||||
return success(BeanUtils.toBean(systemConfigSealedgeMapper.selectSystemConfigList(SystemConfigTypeEnum.SEALEDGE.getType(), null), SystemConfigRespDTO.class));
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ public class ProcessSchemeConfig {
|
||||
private String optimizationConfig;
|
||||
|
||||
|
||||
@Schema(description = "数据优化配置", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@Schema(description = "数据优化配置名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String optimizationConfigName;
|
||||
|
||||
|
||||
|
||||
-14
@@ -1,7 +1,6 @@
|
||||
package com.cf.imes.module.system.service.machine;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import co.elastic.clients.elasticsearch.ElasticsearchClient;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||
@@ -9,7 +8,6 @@ import com.cf.imes.framework.common.enums.MachineTypeEnum;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
||||
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import com.cf.imes.framework.organ.core.aop.OrganIgnore;
|
||||
import com.cf.imes.framework.security.core.LoginUser;
|
||||
@@ -27,7 +25,6 @@ import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigSchemeD
|
||||
import com.cf.imes.module.system.dal.mysql.machine.MachineBrandMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.machine.MachineLimitMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.machine.MachineMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.machinetemplate.MachineTemplateLimitMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.machinetemplate.MachineTemplateMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.organ.OrganMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigSchemeMapper;
|
||||
@@ -62,14 +59,6 @@ import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
|
||||
@Validated
|
||||
public class MachineServiceImpl implements MachineService {
|
||||
|
||||
@Resource
|
||||
private ElasticsearchClient elasticsearchClient;
|
||||
|
||||
@Resource
|
||||
private ESDocumentService esDocumentService;
|
||||
|
||||
//钻孔机台配置索引
|
||||
public final static String DRILL_MACHINE_SETTING = "drill_machine_setting";
|
||||
|
||||
@Resource
|
||||
private MachineMapper machineMapper;
|
||||
@@ -77,9 +66,6 @@ public class MachineServiceImpl implements MachineService {
|
||||
@Resource
|
||||
private MachineLimitMapper machineLimitMapper;
|
||||
|
||||
@Resource
|
||||
private MachineTemplateLimitMapper machineTemplateLimitMapper;
|
||||
|
||||
@Resource
|
||||
private MachineTemplateMapper machineTemplateMapper;
|
||||
|
||||
|
||||
+229
-1
@@ -26,19 +26,29 @@ import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganRespVO;
|
||||
import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganSaveReqVO;
|
||||
import com.cf.imes.module.system.controller.admin.organ.vo.organ.OrganSimpleRespVO;
|
||||
import com.cf.imes.module.system.controller.admin.permission.vo.role.RoleSaveReqVO;
|
||||
import com.cf.imes.module.system.controller.admin.systemconfig.vo.ProcessSchemeConfig;
|
||||
import com.cf.imes.module.system.controller.admin.tokenconfig.vo.JwtConfig;
|
||||
import com.cf.imes.module.system.controller.admin.user.vo.user.UserSaveReqVO;
|
||||
import com.cf.imes.module.system.convert.organ.OrganConvert;
|
||||
import com.cf.imes.module.system.dal.dataobject.dict.DictDataDO;
|
||||
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.machine.MachineLimitDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.organ.OrganizationDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.organ.TenantPackageDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.permission.MenuDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.permission.RoleDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.systemconfig.*;
|
||||
import com.cf.imes.module.system.dal.dataobject.tokenconfig.TokenConfigDO;
|
||||
import com.cf.imes.module.system.dal.mysql.dict.DictDataMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.label.LabelMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.machine.MachineLimitMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.machine.MachineMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.organ.OrganMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.systemconfig.*;
|
||||
import com.cf.imes.module.system.dal.mysql.tokenconfig.TokenConfigMapper;
|
||||
import com.cf.imes.module.system.enums.config.SystemConfigTypeEnum;
|
||||
import com.cf.imes.module.system.enums.permission.RoleCodeEnum;
|
||||
import com.cf.imes.module.system.enums.permission.RoleTypeEnum;
|
||||
import com.cf.imes.module.system.service.organ.handler.OrganInfoHandler;
|
||||
@@ -63,6 +73,7 @@ import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
|
||||
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.module.system.dal.redis.RedisKeyConstants.OAUTH2_ACCESS_TOKEN;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.*;
|
||||
import static com.cf.imes.module.system.service.tokenconfig.TokenConfigServiceImpl.generateBaseToken;
|
||||
@@ -106,13 +117,39 @@ public class OrganServiceImpl implements OrganService {
|
||||
@Resource
|
||||
private TokenConfigMapper tokenConfigMapper;
|
||||
|
||||
|
||||
@Resource
|
||||
private JwtConfig jwtConfig;
|
||||
|
||||
@Resource
|
||||
private StringRedisTemplate stringRedisTemplate;
|
||||
|
||||
@Resource
|
||||
private DictDataMapper dictDataMapper;
|
||||
|
||||
@Resource
|
||||
private SystemConfigMapper systemConfigMapper;
|
||||
|
||||
@Resource
|
||||
private SystemConfigFilterMapper systemConfigFilterMapper;
|
||||
|
||||
@Resource
|
||||
private SystemConfigProcessMapper systemConfigProcessMapper;
|
||||
|
||||
@Resource
|
||||
private SystemConfigDataMapper systemConfigDataMapper;
|
||||
|
||||
@Resource
|
||||
private SystemConfigSchemeMapper systemConfigSchemeMapper;
|
||||
|
||||
@Resource
|
||||
private SystemConfigSealedgeMapper systemConfigSealedgeMapper;
|
||||
|
||||
@Resource
|
||||
private MachineMapper machineMapper;
|
||||
|
||||
@Resource
|
||||
private LabelMapper labelMapper;
|
||||
|
||||
|
||||
@Override
|
||||
public List<Long> getOrganIdList() {
|
||||
@@ -200,6 +237,9 @@ public class OrganServiceImpl implements OrganService {
|
||||
.build();
|
||||
machineLimitMapper.insert(machineLimitDO);
|
||||
|
||||
// 复制系统配置里的相关配置
|
||||
copySystemConfig(tenant.getId());
|
||||
|
||||
return tenant.getId();
|
||||
}
|
||||
|
||||
@@ -527,4 +567,192 @@ public class OrganServiceImpl implements OrganService {
|
||||
return BeanUtils.toBean(organMapper.selectOrgCountExpired(alertDay), OrganRespVO.class);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 系统配置数据复制
|
||||
private void copySystemConfig(Long organId) {
|
||||
|
||||
List<DictDataDO> dictDataDOS = dictDataMapper.selectListByStatusAndDictType(CommonStatusEnum.ENABLE.getStatus(), "copy_data_organ");
|
||||
if(CollUtil.isEmpty(dictDataDOS)){
|
||||
return;
|
||||
}
|
||||
|
||||
String value = dictDataDOS.get(0).getValue();
|
||||
|
||||
Long copyOrganId = Long.valueOf(value);
|
||||
|
||||
|
||||
// 自定义板编号
|
||||
List<SystemConfigDO> systemConfigDOS = systemConfigMapper.selectList(new LambdaQueryWrapperX<SystemConfigDO>()
|
||||
.eq(SystemConfigDO::getType, SystemConfigTypeEnum.CUSTOM_PLATE_NO.getType())
|
||||
.eq(SystemConfigDO::getOrganId, copyOrganId)
|
||||
.eq(SystemConfigDO::getDeleted, false));
|
||||
|
||||
if(CollUtil.isNotEmpty(systemConfigDOS)){
|
||||
Optional<SystemConfigDO> configDO = systemConfigDOS.stream().max(Comparator.comparing(SystemConfigDO::getVersion));
|
||||
if (configDO.isPresent()) {
|
||||
SystemConfigDO systemConfigDO = configDO.get();
|
||||
systemConfigMapper.insert(SystemConfigDO.builder()
|
||||
.name(systemConfigDO.getName())
|
||||
.status(systemConfigDO.getStatus())
|
||||
.sort(systemConfigDO.getSort())
|
||||
.type(systemConfigDO.getType())
|
||||
.setting(systemConfigDO.getSetting())
|
||||
.organId(organId)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 板件分线
|
||||
List<SystemConfigFilterDO> systemConfigFilterDOS = systemConfigFilterMapper.selectList(new LambdaQueryWrapperX<SystemConfigFilterDO>()
|
||||
.eq(SystemConfigFilterDO::getOrganId, copyOrganId)
|
||||
.eq(SystemConfigFilterDO::getDeleted, false)
|
||||
.eq(SystemConfigFilterDO::getType, SystemConfigTypeEnum.INTELLIGENT_BRANCH.getType()));
|
||||
if(CollUtil.isNotEmpty(systemConfigFilterDOS)){
|
||||
systemConfigFilterDOS.forEach(f->{
|
||||
f.setId(null);
|
||||
f.setOrganId(organId);
|
||||
f.setCreateTime(null);
|
||||
f.setCreator(null);
|
||||
f.setUpdateTime(null);
|
||||
f.setUpdater(null);
|
||||
});
|
||||
|
||||
systemConfigFilterMapper.insertBatch(systemConfigFilterDOS);
|
||||
}
|
||||
|
||||
|
||||
// 加工分线
|
||||
List<SystemConfigProcessDO> systemConfigProcessDOS = systemConfigProcessMapper.selectList(new LambdaQueryWrapperX<SystemConfigProcessDO>()
|
||||
.eq(SystemConfigProcessDO::getOrganId, copyOrganId)
|
||||
.eq(SystemConfigProcessDO::getDeleted, false)
|
||||
.eq(SystemConfigProcessDO::getType, SystemConfigTypeEnum.PROCESSING_SCREENING.getType()));
|
||||
if(CollUtil.isNotEmpty(systemConfigProcessDOS)){
|
||||
systemConfigProcessDOS.forEach(f->{
|
||||
f.setId(null);
|
||||
f.setOrganId(organId);
|
||||
f.setCreateTime(null);
|
||||
f.setCreator(null);
|
||||
f.setUpdateTime(null);
|
||||
f.setUpdater(null);
|
||||
});
|
||||
|
||||
systemConfigProcessMapper.insertBatch(systemConfigProcessDOS);
|
||||
}
|
||||
|
||||
|
||||
// 数据处理
|
||||
List<SystemConfigDataDO> systemConfigDataDOS = systemConfigDataMapper.selectList(new LambdaQueryWrapperX<SystemConfigDataDO>()
|
||||
.eq(SystemConfigDataDO::getOrganId, copyOrganId)
|
||||
.eq(SystemConfigDataDO::getDeleted, false)
|
||||
.eq(SystemConfigDataDO::getType, SystemConfigTypeEnum.DATA_PROCESSING.getType()));
|
||||
if(CollUtil.isNotEmpty(systemConfigDataDOS)){
|
||||
systemConfigDataDOS.forEach(f->{
|
||||
f.setId(null);
|
||||
f.setOrganId(organId);
|
||||
f.setCreateTime(null);
|
||||
f.setCreator(null);
|
||||
f.setUpdateTime(null);
|
||||
f.setUpdater(null);
|
||||
});
|
||||
|
||||
systemConfigDataMapper.insertBatch(systemConfigDataDOS);
|
||||
}
|
||||
|
||||
|
||||
// 加工方案,(需要复制的组织ID,需要添加数据的组织ID)
|
||||
copyConfigSchemeMachineAndLabel(copyOrganId,organId);
|
||||
|
||||
|
||||
// 封边条对应
|
||||
List<SystemConfigSealedgeDO> systemConfigSealedgeDOS = systemConfigSealedgeMapper.selectList(new LambdaQueryWrapperX<SystemConfigSealedgeDO>()
|
||||
.eq(SystemConfigSealedgeDO::getOrganId, copyOrganId)
|
||||
.eq(SystemConfigSealedgeDO::getDeleted, false)
|
||||
.eq(SystemConfigSealedgeDO::getType, SystemConfigTypeEnum.SEALEDGE.getType()));
|
||||
if(CollUtil.isNotEmpty(systemConfigSealedgeDOS)){
|
||||
systemConfigSealedgeDOS.forEach(f->{
|
||||
f.setId(null);
|
||||
f.setOrganId(organId);
|
||||
f.setCreateTime(null);
|
||||
f.setCreator(null);
|
||||
f.setUpdateTime(null);
|
||||
f.setUpdater(null);
|
||||
});
|
||||
|
||||
systemConfigSealedgeMapper.insertBatch(systemConfigSealedgeDOS);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 复制加工方案组以及里面的机台信息以及标签的配置信息
|
||||
private void copyConfigSchemeMachineAndLabel(Long copyOrganId,Long organId){
|
||||
|
||||
List<SystemConfigSchemeDO> systemConfigSchemeDOS = systemConfigSchemeMapper.selectList(new LambdaQueryWrapperX<SystemConfigSchemeDO>()
|
||||
.eq(SystemConfigSchemeDO::getOrganId, copyOrganId)
|
||||
.eq(SystemConfigSchemeDO::getDeleted, false)
|
||||
.eq(SystemConfigSchemeDO::getType, SystemConfigTypeEnum.PROCESS_SCHEME.getType()));
|
||||
|
||||
|
||||
if(CollUtil.isNotEmpty(systemConfigSchemeDOS)){
|
||||
|
||||
// 加工方案组的配置信息
|
||||
List<ProcessSchemeConfig> processSchemeConfigs = new ArrayList<>();
|
||||
|
||||
systemConfigSchemeDOS.forEach(f->{
|
||||
f.setId(null);
|
||||
f.setOrganId(organId);
|
||||
f.setCreateTime(null);
|
||||
f.setCreator(null);
|
||||
f.setUpdateTime(null);
|
||||
f.setUpdater(null);
|
||||
|
||||
try {
|
||||
processSchemeConfigs.addAll(parseArray(f.getSetting(), ProcessSchemeConfig.class));
|
||||
} catch (Exception e) {
|
||||
log.error("加工方案组复制数据异常"+e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
List<String> machineIds = processSchemeConfigs.stream().map(ProcessSchemeConfig::getAnalyzer).distinct().toList();
|
||||
List<MachineDO> machineDOS = machineMapper.selectBatchIds(machineIds);
|
||||
if(CollUtil.isNotEmpty(machineDOS)){
|
||||
machineDOS.forEach(f->{
|
||||
f.setId(null);
|
||||
f.setOrganId(organId);
|
||||
f.setCreateTime(null);
|
||||
f.setCreator(null);
|
||||
f.setUpdateTime(null);
|
||||
f.setUpdater(null);
|
||||
});
|
||||
|
||||
|
||||
List<Long> labelIds = machineDOS.stream().map(MachineDO::getLabelId).distinct().toList();
|
||||
List<LabelDO> labelDOS = labelMapper.selectBatchIds(labelIds);
|
||||
if(CollUtil.isNotEmpty(labelDOS)){
|
||||
labelDOS.forEach(f->{
|
||||
f.setId(null);
|
||||
f.setOrganId(organId);
|
||||
f.setCreateTime(null);
|
||||
f.setCreator(null);
|
||||
f.setUpdateTime(null);
|
||||
f.setUpdater(null);
|
||||
});
|
||||
|
||||
labelMapper.insertBatch(labelDOS);
|
||||
}
|
||||
|
||||
machineMapper.insertBatch(machineDOS);
|
||||
}
|
||||
|
||||
systemConfigSchemeMapper.insertBatch(systemConfigSchemeDOS);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+1
-4
@@ -7,7 +7,6 @@ import com.cf.imes.framework.security.core.LoginUser;
|
||||
import com.cf.imes.module.system.controller.admin.setting.vo.PackageConfigReqVO;
|
||||
import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO;
|
||||
import com.cf.imes.module.system.dal.mysql.setting.PackageConfigMapper;
|
||||
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
@@ -27,8 +26,6 @@ public class SettingServiceImpl implements SettingService{
|
||||
@Resource
|
||||
private PackageConfigMapper packageConfigMapper;
|
||||
|
||||
@Resource
|
||||
private SystemConfigMapper systemConfigMapper;
|
||||
|
||||
@Override
|
||||
public Long insertSetting(PackageConfigReqVO reqVO) {
|
||||
@@ -81,7 +78,7 @@ public class SettingServiceImpl implements SettingService{
|
||||
|
||||
if (packageConfigDO == null) {
|
||||
// throw exception(CURRENTLY_NO_CONFIGURATION_AVAILABLE,type == 1 ? UserSettingTypeEnum.PREPACKAGED.getName(): UserSettingTypeEnum.PACKAGED.getName());
|
||||
return new PackageConfigDO();
|
||||
return null;
|
||||
}
|
||||
|
||||
packageConfigDO.setSetting(unzipString(packageConfigDO.getSetting()));
|
||||
|
||||
Reference in New Issue
Block a user