Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/urgent/service/UrgentLevelManager.java =================================================================== diff -u -r17897 -r26310 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/urgent/service/UrgentLevelManager.java (.../UrgentLevelManager.java) (revision 17897) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/urgent/service/UrgentLevelManager.java (.../UrgentLevelManager.java) (revision 26310) @@ -1,6 +1,7 @@ package com.forgon.disinfectsystem.basedatamanager.urgent.service; import java.util.List; +import java.util.Set; import com.forgon.disinfectsystem.entity.urgent.UrgentLevel; import com.forgon.tools.hibernate.BasePoManager; @@ -26,4 +27,17 @@ * @return */ public UrgentLevel getByName(String name); + /** + * 根据名称集合查找级别最高的对象,此对象需要为启用的对象。如果没有找到,返回null. + * @param names + * @return + */ + public UrgentLevel getByNameSet(Set names); + /** + * 判断色码是否已经被使用 + * @param colorCode 色码 + * @return + */ + public boolean isTheColorUsed(String colorCode); + } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoicePlan.java =================================================================== diff -u -r25737 -r26310 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoicePlan.java (.../InvoicePlan.java) (revision 25737) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/invoicemanager/InvoicePlan.java (.../InvoicePlan.java) (revision 26310) @@ -16,6 +16,8 @@ import javax.persistence.Index; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.Transient; @@ -31,8 +33,10 @@ import com.forgon.disinfectsystem.basedatamanager.invoice.service.InvoiceUtils; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigUtils; import com.forgon.disinfectsystem.common.Constants; +import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingRecord; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; +import com.forgon.disinfectsystem.entity.urgent.UrgentLevel; import com.forgon.disinfectsystem.idpredicate.IDAble; import com.forgon.disinfectsystem.version.VersionAble; import com.forgon.tools.hibernate.ObjectDao; @@ -500,8 +504,11 @@ * 器械返消记录id(因为外来器械申请单也需要器械包返消的id,所以将此字段移动该po中) */ private Long tousseReturnDisinfectRecordId; - /** + * 加急对象 + */ + private UrgentLevel urgentLevel; + /** * 发货计划的ID,数据库的主键,自增类型 */ @Override @@ -666,13 +673,16 @@ return RECYCLINGSTATUS_PARTRECYCLE.equals(recyclingStatus); } - public String getDeliverStatus() { return deliverStatus; } public void setDeliverStatus(String deliverStatus) { this.deliverStatus = deliverStatus; + //已处理状态(发货状态不为待发货或者部分发货)的单,不关联加急对象 + if(!DELIVERSTATUS_AWAITDELIVER.equals(deliverStatus) && !DELIVERSTATUS_PARTDELIVERED.equals(deliverStatus)){ + this.urgentLevel = null; + } } public boolean ended() { @@ -1084,6 +1094,11 @@ public void setUrgentAmount(Integer urgentAmount) { this.urgentAmount = urgentAmount; + if(urgentAmount != null && urgentAmount > 0){ + this.urgent = com.forgon.Constants.STR_YES; + }else{ + this.urgent = com.forgon.Constants.STR_NO; + } } public void setUrgent(String urgent) { @@ -1544,5 +1559,14 @@ public void setCanResendout(String canResendout) { this.canResendout = canResendout; } + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "urgentLevel_id") + public UrgentLevel getUrgentLevel() { + return urgentLevel; + } + + public void setUrgentLevel(UrgentLevel urgentLevel) { + this.urgentLevel = urgentLevel; + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/urgent/service/UrgentLevelManagerImpl.java =================================================================== diff -u -r17941 -r26310 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/urgent/service/UrgentLevelManagerImpl.java (.../UrgentLevelManagerImpl.java) (revision 17941) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/urgent/service/UrgentLevelManagerImpl.java (.../UrgentLevelManagerImpl.java) (revision 26310) @@ -1,6 +1,7 @@ package com.forgon.disinfectsystem.basedatamanager.urgent.service; import java.util.List; +import java.util.Set; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -11,6 +12,7 @@ import com.forgon.tools.hibernate.BasePoManagerImpl; import com.forgon.tools.json.JSONUtil; import com.forgon.tools.string.StringTools; +import com.forgon.tools.util.SqlUtils; public class UrgentLevelManagerImpl extends BasePoManagerImpl implements UrgentLevelManager{ @@ -52,6 +54,8 @@ current.setEnable(object.getEnable()); current.setName(object.getName()); current.setUrgent(object.getUrgent()); + current.setColorCode(object.getColorCode()); + current.setColorName(object.getColorName()); } if(current.getGrade() == null){ Integer maxGrade = getMaxProperty("grade"); @@ -120,5 +124,15 @@ String condition = "po.name='" + name + "' and po.enable='" + Constants.STR_YES + "'"; return getFirst(condition); } - + @Override + public UrgentLevel getByNameSet(Set names) { + String inSql = SqlUtils.get_InSql("name", names.toArray(new String[0])); + String sql = String.format("grade = (select max(grade) from UrgentLevel where 1=1 %s)", inSql); + return getFirst(sql); + } + @Override + public boolean isTheColorUsed(String colorCode) { + String countSql = String.format("colorCode='%s'", colorCode); + return count(countSql) > 0? true:false; + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/urgent/UrgentLevel.java =================================================================== diff -u -r23492 -r26310 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/urgent/UrgentLevel.java (.../UrgentLevel.java) (revision 23492) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/urgent/UrgentLevel.java (.../UrgentLevel.java) (revision 26310) @@ -42,6 +42,14 @@ * 是否加急 */ private String urgent = Constants.STR_YES; + /** + * 色码 + */ + private String colorCode; + /** + * 颜色名称 + */ + private String colorName; @Id @GeneratedValue(strategy=GenerationType.AUTO) public Long getId() { @@ -75,6 +83,20 @@ public void setUrgent(String urgent) { this.urgent = urgent; } + + public String getColorCode() { + return colorCode; + } + public void setColorCode(String colorCode) { + this.colorCode = colorCode; + } + + public String getColorName() { + return colorName; + } + public void setColorName(String colorName) { + this.colorName = colorName; + } /** * 判断是否加急。不加急的项,应该只有一个 * @return Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/ApplicationItemVO.java =================================================================== diff -u -r21392 -r26310 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/ApplicationItemVO.java (.../ApplicationItemVO.java) (revision 21392) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/ApplicationItemVO.java (.../ApplicationItemVO.java) (revision 26310) @@ -67,7 +67,14 @@ * 供应商名称 */ private String supplierName; - + /** + * 加急数量 + */ + private Integer urgentAmount; + /** + * 加急等级 + */ + private String urgentLevel; public String getName() { return name; @@ -213,6 +220,22 @@ this.supplierName = supplierName; } + public Integer getUrgentAmount() { + return urgentAmount; + } + + public void setUrgentAmount(Integer urgentAmount) { + this.urgentAmount = urgentAmount; + } + + public String getUrgentLevel() { + return urgentLevel; + } + + public void setUrgentLevel(String urgentLevel) { + this.urgentLevel = urgentLevel; + } + @Override public String toString() { return "ApplicationItemVO{" +