yun-zuoyi
wynne1005 5 years ago
commit b8239f6455

@ -65,10 +65,10 @@ public class Material extends BaseAPS {
@FieldAnnotation(editType = ApsEnumUtil.EDIT_TYPE.DURATION)
private String purchaseLeadTime;
@Column(name="MANUF_LEAD_TIME")
@Column(name="PRODUCT_LEAD_TIME")
@ApiParam(value ="生产提前期")
@FieldAnnotation(editType = ApsEnumUtil.EDIT_TYPE.DURATION)
private String manufLeadTime;
private String productLeadTime;
@Column(name="SHIPMENT_LEAD_TIME")
@ApiParam(value ="配送提前期")
@ -79,9 +79,9 @@ public class Material extends BaseAPS {
@ApiParam(value ="单位采购量")
private Integer unitPurchase;
@Column(name="UNIT_MANUF")
@Column(name="UNIT_PRODUCT")
@ApiParam(value ="单位生产量")
private Integer unitManuf;
private Integer unitProduct;
@Column(name="UNIT_SHIPMENT")
@ApiParam(value ="单位配送量")
@ -109,7 +109,7 @@ public class Material extends BaseAPS {
@Column(name="UNIT_PRODUCT_BATCH", columnDefinition = "decimal(18,8)")
@ApiParam(value ="生产批量单位")
private Double UnitProductBatch;
private Double unitProductBatch;
@Column(name="MAX_PUR_BATCH", columnDefinition = "decimal(18,8)")
@ApiParam(value ="最大采购批量")

@ -84,7 +84,7 @@ public class Work extends BaseAPS {
private Long specifyResourceId;
@Column(name="SPECIFY_PRODUCE_TIME")
@ApiParam(value ="指定制造时间")
@ApiParam(value ="指定生产时间")
private String specifyProduceTime;
@Column(name="SPECIFY_PREV_TIME")

@ -388,9 +388,11 @@ public class BeanRelation {
List<BaseBean> relaBeans = list(bean, holders[index]);
for (BaseBean relaBean : relaBeans) {
if (relaBean.getId() != bean.getId()) {
recursionImpl(relaBean, fun, holders, index + 1);
}
}
}
/**
* targetbeanholders

@ -1,5 +1,9 @@
package cn.estsh.i3plus.pojo.aps.model;
import cn.estsh.i3plus.pojo.aps.converter.CustomDateDeserializer;
import cn.estsh.i3plus.pojo.aps.converter.CustomDateSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -14,6 +18,10 @@ import java.util.Date;
**/
@Data
public class DelaySalesOrder {
@ApiParam(value ="订单ID")
private Long orderId;
@ApiParam(value ="订单编码")
private String orderCode;
@ -30,12 +38,18 @@ public class DelaySalesOrder {
private Double count;
@ApiParam(value ="最晚结束时间")
@JsonSerialize(using = CustomDateSerializer.class)
@JsonDeserialize(using = CustomDateDeserializer.class)
private Date let;
@ApiParam(value ="计划开始时间")
@JsonSerialize(using = CustomDateSerializer.class)
@JsonDeserialize(using = CustomDateDeserializer.class)
private Date planStart;
@ApiParam(value ="计划结束时间")
@JsonSerialize(using = CustomDateSerializer.class)
@JsonDeserialize(using = CustomDateDeserializer.class)
private Date planEnd;
@ApiParam(value ="总跨度时间")

@ -1,5 +1,9 @@
package cn.estsh.i3plus.pojo.aps.model;
import cn.estsh.i3plus.pojo.aps.converter.CustomDateDeserializer;
import cn.estsh.i3plus.pojo.aps.converter.CustomDateSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -14,6 +18,9 @@ import java.util.Date;
**/
@Data
public class LargeSpanOrder {
@ApiParam(value ="订单ID")
private Long orderId;
@ApiParam(value ="订单编码")
private String orderCode;
@ -30,12 +37,18 @@ public class LargeSpanOrder {
private Double count;
@ApiParam(value ="最晚结束时间")
@JsonSerialize(using = CustomDateSerializer.class)
@JsonDeserialize(using = CustomDateDeserializer.class)
private Date let;
@ApiParam(value ="计划开始时间")
@JsonSerialize(using = CustomDateSerializer.class)
@JsonDeserialize(using = CustomDateDeserializer.class)
private Date planStart;
@ApiParam(value ="计划结束时间")
@JsonSerialize(using = CustomDateSerializer.class)
@JsonDeserialize(using = CustomDateDeserializer.class)
private Date planEnd;
@ApiParam(value ="总跨度时间")

@ -1,5 +1,10 @@
package cn.estsh.i3plus.pojo.aps.model;
import cn.estsh.i3plus.pojo.aps.converter.CustomDateDeserializer;
import cn.estsh.i3plus.pojo.aps.converter.CustomDateSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import java.util.Date;
@ -13,24 +18,43 @@ import java.util.Date;
**/
@Data
public class MaterialDeliveryAnalyze {
@ApiParam(value ="订单ID")
private Long orderId;
@ApiParam(value ="订单编码")
private String orderCode;
@ApiParam(value ="订单名称")
private String orderName;
@ApiParam(value ="物料编码")
private String materialCode;
@ApiParam(value ="物料名称")
private String materialName;
@ApiParam(value ="标签名称")
private String labelName;
@ApiParam(value ="标签颜色")
private String labelColor;
@ApiParam(value ="需求数量")
private Double requireCount;
@ApiParam(value ="需求日期")
@JsonSerialize(using = CustomDateSerializer.class)
@JsonDeserialize(using = CustomDateDeserializer.class)
private Date requireDate;
@ApiParam(value ="最早到货日期")
@JsonSerialize(using = CustomDateSerializer.class)
@JsonDeserialize(using = CustomDateDeserializer.class)
private Date arrivalDate;
private Double requireCount;
// 0正常显示1显示红色
@ApiParam(value ="背景显示颜色")
private Integer backgroundColor;
private Double count;
}

@ -1,5 +1,9 @@
package cn.estsh.i3plus.pojo.aps.model;
import cn.estsh.i3plus.pojo.aps.converter.CustomDateDeserializer;
import cn.estsh.i3plus.pojo.aps.converter.CustomDateSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -14,6 +18,9 @@ import java.util.Date;
**/
@Data
public class PrematureProduct {
@ApiParam(value ="订单ID")
private Long orderId;
@ApiParam(value ="订单编码")
private String orderCode;
@ -30,12 +37,18 @@ public class PrematureProduct {
private Double count;
@ApiParam(value ="最晚结束时间")
@JsonSerialize(using = CustomDateSerializer.class)
@JsonDeserialize(using = CustomDateDeserializer.class)
private Date let;
@ApiParam(value ="计划开始时间")
@JsonSerialize(using = CustomDateSerializer.class)
@JsonDeserialize(using = CustomDateDeserializer.class)
private Date planStart;
@ApiParam(value ="计划结束时间")
@JsonSerialize(using = CustomDateSerializer.class)
@JsonDeserialize(using = CustomDateDeserializer.class)
private Date planEnd;
@ApiParam(value ="提前完成时间")

@ -0,0 +1,43 @@
package cn.estsh.i3plus.pojo.aps.model;
import cn.estsh.i3plus.pojo.aps.converter.CustomDateDeserializer;
import cn.estsh.i3plus.pojo.aps.converter.CustomDateSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import java.util.Date;
/**
* @Description :
* @Reference :
* @Author : jason.niu
* @CreateDate : 2020-06-11
* @Modify:
**/
@Data
public class ScheduleAnalyze {
@ApiParam(value ="工作编码")
private String workCode;
@ApiParam(value ="数量")
private Double count;
@ApiParam(value ="计划开始时间")
@JsonSerialize(using = CustomDateSerializer.class)
@JsonDeserialize(using = CustomDateDeserializer.class)
private Date planStart;
@ApiParam(value ="计划结束时间")
@JsonSerialize(using = CustomDateSerializer.class)
@JsonDeserialize(using = CustomDateDeserializer.class)
private Date planEnd;
@ApiParam(value ="问题描述")
private String describe;
@ApiParam(value ="解决方案")
private String solution;
}

@ -1919,7 +1919,8 @@ public class MesEnumUtil {
NEW_SCATTER_BOM(460, "scatterBomCfgExcelService", "新散件BOM导入"),
ENCODE_RULE_MAP(470, "mesEncodeRuleMapExcelService", "编码规则映射导入"),
SCATTER_PART_PROD_CFG(480, "scatterPartProdCfgExcelService", "散件零件生产配置"),
MES_WORK_ORDER_PAINT_ZS(490, "planZSOrderExcelService", "生产工单-注塑");
MES_WORK_ORDER_PAINT_ZS(490, "planZSOrderExcelService", "生产工单-注塑"),
MES_KP_DATA(500, "kpDataExcelService", "物料关键数据关系");
private int value;
private String service;
@ -3650,7 +3651,8 @@ public class MesEnumUtil {
QUALIFIED(10, "合格"),
DEFECTED(20, "不合格"),
SCRAPED(30, "报废"),
DISMANTLED(40, "已拆解");
DISMANTLED(40, "已拆解"),
PRE_CHECK(50, "待检测");
private int value;
private String description;
@ -5804,6 +5806,15 @@ public class MesEnumUtil {
}
return tmp;
}
public static String codeOfValue(String code) {
String tmp = null;
for (int i = 0; i < values().length; i++) {
if (values()[i].code.equals(code)) {
tmp = values()[i].value;
}
}
return tmp;
}
}
/**

@ -717,7 +717,8 @@ public class MesPcnEnumUtil {
QUALIFIED(10, "合格"),
DEFECTED(20, "不合格"),
SCRAPED(30, "报废"),
DISMANTLED(40, "已拆解");
DISMANTLED(40, "已拆解"),
PRE_CHECK(50, "待检测");
private int value;
private String description;
@ -2479,7 +2480,7 @@ public class MesPcnEnumUtil {
public enum PACKAGE_PRINT_STATUS {
UNPRINTED(10, "未打印"),
PRINTED(20, "打印");
PRINTED(20, "打印");
private int value;
private String description;
@ -4257,4 +4258,61 @@ public class MesPcnEnumUtil {
return tmp;
}
}
/**
*
*/
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum BAD_HANDLE_TYPE {
BACK_SPRAY(10, "BACK_SPRAY", "返喷"),
SCRAPPED(20, "SCRAPPED", "报废"),
POLISH(30, "POLISH", "抛光"),
DETERMINED(40, "DETERMINED", "待定");
private int value;
private String code;
private String description;
BAD_HANDLE_TYPE(int value, String code, String description) {
this.value = value;
this.code = code;
this.description = description;
}
public int getValue() {
return value;
}
public String getDescription() {
return description;
}
public String getCode() {
return code;
}
public static String valueOf(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 int descOf(String desc) {
int tmp = 1;
for (int i = 0; i < values().length; i++) {
if (values()[i].description.equals(desc)) {
tmp = values()[i].value;
}
}
return tmp;
}
public static String valueOfDescription(int val) {
return valueOf(val);
}
}
}

@ -775,6 +775,19 @@ public class WmsEnumUtil {
return tmp;
}
public static OUT_MOVEMENT_BUSI_TYPE codeOfs(Integer value) {
if (value == null) {
return null;
} else {
for (int i = 0; i < values().length; i++) {
if (values()[i].value == value) {
return values()[i];
}
}
}
return null;
}
public static int descOf(String desc) {
int tmp = 1;
for (int i = 0; i < values().length; i++) {
@ -8261,11 +8274,12 @@ public class WmsEnumUtil {
/**
*
*
*/
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum AUTO_FORK_TASK_TYPE {
MOVE(10, "W05", "W05");
START(10, "start", "start"),
END(20, "end", "end");
private int value;
private String code;
@ -8313,4 +8327,51 @@ public class WmsEnumUtil {
return valueOf(val);
}
}
/**
*
*/
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum AUTO_FORK_TASK_STATUS {
CREATE(10, "新建"),
PROCESSING(20, "处理中"),
COMPLETE(30, "已完成"),
ERROR(40, "处理异常");
private int value;
private String description;
AUTO_FORK_TASK_STATUS(int value, String description) {
this.value = value;
this.description = description;
}
public int getValue() {
return value;
}
public String getDescription() {
return description;
}
public static AUTO_FORK_TASK_STATUS codeOf(int value) {
for (int i = 0; i < values().length; i++) {
if (values()[i].value == value) {
return values()[i];
}
}
return null;
}
public static String valueOf(int val) {
String tmp = null;
for (int i = 0; i < values().length; i++) {
if (values()[i].value == val) {
tmp = values()[i].description;
}
}
return tmp;
}
}
}

@ -0,0 +1,90 @@
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.Column;
import javax.persistence.Entity;
import javax.persistence.Lob;
import javax.persistence.Table;
import java.io.Serializable;
/**
* @Description :
* @Reference :
* @Author : siliter.yuan
* @CreateDate : 2020-06-28
* @Modify:
**/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Table(name = "IF_DEFECT_DATA")
@Api("不良信息接口数据")
public class IfDefectData extends BaseBean implements Serializable {
private static final long serialVersionUID = 4320604250440221049L;
@Column(name = "SERIAL_NUMBER")
@ApiParam("产品条码")
private String serailNumber;
@Column(name = "PART_NO")
@ApiParam("物料号")
private String partNo;
@Column(name = "PART_NAME")
@ApiParam("物料名称")
private String partName;
@Column(name = "DEFECT_CODE")
@ApiParam("缺陷代码")
private String defectCode;
@Column(name = "DEFECT_NAME")
@ApiParam("缺陷名称")
private String defectName;
@Column(name = "WORK_CENTER_CODE")
@ApiParam("工作中心代码")
private String workCenterCode;
@Column(name = "WORK_CELL_CODE")
@ApiParam("工作单元代码")
private String workCellCode;
@Column(name = "MEMO")
@ApiParam("备注")
private String memo;
@Column(name = "DEFECT_ACTION_TYPE")
@ApiParam("不良处理类型")
private Integer defectActionType;
@Column(name = "QTY")
@ApiParam("数量")
private Double qty;
@Column(name = "SYNC_STATUS")
@ApiParam("同步状态")
private Integer syncStatus;
@Lob
@Column(name = "ERROR_MESSAGE")
@ApiParam("异常消息")
private String errorMessage;
@Column(name = "ACTION_TYPE")
@ApiParam("动作代码")
private String actionType;
@Column(name = "IF_CODE")
@ApiParam("接口代码")
private String ifCode;
}

@ -12,6 +12,7 @@ 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,10 +32,6 @@ import java.io.Serializable;
public class MesCellFeed extends BaseBean implements Serializable {
private static final long serialVersionUID = 1947971369479107782L;
@Column(name = "ORDER_NO")
@ApiParam("工单号")
private String orderNo;
@Column(name = "WORK_CENTER_CODE")
@ApiParam("工作中心")
private String workCenterCode;
@ -71,6 +68,13 @@ public class MesCellFeed extends BaseBean implements Serializable {
@ApiParam("供应商代码")
private String supplierCode;
@Transient
@ApiParam("工单号")
private String orderNo;
@Transient
@ApiParam(value = "原料类型名称")
private String rawTypeName;
public double getRawQtyVal() {
return this.rawQty == null ? 0l : this.rawQty;

@ -30,6 +30,11 @@ import java.io.Serializable;
@Api("工位投料履历信息")
public class MesCellFeedRecord extends BaseBean implements Serializable {
private static final long serialVersionUID = 1947971369489107783L;
@Column(name = "ORDER_NO")
@ApiParam("工单号")
private String orderNo;
@Column(name = "WORK_CENTER_CODE")
@ApiParam("工作中心")
private String workCenterCode;
@ -66,7 +71,6 @@ public class MesCellFeedRecord extends BaseBean implements Serializable {
@ApiParam("供应商代码")
private String supplierCode;
public double getRawQtyVal() {
return this.rawQty == null ? 0l : this.rawQty;
}

@ -48,6 +48,10 @@ public class MesDefect extends BaseBean implements Serializable {
@ApiParam("项目代码")
private String prodCfgTypeCode;
@Column(name = "DEFECT_FLAG_VALUE")
@ApiParam("缺陷标识值")
private String defectFlagValue;
@Transient
@ApiParam("缺陷类型名称")
private String defectTypeName;

@ -10,7 +10,6 @@ import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
@ -81,6 +80,10 @@ public class MesDefectRecord extends BaseBean implements Serializable {
@ApiParam("备注")
private String memo;
@Column(name = "DEFECT_ACTION_TYPE")
@ApiParam("不良处理类型")
private Integer defectActionType;
@Transient
private List<MesDefect> mesDefectList;

@ -55,6 +55,10 @@ public class MesKpData extends BaseBean implements Serializable {
@ApiParam("数据下限")
private Double lowerLimit;
@Column(name = "WORK_CENTER_CODE")
@ApiParam("工作中心代码")
private String workCenterCode;
@Column(name = "WORK_CELL_CODE")
@ApiParam("工位")
private String workCellCode;

@ -65,7 +65,7 @@ public class MesPartCheck extends BaseBean implements Serializable {
@ApiParam("对象名称")
private String objectCodeName;
@Transient
@Column(name = "WORK_CENTER_CODE")
@ApiParam("产线")
private String workCenterCode;
}

@ -0,0 +1,50 @@
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.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
* @Description :
* @Reference :
* @Author : wangjie
* @CreateDate : 2019-04-02
* @Modify:
**/
@Data
@Entity
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Table(name = "MES_PROD_WORK_CENTER")
@Api("产品工作中心配置")
public class MesProdWorkCenter extends BaseBean implements Serializable {
private static final long serialVersionUID = 9215737252535074536L;
@Column(name = "PART_NO")
@ApiParam("物料编码")
private String partNo;
@Column(name = "WORK_CENTER_CODE")
@ApiParam("工作中心代码")
private String workCenterCode;
@Column(name = "IS_DEFAULT")
@ApiParam("是否默认")
private Integer isDefault;
@Column(name = "PART_SN")
@ApiParam("料箱条码")
private String partSn;
}

@ -144,6 +144,10 @@ public class MesProduceSn extends BaseBean implements Serializable {
@ApiParam("客户标签模板")
private String custLabelTemplate;
@Column(name = "LOT_NO")
@ApiParam("生产批次")
private String lotNo;
// @Version
// @Column(name = "LOCK_VERSION")
// @ApiParam(value = "乐观锁", example = "1")
@ -177,7 +181,9 @@ public class MesProduceSn extends BaseBean implements Serializable {
@ApiParam("条码类型名称")
private String snTypeName;
@Transient
@ApiParam("条码打印状态名称")
private String printStatusName;
public MesProduceSn() {
}

@ -0,0 +1,36 @@
package cn.estsh.i3plus.pojo.mes.model;
import io.swagger.annotations.ApiParam;
import lombok.Data;
/**
* @Description:
* @Reference:
* @Author: siliter.yuan
* @CreateDate: 2020-06-28-11:44
* @Modify:
**/
@Data
public class PackageSnModel {
@ApiParam("包装条码")
private String packageNo;
@ApiParam("过程条码")
private String serialNumber;
@ApiParam("物料号")
private String partNo;
@ApiParam("物料名称")
private String partName;
@ApiParam("批次")
private String lotNo;
@ApiParam("创建人")
private String createUser;
@ApiParam("创建时间")
private String createDateTime;
}

@ -0,0 +1,60 @@
package cn.estsh.i3plus.pojo.mes.model;
import cn.estsh.i3plus.pojo.mes.bean.MesWindowModuleParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Column;
import java.util.List;
/**
* @Author: siliter.yuan
* @CreateDate: 2020/6/28 8:06 PM
* @Description:
**/
@Data
@Api("涂装检测MODEL")
public class PaintCheckModel {
@ApiParam("工作中心")
private String workCenterCode;
@ApiParam("工作单元")
private String workCellCode;
@ApiParam("物料号")
private String partNo;
@ApiParam("物料名称")
private String partNameRdd;
@ApiParam("颜色")
private String color;
@ApiParam("过程条码")
private String serialNumber;
@ApiParam("界面编号")
private String windowNo;
@ApiParam("缺陷类型")
private String defectType;
@ApiParam("缺陷描述")
private String defectDesc;
@ApiParam("缺陷标识值")
private String defectFlagValue;
@ApiParam("不良品处理类型")
private Integer defectActionType;
@Column(name = "PROD_CFG_TYPE_CODE")
@ApiParam("项目代码")
private String prodCfgTypeCode;
@ApiParam("界面组件参数数据")
List<MesWindowModuleParam> windowModuleParamList;
}

@ -46,4 +46,7 @@ public class PaintOnLineModel {
@ApiParam("圈数")
private Integer rounds;
@ApiParam("过程条码")
private String serialNumber;
}

@ -4,6 +4,8 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import java.io.Serializable;
/**
* @Description : -()model
* @Reference :
@ -13,35 +15,47 @@ import lombok.Data;
**/
@Data
@Api("产品包装model")
public class ProdPackModel {
public class ProdPackModel implements Serializable {
// 产品条码表--产品条码
@ApiParam("产品条码")
private String productSn;
public String productSn;
// 包装主表--包装编号
@ApiParam("一检箱条码")
private String packageNo;
public String packageNo;
// 包装明细表--创建时间
@ApiParam("一检校验时间")
private String createDatetime;
public String createDatetime;
// 包装主表--打印状态(10未打印 20已打印)
@ApiParam("箱条码状态")
private Integer printStatus;
public Integer printStatus;
// 涂装客户标签打印
@ApiParam("客户标签")
private String custSn;
public String custSn;
// 涂装客户标签打印
@ApiParam("当前工序")
private String processCode;
public String processCode;
// 涂装客户标签打印
@ApiParam("更新时间")
private String modifyDateTime;
public String modifyDateTime;
@ApiParam("工单号")
public String workOrderNo;
@ApiParam("组织代码")
public String organizeCode;
@ApiParam("物料号")
public String parentPartNo;
public ProdPackModel() {
}
public ProdPackModel(String productSn, String packageNo, String createDatetime, Integer printStatus) {
this.productSn = productSn;

@ -0,0 +1,17 @@
package cn.estsh.i3plus.pojo.mes.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.mes.bean.IfDefectData;
import org.springframework.stereotype.Repository;
/**
* @Description : if
* @Reference :
* @Author : siliter.yuan
* @CreateDate : 2020-06-28 16:49
* @Modify:
**/
@Repository
public interface IfDefectDataRepository extends BaseRepository<IfDefectData, Long> {
}

@ -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.MesProdWorkCenter;
import org.springframework.stereotype.Repository;
/**
* @Description:
* @Reference:
* @Author: wangjie
* @CreateDate:2019-04-24-17:13
* @Modify:
**/
@Repository
public interface MesProdWorkCenterRepository extends BaseRepository<MesProdWorkCenter, Long> {
}

@ -1515,7 +1515,7 @@ public class MesHqlPack {
DdlPreparedPack.getStringEqualPack(mesQcCheckStandard.getWorkCenterCode(), "workCenterCode", packBean);
}
if (mesQcCheckStandard.getCheckType() != null) {
DdlPreparedPack.getNumberBiggerEqualPack(mesQcCheckStandard.getCheckType(), "checkType", packBean);
DdlPreparedPack.getNumEqualPack(mesQcCheckStandard.getCheckType(), "checkType", packBean);
}
if (!StringUtils.isEmpty(mesQcCheckStandard.getCheckItem())) {
DdlPreparedPack.getStringLikerPack(mesQcCheckStandard.getCheckItem(), "checkItem", packBean);
@ -3113,4 +3113,21 @@ public class MesHqlPack {
}
return packBean;
}
/**
*
* @param prodWorkCenter
* @param organizeCode
* @return
*/
public static DdlPackBean getMesProdWorkCenter(MesProdWorkCenter prodWorkCenter, String organizeCode) {
DdlPackBean packBean = getAllBaseDataByNormalPro(prodWorkCenter, organizeCode);
if (!StringUtils.isEmpty(prodWorkCenter.getPartNo())) {
DdlPreparedPack.getStringLikerPack(prodWorkCenter.getPartNo(), "partNo", packBean);
}
if (!StringUtils.isEmpty(prodWorkCenter.getWorkCenterCode())) {
DdlPreparedPack.getStringLikerPack(prodWorkCenter.getWorkCenterCode(), "workCenterCode", packBean);
}
return packBean;
}
}

@ -3,7 +3,6 @@ package cn.estsh.i3plus.pojo.mes.sqlpack;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import cn.estsh.i3plus.pojo.base.bean.DdlPackBean;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.MesPcnEnumUtil;
import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack;
import cn.estsh.i3plus.pojo.mes.bean.*;
@ -357,6 +356,10 @@ public class MesPcnHqlPack {
DdlPreparedPack.getNumEqualPack(mesProduceSn.getSnStatus(), "snStatus", packBean);
}
if (!StringUtils.isEmpty(mesProduceSn.getWorkOrderNo())) {
DdlPreparedPack.getStringEqualPack(mesProduceSn.getWorkOrderNo(), "workOrderNo", packBean);
}
// 时间段查询
if (!StringUtils.isEmpty(mesProduceSn.getCreateDateTimeStart()) || !StringUtils.isEmpty(mesProduceSn.getCreateDateTimeEnd())) {
DdlPreparedPack.timeBuilder(
@ -636,7 +639,9 @@ public class MesPcnHqlPack {
if (!StringUtils.isEmpty(mesWorkOrder.getWorkOrderStatus())) {
DdlPreparedPack.getNumEqualPack(mesWorkOrder.getWorkOrderStatus(), "workOrderStatus", packBean);
}
if (!StringUtils.isEmpty(mesWorkOrder.getWorkOrderType() + "") && mesWorkOrder.getWorkOrderTypeVal() != 0) {
DdlPreparedPack.getNumEqualPack(mesWorkOrder.getWorkOrderType(), "workOrderType", packBean);
}
// 时间段查询
if (!StringUtils.isEmpty(mesWorkOrder.getStartTimeStart()) || !StringUtils.isEmpty(mesWorkOrder.getStartTimeEnd())) {
DdlPreparedPack.timeBuilder(

@ -59,6 +59,19 @@
<artifactId>i3plus-pojo-lac</artifactId>
</dependency>
<!-- Optaplanner 规划引擎相关组件 -->
<dependency>
<groupId>org.optaplanner</groupId>
<artifactId>optaplanner-core</artifactId>
<version>7.36.0.Final</version>
</dependency>
<dependency>
<groupId>org.optaplanner</groupId>
<artifactId>optaplanner-persistence-jpa</artifactId>
<version>7.36.0.Final</version>
</dependency>
<!-- (End) Optaplanner 规划引擎相关组件 -->
</dependencies>
<profiles>
<profile>

@ -0,0 +1,23 @@
package cn.estsh.i3plus.pojo.model.wms;
import cn.estsh.i3plus.pojo.model.wms.engine.domain.WmsThreeDimenLocateModel;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description 3D-
* @Reference
* @Author dragon
* @CreateDate 2020/6/1 14:22
* @Modify
*/
@Data
public class WmsLocateListModel implements Serializable {
private static final long serialVersionUID = -2672721389336190491L;
List<WmsThreeDimenLocateModel> unsolvedLocates;
String organizeCode;
}

@ -0,0 +1,61 @@
package cn.estsh.i3plus.pojo.model.wms.engine.domain;
import lombok.Getter;
import org.optaplanner.core.api.domain.solution.PlanningEntityCollectionProperty;
import org.optaplanner.core.api.domain.solution.PlanningScore;
import org.optaplanner.core.api.domain.solution.PlanningSolution;
import org.optaplanner.core.api.domain.solution.drools.ProblemFactCollectionProperty;
import org.optaplanner.core.api.domain.valuerange.ValueRangeProvider;
import org.optaplanner.core.api.score.buildin.hardsoft.HardSoftScore;
import java.util.List;
@PlanningSolution
public class LocateAssign {
private List<WmsThreeDimenLocateModel> wmsThreeDimenLocateModelList;
private List<Integer> locationList;
/**
*
*/
@Getter
private int avgLocateFrequence;
private HardSoftScore score;
@ValueRangeProvider(id = "locationRange")
@ProblemFactCollectionProperty
public List<Integer> getLocationList() {
return this.locationList;
}
public void setLocationList(List<Integer> locationList) {
this.locationList = locationList;
}
@PlanningEntityCollectionProperty
public List<WmsThreeDimenLocateModel> getWmsThreeDimenLocateModelList() {
return this.wmsThreeDimenLocateModelList;
}
public void setWmsThreeDimenLocateModelList(List<WmsThreeDimenLocateModel> wmsThreeDimenLocateModelList) {
this.wmsThreeDimenLocateModelList = wmsThreeDimenLocateModelList;
long totalFrequence = 0;
for (WmsThreeDimenLocateModel wmsThreeDimenLocateModel : wmsThreeDimenLocateModelList) {
totalFrequence += wmsThreeDimenLocateModel.getFrequency();
}
// 计算平均进出库次数
this.avgLocateFrequence = (int)(totalFrequence / wmsThreeDimenLocateModelList.size());
}
@PlanningScore
public HardSoftScore getScore() {
return this.score;
}
public void setScore(HardSoftScore score) {
this.score = score;
}
}

@ -0,0 +1,11 @@
package cn.estsh.i3plus.pojo.model.wms.engine.domain;
import java.util.Comparator;
public class LocateStrengthComparator implements Comparator<WmsThreeDimenLocateModel> {
@Override
public int compare(WmsThreeDimenLocateModel o1, WmsThreeDimenLocateModel o2) {
return o1.getFrequency() - o2.getFrequency();
}
}

@ -0,0 +1,11 @@
package cn.estsh.i3plus.pojo.model.wms.engine.domain;
import java.util.Comparator;
public class LocationStrengthComparator implements Comparator<Integer> {
@Override
public int compare(Integer seq1, Integer seq2) {
return seq1 - seq2;
}
}

@ -0,0 +1,114 @@
package cn.estsh.i3plus.pojo.model.wms.engine.domain;
import lombok.Getter;
import lombok.Setter;
import org.optaplanner.core.api.domain.entity.PlanningEntity;
import org.optaplanner.core.api.domain.lookup.PlanningId;
import org.optaplanner.core.api.domain.variable.PlanningVariable;
/**
*
*/
@PlanningEntity(difficultyComparatorClass = LocateStrengthComparator.class)
public class WmsThreeDimenLocateModel {
/**
*
*/
@Getter
@Setter
private String organizeCode;
/**
*
*/
@Getter
@Setter
private String whNo;
/**
*
*/
@Getter
@Setter
private String zoneNo;
/**
*
*/
@Getter
@Setter
private String furnitureNo;
/**
*
*/
@Getter
@Setter
@PlanningId
private String locateNo;
/**
* X
*/
@Getter
@Setter
private int x;
/**
* X
*/
@Getter
@Setter
private int y;
/**
* X
*/
@Getter
@Setter
private int z;
/*
*/
@Getter
@Setter
private int frequency;
/**
*
*/
@Getter
@Setter
private int originSeq;
/**
*
*/
private int destSeq;
public WmsThreeDimenLocateModel() {
}
//3D仓库-库位移动频率热力图
public WmsThreeDimenLocateModel(String organizeCode, String whNo, String zoneNo,
String locateNo, Integer seq, Long frequency, String furnitureNo,
Integer x, Integer y, Integer z) {
this.organizeCode = organizeCode;
this.whNo = whNo;
this.zoneNo = zoneNo;
this.locateNo = locateNo;
this.originSeq = seq;
this.destSeq = seq;
this.frequency = Integer.parseInt(frequency.toString());
this.furnitureNo = furnitureNo;
this.x = x;
this.y = y;
this.z = z;
}
@PlanningVariable(valueRangeProviderRefs = {"locationRange"},
strengthComparatorClass = LocationStrengthComparator.class)
public Integer getDestSeq() {
return this.destSeq;
}
public void setDestSeq(Integer destSeq) {
this.destSeq = destSeq;
}
}

@ -22,6 +22,20 @@
<!--<groupId>i3plus.platform</groupId>-->
<!--<artifactId>i3plus-platform-common</artifactId>-->
<!--</dependency>-->
<!-- Optaplanner 规划引擎相关组件 -->
<dependency>
<groupId>org.optaplanner</groupId>
<artifactId>optaplanner-core</artifactId>
<version>7.36.0.Final</version>
</dependency>
<dependency>
<groupId>org.optaplanner</groupId>
<artifactId>optaplanner-persistence-jpa</artifactId>
<version>7.36.0.Final</version>
</dependency>
<!-- (End) Optaplanner 规划引擎相关组件 -->
</dependencies>
<profiles>
<profile>

@ -117,4 +117,8 @@ public class AmpJisRec extends BaseBean {
this.qty = qty;
this.unit = unit;
}
public AmpJisRec() {
}
}

@ -0,0 +1,103 @@
package cn.estsh.i3plus.pojo.wms.bean;
import cn.estsh.i3plus.pojo.base.annotation.DynamicField;
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.Index;
import javax.persistence.Table;
/**
* @Description :
* @Reference :
* @Author : puxiao.liao
* @CreateDate : 2018-11-17 14:50
* @Modify:
**/
@Data
@Entity
@Table(name = "WMS_AUTO_FORK_CALL_BACK_DETAILS", indexes = {
@Index(columnList = "TASK_CODE")
})
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Api(value = "无人叉车任务明细", description = "喜德无人叉车任务明细")
public class WmsAutoForkCallBackDetails extends BaseBean {
private static final long serialVersionUID = -8103992000562208799L;
@Column(name = "REQ_CODE")
@ApiParam(value = "请求编号")
@DynamicField(webFieldType = CommonEnumUtil.FIELD_TYPE.TEXT)
private String reqCode;
@Column(name = "REQ_TIME")
@ApiParam(value = "请求时间")
@DynamicField(webFieldType = CommonEnumUtil.FIELD_TYPE.TEXT)
private String reqTime;
@Column(name = "CLIENT_CODE")
@ApiParam(value = "客服端编号")
@DynamicField(webFieldType = CommonEnumUtil.FIELD_TYPE.TEXT)
private String clientCode;
@Column(name = "TOKEN_CODE")
@ApiParam(value = "令牌号")
@DynamicField(webFieldType = CommonEnumUtil.FIELD_TYPE.TEXT)
private String tokenCode;
@Column(name = "INTERFACE_NAME")
@ApiParam(value = "接口名称")
@DynamicField(webFieldType = CommonEnumUtil.FIELD_TYPE.TEXT)
private String interfaceName;
@Column(name = "METHOD")
@ApiParam(value = "方法名称")
@DynamicField(webFieldType = CommonEnumUtil.FIELD_TYPE.TEXT)
private String method;
@Column(name = "TASK_CODE")
@ApiParam(value = "任务单号")
@DynamicField(webFieldType = CommonEnumUtil.FIELD_TYPE.TEXT)
private String taskCode;
@Column(name = "WB_CODE")
@ApiParam(value = "工作为")
@DynamicField(webFieldType = CommonEnumUtil.FIELD_TYPE.TEXT)
private String wbCode;
@Column(name = "POD_CODE")
@ApiParam(value = "货架编号")
@DynamicField(webFieldType = CommonEnumUtil.FIELD_TYPE.TEXT)
private String podCode;
@Column(name = "CURRENT_POSITION_CODE")
@ApiParam(value = "子任务的位置编号")
@DynamicField(webFieldType = CommonEnumUtil.FIELD_TYPE.TEXT)
private String currentPositionCode;
@Column(name = "ROBOT_CODE")
@ApiParam(value = "执行任务的VGA编号")
@DynamicField(webFieldType = CommonEnumUtil.FIELD_TYPE.TEXT)
private String robotCode;
//10=新建,20=已处理,30=处理出错
@Column(name = "STATUS", nullable = false)
@ApiParam("处理标准")
public Integer status;
@Column(name = "REMARK", nullable = false)
@ApiParam("备注")
public String remark;
}

@ -0,0 +1,51 @@
package cn.estsh.i3plus.pojo.wms.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;
/**
* @Description :
* @Reference :
* @Author : jimmy.zeng
* @CreateDate : 2020-06-23 13:55
* @Modify:
**/
@Data
@Entity
@Table(name = "WMS_AUTO_TASK_LOG")
@DynamicInsert
@DynamicUpdate
@EqualsAndHashCode(callSuper = true)
@Api(value = "自动任务日志", description = "自动任务日志")
public class WmsAutoTaskLog extends BaseBean {
private static final long serialVersionUID = -7839329617395574378L;
@Column(name = "ORDER_NO")
@ApiParam("关联订单号")
public String orderNo;
@Column(name = "BUSI_TYPE")
@ApiParam("业务类型")
public String busiType;
@Column(name = "STRATEGY_NO")
@ApiParam("策略代码")
public String strategyNo;
@Column(name = "STRATEGY_ACTION")
@ApiParam("策略动作")
public String strategyAction;
@Column(name = "ERROR_MSG")
@ApiParam("错误信息")
public String errorMsg;
}

@ -11,7 +11,11 @@ import org.hibernate.annotations.ColumnDefault;
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.Table;
import javax.persistence.Transient;
/**
* @Description :
@ -78,6 +82,14 @@ public class WmsDocMovementSn extends BaseBean {
@ApiParam(value = "供应商编码")
public String vendorNo;
@Column(name = "WORK_ORDER_CODE")
@ApiParam(value = "工单码")
private String workOrderCode;
@Column(name = "SEQ_NO")
@ApiParam(value = "父位置号")
private String seqNo;
@Column(name = "SN_TYPE")
@ApiParam(value = "条码类型")
@AnnoOutputColumn(refClass = WmsEnumUtil.WMS_STOCK_TYPE.class, refForeignKey = "value", value = "description")

@ -212,6 +212,10 @@ public class WmsMoveToERP extends BaseBean {
@Transient
private Long finishedCounts;
@Column(name = "POD_DIR")
@ApiParam(value = "方向")
private Integer podDir;
@Transient
private Long shippingId;

@ -72,4 +72,8 @@ public class WmsPackageSpec extends BaseBean {
@DynamicField(webFieldType = CommonEnumUtil.FIELD_TYPE.SELECT, getValWay = CommonEnumUtil.DYNAMIC_FIELD_GET_WAY.URL,
isRequire = 2, dataSrc = "/wms/base-data/wms-package-spec/query", listColumnName = "specName", explicitColumnName = "specName")
private String parentName;
@Column(name = "DIRECTION")
@ApiParam(value = "方向")
private Integer direction;
}

@ -1,8 +1,13 @@
package cn.estsh.i3plus.pojo.wms.modelbean;
import cn.estsh.i3plus.pojo.wms.bean.WmsDocMovementDetails;
import cn.estsh.i3plus.pojo.wms.bean.WmsStockSn;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description :
@ -14,14 +19,60 @@ import java.util.List;
@Data
public class WmsAutoTaskModel {
String lockLocacte;
String lockCar;
@ApiParam("业务类型")
private Integer busiType;
Integer busiType;
@ApiParam("存储区")
private String zoneNo;
String srcZoneNo;
String descZoneNo;
List<String> partList;
@ApiParam("单据号")
private String orderNo;
String organizeCode;
@ApiParam("物料集合")
private List<String> partList;
@ApiParam("工厂代码")
private String organizeCode;
@ApiParam("交易类型")
private String transTypeCode;
@ApiParam("锁定库位")
private String lockLocacte;
@ApiParam("锁定源库位")
private String srcLockLocacte;
@ApiParam("方向")
private Integer direction;
@ApiParam("货格")
private String packageNo;
@ApiParam("锁定料车")
private String lockCar;
@ApiParam("预存锁定料车")
private String prestoreLockCar;
@ApiParam("物料对应的单据明细集合")
private Map<String, WmsDocMovementDetails> partNoDetailsList;
@ApiParam("锁定物料对应的条码")
private Map<String,List<WmsStockSn>> partNoGroupListMap;
@ApiParam("锁定条码")
private List<WmsStockSn> lockStockSnList;
@ApiParam("任务生成数量")
private Double taskQty;
@ApiParam("返回错误信息")
public String errorMsg;
@ApiParam("策略代码")
public String strategyNo;
@ApiParam("策略动作")
public String strategyAction;
}

@ -0,0 +1,17 @@
package cn.estsh.i3plus.pojo.wms.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.wms.bean.WmsAutoForkCallBackDetails;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : puxiao.lioa
* @CreateDate : 2018-11-13 10:19
* @Modify:
**/
@Repository
public interface WmsAutoForkCallBackDetailsRepository extends BaseRepository<WmsAutoForkCallBackDetails, Long> {
}

@ -0,0 +1,16 @@
package cn.estsh.i3plus.pojo.wms.repository;
import cn.estsh.i3plus.pojo.base.jpa.dao.BaseRepository;
import cn.estsh.i3plus.pojo.wms.bean.WmsAutoTaskLog;
import org.springframework.stereotype.Repository;
/**
* @Description :
* @Reference :
* @Author : jimmy.zeng
* @CreateDate : 2020-06-23 21:46
* @Modify:
**/
@Repository
public interface WmsAutoTaskLogRecRepository extends BaseRepository<WmsAutoTaskLog,Long> {
}

@ -564,9 +564,8 @@ public class WmsHqlPack {
DdlPreparedPack.getInPack(StringUtils.join(new ArrayList<String>(Arrays.asList(wmsLocate.getZoneNo().split(","))), ","), "zoneNo", result);
}
if (wmsLocate.getLocateNoArr() != null) {
DdlPreparedPack.getInPack(StringUtils.join(wmsLocate.getLocateNoArr()), "locateNo", result);
DdlPreparedPack.getInPackArray(wmsLocate.getLocateNoArr(), "locateNo", result);
}
// DdlPreparedPack.getStringEqualPack(wmsLocate.getZoneNo(), "zoneNo", result);
DdlPreparedPack.getNumEqualPack(wmsLocate.getStatus(), "status", result);

Loading…
Cancel
Save