Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java
===================================================================
diff -u -r41600 -r41606
--- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 41600)
+++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 41606)
@@ -2971,17 +2971,25 @@
/**
* 是否限制最小申请数量。条件:物品为复用性物品且整包清洗为是,同时最小数量大于0
+ *
非整包申请的消毒物品,也不限制
* @return true:限制,false:不限制
*/
public boolean limitMinApplyAmount() {
+ if(isDisinfection() && !applyEntireTousse()){
+ return false;
+ }
return cleanedEntirely() && getMinApplyAmount() > 0;
}
/**
* 是否限制最大申请数量.条件:物品为复用性物品且整包清洗为是,同时最大数量大于0
+ *
非整包申请的消毒物品,也不限制
* @return true:限制,false:不限制
*/
public boolean limitMaxApplyAmount() {
+ if(isDisinfection() && !applyEntireTousse()){
+ return false;
+ }
return cleanedEntirely() && getMaxApplyAmount() > 0;
}
}
Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/departmentapptemplate/departmentAppTemplateForm.js
===================================================================
diff -u -r41600 -r41606
--- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/departmentapptemplate/departmentAppTemplateForm.js (.../departmentAppTemplateForm.js) (revision 41600)
+++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/departmentapptemplate/departmentAppTemplateForm.js (.../departmentAppTemplateForm.js) (revision 41606)
@@ -162,7 +162,9 @@
{name : 'amount',mapping : 'amount'},
{name : 'minApplyAmount',mapping : 'minApplyAmount'},
{name : 'maxApplyAmount',mapping : 'maxApplyAmount'},
- {name : 'isCleanedEntirely',mapping : 'isCleanedEntirely'}]
+ {name : 'isCleanedEntirely',mapping : 'isCleanedEntirely'},
+ {name: 'isApplyEntireTousse'},
+ {name: 'tousseType'}]
)
});
//一次性物品数据源
@@ -199,7 +201,9 @@
{name: 'sortNumber'},
{name: 'minApplyAmount'},
{name: 'maxApplyAmount'},
- {name: 'isCleanedEntirely'}
+ {name: 'isCleanedEntirely'},
+ {name: 'isApplyEntireTousse'},
+ {name: 'tousseType'}
]
});
@@ -352,7 +356,12 @@
name : 'id',
name : 'tousseName',
name : 'amount',
- name : 'sortNumber'
+ name : 'sortNumber',
+ name: 'minApplyAmount',
+ name: 'maxApplyAmount',
+ name: 'isCleanedEntirely',
+ name: 'isApplyEntireTousse',
+ name: 'tousseType'
}]);
var diposableGoodsConfig = Ext.data.Record.create([{
@@ -795,9 +804,11 @@
var maxApplyAmount = obj.record.data.maxApplyAmount || 0;
var minApplyAmount = obj.record.data.minApplyAmount || 0;
var isCleanedEntirely = obj.record.data.isCleanedEntirely;
+ var isApplyEntireTousse = obj.record.data.isApplyEntireTousse;
+ var tousseType = obj.record.data.tousseType;
var name = obj.record.data.tousseName;
var amount = parseInt(obj.value || 0);
- var validator = ApplyAmountValidator(name, isCleanedEntirely, minApplyAmount, maxApplyAmount)
+ var validator = ApplyAmountValidator(name, isCleanedEntirely, minApplyAmount, maxApplyAmount, isApplyEntireTousse, tousseType)
if(validator.validate(amount, {})){
tousseItemsStore.getAt(obj.row).set('amount','');
}
@@ -1049,7 +1060,9 @@
sortNumber : (maxNumber+1),
minApplyAmount: record.get('minApplyAmount'),
maxApplyAmount: record.get('maxApplyAmount'),
- isCleanedEntirely: record.get('isCleanedEntirely')
+ isCleanedEntirely: record.get('isCleanedEntirely'),
+ isApplyEntireTousse: record.get('isApplyEntireTousse'),
+ tousseType: record.get('tousseType')
});
top.Ext.getCmp('configGrid2').stopEditing();// 停止编辑
tousseItemsStore.add(p);// 插入到最后一行
Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js
===================================================================
diff -u -r41600 -r41606
--- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 41600)
+++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 41606)
@@ -1022,6 +1022,8 @@
tousseType : tousseType,
isApplyEntireTousse : isApplyEntireTousse,
isCleanedEntirely: isCleanedEntirely,
+ minApplyAmount : minApplyAmount,
+ maxApplyAmount : maxApplyAmount,
expressInvoice : expressInvoice,
externalCode : externalCode,
storage : storageAmount,
@@ -1257,7 +1259,7 @@
}
}else{
var isCleanedEntirely = top.Ext4.getCmp('isCleanedEntirely').getValue();
- var validator = ApplyAmountValidator(name, isCleanedEntirely, minApplyAmount, maxApplyAmount);
+ var validator = ApplyAmountValidator(name, isCleanedEntirely, minApplyAmount, maxApplyAmount, isApplyEntireTousse, tousseType);
if(validator.validate(count, {})){
return false;
}
Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js
===================================================================
diff -u -r41601 -r41606
--- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js (.../goodsApplicationForm.js) (revision 41601)
+++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js (.../goodsApplicationForm.js) (revision 41606)
@@ -3355,13 +3355,15 @@
var minApplyAmount = record.get("minApplyAmount");
var maxApplyAmount = record.get("maxApplyAmount");
var isCleanedEntirely = record.get("isCleanedEntirely") || '';
+ var isApplyEntireTousse = record.get("isApplyEntireTousse") || '';
+ var tousseType = record.get("tousseType") || '';
var count = record.get('count');
if('是' !== isCleanedEntirely) { // 非整包清洗,不验证申请数量
return false;
}
if ("urgentAmount" !== context.field || !count) {
var notify = {}
- var validator = ApplyAmountValidator(name, isCleanedEntirely, minApplyAmount, maxApplyAmount);
+ var validator = ApplyAmountValidator(name, isCleanedEntirely, minApplyAmount, maxApplyAmount, isApplyEntireTousse, tousseType);
if(validator.validate(count, notify)){
if(notify.resetCount){
record.set("count", context.originalValue);
@@ -3390,9 +3392,11 @@
var minApplyAmount = record.minApplyAmount;
var maxApplyAmount = record.maxApplyAmount;
var isCleanedEntirely = record.isCleanedEntirely || '';
+ var isApplyEntireTousse = record.isApplyEntireTousse || '';
+ var tousseType = record.tousseType || '';
var count = record.count;
if (count){
- var validator = ApplyAmountValidator(name, isCleanedEntirely, minApplyAmount, maxApplyAmount);
+ var validator = ApplyAmountValidator(name, isCleanedEntirely, minApplyAmount, maxApplyAmount, isApplyEntireTousse, tousseType);
validator.validate(count, {})
}
}
Index: ssts-basedata/src/test/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinitionApplyAmountLimitationTest.java
===================================================================
diff -u -r41600 -r41606
--- ssts-basedata/src/test/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinitionApplyAmountLimitationTest.java (.../TousseDefinitionApplyAmountLimitationTest.java) (revision 41600)
+++ ssts-basedata/src/test/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinitionApplyAmountLimitationTest.java (.../TousseDefinitionApplyAmountLimitationTest.java) (revision 41606)
@@ -68,4 +68,22 @@
tousseDefinition.setMaxApplyAmount(0);
assertFalse(tousseDefinition.limitMaxApplyAmount());
}
+
+ /**
+ * 针对消毒物品。非整包申请的,不限制,但是整包申请的,需要限制
+ */
+ @Test
+ public void testLimitApplyAmount_Disinfect() {
+ TousseDefinition tousseDefinition = new TousseDefinition();
+ tousseDefinition.setIsCleanedEntirely(TousseDefinition.STR_YES);
+ tousseDefinition.setMinApplyAmount(10);
+ tousseDefinition.setMaxApplyAmount(100);
+ tousseDefinition.setTousseType(TousseDefinition.PACKAGE_TYPE_DISINFECTION);
+ assertFalse(tousseDefinition.limitMinApplyAmount());
+ assertFalse(tousseDefinition.limitMaxApplyAmount());
+
+ tousseDefinition.setIsApplyEntireTousse(TousseDefinition.STR_YES);
+ assertTrue(tousseDefinition.limitMinApplyAmount());
+ assertTrue(tousseDefinition.limitMaxApplyAmount());
+ }
}
Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/departmentapplicationtemplate/action/DepartmentAppTemplateAction.java
===================================================================
diff -u -r41600 -r41606
--- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/departmentapplicationtemplate/action/DepartmentAppTemplateAction.java (.../DepartmentAppTemplateAction.java) (revision 41600)
+++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/departmentapplicationtemplate/action/DepartmentAppTemplateAction.java (.../DepartmentAppTemplateAction.java) (revision 41606)
@@ -596,6 +596,8 @@
.append(",'"+td.getTousseDefinition().getMinApplyAmount()+"'")
.append(",'"+td.getTousseDefinition().getMaxApplyAmount()+"'")
.append(",'"+td.getTousseDefinition().getIsCleanedEntirely()+"'")
+ .append(",'"+td.getTousseDefinition().getIsApplyEntireTousse()+"'")
+ .append(",'"+td.getTousseDefinition().getTousseType()+"'")
.append("]");
}
Index: ssts-web/src/main/webapp/disinfectsystem/modules/apply/ApplyAmountValidator.js
===================================================================
diff -u -r41605 -r41606
--- ssts-web/src/main/webapp/disinfectsystem/modules/apply/ApplyAmountValidator.js (.../ApplyAmountValidator.js) (revision 41605)
+++ ssts-web/src/main/webapp/disinfectsystem/modules/apply/ApplyAmountValidator.js (.../ApplyAmountValidator.js) (revision 41606)
@@ -39,14 +39,18 @@
* @param isCleanedEntirely 是否整包清洗。只有整包清洗才验证。非整包清洗直接通过
* @param minApplyAmount 最小申请数量。必须大于0的整数,如果为0或者null或者undefined,或者'',都不验证最小申请数量
* @param maxApplyAmount 最大申请数量。必须大于0的整数,如果为0或者null或者undefined,或者'',则不验证最大申请数量
+ * @param applyEntirely 是否整包申请,只有在器械包类型为消毒物品时才验证,非整包申请的消毒物品,不限制最大最小数量。因为此时是材料数量,不是包数量
+ * @param tousseType 器械包类型。这里只用来判断是不是消毒物品
*/
- function Validator(name, isCleanedEntirely, minApplyAmount, maxApplyAmount) {
+ function Validator(name, isCleanedEntirely, minApplyAmount, maxApplyAmount, applyEntirely, tousseType) {
if (typeof showResult !== 'function') {
console.error('showResult 函数未定义,请页面中引入js/common.js');
return;
}
this.name = name;
this.isCleanedEntirely = isCleanedEntirely;
+ this.applyEntirely = applyEntirely;
+ this.tousseType = tousseType;
this.minApplyAmount = parseInt(minApplyAmount);
this.maxApplyAmount = parseInt(maxApplyAmount);
this.minApplyAmount = this.minApplyAmount || 0;
@@ -64,6 +68,9 @@
if('是' !== this.isCleanedEntirely) { // 非整包清洗,不验证申请数量
return false;
}
+ if('消毒物品' === this.tousseType && '否' === this.applyEntirely) {
+ return false;
+ }
if(!count) {
showResult("申请数量不能为空!");
resetNotify.resetUrgent = true;
@@ -82,7 +89,7 @@
return false;
};
- return function (name, isCleanedEntirely, minApplyAmount, maxApplyAmount) {
- return new Validator(name, isCleanedEntirely, minApplyAmount, maxApplyAmount)
+ return function (name, isCleanedEntirely, minApplyAmount, maxApplyAmount, applyEntirely, tousseType) {
+ return new Validator(name, isCleanedEntirely, minApplyAmount, maxApplyAmount, applyEntirely, tousseType)
}
})();
\ No newline at end of file