Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js =================================================================== diff -u -r22632 -r22638 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js (.../goodsApplicationForm.js) (revision 22632) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationForm.js (.../goodsApplicationForm.js) (revision 22638) @@ -1423,9 +1423,16 @@ //2、设置“申请科室”和“结算科室” if (!isFirstSupplyRoomUser) { - appDepartJsonStore.add({id: deptCoding, name: depart}); //必须加上这一句不然设不上值 - top.Ext4.getCmp('depart').setRawValue(depart); - top.Ext4.getCmp('departCoding').setValue(deptCoding); + appDepartJsonStore.load({ + params: {spell: depart, departmentCode: departCoding}, + callback: function(records, operation, success) { + if (records && records.length > 0) { + top.Ext4.getCmp("depart").setValue(depart); + top.Ext4.getCmp("departCoding").setValue(departCoding); + } + } + }); + DWREngine.setAsync(false); RecyclingApplicationTableManager.isSettleAccountsDepart(deptCoding,function(yes){ if(yes){ @@ -1463,9 +1470,15 @@ top.Ext4.getCmp("applicantCode").setValue(recyclingApplication.applicantCode); top.Ext4.getCmp("hospitalNumber").setValue(recyclingApplication.hospitalNumber); - appDepartJsonStore.add({id: recyclingApplication.departCoding, name: recyclingApplication.depart}); //必须加上这一句不然设不上值 - top.Ext4.getCmp("departCoding").setValue(recyclingApplication.departCoding); - top.Ext4.getCmp("depart").setRawValue(recyclingApplication.depart); + appDepartJsonStore.load({ + params: {spell: depart, departmentCode: departCoding}, + callback: function(records, operation, success) { + if (records && records.length > 0) { + top.Ext4.getCmp("depart").setValue(depart); + top.Ext4.getCmp("departCoding").setValue(departCoding); + } + } + }); top.Ext4.getCmp("settleAccountsDepartCoding").setValue(recyclingApplication.settleAccountsDepartCoding); top.Ext4.getCmp("settleAccountsDepart").setValue(recyclingApplication.settleAccountsDepart); Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java =================================================================== diff -u -r21858 -r22638 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 21858) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 22638) @@ -1773,4 +1773,15 @@ } return null; } + + @Override + public OrgUnit getSettleAccountsDepartment(String departmentCode) { + String hql = String.format("select po from OrgUnit po,SupplyRoomConfig src where po.orgUnitCoding=src.orgUnitCoding and src.supplyRoomType=4 and po.orgUnitCoding='%s'", departmentCode); + List list = objectDao.findByHql(hql,-1,-1); + OrgUnit orgUnit = null; + if (CollectionUtils.isNotEmpty(list)) { + orgUnit = list.get(0); + } + return orgUnit; + } } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java =================================================================== diff -u -r22596 -r22638 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 22596) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 22638) @@ -1004,7 +1004,7 @@ //如果指定了要加载哪个科室,则直接返回即可 if (StringTools.isNotBlank(departmentCode)) { OrgUnit specifyDepartment = orgUnitManager.getByCode(departmentCode); - if (departmentCode != null) { + if (specifyDepartment != null) { orgUnitList.add(specifyDepartment); } } else { @@ -1056,14 +1056,19 @@ * 获取结算科室Json */ public void getSettleAccountsDepartJson() { - // int start = StrutsParamUtils.getPraramValue("start", 0); - // int limit = StrutsParamUtils.getPraramValue("limit", 0); String spell = StrutsParamUtils.getPraramValue("spell", ""); - String withoutBaseOrg = StrutsParamUtils.getPraramValue( - "withoutBaseOrg", "true"); - String related = StrutsParamUtils.getPraramValue("related", ""); - List orgUnitList = orgUnitManager - .searchOrgUnitByRoomTypeSpellOrWbCode(spell, SupplyRoomConfig.SUPPLYROOM_TYPE_SETTLEACCOUNT, true); + String departmentCode = StrutsParamUtils.getPraramValue("departmentCode", ""); + String withoutBaseOrg = StrutsParamUtils.getPraramValue("withoutBaseOrg", "true"); + List orgUnitList = new ArrayList(); + //如果指定了要加载哪个科室,则直接返回即可 + if (StringTools.isNotBlank(departmentCode)) { + OrgUnit settleAccountsDepartment = orgUnitManager.getSettleAccountsDepartment(departmentCode); + if (settleAccountsDepartment != null) { + orgUnitList.add(settleAccountsDepartment); + } + } else { + orgUnitList = orgUnitManager.searchOrgUnitByRoomTypeSpellOrWbCode(spell, SupplyRoomConfig.SUPPLYROOM_TYPE_SETTLEACCOUNT, true); + } List> list = new LinkedList<>(); if (orgUnitList != null) { Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/expensiveGoodsApplication/expensiveGoodsApplicationForm.js =================================================================== diff -u -r22549 -r22638 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/expensiveGoodsApplication/expensiveGoodsApplicationForm.js (.../expensiveGoodsApplicationForm.js) (revision 22549) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/expensiveGoodsApplication/expensiveGoodsApplicationForm.js (.../expensiveGoodsApplicationForm.js) (revision 22638) @@ -55,7 +55,6 @@ * 结算科室的store */ var settleAccountsDepartmentStore = new top.Ext4.data.Store({ - autoLoad: true, proxy : { type : 'ajax', url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!getSettleAccountsDepartJson.do', @@ -87,16 +86,7 @@ fields : [ {name : 'departmentCode',mapping : 'departmentCode'}, {name : 'departmentName',mapping : 'departmentName'} - ], - listeners: { - load : function(thiz, records, successful, eOpts) { - if (records.length > 0) { - top.Ext4.getCmp('handleDepart').setValue(records[0].data.departmentName); - top.Ext4.getCmp('handleDepartCoding').setValue(records[0].data.departmentCode); - top.Ext4.getCmp('handleDepartment').setValue(records[0].data.departmentCode); - } - } - } + ] }); /** @@ -823,10 +813,10 @@ var handleDepartCoding = data.handleDepartCoding; //1、设置“申请科室”、“结算科室”、“处理科室”combo的显示值 - applyDepartmentStore.add({departmentCode: departCoding, departmentName: depart}); //必须加上这一句不然设不上值 - top.Ext4.getCmp('department').setValue(departCoding); //科室的combo(主要用于显示) - top.Ext4.getCmp('settleAccountsDepartment').setValue(settleAccountsDepartCoding); //科室的combo(主要用于显示) - handleDepartmentStore.add({departmentCode: handleDepartCoding, departmentName: handleDepart}); //必须加上这一句不然设不上值 + setDepartment(applyDepartmentStore, departCoding, depart); + setSettleAccountsDepartmentByApplyDepartment(settleAccountsDepartmentStore, settleAccountsDepartCoding, settleAccountsDepart); + + handleDepartmentStore.load(); //必须加上这一句不然设不上值 top.Ext4.getCmp('handleDepartment').setValue(handleDepartCoding); //科室的combo(主要用于显示) //2、设置申请项 @@ -850,16 +840,17 @@ getServerTime('yyyy-MM-dd HH:mm',top.Ext4,'applicationTimeStr'); //2、设置默认的“申请科室”、“结算科室”、“处理科室” - applyDepartmentStore.add({departmentCode: currentOrgUnitCode, departmentName: currentOrgUnitName}); //必须加上这一句不然设不上值 - top.Ext4.getCmp("depart").setValue(currentOrgUnitName); //科室名称 - top.Ext4.getCmp("departCoding").setValue(currentOrgUnitCode); //科室编码 - top.Ext4.getCmp('department').setValue(currentOrgUnitCode); //科室的combo(主要用于显示) - - top.Ext4.getCmp("settleAccountsDepart").setValue(currentOrgUnitName); //科室名称 - top.Ext4.getCmp("settleAccountsDepartCoding").setValue(currentOrgUnitCode); //科室编码 - top.Ext4.getCmp('settleAccountsDepartment').setValue(currentOrgUnitCode); //科室的combo(主要用于显示) - - handleDepartmentStore.load(); + setDepartment(applyDepartmentStore, currentOrgUnitCode, currentOrgUnitName); + setSettleAccountsDepartmentByApplyDepartment(settleAccountsDepartmentStore, currentOrgUnitCode, currentOrgUnitName); + handleDepartmentStore.load({ + callback: function(records, operation, success) { + if (records && records.length > 0) { + top.Ext4.getCmp('handleDepart').setValue(records[0].data.departmentName); + top.Ext4.getCmp('handleDepartCoding').setValue(records[0].data.departmentCode); + top.Ext4.getCmp('handleDepartment').setValue(records[0].data.departmentCode); + } + } + }); } return formObj; } @@ -1245,9 +1236,9 @@ */ function setDepartment(applyDepartmentStore, departmentCode, departmentName) { applyDepartmentStore.load({ - params: {spell: departmentName}, + params: {spell: departmentName, departmentCode: departmentCode}, callback: function(records, operation, success) { - if (records && records.length > 0 && records[0].data.departmentCode == departmentCode) { + if (records && records.length > 0) { top.Ext4.getCmp("depart").setValue(departmentName); //科室名称 top.Ext4.getCmp("departCoding").setValue(departmentCode); //科室编码 top.Ext4.getCmp('department').setValue(departmentCode); //科室的combo(主要用于显示) @@ -1264,9 +1255,9 @@ */ function setSettleAccountsDepartmentByApplyDepartment(settleAccountsDepartmentStore, departmentCode, departmentName) { settleAccountsDepartmentStore.load({ - params: {spell: departmentName}, + params: {spell: departmentName, departmentCode: departmentCode}, callback: function(records, operation, success) { - if (records && records.length > 0 && records[0].data.departmentCode == departmentCode) { + if (records && records.length > 0) { top.Ext4.getCmp("settleAccountsDepart").setValue(departmentName); //科室名称 top.Ext4.getCmp("settleAccountsDepartCoding").setValue(departmentCode); //科室编码 top.Ext4.getCmp('settleAccountsDepartment').setValue(departmentCode); //科室的combo(主要用于显示) Index: ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js =================================================================== diff -u -r22632 -r22638 --- ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 22632) +++ ssts-web/src/main/webapp/disinfectsystem/recyclingApplication/goodsApplicationView.js (.../goodsApplicationView.js) (revision 22638) @@ -318,7 +318,6 @@ var appDepartJsonStore = new Ext4.data.Store({ //limit参数,每页显示条数,默认为25 pageSize: isIE6OrIE7 ? 15 : 50, - autoLoad: true, proxy : { type : 'ajax', url : WWWROOT + '/systemmanage/orgUnit/searchApplyDepartmentByKeyWord.do?onlyOneself=false', Index: forgon-core/src/main/java/com/forgon/directory/action/OrgUnitAction.java =================================================================== diff -u -r22317 -r22638 --- forgon-core/src/main/java/com/forgon/directory/action/OrgUnitAction.java (.../OrgUnitAction.java) (revision 22317) +++ forgon-core/src/main/java/com/forgon/directory/action/OrgUnitAction.java (.../OrgUnitAction.java) (revision 22638) @@ -417,8 +417,22 @@ */ public void searchApplyDepartmentByKeyWord() { String spell = StrutsParamUtils.getPraramValue("spell", ""); - boolean onlyOneself = Boolean.valueOf(StrutsParamUtils.getPraramValue("onlyOneself", "true")); - List> list = orgUnitManager.searchApplyDepartmentByKeyWord(spell, onlyOneself); + String departmentCode = StrutsParamUtils.getPraramValue("departmentCode", ""); + + List> list = new ArrayList>(); + //如果指定了要加载哪个科室,则直接返回即可 + if (StringTools.isNotBlank(departmentCode)) { + OrgUnit specifyDepartment = orgUnitManager.getByCode(departmentCode); + if (specifyDepartment != null) { + JSONObject obj = new JSONObject(); + obj.put("departmentName", specifyDepartment.getName()); + obj.put("departmentCode", specifyDepartment.getOrgUnitCoding()); + list.add(obj); + } + } else { + boolean onlyOneself = Boolean.valueOf(StrutsParamUtils.getPraramValue("onlyOneself", "true")); + list = orgUnitManager.searchApplyDepartmentByKeyWord(spell, onlyOneself); + } PageUtil.outPutResult(PageUtil.getPagePara(), list); } Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java =================================================================== diff -u -r21858 -r22638 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 21858) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 22638) @@ -219,4 +219,11 @@ * @return */ public List findOrgUnitBySupplyRoomType(int supplyRoomType); + + /** + * 根据科室编码获取结算科室(如果此科室编码不是结算科室,则返回null). + * @param departmentCode 指定的科室编码 + * @return + */ + public OrgUnit getSettleAccountsDepartment(String departmentCode); }