Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dgsdhyy/SyncOrgUnitAndUserDaoImpl.java
===================================================================
diff -u -r13772 -r14046
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dgsdhyy/SyncOrgUnitAndUserDaoImpl.java (.../SyncOrgUnitAndUserDaoImpl.java) (revision 13772)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dgsdhyy/SyncOrgUnitAndUserDaoImpl.java (.../SyncOrgUnitAndUserDaoImpl.java) (revision 14046)
@@ -47,7 +47,6 @@
JSONObject userInfo = (JSONObject)dataTableObj;
userJsonArray.add(userInfo);
}else if(dataTableObj instanceof JSONArray){
- //拿最近的一次性诊疗记录
userJsonArray = (JSONArray)dataTableObj;
}
if(userJsonArray.size() > 0){
@@ -99,7 +98,6 @@
JSONObject userInfo = (JSONObject)dataTableObj;
orgJsonArray.add(userInfo);
}else if(dataTableObj instanceof JSONArray){
- //拿最近的一次性诊疗记录
orgJsonArray = (JSONArray)dataTableObj;
}
if(orgJsonArray.size() > 0){
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dgsdhyy/FindPatientInfoByHospitalNumDaoImpl.java
===================================================================
diff -u -r13772 -r14046
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dgsdhyy/FindPatientInfoByHospitalNumDaoImpl.java (.../FindPatientInfoByHospitalNumDaoImpl.java) (revision 13772)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dgsdhyy/FindPatientInfoByHospitalNumDaoImpl.java (.../FindPatientInfoByHospitalNumDaoImpl.java) (revision 14046)
@@ -27,6 +27,27 @@
public PatientInfoVO[] findPatientInfoByHospitalNum(String hospitalNum) {
PatientInfoVO[] patientInfoVOArray = null;
try{
+ //测试数据,建议代码保留往后可以本地调试
+ /*String xml = ""
++""
++" 0"
++""
++""
++" 402657"
++" 3"
++" 舒敏"
++" 58"
++" 女"
++" "
++" 李职杏"
++" 经腹全子宫+双侧附件切除术"
++" 2016/7/6 8:00:00"
++" 妇科"
++" 妇科"
++" 023"
++" "
++""
++"";*/
String xml = CssdUtils.callWebService(DatasyncConstant.WebserviceAddress,
WebServiceClientHelper.buildInputXml(DatasyncConstant.MethodName_CSSD_HospitalNumber, hospitalNum), Constants.CHARSET_GBK);
JSONObject json = (JSONObject)WebServiceClientHelper.patientXml2Json(xml);
@@ -74,7 +95,6 @@
throw new RuntimeException(json.optString("Error"));
}
}
- return null;
}catch(Exception e){
logger.error("根据住院号查询病人信息失败" + e);
}
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dgsdhyy/FindPatientInfoByTreatmentNumDaoImpl.java
===================================================================
diff -u -r13772 -r14046
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dgsdhyy/FindPatientInfoByTreatmentNumDaoImpl.java (.../FindPatientInfoByTreatmentNumDaoImpl.java) (revision 13772)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dgsdhyy/FindPatientInfoByTreatmentNumDaoImpl.java (.../FindPatientInfoByTreatmentNumDaoImpl.java) (revision 14046)
@@ -75,7 +75,6 @@
throw new RuntimeException(json.optString("Error"));
}
}
- return null;
}catch(Exception e){
logger.error("根据诊疗号查询病人信息失败" + e);
}
Index: ssts-web/src/main/resources/spring/projects/dgsdhyy/applicationContext-his.xml
===================================================================
diff -u -r13772 -r14046
--- ssts-web/src/main/resources/spring/projects/dgsdhyy/applicationContext-his.xml (.../applicationContext-his.xml) (revision 13772)
+++ ssts-web/src/main/resources/spring/projects/dgsdhyy/applicationContext-his.xml (.../applicationContext-his.xml) (revision 14046)
@@ -41,6 +41,28 @@
class="com.forgon.disinfectsystem.datasynchronization.dwr.DataSynchronizationTableManager">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PROPAGATION_REQUIRED
+
+
+
+
@@ -50,4 +72,7 @@
+
+
+
\ No newline at end of file
Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/model/Inventory.java
===================================================================
diff -u -r12791 -r14046
--- ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/model/Inventory.java (.../Inventory.java) (revision 12791)
+++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/model/Inventory.java (.../Inventory.java) (revision 14046)
@@ -3,11 +3,13 @@
import org.apache.commons.lang.StringUtils;
import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods;
-import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoodsStock;
import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition;
public class Inventory {
+ /**
+ * 物资编码(用于一次性物品及材料)
+ */
private String serialNumber;
private String name;
private String specification;
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dgsdhyy/WebServiceClientHelper.java
===================================================================
diff -u -r13773 -r14046
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dgsdhyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 13773)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/datasynchronization/dao/dgsdhyy/WebServiceClientHelper.java (.../WebServiceClientHelper.java) (revision 14046)
@@ -77,7 +77,30 @@
}
return inputXml;
}
+
/**
+ * xml格式转json(入库单及明细、退库单及明细等)
+ * @param result
+ * @return
+ */
+ public static JSON xml2JsonCommon(String xml){
+ try {
+ //转json
+ if (StringUtils.isNotBlank(xml)) {
+ xml = xml.replace("", "");
+ XMLSerializer xmlSerializer = new XMLSerializer();
+ JSON json = xmlSerializer.read(xml);
+ logger.debug("json=" + json);
+ return json;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.error("xml转json失败" + e);
+ }
+ return null;
+ }
+
+ /**
* 用户的xml格式转json
* @param result
* @return
Index: ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/dgsdhyy/InventoryDaoImpl.java
===================================================================
diff -u
--- ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/dgsdhyy/InventoryDaoImpl.java (revision 0)
+++ ssts-datasync-default-impl/src/main/java/com/forgon/disinfectsystem/inventorymanagement/dao/dgsdhyy/InventoryDaoImpl.java (revision 14046)
@@ -0,0 +1,468 @@
+package com.forgon.disinfectsystem.inventorymanagement.dao.dgsdhyy;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.lang.StringUtils;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+import com.forgon.disinfectsystem.common.CssdUtils;
+import com.forgon.disinfectsystem.datasynchronization.dao.dgsdhyy.DatasyncConstant;
+import com.forgon.disinfectsystem.datasynchronization.dao.dgsdhyy.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.Constants;
+
+/**
+ * 东莞东华医院物资接口(同步入库单、退库单等)实现类
+ * @author shuyongfu
+ * @since 2016-06-20
+ *
+ */
+public class InventoryDaoImpl implements InventoryDao {
+
+ private static StorageEntry[] lastStorageInEntryList = null;
+ private static StorageEntry[] lastStorageOutEntryList = null;
+
+ /**
+ * 根据单号查询待同步的入库单信息
+ * @param entrySerialNumber 单号
+ */
+ public StorageEntry findInEntryBySerialNumber(String entrySerialNumber){
+ StorageEntry entry = null;
+ //从刚刚操作按时间范围读取到的入库结果中按单号进行过滤
+ if(lastStorageInEntryList != null && lastStorageInEntryList.length > 0){
+ for(StorageEntry storageEntry : lastStorageInEntryList){
+ if(StringUtils.equals(entrySerialNumber, storageEntry.getSerialNumber())){
+ entry = storageEntry;
+ break;
+ }
+ }
+ }
+ return entry;
+ }
+
+ /**
+ * 根据单号查询待同步的退库单信息
+ * @param entrySerialNumber 单号
+ */
+ public StorageEntry findOutEntryBySerialNumber(String entrySerialNumber){
+ StorageEntry entry = null;
+ //从刚刚操作按时间范围读取到的入库结果中按单号进行过滤
+ if(lastStorageOutEntryList != null && lastStorageOutEntryList.length > 0){
+ for(StorageEntry storageEntry : lastStorageOutEntryList){
+ if(StringUtils.equals(entrySerialNumber, storageEntry.getSerialNumber())){
+ entry = storageEntry;
+ break;
+ }
+ }
+ }
+ return entry;
+ }
+
+ public StorageEntry findReturnEntryBySerialNumber(String entrySerialNumber){
+ return null;
+ }
+
+ /**
+ * 根据开始与结束时间查询待同步的入库单信息
+ * @param startDate 开始时间
+ * @param endDate 结束时间
+ */
+ public StorageEntry[] findInEntryByTime(Date startDate,Date endDate ){
+ StorageEntry[] entryArray = null;
+ try {
+ SimpleDateFormat sdfParam = new SimpleDateFormat("yyyy-MM-dd");
+ //测试数据
+ /*String xmlResult = ""
++""
++" 0"
++""
++""
++" 2016061"
++" GYSR0001747"
++" "
++" 自动生成"
++"";*/
+ String xmlResult =
+ CssdUtils.callWebService(DatasyncConstant.WebserviceAddress,
+ WebServiceClientHelper.buildInputXml(DatasyncConstant.MethodName_CSSD_MaterialEntry, sdfParam.format(startDate), sdfParam.format(endDate)),
+ Constants.CHARSET_GBK);
+ JSONObject json = (JSONObject)WebServiceClientHelper.xml2JsonCommon(xmlResult);
+ if(json != null){
+ String code = json.optString("Result");
+ if(DatasyncConstant.RESULT_OK.equals(code)){
+ Object dataTableObj = json.opt("DataTable");
+ if(dataTableObj == null){
+ return null;
+ }
+ JSONArray entryJsonArray = new JSONArray();
+ if(dataTableObj instanceof JSONObject){
+ JSONObject entryJson = (JSONObject)dataTableObj;
+ entryJsonArray.add(entryJson);
+ }else if(dataTableObj instanceof JSONArray){
+ entryJsonArray = (JSONArray)dataTableObj;
+ }
+ if(entryJsonArray.size() > 0){
+ List entryList = new ArrayList();
+ SimpleDateFormat sdfValue = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+ for (int i = 0; i < entryJsonArray.size(); i++) {
+ Object serialNumber = entryJsonArray.optJSONObject(i).opt("serialNumber");
+ Object time = entryJsonArray.optJSONObject(i).opt("time");
+ Object remark = entryJsonArray.optJSONObject(i).opt("remark");
+ StorageEntry entry = new StorageEntry();
+ entry.setSerialNumber(serialNumber instanceof String ? (String)serialNumber : "");
+ entry.setTime(time instanceof String ? new java.sql.Date(sdfValue.parse((String)time).getTime()) : null);
+ entry.setRemark(remark instanceof String ? (String)remark : "");
+ entryList.add(entry);
+ }
+ entryArray = new StorageEntry[entryJsonArray.size()];
+ entryList.toArray(entryArray);
+ //记录本次的入库接口调用结果
+ lastStorageInEntryList = entryArray;
+ }
+ }else{
+ throw new RuntimeException(json.optString("Error"));
+ }
+ }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return entryArray;
+ }
+
+ /**
+ * 根据开始与结束时间查询待同步的退库单信息
+ * @param startDate 开始时间
+ * @param endDate 结束时间
+ */
+ public StorageEntry[] findOutEntryByTime(Date startDate,Date endDate){
+ StorageEntry[] entryArray = null;
+ try {
+ SimpleDateFormat sdfParam = new SimpleDateFormat("yyyy-MM-dd");
+ String xmlResult =
+ CssdUtils.callWebService(DatasyncConstant.WebserviceAddress,
+ WebServiceClientHelper.buildInputXml(DatasyncConstant.MethodName_CSSD_GodownEntry, sdfParam.format(startDate), sdfParam.format(endDate)),
+ Constants.CHARSET_GBK);
+ JSONObject json = (JSONObject)WebServiceClientHelper.xml2JsonCommon(xmlResult);
+ if(json != null){
+ String code = json.optString("Result");
+ if(DatasyncConstant.RESULT_OK.equals(code)){
+ Object dataTableObj = json.opt("DataTable");
+ if(dataTableObj == null){
+ return null;
+ }
+ JSONArray entryJsonArray = new JSONArray();
+ if(dataTableObj instanceof JSONObject){
+ JSONObject entryJson = (JSONObject)dataTableObj;
+ entryJsonArray.add(entryJson);
+ }else if(dataTableObj instanceof JSONArray){
+ entryJsonArray = (JSONArray)dataTableObj;
+ }
+ if(entryJsonArray.size() > 0){
+ List entryList = new ArrayList();
+ SimpleDateFormat sdfValue = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+ for (int i = 0; i < entryJsonArray.size(); i++) {
+ Object serialNumber = entryJsonArray.optJSONObject(i).opt("serialNumber");
+ Object time = entryJsonArray.optJSONObject(i).opt("time");
+ Object remark = entryJsonArray.optJSONObject(i).opt("remark");
+ StorageEntry entry = new StorageEntry();
+ entry.setSerialNumber(serialNumber instanceof String ? (String)serialNumber : "");
+ entry.setTime(time instanceof String ? new java.sql.Date(sdfValue.parse((String)time).getTime()) : null);
+ entry.setRemark(remark instanceof String ? (String)remark : "");
+ entryList.add(entry);
+ }
+ entryArray = new StorageEntry[entryJsonArray.size()];
+ entryList.toArray(entryArray);
+ //记录本次的退库接口调用结果
+ lastStorageInEntryList = entryArray;
+ }
+ }else{
+ throw new RuntimeException(json.optString("Error"));
+ }
+ }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return entryArray;
+ }
+
+ /**
+ * 根据开始与结束时间查询待同步的退货单信息
+ * @param startDate 开始时间
+ * @param endDate 结束时间
+ */
+ public StorageEntry[] findReturnEntryByTime(Date startDate,Date endDate){
+ return null;
+ }
+
+ /**
+ * 根据单号查询待同步的入库单明细信息
+ * @param entrySerialNumber 单号
+ */
+ public StorageEntryItem[] findInEntryItem(String entrySerialNumber){
+ StorageEntryItem[] entryItemArray = null;
+ try {
+ /*String xmlResult = ""
++""
++"0"
++""
++""
++" GYSR0001644"
++" 一次性使用无菌注射器带针"
++" 5ML(7#) 1800/箱"
++" 001249"
++" 10800"
++" 0.483"
++" 20150812"
++" 2017/7/31"
++" 国食药监械(准)字2014第3150617号"
++" 上海金塔医用器材有限公司"
++" "
++" 10001"
++""
++""
++" GYSR0001644"
++" 一次性使用无菌注射器带针"
++" 5ML(7#) 1800/箱"
++" 001249"
++" 7200"
++" 0.483"
++" 150925"
++" 2017/9/30"
++" 国食药监械(准)字2012第3660367号"
++" 天津哈娜好医材有限公司"
++" "
++" 10002"
++""
++"";*/
+ String xmlResult =
+ CssdUtils.callWebService(DatasyncConstant.WebserviceAddress,
+ WebServiceClientHelper.buildInputXml(DatasyncConstant.MethodName_CSSD_MaterialEntryItem, entrySerialNumber),
+ Constants.CHARSET_GBK);
+ JSONObject json = (JSONObject)WebServiceClientHelper.xml2JsonCommon(xmlResult);
+ if(json != null){
+ String code = json.optString("Result");
+ if(DatasyncConstant.RESULT_OK.equals(code)){
+ Object dataTableObj = json.opt("DataTable");
+ if(dataTableObj == null){
+ return null;
+ }
+ JSONArray entryItemJsonArray = new JSONArray();
+ if(dataTableObj instanceof JSONObject){
+ JSONObject entryItemJson = (JSONObject)dataTableObj;
+ entryItemJsonArray.add(entryItemJson);
+ }else if(dataTableObj instanceof JSONArray){
+ entryItemJsonArray = (JSONArray)dataTableObj;
+ }
+ if(entryItemJsonArray.size() > 0){
+ List entryItemList = new ArrayList();
+ for (int i = 0; i < entryItemJsonArray.size(); i++) {
+ Object name = entryItemJsonArray.optJSONObject(i).opt("name");
+ Object specification = entryItemJsonArray.optJSONObject(i).opt("specification");
+ Object certification = entryItemJsonArray.optJSONObject(i).opt("certification");
+ Object supplierName = entryItemJsonArray.optJSONObject(i).opt("supplierName");
+ Object batchNumber = entryItemJsonArray.optJSONObject(i).opt("batchNumber");
+ Object expDate = entryItemJsonArray.optJSONObject(i).opt("expDate");//2017/7/31
+ Object manufacturer = entryItemJsonArray.optJSONObject(i).opt("manufacturer");
+ Object amount = entryItemJsonArray.optJSONObject(i).opt("amount");
+ Object unitPrice = entryItemJsonArray.optJSONObject(i).opt("cost");
+ Object producingArea = entryItemJsonArray.optJSONObject(i).opt("producingArea");
+ Object inventorySerialNumber = entryItemJsonArray.optJSONObject(i).opt("inventorySerialNumber");
+
+ StorageEntryItem entryItem = new StorageEntryItem();
+ entryItem.setSupplierName(supplierName instanceof String ? (String)supplierName : "");
+ entryItem.setBatchNumber(batchNumber instanceof String ? (String)batchNumber : null);
+ entryItem.setExpDate(expDate instanceof String ? new java.sql.Date(new SimpleDateFormat("yyyy/MM/dd").parse((String)expDate).getTime()) : null);
+ entryItem.setManufacturer(manufacturer instanceof String ? (String)manufacturer : null);
+ entryItem.setAmount(amount instanceof String ? Long.valueOf((String)amount) : null);
+ entryItem.setUnitPrice((unitPrice instanceof String ? Double.valueOf((String)unitPrice) : null));
+ entryItem.setInventorySerialNumber(inventorySerialNumber instanceof String ? (String)inventorySerialNumber : null);
+ entryItem.setInventory(getInventory(entryItem.getInventorySerialNumber()));
+ entryItem.setProducingArea(producingArea instanceof String ? (String)producingArea : null);
+ entryItem.setCertification(certification instanceof String ? (String)certification : null);
+ entryItemList.add(entryItem);
+ }
+ entryItemArray = new StorageEntryItem[entryItemJsonArray.size()];
+ entryItemList.toArray(entryItemArray);
+ }else{
+ throw new RuntimeException("未找到单号为" + entrySerialNumber + "的入库单明细信息");
+ }
+ }else{
+ throw new RuntimeException(json.optString("Error"));
+ }
+ }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return entryItemArray;
+ }
+
+ /**
+ * 根据单号查询待同步的退库单明细信息
+ * @param entrySerialNumber 单号
+ */
+ public StorageEntryItem[] findOutEntryItem(String entrySerialNumber){
+ StorageEntryItem[] entryItemArray = null;
+ try {
+ String xmlResult =
+ CssdUtils.callWebService(DatasyncConstant.WebserviceAddress,
+ WebServiceClientHelper.buildInputXml(DatasyncConstant.MethodName_CSSD_GodownEntryItem, entrySerialNumber),
+ Constants.CHARSET_GBK);
+ JSONObject json = (JSONObject)WebServiceClientHelper.xml2JsonCommon(xmlResult);
+ if(json != null){
+ String code = json.optString("Result");
+ if(DatasyncConstant.RESULT_OK.equals(code)){
+ Object dataTableObj = json.opt("DataTable");
+ if(dataTableObj == null){
+ return null;
+ }
+ JSONArray entryItemJsonArray = new JSONArray();
+ if(dataTableObj instanceof JSONObject){
+ JSONObject entryItemJson = (JSONObject)dataTableObj;
+ entryItemJsonArray.add(entryItemJson);
+ }else if(dataTableObj instanceof JSONArray){
+ entryItemJsonArray = (JSONArray)dataTableObj;
+ }
+ if(entryItemJsonArray.size() > 0){
+ List entryItemList = new ArrayList();
+ for (int i = 0; i < entryItemJsonArray.size(); i++) {
+ Object name = entryItemJsonArray.optJSONObject(i).opt("name");
+ Object specification = entryItemJsonArray.optJSONObject(i).opt("specification");
+ Object certification = entryItemJsonArray.optJSONObject(i).opt("certification");
+ Object supplierName = entryItemJsonArray.optJSONObject(i).opt("supplierName");
+ Object batchNumber = entryItemJsonArray.optJSONObject(i).opt("batchNumber");
+ Object expDate = entryItemJsonArray.optJSONObject(i).opt("expDate");//2017/7/31
+ Object manufacturer = entryItemJsonArray.optJSONObject(i).opt("manufacturer");
+ Object amount = entryItemJsonArray.optJSONObject(i).opt("amount");
+ Object unitPrice = entryItemJsonArray.optJSONObject(i).opt("cost");
+ Object producingArea = entryItemJsonArray.optJSONObject(i).opt("producingArea");
+ Object inventorySerialNumber = entryItemJsonArray.optJSONObject(i).opt("inventorySerialNumber");
+
+ StorageEntryItem entryItem = new StorageEntryItem();
+ entryItem.setSupplierName(supplierName instanceof String ? (String)supplierName : "");
+ entryItem.setBatchNumber(batchNumber instanceof String ? (String)batchNumber : null);
+ entryItem.setExpDate(expDate instanceof String ? new java.sql.Date(new SimpleDateFormat("yyyy/MM/dd").parse((String)expDate).getTime()) : null);
+ entryItem.setManufacturer(manufacturer instanceof String ? (String)manufacturer : null);
+ entryItem.setAmount(amount instanceof String ? Long.valueOf((String)amount) : null);
+ entryItem.setUnitPrice((unitPrice instanceof String ? Double.valueOf((String)unitPrice) : null));
+ entryItem.setInventorySerialNumber(inventorySerialNumber instanceof String ? (String)inventorySerialNumber : null);
+ entryItem.setInventory(getInventory(entryItem.getInventorySerialNumber()));
+ entryItem.setProducingArea(producingArea instanceof String ? (String)producingArea : null);
+ entryItem.setCertification(certification instanceof String ? (String)certification : null);
+ entryItemList.add(entryItem);
+ }
+ entryItemArray = new StorageEntryItem[entryItemJsonArray.size()];
+ entryItemList.toArray(entryItemArray);
+ }else{
+ throw new RuntimeException("未找到单号为" + entrySerialNumber + "的退库单明细信息");
+ }
+ }else{
+ throw new RuntimeException(json.optString("Error"));
+ }
+ }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return entryItemArray;
+ }
+
+ /**
+ * 根据单号查询待同步的退货单明细信息
+ * @param entrySerialNumber 单号
+ */
+ public StorageEntryItem[] findReturnEntryItem(String entrySerialNumber){
+ //东莞东华医院暂无此接口
+ return null;
+ }
+
+ /**
+ * 根据物资编码查询待同步的退货单明细信息
+ * @param entrySerialNumber 单号
+ */
+ public Inventory getInventory(String inventorySerialNumber){
+ Inventory inventory = null;
+ try {
+ /*String xmlResult = ""
++""
++" 0"
++""
++""
++" 103318"
++" 内窥镜储存柜"
++" 双门"
++" 台"
++" 0"
++" 6800"
++" 10001"
++""
++""
++" 103319"
++" 根管扩大器"
++" BBB535 35#25mm"
++" 盒"
++" 40.02"
++" 6800"
++" 10002"
++"";*/
+ String xmlResult =
+ CssdUtils.callWebService(DatasyncConstant.WebserviceAddress,
+ WebServiceClientHelper.buildInputXml(DatasyncConstant.MethodName_CSSD_MaterialDefinition),
+ Constants.CHARSET_GBK);
+ JSONObject json = (JSONObject)WebServiceClientHelper.xml2JsonCommon(xmlResult);
+ if(json != null){
+ String code = json.optString("Result");
+ if(DatasyncConstant.RESULT_OK.equals(code)){
+ Object dataTableObj = json.opt("DataTable");
+ if(dataTableObj == null){
+ return null;
+ }
+ JSONArray entryJsonArray = new JSONArray();
+ if(dataTableObj instanceof JSONObject){
+ JSONObject entryJson = (JSONObject)dataTableObj;
+ entryJsonArray.add(entryJson);
+ }else if(dataTableObj instanceof JSONArray){
+ entryJsonArray = (JSONArray)dataTableObj;
+ }
+ if(entryJsonArray.size() > 0){
+ for (int i = 0; i < entryJsonArray.size(); i++) {
+ Object id = entryJsonArray.optJSONObject(i).opt("id");
+ Object name = entryJsonArray.optJSONObject(i).opt("name");
+ Object specification = entryJsonArray.optJSONObject(i).opt("specification");
+ Object unit = entryJsonArray.optJSONObject(i).opt("unit");
+ Object cost = entryJsonArray.optJSONObject(i).opt("cost");
+ Object serialNumber = entryJsonArray.optJSONObject(i).opt("serialNumber");
+ //待完善
+ if(serialNumber != null && serialNumber instanceof String && StringUtils.equals(inventorySerialNumber, (String)serialNumber)){
+ inventory = new Inventory();
+ inventory.setName(name instanceof String ? (String)name : "");
+ inventory.setSpecification(specification instanceof String ? (String)specification : null);
+ inventory.setUnit(unit instanceof String ? (String)unit : null);
+ inventory.setCost(cost instanceof String ? Double.valueOf((String)cost) : null);
+ inventory.setSerialNumber(serialNumber instanceof String ? (String)serialNumber : null);
+ break;
+ }
+ }
+ }
+ }else{
+ throw new RuntimeException(json.optString("Error"));
+ }
+ }
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return inventory;
+ }
+
+}
Index: ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/model/StorageEntryItem.java
===================================================================
diff -u -r12331 -r14046
--- ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/model/StorageEntryItem.java (.../StorageEntryItem.java) (revision 12331)
+++ ssts-datasync/src/main/java/com/forgon/disinfectsystem/inventorymanagement/model/StorageEntryItem.java (.../StorageEntryItem.java) (revision 14046)
@@ -11,10 +11,23 @@
private Date expDate;
private Long amount;
+ /**
+ * 对应入库单的cost
+ */
private Double unitPrice;
private String supplierName;
private String manufacturer;
+ //根据东华提供的接口增加以下属性
+ /**
+ * 注册证号
+ */
+ private String certification;
+ /**
+ * 产地
+ */
+ private String producingArea;
+
//材料编码
private String invCode;
@@ -117,6 +130,22 @@
public void setInvCode(String invCode) {
this.invCode = invCode;
}
+
+ public String getCertification() {
+ return certification;
+ }
+
+ public void setCertification(String certification) {
+ this.certification = certification;
+ }
+
+ public String getProducingArea() {
+ return producingArea;
+ }
+
+ public void setProducingArea(String producingArea) {
+ this.producingArea = producingArea;
+ }
}