add order spread to aps

yun-zuoyi
钮海涛 6 years ago
parent 1d281da531
commit 10ce1e165e

@ -5,11 +5,13 @@ import cn.estsh.i3plus.pojo.aps.common.BaseAPS;
import cn.estsh.i3plus.pojo.aps.common.BaseCode;
import cn.estsh.i3plus.pojo.aps.common.BeanRelation;
import cn.estsh.i3plus.pojo.aps.holders.EBaseOrder;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.MappedSuperclass;
import java.util.Date;
import java.util.List;
@ -21,6 +23,7 @@ import java.util.List;
* @Modify:
**/
@Data
@MappedSuperclass
@Api("订单基类")
public class BaseOrder extends BaseCode {
@Column(name="COUNT")
@ -60,6 +63,7 @@ public class BaseOrder extends BaseCode {
@FieldAnnotation(property = false)
private Long materialId;
@JsonBackReference
public List<Work> getWorks() {
return BeanRelation.list(this, EBaseOrder.Works);
}
@ -73,18 +77,22 @@ public class BaseOrder extends BaseCode {
BeanRelation.set(this, EBaseOrder.Material, material);
}
@JsonBackReference
public List<WorkRelation> getPrevRelations() {
return BeanRelation.list(this, EBaseOrder.PrevRelations);
}
@JsonBackReference
public List<WorkRelation> getPostRelations() {
return BeanRelation.list(this, EBaseOrder.PostRelations);
}
@JsonBackReference
public List<BaseOrder> getUpperOrders() {
return BeanRelation.list(this, EBaseOrder.UpperOrders);
}
@JsonBackReference
public List<BaseOrder> getLowerOrders() {
return BeanRelation.list(this, EBaseOrder.LowerOrders);
}

@ -4,6 +4,7 @@ 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.EExportProject;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
@ -45,6 +46,7 @@ public class ExportProject extends BaseAPS {
BeanRelation.set(this, EExportProject.Link, link);
}
@JsonBackReference
public List<ExportDetail> getDetails() {
return BeanRelation.list(this, EExportProject.Details);
}

@ -4,6 +4,7 @@ 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.EImportProject;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -43,6 +44,7 @@ public class ImportProject extends BaseAPS {
BeanRelation.set(this, EImportProject.Link, link);
}
@JsonBackReference
public List<ImportDetail> getDetails() {
return BeanRelation.list(this, EImportProject.Details);
}

@ -2,6 +2,7 @@ package cn.estsh.i3plus.pojo.aps.bean;
import cn.estsh.i3plus.pojo.aps.common.BeanRelation;
import cn.estsh.i3plus.pojo.aps.holders.EBaseOrder;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -38,6 +39,7 @@ public class Inventory extends BaseOrder {
@ApiParam(value ="多余量")
private Double excessCount;
@JsonIgnore
public Work getWork() {
return BeanRelation.get(this, EBaseOrder.Works);
}

@ -6,6 +6,7 @@ import cn.estsh.i3plus.pojo.aps.enums.MATERIAL_TYPE;
import cn.estsh.i3plus.pojo.aps.enums.PREPARE_TYPE;
import cn.estsh.i3plus.pojo.aps.enums.REPLENISHMENT_TYPE;
import cn.estsh.i3plus.pojo.aps.holders.EMaterial;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -107,30 +108,37 @@ public class Material extends BaseCode {
@ApiParam(value ="最大库存数量")
private Double maxStockCount;
@JsonBackReference
public List<ProductRouting> getProductRoutings() {
return BeanRelation.list(this, EMaterial.ProductRoutings);
}
@JsonBackReference
public List<OperInput> getOperInputs() {
return BeanRelation.list(this, EMaterial.OperInputs);
}
@JsonBackReference
public List<OperOutput> getOperOutputs() {
return BeanRelation.list(this, EMaterial.OperOutputs);
}
@JsonBackReference
public List<WorkInput> getWorkInputs() {
return BeanRelation.list(this, EMaterial.WorkInputs);
}
@JsonBackReference
public List<WorkOutput> getWorkOutputs() {
return BeanRelation.list(this, EMaterial.WorkOutputs);
}
@JsonBackReference
public List<WorkRelation> getWorkRelations() {
return BeanRelation.list(this, EMaterial.WorkRelations);
}
@JsonBackReference
public List<BaseOrder> getOrders() {
return BeanRelation.list(this, EMaterial.Orders);
}

@ -5,6 +5,7 @@ import cn.estsh.i3plus.pojo.aps.common.BaseAPS;
import cn.estsh.i3plus.pojo.aps.common.BeanRelation;
import cn.estsh.i3plus.pojo.aps.enums.CONSTRAINT_TYPE;
import cn.estsh.i3plus.pojo.aps.holders.EOperInput;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -78,6 +79,7 @@ public class OperInput extends BaseAPS {
BeanRelation.set(this, EOperInput.Material, material);
}
@JsonBackReference
public List<WorkInput> getWorkInputs() {
return BeanRelation.list(this, EOperInput.WorkInputs);
}

@ -4,6 +4,7 @@ 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.EOperOutput;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -65,6 +66,7 @@ public class OperOutput extends BaseAPS {
BeanRelation.set(this, EOperOutput.Material, material);
}
@JsonBackReference
public List<WorkOutput> getWorkOutputs() {
return BeanRelation.list(this, EOperOutput.WorkOutputs);
}

@ -5,6 +5,7 @@ import cn.estsh.i3plus.pojo.aps.common.BaseAPS;
import cn.estsh.i3plus.pojo.aps.common.BeanRelation;
import cn.estsh.i3plus.pojo.aps.enums.USE_TYPE;
import cn.estsh.i3plus.pojo.aps.holders.EOperResource;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -86,6 +87,7 @@ public class OperResource extends BaseAPS {
BeanRelation.set(this, EOperResource.Resource, res);
}
@JsonBackReference
public List<WorkResource> getWorkResources() {
return BeanRelation.list(this, EOperResource.WorkResources);
}

@ -6,6 +6,7 @@ import cn.estsh.i3plus.pojo.aps.common.BeanRelation;
import cn.estsh.i3plus.pojo.aps.enums.CONSTRAINT_TYPE;
import cn.estsh.i3plus.pojo.aps.enums.TAIL_DEAL;
import cn.estsh.i3plus.pojo.aps.holders.EOperation;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -96,14 +97,17 @@ public class Operation extends BaseAPS {
BeanRelation.set(this, EOperation.ProductRouting, routing);
}
@JsonBackReference
public List<OperInput> getOperInputs() {
return BeanRelation.list(this, EOperation.OperInputs);
}
@JsonBackReference
public List<OperOutput> getOperOutputs() {
return BeanRelation.list(this, EOperation.OperOutputs);
}
@JsonBackReference
public List<Resource> getOperResources() {
return BeanRelation.list(this, EOperation.OperResources);
}
@ -117,6 +121,7 @@ public class Operation extends BaseAPS {
BeanRelation.set(this, EOperation.StandOperation, std);
}
@JsonBackReference
public List<Work> getWorks() {
return BeanRelation.list(this, EOperation.Works);
}

@ -0,0 +1,53 @@
package cn.estsh.i3plus.pojo.aps.bean;
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.EParentWork;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.List;
/**
* @Description :
*
*
* @Reference :
* @Author : jason.niu
* @CreateDate : 2019-09-17
* @Modify:
**/
@Data
@Entity
@Table(name = "APS_PARENT_WORK")
@Api("父工作")
public class ParentWork extends BaseAPS {
@Column(name="count")
@ApiParam(value ="数量")
private Double count;
@Column(name="PRODUCT_ORDER_ID")
@ApiParam(value ="订单")
@FieldAnnotation(property = false)
private Long productOrderId;
public BaseOrder getProductOrder() {
return BeanRelation.get(this, EParentWork.ProductOrder);
}
public void setProductOrder(ProductOrder order) {
this.productOrderId = order != null ? order.getId() : 0l;
BeanRelation.set(this, EParentWork.ProductOrder, order);
}
@JsonBackReference
public List<Work> getWorks() {
return BeanRelation.list(this, EParentWork.Works);
}
}

@ -4,6 +4,7 @@ import cn.estsh.i3plus.pojo.aps.annotation.FieldAnnotation;
import cn.estsh.i3plus.pojo.aps.common.BeanRelation;
import cn.estsh.i3plus.pojo.aps.holders.EProductOrder;
import cn.estsh.i3plus.pojo.aps.holders.EProductRouting;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -12,6 +13,7 @@ import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
import java.util.List;
/**
* @Description :
@ -85,6 +87,10 @@ public class ProductOrder extends BaseOrder {
@ApiParam(value ="缺少量")
private Double lackCount;
@Column(name="AUTO_SUPPLY")
@ApiParam(value ="物料计算时自动补充")
private Boolean autoSupply;
@Column(name="PRODUCT_ROUTING_ID")
@ApiParam(value ="工艺路线")
@FieldAnnotation(property = false)
@ -98,4 +104,7 @@ public class ProductOrder extends BaseOrder {
this.productRoutingId = routing != null ? routing.getId() : 0l;
BeanRelation.set(this, EProductOrder.ProductRouting, routing);
}
@JsonBackReference
public List<ParentWork> getParentWorks() { return BeanRelation.list(this, EProductOrder.ParentWorks); }
}

@ -4,6 +4,7 @@ import cn.estsh.i3plus.pojo.aps.annotation.FieldAnnotation;
import cn.estsh.i3plus.pojo.aps.common.BaseCode;
import cn.estsh.i3plus.pojo.aps.common.BeanRelation;
import cn.estsh.i3plus.pojo.aps.holders.EProductRouting;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -52,10 +53,12 @@ public class ProductRouting extends BaseCode {
BeanRelation.set(this, EProductRouting.Material, material);
}
@JsonBackReference
public List<Operation> getOperations() {
return BeanRelation.list(this, EProductRouting.Operations);
}
@JsonBackReference
public List<ProductOrder> getProductOrders() {
return BeanRelation.list(this, EProductRouting.ProductOrders);
}

@ -2,6 +2,7 @@ package cn.estsh.i3plus.pojo.aps.bean;
import cn.estsh.i3plus.pojo.aps.common.BeanRelation;
import cn.estsh.i3plus.pojo.aps.holders.EBaseOrder;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -46,6 +47,11 @@ public class PurchaseOrder extends BaseOrder {
@ApiParam(value ="多余量")
private Double excessCount;
@Column(name="AUTO_SUPPLY")
@ApiParam(value ="物料计算时自动补充")
private Boolean autoSupply;
@JsonIgnore
public Work getWork() {
return BeanRelation.get(this, EBaseOrder.Works);
}

@ -2,6 +2,7 @@ package cn.estsh.i3plus.pojo.aps.bean;
import cn.estsh.i3plus.pojo.aps.common.BeanRelation;
import cn.estsh.i3plus.pojo.aps.holders.EBaseOrder;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -43,6 +44,7 @@ public class SalesOrder extends BaseOrder {
@ApiParam(value ="提前期计算值")
private String calcLeadTime;
@JsonIgnore
public Work getWork() {
return BeanRelation.get(this, EBaseOrder.Works);
}

@ -6,6 +6,7 @@ import cn.estsh.i3plus.pojo.aps.common.BeanRelation;
import cn.estsh.i3plus.pojo.aps.enums.WORK_STATUS;
import cn.estsh.i3plus.pojo.aps.enums.WORK_TYPE;
import cn.estsh.i3plus.pojo.aps.holders.EWork;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -115,22 +116,27 @@ public class Work extends BaseCode {
BeanRelation.set(this, EWork.Order, order);
}
@JsonBackReference
public List<WorkResource> getWorkResources() {
return BeanRelation.list(this, EWork.WorkResources);
}
@JsonBackReference
public List<WorkInput> getWorkInputs() {
return BeanRelation.list(this, EWork.WorkInputs);
}
@JsonBackReference
public List<WorkOutput> getWorkOutputs() {
return BeanRelation.list(this, EWork.WorkOutputs);
}
@JsonBackReference
public List<WorkRelation> getWorkRelationInputs() {
return BeanRelation.list(this, EWork.WorkRelationInputs);
}
@JsonBackReference
public List<WorkRelation> getWorkRelationOutputs() {
return BeanRelation.list(this, EWork.WorkRelationOutputs);
}
@ -144,6 +150,7 @@ public class Work extends BaseCode {
BeanRelation.set(this, EWork.Operation, oper);
}
@JsonBackReference
public List<PlanFeedback> getPlanFeedbacks() {
return BeanRelation.list(this, EWork.PlanFeedbacks);
}

@ -4,6 +4,7 @@ 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.EWorkInput;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -62,6 +63,7 @@ public class WorkInput extends BaseAPS {
BeanRelation.set(this, EWorkInput.Work, work);
}
@JsonBackReference
public List<WorkRelation> getWorkRelations() {
return BeanRelation.list(this, EWorkInput.WorkRelations);
}

@ -4,6 +4,7 @@ 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.EWorkOutput;
import com.fasterxml.jackson.annotation.JsonBackReference;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import lombok.Data;
@ -63,6 +64,7 @@ public class WorkOutput extends BaseAPS {
BeanRelation.set(this, EWorkOutput.Work, work);
}
@JsonBackReference
public List<WorkRelation> getWorkRelations() {
return BeanRelation.list(this, EWorkOutput.WorkRelations);
}

@ -4,6 +4,7 @@ import cn.estsh.i3plus.pojo.aps.enums.FIELD_TYPE;
import cn.estsh.i3plus.pojo.base.bean.BaseBean;
import java.util.*;
import java.util.function.Consumer;
public class BeanInfo {
private Class<? extends BaseBean> cls;
@ -103,6 +104,14 @@ public class BeanInfo {
return null;
}
public Class<? extends BaseBean> getRelationClass(Enum<?> holder) {
RelationInfo relaInfo = getRelationInfo(holder);
if (relaInfo != null) {
return relaInfo.getBeanInfo().getBeanClass();
}
return null;
}
public RELATION_TYPE getRelationType(Enum<?> holder) {
RelationInfo relaInfo = getRelationInfo(holder);
if (relaInfo != null) {
@ -120,31 +129,40 @@ public class BeanInfo {
return RELATION_TYPE.INVALID;
}
public List<Enum<?>> getAllHolders() {
List<Enum<?>> holders = new ArrayList<>();
private void foreach(Consumer<RelationInfo> fun) {
for (Map.Entry<Enum<?>, RelationInfo> entry : relations.entrySet()) {
holders.add(entry.getKey());
fun.accept(entry.getValue());
}
if (this.superBeanInfo != null) {
this.superBeanInfo.foreach(fun);
}
}
public List<Enum<?>> getAllHolders() {
List<Enum<?>> holders = new ArrayList<>();
foreach((RelationInfo info)->{
holders.add(info.getHolder());
});
return holders;
}
public List<Enum<?>> getOwnerHolders() {
List<Enum<?>> owners = new ArrayList<>();
for (Map.Entry<Enum<?>, RelationInfo> entry : relations.entrySet()) {
if (entry.getValue().isOwner()) {
owners.add(entry.getKey());
foreach((RelationInfo info)->{
if (info.isOwner()) {
owners.add(info.getHolder());
}
}
});
return owners;
}
public List<Enum<?>> getNormalSigns() {
List<Enum<?>> holders = new ArrayList<>();
for (Map.Entry<Enum<?>, RelationInfo> entry : relations.entrySet()) {
if (!entry.getValue().isOwner()) {
holders.add(entry.getKey());
foreach((RelationInfo info)->{
if (!info.isOwner()) {
holders.add(info.getHolder());
}
}
});
return holders;
}

@ -25,7 +25,7 @@ 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;
@ -60,7 +60,7 @@ public class DateDuration {
* 0
* @return
*/
public int getTime() {
public long getTime() {
return this.time;
}
@ -68,7 +68,7 @@ public class DateDuration {
*
* @return
*/
public void setTime(int time) {
public void setTime(long time) {
this.time = time;
}
@ -92,25 +92,25 @@ public class DateDuration {
return "0S";
}
int iMaxTimeUnit = 4;
long iMaxTimeUnit = 4;
StringBuffer strExtraString = new StringBuffer();
int extraTime = this.time;
long extraTime = this.time;
if (iMaxTimeUnit >= 4) {
int i = extraTime / 86400;
long i = extraTime / 86400;
if (i > 0) {
strExtraString.append(i).append("D");
}
extraTime -= i * 86400;
}
if (iMaxTimeUnit >= 3) {
int i = extraTime / 3600;
long i = extraTime / 3600;
if (i > 0) {
strExtraString.append(i).append("H");
}
extraTime -= i * 3600;
}
if (iMaxTimeUnit >= 2) {
int i = extraTime / 60;
long i = extraTime / 60;
if (i > 0) {
strExtraString.append(i).append("M");
}

@ -10,5 +10,6 @@ package cn.estsh.i3plus.pojo.aps.enums;
public enum MATERIAL_TYPE {
PRODUCT, // 成品
HALF_PRODUCT, // 半成品
RAW_MATERIAL // 原材料
RAW_MATERIAL, // 原材料
VIRTUAL // 虚拟件
}

@ -0,0 +1,6 @@
package cn.estsh.i3plus.pojo.aps.holders;
public enum EParentWork {
ProductOrder,
Works
}

@ -1,5 +1,6 @@
package cn.estsh.i3plus.pojo.aps.holders;
public enum EProductOrder {
ProductRouting
ProductRouting,
ParentWorks
}

@ -2,6 +2,7 @@ package cn.estsh.i3plus.pojo.aps.holders;
public enum EWork {
Order,
ParentWork,
WorkResources,
WorkInputs,
WorkOutputs,

@ -0,0 +1,9 @@
package cn.estsh.i3plus.pojo.aps.repository;
import cn.estsh.i3plus.pojo.aps.bean.ParentWork;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface ParentWorkRepository extends CrudRepository<ParentWork, Long> {
}

@ -8,6 +8,4 @@
</Relation>
<Relation field="PostRelations" name="WorkRelation" reverse="PostOrder" type="ONE_TO_MULTI" owner="false">
</Relation>
<Relation field="UpperOrders" name="BaseOrder" reverse="LowerOrders" type="MULTI_TO_MULTI" owner="false">
</Relation>
</Class>

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<Class name="ParentWork">
<Relation field="Works" name="Work" reverse="ParentWork" type="ONE_TO_MULTI" owner="true">
</Relation>
</Class>

@ -1,3 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<Class name="ProductOrder" extends="BaseOrder">
<Relation field="ParentWorks" name="ParentWork" reverse="ProductOrder" type="ONE_TO_MULTI" owner="true">
</Relation>
</Class>
Loading…
Cancel
Save