Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplyroomtype/supplyRoomTypeView.jsp =================================================================== diff -u -r12331 -r15002 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplyroomtype/supplyRoomTypeView.jsp (.../supplyRoomTypeView.jsp) (revision 12331) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplyroomtype/supplyRoomTypeView.jsp (.../supplyRoomTypeView.jsp) (revision 15002) @@ -8,6 +8,8 @@ <%@ include file="/common/includeExtJsAndCss.jsp"%> + + Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplyroomtype/supplyRoomTypeForm.js =================================================================== diff -u -r14921 -r15002 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplyroomtype/supplyRoomTypeForm.js (.../supplyRoomTypeForm.js) (revision 14921) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/supplyroomtype/supplyRoomTypeForm.js (.../supplyRoomTypeForm.js) (revision 15002) @@ -23,11 +23,6 @@ if (rows) { for ( var i = 0; i < rows.length; i++) { supplyRoom1Store3.remove(rows[i]); - supplyRoom1Store3.each(function(record){ - if (record.get('sequence') > rows[i].data.sequence) { - record.set('sequence',record.get('sequence') - 1); - } - }); } } }; @@ -41,18 +36,19 @@ } }; +function setRecordSequence(store){ + for(var i=0;i rows[i].data.sequence) { - record.set('sequence', parseInt(record.get('sequence')) - 1); - } - }); - rows[i].set('sequence',total); supplyRoom1Store3.remove(rows[i]); supplyRoom1Store3.insert(total - 1, rows[i]); } @@ -162,7 +146,8 @@ {name : 'id'}, {name : 'departId'}, {name : 'name'}, - {name : 'sequence'} + {name : 'sequence'}, + {name : 'newSequence'} ] }); @@ -318,47 +303,19 @@ {name : 'name'} ]); + function setRecordSequenceAndGetSupplyRoomItemsStr(store){ + setRecordSequence(store);// 设置序号 + return buildJSONStringFromStore(store); + } function getGridData() { - var result = ""; - for ( var i = 0; i < supplyRoom1Store.getCount(); i++) { - var record = supplyRoom1Store.getAt(i); - if (result == null || result.length <= 0) { - result = record.get('id') + "," +record.get('departId') + "," + record.get('name'); - } else { - result += ";" + record.get('id') + "," +record.get('departId') + "," + record.get('name'); - } - } - $Id('supplyRoom_type_1').value = result; - result = ""; - for ( var i = 0; i < supplyRoom1Store2.getCount(); i++) { - var record = supplyRoom1Store2.getAt(i); - if (result == null || result.length <= 0) { - result = record.get('id') + "," +record.get('departId') + "," + record.get('name'); - } else { - result += ";" + record.get('id') + "," +record.get('departId') + "," + record.get('name'); - } - } - $Id('supplyRoom_type_2').value = result; - result = ""; - for ( var i = 0; i < supplyRoom1Store3.getCount(); i++) { - var record = supplyRoom1Store3.getAt(i); - if (result == null || result.length <= 0) { - result = record.get('id') + "," +record.get('departId') + "," + record.get('name') + "," + record.get('sequence'); - } else { - result += ";" + record.get('id') + "," +record.get('departId') + "," + record.get('name') + "," + record.get('sequence'); - } - } - $Id('supplyRoom_type_3').value = result; - result = ""; - for ( var i = 0; i < supplyRoom1Store4.getCount(); i++) { - var record = supplyRoom1Store4.getAt(i); - if (result == null || result.length <= 0) { - result = record.get('id') + "," +record.get('departId') + "," + record.get('name'); - } else { - result += ";" + record.get('id') + "," +record.get('departId') + "," + record.get('name'); - } - } - $Id('supplyRoom_type_4').value = result; + + $Id('supplyRoom_type_1').value = setRecordSequenceAndGetSupplyRoomItemsStr(supplyRoom1Store); + // 二级供应室 + $Id('supplyRoom_type_2').value = setRecordSequenceAndGetSupplyRoomItemsStr(supplyRoom1Store2); + // 科室申领配置 + $Id('supplyRoom_type_3').value = setRecordSequenceAndGetSupplyRoomItemsStr(supplyRoom1Store3); + // 结算科室配置 + $Id('supplyRoom_type_4').value = setRecordSequenceAndGetSupplyRoomItemsStr(supplyRoom1Store4); } //验证科室是否重复添加 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/service/SupplyRoomConfigManagerImpl.java =================================================================== diff -u -r14990 -r15002 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/service/SupplyRoomConfigManagerImpl.java (.../SupplyRoomConfigManagerImpl.java) (revision 14990) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/service/SupplyRoomConfigManagerImpl.java (.../SupplyRoomConfigManagerImpl.java) (revision 15002) @@ -61,14 +61,6 @@ @Override public void saveOrUpdate(SupplyRoomConfig supplyRoomConfig) { // 类型为零是系统级别的参数,要过滤掉,否则会报空指针异常 - // 申领科室排序 - if (!supplyRoomConfig.getSupplyRoomType().equals( - SupplyRoomConfig.SUPPLYROOM_TYPE_0)) { - int maxSeq = this - .getMaxSequenceFromSupplyRoomConfig(supplyRoomConfig - .getSupplyRoomType()); - supplyRoomConfig.setSequence(maxSeq + 1); - } objectDao.saveOrUpdate(supplyRoomConfig); } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java =================================================================== diff -u -r14990 -r15002 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 14990) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/action/SupplyRoomConfigAction.java (.../SupplyRoomConfigAction.java) (revision 15002) @@ -32,6 +32,8 @@ import com.forgon.systemsetting.service.HttpOptionManager; import com.forgon.tools.Constants; import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.StrutsResponseUtils; +import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JSONUtil; import com.forgon.tools.util.SqlUtils; @@ -506,33 +508,37 @@ // 结算科室 getSupplyRoomConfigIds(supplyRoom_type_4, ids); } - private void processSupplyRoomCongfig(int supplyRoomType,String supplyRoom_type,List supplyRoomConfigToSave,Set supplyRoomConfigIdsToDelete){ - if (StringUtils.isNotBlank(supplyRoom_type)) { + private void processSupplyRoomCongfig(int supplyRoomType,String supplyRoom_type,List supplyRoomConfigToSave,Set supplyRoomConfigIdsToDelete,List supplyRoomConfigToUpdate){ + JSONArray supplyRoomArr = JSONArray.fromObject(supplyRoom_type); + if(supplyRoomArr.size() == 0){ + supplyRoomConfigManager.deleteAllSupplyRoomConfig(supplyRoomType); + return; + }else{ Set supplyRoomConfigIds = new HashSet(); - String[] rs = supplyRoom_type.split(";"); - for (String supplyRoomItem : rs) { - String[] result = supplyRoomItem.split(","); - String id = result[0]; - String departId = result[1]; - String name = result[2]; - - if ("0".equals(id)) { + for(int i=0;i 3){ - String sequence = result[3]; - supplyRoomConfig.setSequence(Integer.parseInt(sequence)); - } + supplyRoomConfig.setSequence(newSequence); supplyRoomConfigToSave.add(supplyRoomConfig); } else { - supplyRoomConfigIds.add(Long.valueOf(id)); + if(newSequence != null && !newSequence.equals(sequence)){ + // 序号有修改 + supplyRoomConfigToUpdate.add(obj); + } + supplyRoomConfigIds.add(id); } } getDeleteSupplyRoomConfig(supplyRoomType, supplyRoomConfigIds, supplyRoomConfigIdsToDelete); - } else { - supplyRoomConfigManager.deleteAllSupplyRoomConfig(supplyRoomType); } } // 优化速度之后的版本 @@ -551,6 +557,8 @@ } List supplyRoomConfigToSave = new LinkedList(); Set supplyRoomConfigIdsToDelete = new HashSet(); + List supplyRoomConfigToUpdate = new LinkedList(); + // Map idToSupplyRoomConfigMap = new HashMap(); // getAllSupplyRoomConfigIds(supplyRoomConfigIds); @@ -562,20 +570,30 @@ // } // } // 1级供应室 - processSupplyRoomCongfig(SupplyRoomConfig.SUPPLYROOM_TYPE_1, supplyRoom_type_1, supplyRoomConfigToSave, supplyRoomConfigIdsToDelete); + processSupplyRoomCongfig(SupplyRoomConfig.SUPPLYROOM_TYPE_1, supplyRoom_type_1, supplyRoomConfigToSave, supplyRoomConfigIdsToDelete,supplyRoomConfigToUpdate); // 2级供应室 - processSupplyRoomCongfig(SupplyRoomConfig.SUPPLYROOM_TYPE_2, supplyRoom_type_2, supplyRoomConfigToSave, supplyRoomConfigIdsToDelete); + processSupplyRoomCongfig(SupplyRoomConfig.SUPPLYROOM_TYPE_2, supplyRoom_type_2, supplyRoomConfigToSave, supplyRoomConfigIdsToDelete,supplyRoomConfigToUpdate); // 申领科室 - processSupplyRoomCongfig(SupplyRoomConfig.SUPPLYROOM_TYPE_3, supplyRoom_type_3, supplyRoomConfigToSave, supplyRoomConfigIdsToDelete); + processSupplyRoomCongfig(SupplyRoomConfig.SUPPLYROOM_TYPE_3, supplyRoom_type_3, supplyRoomConfigToSave, supplyRoomConfigIdsToDelete,supplyRoomConfigToUpdate); // 结算科室 - processSupplyRoomCongfig(SupplyRoomConfig.SUPPLYROOM_TYPE_4, supplyRoom_type_4, supplyRoomConfigToSave, supplyRoomConfigIdsToDelete); + processSupplyRoomCongfig(SupplyRoomConfig.SUPPLYROOM_TYPE_4, supplyRoom_type_4, supplyRoomConfigToSave, supplyRoomConfigIdsToDelete,supplyRoomConfigToUpdate); // 保存新的SupplyRoomCongfig if(!supplyRoomConfigToSave.isEmpty()){ for (SupplyRoomConfig supplyRoomConfig : supplyRoomConfigToSave) { supplyRoomConfigManager.saveOrUpdate(supplyRoomConfig); } } + // 更新SupplyRoomCongfig + if(supplyRoomConfigToUpdate.size() > 0){ + for (JSONObject obj : supplyRoomConfigToUpdate) { + // 目前只能修改sequence + Long id = JSONUtil.optLong(obj, "id", null); + Integer newSequence = JSONUtil.optInteger(obj, "newSequence", null); + String sql = String.format("update %s set sequence=%s where id=%s", SupplyRoomConfig.class.getSimpleName(),newSequence,id); + objectDao.executeUpdate(sql); + } + } // 删除SupplyRoomCongfig if(!supplyRoomConfigIdsToDelete.isEmpty()){ supplyRoomConfigManager.deleteSupplyRoomConfigByIds(supplyRoomConfigIdsToDelete); @@ -1027,28 +1045,8 @@ supplyRoomConfigList.addAll(supplyRoomConfigManager .getSecondSupplyRoomList()); } - for (SupplyRoomConfig supplyRoomConfig : supplyRoomConfigList) { - if (StringUtils.isBlank(jsonStr)) { - jsonStr = "{id : '" + supplyRoomConfig.getId() - + "',departId :'" - + supplyRoomConfig.getOrgUnitCoding() - + "',name : '" + supplyRoomConfig.getOrgUnitName() - + "'}"; - } else { - jsonStr += "," + "{id : '" + supplyRoomConfig.getId() - + "',departId :'" - + supplyRoomConfig.getOrgUnitCoding() - + "',name : '" + supplyRoomConfig.getOrgUnitName() - + "'}"; - } - } - try { - StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); - StrutsParamUtils.getResponse().getWriter() - .println("[" + jsonStr + "]"); - } catch (IOException e) { - e.printStackTrace(); - } + JSONArray jsonArray = supplyRoomConfigListToJSONArray(supplyRoomConfigList); + StrutsResponseUtils.output(jsonArray); } /** * 获取一二级供应室 并且返回全部供应商选项 @@ -1234,21 +1232,27 @@ } } + private JSONArray supplyRoomConfigListToJSONArray(List supplyRoomConfigList){ + JSONArray jsonArray = new JSONArray(); + for (SupplyRoomConfig supplyRoomConfig : supplyRoomConfigList) { + + JSONObject obj = new JSONObject(); + obj.put("id", supplyRoomConfig.getId()); + obj.put("departId", supplyRoomConfig.getOrgUnitCoding()); + obj.put("name", supplyRoomConfig.getOrgUnitName()); + obj.put("sequence", supplyRoomConfig.getSequence()); + + jsonArray.add(obj); + } + return jsonArray; + } public void loadSupplyRoomConfigRoom3() { JSONArray jsonArray = new JSONArray(); try { List supplyRoomConfigList = supplyRoomConfigManager .getRecyclingApplicationDepart(); - for (SupplyRoomConfig supplyRoomConfig : supplyRoomConfigList) { - - JSONObject obj = new JSONObject(); - obj.put("id", supplyRoomConfig.getId()); - obj.put("departId", supplyRoomConfig.getOrgUnitCoding()); - obj.put("name", supplyRoomConfig.getOrgUnitName()); - obj.put("sequence", supplyRoomConfig.getSequence()); - - jsonArray.add(obj); - } + + jsonArray = supplyRoomConfigListToJSONArray(supplyRoomConfigList); try { StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); StrutsParamUtils.getResponse().getWriter() @@ -1266,16 +1270,7 @@ List supplyRoomConfigList = supplyRoomConfigManager .getSupplyRoomType_4(); - for (SupplyRoomConfig supplyRoomConfig : supplyRoomConfigList) { - - JSONObject obj = new JSONObject(); - obj.put("id", supplyRoomConfig.getId()); - obj.put("departId", supplyRoomConfig.getOrgUnitCoding()); - obj.put("name", supplyRoomConfig.getOrgUnitName()); - - jsonArray.add(obj); - - } + jsonArray = supplyRoomConfigListToJSONArray(supplyRoomConfigList); try { StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); StrutsParamUtils.getResponse().getWriter()