feat(mdm):通用导入导出及外部应用扩展

yun-zuoyi
汪云昊 4 years ago
parent 9c4b233975
commit 9241c60f07

@ -16,8 +16,8 @@ public class MdmEnumUtil {
*/
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum MDM_OPERATE_TYPE {
INSERT(1, "新增"),
UPDATE(2, "修改");
INSERT(1, "新增"),
UPDATE(2, "修改");
private int value;
private String description;
@ -120,10 +120,10 @@ public class MdmEnumUtil {
/**
* mdm
*/
public enum MDM_SYNC_TYPE{
INSERT(1, "新增"),
UPDATE(2, "修改"),
DELETE(3, "删除");
public enum MDM_SYNC_TYPE {
INSERT(1, "新增"),
UPDATE(2, "修改"),
DELETE(3, "删除");
private int value;
private String description;
@ -162,4 +162,51 @@ public class MdmEnumUtil {
}
}
/**
* MDM
*/
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum MDM_SYNC_APP_TYPE {
INTERNAL(1, "内部系统"),
EXTERNAL(2, "外部系统");
private int value;
private String description;
private MDM_SYNC_APP_TYPE(int value, String description) {
this.value = value;
this.description = description;
}
public int getValue() {
return value;
}
public String getDescription() {
return description;
}
public static String valueOfDescription(int val) {
String tmp = null;
for (int i = 0; i < values().length; i++) {
if (values()[i].value == val) {
tmp = values()[i].description;
}
}
return tmp;
}
public static MdmEnumUtil.MDM_SYNC_APP_TYPE valueOf(int val) {
String tmp = null;
for (int i = 0; i < values().length; i++) {
if (values()[i].value == val) {
return values()[i];
}
}
return null;
}
}
}

@ -7,7 +7,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.MdmEnumUtil;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Column;
@ -29,12 +29,12 @@ public abstract class BaseMdmBean extends BaseBean {
private static final long serialVersionUID = 3957595289035947441L;
@Transient
@ApiModelProperty("是否主数据")
@ApiParam("是否主数据")
@AnnoOutputColumn(refClass = CommonEnumUtil.TRUE_OR_FALSE.class,hidden = true)
public static Integer isMdmMaster = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue();
@Column(name = "MDM_VERSION")
@ApiModelProperty("mdm数据版本")
@ApiParam("mdm数据版本")
@JsonSerialize(using = ToStringSerializer.class)
@AnnoOutputColumn(hidden = true)
private Long mdmVersion;
@ -50,12 +50,12 @@ public abstract class BaseMdmBean extends BaseBean {
}
@Column(name = "IS_MDM_PUBLISHED")
@ApiModelProperty("是否发布")
@ApiParam("是否发布")
@AnnoOutputColumn(refClass = CommonEnumUtil.TRUE_OR_FALSE.class,hidden = true)
private Integer isMdmPublished;
@Column(name = "MDM_OPERATE_TYPE")
@ApiModelProperty("操作类型")
@ApiParam("操作类型")
@AnnoOutputColumn(refClass = MdmEnumUtil.MDM_OPERATE_TYPE.class,hidden = true)
private Integer mdmOperateType;
@ -68,7 +68,7 @@ public abstract class BaseMdmBean extends BaseBean {
}
@Column(name = "MDM_REF_ID")
@ApiModelProperty("关联id")
@ApiParam("关联id")
@JsonSerialize(using = ToStringSerializer.class)
@AnnoOutputColumn(hidden = true)
private Long mdmRefId;

@ -5,7 +5,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Column;
@ -27,23 +27,24 @@ public class BaseMdmBusiExtdBean extends BaseMdmBean {
private static final long serialVersionUID = 4267453020130810967L;
@Transient
@ApiModelProperty("是否主数据")
@ApiParam("是否主数据")
@AnnoOutputColumn(refClass = CommonEnumUtil.TRUE_OR_FALSE.class,hidden = true)
public static Integer isMdmMaster = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue();
@Transient
@ApiModelProperty("主数据Class")
@ApiParam("主数据Class")
@AnnoOutputColumn(hidden = true)
protected static Class<BaseMdmBean> mdmMasterClass = BaseMdmBean.class;
@Transient
@ApiModelProperty("软件模块")
@ApiParam("软件模块")
@AnnoOutputColumn(refClass = CommonEnumUtil.SOFT_TYPE.class,hidden = true)
protected static Integer mdmSoftType;
@Column(name = "MDM_MASTER_ID")
@ApiModelProperty("主数据id")
@ApiParam("主数据id")
@JsonSerialize(using = ToStringSerializer.class)
@AnnoOutputColumn(hidden = true)
public Long mdmMasterId;
}

@ -1,6 +1,6 @@
package cn.estsh.i3plus.pojo.mdm.bean.base;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
/**
* @Description :MDMbean
@ -16,10 +16,10 @@ public abstract class BaseMdmBusiModelBean<M extends BaseMdmBean, B extends Base
this.mdmBusiBean = mdmBusiBean;
}
@ApiModelProperty("主数据")
@ApiParam("主数据")
private M mdmMasterBean;
@ApiModelProperty("业务扩展")
@ApiParam("业务扩展")
private B mdmBusiBean;
public BaseMdmBusiModelBean() {

@ -4,7 +4,7 @@ import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MdmEnumUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import java.io.Serializable;
@ -23,27 +23,37 @@ public class MdmSyncData implements Serializable {
private static final long serialVersionUID = -1642626000860074060L;
@ApiModelProperty("同步数据类型")
@ApiParam("同步数据类型")
@AnnoOutputColumn(refClass = MdmEnumUtil.MDM_SYNC_TYPE.class)
private Integer syncType;
public int getSyncTypeVal(){
public int getSyncTypeVal() {
return syncType == null ? MdmEnumUtil.MDM_SYNC_TYPE.INSERT.getValue() : syncType;
}
public String getSyncTypeTxt(){
return syncType == null ? "无":MdmEnumUtil.MDM_SYNC_TYPE.valueOfDescription(syncType);
public String getSyncTypeTxt() {
return syncType == null ? "无" : MdmEnumUtil.MDM_SYNC_TYPE.valueOfDescription(syncType);
}
@ApiModelProperty("同步模块")
@AnnoOutputColumn(refClass = CommonEnumUtil.SOFT_TYPE.class)
private Integer syncSoftType;
@ApiParam("同步模块")
@AnnoOutputColumn(refClass = MdmEnumUtil.MDM_SYNC_APP_TYPE.class)
private Integer syncAppType;
public String getSyncSoftTypeTxt(){
return syncSoftType == null ? "无":CommonEnumUtil.SOFT_TYPE.valueOfDescription(syncSoftType);
public int getSyncAppTypeVal() {
return syncAppType == null ? MdmEnumUtil.MDM_SYNC_APP_TYPE.INTERNAL.getValue() : syncAppType;
}
@ApiModelProperty("是否是主数据")
public String getSyncAppTypeTxt() {
return syncAppType == null ? "无" : MdmEnumUtil.MDM_SYNC_APP_TYPE.valueOfDescription(syncAppType);
}
@ApiParam("同步模块")
private Long syncSoftType;
@ApiParam("同步模块名称")
private String syncSoftTypeName;
@ApiParam("是否是主数据")
@AnnoOutputColumn(refClass = CommonEnumUtil.TRUE_OR_FALSE.class)
private Integer isMasterData;
@ -51,36 +61,36 @@ public class MdmSyncData implements Serializable {
return isMasterData == null ? CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() : isMasterData;
}
public String getIsMasterDataTxt(){
return isMasterData == null ? "无":CommonEnumUtil.TRUE_OR_FALSE.valueOfDescription(isMasterData);
public String getIsMasterDataTxt() {
return isMasterData == null ? "无" : CommonEnumUtil.TRUE_OR_FALSE.valueOfDescription(isMasterData);
}
@ApiModelProperty("同步数据class")
@ApiParam("同步数据class")
private String syncDataClass;
public String getSyncDataClassSimpleName(){
if(syncDataClass == null){
public String getSyncDataClassSimpleName() {
if (syncDataClass == null) {
return null;
}
return syncDataClass.trim().substring(syncDataClass.trim().lastIndexOf(".") + 1);
}
@ApiModelProperty("同步数据id")
@ApiParam("同步数据id")
private List<Long> syncDataId;
@ApiModelProperty("同步数据用户名")
@ApiParam("同步数据用户名")
private String syncDateUserName;
@ApiModelProperty("同步时间")
@ApiParam("同步时间")
private String syncDateTime;
@ApiModelProperty("同步失败键")
@ApiParam("同步失败键")
private String syncFailKey;
@ApiModelProperty("同步失败时间")
@ApiParam("同步失败时间")
private String syncFailDateTime;
@ApiModelProperty("同步失败信息")
@ApiParam("同步失败信息")
private String syncFailMessage;
}

@ -0,0 +1,100 @@
package cn.estsh.i3plus.pojo.mdm.bean.busi;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.ArrayList;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2021-03-29 17:37
* @Modify:
**/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Table(name = "MDM_DATA_SUBSCRIBE")
@ApiModel("数据订阅信息")
public class MdmDataSubscribe extends BaseBean {
private static final long serialVersionUID = 8821827445193232389L;
@Column(name = "MDM_CLASS_NAME")
@ApiParam("主数据类名")
private String mdmClassName;
@Column(name = "MDM_NAME")
@ApiParam("主数据名称")
private String mdmName;
@Column(name = "INTERNAL_APP_NUM")
@ApiParam("内部订阅应用数量")
private Integer internalAppNum;
public long addInternalAppNum() {
if (internalAppNum == null) {
internalAppNum = 1;
} else {
internalAppNum++;
}
return internalAppNum;
}
@Column(name = "EXTERNAL_APP_NUM")
@ApiParam("外部订阅应用数量")
private Integer externalAppNum;
public long addExternalAppNum() {
if (externalAppNum == null) {
externalAppNum = 1;
} else {
externalAppNum++;
}
return externalAppNum;
}
@Transient
@ApiParam("内部订阅信息")
private List<MdmDataSubscribeDetail> internalAppSubList;
public List<MdmDataSubscribeDetail> getInternalAppSubList() {
return internalAppSubList == null ? new ArrayList<>() : internalAppSubList;
}
public void addInternalApp(MdmDataSubscribeDetail detail) {
if (internalAppSubList == null) {
internalAppSubList = new ArrayList<>();
}
internalAppSubList.add(detail);
}
@Transient
@ApiParam("外部订阅信息")
private List<MdmDataSubscribeDetail> externalAppSubList;
public List<MdmDataSubscribeDetail> getExternalAppSubList() {
return externalAppSubList == null ? new ArrayList<>() : externalAppSubList;
}
public void addExternalApp(MdmDataSubscribeDetail detail) {
if (externalAppSubList == null) {
externalAppSubList = new ArrayList<>();
}
externalAppSubList.add(detail);
}
}

@ -0,0 +1,57 @@
package cn.estsh.i3plus.pojo.mdm.bean.busi;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import cn.estsh.i3plus.pojo.base.enumutil.MdmEnumUtil;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2021-03-29 17:37
* @Modify:
**/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Table(name = "MDM_DATA_SUBSCRIBE_DETAIL")
@ApiModel("数据订阅明细")
public class MdmDataSubscribeDetail extends BaseBean {
private static final long serialVersionUID = -741233265567034262L;
@Column(name = "DATA_SUBSCRIBE_ID")
@ApiParam("数据订阅id")
@JsonSerialize(using = ToStringSerializer.class)
private Long dataSubscribeId;
@Column(name = "APP_ID")
@ApiParam("应用id")
@JsonSerialize(using = ToStringSerializer.class)
private Long appId;
@Column(name = "APP_TYPE")
@ApiParam("应用类型")
private Integer appType;
public int getAppTypeVal() {
return appType == null ? MdmEnumUtil.MDM_SYNC_APP_TYPE.INTERNAL.getValue() : appType;
}
@Column(name = "APP_NAME")
@ApiParam("应用名称")
private String appName;
}

@ -0,0 +1,49 @@
package cn.estsh.i3plus.pojo.mdm.bean.busi;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2021-03-29 17:41
* @Modify:
**/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Table(name = "MDM_EXTERNAL_APP")
@ApiModel("外部应用信息")
public class MdmExternalApp extends BaseBean {
private static final long serialVersionUID = -5344361274535836969L;
@Column(name = "APP_NAME")
@ApiParam("应用名称")
private String appName;
@Column(name = "APP_CODE")
@ApiParam("应用代码")
private String appCode;
@Column(name = "CALL_TOKEN")
@ApiParam("调用令牌")
private String callToken;
@Column(name = "CALLBACK_URL")
@ApiParam("回调地址")
private String callbackUrl;
}

@ -5,7 +5,7 @@ import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.mdm.bean.base.BaseMdmBusiExtdBean;
import cn.estsh.i3plus.pojo.mdm.bean.master.MdmGear;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.DynamicInsert;
@ -35,17 +35,17 @@ public class MdmGearCoreBusiExtd extends BaseMdmBusiExtdBean {
private static final long serialVersionUID = -3535174942277452194L;
@Transient
@ApiModelProperty("主数据Class")
@ApiParam("主数据Class")
@AnnoOutputColumn(hidden = true)
public static Class mdmMasterClass = MdmGear.class;
@Transient
@ApiModelProperty("软件模块")
@ApiParam("软件模块")
@AnnoOutputColumn(refClass = CommonEnumUtil.SOFT_TYPE.class,hidden = true)
public static Integer mdmSoftType = CommonEnumUtil.SOFT_TYPE.CORE.getValue();
@Column(name = "CORE_NUM")
@ApiModelProperty("核心数量")
@ApiParam("核心数量")
public String coreNum;
}

@ -2,7 +2,7 @@ package cn.estsh.i3plus.pojo.mdm.bean.master;
import cn.estsh.i3plus.pojo.mdm.bean.base.BaseMdmBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.DynamicInsert;
@ -31,11 +31,11 @@ public class MdmGear extends BaseMdmBean {
private static final long serialVersionUID = -7580444601811207793L;
@Column(name="NAME")
@ApiModelProperty("齿轮名称")
@ApiParam("齿轮名称")
private String name;
@Column(name="GEAR_MODEL")
@ApiModelProperty("齿轮规格")
@ApiParam("齿轮规格")
private String gearModel;
}

@ -0,0 +1,14 @@
package cn.estsh.i3plus.pojo.mdm.repository.busi;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.mdm.bean.busi.MdmDataSubscribeDetail;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2021-04-14 10:56
* @Modify:
**/
public interface MdmDataSubscribeDetailRepository extends BaseRepository<MdmDataSubscribeDetail, Long> {
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.mdm.repository.busi;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.mdm.bean.busi.MdmDataSubscribe;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2021-03-29 17:44
* @Modify:
**/
@Repository
public interface MdmDataSubscribeRepository extends BaseRepository<MdmDataSubscribe, Long> {
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.mdm.repository.busi;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.mdm.bean.busi.MdmExternalApp;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2021-03-29 17:52
* @Modify:
**/
@Repository
public interface MdmExternalAppRepository extends BaseRepository<MdmExternalApp, Long> {
}

@ -0,0 +1,71 @@
package cn.estsh.i3plus.pojo.mdm.sqlpack;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mdm.bean.busi.MdmDataSubscribe;
import cn.estsh.i3plus.pojo.mdm.bean.busi.MdmExternalApp;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2021-04-14 19:33
* @Modify:
**/
public class MdmHqlPack {
/**
* mdm
*
* @param mdmDataSubscribe
* @return
*/
public static DdlPackBean packHqlMdmDataSubscribe(MdmDataSubscribe mdmDataSubscribe) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mdmDataSubscribe);
DdlPreparedPack.getStringLikerPack(mdmDataSubscribe.getMdmName(), "mdmName", ddlPackBean);
DdlPreparedPack.getStringLikerPack(mdmDataSubscribe.getMdmClassName(), "mdmClassName", ddlPackBean);
return ddlPackBean;
}
public static DdlPackBean packHqlCheckMdmDataSubscribeOnly(MdmDataSubscribe mdmDataSubscribe) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mdmDataSubscribe);
DdlPreparedPack.getNumNOEqualPack(mdmDataSubscribe.getId(), "id", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mdmDataSubscribe.getMdmClassName(), "mdmClassName", ddlPackBean);
return ddlPackBean;
}
/**
*
*
* @param mdmExternalApp
* @return
*/
public static DdlPackBean packHqlMdmExternalApp(MdmExternalApp mdmExternalApp) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mdmExternalApp);
DdlPreparedPack.getStringLikerPack(mdmExternalApp.getAppName(), "appName", ddlPackBean);
DdlPreparedPack.getStringLikerPack(mdmExternalApp.getAppCode(), "appCode", ddlPackBean);
return ddlPackBean;
}
/**
*
*
* @param mdmExternalApp
* @return
*/
public static DdlPackBean packHqlCheckMdmExternalAppOnly(MdmExternalApp mdmExternalApp) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mdmExternalApp);
DdlPreparedPack.getNumNOEqualPack(mdmExternalApp.getId(), "id", ddlPackBean);
DdlPreparedPack.getStringEqualPack(mdmExternalApp.getAppCode(), "appCode", ddlPackBean);
return ddlPackBean;
}
}

@ -51,6 +51,11 @@ public class ExcelImportModel<T> implements Serializable {
result = true;
}
public ExcelImportModel(List<T> excelList) {
result = true;
this.excelList = excelList;
}
public void addErrorMsg(ImportErrorModel errorModel) {
if (importErrorModels == null) {
importErrorModels = new ArrayList<>();

@ -98,8 +98,7 @@ public class CoreHqlPack {
DdlPreparedPack.getNumEqualPack(resource.getResourceType(), "resourceType", result);
// 是否多类型查询
if (StringUtils.isNotBlank(resource.getResourceTypes())) {
DdlPreparedPack.getInPackArray((Integer[]) ConvertUtils.convert(resource.getResourceTypes().split(","), Integer.class), "resourceType", result);
}
DdlPreparedPack.getInPackArray((Integer[]) ConvertUtils.convert(resource.getResourceTypes().split(","), Integer.class), "resourceType", result); }
DdlPreparedPack.getNumEqualPack(resource.getSoftType(), "softType", result);
DdlPreparedPack.getNumEqualPack(resource.getIsSystem(), "isSystem", result);

Loading…
Cancel
Save