From 51d666b5bcfc45b6057f50aca0b498759724a283 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E5=86=9B=E8=B6=85?= Date: Mon, 2 Mar 2020 15:28:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91PTL--PCN=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4,=E5=90=8C=E6=AD=A5=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=92=8C=E5=AF=B9=E8=B1=A1=E6=98=A0=E5=B0=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/pojo/base/enumutil/PtlEnumUtil.java | 124 +++++++++++++++++++++ .../cn/estsh/i3plus/pojo/ptl/bean/PtlNode.java | 87 +++++++++++++++ .../estsh/i3plus/pojo/ptl/bean/PtlObjectDao.java | 41 +++++++ .../estsh/i3plus/pojo/ptl/bean/PtlPcnSyncCfg.java | 111 ++++++++++++++++++ .../pojo/ptl/repository/PtlNodeRepository.java | 16 +++ .../ptl/repository/PtlObjectDaoRepository.java | 16 +++ .../ptl/repository/PtlPcnSyncCfgRepository.java | 16 +++ .../estsh/i3plus/pojo/ptl/sqlpack/PtlHqlPack.java | 83 ++++++++++++-- 8 files changed, 485 insertions(+), 9 deletions(-) create mode 100644 modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/bean/PtlNode.java create mode 100644 modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/bean/PtlObjectDao.java create mode 100644 modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/bean/PtlPcnSyncCfg.java create mode 100644 modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/repository/PtlNodeRepository.java create mode 100644 modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/repository/PtlObjectDaoRepository.java create mode 100644 modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/repository/PtlPcnSyncCfgRepository.java diff --git a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/PtlEnumUtil.java b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/PtlEnumUtil.java index 072df9e..3897219 100644 --- a/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/PtlEnumUtil.java +++ b/modules/i3plus-pojo-base/src/main/java/cn/estsh/i3plus/pojo/base/enumutil/PtlEnumUtil.java @@ -423,4 +423,128 @@ public class PtlEnumUtil { return tmp; } } + + /** + * PCN同步PTL主数据同步类型枚举 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum SYNC_TYPE { + + GET_PTL_DATA(1, "pcn获取Ptl数据"), + DATA_TO_PTL(2, "pcn推送数据至ptl"); + + private int value; + private String description; + + SYNC_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 Integer descriptionOfValue(String description) { + Integer tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].description.equals(description)) { + tmp = values()[i].value; + } + } + return tmp; + } + } + + /** + * PCN同步PTL主数据同步方式枚举 + */ + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum SYNC_PATTERN { + + UPDATE(1, "修改"), + INSERT(2, "新增"); + + private int value; + private String description; + + SYNC_PATTERN(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 Integer descriptionOfValue(String description) { + Integer tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].description.equals(description)) { + tmp = values()[i].value; + } + } + return tmp; + } + } + + @JsonFormat(shape = JsonFormat.Shape.OBJECT) + public enum TRUE_OR_FALSE { + TRUE(1, "是"), + FALSE(2, "否"); + + private int value; + private String description; + + TRUE_OR_FALSE(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; + } + } } diff --git a/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/bean/PtlNode.java b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/bean/PtlNode.java new file mode 100644 index 0000000..fd3a0d9 --- /dev/null +++ b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/bean/PtlNode.java @@ -0,0 +1,87 @@ +package cn.estsh.i3plus.pojo.ptl.bean; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import io.swagger.annotations.Api; +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 java.io.Serializable; + +/** + * @Description: + * @Reference: + * @Author: adair.song + * @CreateDate:2019-04-22-17:20 + * @Modify: + **/ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name = "PTL_PCN_NODE") +@Api("PCN节点") +public class PtlNode extends BaseBean implements Serializable { + private static final long serialVersionUID = -9140094723555406392L; + @Column(name = "PCN_CODE") + @ApiParam("PCN代码") + private String pcnCode; + + @Column(name = "PCN_NAME") + @ApiParam("PCN节点名称") + private String pcnName; + + @Column(name = "AREA_NO") + @ApiParam("区域") + private String areaNo; + + @Column(name = "AREA_NAME") + @ApiParam("区域名称") + private String areaName; + + @Column(name = "WORK_CENTER_CODE") + @ApiParam("工作中心") + private String workCenterCode; + + @Column(name = "WORK_CENTER_NAME") + @ApiParam("工作中心名称") + private String workCenterName; + + @Column(name = "PCN_VERSION") + @ApiParam("PCN版本") + private String pcnVersion; + + @Column(name = "CONNECT_IP") + @ApiParam("连接IP") + private String connectIp; + + @Column(name = "CONNECT_COUNT") + @ApiParam("连接次数") + private Integer connectCount; + + @Column(name = "IS_CONNECT") + @ApiParam("是否连接") + private Integer isConnect; + + @Column(name = "CONNECT_TIME") + @ApiParam("连接时间") + private String connectTime; + + @Column(name = "CODE_SPECIFIC") + @ApiParam("PCN特殊字段") + private String codeSpecific; + + public int getConnectCountVal() { + return this.connectCount == null ? 0 : this.connectCount; + } + + public int getIsConnectVal() { + return this.isConnect == null ? 0 : this.isConnect; + } +} diff --git a/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/bean/PtlObjectDao.java b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/bean/PtlObjectDao.java new file mode 100644 index 0000000..d86d1b1 --- /dev/null +++ b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/bean/PtlObjectDao.java @@ -0,0 +1,41 @@ +package cn.estsh.i3plus.pojo.ptl.bean; + + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import io.swagger.annotations.Api; +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 java.io.Serializable; + +/** + * @Description :PTL_对象与dao对应关系 + * @Reference : + * @Author : adair.song + * @CreateDate : 2019-04-23 + * @Modify: + **/ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name = "PTL_OBJECT_DAO") +@Api("PTL_对象与dao对应关系") +public class PtlObjectDao extends BaseBean implements Serializable { + private static final long serialVersionUID = 2286752328499060L; + @Column(name = "OBJECT_CODE") + @ApiParam("对象代码") + private String objectCode; + + @Column(name = "DAO_CLASS") + @ApiParam("dao层类名") + private String daoClass; + +} diff --git a/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/bean/PtlPcnSyncCfg.java b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/bean/PtlPcnSyncCfg.java new file mode 100644 index 0000000..060404d --- /dev/null +++ b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/bean/PtlPcnSyncCfg.java @@ -0,0 +1,111 @@ +package cn.estsh.i3plus.pojo.ptl.bean; + +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import io.swagger.annotations.Api; +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.io.Serializable; + +/** + * @Description: + * @Reference: + * @Author: adair.song + * @CreateDate:2020-02-28 10:16 + * @Modify: + **/ +@Data +@Entity +@DynamicInsert +@DynamicUpdate +@EqualsAndHashCode(callSuper = true) +@Table(name = "PTL_PCN_SYNC_CFG") +@Api("PTL_PCN_同步配置") +public class PtlPcnSyncCfg extends BaseBean implements Serializable { + + private static final long serialVersionUID = 7270948230576127126L; + + @Column(name = "PCN_CODE") + @ApiParam("PCN代码") + private String pcnCode; + + @Column(name = "OBJECT_CODE") + @ApiParam("对象代码") + private String objectCode; + + @Column(name = "OBJECT_NAME") + @ApiParam("对象名称") + private String objectName; + + @Column(name = "OBJECT_KEY") + @ApiParam("对象主键") + private String objectKey; + + @Column(name = "SYNC_FREQUENCY") + @ApiParam("同步频率") + private Integer syncFrequency; + + @Column(name = "SYNC_TIME") + @ApiParam(value = "同步时间") + private String syncTime; + + @Column(name = "SYNC_PATTERN") + @ApiParam("同步方式 1、修改 2、新增") + private Integer syncPattern; + + @Column(name = "SYNC_TYPE") + @ApiParam("同步类型 1.pcn获取PTL数据 2.pcn推送数据至PTL") + private Integer syncType; + + @Column(name = "LAST_SYNC_TIME") + @ApiParam(value = "上一同步时间") + private String lastSyncTime; + + @Column(name = "EXTRACT_GAP") + @ApiParam(value = "从数据库抽取的最大值 目前为分钟为限制") + private Integer extractGap; + + @Column(name = "EXTRACT_CONDITION") + @ApiParam(value = "从数据库抽取的条件限制") + private String extractCondition; + + @Column(name = "IS_IGNORE_ORG") + @ApiParam(value = "同步的时候是否区分工厂") + private Integer isIgnoreOrg = CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(); + + @Transient + @ApiParam("同步方式") + private String syncPatternName; + + @Transient + @ApiParam("同步类型名称") + private String syncTypeName; + + @Transient + @ApiParam(value = "同步的时候是否区分工厂") + private String isIgnoreOrgName; + + public int getIsIgnoreOrgVal() { + return this.isIgnoreOrg == null ? 0 : this.isIgnoreOrg; + } + + public int getSyncFrequencyVal() { + return this.syncFrequency == null ? 0 : this.syncFrequency; + } + + public int getSyncTypeVal() { + return this.syncType == null ? 0 : this.syncType; + } + + public int getSyncPatternVal() { + return this.syncPattern == null ? 0 : this.syncPattern; + } +} diff --git a/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/repository/PtlNodeRepository.java b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/repository/PtlNodeRepository.java new file mode 100644 index 0000000..d4b869c --- /dev/null +++ b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/repository/PtlNodeRepository.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.pojo.ptl.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.ptl.bean.PtlNode; +import org.springframework.stereotype.Repository; + +/** + * @Description: + * @Reference: + * @Author: adair.song + * @CreateDate:2020-02-28-17:13 + * @Modify: + **/ +@Repository +public interface PtlNodeRepository extends BaseRepository { +} diff --git a/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/repository/PtlObjectDaoRepository.java b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/repository/PtlObjectDaoRepository.java new file mode 100644 index 0000000..93c461d --- /dev/null +++ b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/repository/PtlObjectDaoRepository.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.pojo.ptl.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.ptl.bean.PtlObjectDao; +import org.springframework.stereotype.Repository; + +/** + * @Description: + * @Reference: + * @Author: adair.song + * @CreateDate:2019-04-23 + * @Modify: + **/ +@Repository +public interface PtlObjectDaoRepository extends BaseRepository { +} diff --git a/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/repository/PtlPcnSyncCfgRepository.java b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/repository/PtlPcnSyncCfgRepository.java new file mode 100644 index 0000000..0b0be41 --- /dev/null +++ b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/repository/PtlPcnSyncCfgRepository.java @@ -0,0 +1,16 @@ +package cn.estsh.i3plus.pojo.ptl.repository; + +import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository; +import cn.estsh.i3plus.pojo.ptl.bean.PtlPcnSyncCfg; +import org.springframework.stereotype.Repository; + +/** + * @Description: + * @Reference: + * @Author: yiming.gu + * @CreateDate:2019-04-24-17:13 + * @Modify: + **/ +@Repository +public interface PtlPcnSyncCfgRepository extends BaseRepository { +} diff --git a/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/sqlpack/PtlHqlPack.java b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/sqlpack/PtlHqlPack.java index ce00e6d..5efbb4d 100644 --- a/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/sqlpack/PtlHqlPack.java +++ b/modules/i3plus-pojo-ptl/src/main/java/cn/estsh/i3plus/pojo/ptl/sqlpack/PtlHqlPack.java @@ -5,17 +5,9 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.enumutil.WmsEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.base.tool.HqlPack; -import cn.estsh.i3plus.pojo.ptl.bean.PtlConfig; -import cn.estsh.i3plus.pojo.ptl.bean.PtlPrinterConfigure; -import cn.estsh.i3plus.pojo.ptl.bean.PtlPrintingQueue; -import com.alibaba.fastjson.JSONObject; -import com.google.common.base.Strings; +import cn.estsh.i3plus.pojo.ptl.bean.*; import org.springframework.util.StringUtils; -import java.util.*; -import java.util.stream.Collectors; - /** * @Description : PTL对象封装 * @Reference : @@ -101,6 +93,19 @@ public class PtlHqlPack { } /** + * 通用查询条件 + * + * @param organizeCode + * @return + */ + public static DdlPackBean getAllBaseData(String organizeCode) { + DdlPackBean packBean = new DdlPackBean(); + DdlPreparedPack.getStringEqualPack(organizeCode, "organizeCode", packBean); + DdlPreparedPack.getNumEqualPack(CommonEnumUtil.IS_DEAL.NO.getValue(), "isDeleted", packBean); + return packBean; + } + + /** * 配置信息 * @param ptlConfig * @return @@ -118,4 +123,64 @@ public class PtlHqlPack { } return packBean; } + + + /** + * PTL-PCN节点查询条件封装 + * + * @param ptlPcn + * @param organizeCode + * @return + */ + public static DdlPackBean getPtlPcnByCondition(PtlNode ptlPcn, String organizeCode) { + DdlPackBean packBean = getAllBaseData(organizeCode); + if (!StringUtils.isEmpty(ptlPcn.getConnectIp())) { + DdlPreparedPack.getStringLikerPack(ptlPcn.getConnectIp(), "connectIp", packBean); + } + if (!StringUtils.isEmpty(ptlPcn.getPcnName())) { + DdlPreparedPack.getStringLikerPack(ptlPcn.getPcnName(), "pcnName", packBean); + } + if (!StringUtils.isEmpty(ptlPcn.getPcnCode())) { + DdlPreparedPack.getStringLikerPack(ptlPcn.getPcnCode(), "pcnCode", packBean); + } + if (!StringUtils.isEmpty(ptlPcn.getAreaNo())) { + DdlPreparedPack.getStringLikerPack(ptlPcn.getAreaNo(), "areaNo", packBean); + } + if (ptlPcn.getIsValid() != null) { + DdlPreparedPack.getNumEqualPack(ptlPcn.getIsValid(), "isValid", packBean); + } + return packBean; + } + + /** + * PTL-PCN同步配置查询条件封装 + * + * @param pcnSyncCfg + * @return + */ + public static DdlPackBean getPtlPcnSyncCfg(PtlPcnSyncCfg pcnSyncCfg, String organizeCode) { + DdlPackBean packBean = getAllBaseDataByNormalPro(pcnSyncCfg, organizeCode); + DdlPreparedPack.getStringLikerPack(pcnSyncCfg.getObjectCode(), "objectCode", packBean); + DdlPreparedPack.getStringLikerPack(pcnSyncCfg.getPcnCode(), "pcnCode", packBean); + DdlPreparedPack.getNumEqualPack(pcnSyncCfg.getSyncType(), "syncType", packBean); + return packBean; + } + + /** + * PTL对象与dao对应关系查询条件封装 + * + * @param objectDao + * @return + */ + public static DdlPackBean getPtlObjectDao(PtlObjectDao objectDao, String organizeCode) { + DdlPackBean packBean = getAllBaseDataByNormalPro(objectDao, organizeCode); + if (!StringUtils.isEmpty(objectDao.getObjectCode())) { + DdlPreparedPack.getStringLikerPack(objectDao.getObjectCode(), "objectCode", packBean); + } + if (!StringUtils.isEmpty(objectDao.getDaoClass())) { + DdlPreparedPack.getStringLikerPack(objectDao.getDaoClass(), "daoClass", packBean); + } + + return packBean; + } }