Index: ssts-web/src/main/webapp/jasperRtp/sterilizingStoveUseCountDetail.jrxml =================================================================== diff -u -r16946 -r17763 --- ssts-web/src/main/webapp/jasperRtp/sterilizingStoveUseCountDetail.jrxml (.../sterilizingStoveUseCountDetail.jrxml) (revision 16946) +++ ssts-web/src/main/webapp/jasperRtp/sterilizingStoveUseCountDetail.jrxml (.../sterilizingStoveUseCountDetail.jrxml) (revision 17763) @@ -57,7 +57,7 @@ - + @@ -66,14 +66,22 @@ - - + + - - - + + + + + + + + + + + @@ -89,9 +97,16 @@ - - - + + + + + + + + + + @@ -110,10 +125,18 @@ - - - - + + + + + + + + + + + + @@ -133,10 +156,17 @@ + + + + + + + - + Index: ssts-web/src/main/webapp/systemmanage/orgUnitExt.js =================================================================== diff -u -r17564 -r17763 --- ssts-web/src/main/webapp/systemmanage/orgUnitExt.js (.../orgUnitExt.js) (revision 17564) +++ ssts-web/src/main/webapp/systemmanage/orgUnitExt.js (.../orgUnitExt.js) (revision 17763) @@ -412,11 +412,13 @@ method:'POST', waitMsg:'正在保存数据,请稍候', waitTitle:'提交表单', + scope : this, success:function(form,action){ history.go(-1); }, failure:function(form, action){ - alert('failure = '+action.failureType); + showResult('保存失败!请联系系统管理员'); + this.enable(); } }); } @@ -436,13 +438,15 @@ method:'POST', waitMsg:'正在保存数据,请稍候', waitTitle:'提交表单', + scope : this, success:function(form,action){ var barcodeStr = action.result.barcode; history.go(-1); printBarcode(barcodeStr,0); }, failure:function(form, action){ - alert('failure = '+action.failureType); + showResult('保存失败!请联系系统管理员'); + this.enable(); } }); @@ -464,11 +468,13 @@ method:'POST', waitMsg:'正在保存数据,请稍候', waitTitle:'提交表单', + scope : this, success:function(form,action){ location.href=WWWROOT + "/systemmanage/orgUnitExt.jsp?parentId="+parentId+"&editMode=true"; }, failure:function(form, action){ - alert('failure = '+action.failureType); + showResult('保存失败!请联系系统管理员'); + this.enable(); } }); } Index: ssts-web/src/main/webapp/jasperRtp/sterilizingStoveUseCountDetail.jasper =================================================================== diff -u -r16946 -r17763 Binary files differ Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java =================================================================== diff -u -r17423 -r17763 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java (.../SupplyRoomConfig.java) (revision 17423) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/supplyroomconfig/SupplyRoomConfig.java (.../SupplyRoomConfig.java) (revision 17763) @@ -72,7 +72,7 @@ private String ftDefaultSterilingMethod; //外来器械默认的灭菌程序 - private String ftDefaultPackageType; //外来器械默认的灭菌程序 + private String ftDefaultPackageType; //外来器械默认的包装类型 private String isCustomTousseCleanEntirely = STR_YES; Index: ssts-web/src/test/java/test/forgon/directory/service/OrgUnitManagerTest.java =================================================================== diff -u -r17575 -r17763 --- ssts-web/src/test/java/test/forgon/directory/service/OrgUnitManagerTest.java (.../OrgUnitManagerTest.java) (revision 17575) +++ ssts-web/src/test/java/test/forgon/directory/service/OrgUnitManagerTest.java (.../OrgUnitManagerTest.java) (revision 17763) @@ -1,17 +1,47 @@ package test.forgon.directory.service; import java.sql.ResultSet; +import java.util.LinkedList; import java.util.List; import java.util.Set; import org.apache.commons.collections4.CollectionUtils; import org.testng.annotations.Test; import com.forgon.directory.model.BarcodeDevice; +import com.forgon.directory.model.CssdHandleTousses; import com.forgon.directory.model.CssdServiceDepts; import com.forgon.directory.model.OrgUnit; import com.forgon.directory.model.OrgUserRelation; +import com.forgon.disinfectsystem.entity.assestmanagement.GodownEntry; +import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; +import com.forgon.disinfectsystem.entity.basedatamanager.ipandorgunitmapping.IpAndOrgUnitMapping; +import com.forgon.disinfectsystem.entity.basedatamanager.rinser.Rinser; +import com.forgon.disinfectsystem.entity.basedatamanager.staffArchives.StaffArchive; +import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; +import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; +import com.forgon.disinfectsystem.entity.basedatamanager.taskGroup.TaskGroup; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; +import com.forgon.disinfectsystem.entity.borrowrecord.BorrowRecord; +import com.forgon.disinfectsystem.entity.departmentstock.DepartmentStock; +import com.forgon.disinfectsystem.entity.goodsstock.GoodsStock; +import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; +import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; +import com.forgon.disinfectsystem.entity.invoicemanager.MaterialInvoice; +import com.forgon.disinfectsystem.entity.materialerrordamage.MaterialErrorDamageDetail; +import com.forgon.disinfectsystem.entity.packing.PackingRecord; +import com.forgon.disinfectsystem.entity.packing.PackingTask; +import com.forgon.disinfectsystem.entity.recall.RecallRecordItem; +import com.forgon.disinfectsystem.entity.receiverecord.ReceiveRecord; +import com.forgon.disinfectsystem.entity.recyclingdamagerecord.RecyclingDamageItem; +import com.forgon.disinfectsystem.entity.recyclingerror.RecyclingError; +import com.forgon.disinfectsystem.entity.recyclingrecord.RecyclingRecord; +import com.forgon.disinfectsystem.entity.returngoodsrecord.ReturnGoodsRecord; +import com.forgon.disinfectsystem.entity.returnmaterialrecord.ReturnMaterialRecord; +import com.forgon.disinfectsystem.entity.satisfactionsurvey.SatisfactionSurveyTable; +import com.forgon.disinfectsystem.entity.useRecord.UseRecord; import com.forgon.serialnumber.model.SerialNum; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.string.StringTools; @@ -32,7 +62,7 @@ * 1、新增科室“测试科室1” 预期结果:保存后部分属性和设置的相同,并且会为此科室新建一个仓库,并且科室服务临床科室也有对应的两条记录 */ @Test - public void testSaveOrgUnit() { + public void testAddOrgUnit() { initCSSDData(); OrgUnit orgUnit = new OrgUnit(); @@ -95,4 +125,268 @@ assertEquals(cssdServiceDeptsList.get(1).getTousseType(), CssdServiceDepts.TOUSSETYPE_DIPOSABLEGOODS); } + /** + * 此方法主要测试修改科室 + * 测试以下1种场景 + * 1、把“测试手术室”的名称改为“测试手术室_new” 预期结果:一些相关联的表的此科室名称需要同步修改 + */ + @Test + public void testUpdateOrgUnit() { + initCSSDData(); + OrgUnit orgUnitOR = orgUnitManager.getByCode(Constants.ORG_UNIT_CODE_OR); + + String name = Constants.ORG_UNIT_NAME_OR; + String code = Constants.ORG_UNIT_CODE_OR; + + List list = new LinkedList(); + InvoicePlan ip = new InvoicePlan(); + ip.setDepart(name); + ip.setDepartCoding(code); + ip.setSettleAccountsDepart(name); + ip.setSettleAccountsDepartCoding(code); + ip.setHandleDepart(name); + ip.setHandleDepartCoding(code); + list.add(ip); + + RecyclingRecord rr = new RecyclingRecord(); + rr.setDepart(name); + rr.setDepartCode(code); + list.add(rr); + + Invoice i = new Invoice(); + i.setDepart(name); + i.setSettleAccountsDepart(name); + list.add(i); + + UseRecord ur = new UseRecord(); + ur.setDepart(name); + ur.setDepartCoding(code); + list.add(ur); + + TousseDefinition td = new TousseDefinition(); + td.setHandlerDepartName(name); + td.setHandlerDepartCode(code); + list.add(td); + + TousseInstance ti = new TousseInstance(); + ti.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + ti.setOrgUnitName(name); + ti.setOrgUnitCoding(code); + ti.setLocationForDisplay(name); + ti.setLocation(code); + ti.setSettleAccountsDepart(name); + ti.setSettleAccountsDepartCode(code); + ti.setDepart(name); + ti.setDepartCoding(code); + list.add(ti); + + SupplyRoomConfig sr = new SupplyRoomConfig(); + sr.setOrgUnitName(name); + sr.setOrgUnitCoding(code); + sr.setDptNameOfForeignTousse(name); + sr.setDptCodeOfForeignTousse(code); + list.add(sr); + + ReturnGoodsRecord rr2 = new ReturnGoodsRecord(); + rr2.setDepart(name); + rr2.setDepartCoding(code); + list.add(rr2); + + RecallRecordItem rri = new RecallRecordItem(); + rri.setDepartName(name); + rri.setDepartCode(code); + list.add(rri); + + RecyclingError re = new RecyclingError(); + re.setDepart(name); + re.setDepartCode(code); + re.setHandleDepartName(name); + re.setHandleDepartCode(code); + list.add(re); + + RecyclingDamageItem rdi = new RecyclingDamageItem(); + rdi.setDepart(name); + rdi.setDepartCoding(code); + rdi.setHandleDepartName(name); + rdi.setHandleDepartCode(code); + list.add(rdi); + + MaterialErrorDamageDetail medd = new MaterialErrorDamageDetail(); + medd.setDepart(name); + medd.setDepartCode(code); + medd.setHandleDepartName(name); + medd.setHandleDepartCode(code); + list.add(medd); + + BorrowRecord br = new BorrowRecord(); + br.setDepartName(name); + br.setDepartCode(code); + br.setRentalDepartName(name); + br.setRentalDepartCode(code); + list.add(br); + + Container c = new Container(); + c.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + c.setDepartName(name); + c.setDepartCode(code); + list.add(c); + + CssdHandleTousses cht = new CssdHandleTousses(); + cht.setOrgUnitName(name); + cht.setOrgUnitCode(code); + list.add(cht); + + CssdServiceDepts csd = new CssdServiceDepts(); + csd.setCssdOrgUnitName(name); + csd.setCssdOrgUnitCode(code); + csd.setClinicOrgUnitName(name); + csd.setClinicOrgUnitCode(code); + list.add(csd); + + + DepartmentStock ds = new DepartmentStock(); + ds.setDepartName(name); + ds.setDepartCoding(code); + list.add(ds); + + GoodsStock gs = new GoodsStock(); + gs.setOrgUnitName(name); + gs.setOrgUnitCode(code); + list.add(gs); + + MaterialInvoice mi = new MaterialInvoice(); + mi.setDepart(name); + mi.setDepartCoding(code); + mi.setSettleAccountsDepart(name); + list.add(mi); + + PackingTask pt = new PackingTask(); + pt.setDepartment(name); + pt.setDepartCoding(code); + list.add(pt); + + ReceiveRecord rr3 = new ReceiveRecord(); + rr3.setDepart(name); + rr3.setDepartCoding(code); + list.add(rr3); + + ReturnMaterialRecord rmr = new ReturnMaterialRecord(); + rmr.setDepart(name); + rmr.setDepartCoding(code); + list.add(rmr); + + Rinser r = new Rinser(); + r.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + r.setDepartment(name); + r.setOrgUnitCoding(code); + list.add(r); + + SatisfactionSurveyTable sst = new SatisfactionSurveyTable(); + sst.setDepart(name); + sst.setDepartCoding(code); + list.add(sst); + + StaffArchive sa = new StaffArchive(); + sa.setOrgUnitName(name); + list.add(sa); + + TaskGroup tg = new TaskGroup(); + tg.setDepartName(name); + tg.setDepartCode(code); + list.add(tg); + + WareHouse wh = new WareHouse(); + wh.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + wh.setOrgUnitName(name); + wh.setOrgUnitCode(code); + list.add(wh); + + GodownEntry ge = new GodownEntry(); + ge.setOrgUnitName(name); + ge.setOrgUnitCode(code); + ge.setTargetOrgUnitName(name); + ge.setTargetOrgUnitCode(code); + list.add(ge); + + Sterilizer s = new Sterilizer(); + s.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); + s.setDepartment(name); + s.setOrgUnitCoding(code); + list.add(s); + + PackingRecord pr = new PackingRecord(); + pr.setDepart(name); + pr.setDepartCoding(code); + pr.setOrgUnitName(name); + pr.setOrgUnitCoding(code); + list.add(pr); + + IpAndOrgUnitMapping ipm = new IpAndOrgUnitMapping(); + ipm.setOrgUnitName(name); + ipm.setOrgUnitCoding(code); + list.add(ipm); + + for (Object po : list) { + objectDao.save(po); + } + + String oldName = Constants.ORG_UNIT_NAME_OR; + String newName = Constants.ORG_UNIT_NAME_OR + "_new"; + orgUnitOR.setOldName(oldName); + orgUnitOR.setName(newName); + orgUnitManager.saveOrUpdata(orgUnitOR); + + for (Object po : list) { + objectDao.getHibernateSession().refresh(po); + } + + assertEquals(ip.getDepart(), newName); + assertEquals(ip.getSettleAccountsDepart(), newName); + assertEquals(ip.getHandleDepart(), newName); + assertEquals(rr.getDepart(), newName); + assertEquals(i.getDepart(), newName); + assertEquals(i.getSettleAccountsDepart(), newName); + assertEquals(ur.getDepart(), newName); + assertEquals(td.getHandlerDepartName(), newName); + assertEquals(ti.getOrgUnitName(), newName); + assertEquals(ti.getLocationForDisplay(), newName); + assertEquals(ti.getSettleAccountsDepart(), newName); + assertEquals(ti.getDepart(), newName); + assertEquals(sr.getOrgUnitName(), newName); + assertEquals(sr.getDptNameOfForeignTousse(), newName); + assertEquals(rr2.getDepart(), newName); + assertEquals(rri.getDepartName(), newName); + assertEquals(re.getDepart(), newName); + assertEquals(re.getHandleDepartName(), newName); + assertEquals(rdi.getDepart(), newName); + assertEquals(rdi.getHandleDepartName(), newName); + assertEquals(medd.getDepart(), newName); + assertEquals(medd.getHandleDepartName(), newName); + assertEquals(br.getDepartName(), newName); + assertEquals(br.getRentalDepartName(), newName); + assertEquals(c.getDepartName(), newName); + assertEquals(cht.getOrgUnitName(), newName); + assertEquals(csd.getCssdOrgUnitName(), newName); + assertEquals(csd.getClinicOrgUnitName(), newName); + assertEquals(ds.getDepartName(), newName); + assertEquals(gs.getOrgUnitName(), newName); + assertEquals(mi.getDepart(), newName); + assertEquals(mi.getSettleAccountsDepart(), newName); + assertEquals(pt.getDepartment(), newName); + assertEquals(rr3.getDepart(), newName); + assertEquals(rmr.getDepart(), newName); + assertEquals(r.getDepartment(), newName); + assertEquals(sst.getDepart(), newName); + assertEquals(sa.getOrgUnitName(), newName); + assertEquals(tg.getDepartName(), newName); + assertEquals(wh.getOrgUnitName(), newName); + assertEquals(ge.getOrgUnitName(), newName); + assertEquals(ge.getTargetOrgUnitName(), newName); + assertEquals(s.getDepartment(), newName); + assertEquals(pr.getDepart(), newName); + assertEquals(pr.getOrgUnitName(), newName); + assertEquals(ipm.getOrgUnitName(), newName); + } + + } Index: forgon-core/src/main/java/com/forgon/directory/action/OrgUnitAction.java =================================================================== diff -u -r17241 -r17763 --- forgon-core/src/main/java/com/forgon/directory/action/OrgUnitAction.java (.../OrgUnitAction.java) (revision 17241) +++ forgon-core/src/main/java/com/forgon/directory/action/OrgUnitAction.java (.../OrgUnitAction.java) (revision 17763) @@ -50,23 +50,10 @@ private OrgUnit orgUnit; private THTreeNodeManager thTreeNodeManager; - private SerialNumManager serialNumManager; - public ObjectDao objectDao; private OrgUnit oldOrgUnit; - private LogManager appLogManager; - - public void setAppLogManager(LogManager appLogManager) { - this.appLogManager = appLogManager; - } - - - public void setSerialNumManager(SerialNumManager serialNumManager) { - this.serialNumManager = serialNumManager; - } - public void setThTreeNodeManager(THTreeNodeManager thTreeNodeManager) { this.thTreeNodeManager = thTreeNodeManager; } @@ -275,37 +262,48 @@ return null; } - public String save() { + public void save() { if(orgUnit != null){ - try { - if(orgUnit.getBarcodeDevice() == null || StringUtils.isBlank(orgUnit.getBarcodeDevice().getBarcode())){ - BarcodeDevice barcode = new BarcodeDevice(); - String barcodeStr = serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE); - barcode.setBarcode(barcodeStr); - barcode.setType(BarcodeDevice.BARCODE_TYPE_ORGUNIT); - orgUnit.setBarcodeDevice(barcode); - } - orgUnitManager.saveOrUpdata(orgUnit); - thTreeNodeManager.updateTHTreeNode(orgUnit); - //修改科室名称处理 - if(oldOrgUnit != null && StringUtils.isNotBlank(oldOrgUnit.getName()) && !oldOrgUnit.getName().equals(orgUnit.getName())){ - orgUnitManager.updateOldData(orgUnit.getOrgUnitCoding(), oldOrgUnit.getName(), orgUnit.getName()); - appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_BASEDATA, "U", - "组织机构[" + oldOrgUnit.getName() + "]修改名称为[" + orgUnit.getName() + "]科室编码为:" - + orgUnit.getOrgUnitCoding()); - } - //返回条码、供页面打印 - HttpServletResponse response = StrutsParamUtils.getResponse(); - JSONObject jsonObject = new JSONObject(); - jsonObject.put("success", true); - jsonObject.put("barcode", orgUnit.getBarcode()); - response.getWriter().print(jsonObject); - } catch (IOException e) { - e.printStackTrace(); - } + orgUnitManager.saveOrUpdata(orgUnit); + //返回条码、供页面打印 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("success", true); + jsonObject.put("barcode", orgUnit.getBarcode()); + StrutsResponseUtils.output(jsonObject); } - return null; } +// public String save() { +// if(orgUnit != null){ +// try { +// if(orgUnit.getBarcodeDevice() == null || StringUtils.isBlank(orgUnit.getBarcodeDevice().getBarcode())){ +// BarcodeDevice barcode = new BarcodeDevice(); +// String barcodeStr = serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE); +// barcode.setBarcode(barcodeStr); +// barcode.setType(BarcodeDevice.BARCODE_TYPE_ORGUNIT); +// orgUnit.setBarcodeDevice(barcode); +// } +// orgUnitManager.saveOrUpdata(orgUnit); +// thTreeNodeManager.updateTHTreeNode(orgUnit); +// //修改科室名称处理 +// if(oldOrgUnit != null && StringUtils.isNotBlank(oldOrgUnit.getName()) && !oldOrgUnit.getName().equals(orgUnit.getName())){ +// orgUnitManager.updateOldData(orgUnit.getOrgUnitCoding(), oldOrgUnit.getName(), orgUnit.getName()); +// appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_BASEDATA, "U", +// "组织机构[" + oldOrgUnit.getName() + "]修改名称为[" + orgUnit.getName() + "]科室编码为:" +// + orgUnit.getOrgUnitCoding()); +// } +// +// //返回条码、供页面打印 +// HttpServletResponse response = StrutsParamUtils.getResponse(); +// JSONObject jsonObject = new JSONObject(); +// jsonObject.put("success", true); +// jsonObject.put("barcode", orgUnit.getBarcode()); +// response.getWriter().print(jsonObject); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +// return null; +// } // 相当于springcontroller的formbackingObject方法 public void iniInfo() { @@ -316,6 +314,7 @@ orgUnit = (OrgUnit) thTreeNodeManager.getTHTreeNodeById( OrgUnit.class.getSimpleName(), Long.valueOf(id)); orgUnit.setParentId(orgUnit.getParent().getId()); + orgUnit.setOldName(orgUnit.getName()); } else { orgUnit = new OrgUnit(); if (StringUtils.isNotBlank(parentId)) { @@ -378,29 +377,17 @@ * 根据科室名称获取科室名称和科室编码 * chenjiaru 2016-09-10 */ - public String getOrgUnitCodingAndNameByName() { - try { - StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); - String orgUnitName = StrutsParamUtils.getPraramValue("orgUnit", ""); - - - List orgUnitList = orgUnitManager.searchOrgUnitCodingAndNameByName(orgUnitName); - - JSONArray jSONArray = new JSONArray(); - for (OrgUnit orgUnit : orgUnitList) { - JSONArray jSONArrayTemp = new JSONArray(); - jSONArrayTemp.add(orgUnit.getOrgUnitCoding()); - jSONArrayTemp.add(orgUnit.getName()); - jSONArray.add(jSONArrayTemp); - } - String jsonDataString = jSONArray.toString(); - - StrutsParamUtils.getResponse().getWriter().println(jsonDataString); - } catch (Exception e) { - e.printStackTrace(); + public void getOrgUnitCodingAndNameByName() { + String orgUnitName = StrutsParamUtils.getPraramValue("orgUnit", ""); + List orgUnitList = orgUnitManager.searchOrgUnitCodingAndNameByName(orgUnitName); + JSONArray jSONArray = new JSONArray(); + for (OrgUnit orgUnit : orgUnitList) { + JSONArray jSONArrayTemp = new JSONArray(); + jSONArrayTemp.add(orgUnit.getOrgUnitCoding()); + jSONArrayTemp.add(orgUnit.getName()); + jSONArray.add(jSONArrayTemp); } - - return null; + StrutsResponseUtils.output(jSONArray); } public final static String orgUnitCodingPrefix = "FORGON_CSSD_";//科室前缀 Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java =================================================================== diff -u -r17579 -r17763 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 17579) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 17763) @@ -396,6 +396,13 @@ } public void saveOrUpdata(OrgUnit orgUnit) { + if(orgUnit.getBarcodeDevice() == null || StringUtils.isBlank(orgUnit.getBarcodeDevice().getBarcode())){ + BarcodeDevice barcode = new BarcodeDevice(); + String barcodeStr = serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE); + barcode.setBarcode(barcodeStr); + barcode.setType(BarcodeDevice.BARCODE_TYPE_ORGUNIT); + orgUnit.setBarcodeDevice(barcode); + } setOrgUserRelations(orgUnit); setLeaderRelations(orgUnit); setManagerRelations(orgUnit); @@ -418,7 +425,7 @@ barcodeDevice.setType(BarcodeDevice.BARCODE_TYPE_WAREHOUSE); barcodeDevice.setBarcode(serialNumManager.getSerialNumberStr(SerialNum.TYPE_BARCODE)); objectDao.saveOrUpdate(barcodeDevice); - objectDao.getHibernateSession().flush(); + objectDao.getHibernateSession().flush(); //这里需要flush,让事物先提交一下,否则oracle会有问题 //1.新建该科室对应仓库 String sql = "insert into warehouse(id,name,orgUnitId,orgUnitCode,orgUnitName,remark,sequence,createdUserId,createdUserName,createTime) values ("; sql += barcodeDevice.getId() + ","; @@ -471,103 +478,143 @@ }finally{ DatabaseUtil.closeResultSetAndStatement(rs); } + } else { + //修改科室名称处理 + if(!StringUtils.equals(orgUnit.getOldName(), orgUnit.getName())){ + updateOldData(orgUnit.getOrgUnitCoding(), orgUnit.getOldName(), orgUnit.getName()); + appLogManager = (LogManager)SpringBeanManger.getBean("appLogManager"); + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_BASEDATA, "U", + "组织机构[" + orgUnit.getOldName() + "]修改名称为[" + orgUnit.getName() + "]科室编码为:" + + orgUnit.getOrgUnitCoding()); + } } } /** - * 更新各个模块旧数据 - * @param orgCoding + * 更新科室的名称(基础数据的科室名称被修改了,一些相关联的表需要同步修改) + * @param orgCoding 科室编码 + * @param oldOrgName 修改前的名称 + * @param newOrgName 修改后的名称 */ - public void updateOldData(String orgCoding,String oldOrgName,String newOrgName){ - String sql1 = "update invoicePlan set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "'"; - String sql2 = "update invoicePlan set settleAccountsDepart = '" + newOrgName + "' where settleAccountsDepartCoding = '" + orgCoding + "'"; - String sql3 = "update invoicePlan set handleDepart = '" + newOrgName + "' where handleDepartCoding = '" + orgCoding + "'"; - String sql4 = "update RecyclingRecord set depart = '" + newOrgName + "' where departCode = '" + orgCoding + "'"; - String sql5 = "update invoice set depart = '" + newOrgName + "' where depart = '" + oldOrgName + "'"; - String sql6 = "update invoice set settleAccountsDepart = '" + newOrgName + "' where settleAccountsDepart = '" + oldOrgName + "'"; - String sql7 = "update useRecord set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "'"; - String sql8 = "update TousseDefinition set handlerDepartName = '"+newOrgName+"' where handlerDepartCode = '" + orgCoding + "'"; - String sql9 = "update TousseInstance set orgUnitName = '" + newOrgName + "' where orgUnitCoding = '" + orgCoding + "'"; - String sql10 = "update TousseInstance set locationForDisplay = '" + newOrgName + "' where location = '" + orgCoding + "'"; - String sql11 = "update SupplyRoomConfig set orgUnitName = '" + newOrgName + "' where orgUnitCoding = '" + orgCoding + "'"; - String sql12 = "update SupplyRoomConfig set dptNameOfForeignTousse = '" + newOrgName + "' where dptCodeOfForeignTousse = '" + orgCoding + "'"; - String sql13 = "update ReturnGoodsRecord set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "'"; - String sql14 = "update RecallRecordItem set departName = '" + newOrgName + "' where departCode = '" + orgCoding + "'"; - String sql15 = "update RecyclingError set depart = '" + newOrgName + "' where departCode = '" + orgCoding + "'"; - String sql16 = "update RecyclingDamageItem set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "'"; - String sql16_1 = "update MaterialErrorDamageDetail set depart = '" + newOrgName + "' where departCode = '" + orgCoding + "'"; - String sql17 = "update QualityMonitoring set orgUnitName = '" + newOrgName + "' where orgUnitCoding = '" + orgCoding + "'"; + private void updateOldData(String orgCoding,String oldOrgName,String newOrgName){ + StringBuffer sqls = new StringBuffer(); - objectDao.excuteSQL(sql1); - objectDao.excuteSQL(sql2); - objectDao.excuteSQL(sql3); - objectDao.excuteSQL(sql4); - objectDao.excuteSQL(sql5); - objectDao.excuteSQL(sql6); - objectDao.excuteSQL(sql7); - objectDao.excuteSQL(sql8); - objectDao.excuteSQL(sql9); - objectDao.excuteSQL(sql10); - objectDao.excuteSQL(sql11); - objectDao.excuteSQL(sql12); - objectDao.excuteSQL(sql13); - objectDao.excuteSQL(sql14); - objectDao.excuteSQL(sql15); - objectDao.excuteSQL(sql16); - objectDao.excuteSQL(sql16_1); - objectDao.excuteSQL(sql17); + //invoicePlan(发货计划) + sqls.append("update invoicePlan set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "';"); + sqls.append("update invoicePlan set settleAccountsDepart = '" + newOrgName + "' where settleAccountsDepartCoding = '" + orgCoding + "';"); + sqls.append("update invoicePlan set handleDepart = '" + newOrgName + "' where handleDepartCoding = '" + orgCoding + "';"); + + //RecyclingRecord(回收记录) + sqls.append("update RecyclingRecord set depart = '" + newOrgName + "' where departCode = '" + orgCoding + "';"); + + //invoice(发货记录) + sqls.append("update invoice set depart = '" + newOrgName + "' where depart = '" + oldOrgName + "';"); + sqls.append("update invoice set settleAccountsDepart = '" + newOrgName + "' where settleAccountsDepart = '" + oldOrgName + "';"); + + //useRecord(使用记录) + sqls.append("update useRecord set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "';"); + + //TousseDefinition(器械包定义表) + sqls.append("update TousseDefinition set handlerDepartName = '" + newOrgName + "' where handlerDepartCode = '" + orgCoding + "';"); + + //TousseInstance(器械包实例) + sqls.append("update TousseInstance set orgUnitName = '" + newOrgName + "' where orgUnitCoding = '" + orgCoding + "';"); + sqls.append("update TousseInstance set locationForDisplay = '" + newOrgName + "' where location = '" + orgCoding + "';"); + sqls.append("update TousseInstance set settleAccountsDepart = '" + newOrgName + "' where settleAccountsDepartCode = '" + orgCoding + "';"); + sqls.append("update TousseInstance set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "';"); + + //SupplyRoomConfig(供应室配置) + sqls.append("update SupplyRoomConfig set orgUnitName = '" + newOrgName + "' where orgUnitCoding = '" + orgCoding + "';"); + sqls.append("update SupplyRoomConfig set dptNameOfForeignTousse = '" + newOrgName + "' where dptCodeOfForeignTousse = '" + orgCoding + "';"); + + //ReturnGoodsRecord(退货记录) + sqls.append("update ReturnGoodsRecord set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "';"); + + //RecallRecordItem(召回记录项) + sqls.append("update RecallRecordItem set departName = '" + newOrgName + "' where departCode = '" + orgCoding + "';"); + + //RecyclingError(回收误差记录) + sqls.append("update RecyclingError set depart = '" + newOrgName + "' where departCode = '" + orgCoding + "';"); + sqls.append("update RecyclingError set handleDepartName = '" + newOrgName + "' where handleDepartCode = '" + orgCoding + "';"); + + //RecyclingDamageItem(报损器材) + sqls.append("update RecyclingDamageItem set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "';"); + sqls.append("update RecyclingDamageItem set handleDepartName = '" + newOrgName + "' where handleDepartCode = '" + orgCoding + "';"); + + //MaterialErrorDamageDetail(材料丢失、报损明细) + sqls.append("update MaterialErrorDamageDetail set depart = '" + newOrgName + "' where departCode = '" + orgCoding + "';"); + sqls.append("update MaterialErrorDamageDetail set handleDepartName = '" + newOrgName + "' where handleDepartCode = '" + orgCoding + "';"); + + //BorrowRecord(科室互借) + sqls.append("update BorrowRecord set departName = '" + newOrgName + "' where departCode = '" + orgCoding + "';"); + sqls.append("update BorrowRecord set rentalDepartName = '" + newOrgName + "' where rentalDepartCode = '" + orgCoding + "';"); + + //Container(篮筐) + sqls.append("update Container set departName = '" + newOrgName + "' where departCode = '" + orgCoding + "';"); + + //CssdHandleTousses(供应室处理器械包配置) + sqls.append("update CssdHandleTousses set orgUnitName = '" + newOrgName + "' where orgUnitCode = '" + orgCoding + "';"); + + //CssdServiceDepts(供应室服务临床配置) + sqls.append("update CssdServiceDepts set cssdOrgUnitName = '" + newOrgName + "' where cssdOrgUnitCode = '" + orgCoding + "';"); + sqls.append("update CssdServiceDepts set clinicOrgUnitName = '" + newOrgName + "' where clinicOrgUnitCode = '" + orgCoding + "';"); + + //DepartmentStock(科室库存) + sqls.append("update DepartmentStock set departName = '" + newOrgName + "' where departCoding = '" + orgCoding + "';"); + + //GoodsStock(物品库存,材料或者器械包) + sqls.append("update GoodsStock set orgUnitName = '" + newOrgName + "' where orgUnitCode = '" + orgCoding + "';"); + + //MaterialInvoice(材料发货) + sqls.append("update MaterialInvoice set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "';"); + sqls.append("update MaterialInvoice set settleAccountsDepart = '" + newOrgName + "' where settleAccountsDepart = '" + oldOrgName + "';"); + + //PackingTask(装配记录) + sqls.append("update PackingTask set department = '" + newOrgName + "' where department = '" + oldOrgName + "';"); + + //ReceiveRecord(供用室领用) + sqls.append("update ReceiveRecord set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "';"); + + //ReturnMaterialRecord(材料退货) + sqls.append("update ReturnMaterialRecord set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "';"); + + //Rinser(清洗机) + sqls.append("update Rinser set department = '" + newOrgName + "' where department = '" + oldOrgName + "';"); + + //SatisfactionSurveyTable(用户满意度调查表) + sqls.append("update SatisfactionSurveyTable set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "';"); + + //StaffArchive(员工档案表) + sqls.append("update StaffArchive set orgUnitName = '" + newOrgName + "' where orgUnitName = '" + oldOrgName + "';"); + + //TaskGroup(任务组) + sqls.append("update TaskGroup set departName = '" + newOrgName + "' where departCode = '" + orgCoding + "';"); + + //WareHouse(仓库) + sqls.append("update WareHouse set orgUnitName = '" + newOrgName + "' where orgUnitCode = '" + orgCoding + "';"); + + //GodownEntry(入库单) + sqls.append("update GodownEntry set orgUnitName = '" + newOrgName + "' where orgUnitCode = '" + orgCoding + "';"); + sqls.append("update GodownEntry set targetOrgUnitName = '" + newOrgName + "' where targetOrgUnitCode = '" + orgCoding + "';"); + + //Sterilizer(灭菌炉) + sqls.append("update Sterilizer set department = '" + newOrgName + "' where orgUnitCoding = '" + orgCoding + "';"); + + //PackingRecord(装配记录) + sqls.append("update PackingRecord set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "';"); + sqls.append("update PackingRecord set orgUnitName = '" + newOrgName + "' where orgUnitCoding = '" + orgCoding + "';"); - //补充增加借物单的借出科室、借用科室、篮筐、供应室处理器械包配置的供应室、供应室服务临床配置的供应室名称及临床科室名称、科室库存、器械包材料库存、 - //材料发货、装配任务、召回明细、供用室领用、材料退货、灭菌机、用户满意度调查表、员工档案表、任务组、仓库、一次性物品入/退库单等表的科室名称处理 - String sql18 = "update BorrowRecord set departName = '" + newOrgName + "' where departCode = '" + orgCoding + "'"; - String sql19 = "update BorrowRecord set rentalDepartName = '" + newOrgName + "' where rentalDepartCode = '" + orgCoding + "'"; - String sql20 = "update Container set departName = '" + newOrgName + "' where departCode = '" + orgCoding + "'"; - String sql21 = "update CssdHandleTousses set orgUnitName = '" + newOrgName + "' where orgUnitCode = '" + orgCoding + "'"; - String sql22 = "update CssdServiceDepts set cssdOrgUnitName = '" + newOrgName + "' where cssdOrgUnitCode = '" + orgCoding + "'"; - String sql23 = "update CssdServiceDepts set clinicOrgUnitName = '" + newOrgName + "' where clinicOrgUnitCode = '" + orgCoding + "'"; - String sql24 = "update DepartmentStock set departName = '" + newOrgName + "' where departCoding = '" + orgCoding + "'"; - String sql25 = "update GoodsStock set orgUnitName = '"+newOrgName+"' where orgUnitCode = '" + orgCoding + "'"; - String sql26 = "update MaterialInvoice set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "'"; - String sql27 = "update MaterialInvoice set settleAccountsDepart = '" + newOrgName + "' where settleAccountsDepart = '" + oldOrgName + "'"; - String sql28 = "update PackingTask set department = '" + newOrgName + "' where department = '" + oldOrgName + "'"; - String sql29 = "update ReceiveRecord set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "'"; - String sql30 = "update ReturnMaterialRecord set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "'"; - String sql31 = "update Rinser set department = '" + newOrgName + "' where department = '" + oldOrgName + "'"; - String sql32 = "update SatisfactionSurveyTable set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "'"; - String sql33 = "update StaffArchive set orgUnitName = '" + newOrgName + "' where orgUnitName = '" + oldOrgName + "'"; - String sql34 = "update TaskGroup set departName = '" + newOrgName + "' where departCode = '" + orgCoding + "'"; - String sql35 = "update WareHouse set orgUnitName = '" + newOrgName + "' where orgUnitCode = '" + orgCoding + "'"; - - String sql36 = "update GodownEntry set orgUnitName = '" + newOrgName + "' where orgUnitCode = '" + orgCoding + "'"; - String sql37 = "update GodownEntry set targetOrgUnitName = '" + newOrgName + "' where targetOrgUnitCode = '" + orgCoding + "'"; - - String sql38 = "update Sterilizer set department = '" + newOrgName + "' where orgUnitCoding = '" + orgCoding + "'"; - - //历史装配记录 - String sql39 = "update PackingRecord set depart = '" + newOrgName + "' where departCoding = '" + orgCoding + "'"; - objectDao.excuteSQL(sql18); - objectDao.excuteSQL(sql19); - objectDao.excuteSQL(sql20); - objectDao.excuteSQL(sql21); - objectDao.excuteSQL(sql22); - objectDao.excuteSQL(sql23); - objectDao.excuteSQL(sql24); - objectDao.excuteSQL(sql25); - objectDao.excuteSQL(sql26); - objectDao.excuteSQL(sql27); - objectDao.excuteSQL(sql28); - objectDao.excuteSQL(sql29); - objectDao.excuteSQL(sql30); - objectDao.excuteSQL(sql31); - objectDao.excuteSQL(sql32); - objectDao.excuteSQL(sql33); - objectDao.excuteSQL(sql34); - objectDao.excuteSQL(sql35); - - objectDao.excuteSQL(sql36); - objectDao.excuteSQL(sql37); - objectDao.excuteSQL(sql38); - objectDao.excuteSQL(sql39); + //IpAndOrgUnitMapping(IP地址段对应的默认科室配置) + sqls.append("update IpAndOrgUnitMapping set orgUnitName = '" + newOrgName + "' where orgUnitCoding = '" + orgCoding + "';"); + + String[] sqlArray = sqls.toString().split(";"); + if(sqlArray != null && sqlArray.length > 0){ + for(String updateSql : sqlArray){ + if(StringUtils.isNotBlank(updateSql)){ + objectDao.excuteSQL(updateSql); + } + } + } } /** Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/useRecord/UseRecord.java =================================================================== diff -u -r17718 -r17763 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/useRecord/UseRecord.java (.../UseRecord.java) (revision 17718) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/useRecord/UseRecord.java (.../UseRecord.java) (revision 17763) @@ -75,10 +75,14 @@ private String roomNumber;// 病室 private String bedNumber;// 床位 - - private String depart;//部门 - - private String departCoding;//部门编码 + /** + * 录入使用记录的科室名称 + */ + private String depart; + /** + * 录入使用记录的科室编码 + */ + private String departCoding; private String operator; //登记人 Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java =================================================================== diff -u -r17564 -r17763 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 17564) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 17763) @@ -156,8 +156,6 @@ public CssdServiceDepts getCssdServiceDepts(String applyDepartCode, String type); - public void updateOldData(String orgCoding,String oldOrgName,String newOrgName); - /** * 根据科室名称查找"科室编码"和"科室名称",(可以支持 "名称的汉字","名称的拼音码","名称的五笔码"这三种格式的模糊查询) * @param orgUnitName:科室的名称 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/recyclingrecord/RecyclingRecord.java =================================================================== diff -u -r17512 -r17763 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/recyclingrecord/RecyclingRecord.java (.../RecyclingRecord.java) (revision 17512) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/recyclingrecord/RecyclingRecord.java (.../RecyclingRecord.java) (revision 17763) @@ -44,9 +44,15 @@ private Date recyclingTime; // 回收时间 - private String depart; // 部门 + /** + * 申请科室的名称 + */ + private String depart; - private String departCode; // 部门代码 + /** + * 申请科室的编码 + */ + private String departCode; private String operator; // 操作员 @@ -68,7 +74,10 @@ private InvoicePlan recyclingApplication; - private String orgUnitCoding;// 供应室类型,一级供应室还是二级供应室 + /** + * 回收的供应室的科室编码 + */ + private String orgUnitCoding; private String recyclingUser;// 回收人 Index: forgon-core/src/main/java/com/forgon/directory/model/OrgUnit.java =================================================================== diff -u -r16920 -r17763 --- forgon-core/src/main/java/com/forgon/directory/model/OrgUnit.java (.../OrgUnit.java) (revision 16920) +++ forgon-core/src/main/java/com/forgon/directory/model/OrgUnit.java (.../OrgUnit.java) (revision 17763) @@ -4,6 +4,8 @@ import java.util.LinkedHashSet; import java.util.Set; +import javax.persistence.Transient; + import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; @@ -93,6 +95,11 @@ * 数据来源(陈家儒改) */ private String source = Constants.SOURCE_MANUAL; //默认手工 + + /** + * 原来的科室名称(此属性只要用于保存科室时判断是否修改了科室名称,不做持久化) + */ + private String oldName; /** * his接口同步时返回的id(同步科室接口时如接口返回科室id属性,则记录到字段) @@ -517,5 +524,14 @@ public void setIdFromHisSync(Long idFromHisSync) { this.idFromHisSync = idFromHisSync; } + + @Transient + public String getOldName() { + return oldName; + } + + public void setOldName(String oldName) { + this.oldName = oldName; + } }