Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/gdszyy/InventoryDaoImpl.java
===================================================================
diff -u -r28957 -r30814
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/gdszyy/InventoryDaoImpl.java (.../InventoryDaoImpl.java) (revision 28957)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/gdszyy/InventoryDaoImpl.java (.../InventoryDaoImpl.java) (revision 30814)
@@ -429,4 +429,11 @@
return null;
}
+ @Override
+ public Inventory getInventory(String inventorySerialNumber,
+ String specification) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/FindPatientInfoByHospitalNumDaoImpl.java
===================================================================
diff -u -r30775 -r30814
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/FindPatientInfoByHospitalNumDaoImpl.java (.../FindPatientInfoByHospitalNumDaoImpl.java) (revision 30775)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/FindPatientInfoByHospitalNumDaoImpl.java (.../FindPatientInfoByHospitalNumDaoImpl.java) (revision 30814)
@@ -40,7 +40,7 @@
String ExtUserID = loginUserData.getUserName();
String input2 = "丁香软件" + hospitalNum + "" + ExtUserID + "2020-01-01" + DateTools.getCurrentYearEnd() + "";
logger.info("病人信息同步接口请求信息:" + input2);
- String result = WebServiceClientHelper.axisInvokeWebservice(DatasyncConstant.ServiceCode_PATPatientID, input2);
+ String result = WebServiceClientHelper.axisInvokeWebservice(DatasyncConstant.WebserviceAddress, DatasyncConstant.ServiceCode_PATPatientID, input2);
/*String result = ""
+ ""
+ ""
@@ -187,7 +187,7 @@
String ExtUserID = loginUserData.getUserName();
String input2 = "丁香软件" + ExtUserID + "" + AdmNo + "";
logger.info("手术信息同步接口请求信息:" + input2);
- String result = WebServiceClientHelper.axisInvokeWebservice(DatasyncConstant.ServiceCode_AdmNo, input2);
+ String result = WebServiceClientHelper.axisInvokeWebservice(DatasyncConstant.WebserviceAddress, DatasyncConstant.ServiceCode_AdmNo, input2);
/*String result = ""
+ ""
+ ""
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/dgsdhyy/InventoryDaoImpl.java
===================================================================
diff -u -r25993 -r30814
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/dgsdhyy/InventoryDaoImpl.java (.../InventoryDaoImpl.java) (revision 25993)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/dgsdhyy/InventoryDaoImpl.java (.../InventoryDaoImpl.java) (revision 30814)
@@ -525,4 +525,11 @@
return null;
}
+ @Override
+ public Inventory getInventory(String inventorySerialNumber,
+ String specification) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/InventoryDao.java
===================================================================
diff -u -r25993 -r30814
--- ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/InventoryDao.java (.../InventoryDao.java) (revision 25993)
+++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/InventoryDao.java (.../InventoryDao.java) (revision 30814)
@@ -127,5 +127,13 @@
* @return
*/
Inventory[] getAllInventoryStockDataFromPlatform(Long orgUnitIdFromHisSync);
+
+ /**
+ * 根据物资编码和规格获取物资信息
+ * @param inventorySerialNumber
+ * @param specification
+ * @return
+ */
+ public Inventory getInventory(String inventorySerialNumber, String specification);
}
Index: ssts-cszxyy-misc/src/main/java/com/forgon/disinfectsystem/inventorymanagement/cszxyy/dao/InventoryDao.java
===================================================================
diff -u -r25993 -r30814
--- ssts-cszxyy-misc/src/main/java/com/forgon/disinfectsystem/inventorymanagement/cszxyy/dao/InventoryDao.java (.../InventoryDao.java) (revision 25993)
+++ ssts-cszxyy-misc/src/main/java/com/forgon/disinfectsystem/inventorymanagement/cszxyy/dao/InventoryDao.java (.../InventoryDao.java) (revision 30814)
@@ -188,4 +188,11 @@
return null;
}
+ @Override
+ public Inventory getInventory(String inventorySerialNumber,
+ String specification) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
Index: ssts-gdsy-misc/src/main/java/com/forgon/disinfectsystem/inventorymanagement/gdsy/dao/InventoryDaoImpl.java
===================================================================
diff -u -r25993 -r30814
--- ssts-gdsy-misc/src/main/java/com/forgon/disinfectsystem/inventorymanagement/gdsy/dao/InventoryDaoImpl.java (.../InventoryDaoImpl.java) (revision 25993)
+++ ssts-gdsy-misc/src/main/java/com/forgon/disinfectsystem/inventorymanagement/gdsy/dao/InventoryDaoImpl.java (.../InventoryDaoImpl.java) (revision 30814)
@@ -540,4 +540,11 @@
return null;
}
+ @Override
+ public Inventory getInventory(String inventorySerialNumber,
+ String specification) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/DatasyncConstant.java
===================================================================
diff -u -r30753 -r30814
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 30753)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/DatasyncConstant.java (.../DatasyncConstant.java) (revision 30814)
@@ -39,4 +39,35 @@
*/
public final static String SSOWebserviceAddress = "http://192.168.128.28:8081/Common_C92_WebService/services/CasValidateServiceImpl?wsdl";
+ /**
+ * 一次性物品接口开发(军卫系统:供应商、入库单及明细、物品基础信息)
+ * http://192.168.128.170/csp/hsb/DHC.Published.PUB0025.BS.PUB0025.cls
+ */
+ public final static String JunWeiWebserviceAddress = "http://192.168.128.170/csp/hsb/DHC.Published.PUB0025.BS.PUB0025.cls";
+
+ /**
+ * 供应商接口服务编码MES0110
+ */
+ public final static String JWServiceCode_Supplier = "MES0110";
+
+ /**
+ * 入库单接口服务编码MES0111
+ */
+ public final static String JWServiceCode_StorageEntry = "MES0111";
+
+ /**
+ * 入库单明细接口服务编码MES0112
+ */
+ public final static String JWServiceCode_StorageEntryItem = "MES0112";
+
+ /**
+ * 物品基础信息服务编码:MES0109
+ */
+ public final static String JWServiceCode_Inventory = "MES0109";
+
+ /**
+ * 公司名称丁香软件拼音首拼
+ */
+ public final static String JWSourceSystem = "DXRJ";
+
}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/nfykdxnfyy/InventoryDaoImpl.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/nfykdxnfyy/InventoryDaoImpl.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/nfykdxnfyy/InventoryDaoImpl.java (revision 30814)
@@ -0,0 +1,444 @@
+package com.forgon.disinfectsystem.inventorymanagement.dao.nfykdxnfyy;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import net.sf.json.JSON;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+import net.sf.json.xml.XMLSerializer;
+
+import org.apache.log4j.Logger;
+
+import com.forgon.disinfectsystem.datasynchronization.dao.nfykdxnfyy.DatasyncConstant;
+import com.forgon.disinfectsystem.datasynchronization.dao.nfykdxnfyy.WebServiceClientHelper;
+import com.forgon.disinfectsystem.inventorymanagement.dao.InventoryDao;
+import com.forgon.disinfectsystem.inventorymanagement.model.Inventory;
+import com.forgon.disinfectsystem.inventorymanagement.model.StorageEntry;
+import com.forgon.disinfectsystem.inventorymanagement.model.StorageEntryItem;
+import com.forgon.tools.date.DateTools;
+
+/**
+ * 一次性物品接口开发(对接军卫系统)(南方医院)
+ * @author ZhouPeiMian
+ * @since 2021-03-17
+ *
+ */
+public class InventoryDaoImpl implements InventoryDao {
+
+ Logger logger = Logger.getLogger(InventoryDaoImpl.class);
+
+ @Override
+ public void updateEntryStateAndErrorMessage(String recordState,
+ String errorMessage, String entrySerialNumber) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public StorageEntry findInEntryBySerialNumber(String entrySerialNumber) {
+ String input1 = DatasyncConstant.JWServiceCode_StorageEntryItem;
+ String input2 = "XDGY"
+ + "" + entrySerialNumber + ""
+ + "";
+ StorageEntry result = null;
+ try {
+ String HIPManagerInfoResult = WebServiceClientHelper.axisInvokeWebservice(DatasyncConstant.JunWeiWebserviceAddress, input1, input2);
+ /*String HIPManagerInfoResult = ""
+ + ""
+ + ""
+ + "0"
+ + "O9007475一次性使用灭菌橡胶外科手套6.5XXXX75003.25马来西亚 Ansell N.P.Sdn.Bhd.(安思尔)01074001"
+ + "O9007475一次性使用灭菌橡胶外科手套7XXXX45003.25马来西亚 Ansell N.P.Sdn.Bhd.(安思尔)01074001"
+ + "O9007475一次性使用灭菌橡胶外科手套7.5XXXX90003.25马来西亚 Ansell N.P.Sdn.Bhd.(安思尔)01074001]]>"
+ + ""
+ + "";*/
+ logger.info("入库单明细接口返回:" + HIPManagerInfoResult);
+ int startIndex = HIPManagerInfoResult.indexOf("");
+ if(startIndex == -1){
+ return result;
+ }
+ int endIndex = HIPManagerInfoResult.indexOf("");
+ if(endIndex == -1 || endIndex < startIndex){
+ return result;
+ }
+ String xmlString = HIPManagerInfoResult.substring(startIndex + "".length(), endIndex);
+ XMLSerializer xmlSerializer = new XMLSerializer();
+ JSON json = xmlSerializer.read("" + xmlString + "");
+ JSONObject storageEntryInfos = json.isArray() ? ((JSONArray)json).getJSONObject(0) : (JSONObject)json;
+ if(storageEntryInfos != null){
+ JSONObject body = storageEntryInfos.optJSONObject("Body");
+ Integer status = body.optInt("ResultCode", -1);
+ if(DatasyncConstant.ResultCode_Success.intValue() != status.intValue()){
+ logger.info("入库单明细接口查询失败:ResultCode = " + status + "; ResultContent = " + body.optString("ResultContent"));
+ return null;
+ }
+ Object storageEntryInfoObj = storageEntryInfos.opt("Data");
+ JSONArray storageEntryInfoArr = null;
+ if(storageEntryInfoObj instanceof JSONArray){
+ storageEntryInfoArr = (JSONArray) storageEntryInfoObj;
+ }else if(storageEntryInfoObj instanceof JSONObject){
+ storageEntryInfoArr = new JSONArray();
+ JSONObject storageEntryInfo = (JSONObject)storageEntryInfoObj;
+ storageEntryInfoArr.add(storageEntryInfo);
+ }
+ if(storageEntryInfoArr != null && storageEntryInfoArr.size() > 0){
+ for (Object object : storageEntryInfoArr) {
+ JSONObject storageEntryItemInfo = (JSONObject) object;
+ String serialNumber = storageEntryItemInfo.optString("SERIALNUMBER");
+ StorageEntry storageEntry = new StorageEntry();
+ storageEntry.setSerialNumber(serialNumber);
+ return storageEntry;
+ }
+ }
+ }
+
+ } catch (Exception e) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ e.printStackTrace(new PrintStream(baos));
+ String exception = baos.toString();
+ logger.error("入库单明细接口查询失败:" + exception);
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ @Override
+ public StorageEntry findOutEntryBySerialNumber(String entrySerialNumber) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public StorageEntry findReturnEntryBySerialNumber(String entrySerialNumber) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public StorageEntry[] findInEntryByTime(Date startDate, Date endDate) {
+ String input1 = DatasyncConstant.JWServiceCode_StorageEntry;
+ String input2 = "XDGY"
+ + "" + DateTools.getFormatDateStr(startDate, DateTools.COMMON_DATE_ONLY) + ""
+ + "" + DateTools.getFormatDateStr(endDate, DateTools.COMMON_DATE_ONLY) + ""
+ + "";
+ StorageEntry[] result = null;
+ try {
+ String HIPManagerInfoResult = WebServiceClientHelper.axisInvokeWebservice(DatasyncConstant.JunWeiWebserviceAddress, input1, input2);
+ /*String HIPManagerInfoResult = ""
+ + ""
+ + ""
+ + "0"
+ + "O9007503"
+ + "O6039645"
+ + "O9007551"
+ + "]]>"
+ + ""
+ + ""
+ + "";*/
+ logger.info("入库单接口返回:" + HIPManagerInfoResult);
+ int startIndex = HIPManagerInfoResult.indexOf("");
+ if(startIndex == -1){
+ return result;
+ }
+ int endIndex = HIPManagerInfoResult.indexOf("");
+ if(endIndex == -1 || endIndex < startIndex){
+ return result;
+ }
+ String xmlString = HIPManagerInfoResult.substring(startIndex + "".length(), endIndex);
+ XMLSerializer xmlSerializer = new XMLSerializer();
+ JSON json = xmlSerializer.read("" + xmlString + "");
+ JSONObject storageEntryInfos = json.isArray() ? ((JSONArray)json).getJSONObject(0) : (JSONObject)json;
+ if(storageEntryInfos != null){
+ JSONObject body = storageEntryInfos.optJSONObject("Body");
+ Integer status = body.optInt("ResultCode", -1);
+ if(DatasyncConstant.ResultCode_Success.intValue() != status.intValue()){
+ logger.info("入库单接口查询失败:ResultCode = " + status + "; ResultContent = " + body.optString("ResultContent"));
+ return null;
+ }
+ Object storageEntryInfoObj = storageEntryInfos.opt("Data");
+ JSONArray storageEntryInfoArr = null;
+ if(storageEntryInfoObj instanceof JSONArray){
+ storageEntryInfoArr = (JSONArray) storageEntryInfoObj;
+ }else if(storageEntryInfoObj instanceof JSONObject){
+ storageEntryInfoArr = new JSONArray();
+ JSONObject storageEntryInfo = (JSONObject)storageEntryInfoObj;
+ storageEntryInfoArr.add(storageEntryInfo);
+ }
+ if(storageEntryInfoArr != null && storageEntryInfoArr.size() > 0){
+ List storageEntryList = new ArrayList();
+ for (Object object : storageEntryInfoArr) {
+ JSONObject storageEntryInfo = (JSONObject) object;
+ String serialNumber = storageEntryInfo.optString("SERIALNUMBER");
+ String timeStr = storageEntryInfo.optString("TIME");
+ Date time = DateTools.coverStrToDate(timeStr, DateTools.COMMON_DATE_HMS);
+ String remark = storageEntryInfo.optString("REMARK");
+ StorageEntry storageEntry = new StorageEntry();
+ storageEntry.setSerialNumber(serialNumber);
+ storageEntry.setTime(new java.sql.Date(time.getTime()));
+ storageEntry.setRemark(remark);
+ storageEntryList.add(storageEntry);
+ }
+ WebServiceClientHelper.storageEntryList = storageEntryList;
+ return storageEntryList.toArray(new StorageEntry[storageEntryList.size()]);
+ }
+ }
+
+ } catch (Exception e) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ e.printStackTrace(new PrintStream(baos));
+ String exception = baos.toString();
+ logger.error("入库单接口查询失败:" + exception);
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ @Override
+ public StorageEntry[] findOutEntryByTime(Date startDate, Date endDate) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public StorageEntry[] findReturnEntryByTime(Date startDate, Date endDate) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public StorageEntry[] findInEntryByTimeAndTwoStoreCodeList(Date startDate,
+ Date endDate, List storeCodeList,
+ List exchStoreCodeList) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public StorageEntry[] findOutEntryByTimeAndTwoStoreCodeList(Date startDate,
+ Date endDate, List storeCodeList,
+ List exchStoreCodeList) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public StorageEntry[] findReturnEntryByTimeAndTwoStoreCodeList(
+ Date startDate, Date endDate, List storeCodeList,
+ List exchStoreCodeList) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public StorageEntryItem[] findInEntryItem(String entrySerialNumber) {
+ String input1 = DatasyncConstant.JWServiceCode_StorageEntryItem;
+ String input2 = "XDGY"
+ + "" + entrySerialNumber + ""
+ + "";
+ StorageEntryItem[] result = null;
+ try {
+ String HIPManagerInfoResult = WebServiceClientHelper.axisInvokeWebservice(DatasyncConstant.JunWeiWebserviceAddress, input1, input2);
+ /*String HIPManagerInfoResult = ""
+ + ""
+ + ""
+ + "0"
+ + "O9007475一次性使用灭菌橡胶外科手套6.5XXXX75003.25马来西亚 Ansell N.P.Sdn.Bhd.(安思尔)01074001"
+ + "O9007475一次性使用灭菌橡胶外科手套7XXXX45003.25马来西亚 Ansell N.P.Sdn.Bhd.(安思尔)01074001"
+ + "O9007475一次性使用灭菌橡胶外科手套7.5XXXX90003.25马来西亚 Ansell N.P.Sdn.Bhd.(安思尔)01074001]]>"
+ + ""
+ + "";*/
+ logger.info("入库单明细接口返回:" + HIPManagerInfoResult);
+ int startIndex = HIPManagerInfoResult.indexOf("");
+ if(startIndex == -1){
+ return result;
+ }
+ int endIndex = HIPManagerInfoResult.indexOf("");
+ if(endIndex == -1 || endIndex < startIndex){
+ return result;
+ }
+ String xmlString = HIPManagerInfoResult.substring(startIndex + "".length(), endIndex);
+ XMLSerializer xmlSerializer = new XMLSerializer();
+ JSON json = xmlSerializer.read("" + xmlString + "");
+ JSONObject storageEntryInfos = json.isArray() ? ((JSONArray)json).getJSONObject(0) : (JSONObject)json;
+ if(storageEntryInfos != null){
+ JSONObject body = storageEntryInfos.optJSONObject("Body");
+ Integer status = body.optInt("ResultCode", -1);
+ if(DatasyncConstant.ResultCode_Success.intValue() != status.intValue()){
+ logger.info("入库单明细接口查询失败:ResultCode = " + status + "; ResultContent = " + body.optString("ResultContent"));
+ return null;
+ }
+ Object storageEntryInfoObj = storageEntryInfos.opt("Data");
+ JSONArray storageEntryInfoArr = null;
+ if(storageEntryInfoObj instanceof JSONArray){
+ storageEntryInfoArr = (JSONArray) storageEntryInfoObj;
+ }else if(storageEntryInfoObj instanceof JSONObject){
+ storageEntryInfoArr = new JSONArray();
+ JSONObject storageEntryInfo = (JSONObject)storageEntryInfoObj;
+ storageEntryInfoArr.add(storageEntryInfo);
+ }
+ if(storageEntryInfoArr != null && storageEntryInfoArr.size() > 0){
+ List storageEntryItemList = new ArrayList();
+ for (Object object : storageEntryInfoArr) {
+ JSONObject storageEntryItemInfo = (JSONObject) object;
+ String specification = storageEntryItemInfo.optString("SPECIFICATION");
+ String name = storageEntryItemInfo.optString("NAME");
+ String batchNumber = storageEntryItemInfo.optString("BATCHID");
+ String expDateStr = storageEntryItemInfo.optString("EXPDATE");
+
+ Long amount = storageEntryItemInfo.optLong("AMOUNT");
+ Double unitPrice = storageEntryItemInfo.optDouble("COST");
+ String manufacturer = storageEntryItemInfo.optString("MANUFACTURER");
+ String inventorySerialNumber = storageEntryItemInfo.optString("INVENTORYSERIALNUMBER");
+
+ StorageEntryItem storageEntryItem = new StorageEntryItem();
+ storageEntryItem.setName(name);
+ storageEntryItem.setSpecification(specification);
+ storageEntryItem.setBatchNumber(batchNumber);
+ try {
+ SimpleDateFormat sdf = new SimpleDateFormat(DateTools.COMMON_DATE_HMS);
+ Date time = sdf.parse(expDateStr);
+ storageEntryItem.setExpDate(new java.sql.Date(time.getTime()));
+ } catch (Exception e) {
+ //e.printStackTrace();
+ }
+ storageEntryItem.setAmount(amount);
+ storageEntryItem.setUnitPrice(unitPrice);
+ storageEntryItem.setManufacturer(manufacturer);
+ storageEntryItem.setInventorySerialNumber(inventorySerialNumber);
+
+ storageEntryItemList.add(storageEntryItem);
+ }
+ return storageEntryItemList.toArray(new StorageEntryItem[storageEntryItemList.size()]);
+ }
+ }
+
+ } catch (Exception e) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ e.printStackTrace(new PrintStream(baos));
+ String exception = baos.toString();
+ logger.error("入库单明细接口查询失败:" + exception);
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+ @Override
+ public StorageEntryItem[] findOutEntryItem(String entrySerialNumber) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public StorageEntryItem[] findReturnEntryItem(String entrySerialNumber) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Inventory getInventory(String inventorySerialNumber) {
+ return null;
+ }
+
+ @Override
+ public Inventory[] findInventory(String name, String specification) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Inventory[] getAllInventoryData() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Inventory[] getAllInventoryStockDataFromPlatform(
+ Long orgUnitIdFromHisSync) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Inventory getInventory(String inventorySerialNumber, String specification) {
+ String input1 = DatasyncConstant.JWServiceCode_Inventory;
+ String input2 = "XDGY"
+ + "" + inventorySerialNumber + ""
+ + "" + specification + ""
+ + "";
+ Inventory result = null;
+ try {
+ String HIPManagerInfoResult = WebServiceClientHelper.axisInvokeWebservice(DatasyncConstant.JunWeiWebserviceAddress, input1, input2);
+ /*String HIPManagerInfoResult = ""
+ + ""
+ + ""
+ + "0医用外科口罩挂耳型个.65201073037]]>"
+ + ""
+ + "";*/
+ logger.info("物品基础信息接口返回:" + HIPManagerInfoResult);
+ int startIndex = HIPManagerInfoResult.indexOf("");
+ if(startIndex == -1){
+ return result;
+ }
+ int endIndex = HIPManagerInfoResult.indexOf("");
+ if(endIndex == -1 || endIndex < startIndex){
+ return result;
+ }
+ String xmlString = HIPManagerInfoResult.substring(startIndex + "".length(), endIndex);
+ XMLSerializer xmlSerializer = new XMLSerializer();
+ JSON json = xmlSerializer.read("" + xmlString + "");
+ JSONObject inventoryInfos = json.isArray() ? ((JSONArray)json).getJSONObject(0) : (JSONObject)json;
+ if(inventoryInfos != null){
+ JSONObject body = inventoryInfos.optJSONObject("Body");
+ Integer status = body.optInt("ResultCode", -1);
+ if(DatasyncConstant.ResultCode_Success.intValue() != status.intValue()){
+ logger.info("物品基础信息接口查询失败:ResultCode = " + status + "; ResultContent = " + body.optString("ResultContent"));
+ return null;
+ }
+ Object inventoryInfoObj = inventoryInfos.opt("Data");
+ JSONArray inventoryInfoArr = null;
+ if(inventoryInfoObj instanceof JSONArray){
+ inventoryInfoArr = (JSONArray) inventoryInfoObj;
+ }else if(inventoryInfoObj instanceof JSONObject){
+ inventoryInfoArr = new JSONArray();
+ JSONObject storageEntryInfo = (JSONObject)inventoryInfoObj;
+ inventoryInfoArr.add(storageEntryInfo);
+ }
+ if(inventoryInfoArr != null && inventoryInfoArr.size() > 0){
+ List inventoryItemList = new ArrayList();
+ for (Object object : inventoryInfoArr) {
+ JSONObject inventoryItemInfo = (JSONObject) object;
+
+ String name = inventoryItemInfo.optString("NAME");
+ String specification1 = inventoryItemInfo.optString("SPECIFICATION", "");
+ String unit = inventoryItemInfo.optString("UNIT");
+ Double cost = inventoryItemInfo.optDouble("COST");
+ String serialNumber = inventoryItemInfo.optString("SERIALNUMBER") + specification1;
+
+ Inventory inventory = new Inventory();
+ inventory.setName(name);
+ inventory.setSpecification(specification);
+ inventory.setUnit(unit);
+ inventory.setCost(cost);
+ inventory.setSerialNumber(serialNumber);
+ inventoryItemList.add(inventory);
+ }
+ return inventoryItemList.get(0);
+ }
+ }
+
+ } catch (Exception e) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ e.printStackTrace(new PrintStream(baos));
+ String exception = baos.toString();
+ logger.error("物品基础信息接口查询失败:" + exception);
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/fsfy/InventoryDaoImpl.java
===================================================================
diff -u -r25993 -r30814
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/fsfy/InventoryDaoImpl.java (.../InventoryDaoImpl.java) (revision 25993)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/fsfy/InventoryDaoImpl.java (.../InventoryDaoImpl.java) (revision 30814)
@@ -635,4 +635,11 @@
return null;
}
+ @Override
+ public Inventory getInventory(String inventorySerialNumber,
+ String specification) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/service/InventoryManagerImpl.java
===================================================================
diff -u -r28956 -r30814
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/service/InventoryManagerImpl.java (.../InventoryManagerImpl.java) (revision 28956)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/service/InventoryManagerImpl.java (.../InventoryManagerImpl.java) (revision 30814)
@@ -319,6 +319,9 @@
}else{
inventory = inventoryDao.getInventory(inventorySerialNumber);
}
+ if(inventory == null && StringUtils.isNotBlank(item.getSpecification())){
+ inventory = inventoryDao.getInventory(inventorySerialNumber,item.getSpecification());
+ }
}//若明细的物资编码为空,则根据名称规格获取
else{
String name = item.getName();
Index: ssts-zd5y-misc/src/main/java/com/forgon/disinfectsystem/inventorymanagement/zd5y/dao/InventoryDao.java
===================================================================
diff -u -r25993 -r30814
--- ssts-zd5y-misc/src/main/java/com/forgon/disinfectsystem/inventorymanagement/zd5y/dao/InventoryDao.java (.../InventoryDao.java) (revision 25993)
+++ ssts-zd5y-misc/src/main/java/com/forgon/disinfectsystem/inventorymanagement/zd5y/dao/InventoryDao.java (.../InventoryDao.java) (revision 30814)
@@ -119,4 +119,11 @@
return null;
}
+ @Override
+ public Inventory getInventory(String inventorySerialNumber,
+ String specification) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/WebServiceClientHelper.java
===================================================================
diff -u -r30753 -r30814
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 30753)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 30814)
@@ -2,14 +2,18 @@
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.List;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
+import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import com.forgon.disinfectsystem.common.CssdUtils;
+import com.forgon.disinfectsystem.inventorymanagement.model.StorageEntry;
import com.forgon.tools.Constants;
/**
@@ -22,24 +26,36 @@
public static Logger logger = Logger.getLogger(WebServiceClientHelper.class);
+ /**
+ * 保存从接口查询到的入库单信息,开始同步时,不需要再次查询接口
+ */
+ public static List storageEntryList = new ArrayList();
+
/**
* axis调用webservice
+ * @param endpoint //WSDL的地址
* @param input1
* @param input2
* @return
* @throws Exception
*/
- public static String axisInvokeWebservice(String input1, String input2) throws Exception {
+ public static String axisInvokeWebservice(String endpoint, String input1, String input2) throws Exception {
//字符集
String encodingStyle = "utf-8";
- //WSDL的地址
- String endpoint = DatasyncConstant.WebserviceAddress;
//命名空间,在WSDL中对应的标签是:targetNamespace
String targetNamespace = "http://tempuri.org";
//具体方法的调用URI,在WSDL中对应的标签是:
String soapActionURI = "http://tempuri.org/DHC.Published.PUB0028.BS.PUB0028.HIPMessageServer";
//具体调用的方法名,在WSDL中对应的标签是:
String method = "HIPMessageServer";
+
+ // 一次性物品接口开发(军卫系统:供应商、入库单及明细、物品基础信息)
+ if(StringUtils.equals(endpoint, DatasyncConstant.JunWeiWebserviceAddress)){
+ targetNamespace = "http://tempuri.org";
+ soapActionURI = "http://tempuri.org/DHC.Published.PUB0025.BS.PUB0025.HIPManagerInfo";
+ method = "HIPManagerInfo";
+ }
+
//调用接口的参数的名字
String[] paramNames = {"input1","input2"};
//调用接口的参数的值
Index: ssts-web/src/main/webapp/disinfectsystem/config/nfykdxnfyy/spring/HIS.xml
===================================================================
diff -u -r29499 -r30814
--- ssts-web/src/main/webapp/disinfectsystem/config/nfykdxnfyy/spring/HIS.xml (.../HIS.xml) (revision 29499)
+++ ssts-web/src/main/webapp/disinfectsystem/config/nfykdxnfyy/spring/HIS.xml (.../HIS.xml) (revision 30814)
@@ -80,7 +80,7 @@
-
+
-
+
+
+
+
+
\ No newline at end of file
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/SyncSupplierDaoImpl.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/SyncSupplierDaoImpl.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/nfykdxnfyy/SyncSupplierDaoImpl.java (revision 30814)
@@ -0,0 +1,97 @@
+package com.forgon.disinfectsystem.datasynchronization.dao.nfykdxnfyy;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import net.sf.json.JSON;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+import net.sf.json.xml.XMLSerializer;
+import org.apache.log4j.Logger;
+import com.forgon.disinfectsystem.datasynchronization.dao.SyncSupplierDao;
+import com.forgon.disinfectsystem.entity.basedatamanager.supplier.Supplier;
+
+/**
+ * 同步供应商接口(南方医院)
+ * @author ZhouPeiMian
+ * @since 2021-03-17
+ *
+ */
+public class SyncSupplierDaoImpl implements SyncSupplierDao {
+
+ Logger logger = Logger.getLogger(SyncSupplierDaoImpl.class);
+
+ @Override
+ public Supplier[] getAllSupplier() {
+ String input1 = DatasyncConstant.JWServiceCode_Supplier;
+ String input2 = "" + DatasyncConstant.JWSourceSystem + "";
+ Supplier[] result = null;
+ try {
+ String HIPManagerInfoResult = WebServiceClientHelper.axisInvokeWebservice(DatasyncConstant.JunWeiWebserviceAddress, input1, input2);
+ /*String HIPManagerInfoResult = ""
+ + ""
+ + ""
+ + "01871北京中美伟康公司]]>"
+ + ""
+ + ""
+ + "";*/
+ logger.info("供应商接口返回信息:" + HIPManagerInfoResult);
+ int startIndex = HIPManagerInfoResult.indexOf("");
+ if(startIndex == -1){
+ return result;
+ }
+ int endIndex = HIPManagerInfoResult.indexOf("");
+ if(endIndex == -1 || endIndex < startIndex){
+ return result;
+ }
+ String xmlString = HIPManagerInfoResult.substring(startIndex + "".length(), endIndex);
+ XMLSerializer xmlSerializer = new XMLSerializer();
+ JSON json = xmlSerializer.read("" + xmlString + "");
+ JSONObject supplierInfos = json.isArray() ? ((JSONArray)json).getJSONObject(0) : (JSONObject)json;
+ if(supplierInfos != null){
+ JSONObject body = supplierInfos.optJSONObject("Body");
+ Integer status = body.optInt("ResultCode", -1);
+ if(DatasyncConstant.ResultCode_Success.intValue() != status.intValue()){
+ logger.info("供应商接口查询失败:ResultCode = " + status + "; ResultContent = " + body.optString("ResultContent"));
+ return null;
+ }
+ Object supplierInfoObj = supplierInfos.opt("Data");
+ JSONArray supplierInfoArr = null;
+ if(supplierInfoObj instanceof JSONArray){
+ supplierInfoArr = (JSONArray) supplierInfoObj;
+ }else if(supplierInfoObj instanceof JSONObject){
+ supplierInfoArr = new JSONArray();
+ JSONObject supplierInfo = (JSONObject)supplierInfoObj;
+ supplierInfoArr.add(supplierInfo);
+ }
+ if(supplierInfoArr != null && supplierInfoArr.size() > 0){
+ List supplierInfoList = new ArrayList();
+ for (Object object : supplierInfoArr) {
+ JSONObject supplierInfo = (JSONObject) object;
+ String companyName = supplierInfo.optString("COMPANYNAME");
+ String address = supplierInfo.optString("address");
+ String phone = supplierInfo.optString("phone");
+ Supplier supplier = new Supplier();
+ supplier.setCompanyName(companyName);
+ supplier.setAddress(address);
+ supplier.setPhone(phone);
+ supplier.setRentTousse(Supplier.SUPPLIER_TYPE_SUPPLIER);
+ supplierInfoList.add(supplier);
+ }
+ return supplierInfoList.toArray(new Supplier[supplierInfoList.size()]);
+ }
+ }
+ } catch (Exception e) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ e.printStackTrace(new PrintStream(baos));
+ String exception = baos.toString();
+ logger.error("供应商接口查询失败:" + exception);
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+
+}