Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/foreignTousse/service/ForeignTousseWebServiceImpl.java =================================================================== diff -u -r23062 -r23911 --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/foreignTousse/service/ForeignTousseWebServiceImpl.java (.../ForeignTousseWebServiceImpl.java) (revision 23062) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/foreignTousse/service/ForeignTousseWebServiceImpl.java (.../ForeignTousseWebServiceImpl.java) (revision 23911) @@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import com.forgon.directory.acegi.tools.AcegiHelper; +import com.forgon.disinfectsystem.basedatamanager.supplier.service.SupplierManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.datasynchronization.model.PatientInfoVO; @@ -55,6 +56,8 @@ @Autowired private DataSynchronizationManager dataSynchronizationManager; @Autowired + private SupplierManager supplierManager; + @Autowired private LogManager appLogManager; //单号前缀 @@ -64,23 +67,45 @@ public String findForeignTousseInfo() { appLogManager.saveLog(AcegiHelper.getLoginUser(), "调用接口" , Log.TYPE_QUERY, "调用外来器械包接口的findForeignTousseInfo方法"); logger.debug("调用外来器械包接口的findForeignTousseInfo方法"); - String sql = "select sp.companyName,sp.contact,sp.cellPhone,td.id,td.name," + + JSONObject returnJSONObject = findForeignTousseInfoData(null); + logger.debug("调用外来器械包接口的findForeignTousseInfo方法 json result=" + returnJSONObject); + appLogManager.saveLog(AcegiHelper.getLoginUser(), "调用接口" , Log.TYPE_QUERY, "外来器械包接口的submitForeignTousseApplication方法返回结果result=" + returnJSONObject); + //logger.debug("base64 result=" + new BASE64Encoder().encode(bo.toString().getBytes())); + XMLSerializer xmlSerializer = new XMLSerializer(); + xmlSerializer.setRootName("return"); + xmlSerializer.setTypeHintsEnabled(false); + //设置元素标签(数组内),默认e + xmlSerializer.setElementName("item"); + return xmlSerializer.write(returnJSONObject); + } + + /** + * 查询外来器械包及供应商信息 + * @param supplierName + * @return + */ + private JSONObject findForeignTousseInfoData(String supplierName) { + String querySql = "select sp.companyName,sp.contact,sp.cellPhone,td.id,td.name," + " case when td.price is null or td.price = 0 then (select top 1 foreignToussePrice from "+ SupplyRoomConfig.class.getSimpleName() +" where supplyRoomType=0) else td.price end price " + " from "+ TousseDefinition.class.getSimpleName() +" td join "+ Supplier.class.getSimpleName() +" sp on td.supplierName=sp.companyName" + - " where sp.rentTousse='"+ Supplier.SUPPLIER_TYPE_RENTTOUSSE +"' and td.forDisplay=1 and td.tousseType='"+ TousseDefinition.PACKAGE_TYPE_FOREIGN +"' order by sp.companyName"; + " where sp.rentTousse='"+ Supplier.SUPPLIER_TYPE_RENTTOUSSE +"' and td.forDisplay=1 and td.tousseType='"+ TousseDefinition.PACKAGE_TYPE_FOREIGN +"'"; + if(StringUtils.isNotBlank(supplierName)){ + querySql += " and sp.companyName = '"+ supplierName +"' "; + } + querySql += " order by sp.companyName "; ResultSet rs = null; JSONObject returnJSONObject = new JSONObject(); returnJSONObject.put("result" , "1"); returnJSONObject.put("message",""); JSONArray items = new JSONArray(); try { - rs = objectDao.executeSql(sql); + rs = objectDao.executeSql(querySql); while(rs.next()){ JSONObject jsonObject = new JSONObject(); jsonObject.put("SUPPLIER_NAME" , rs.getString("companyName")); jsonObject.put("CONTACT" , rs.getString("contact")); jsonObject.put("PHONE" , rs.getString("cellPhone")); - jsonObject.put("TOUSSEDEFINITION_ID" , String.valueOf(rs.getString("id"))); + jsonObject.put("TOUSSEDEFINITION_ID" , String.valueOf(rs.getLong("id"))); jsonObject.put("NAME" , rs.getString("name")); jsonObject.put("PRICE" , String.valueOf(rs.getObject("price"))); items.add(jsonObject); @@ -93,15 +118,7 @@ } finally { DatabaseUtil.closeResultSetAndStatement(rs); } - logger.debug("调用外来器械包接口的findForeignTousseInfo方法 json result=" + returnJSONObject); - appLogManager.saveLog(AcegiHelper.getLoginUser(), "调用接口" , Log.TYPE_QUERY, "外来器械包接口的submitForeignTousseApplication方法返回结果result=" + returnJSONObject); - //logger.debug("base64 result=" + new BASE64Encoder().encode(bo.toString().getBytes())); - XMLSerializer xmlSerializer = new XMLSerializer(); - xmlSerializer.setRootName("return"); - xmlSerializer.setTypeHintsEnabled(false); - //设置元素标签(数组内),默认e - xmlSerializer.setElementName("item"); - return xmlSerializer.write(returnJSONObject); + return returnJSONObject; } @Override @@ -249,6 +266,21 @@ appLogManager.saveLog(AcegiHelper.getLoginUser(), "调用接口" , Log.TYPE_QUERY, "调用外来器械包接口的submitForeignTousseApplication方法,返回结果=" + returnJSONObject); return xmlSerializer.write(returnJSONObject); } + //供应商联系人、供应商联系电话 + String supplierContactUser = null, supplierContactPhone = null; + //查询第一个外来器械包的供应商作为外来器械申请单的联系人与联系电话 + if(jsonArray != null && jsonArray.size() > 0){ + JSONObject firstSupplierJsonObject = jsonArray.optJSONObject(0); + String supplierName = firstSupplierJsonObject.optString("supplierName"); + //根据供应商名称及厂商类型查询供应商 + if(StringUtils.isNotBlank(supplierName)){ + Supplier supplier = supplierManager.getFirst(" companyName = '"+ supplierName +"' and rentTousse = '"+ Supplier.SUPPLIER_TYPE_RENTTOUSSE +"'"); + if(supplier != null){ + supplierContactUser = supplier.getContact(); + supplierContactPhone = supplier.getCellPhone(); + } + } + } String foreignTousseInfo = jsonArray.toString(); //住院号 String hospitalNumber = paramJson.optString("HOSPITAL_NUMBER"); @@ -320,6 +352,9 @@ // 设置五笔码和拼音码 foreignTousseApplication.setSpelling(GB2Alpha.string2Alpha(departName)); foreignTousseApplication.setWbCode(GB2WB.getWBCode(departName)); + //设置外来器械申请单的供应商联系人与联系电话 + foreignTousseApplication.setSupplierName(supplierContactUser); + foreignTousseApplication.setSupplierPhoneNumber(supplierContactPhone); foreignTousseApplicationManager.saveOrUpdate(foreignTousseApplication, foreignTousseInfo, ForeignTousseApplication.ACTION_TYPE_ADD); }else{ if(!StringUtils.equals(orginalForeignTousseApplication.getApplicant(), applicant)){ @@ -361,6 +396,9 @@ orginalForeignTousseApplication.setSurgery(patientInfoVOs[0].getOperation()); } } + //设置外来器械申请单的供应商联系人与联系电话 + orginalForeignTousseApplication.setSupplierName(supplierContactUser); + orginalForeignTousseApplication.setSupplierPhoneNumber(supplierContactPhone); objectDao.saveOrUpdate(orginalForeignTousseApplication); } returnJSONObject.put("result" , "1");