Commit 1c4eed00 authored by suhuiguang's avatar suhuiguang

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

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