yun-zuoyi
陈思洁 4 years ago
commit 28474c8aba

@ -0,0 +1,548 @@
package cn.estsh.i3plus.pojo.andon.bean;
import cn.estsh.i3plus.pojo.andon.model.BaseManageQueue;
import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn;
import cn.estsh.i3plus.pojo.base.enumutil.AndonEnumUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import io.swagger.models.auth.In;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.beanutils.BeanUtils;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*;
import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : silliter.yuan
* @CreateDate : 2019-05-10 17:16
* @Modify:
**/
@Data
@Entity
@Table(name="ANDON_MANAGE_QUEUE", indexes = {
@Index(columnList = "WORK_CENTER_CODE", name = "ANDON_INDEX_WORK_CENTER_CODE"),
@Index(columnList = "WORK_CELL_CODE", name = "ANDON_INDEX_WORK_CELL_CODE"),
@Index(columnList = "ORGANIZE_CODE", name = "ANDON_INDEX_ORGANIZE_CODE"),
@Index(columnList = "ANDON_ORDER_NO", name = "ANDON_INDEX_ANDON_ORDER_NO"),
@Index(columnList = "ALARM_CODE", name = "ANDON_INDEX_ALARM_CODE"),
@Index(columnList = "STATUS_CODE", name = "ANDON_INDEX_STATUS_CODE"),
@Index(columnList = "ACTION_CODE", name = "ANDON_INDEX_ACTION_CODE"),
@Index(columnList = "EQUIPMENT_CODE", name = "ANDON_INDEX_EQUIPMENT_CODE")
})
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Inheritance(strategy = InheritanceType.JOINED)
@Api("安灯队列")
public class AndonMgnManageQueue extends BaseManageQueue implements Serializable {
private static final long serialVersionUID = 183865984747203897L;
@Transient
@ApiParam(value ="触发事件")
private String triggerEvent;
@Column(name = "ROUTE_CODE")
@ApiParam(value = "流程代码")
private String routeCode;
@Column(name = "ROUTE_STATUS_CODE")
@ApiParam(value = "状态点代码")
private String routeStatusCode;
@Column(name = "SEQ")
@ApiParam(value = "序号", example = "1")
private Double seq;
@Transient
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiParam(value="呼叫时间,查询开始时间", example = "2018-01-01 01:00:00")
public String callTimeStart;
@Transient
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiParam(value="呼叫时间,查询结束时间", example = "2018-01-01 01:00:00")
public String callTimeEnd;
@Transient
@ApiParam(value = "呼叫人名字")
private String callUserName;
@Transient
@ApiParam(value = "响应人名字")
private String confirmUserName;
@Column(name = "SOURCE_TYPE")
@ApiParam(value = "安灯来源类型")
private String sourceType = AndonEnumUtil.ALARM_SOURCE_TYPE.SOFT.getValue();
@Transient
@ApiParam(value = "解决人名字")
private String resetUserName;
@Column(name = "IS_SHIFT_CALL")
@ApiParam(value = "是否转呼", example = "1")
private Integer isShiftCall;
@Column(name="SHIFT_CALL_TIME")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiParam(value="转呼时间",example = "2018-01-01 01:00:00")
@AnnoOutputColumn(hidden = true)
public String shiftCallTime;
@Column(name = "RP_OBJECT_CODE")
@ApiParam(value = "转呼对象代码")
private String rpObjectCode;
@Column(name = "SC_RESPONSE_CODE")
@ApiParam(value = "转呼响应方式")
private String scResponseCode;
@Column(name = "SC_RP_LEVEL")
@ApiParam(value = "转呼通知等级")
private String scRpLevel;
@Column(name = "SHIFT_CODE")
@ApiParam(value = "班次")
private String shiftCode;
@Column(name = "PRODUCTION_NUM")
@ApiParam(value = "生产号")
private String productionNum;
@Column(name = "MODEL")
@ApiParam(value = "车型")
private String model;
@Column(name = "FAULT_CAUSE")
@ApiParam(value = "故障原因")
private String faultCause;
@Column(name = "PROCESS_METHOD")
@ApiParam(value = "处理方法")
private String processMethod;
@Column(name = "REPLACE_SPARE_PART")
@ApiParam(value = "更换备件")
private String replaceSparePart;
@Column(name = "MAINTENANCE_SCORE")
@ApiParam(value = "维修评分")
private String maintenanceScore;
@Column(name = "UNQUALIFIED_QTY")
@ApiParam(value = "不良品数量")
private Integer unqualifiedQty;
@Column(name = "PREVENTIVE_MEASURES")
@ApiParam(value = "维修工程师预防性对策")
private String preventiveMeasures;
@Column(name = "ENGINEER_SUGGESTION")
@ApiParam(value = "工艺工程师建议")
private String engineerSuggestion;
@Column(name = "RESPONSE_SPEED")
@ApiParam(value = "响应速度")
private String responseSpeed;
@Column(name = "REPAIR_SPEED")
@ApiParam(value = "修复速度")
private String repairSpeed;
@Column(name = "MONTH")
@ApiParam(value = "月")
private Integer month;
@Column(name = "WEEK")
@ApiParam(value = "周")
private Integer week;
@Transient
@ApiParam(value = "异常时长", example = "0")
private Long execptionTime;
@Transient
@ApiParam(value = "响应时长", example = "0")
private Long signTime;
@Transient
@ApiParam(value = "ANDON次数用于报表统计", example = "0")
private Long andonCount;
@Transient
@ApiParam(value = "平均响应时长", example = "0")
private Double avgSignTime;
@Transient
@ApiParam(value = "解决时长", example = "0")
private Long resolveTime;
@Transient
@ApiParam(value = "平均解决时长", example = "0")
private Double avgResolveTime;
@Transient
@ApiParam(value = "查询条件ANDON状态")
private List<Object> statusList;
@Transient
@ApiParam(value = "查询条件ANDON状态")
private List<Object> typeList;
@Transient
@ApiParam(value = "比例", example = "0")
private Double proportion;
@Transient
@ApiParam(value = "当前比例(累加)", example = "0")
private Double currentProportion;
@Transient
@ApiParam(value = "总次数(用于报表统计)", example = "0")
private Integer sumCount;
@Column(name = "SEND_FLAG")
@ApiParam(value = "发送标志")
private String sendFlag;
@Column(name = "SIGN_SEND_FLAG")
@ApiParam(value = "响应已通知标识")
private String signSendFlag;
/**
* 1 = 2 =
*/
@Transient
@ApiParam(value = "是否勾选加入自处理问题库", example = "2")
private Integer isDisposal;
@Column(name = "ALARM_DETAIL_NAME_RDD")
@ApiParam(value = "安灯子类型名称")
private String alarmDetailNameRdd;
@Column(name = "EPM_CODE")
@ApiParam(value = "事件现象代码")
private String epmCode;
@Column(name = "EPM_NAME_RDD")
@ApiParam(value = "事件现象描述")
private String epmNameRdd;
@Column(name = "IMPORTANCE_CODE")
@ApiParam(value = "重要等级代码")
private String importanceCode;
@Column(name = "IMPORTANCE_NAME_RDD")
@ApiParam(value = "重要等级名称")
private String importanceNameRdd;
@Column(name = "ORGANIZE_NAME_RDD")
@ApiParam(value = "组织名称")
private String organizeNameRdd;
@Column(name = "REJECT_OPINION")
@ApiParam(value = "驳回意见")
private String rejectOpinion;
@Column(name = "OPEN_INFO")
@ApiParam(value = "放行说明")
private String openInfo;
@Column(name = "IS_OVER_TIME")
@ApiParam(value = "是否超时")
private Integer overTimeFlag;
@Transient
@ApiParam(value = "安灯状态集合")
private List<String> statusCodeList;
@Transient
@ApiParam(value = "日发生次数")
private int dayTime;
@Transient
@ApiParam(value = "周发生次数")
private int weekendsTime;
@Transient
@ApiParam(value = "事件统计报表该事件描述的总次数")
private int acCodeTime;
@ApiParam(value = "操作来源")
@Transient
private String operationFlag;
// 安灯附属表
@Transient
@ApiParam(value ="临时/纠正措施")
private String tempCorrectMethod;
@Transient
@ApiParam(value ="预防/纠正措施")
private String preCorrectMethod;
@Transient
@ApiParam(value ="客户")
private String customer;
@Transient
@ApiParam(value ="零件号")
private String partNo;
@Transient
@ApiParam(value ="零件名称")
private String partName;
@Transient
@ApiParam(value ="报废数量")
private Double scrapNum;
@Transient
@ApiParam(value ="批次")
private String lot;
@Transient
@ApiParam(value ="零件数量")
private Double partNum;
@Transient
@ApiParam(value ="设备名称")
private String deviceName;
@Transient
@ApiParam(value ="是否更换备件")
private Integer isChangeBackup;
@Transient
@ApiParam(value ="备件名称")
private String backupPartName;
@Transient
@ApiParam(value ="规格型号")
private String scale;
@Transient
@ApiParam(value ="当前件数")
private Integer currentProdNum;
@Transient
@ApiParam(value ="生产累计件数")
private Integer totalProdNum;
@Transient
@ApiParam(value ="安灯类型名称")
private String alarmCodeName;
@Transient
@ApiParam(value ="响应时长-分钟")
private Integer downtime;
@Transient
@ApiParam(value ="故障时长-分钟")
private Integer brokenTime;
@Transient
@ApiParam(value ="响应时长(分钟)")
private Double sumDowntime;
@Transient
@ApiParam(value ="故障时长(分钟)")
private Double sumBrokenTime;
@Transient
@ApiParam(value ="故障字符串")
private String faultStr;
@Transient
@ApiParam(value ="百分比")
private Integer propagation;
// 是否转呼
public Integer getIsShiftCall() {
return this.isShiftCall == null ? 0 : this.isShiftCall;
}
// 获取优先级别
public Integer getPriorityLevel() {
return this.priorityLevel == null ? 0 : this.priorityLevel;
}
/**
*
* @param workCenterCode
* @param workCenterNameRdd
* @param workCellCode
* @param workCellNameRdd
* @param equipmentCode
* @param equipmentNameRdd
* @param shiftCode
* @param shiftNameRdd
* @param alarmCode
* @param andonCount
*/
public AndonMgnManageQueue(String workCenterCode, String workCenterNameRdd, String workCellCode, String workCellNameRdd,
String equipmentCode, String equipmentNameRdd, String shiftCode, String shiftNameRdd,
String alarmCode, Long andonCount, String callTime, String resetTime) {
this.workCenterCode = workCenterCode;
this.workCenterNameRdd = workCenterNameRdd;
this.workCellNameRdd = workCellNameRdd;
this.workCellCode = workCellCode;
this.equipmentCode = equipmentCode;
this.equipmentNameRdd = equipmentNameRdd;
this.shiftCode = shiftCode;
this.shiftNameRdd = shiftNameRdd;
this.alarmCode = alarmCode;
this.andonCount = andonCount;
this.callTime = callTime;
this.resetTime = resetTime;
}
/**
* 使Java
* @param acCode
* @param acNameRdd
* @param workCenterCode
* @param workCenterNameRdd
* @param workCellCode
* @param workCellNameRdd
* @param alarmCode
* @param ecCode
* @param ecNameRdd
* @param emCode
* @param emNameRdd
* @param callTime
* @param confirmTime
* @param resetTime
*/
public AndonMgnManageQueue(String acCode, String acNameRdd, String workCenterCode, String workCenterNameRdd, String workCellCode, String workCellNameRdd, String alarmCode, String ecCode, String ecNameRdd, String emCode, String emNameRdd, String callTime, String confirmTime, String resetTime){
this.acCode = acCode;
this.acNameRdd = acNameRdd;
this.workCenterCode = workCenterCode;
this.workCenterNameRdd = workCenterNameRdd;
this.workCellCode = workCellCode;
this.workCellNameRdd = workCellNameRdd;
this.alarmCode = alarmCode;
this.ecCode = ecCode;
this.ecNameRdd = ecNameRdd;
this.emCode = emCode;
this.emNameRdd = emNameRdd;
this.callTime = callTime;
this.confirmTime = confirmTime;
this.resetTime = resetTime;
}
/**
* 使Java
* @param organizeCode
* @param workCenterNameRdd
* @param workCellCode
* @param workCellNameRdd
* @param resetUser
* @param alarmCode
* @param callTime
* @param confirmTime
* @param resetTime
*/
public AndonMgnManageQueue(String organizeCode, String workCenterNameRdd, String workCellCode, String workCellNameRdd, String resetUser, String alarmCode, String callTime, String confirmTime, String resetTime){
this.organizeCode = organizeCode;
this.workCenterNameRdd = workCenterNameRdd;
this.workCellCode = workCellCode;
this.workCellNameRdd = workCellNameRdd;
this.resetUser = resetUser;
this.alarmCode = alarmCode;
this.callTime = callTime;
this.confirmTime = confirmTime;
this.resetTime = resetTime;
}
/**
* 使JAVA
* @param workCenterNameRdd
* @param alarmCode
* @param ecCode
* @param ecNameRdd
* @param callTime
* @param confirmTime
* @param resetTime
*/
public AndonMgnManageQueue(String workCenterNameRdd, String alarmCode, String ecCode, String ecNameRdd, String callTime, String confirmTime, String resetTime){
this.workCenterNameRdd = workCenterNameRdd;
this.ecNameRdd = ecNameRdd;
this.ecCode = ecCode;
this.alarmCode = alarmCode;
this.callTime = callTime;
this.confirmTime = confirmTime;
this.resetTime = resetTime;
}
public AndonMgnManageQueue() {
}
/**
*
* @param organizeNameRdd
* @param workCenterNameRdd
* @param andonCount
*/
public AndonMgnManageQueue(String organizeNameRdd, String workCenterCode, String workCenterNameRdd, Long andonCount) {
this.organizeNameRdd = organizeNameRdd;
this.workCenterCode = workCenterCode;
this.workCenterNameRdd = workCenterNameRdd;
this.andonCount = andonCount;
}
/**
*
* @param workCenterCode
* @param workCenterNameRdd
* @param workCellCode
* @param workCellNameRdd
* @param equipmentCode
* @param equipmentNameRdd
* @param shiftCode
* @param shiftNameRdd
* @param alarmCode
* @param andonCount
*/
public AndonMgnManageQueue(String workCenterCode, String workCenterNameRdd, String workCellNameRdd, String workCellCode,
String equipmentCode, String equipmentNameRdd, String shiftCode, String shiftNameRdd,
String alarmCode, Long andonCount) {
this.workCenterCode = workCenterCode;
this.workCenterNameRdd = workCenterNameRdd;
this.workCellNameRdd = workCellNameRdd;
this.workCellCode = workCellCode;
this.equipmentCode = equipmentCode;
this.equipmentNameRdd = equipmentNameRdd;
this.shiftCode = shiftCode;
this.shiftNameRdd = shiftNameRdd;
this.alarmCode = alarmCode;
this.andonCount = andonCount;
}
public static void main(String[] args) {
try {
List ds = new ArrayList();
ds.add(new AndonMgnManageQueue());
System.out.println(BeanUtils.describe(ds));
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
}

@ -0,0 +1,13 @@
package cn.estsh.i3plus.pojo.andon.repository;
import cn.estsh.i3plus.pojo.andon.bean.AndonMgnManageQueue;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
/**
* @Description:
* @Author: jokelin
* @Date: 2021/6/18 5:14 PM
* @Modify:
*/
public interface IAndonMgnManageQueueRepository extends BaseRepository<AndonMgnManageQueue, Long> {
}

@ -109,6 +109,8 @@ public class BaseOrder extends BaseAPS {
@FieldAnnotation(modify = false)
private Integer delayTime;
private transient Date lastBegin;
@JsonBackReference
public List<Work> getWorks() {
return BeanRelation.list(this, EBaseOrder.Works);

@ -49,8 +49,16 @@ public class HeuristicRule extends BaseRule {
@FieldAnnotation(defaultValue = "true")
private Boolean insertIdle;
@Column(name="WAITING_TIME")
@ApiParam(value ="最大等待时间")
private String waitingTime;
@Column(name="BATCH_PERIOD")
@ApiParam(value ="组炉区间")
@FieldAnnotation(editType = ApsEnumUtil.EDIT_TYPE.DURATION)
private String batchPeriod;
@Column(name="REVER_FLUSH_PLAN")
@ApiParam(value ="逆向刷新计划")
private Boolean reverFlushPlan = false;
}

@ -33,7 +33,7 @@ public class InterMediateResult extends BaseAPS {
private static final long serialVersionUID = -1869359887027950540L;
@Column(name="WORK_ID")
@ApiParam(value ="工作")
@ApiParam(value ="工作编码")
@FieldAnnotation(relation = "Work")
private Long workId;
@ -63,5 +63,5 @@ public class InterMediateResult extends BaseAPS {
}
@JsonBackReference
public List<InterMediateDetail> getDetails() { return BeanRelation.get(this, EInterMediateResult.Details); }
public List<InterMediateDetail> getDetails() { return BeanRelation.list(this, EInterMediateResult.Details); }
}

@ -1,9 +1,11 @@
package cn.estsh.i3plus.pojo.aps.bean;
import cn.estsh.i3plus.pojo.aps.annotation.ExcludeImportExport;
import cn.estsh.i3plus.pojo.aps.annotation.FieldAnnotation;
import cn.estsh.i3plus.pojo.aps.common.BaseAPS;
import cn.estsh.i3plus.pojo.aps.common.BeanRelation;
import cn.estsh.i3plus.pojo.aps.holders.ERuleGroup;
import cn.estsh.i3plus.pojo.aps.model.RuleDetailModel;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
@ -44,6 +46,9 @@ public class RuleGroup extends BaseAPS {
@ApiParam(value ="当前执行的规则名称")
private transient String curDetailName;
@FieldAnnotation(property = false)
private transient RuleDetailModel model;
@JsonBackReference
public List<RuleDetail> getDetails() { return BeanRelation.list(this, ERuleGroup.Details); }
}

@ -63,6 +63,11 @@ public class StandOperation extends BaseAPS {
@ApiParam(value ="分割余数")
private Double remainder;
@Column(name="MIN_SPACE_TIME")
@ApiParam(value ="最小时间间隔")
@FieldAnnotation(editType = ApsEnumUtil.EDIT_TYPE.DURATION)
private String minSpaceTime;
@Column(name="COMB_TYPE")
@ApiParam(value ="生产组合方式")
@FieldAnnotation(defaultValue = "MAX_ALL_RESOURCE")

@ -5,6 +5,7 @@ import cn.estsh.i3plus.pojo.aps.annotation.MainKey;
import cn.estsh.i3plus.pojo.aps.common.BaseAPS;
import cn.estsh.i3plus.pojo.aps.common.BeanRelation;
import cn.estsh.i3plus.pojo.aps.holders.EWork;
import cn.estsh.i3plus.pojo.aps.holders.EWorkPlan;
import cn.estsh.i3plus.pojo.aps.tool.APSDoubleTool;
import cn.estsh.i3plus.pojo.aps.validator.InsertGroup;
import cn.estsh.i3plus.pojo.aps.validator.UpdateGroup;
@ -18,6 +19,7 @@ import lombok.EqualsAndHashCode;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
@ -164,6 +166,9 @@ public class Work extends BaseAPS {
@ApiParam(value ="动态拆分工作ID")
private Long originWorkId;
@ApiParam(value ="工作排序顺序")
private Integer workSeqNumber;
// 排程时,找插入位置的评估值
private transient double evaluateValue = 0;
@ -264,4 +269,7 @@ public class Work extends BaseAPS {
this.originWorkId = work != null ? work.getId() : 0;
BeanRelation.set(this, EWork.OriginWork, work);
}
@JsonBackReference
public List<InterMediateResult> getEvaluateResult() { return BeanRelation.list(this, EWork.EvaluateResult); }
}

@ -19,6 +19,7 @@ import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
/**
* @Description :
@ -119,6 +120,12 @@ public class WorkPlan extends BaseAPS {
@ApiParam(value ="打印时间")
private Date printTime;
@ApiParam(value ="生产结束时间")
@FieldAnnotation(display = false)
@Transient
@RippleAnnotation(dependence = {"PostPlan.resProduceEnd"}, method = "calcReverse")
private Date resProduceEnd;
@Transient
@FieldAnnotation(property = false)
private boolean hasCominbed = false;

@ -25,12 +25,12 @@ public class DateDuration {
public static final double PRECISION = 0.00001;
private String value;
private int time = 0;
private long time = 0;
private double rate = 0.0;
private boolean bValid = false;
private int unit = 0;
public DateDuration(int value) {
public DateDuration(long value) {
this.time = value;
}
@ -65,7 +65,7 @@ public class DateDuration {
* 0
* @return
*/
public int getTime() {
public long getTime() {
return this.time;
}
@ -73,7 +73,7 @@ public class DateDuration {
*
* @return
*/
public void setTime(int time) {
public void setTime(long time) {
this.time = time;
}
@ -144,7 +144,7 @@ public class DateDuration {
* @param amount
* @return
*/
public int getTime(double amount) {
public long getTime(double amount) {
if (amount < PRECISION)
return getTime();

@ -15,4 +15,5 @@ public enum EWork {
SpecifyResource, // 指定资源
DynSplitWorks, // 动态拆分后的工作
OriginWork, // 动态拆分前的工作
EvaluateResult, // 资源评估结果
}

@ -0,0 +1,34 @@
package cn.estsh.i3plus.pojo.aps.model;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@Data
public class RuleDetailModel {
@ApiParam(value ="主执行进度")
private Integer mainProcess = 0;
@ApiParam(value ="总规则数")
private Integer mainSize = 0;
@ApiParam(value ="当前执行进度")
private Integer curProcess = 0;
@ApiParam(value ="总行数")
private Integer totalSize = 0;
@ApiParam(value ="进度消息")
private String processMsg = "";
@ApiParam(value ="进度消息明细")
private String subMsg = "";
private Boolean finish = false;
@ApiParam(value ="异常消息")
private String exception = "";
public void addProcess() {
this.curProcess += 1;
}
}

@ -11,6 +11,7 @@ import lombok.Data;
**/
@Data
public class RuleGroupProgress {
private Integer mainProgress;
private String message;
private Integer progress;
}

@ -2,6 +2,6 @@ package cn.estsh.i3plus.pojo.aps.tool;
public class APSDoubleTool {
public static boolean isZero(Double value) {
return (value == null) || (value > -0.000001 && value < 0.000001);
return (value == null) || (value > -0.0000001 && value < 0.0000001);
}
}

@ -1,7 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<Class name="InterMediateResult">
<Relation field="Work" name="Work" type="MULTI_TO_ONE">
</Relation>
<Relation field="Resource" name="Resource" type="MULTI_TO_ONE">
</Relation>
<Relation field="Details" name="InterMediateDetail" reverse="Result" type="ONE_TO_MULTI" owner="true">

@ -22,4 +22,6 @@
</Relation>
<Relation field="DynSplitWorks" name="Work" reverse="OriginWork" type="ONE_TO_MULTI">
</Relation>
<Relation field="EvaluateResult" name="InterMediateResult" reverse="Work" type="ONE_TO_MULTI" owner="true">
</Relation>
</Class>

@ -444,6 +444,7 @@ public class ApsEnumUtil {
PRODUCE_TIME("PRODUCE_TIME", "生产时间"),
POST_SET_TIME("POST_SET_TIME", "后设置时间"),
WORK_WAIT_TIME("WORK_WAIT_TIME", "工作等待时间"),
WAIT_TIME_LIMIT("WAIT_TIME_LIMIT", "等待时间限制"),
RES_BALANCE("RES_BALANCE", "资源均衡度"),
SAME_MATERIAL("SAME_MATERIAL", "相同物料"),
SAME_ORDER("SAME_ORDER", "相同订单"),
@ -1291,7 +1292,9 @@ public class ApsEnumUtil {
public enum SANLUX_OPERATION_TYPE {
NORMAL("NORMAL", "正常工序"),
FOUR_SULFIDATION("FOUR_SULFIDATION", "四车间硫化"),
FOUR_TRAINBEARER("FOUR_TRAINBEARER", "四车间牵纱");
FOUR_TRAINBEARER("FOUR_TRAINBEARER", "四车间牵纱"),
FOUR_COATING("FOUR_COATING", "四车间覆胶"),
FOUR_WRAPPING("FOUR_WRAPPING", "四车间包布");
private String value;
private String description;

@ -2103,7 +2103,9 @@ public class MesEnumUtil {
MES_CONTROL_PLAN(650, "controlPlanExcelService", "控制计划导入"),
MES_HOLIDAY_VACATION(660, "holidayVacationExcelService", "节假日导入"),
MES_PENDING_REPORT_TYPE(670, "pendingReportTypeExcelService", "待处理报工类型导入"),
MES_FAILURE_MODE_PARTS(680, "failureModePartsExcelService", "失效模式零件导入");
MES_FAILURE_MODE_PARTS(680, "failureModePartsExcelService", "失效模式零件导入"),
MES_ELECTROTESTING_PRINT_DATA(690, "electrotestingPrintDataExcelService", "电检打印数据导入");
private int value;
private String service;
@ -5728,7 +5730,7 @@ public class MesEnumUtil {
*/
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum VALUE_TYPE {
MANUAL_ASSIGNMENT("10", "手工赋值"),
SPEL_EXPRESSION("20", "spel表达式"),
FUNCTION_ASSIGNMENT("30", "函数赋值"),

@ -349,10 +349,11 @@ public class MesPcnEnumUtil {
OPC_LINK_REALM(130, "OPC_LINK", "OPC_LINK_REALM"),
OPC_LINK_CALLBACK(140, "OPC_LINK", "OPC_LINK_CALLBACK"),
SUPPLY_SWITCH(150, "SUPPLY_SWITCH", ""),
PCN_LOGIN(160, "PCN_LOGIN", ""),
PCN_MENU(170, "PCN_MENU", ""),
PCN_MODULE(180, "PCN_MODULE", ""),
PCN_LOGOUT(190, "PCN_LOGOUT", ""),
PCN_LOGIN(160, "PCN_LOGIN", "PCN登陆"),
PCN_MENU(170, "PCN_MENU", "PCN菜单"),
PCN_MODULE(180, "PCN_MODULE", "PCN模块"),
PCN_LOGOUT(190, "PCN_LOGOUT", "PCN登出"),
PCN_UPDATE_PASSWORD(195, "PCN_UPDATE_PASSWORD", "PCN修改密码"),
UPDATE_LOCALE_RES(200, "SYNC_DATA_URL", "LOCALE_RES_URL"),
PCN_SYS_LOCALE_LANGUAGE(210, "PCN_SYS_LOCALE_LANGUAGE", ""),
PCN_SYS_ALL_LANGUAGE_URL(220, "PCN_SYS_ALL_LANGUAGE_URL", "PCN_SYS_ALL_LANGUAGE_URL"),

@ -1838,7 +1838,9 @@ public class WmsEnumUtil {
FINISH(20, "处理中"),
FAIL(30, "已完成"),
CLOSE(40, "已关闭"),
CANCEL(50, "已取消");
CANCEL(50, "已取消"),
REJECT(60, "全部退货"),
SPECIAL(70, "全部特采");
private int value;
private String description;
@ -1873,7 +1875,8 @@ public class WmsEnumUtil {
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum QC_ITEM_STATUS {
NORMAL(10, "正常"),
CANCELLATION(20, "已处理");
CANCELLATION(20, "已处理"),
SPECIAL(30, "部分特采");
private int value;
private String description;
@ -3399,7 +3402,8 @@ public class WmsEnumUtil {
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum WMS_PART_TYPE {
RAW_MATERIAL(10, "原材料"), PARTIALLY_PREPARED_PRODUCTS(20, "半成品"), FINISHED_PRODUCT(30, "成品"), CONTAINER_PRODUCT(40, "容器"),
UTENSIL(50, "器具");
UTENSIL(50, "器具"),
TRADE_PRODUCT(60,"贸易品");
private int value;
private String description;

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>i3plus-pojo</artifactId>
<groupId>i3plus.pojo</groupId>
<version>1.0-TEST-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>i3plus-pojo-bsp</artifactId>
<dependencies>
<dependency>
<groupId>i3plus.pojo</groupId>
<artifactId>i3plus-pojo-base</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
</dependencies>
<profiles>
<profile>
<id>dev</id>
<properties>
<profileActive>DEV</profileActive>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profileActive>TEST</profileActive>
</properties>
</profile>
<profile>
<id>docker</id>
<properties>
<profileActive>DOCKER</profileActive>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<profileActive>PROD</profileActive>
</properties>
</profile>
</profiles>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
</build>
</project>

@ -0,0 +1,22 @@
package cn.estsh.i3plus.pojo.bsp.client.bean.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import java.io.Serializable;
/**
* @author ns
* @create 2021/6/19 0019 16:46
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class LogParam implements Serializable {
private long logDateTime;
private long logId;
private int fromLineNum;
}

@ -0,0 +1,28 @@
package cn.estsh.i3plus.pojo.bsp.client.bean.model;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.ToString;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.List;
/**
* @author ns
* @create 2021/5/24 0024 11:08
*/
@Getter
@ToString
@AllArgsConstructor
@Api("方法信息")
public class MethodDescription implements Serializable {
@ApiParam("方法的代理对象")
private final Method method;
@ApiParam("方法参数的长度")
private final int ParamLength;
@ApiParam("方法参数的详细信息")
private final List<ParamInfo> paramInfoList;
}

@ -0,0 +1,34 @@
package cn.estsh.i3plus.pojo.bsp.client.bean.model;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Map;
/**
* @author ns
* @create 2021/5/26 0026 13:24
*
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Api("方法执行所需要的参数")
public class MethodExcuteParam implements Serializable {
@ApiParam("调用方法的key")
private String methodHandlerKey;
@ApiParam(value = "调用方法的参数map", allowEmptyValue = true)
private Map<String, Object> jsonParamMap;
@ApiParam(value = "调用方法参数列表", allowEmptyValue = true)
private Object[] jsonParamArray;
@ApiParam("日志id")
private Integer logId;
@ApiParam("日志时间")
private String logDateTimeParam;
@ApiParam("调用的超时时间")
private Integer executorTimeout;
}

@ -0,0 +1,24 @@
package cn.estsh.i3plus.pojo.bsp.client.bean.model;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author ns
* @create 2021/5/26 0026 17:41
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Api("参数的信息")
public class ParamInfo {
@ApiParam("参数名")
private String name;
@ApiParam("参数类型名")
private String typeName;
@ApiParam("参数类信息")
private Class clzz;
}

@ -0,0 +1,29 @@
package cn.estsh.i3plus.pojo.bsp.client.bean.po;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* @author ns
* @create 2021/6/18 0018 10:53
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
@Api("查询方法日志的结果")
public class LogResult {
@ApiParam("日志开始行号")
private int fromLineNum;
@ApiParam("日志结束行号")
private int toLineNum;
@ApiParam("日志内容")
private String logContent;
@ApiParam("日志是否结束")
private boolean isEnd;
}

@ -0,0 +1,40 @@
package cn.estsh.i3plus.pojo.bsp.client.bean.po;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author ns
* @create 2021/5/26 0026 14:39
*
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Api("方法注册的参数列表")
public class MethodRegistryParam implements Serializable {
@ApiParam("方法名")
private String methodName;
@ApiParam("方法所在bean的名字")
private String beanName;
@ApiParam("方法调用所需要的key")
private String methodHandlerKey;
@ApiParam("方法参数列表")
private List<ParamDescription> parameterList;
@ApiParam("方法的版本")
private String version;
@ApiParam("方法影响了那些表")
private String[] affectTableClassName;
@ApiParam("方法的处理逻辑")
private String[] systemProcess;
@ApiParam("方法参数的验证逻辑")
private String[] validation;
}

@ -0,0 +1,44 @@
package cn.estsh.i3plus.pojo.bsp.client.bean.po;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Map;
/**
* @author ns
* @create 2021/5/24 0024 11:08
*
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Api("参数的注册信息")
public class ParamDescription implements Serializable {
@ApiParam("参数名")
private String name;
@ApiParam(value = "参数类型",defaultValue ="1" ,allowableValues = "0 或者 1")
private Integer type; //出参还是入参
@ApiParam("参数类型名")
private String typeName; //类型
//默认值
@ApiParam("参数默认值")
private String defaultValue;
//允许的值
@ApiParam("参数可选值")
private String[] allowableValues;
//是否必填
@ApiParam("参数是否必填")
private Boolean required;
//例子
@ApiParam("参数的例子")
private String example;
//是否可以为空
@ApiParam("参数是否可以为空")
private Boolean allowEmptyValue;
}

@ -0,0 +1,28 @@
package cn.estsh.i3plus.pojo.bsp.client.bean.po;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author ns
* @create 2021/5/26 0026 14:33
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Api("执行器注册的信息")
public class RegistryParam implements Serializable {
@ApiParam("执行器的名称")
private String appname;
@ApiParam("执行器的地址")
private String address;
@ApiParam("执行器注册的方法信息")
private List<MethodRegistryParam> methodRegistryParamList;
}

@ -0,0 +1,98 @@
package cn.estsh.i3plus.pojo.bsp.common;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/17 13:40
* @Modify:
**/
public class GsonTool {
private static Gson gson = null;
static {
gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
}
/**
* Object json
*
* @param src
* @return String
*/
public static String toJson(Object src) {
return gson.toJson(src);
}
/**
* json clsObject
*
* @param json
* @param classOfT
* @return
*/
public static <T> T fromJson(String json, Class<T> classOfT) {
return gson.fromJson(json, classOfT);
}
/**
* json rawClass<classOfT> Object
*
* @param json
* @param classOfT
* @param argClassOfT
* @return
*/
public static <T> T fromJson(String json, Class<T> classOfT, Class argClassOfT) {
Type type = new ParameterizedType4ReturnT(classOfT, new Class[]{argClassOfT});
return gson.fromJson(json, type);
}
public static class ParameterizedType4ReturnT implements ParameterizedType {
private final Class raw;
private final Type[] args;
public ParameterizedType4ReturnT(Class raw, Type[] args) {
this.raw = raw;
this.args = args != null ? args : new Type[0];
}
@Override
public Type[] getActualTypeArguments() {
return args;
}
@Override
public Type getRawType() {
return raw;
}
@Override
public Type getOwnerType() {
return null;
}
}
/**
* json clslist
*
* @param json
* @param classOfT
* @return
*/
public static <T> List<T> fromJsonList(String json, Class<T> classOfT) {
return gson.fromJson(
json,
new TypeToken<List<T>>() {
}.getType()
);
}
}

@ -0,0 +1,147 @@
package cn.estsh.i3plus.pojo.bsp.common;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.net.ssl.*;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/17 13:37
* @Modify:
**/
public class HttpUtils {
private static Logger logger = LoggerFactory.getLogger(HttpUtils.class);
// trust-https start
private static void trustAllHosts(HttpsURLConnection connection) {
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
SSLSocketFactory newFactory = sc.getSocketFactory();
connection.setSSLSocketFactory(newFactory);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
connection.setHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
}
private static final TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[]{};
}
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
}};
// trust-https end
/**
* post
*
* @param url
* @param timeout
* @param requestObj
* @return
*/
public static ReturnT postBody(String url, int timeout, Object requestObj) {
HttpURLConnection connection = null;
BufferedReader bufferedReader = null;
try {
// connection
URL realUrl = new URL(url);
connection = (HttpURLConnection) realUrl.openConnection();
// trust-https
boolean useHttps = url.startsWith("https");
if (useHttps) {
HttpsURLConnection https = (HttpsURLConnection) connection;
trustAllHosts(https);
}
// connection setting
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setReadTimeout(timeout * 1000);
connection.setConnectTimeout(3 * 1000);
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
connection.setRequestProperty("Accept-Charset", "application/json;charset=UTF-8");
// do connection
connection.connect();
// write requestBody
if (requestObj != null) {
String requestBody = GsonTool.toJson(requestObj);
DataOutputStream dataOutputStream = new DataOutputStream(connection.getOutputStream());
dataOutputStream.write(requestBody.getBytes("UTF-8"));
dataOutputStream.flush();
dataOutputStream.close();
}
// valid StatusCode
int statusCode = connection.getResponseCode();
if (statusCode != 200) {
return new ReturnT<String>(ReturnT.FAIL_CODE, "rpc remoting fail, StatusCode(" + statusCode + ") invalid. for url : " + url);
}
// result
bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
StringBuilder result = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
result.append(line);
}
String resultJson = result.toString();
// parse returnT
try {
return GsonTool.fromJson(resultJson, ReturnT.class);
} catch (Exception e) {
logger.error("rpc remoting (url=" + url + ") response content invalid(" + resultJson + ").", e);
return new ReturnT<String>(ReturnT.FAIL_CODE, "rpc remoting (url=" + url + ") response content invalid(" + resultJson + ").");
}
} catch (Exception e) {
logger.error(e.getMessage(), e);
return new ReturnT<String>(ReturnT.FAIL_CODE, "rpc remoting error(" + e.getMessage() + "), for url : " + url);
} finally {
try {
if (bufferedReader != null) {
bufferedReader.close();
}
if (connection != null) {
connection.disconnect();
}
} catch (Exception e2) {
logger.error(e2.getMessage(), e2);
}
}
}
}

@ -0,0 +1,56 @@
package cn.estsh.i3plus.pojo.bsp.common;
import java.io.Serializable;
/**
* @author Castle
*/
public class ReturnT<T> implements Serializable {
public static final long serialVersionUID = 42L;
public static final int SUCCESS_CODE = 200;
public static final int FAIL_CODE = 500;
public static final ReturnT<String> SUCCESS = new ReturnT<String>(null);
public static final ReturnT<String> FAIL = new ReturnT<String>(FAIL_CODE, null);
private int code;
private String msg;
private T content;
public ReturnT(){}
public ReturnT(int code, String msg) {
this.code = code;
this.msg = msg;
}
public ReturnT(T content) {
this.code = SUCCESS_CODE;
this.content = content;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getContent() {
return content;
}
public void setContent(T content) {
this.content = content;
}
@Override
public String toString() {
return "ReturnT [code=" + code + ", msg=" + msg + ", content=" + content + "]";
}
}

@ -0,0 +1,29 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.model;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/21 10:40
* @Modify:
**/
@Data
@AllArgsConstructor
@Api("添加方法组")
public class MethodGroupModel {
@ApiParam("方法组的名称")
private String methodGroupName;
@ApiParam("方法组的描述")
private String description;
@ApiParam("方法组层级列表")
private List<MethodLevelModel> methodLevel;
}

@ -0,0 +1,28 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.model;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/21 10:50
* @Modify:
**/
@Data
@AllArgsConstructor
@Api("添加方法组层级")
public class MethodLevelModel {
@ApiParam("方法Id")
private Long methodId;
@ApiParam("方法层级")
private String level;
@ApiParam("参数列表")
List<MethodLevelParamModel> paramModels;
}

@ -0,0 +1,27 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.model;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.Map;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/21 11:18
* @Modify:
**/
@Data
@AllArgsConstructor
@Api("添加方法组层级参数")
public class MethodLevelParamModel {
@ApiParam("根据出参生成入参key = 层级 + methodId + 出参Name")
private String paramKey;
@ApiParam("对应本方法的入参名称")
private String paramValue;
@ApiParam("入参类型,用于校验数据类型")
private String type;
}

@ -0,0 +1,32 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.model;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/11 16:57
* @Modify:
**/
@Data
@AllArgsConstructor
@Api("注册/心跳")
public class RegistryMessageInfo {
@ApiParam("appName,根据appName分执行器组")
private String appName;
@ApiParam("执行器地址")
private String address;
@ApiParam("方法列表")
private List<RegistryMethodInfo> methodRegistryParamList;
}

@ -0,0 +1,51 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.model;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/15 9:33
* @Modify:
**/
@Data
@AllArgsConstructor
@Api("注册方法信息")
public class RegistryMethodInfo {
@ApiParam("方法名")
private String methodName;
@ApiParam("调用方法时的key")
private String methodHandlerKey;
@ApiParam("参数列表")
private List<RegistryMethodParamInfo> methodParamList;
/*-----------------------------------文档------------------------------------------------*/
@ApiParam("beanName")
private String beanName;
@ApiParam("方法版本号")
private String version;
@ApiParam("受影响的表名update/insert")
private List<String> affectTableClassName;
@ApiParam("系统要执行的逻辑")
private List<String> systemProcess;
/**
*
*/
@ApiParam("参数验证")
private List<String> validation;
}

@ -0,0 +1,30 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.model;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/15 9:35
* @Modify:
**/
@Data
@AllArgsConstructor
@Api("方法注册参数")
public class RegistryMethodParamInfo {
@ApiParam("参数名")
private String name;
@ApiParam("参数类型入参1出参0")
private Integer type;
@ApiParam("数据类型,基本数据类型")
private String typeName;
}

@ -0,0 +1,28 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.model;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Map;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/18 11:03
* @Modify:
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("远程调用方法参数")
public class RequestModel {
@ApiModelProperty("执行方法的key")
private String methodHandlerKey;
@ApiModelProperty("方法的入参")
private Map<String, Object> jsonParamMap;
}

@ -0,0 +1,52 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.po;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/16 13:21
* @Modify:
**/
@Entity
@Table(name = "EXECUTOR_GROUP_REGISTRY_INFO")
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("执行器组")
public class ExecutorGroupRegistryInfo extends BaseBean implements Serializable {
private static final long serialVersionUID = -3871002350228229604L;
@Column(name = "APP_NAME")
@ApiModelProperty("执行器组的applicationName")
private String appName;
@Column(name = "ADDRESS_STR")
@ApiModelProperty("注册地址字符串,地址用逗号间隔")
private String addressStr;
@Column(name = "TYPE",columnDefinition = "int default 0")
@ApiModelProperty("自动注册 0手动注册 1")
private String type;
@Column
@ApiModelProperty("执行器组路由策略,默认随机")
private String routeStrategy;
@Column(name = "UPDATE_TIME")
@ApiModelProperty("更新时间")
private Date updateTime;
}

@ -0,0 +1,43 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.po;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/16 13:33
* @Modify:
**/
@Entity
@Table(name = "EXECUTOR_REGISTRY_INFO")
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("执行器")
public class ExecutorRegistryInfo extends BaseBean implements Serializable {
private static final long serialVersionUID = -736085114778936163L;
@Column(name = "APP_NAME")
@ApiModelProperty("执行器application Name")
private String appName;
@Column(name = "ADDRESS")
@ApiModelProperty("执行器地址包含ip:port")
private String address;
@Column(name = "UPDATE_TIME")
@ApiModelProperty("最近一次心跳时间")
private Date updateTime;
}

@ -0,0 +1,57 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.po;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/16 13:43
* @Modify:
**/
@Entity
@Table(name = "EXECUTOR_REGISTRY_METHOD_DOC_INFO")
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("方法doc")
public class ExecutorRegistryMethodDocInfo extends BaseBean implements Serializable {
private static final long serialVersionUID = 2770821289940006535L;
@Column(name = "BEAN_NAME")
@ApiModelProperty("beanName")
private String beanName;
@Column(name = "VERSION")
@ApiModelProperty("方法版本")
private String version;
@Column(name = "AFFECT_TABLE_STR")
@ApiModelProperty("受影响的表名,逗号分割,原来为数组")
private String affectTableClassNameStr;
@Column(name = "SYSTEM_PROCESS_STR")
@ApiModelProperty("系统要执行的逻辑 逗号分割,原来为数组")
private String systemProcessStr;
/**
*
*/
@Column(name = "VALIDATION")
@ApiModelProperty("参数验证 逗号分割,原来为数组")
private String validation;
@Column(name = "METHOD_ID")
@ApiModelProperty("方法ID")
private Long methodId;
//todo 缺少参数信息
}

@ -0,0 +1,57 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.po;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/16 13:39
* @Modify:
**/
@Table(name = "EXECUTOR_REGISTRY_METHOD_INFO")
@Entity
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("方法注册信息")
public class ExecutorRegistryMethodInfo extends BaseBean implements Serializable {
private static final long serialVersionUID = 2096630767822598366L;
@Column(name = "METHOD_NAME")
@ApiModelProperty("方法名")
private String methodName;
@Column(name = "METHOD_HANDLER_KEY")
@ApiModelProperty("调用方法需要的key")
private String methodHandlerKey;
@Column(name = "BEAN_NAME")
@ApiModelProperty("beanName")
private String beanName;
@Column(name = "VERSION")
@ApiModelProperty("方法的版本号")
private String version;
@Column(name = "APP_NAME")
@ApiModelProperty("所属执行器的appName")
private String appName;
@Transient
@ApiModelProperty("方法参数列表")
private List<ExecutorRegistryParamInfo> paramInfos;
}

@ -0,0 +1,48 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.po;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/16 13:36
* @Modify:
**/
@Entity
@Table(name = "EXECUTOR_REGISTRY_PARAM_INFO")
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("方法注册参数信息")
public class ExecutorRegistryParamInfo extends BaseBean implements Serializable {
private static final long serialVersionUID = 7346454749822492424L;
@Column(name = "NAME")
@ApiModelProperty("参数名")
private String name;
@Column(name = "TYPE")
@ApiModelProperty("入参 1 ,出参 0")
private Integer type;
@Column(name = "TYPE_NAME")
@ApiModelProperty("数据类型,基本数据类型")
private String typeName;
@Column(name = "METHOD_ID")
@ApiModelProperty("所属方法的ID")
private Long methodId;
}

@ -0,0 +1,42 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.po;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/18 14:31
* @Modify:
**/
@Entity
@Table(name = "METHOD_GROUP_INFO")
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("方法组合")
public class MethodGroupInfo extends BaseBean implements Serializable {
private static final long serialVersionUID = -7868208264526298210L;
@Column(name = "NAME")
@ApiModelProperty("方法组名称")
private String name;
@Column(name = "DESCRIPTION")
@ApiModelProperty("方法组描述")
private String description;
}

@ -0,0 +1,49 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.po;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.List;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/18 14:46
* @Modify:
**/
@Entity
@Table(name = "METHOD_LEVEL_INFO")
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("方法层级")
public class MethodLevelInfo extends BaseBean implements Serializable {
private static final long serialVersionUID = -6341443254774985571L;
@Column(name = "METHOD_GROUP_ID")
@ApiModelProperty("所属方法组的ID")
private Long methodGroupId;
@Column(name = "LEVEL")
@ApiModelProperty("执行层级,相同层级可以并行执行")
private String level;
@Column(name = "METHOD_ID")
@ApiModelProperty("当前层级的方法ID")
private Long methodId;
@Transient
@ApiModelProperty("方法的参数关系列表")
private List<MethodLevelParamInfo> paramInfoList;
}

@ -0,0 +1,66 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.po;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/18 15:08
* @Modify:
**/
@Entity
@Table(name = "METHOD_LEVEL_PARAM_INFO")
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel("方法层级参数关系")
public class MethodLevelParamInfo extends BaseBean implements Serializable {
private static final long serialVersionUID = 5700666543596399984L;
/**
* + + Id
*/
@Column(name = "PARAM_KEY")
@ApiModelProperty("参数来源 层级 + 参数名 + 方法Id")
private String paramKey;
/**
*
*/
@Column(name = "METHOD_PARAM_NAME")
@ApiModelProperty("对应当前方法的入参名称")
private String methodParamName;
/**
* methodId
*/
@Column(name = "METHOD_ID")
@ApiModelProperty("对应的当前层级的方法Id")
private Long methodId;
@Column(name = "METHOD_GROUP_ID")
@ApiModelProperty("对应方法组的Id")
private Long methodGroupId;
/**
*
*/
@Column(name = "require")
@ApiModelProperty("原有方法的入参是否必须,做调用前验证")
private Integer require;
/**
*
*/
@Column(name = "type")
@ApiModelProperty("参数类型验证")
private String type;
}

@ -0,0 +1,25 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.screen;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.Map;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/21 11:42
* @Modify:
**/
@Data
@AllArgsConstructor
@Api("调用方法组")
public class InvokeMethodGroupModel {
@ApiParam("方法组Id")
private Long methodGroupId;
@ApiParam("方法组入参")
private Map<String,Object> paramMap;
}

@ -0,0 +1,30 @@
package cn.estsh.i3plus.pojo.bsp.server.bean.screen;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Map;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/21 9:44
* @Modify:
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Api("通用界面单独调用方法")
public class InvokeMethodModel {
@ApiParam("调用方法的Id,或者方法组Id")
private Long id;
@ApiParam("方法的入参map")
private Map<String,Object> params;
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.bsp.server.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.bsp.server.bean.po.ExecutorGroupRegistryInfo;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/16 14:49
* @Modify:
**/
@Repository
public interface ExecutorGroupRegistryInfoRepository extends BaseRepository<ExecutorGroupRegistryInfo,Long> {
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.bsp.server.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.bsp.server.bean.po.ExecutorRegistryInfo;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/16 14:51
* @Modify:
**/
@Repository
public interface ExecutorRegistryInfoRepository extends BaseRepository<ExecutorRegistryInfo,Long> {
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.bsp.server.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.bsp.server.bean.po.ExecutorRegistryMethodDocInfo;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/16 14:53
* @Modify:
**/
@Repository
public interface ExecutorRegistryMethodDocInfoRepository extends BaseRepository<ExecutorRegistryMethodDocInfo,Long> {
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.bsp.server.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.bsp.server.bean.po.ExecutorRegistryMethodInfo;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/16 14:55
* @Modify:
**/
@Repository
public interface ExecutorRegistryMethodInfoRepository extends BaseRepository<ExecutorRegistryMethodInfo,Long> {
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.bsp.server.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.bsp.server.bean.po.ExecutorRegistryParamInfo;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/16 14:58
* @Modify:
**/
@Repository
public interface ExecutorRegistryParamInfoRepository extends BaseRepository<ExecutorRegistryParamInfo,Long> {
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.bsp.server.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.bsp.server.bean.po.MethodGroupInfo;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/21 10:25
* @Modify:
**/
@Repository
public interface MethodGroupInfoRepository extends BaseRepository<MethodGroupInfo,Long> {
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.bsp.server.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.bsp.server.bean.po.MethodLevelInfo;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/21 10:26
* @Modify:
**/
@Repository
public interface MethodLevelInfoRepository extends BaseRepository<MethodLevelInfo,Long> {
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.bsp.server.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.bsp.server.bean.po.MethodLevelParamInfo;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : Castle
* @CreateDate : 2021/6/21 10:27
* @Modify:
**/
@Repository
public interface MethodLevelParamInfoRepository extends BaseRepository<MethodLevelParamInfo,Long> {
}

@ -13,6 +13,7 @@
<artifactId>i3plus-pojo-form</artifactId>
<packaging>jar</packaging>
<dependencies>
<dependency>

@ -34,10 +34,9 @@ public abstract class BaseMdmBean extends BaseBean {
public static Integer isMdmMaster = CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue();
@Column(name = "MDM_VERSION")
@ApiParam("mdm数据版本")
@ApiParam("当前版本")
@JsonSerialize(using = ToStringSerializer.class)
@AnnoOutputColumn(hidden = true)
private Long mdmVersion;
public Long mdmVersion;
public long getMdmVersionVal() {
return mdmVersion == null ? 0 : mdmVersion;

@ -24,7 +24,7 @@ import javax.persistence.Transient;
@ApiModel("MDM业务基础bean")
public class BaseMdmBusiExtdBean extends BaseMdmBean {
private static final long serialVersionUID = 4267453020130810967L;
private static final long serialVersionUID = 4267453020130811234L;
@Transient
@ApiParam("是否主数据")

@ -0,0 +1,57 @@
package cn.estsh.i3plus.pojo.mdm.bean.base;
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 : pantianhu
* @CreateDate : 2021-05-26 17:04
* @Modify:
**/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Table(name="MDM_FIELD")
@ApiModel("表字段")
public class MdmField extends BaseMdmBean {
@Column(name="TABLE_NAME")
@ApiParam(value ="表名")
private String tableName;
@Column(name="TABLE_DESCRIPTION")
@ApiParam(value ="表描述")
private String tableDescription;
@Column(name="FIELD_NAME")
@ApiParam(value ="字段名称")
private String fieldName;
@Column(name="FIELD_DESCRIPTION")
@ApiParam(value ="字段描述")
private String fieldDescription;
@Column(name="SERVICE_NAME")
@ApiParam(value ="服务名称")
private String serviceName;
@Column(name="SERVICE_CODE")
@ApiParam(value ="服务代码")
private String serviceCode;
@Column(name="IS_SELECT")
@ApiParam(value ="是否选中")
private Integer isSelect;
}

@ -0,0 +1,41 @@
package cn.estsh.i3plus.pojo.mdm.bean.base;
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 : pantianhu
* @CreateDate : 2021-05-29 15:17
* @Modify:
**/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Table(name="MDM_MAIL")
@ApiModel("邮件配置")
public class MdmMail extends BaseMdmBean{
@Column(name = "MESSAGE_SENDER_NAME_RDD")
@ApiParam(value = "发送者名称")
private String messageSenderNameRdd;
@Column(name = "MESSAGE_RECEIVERS_NAME_RDD")
@ApiParam(value = "接受者名称")
private String messageReceiversNameRdd;
@Column(name = "IS_SEND")
@ApiParam(value = "是否发送")
private Integer isSend;
}

@ -3,10 +3,17 @@ package cn.estsh.i3plus.pojo.mdm.bean.base;
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 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 org.hibernate.annotations.GenericGenerator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.io.Serializable;
import java.util.List;
@ -19,7 +26,7 @@ import java.util.List;
**/
@Data
@ApiModel("数据中心同步数据")
public class MdmSyncData implements Serializable {
public class MdmSyncData<T> implements Serializable {
private static final long serialVersionUID = -1642626000860074060L;
@ -93,4 +100,8 @@ public class MdmSyncData implements Serializable {
@ApiParam("同步失败信息")
private String syncFailMessage;
@ApiParam("同步数据值")
private List<T> syncData;
}

@ -8,10 +8,7 @@ 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 javax.persistence.*;
import java.util.ArrayList;
import java.util.List;
@ -41,6 +38,31 @@ public class MdmDataSubscribe extends BaseBean {
@ApiParam("主数据名称")
private String mdmName;
@Column(name = "MDM_SUBSCRIBE")
@ApiParam("订阅对象")
private String mdmSubscribe;
@Column(name = "MDM_SUBSCRIBE_TYPE")
@ApiParam("订阅类型")
private Integer mdmSubscribeType;
@Column(name = "MDM_SUBSCRIBE_PERMISSIONS")
@ApiParam("订阅权限")
private String mdmSubscribePermissions;
@Column(name = "MDM_SUBSCRIBE_FIELD")
@ApiParam("订阅字段")
@Lob
private String mdmSubscribeField;
@Transient
@ApiParam("订阅字段保存List")
private List<String> mdmSubscribeFields;
@Column(name = "INTERNAL_APP_NUM")
@ApiParam("内部订阅应用数量")
private Integer internalAppNum;

@ -31,19 +31,32 @@ public class MdmExternalApp extends BaseBean {
private static final long serialVersionUID = -5344361274535836969L;
@Column(name = "APP_NAME")
@ApiParam("应用名称")
@ApiParam("服务名称")
private String appName;
@Column(name = "APP_CODE")
@ApiParam("应用代码")
@ApiParam("服务代码")
private String appCode;
@Column(name = "CALL_TOKEN")
@ApiParam("调用令牌")
private String callToken;
@Column(name = "APP_BRIEF")
@ApiParam("服务简介")
private String appBrief;
@Column(name = "CALLBACK_URL")
@ApiParam("回调地址")
@ApiParam("回调接口")
private String callbackUrl;
@Column(name = "EMAIL")
@ApiParam("通知邮箱")
private String email;
@Column(name = "OPERATE_TYPE")
@ApiParam("操作类型")
private String operateType;
}

@ -0,0 +1,111 @@
package cn.estsh.i3plus.pojo.mdm.bean.master;
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 cn.estsh.i3plus.pojo.mdm.bean.base.BaseMdmBean;
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.List;
/**
* @Description : 齿
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-05-12 18:09
* @Modify:
**/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Table(name="MDM_SYNC_DATA_THROUGH")
@ApiModel("处理以通过中心同步数据")
public class MdmSyncDataThrough extends BaseMdmBean {
private static final long serialVersionUID = -1642626000861174060L;
@ApiParam("同步数据类型")
@AnnoOutputColumn(refClass = MdmEnumUtil.MDM_SYNC_TYPE.class)
private Integer syncType;
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);
}
@ApiParam("同步模块")
@AnnoOutputColumn(refClass = MdmEnumUtil.MDM_SYNC_APP_TYPE.class)
private Integer syncAppType;
public int getSyncAppTypeVal() {
return syncAppType == null ? MdmEnumUtil.MDM_SYNC_APP_TYPE.INTERNAL.getValue() : syncAppType;
}
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;
public int getIsMasterDataVal() {
return isMasterData == null ? CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() : isMasterData;
}
public String getIsMasterDataTxt() {
return isMasterData == null ? "无" : CommonEnumUtil.TRUE_OR_FALSE.valueOfDescription(isMasterData);
}
@ApiParam("同步数据class")
private String syncDataClass;
public String getSyncDataClassSimpleName() {
if (syncDataClass == null) {
return null;
}
return syncDataClass.trim().substring(syncDataClass.trim().lastIndexOf(".") + 1);
}
@ApiParam("同步数据id")
@AnnoOutputColumn(hidden = true)
private String syncDataId;
@ApiParam("同步数据用户名")
private String syncDateUserName;
@ApiParam("同步时间")
private String syncDateTime;
@ApiParam("同步失败键")
private String syncFailKey;
@ApiParam("同步失败时间")
private String syncFailDateTime;
@ApiParam("同步失败信息")
private String syncFailMessage;
}

@ -21,7 +21,7 @@ public class MdmHqlPack {
public static DdlPackBean getMdmPackBean(BaseMdmBean mdmBean) {
DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mdmBean);
DdlPreparedPack.getNumEqualPack(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue(), "isMdmPublished", ddlPackBean);
DdlPreparedPack.getNumEqualPack(mdmBean.getIsMdmPublished(), "isMdmPublished", ddlPackBean);
DdlPreparedPack.getNumEqualPack(mdmBean.isValid, "isValid", ddlPackBean);
return ddlPackBean;
}

@ -1,9 +1,14 @@
package cn.estsh.i3plus.pojo.mdm.repository.busi;
import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.mdm.bean.busi.MdmExternalApp;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Set;
/**
* @Description :
* @Reference :
@ -13,4 +18,5 @@ import org.springframework.stereotype.Repository;
**/
@Repository
public interface MdmExternalAppRepository extends BaseRepository<MdmExternalApp, Long> {
}

@ -0,0 +1,17 @@
package cn.estsh.i3plus.pojo.mdm.repository.master;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.mdm.bean.base.MdmMail;
import cn.estsh.i3plus.pojo.mdm.bean.master.MdmGear;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-05-15 16:26
* @Modify:
**/
@Repository
public interface MdmMailRepository extends BaseRepository<MdmMail, Long> {
}

@ -0,0 +1,17 @@
package cn.estsh.i3plus.pojo.mdm.repository.master;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.mdm.bean.master.MdmGear;
import cn.estsh.i3plus.pojo.mdm.bean.master.MdmSyncDataThrough;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2020-05-15 16:26
* @Modify:
**/
@Repository
public interface MdmSyncDataThroughRepository extends BaseRepository<MdmSyncDataThrough, Long> {
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.mdm.repository.master;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.mdm.bean.base.MdmField;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : pantianhu
* @CreateDate : 2021-05-26 20:33
* @Modify:
**/
@Repository
public interface MdmfieldRepository extends BaseRepository<MdmField, Long> {
}

@ -0,0 +1,59 @@
package cn.estsh.i3plus.pojo.mes.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.*;
import java.io.Serializable;
/**
* @Description :
* @Reference :
* @Author : dominic
* @CreateDate : 2021/6/16 14:15
* @Modify:
**/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "MES_ELECTROTESTING_PRINT_DATA")
@Api("MES_电检打印数据")
public class MesElectrotestingPrintData extends BaseBean implements Serializable {
private static final long serialVersionUID = 5179928838368157923L;
@Column(name = "COLOUR_CODE")
@ApiParam("颜色代码")
private String colourCode;
@Column(name = "VARIANT")
@ApiParam("型号")
private String variant;
@Column(name = "PRODUCTION_NUMBER")
@ApiParam("产品号")
private String productionNumber;
@Column(name = "COMMISSION_NUMBER")
@ApiParam("佣金号")
private String commissionNumber;
@Column(name = "QAD_NO")
@ApiParam("位置号")
private String qadNo;
@Column(name = "PART_NO")
@ApiParam("物料号")
private String partNo;
@Column(name = "PRINT_STATUS")
@ApiParam("打印状态")
private Integer printStatus = 10;
}

@ -40,6 +40,10 @@ public class MesLockRecord extends BaseBean implements Serializable {
@ApiParam("工位代码")
private String workCellCode;
@Column(name = "WORK_CELL_NAME")
@ApiParam("工位名称")
private String workCellName;
@Column(name = "PROCESS_CODE")
@ApiParam("工序代码")
private String processCode;

@ -5,17 +5,14 @@ import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.*;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.ColumnDefault;
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;
/**
@ -31,7 +28,9 @@ import java.io.Serializable;
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "MES_PART")
@Table(name = "MES_PART", indexes = {
@Index(columnList = "PART_NO")
})
@Api("物料信息")
public class MesPart extends BaseBean implements Serializable {
private static final long serialVersionUID = -7731182105899332283L;

@ -29,6 +29,10 @@ public class MesPartCarModel extends BaseBean implements Serializable {
private static final long serialVersionUID = -4039513102671811231L;
@Column(name = "WORK_CENTER_CODE")
@ApiParam("产线代码")
private String workCenterCode;
@Column(name = "PART_NO")
@ApiParam("零件号")
private String partNo;

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.mes.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.mes.bean.MesElectrotestingPrintData;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : dominic
* @CreateDate : 2021/6/16 14:27
* @Modify:
**/
@Repository
public interface MesElectrotestingPrintDataRepository extends BaseRepository<MesElectrotestingPrintData, Long> {
}

@ -0,0 +1,53 @@
package cn.estsh.i3plus.pojo.platform.bean;
import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
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.Index;
import javax.persistence.Table;
/**
* @Description :
* @Reference :
* @Author : wei.peng
* @Date : 2018-10-22 16:58:42.856
* @Modify :
**/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Table(name = "SYS_LOG_ROLE_CHANGE", indexes = {
@Index(columnList = "CREATE_DATE_TIME")
})
@ApiModel(value = "用户角色更新记录表", description = "用户角色更新记录表")
public class SysLogRoleChange extends BaseBean {
private static final long serialVersionUID = 4665598896654312569L;
@Column(name = "USER_ID")
@ApiModelProperty(value = "用户ID", access = "用户ID")
@AnnoOutputColumn(hidden = true)
private Long userId;
@Column(name = "USER_NAME")
@ApiModelProperty(value = "用户名", access = "用户名")
private String userName;
@Column(name = "PREVIOUS_ROLES")
@ApiModelProperty(value = "之前的角色", access = "之前的角色")
private String previousRoles;
@Column(name = "CURRENT_ROLES")
@ApiModelProperty(value = "当前的角色", access = "当前的角色")
private String currentRoles;
}

@ -1,6 +1,7 @@
package cn.estsh.i3plus.pojo.platform.bean;
import cn.estsh.i3plus.pojo.base.annotation.AnnoOutputColumn;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
@ -12,7 +13,12 @@ import lombok.EqualsAndHashCode;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Index;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Map;
/**
@ -27,75 +33,87 @@ import java.util.Map;
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Table(name="SYS_POJO_VERSION",indexes = {
@Index(name="index_sys_pojo_version_ref_id",columnList = "REF_ID"),
@Index(name="index_sys_pojo_version_ref_class",columnList = "REF_CLASS"),
@Table(name = "SYS_POJO_VERSION", indexes = {
@Index(name = "index_sys_pojo_version_ref_id", columnList = "REF_ID"),
@Index(name = "index_sys_pojo_version_ref_class", columnList = "REF_CLASS"),
})
@Api(value="对象历史")
@Api(value = "对象历史")
public class SysPojoVersion extends BaseBean {
private static final long serialVersionUID = -2265406135818649545L;
@Column(name="SOFT_TYPE")
@ApiParam(value ="产品类型")
@Column(name = "SOFT_TYPE")
@ApiParam(value = "产品类型")
@AnnoOutputColumn(refClass = CommonEnumUtil.SOFT_TYPE.class, refForeignKey = "value", value = "description")
private Integer softType;
public String getSoftTypeTxt() {
return softType == null ? null : CommonEnumUtil.SOFT_TYPE.valueOfDescription(softType);
}
@Column(name="PLAN_ID")
@ApiParam(value ="对象计划id" ,example = "-1")
@Column(name = "PLAN_ID")
@ApiParam(value = "对象计划id", example = "-1")
@JsonSerialize(using = ToStringSerializer.class)
private Long planId;
@Column(name="REF_ID")
@ApiParam(value ="对象id" ,example = "-1")
@Column(name = "REF_ID")
@ApiParam(value = "对象id", example = "-1")
@JsonSerialize(using = ToStringSerializer.class)
private Long refId;
@Column(name="REF_CLASS")
@ApiParam(value ="记录对象")
@Column(name = "REF_CLASS")
@ApiParam(value = "记录对象")
@AnnoOutputColumn(hidden = true)
private String refClass;
@Column(name="VERSION_NO")
@ApiParam(value ="记录对象版本号")
@Column(name = "VERSION_NO")
@ApiParam(value = "记录对象版本号")
private Integer versionNo = 0;
@Column(name="operateType")
@ApiParam(value ="操作类型")
@Column(name = "operateType")
@ApiParam(value = "操作类型")
@AnnoOutputColumn(refClass = CommonEnumUtil.DAO_OPERATE_TYPE.class, refForeignKey = "value", value = "description")
private Integer operateType;
public String getOperateTypeTxt() {
return operateType == null ? null : CommonEnumUtil.DAO_OPERATE_TYPE.valueOf(operateType);
}
@Column(name="VERSION_METHOD_NAME")
@ApiParam(value ="操作方法名称")
@Column(name = "VERSION_METHOD_NAME")
@ApiParam(value = "操作方法名称")
private String versionMethodName;
@Column(name="POJO_DETAIL_ID")
@ApiParam(value ="对象明细id" ,example = "-1")
@Column(name = "POJO_DETAIL_ID")
@ApiParam(value = "对象明细id", example = "-1")
@JsonSerialize(using = ToStringSerializer.class)
private Long pojoDetailId;
@Lob
@Column(name="POJO_COMPARE")
@ApiParam(value ="记录对象对比差异")
@Column(name = "POJO_COMPARE")
@ApiParam(value = "记录对象对比差异")
private String pojoCompare;
@Lob
@Column(name="POJO_COMPARE_TXT")
@ApiParam(value ="记录对象对比差异")
@Column(name = "POJO_COMPARE_TXT")
@ApiParam(value = "记录对象对比差异")
@AnnoOutputColumn(hidden = true)
private String pojoCompareTxt;
@Transient
@ApiParam(value ="用户部门信息")
@ApiParam(value = "用户部门信息")
@AnnoOutputColumn(hidden = true)
private SysPojoVersionDetail versionDetail;
@Transient
@ApiParam(value ="操作对象本身")
@ApiParam(value = "操作对象本身")
@AnnoOutputColumn(hidden = true)
private String bean;
@Transient
@ApiParam(value ="操作对象属性描述")
@ApiParam(value = "操作对象属性描述")
@AnnoOutputColumn(hidden = true)
private Map<String, String> pojoPropDesc;
@Transient
@ApiParam(value = "操作对象名称")
private String pojoClassTitle;
}

@ -0,0 +1,14 @@
package cn.estsh.i3plus.pojo.platform.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.platform.bean.SysLogRoleChange;
/**
* @Description :
* @Reference :
* @Author : wei.peng
* @Date : 2018-10-22 12:03:00.207
* @Modify :
**/
public interface SysLogRoleChangeRepository extends BaseRepository<SysLogRoleChange, Long> {
}

@ -54,7 +54,6 @@ import java.util.List;
@Inheritance(strategy = InheritanceType.JOINED)
@Api(value = "库存条码信息", description = "库存条码信息")
public class WmsStockSn extends BaseBean {
private static final long serialVersionUID = 4869307400585363697L;
@Column(name = "WH_NO")
@ApiParam(value = "仓库代码")
@ -1025,6 +1024,10 @@ public class WmsStockSn extends BaseBean {
this.zoneNo = zoneNo;
this.vendorNo = vendorNo;
}
public WmsStockSn(String partNo, Double qty) {
this.partNo = partNo;
this.qty = qty;

@ -135,7 +135,9 @@ public class WmsHqlPack {
//查询参数封装
// 该查询封装用于单据主表查询明细使用equal 精准查询
DdlPreparedPack.getStringEqualPack(wmsDocMovementDetails.getOrderNo(), "orderNo", result);
if (!StringUtil.isEmpty(wmsDocMovementDetails.getOrderNo())) {
DdlPreparedPack.getInPackList(Arrays.asList(wmsDocMovementDetails.getOrderNo().split(",")), "orderNo", result);
}
DdlPreparedPack.getNumEqualPack(wmsDocMovementDetails.getItemStatus(), "itemStatus", result);
DdlPreparedPack.getStringEqualPack(wmsDocMovementDetails.getPartNo(), "partNo", result);
DdlPreparedPack.getStringLikerPack(wmsDocMovementDetails.getDestZoneNo(), "destZoneNo", result);

@ -37,6 +37,7 @@
<module>modules/i3plus-pojo-ics</module>
<module>modules/i3plus-pojo-mdm</module>
<module>modules/i3plus-pojo-screen</module>
<module>modules/i3plus-pojo-bsp</module>
</modules>
<dependencies>
@ -179,6 +180,11 @@
<artifactId>xstream</artifactId>
<version>1.4.11.1</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
</dependencies>
</dependencyManagement>

Loading…
Cancel
Save