Commit 1c4eed00 authored by suhuiguang's avatar suhuiguang

1.编辑代码公共代码开发

parent 0182849e
......@@ -66,6 +66,11 @@
<version>2.0.12</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.10.2</version>
</dependency>
</dependencies>
<build>
<plugins>
......
package com.yeejoin.amos.boot.module.jg.biz.context;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.event.BaseBizDataChangeEvent;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
......
package com.yeejoin.amos.boot.module.jg.biz.context;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip.strategy.IEquipChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.strategy.IEquipChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
......
package com.yeejoin.amos.boot.module.jg.biz.controller;
import com.yeejoin.amos.boot.module.jg.biz.dto.RequestChangeData;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.BizDataChangeServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.SingleManageEquipEditHandleImpl;
import io.swagger.annotations.Api;
......
package com.yeejoin.amos.boot.module.jg.biz.dto;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
public class RequestChangeData extends JSONObject {
/**
* 批量编辑时表格key
* 批量编辑时表格key-公共使用
*/
public static final String multiDataKey = "tableData";
/**
* 分类
* 分类-用于匹配设备(包括装置)的数据处理器
*
* @see DefaultBizDataChangeHandler.ModelType
*/
private static final String modelTypeKey = "modelType";
/**
* 删除的数据表格key
* 删除的数据表格key-管道使用
*/
public static final String deletedDataKey = "deleteData";
......@@ -40,8 +41,8 @@ public class RequestChangeData extends JSONObject {
return null;
}
public void validated (){
if(!this.containsKey(changeReasonKey) || !this.containsKey(changeReasonAttachmentKey) ) {
public void validated() {
if (!this.containsKey(changeReasonKey) || !this.containsKey(changeReasonAttachmentKey)) {
throw new BadRequest("变更说明和变更说明附件不能为空!");
}
}
......
......@@ -2,8 +2,8 @@ package com.yeejoin.amos.boot.module.jg.biz.edit;
import com.yeejoin.amos.boot.module.jg.biz.context.BizDataHandleStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.dto.RequestChangeData;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......
......@@ -21,7 +21,7 @@ public class RouterEventPublisher implements IEventPublisher<BaseBizDataChangeEv
public void publish(BaseBizDataChangeEvent event) {
String publisherName = resolvePublisherName(event.getClass());
IEventPublisher<BaseBizDataChangeEvent> publisher = applicationContext.getBean(publisherName, IEventPublisher.class);
Optional.of(publisher).ifPresent(publish -> publisher.publish(event));
Optional.ofNullable(publisher).orElseGet(this::getDefaultPublisher).publish(event);
}
......@@ -31,4 +31,8 @@ public class RouterEventPublisher implements IEventPublisher<BaseBizDataChangeEv
return (annotation != null) ? annotation.value() : "defaultEventPublisher";
});
}
private IEventPublisher<BaseBizDataChangeEvent> getDefaultPublisher() {
return applicationContext.getBean("defaultEventPublisher", IEventPublisher.class);
}
}
package com.yeejoin.amos.boot.module.jg.biz.edit.core;
import com.yeejoin.amos.boot.module.jg.api.dto.BaseChangeDataDto;
import org.reflections.Reflections;
import java.util.HashSet;
import java.util.Set;
public class SubClassFinder {
private static final Set<Class<? extends BaseChangeDataDto>> subClasses;
static {
//▼ 指定扫描包路径(根据实际项目调整)
Reflections reflections = new Reflections("com.yeejoin.amos.boot.module.jg.api.dto");
//▼ 获取所有继承BaseChangeDataDto的类
subClasses = reflections.getSubTypesOf(BaseChangeDataDto.class);
}
public static Set<Class<? extends BaseChangeDataDto>> getAllSubClasses() {
return new HashSet<>(subClasses);
}
}
......@@ -16,6 +16,10 @@ public class ChangeLogInsertEvent extends BaseBizDataChangeEvent {
private final RequestContextModel requestContext;
private String applyNo;
private String bizType;
/**
* Create a new {@code ApplicationEvent}.
*
......@@ -27,4 +31,22 @@ public class ChangeLogInsertEvent extends BaseBizDataChangeEvent {
this.data = data;
this.requestContext = requestContext;
}
/**
*
* @param source 对象
* @param applyNo 单据编号
* @param bizType 业务类型(表名)
* @param data 变化的数据
* @param requestContext 上下文
*/
public ChangeLogInsertEvent(Object source, String applyNo, String bizType, List<ChangeDataDto> data, RequestContextModel requestContext) {
super(source);
this.data = data;
this.applyNo = applyNo;
this.bizType = bizType;
this.requestContext = requestContext;
}
}
package com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz;
package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz;
import com.yeejoin.amos.boot.module.jg.api.dto.ChangeDataDto;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipDataProcessStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.edit.core.IEventPublisher;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip.strategy.IEquipChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.event.BaseBizDataChangeEvent;
import com.yeejoin.amos.boot.module.jg.biz.edit.event.ChangeLogInsertEvent;
import org.springframework.transaction.annotation.Transactional;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.strategy.IEquipChangeDataProcessStrategy;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import java.util.List;
......@@ -22,9 +21,8 @@ public abstract class DefaultBizDataChangeHandler<U extends BaseBizDataChangeEve
}
@Transactional(rollbackFor = Exception.class)
@Override
public void doSave(String applyNo, ModelType model, Map<String, Object> changeData) {
public final void doSave(String applyNo, ModelType model, Map<String, Object> changeData) {
if (beforeCheck(applyNo, model, changeData)) {
IEquipChangeDataProcessStrategy dataProcessor = EquipDataProcessStrategyContext.getStrategy(model);
List<ChangeDataDto> allChangeColumns = dataProcessor.handle(changeData, applyNo);
......@@ -33,7 +31,7 @@ public abstract class DefaultBizDataChangeHandler<U extends BaseBizDataChangeEve
// 发送数据变更
publish2OtherBiz(buildEvent(applyNo, model, changeData));
// 异步记录日志
writeLog(allChangeColumns);
writeLog(allChangeColumns, applyNo);
}
}
......@@ -43,7 +41,7 @@ public abstract class DefaultBizDataChangeHandler<U extends BaseBizDataChangeEve
eventPublisher.publish(event);
}
private void writeLog(List<ChangeDataDto> allChangeColumns) {
eventPublisher.publish(new ChangeLogInsertEvent(this, allChangeColumns, RequestContext.cloneRequestContext()));
private void writeLog(List<ChangeDataDto> allChangeColumns, String applyNo) {
eventPublisher.publish(new ChangeLogInsertEvent(this, applyNo, canHandleBizType(), allChangeColumns, RequestContext.cloneRequestContext()));
}
}
package com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz;
package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz;
import com.yeejoin.amos.boot.module.jg.api.dto.ChangeDataDto;
import com.yeejoin.amos.boot.module.jg.biz.edit.core.RouterEventPublisher;
......@@ -11,8 +11,8 @@ import java.util.List;
import java.util.Map;
@Component
public class InstallNoticeDataChangeHandleImpl extends DefaultBizDataChangeHandler<BaseBizDataChangeEvent> {
protected InstallNoticeDataChangeHandleImpl(RouterEventPublisher routerEventPublisher) {
public class InstallNoticeDataChangeHandler extends DefaultBizDataChangeHandler<BaseBizDataChangeEvent> {
protected InstallNoticeDataChangeHandler(RouterEventPublisher routerEventPublisher) {
super(routerEventPublisher);
}
......@@ -23,7 +23,7 @@ public class InstallNoticeDataChangeHandleImpl extends DefaultBizDataChangeHandl
@Override
public String canHandleBizType() {
return "installNotice";
return "tzs_jg_installation_notice";
}
@Override
......
package com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz;
package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz;
import com.yeejoin.amos.boot.module.jg.api.dto.ChangeDataDto;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipDataProcessStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip.strategy.IEquipChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.core.RouterEventPublisher;
import com.yeejoin.amos.boot.module.jg.biz.edit.event.BaseBizDataChangeEvent;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.UseRegisterUpdateService;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.context.RequestContext;
......@@ -14,12 +11,12 @@ import java.util.List;
import java.util.Map;
@Service
public class UseRegisterDataChangeHandleImpl extends DefaultBizDataChangeHandler<BaseBizDataChangeEvent> {
public class UseRegisterDataChangeHandler extends DefaultBizDataChangeHandler<BaseBizDataChangeEvent> {
private final UseRegisterUpdateService useRegisterUpdateService;
protected UseRegisterDataChangeHandleImpl(RouterEventPublisher routerEventPublisher, UseRegisterUpdateService useRegisterUpdateService) {
protected UseRegisterDataChangeHandler(RouterEventPublisher routerEventPublisher, UseRegisterUpdateService useRegisterUpdateService) {
super(routerEventPublisher);
this.useRegisterUpdateService = useRegisterUpdateService;
}
......@@ -27,7 +24,7 @@ public class UseRegisterDataChangeHandleImpl extends DefaultBizDataChangeHandler
@Override
public String canHandleBizType() {
return "useRegister";
return "tzs_jg_use_registration";
}
......@@ -54,7 +51,7 @@ public class UseRegisterDataChangeHandleImpl extends DefaultBizDataChangeHandler
@Override
public Boolean beforeCheck(String applyNo, ModelType model, Map<String, Object> changeData) {
return null;
return true;
}
private void updateHistoryJson(String applyNo) {
......@@ -70,9 +67,6 @@ public class UseRegisterDataChangeHandleImpl extends DefaultBizDataChangeHandler
@Override
public Map<String, ?> getDetail(String applyNo, ModelType model, String bizId) {
IEquipChangeDataProcessStrategy dataProcessor = EquipDataProcessStrategyContext.getStrategy(model);
// 兼容:台套类打开变更详情(使用applyNo) 和 单位办理批量时选择单个设备打开详情(使用record)
// return dataProcessor.getDetail(applyNo, bizId);
return null;
}
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
......@@ -8,6 +8,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.enums.CylinderTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgProjectContraptionServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgRegistrationHistoryServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.InformationManageTypeEnum;
......
package com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.strategy;
package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy;
import com.yeejoin.amos.boot.module.jg.api.dto.ChangeDataDto;
......@@ -34,7 +34,7 @@ public interface IBizDataChangeHandleStrategy {
/**
* 前置校验
* 前置校验 如业务字段的重复性检验
* @param applyNo 单据编号
* @param model 类型
* @param changeData 数据
......
package com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip;
package com.yeejoin.amos.boot.module.jg.biz.edit.process.equip;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.biz.dto.RequestChangeData;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip.strategy.IEquipChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.strategy.IEquipChangeDataProcessStrategy;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
......
package com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip;
package com.yeejoin.amos.boot.module.jg.biz.edit.process.equip;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.biz.dto.RequestChangeData;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip.strategy.IEquipChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.strategy.IEquipChangeDataProcessStrategy;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
......
package com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip;
package com.yeejoin.amos.boot.module.jg.biz.edit.process.equip;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.biz.dto.RequestChangeData;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip.strategy.IEquipChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.strategy.IEquipChangeDataProcessStrategy;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
......@@ -73,7 +73,7 @@ public class BatchProjectDataEquipChangeProcess implements IEquipChangeDataProce
items.forEach(it -> {
String record = it.getRecord();
if(record == null) { // 新增的管道逻辑
this.newPieLine(projectContraptionId, it, allChangeColumns, defaultChangeId);
pieLineDataChangeService.newPieLine(projectContraptionId, it, allChangeColumns, defaultChangeId);
} else { // 更新逻辑
// 设计信息更新
pieLineDataChangeService.saveDesignForPieLine(record, allChangeColumns, it);
......@@ -91,13 +91,6 @@ public class BatchProjectDataEquipChangeProcess implements IEquipChangeDataProce
return allChangeColumns;
}
private void newPieLine(String projectContraptionId, PipelineChangeItemDto it, List<ChangeDataDto> allChangeColumns, String applyNo) {
// todo 创建管道的设备几张表
// todo 创建道的es
// todo 构建变更流水 beforeData = null
}
private void calTotalPieLineLength(ProjectContraptionChangeDataDto projectContraptionChangeDataDto, List<PipelineChangeItemDto> items) {
projectContraptionChangeDataDto.setPipelineLength(items.stream().filter(i -> i.getPipeLength() != null).mapToDouble(TechParamsPipelineChangeFieldDto::getPipeLength).sum());
}
......
package com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip;
package com.yeejoin.amos.boot.module.jg.biz.edit.process.equip;
import cn.hutool.core.bean.BeanUtil;
......@@ -28,6 +28,8 @@ import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import static com.yeejoin.amos.boot.module.jg.biz.edit.core.SubClassFinder.getAllSubClasses;
@Component
@RequiredArgsConstructor
public class CommonEquipDataProcessService {
......@@ -65,48 +67,16 @@ public class CommonEquipDataProcessService {
@PostConstruct
public void init() {
Field[] fields1 = EquipRegisterChangeDataDto.class.getDeclaredFields();
for (Field field : fields1) {
field.setAccessible(true);
FieldDisplayDefine fieldDisplayDefine = field.getAnnotation(FieldDisplayDefine.class);
if (fieldDisplayDefine != null && fieldDisplayDefine.type() == JSON.class) {
jsonFields.add(field.getName());
}
}
Field[] fields2 = EquipFactoryChangeDataDto.class.getDeclaredFields();
for (Field field : fields2) {
field.setAccessible(true);
FieldDisplayDefine fieldDisplayDefine = field.getAnnotation(FieldDisplayDefine.class);
if (fieldDisplayDefine != null && fieldDisplayDefine.type() == JSON.class) {
jsonFields.add(field.getName());
}
}
// 设计信息构建
Field[] fields3 = EquipDesignChangeDataDto.class.getDeclaredFields();
for (Field field : fields3) {
field.setAccessible(true);
FieldDisplayDefine fieldDisplayDefine = field.getAnnotation(FieldDisplayDefine.class);
if (fieldDisplayDefine != null && fieldDisplayDefine.type() == JSON.class) {
jsonFields.add(field.getName());
}
}
// 技术参数附件
Field[] fields4 = TechParamsLiftingChangeFieldDto.class.getDeclaredFields();
for (Field field : fields4) {
Set<Class<? extends BaseChangeDataDto>> subClasses = getAllSubClasses();
for (Class<? extends BaseChangeDataDto> subClass : subClasses) {
Field[] fields = subClass.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
FieldDisplayDefine fieldDisplayDefine = field.getAnnotation(FieldDisplayDefine.class);
if (fieldDisplayDefine != null && fieldDisplayDefine.type() == JSON.class) {
jsonFields.add(field.getName());
}
}
Field[] fields5 = TechParamsPipelineChangeFieldDto.class.getDeclaredFields();
for (Field field : fields5) {
field.setAccessible(true);
FieldDisplayDefine fieldDisplayDefine = field.getAnnotation(FieldDisplayDefine.class);
if (fieldDisplayDefine != null && fieldDisplayDefine.type() == JSON.class) {
jsonFields.add(field.getName());
}
}
}
......@@ -121,7 +91,6 @@ public class CommonEquipDataProcessService {
}
public void checkValidField(String record, BaseChangeDataDto changeDataDto, String equList, String equCategory, String equDefine) {
// 注册信息
if (changeDataDto instanceof EquipRegisterChangeDataDto) {
......@@ -199,7 +168,7 @@ public class CommonEquipDataProcessService {
equipChangeDataUpdateServiceImpl.updateUseInfoChangeData(record, equipUseInfoChangeDataDto);
}
// 检验信息
if(changeDataDto instanceof EquipInspectChangeDataDto){
if (changeDataDto instanceof EquipInspectChangeDataDto) {
EquipInspectChangeDataDto equipUseInfoChangeDataDto = (EquipInspectChangeDataDto) changeDataDto;
equipChangeDataUpdateServiceImpl.updateOrSaveInspectInfo(record, equipUseInfoChangeDataDto);
}
......@@ -551,7 +520,7 @@ public class CommonEquipDataProcessService {
}
public void buildInspectChangeFields(String record, EquipInspectChangeDataDto inspectChangeDataDto, List<ChangeDataDto> allChangeColumns) {
if(StringUtils.isNotEmpty(inspectChangeDataDto.getJySeq())) {
if (StringUtils.isNotEmpty(inspectChangeDataDto.getJySeq())) {
Map<String, Object> oldData = jgUseRegistrationService.getInspectDetail(inspectChangeDataDto.getJySeq());
EquipInspectChangeDataDto inspectChangeDataOld = new EquipInspectChangeDataDto();
BeanUtil.copyProperties(oldData, inspectChangeDataOld);
......
package com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip;
package com.yeejoin.amos.boot.module.jg.biz.edit.process.equip;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
......@@ -74,4 +74,11 @@ public class PieLineDataChangeServiceImpl {
// todo 数据库管道删除
// todo es管道删除
}
void newPieLine(String projectContraptionId, PipelineChangeItemDto it, List<ChangeDataDto> allChangeColumns, String applyNo) {
// todo 创建管道的设备几张表
// todo 创建道的es
// todo 构建变更流水 beforeData = null
}
}
package com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip;
package com.yeejoin.amos.boot.module.jg.biz.edit.process.equip;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
......@@ -10,9 +10,9 @@ import com.yeejoin.amos.boot.module.jg.api.dto.EquipRegisterChangeDataDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationEq;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationEqMapper;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip.strategy.IEquipChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.strategy.IEquipChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl;
import org.springframework.stereotype.Component;
......
package com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip;
package com.yeejoin.amos.boot.module.jg.biz.edit.process.equip;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.text.CharSequenceUtil;
......@@ -6,9 +6,9 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.biz.dto.RequestChangeData;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip.strategy.IEquipChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.strategy.IEquipChangeDataProcessStrategy;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
......@@ -33,27 +33,37 @@ public class SingleProjectDataEquipChangeProcess implements IEquipChangeDataProc
@Override
public List<ChangeDataDto> handle(Map<String, Object> changeData, String defaultChangeId) {
JSONObject data = (JSONObject) changeData;
JSONArray equips = data.getJSONArray(RequestChangeData.multiDataKey);
// 新增编辑的管道------------------tableData
JSONArray insertOrEditPieLines = data.getJSONArray(RequestChangeData.multiDataKey);
// 删除的管道---------------------deleteData
JSONArray deletedPieLines = data.getJSONArray(RequestChangeData.deletedDataKey);
List<ChangeDataDto> allChangeColumns = new ArrayList<>();
List<PipelineChangeItemDto> items = equips.toJavaList(PipelineChangeItemDto.class);
List<PipelineChangeItemDto> items = insertOrEditPieLines.toJavaList(PipelineChangeItemDto.class);
// 1.设备技术参数入库前校验,约束:同一个装置下的管道编号不能重复
if (items.size() != items.stream().map(TechParamsPipelineChangeFieldDto::getPipelineNumber).distinct().count()) {
throw new BadRequest("同一工程装置下管道编号不能重复!");
}
if(deletedPieLines != null && !deletedPieLines.isEmpty()) {
List<PipelineChangeItemDto> deletedPieLinesJavaList = deletedPieLines.toJavaList(PipelineChangeItemDto.class);
pieLineDataChangeService.deletePieLineBatch(deletedPieLinesJavaList, allChangeColumns, defaultChangeId);
}
// 2.装置基本信息校验、保存(前端返回的装置信息为大写 需注意)
ProjectContraptionChangeDataDto projectContraptionChangeDataDto = commonEquipDataProcessService.castMap2Bean(changeData, ProjectContraptionChangeDataDto.class);
this.calTotalPieLineLength(projectContraptionChangeDataDto, items);
pieLineDataChangeService.update(projectContraptionChangeDataDto, allChangeColumns);
// 3.管道信息入库保存
items.forEach(item -> {
String record = item.getRecord();
if(record == null) { // 新增的管道逻辑
pieLineDataChangeService.newPieLine(projectContraptionChangeDataDto.getProjectContraptionId(), item, allChangeColumns, defaultChangeId);
} else { // 更新逻辑
// 设计信息更新
pieLineDataChangeService.saveDesignForPieLine(record, allChangeColumns, item);
// 技术参数入库保存
TechParamsPipelineChangeFieldDto paramsPipelineChangeFieldDto = new TechParamsPipelineChangeFieldDto();
BeanUtil.copyProperties(item, paramsPipelineChangeFieldDto, false);
commonEquipDataProcessService.savePieLineTechParam(record, allChangeColumns, paramsPipelineChangeFieldDto);
}
});
// 4.更新所有管道的的冗余的管道名称字段(重点注意包括本次没做使用登记的管道也要更新)
pieLineDataChangeService.updateEs(projectContraptionChangeDataDto);
......
package com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip.strategy;
package com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.strategy;
import com.yeejoin.amos.boot.module.jg.api.dto.ChangeDataDto;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy;
import java.util.List;
import java.util.Map;
......
......@@ -2,7 +2,7 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.biz.edit.deal.equip.CommonEquipDataProcessService;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.CommonEquipDataProcessService;
import com.yeejoin.amos.boot.module.jg.biz.edit.event.ChangeLogInsertEvent;
import com.yeejoin.amos.boot.module.jg.biz.event.publisher.EventPublisher;
import lombok.RequiredArgsConstructor;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment