Index: ssts-web/src/main/webapp/js/configUtils.js =================================================================== diff -u -r12600 -r14131 --- ssts-web/src/main/webapp/js/configUtils.js (.../configUtils.js) (revision 12600) +++ ssts-web/src/main/webapp/js/configUtils.js (.../configUtils.js) (revision 14131) @@ -45,6 +45,18 @@ //alert('retValue='+retValue); return retValue; } +//从js文件获取某个obj配置 +function getObjValueFromJs(p,defValue){ + var retValue = defValue; + var value = getValueFromJs(p); + if(value == undefined ){ + return retValue; + } + retValue = value; + //alert('p='+p); + //alert('retValue='+retValue); + return retValue; +} function getValueFromJs(p){ var retValue = undefined; if(typeof(p) == undefined ){ Index: ssts-web/src/main/webapp/disinfectsystem/config/zd5y/config.js =================================================================== diff -u -r13881 -r14131 --- ssts-web/src/main/webapp/disinfectsystem/config/zd5y/config.js (.../config.js) (revision 13881) +++ ssts-web/src/main/webapp/disinfectsystem/config/zd5y/config.js (.../config.js) (revision 14131) @@ -47,6 +47,16 @@ useRecordOperationRoomAllowBlank : false, // 使用记录手术间是否可以为空,默认为是 // 使用记录审核方式, 1: 审核和转换按钮分开; 2:审核和转换按钮合并为1个 useRecordAuditMode : 2, - washAndDisinfectRecordPersonInChargeAllowBlank : false // 清洗责任人是否允许为空 - + washAndDisinfectRecordPersonInChargeAllowBlank : false, // 清洗责任人是否允许为空 + // 外来器械申请单默认科室配置,部门编码1,部门编码2为实际需要配置的科室编码 + foreignTousseAppliationDefaultDepartment:{ + '部门编码1':{ + appDepartCode:'11080301', + settleAccountsDepartCode:'200102' + }, + '部门编码2':{ + appDepartCode:'11080301', + settleAccountsDepartCode:'200102' + } + } } \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js =================================================================== diff -u -r14122 -r14131 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 14122) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 14131) @@ -1386,9 +1386,53 @@ } }); }else{ - top.Ext4.ComponentQuery.query("#foreignToussForm #depart")[0].setValue($Id('depart').value); - top.Ext4.ComponentQuery.query("#foreignToussForm #departCoding")[0].setValue($Id('departCoding').value); - top.Ext4.ComponentQuery.query("#foreignToussForm #settleAccountsDepart")[0].setValue($Id('depart').value); - top.Ext4.ComponentQuery.query("#foreignToussForm #settleAccountsDepartCoding")[0].setValue($Id('departCoding').value); + // 首先取config里面的配置,没有配置才设置为当前登录科室的 + var depart = $Id('depart').value; + var departCoding = $Id('departCoding').value; + var appDepart = depart; + var settleAccountsDepart = depart; + var appDepartCode = departCoding; + var settleAccountsDepartCode = departCoding; + var foreignTousseAppliationDefaultDepartment = getObjValueFromJs('sstsConfig.foreignTousseAppliationDefaultDepartment',null); + if(!isUndefinedOrNullOrEmpty(foreignTousseAppliationDefaultDepartment)){ + var departCfg = foreignTousseAppliationDefaultDepartment[appDepartCode]; + var searchCode = ''; + if(!isUndefinedOrNullOrEmpty(departCfg)){ + if(!isUndefinedOrNullOrEmpty(departCfg.appDepartCode)){ + appDepartCode = departCfg.appDepartCode; + if(appDepartCode != departCoding){ + searchCode = appDepartCode; + } + } + if(!isUndefinedOrNullOrEmpty(departCfg.settleAccountsDepartCode)){ + settleAccountsDepartCode = departCfg.settleAccountsDepartCode; + if(settleAccountsDepartCode != departCoding && settleAccountsDepartCode != searchCode){ + if(searchCode == ''){ + searchCode = settleAccountsDepartCode; + }else{ + searchCode += ","+settleAccountsDepartCode; + } + } + } + } + if(searchCode != ''){ + // 根据编码查找部门名字 + DWREngine.setAsync(false); + OrgUnitTableManager.getOrgNamesByCodes(searchCode,function(codeNameInfoStr){ + var codeNameInfo = JSON.parse(codeNameInfoStr); + if(!isUndefinedOrNullOrEmpty(codeNameInfo[appDepartCode])){ + appDepart = codeNameInfo[appDepartCode]; + } + if(!isUndefinedOrNullOrEmpty(codeNameInfo[settleAccountsDepartCode])){ + settleAccountsDepart = codeNameInfo[settleAccountsDepartCode]; + } + }); + DWREngine.setAsync(true); + } + } + top.Ext4.ComponentQuery.query("#foreignToussForm #depart")[0].setValue(appDepart); + top.Ext4.ComponentQuery.query("#foreignToussForm #departCoding")[0].setValue(appDepartCode); + top.Ext4.ComponentQuery.query("#foreignToussForm #settleAccountsDepart")[0].setValue(settleAccountsDepart); + top.Ext4.ComponentQuery.query("#foreignToussForm #settleAccountsDepartCoding")[0].setValue(settleAccountsDepartCode); } } \ No newline at end of file Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java =================================================================== diff -u -r12997 -r14131 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 12997) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 14131) @@ -54,6 +54,8 @@ public OrgUnit getByCode(String code); + public List getByCodes(String codes); + public void save(OrgUnit orgUnit); public void update(OrgUnit orgUnit); Index: ssts-web/src/main/java/com/forgon/disinfectsystem/directory/dwr/table/OrgUnitTableManager.java =================================================================== diff -u -r13969 -r14131 --- ssts-web/src/main/java/com/forgon/disinfectsystem/directory/dwr/table/OrgUnitTableManager.java (.../OrgUnitTableManager.java) (revision 13969) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/directory/dwr/table/OrgUnitTableManager.java (.../OrgUnitTableManager.java) (revision 14131) @@ -5,6 +5,8 @@ import java.util.Map; import java.util.Set; +import net.sf.json.JSONObject; + import org.apache.commons.lang.StringUtils; import com.forgon.component.grid.GridManager; @@ -199,6 +201,17 @@ return orgUnitManager.getById(id).getCurrentOrgUnitNames(); } + public String getOrgNamesByCodes(String codes) { + JSONObject obj = new JSONObject(); + List orgList = orgUnitManager.getByCodes(codes); + if(orgList != null){ + for (OrgUnit orgUnit : orgList) { + obj.put(orgUnit.getOrgUnitCoding(), orgUnit.getName()); + } + } + return obj.toString(); + } + public String searchOrgUnitBySpellOrWbCode(String simpleSpell) { List orgUnitList = orgUnitManager .searchOrgUnitBySpellOrWbCode(simpleSpell, null); Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java =================================================================== diff -u -r14012 -r14131 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 14012) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 14131) @@ -38,6 +38,8 @@ import com.forgon.treenode.model.THTreeNode; import com.forgon.treenode.service.THTreeNodeManager; +import edu.emory.mathcs.backport.java.util.Arrays; + /** * @author Angus * @@ -760,6 +762,15 @@ public OrgUnit getByCode(String code){ return (OrgUnit)objectDao.getByProperty(OrgUnit.class.getSimpleName(), "orgUnitCoding", code); } + public List getByCodes(String codes){ + if(StringUtils.isNotBlank(codes)){ + String[] codesArr = codes.split(","); + List codesList = Arrays.asList(codesArr); + String sql = String.format(" where %s", SqlUtils.getStringFieldInCollectionsPredicate("po.orgUnitCoding", codesList)); + return objectDao.findBySql(OrgUnit.class.getSimpleName(), sql); + } + return null; + } @Override public void update(OrgUnit orgUnit) { if((orgUnit.getId() != null) || (orgUnit.getId() != 0)){