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