diff --git a/api-sync/src/main/java/com/glxp/mipsdl/admin/client/http/PhxyyClient.java b/api-sync/src/main/java/com/glxp/mipsdl/admin/client/http/PhxyyClient.java index ce51eb3..80fa625 100644 --- a/api-sync/src/main/java/com/glxp/mipsdl/admin/client/http/PhxyyClient.java +++ b/api-sync/src/main/java/com/glxp/mipsdl/admin/client/http/PhxyyClient.java @@ -1,31 +1,60 @@ package com.glxp.mipsdl.admin.client.http; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.glxp.mipsdl.admin.config.ThirdSysConfig; +import com.glxp.mipsdl.admin.constant.ConstantStatus; +import com.glxp.mipsdl.admin.constant.ConstantType; +import com.glxp.mipsdl.admin.dao.basic.*; +import com.glxp.mipsdl.admin.dao.business.StockOrderDao; +import com.glxp.mipsdl.admin.dao.business.StockOrderDetailDao; +import com.glxp.mipsdl.admin.dao.business.StockOrderUploadLogDao; +import com.glxp.mipsdl.admin.dao.inout.OrderDao; +import com.glxp.mipsdl.admin.dao.inventory.InvWarehouseDao; import com.glxp.mipsdl.admin.dao.phxyy.BasicThirdSysDetailDao; -import com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity; +import com.glxp.mipsdl.admin.dao.thrsys.ThrInvWarehouseDao; +import com.glxp.mipsdl.admin.entity.basic.BasicThirdSysBusApiEntity; +import com.glxp.mipsdl.admin.entity.basic.BussinessLocalTypeEntity; +import com.glxp.mipsdl.admin.entity.basic.UdiRelevanceEntity; +import com.glxp.mipsdl.admin.entity.basic.UnitMaintainEntity; +import com.glxp.mipsdl.admin.entity.business.StockOrderDetailEntity; +import com.glxp.mipsdl.admin.entity.business.StockOrderEntity; +import com.glxp.mipsdl.admin.entity.business.StockOrderUploadLogEntity; +import com.glxp.mipsdl.admin.entity.inout.OrderEntity; +import com.glxp.mipsdl.admin.entity.inventory.InvWarehouseEntity; import com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysDetailEntity; +import com.glxp.mipsdl.admin.entity.thrsys.ThrInvWarehouseEntity; import com.glxp.mipsdl.admin.req.UdiwmsOnhandRequest; +import com.glxp.mipsdl.admin.req.UdiwmsOrderDetail; import com.glxp.mipsdl.admin.req.UdiwmsOrderRequest; +import com.glxp.mipsdl.admin.req.basic.BussinessLocalTypeFilterRequest; import com.glxp.mipsdl.admin.req.phxyy.*; +import com.glxp.mipsdl.admin.req.thrsys.FilterThrInvWarehouseRequest; import com.glxp.mipsdl.admin.res.phxyy.BussinessOriginTypeResponse; import com.glxp.mipsdl.admin.service.phxyy.BasicThirdSysBusApiService; import com.glxp.mipsdl.admin.service.phxyy.BussinessOriginTypeService; +import com.glxp.mipsdl.admin.util.DateUtil; import com.glxp.mipsdl.admin.util.HttpClient; +import com.glxp.mipsdl.admin.util.ThirdUtils; import com.glxp.mipsdl.common.res.BaseResponse; import com.glxp.mipsdl.common.util.ResultVOUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpHeaders; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** * 平和县医院对接 */ + +@Slf4j @Service public class PhxyyClient { @@ -34,6 +63,37 @@ public class PhxyyClient { @Resource private HttpClient httpClient; + @Resource + private StockOrderDao stockOrderDao; + @Resource + private StockOrderDetailDao stockOrderDetailDao; + @Resource + private BussinessLocalTypeDao bussinessLocalTypeDao; + @Resource + private BasicThirdSysBusApiDao thirdSysBusApiDao; + @Resource + private InvWarehouseDao invWarehouseDao; + @Resource + private ThrInvWarehouseDao thrInvWarehouseDao; + @Resource + private UnitMaintainDao unitMaintainDao; + @Resource + private BussinessTypeDao bussinessTypeDao; + @Resource + private BasicThirdSysDetailDao basicThirdSysDetailDao; + @Resource + private UdiRelevanceDao udiRelevanceDao; + @Resource + private OrderDao orderDao; + @Resource + private StockOrderUploadLogDao stockOrderUploadLogDao; + + @Resource + private BasicThirdSysBusApiService basicThirdSysBusApiService; + @Resource + private BussinessOriginTypeService bussinessOriginTypeService; + + public HttpHeaders getHeaders() { HttpHeaders headers = new HttpHeaders(); headers.add("Content-Type", "application/json"); @@ -60,13 +120,6 @@ public class PhxyyClient { return strArray; } - @Resource - private BasicThirdSysBusApiService basicThirdSysBusApiService; - @Resource - private BussinessOriginTypeService bussinessOriginTypeService; - @Resource - private BasicThirdSysDetailDao basicThirdSysDetailDao; - public BaseResponse testConnect() { PhUnitRequest phUnitRequest = new PhUnitRequest(); @@ -126,20 +179,150 @@ public class PhxyyClient { } public BaseResponse submitOrders(PhOrderRequest udiwmsOrderRequest) { - if (StrUtil.isEmpty(udiwmsOrderRequest.getBillType())) { - return ResultVOUtils.error(500, "单据类型不能未空"); + + if (StrUtil.isEmpty(udiwmsOrderRequest.getId())) { + return ResultVOUtils.error(500, "单据ID不能为空!"); } - BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("orderSubmitUrl", thirdSysConfig.getThirdSysConfig().getThirdId()); - String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), udiwmsOrderRequest, getHeaderArray()); + //查询单据和详情信息,组装第三方系统接口参数所需数据 + StockOrderEntity stockOrderEntity = stockOrderDao.findById(udiwmsOrderRequest.getId()); + OrderEntity orderEntity = orderDao.findById(stockOrderEntity.getOrderIdFk()); + List stockOrderDetailEntities = stockOrderDetailDao.findByOrderIdFk(stockOrderEntity.getId()); + udiwmsOrderRequest.setBillDate(stockOrderEntity.getBilldate()); + udiwmsOrderRequest.setBillNo(stockOrderEntity.getBillNo()); + BussinessLocalTypeFilterRequest bussinessLocalTypeFilterRequest = new BussinessLocalTypeFilterRequest(); + bussinessLocalTypeFilterRequest.setAction(stockOrderEntity.getBillType()); + List bussinessLocalTypeEntities = bussinessLocalTypeDao.filterJoin(bussinessLocalTypeFilterRequest); + BussinessLocalTypeEntity bussinessLocalTypeEntity = bussinessLocalTypeEntities.get(0); + //查询第三方系统的单据ID,及第三方系统标识 + BasicThirdSysBusApiEntity thirdSysBusApiEntity = thirdSysBusApiDao.selectByCode(stockOrderEntity.getBillType()); + if (StrUtil.isBlank(thirdSysBusApiEntity.getUrl())) { + return ResultVOUtils.error(500, "接口未配置,无法提交!"); + } + String thirdId = getThirdId(thirdSysBusApiEntity); + udiwmsOrderRequest.setBillType(thirdSysBusApiEntity.getThirdBuyCode()); + if (bussinessLocalTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT) { + udiwmsOrderRequest.setCorpId(stockOrderEntity.getCorpName()); //往来单位编码,需转换为第三方系统的ID + udiwmsOrderRequest.setCorpName(stockOrderEntity.getCorpName()); //往来单位名称,需转换为第三方系统的名称 + } else if (bussinessLocalTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INNOR) { + List invWarehouseEntities = invWarehouseDao.selectByCode(stockOrderEntity.getCorpId()); + InvWarehouseEntity invWarehouseEntity = invWarehouseEntities.get(0); + try { + //根据第三方系统标识,获取对应字段的值 + FilterThrInvWarehouseRequest filterThrInvWarehouseRequest = new FilterThrInvWarehouseRequest(); + filterThrInvWarehouseRequest.setCode(invWarehouseEntity.getThirdId()); + filterThrInvWarehouseRequest.setThirdSysFk(thirdId); + List thrInvWarehouseEntities = thrInvWarehouseDao.filterThrInvWarehouse(filterThrInvWarehouseRequest); + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseEntities.get(0); + udiwmsOrderRequest.setCorpId(thrInvWarehouseEntity.getCode()); //往来单位编码,需转换为第三方系统的ID + udiwmsOrderRequest.setCorpName(thrInvWarehouseEntity.getName()); //往来单位名称,需转换为第三方系统的名称 + } catch (Exception e) { + log.error("查询单据对应的第三方往来单位信息异常", e); + } + } else if (bussinessLocalTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { + //查询往来单位第三方系统对照编码 + UnitMaintainEntity unitMaintainEntity = unitMaintainDao.selectThirdInfoByErpId(stockOrderEntity.getCorpId()); + try { + String thirdCorpId = (String) ReflectUtil.getFieldValue(unitMaintainEntity, unitMaintainEntity.getClass().getField(thirdId)); + udiwmsOrderRequest.setCorpId(thirdCorpId); //往来单位编码,需转换为第三方系统的ID + String thirdName = ThirdUtils.getThirdName(thirdId); + String thirdCorpName = (String) ReflectUtil.getFieldValue(unitMaintainEntity, unitMaintainEntity.getClass().getField(thirdName)); + udiwmsOrderRequest.setCorpName(thirdCorpName); //往来单位名称,需转换为第三方系统的名称 + } catch (Exception e) { + log.error(e.getMessage(), e); + } + } - BaseResponse baseResponse = - JSONObject.parseObject(response, new TypeReference() { - }); - return baseResponse; + InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectOneByCode(orderEntity.getFromSubInvCode()); + try { + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectByCode(invWarehouseEntity.getThirdId(), thirdId); + udiwmsOrderRequest.setLocStorageCode(thrInvWarehouseEntity.getCode()); + udiwmsOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName()); + } catch (Exception e) { + log.error("查询第三方系统仓库异常", e); + } + udiwmsOrderRequest.setBillFlag(stockOrderEntity.getBillFlag()); //单据状态 + //查询单据出入库类型 + String mainAction = bussinessTypeDao.selectInoutTypebByLocalAction(stockOrderEntity.getBillType()); + if (ConstantType.TYPE_PUT.equals(mainAction)) { + udiwmsOrderRequest.setInoutType(1); //出入库类型:入库 + } else if (ConstantType.TYPE_OUT.equals(mainAction)) { + udiwmsOrderRequest.setInoutType(2); //出入库类型:出库 + } + udiwmsOrderRequest.setRemark("udi管理系统提交单据"); //备注 + + //组装明细数据 + List items = new ArrayList<>(stockOrderDetailEntities.size()); + for (StockOrderDetailEntity stockOrderDetailEntity : stockOrderDetailEntities) { + UdiRelevanceEntity udiRelevanceEntity = udiRelevanceDao.selectById(stockOrderDetailEntity.getRelId()); + UdiwmsOrderDetail item = new UdiwmsOrderDetail(); + BeanUtil.copyProperties(stockOrderDetailEntity, item); + if (StrUtil.isNotEmpty(stockOrderDetailEntity.getProductDate())) { + item.setProductDate(DateUtil.formatExpireTime("20" + stockOrderDetailEntity.getProductDate())); + } + if (StrUtil.isNotEmpty(stockOrderDetailEntity.getExpireDate())) { + item.setExpireDate(DateUtil.formatExpireTime("20" + stockOrderDetailEntity.getExpireDate())); + } + item.setMeasname(udiRelevanceEntity.getMeasname()); + item.setStandard(stockOrderDetailEntity.getSpec()); + item.setRegisterNo(stockOrderDetailEntity.getZczbhhzbapzbh()); + try { + String thirdProductId = (String) ReflectUtil.getFieldValue(udiRelevanceEntity, thirdId); + item.setProductId(thirdProductId); + String thirdName = ThirdUtils.getThirdName(thirdId); + String thirdProductName = (String) ReflectUtil.getFieldValue(udiRelevanceEntity, thirdName); + item.setProductName(thirdProductName); + items.add(item); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + } + udiwmsOrderRequest.setItem(items); + BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("orderSubmitUrl", thirdSysConfig.getThirdSysConfig().getThirdId()); + + //记录日志 + StockOrderUploadLogEntity uploadLog = new StockOrderUploadLogEntity(); + uploadLog.setBillDate(DateUtil.parseDate(udiwmsOrderRequest.getBillDate())); + uploadLog.setBillType(stockOrderEntity.getBillType()); + uploadLog.setSubmitTime(new Date()); + uploadLog.setBillNo(udiwmsOrderRequest.getBillNo()); + uploadLog.setFromType(ConstantStatus.THIRD_ORDER_UPLOAD); + String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), udiwmsOrderRequest, getHeaderArray()); + if (StrUtil.isNotBlank(response)) { + try { + BaseResponse baseResponse = + JSONObject.parseObject(response, new TypeReference() { + }); + if (baseResponse.getCode().equals(20000)) { + String thirdBillNo = String.valueOf(baseResponse.getData()); + orderEntity.setExportStatus(1); + orderEntity.setThirdBillNo(thirdBillNo); + uploadLog.setStatus(2); + uploadLog.setThrBillNo(null); + uploadLog.setResult("提交成功"); + stockOrderUploadLogDao.insert(uploadLog); + return ResultVOUtils.success("提交成功"); + } + uploadLog.setStatus(3); + uploadLog.setResult("提交失败,错误信息:" + baseResponse.getMessage()); + stockOrderUploadLogDao.insert(uploadLog); + return baseResponse; + } catch (Exception e) { + log.error(e.getMessage(), e); + uploadLog.setStatus(3); + uploadLog.setResult("提交失败,错误信息:" + e.getMessage()); + stockOrderUploadLogDao.insert(uploadLog); + return ResultVOUtils.error(500, "提交失败"); + } + } else { + uploadLog.setStatus(3); + uploadLog.setResult("提交失败,调用接口返回为空"); + stockOrderUploadLogDao.insert(uploadLog); + return ResultVOUtils.error(500, "提交失败"); + } } public BaseResponse getInvProducts(UdiwmsOnhandRequest udiwmsOnhandRequest) { @@ -159,4 +342,32 @@ public class PhxyyClient { }); return baseResponse; } + + /** + * @param thirdSysBusApiEntity + * @return + */ + private String getThirdId(BasicThirdSysBusApiEntity thirdSysBusApiEntity) { + String thirdId = null; + switch (thirdSysBusApiEntity.getThirdSys()) { + case "thirdId": + thirdId = "thirdId"; + break; + case "third1": + thirdId = "thirdId1"; + break; + case "third2": + thirdId = "thirdId2"; + break; + case "third3": + thirdId = "thirdId3"; + break; + case "third4": + thirdId = "thirdId4"; + break; + default: + break; + } + return thirdId; + } } diff --git a/api-sync/src/main/java/com/glxp/mipsdl/admin/client/http/ZaxyyClient.java b/api-sync/src/main/java/com/glxp/mipsdl/admin/client/http/ZaxyyClient.java index 5613187..42fe2cd 100644 --- a/api-sync/src/main/java/com/glxp/mipsdl/admin/client/http/ZaxyyClient.java +++ b/api-sync/src/main/java/com/glxp/mipsdl/admin/client/http/ZaxyyClient.java @@ -21,10 +21,7 @@ import com.glxp.mipsdl.admin.dao.inventory.InvWarehouseDao; import com.glxp.mipsdl.admin.dao.phxyy.BasicThirdSysDetailDao; import com.glxp.mipsdl.admin.dao.thrsys.ThrInvWarehouseDao; import com.glxp.mipsdl.admin.entity.auth.AuthAdmin; -import com.glxp.mipsdl.admin.entity.basic.BasicThirdSysBusApiEntity; -import com.glxp.mipsdl.admin.entity.basic.BussinessLocalTypeEntity; -import com.glxp.mipsdl.admin.entity.basic.UdiRelevanceEntity; -import com.glxp.mipsdl.admin.entity.basic.UnitMaintainEntity; +import com.glxp.mipsdl.admin.entity.basic.*; import com.glxp.mipsdl.admin.entity.business.StockOrderDetailEntity; import com.glxp.mipsdl.admin.entity.business.StockOrderEntity; import com.glxp.mipsdl.admin.entity.business.StockOrderUploadLogEntity; @@ -45,6 +42,7 @@ import com.glxp.mipsdl.admin.res.system.PageSimpleResponse; import com.glxp.mipsdl.admin.res.system.UdiwmsWarehouseDetail; import com.glxp.mipsdl.admin.util.DateUtil; import com.glxp.mipsdl.admin.util.HttpClient; +import com.glxp.mipsdl.admin.util.ThirdUtils; import com.glxp.mipsdl.common.res.BaseResponse; import com.glxp.mipsdl.common.util.ResultVOUtils; import lombok.extern.slf4j.Slf4j; @@ -115,20 +113,27 @@ public class ZaxyyClient { public BaseResponse testConnect() { - String msgHead = "" + - "" + - "getMasterialInput" + - ""; - - - String msgBody = "{\"billNo\":\"ZY202205070001\",\"billdate\":\"2022-05-07\",\"corpId\":\"65119908299161\",\"corpName\":\"福建片仔癀诊断技术有限公司\",\"billType\":\"采购入库\",\"billFlag\":\"1\",\"thirdSys\":\"thirdId\",\"locInvCode\":\"11001\",\"locInvName\":\"总仓库\",\"inoutType\":\"1\",\"remark\":\"\",\"item\":[{\"billNo\":\"ZY202205070001\",\"productId\":\"7864\",\"productName\":\"通用脊柱内固定器-6.0 连接棒\",\"standard\":\"70-450mm/理贝尔\",\"expireDate\":\"2025-01-03\",\"productDate\":\"2021-03-01\",\"batchNo\":\"202003\",\"count\":10,\"measname\":\"计量单位\",\"registerNo\":\"国食药监械(准)字 2006 第 3460057 号\",\"price\":10.0,\"secSalesInvNo\":\"21232424\",\"invoiceDate\":\"2323243\",\"secSalesListNo\":\"42342\",\"firstSalesInvNo\":\"423424\",\"remark\":\"\",\"remakr1\":\"\",\"remakr2\":\"\",\"codeList\":[{\"code\":\"01069125473843801121041410210290075\",\"nameCode\":\"06912547384380\",\"count\":1}]},{\"productId\":\"7901\",\"productName\":\"亲水性丙烯酸折叠式人工晶状体 Hydrophilic AcrylicFoldableIntraocular Lens\",\"standard\":\"S1AW00\",\"batchNo\":\"202103\",\"expireDate\":\"2025-01-03\",\"productDate\":\"2021-03-01\",\"count\":10,\"measname\":\"计量单位\",\"registerNo\":\"国械注进 20153162635\",\"price\":10.0,\"secSalesInvNo\":\"21232424\",\"invoiceDate\":\"2323243\",\"secSalesListNo\":\"42342\",\"firstSalesInvNo\":\"423424\",\"remark\":\"\",\"remakr1\":\"\",\"remakr2\":\"\",\"codeList\":[{\"code\":\"01069125473843801121041410210290075\",\"nameCode\":\"06912547384380\",\"count\":1}]}]}"; - + PhUnitRequest unitRequest = new PhUnitRequest(); + unitRequest.setPage(1); + unitRequest.setLimit(1); + BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("corpUrl", thirdSysConfig.getThirdSysConfig().getThirdId()); ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest(); - zaZyHeareRequest.setMsgHeader(msgHead); - zaZyHeareRequest.setMsgBody(msgBody); - String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl(), zaZyHeareRequest, getHeaderArray()); - log.info(response); - return ResultVOUtils.error(500, "连接成功!"); + zaZyHeareRequest.setMsgHeader(getMsgHeader("getMaterialUnit")); + zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(unitRequest)); + String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), zaZyHeareRequest, getHeaderArray()); + response = parseErrorMsg(response); + try { + BaseResponse baseResponse = + JSONObject.parseObject(response, new TypeReference() { + }); + if (baseResponse.getCode() == 20000) { + return ResultVOUtils.success("连接成功!"); + } + return baseResponse; + } catch (Exception e) { + e.printStackTrace(); + } + return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果" + "(" + response + ")"); } @@ -239,8 +244,12 @@ public class ZaxyyClient { } //查询单据和详情信息,组装第三方系统接口参数所需数据 StockOrderEntity stockOrderEntity = stockOrderDao.findById(udiwmsOrderRequest.getId()); + + OrderEntity orderEntity = orderDao.findById(stockOrderEntity.getOrderIdFk()); List stockOrderDetailEntities = stockOrderDetailDao.findByOrderIdFk(stockOrderEntity.getId()); + BussinessTypeEntity bussinessTypeEntity = bussinessTypeDao.selectByAction(orderEntity.getAction()); + udiwmsOrderRequest.setBillDate(stockOrderEntity.getBilldate()); udiwmsOrderRequest.setBillNo(stockOrderEntity.getBillNo()); @@ -254,8 +263,14 @@ public class ZaxyyClient { if (StrUtil.isBlank(thirdSysBusApiEntity.getUrl())) { return ResultVOUtils.error(500, "接口未配置,无法提交!"); } - String thirdId = getThirdId(thirdSysBusApiEntity); - udiwmsOrderRequest.setThirdSys(thirdId); //第三方系统标识 + String thirdId = ThirdUtils.getThirdId(thirdSysBusApiEntity); + Integer userId = 0; + if (orderEntity.getReviewUser() != null) { + userId = orderEntity.getReviewUser(); + } else userId = orderEntity.getCreateUser(); + + AuthAdmin authAdmin = authAdminDao.findById(userId.longValue()); + udiwmsOrderRequest.setThirdSys(authAdmin.getEmployeeName()); //第三方系统标识 udiwmsOrderRequest.setBillType(thirdSysBusApiEntity.getThirdBuyCode()); if (bussinessLocalTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT) { @@ -283,7 +298,7 @@ public class ZaxyyClient { String thirdCorpId = (String) ReflectUtil.getFieldValue(unitMaintainEntity, unitMaintainEntity.getClass().getField(thirdId)); udiwmsOrderRequest.setCorpId(thirdCorpId); //往来单位编码,需转换为第三方系统的ID - String thirdName = getThirdName(thirdId); + String thirdName = ThirdUtils.getThirdName(thirdId); String thirdCorpName = (String) ReflectUtil.getFieldValue(unitMaintainEntity, unitMaintainEntity.getClass().getField(thirdName)); udiwmsOrderRequest.setCorpName(thirdCorpName); //往来单位名称,需转换为第三方系统的名称 } catch (Exception e) { @@ -291,7 +306,7 @@ public class ZaxyyClient { } } - InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectOneByCode(stockOrderEntity.getLocStorageCode()); + InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectOneByCode(orderEntity.getFromSubInvCode()); try { ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectByCode(invWarehouseEntity.getThirdId(), thirdId); udiwmsOrderRequest.setLocStorageCode(thrInvWarehouseEntity.getCode()); @@ -299,9 +314,7 @@ public class ZaxyyClient { } catch (Exception e) { log.error("查询第三方系统仓库异常", e); } - udiwmsOrderRequest.setBillFlag(stockOrderEntity.getBillFlag()); //单据状态 - //查询单据出入库类型 String mainAction = bussinessTypeDao.selectInoutTypebByLocalAction(stockOrderEntity.getBillType()); if (ConstantType.TYPE_PUT.equals(mainAction)) { @@ -309,7 +322,6 @@ public class ZaxyyClient { } else if (ConstantType.TYPE_OUT.equals(mainAction)) { udiwmsOrderRequest.setInoutType(2); //出入库类型:出库 } - udiwmsOrderRequest.setRemark("udi管理系统提交单据"); //备注 //组装明细数据 @@ -325,7 +337,6 @@ public class ZaxyyClient { if (StrUtil.isNotEmpty(stockOrderDetailEntity.getExpireDate())) { item.setExpireDate(DateUtil.formatExpireTime("20" + stockOrderDetailEntity.getExpireDate())); } - item.setMeasname(udiRelevanceEntity.getMeasname()); item.setStandard(stockOrderDetailEntity.getSpec()); item.setRegisterNo(stockOrderDetailEntity.getZczbhhzbapzbh()); @@ -343,7 +354,7 @@ public class ZaxyyClient { String thirdProductId = (String) ReflectUtil.getFieldValue(udiRelevanceEntity, thirdId); item.setProductId(thirdProductId); - String thirdName = getThirdName(thirdId); + String thirdName = ThirdUtils.getThirdName(thirdId); String thirdProductName = (String) ReflectUtil.getFieldValue(udiRelevanceEntity, thirdName); item.setProductName(thirdProductName); items.add(item); @@ -355,11 +366,11 @@ public class ZaxyyClient { udiwmsOrderRequest.setItem(items); //查询扫码单据 - OrderEntity orderEntity = orderDao.findById(stockOrderEntity.getOrderIdFk()); ZaZyHeareRequest zaZyHeareRequest = new ZaZyHeareRequest(); String key = null; + //提交订单到第三方系统 if (thirdSysBusApiEntity.getUrl().equals("saveMasterialInput")) { //采购入库单据 @@ -367,9 +378,9 @@ public class ZaxyyClient { key = "orderSubmitUrl"; zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsOrderRequest)); } else if (thirdSysBusApiEntity.getUrl().equals("saveMaterialHight")) { + udiwmsOrderRequest.setLocStorageCode("1001304"); + udiwmsOrderRequest.setLocStorageName("骨科耗材及试剂仓库"); //临床出库 - udiwmsOrderRequest.setLocInvCode(udiwmsOrderRequest.getLocStorageCode()); - udiwmsOrderRequest.setLocInvName(udiwmsOrderRequest.getLocStorageName()); zaZyHeareRequest.setMsgHeader(getMsgHeader("saveMaterialHight")); key = "preInOrderSubmit"; @@ -377,9 +388,6 @@ public class ZaxyyClient { zaZyHeareRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsPreInOrderRequest)); } - - BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByOrderType(key, thirdSysConfig.getThirdSysConfig().getThirdId(), udiwmsOrderRequest.getBillType()); - //记录日志 StockOrderUploadLogEntity uploadLog = new StockOrderUploadLogEntity(); uploadLog.setBillDate(DateUtil.parseDate(udiwmsOrderRequest.getBillDate())); @@ -399,9 +407,10 @@ public class ZaxyyClient { orderEntity.setExportStatus(1); orderEntity.setThirdBillNo(thirdBillNo); uploadLog.setStatus(2); - uploadLog.setThrBillNo(null); + uploadLog.setThrBillNo(thirdBillNo); uploadLog.setResult("提交成功"); stockOrderUploadLogDao.insert(uploadLog); + orderDao.updateOrder(orderEntity); return ResultVOUtils.success("提交成功"); } uploadLog.setStatus(3); @@ -411,7 +420,7 @@ public class ZaxyyClient { } catch (Exception e) { log.error(e.getMessage(), e); uploadLog.setStatus(3); - uploadLog.setResult("提交失败,错误信息:" + e.getMessage()); + uploadLog.setResult("提交失败,错误信息:" + response); stockOrderUploadLogDao.insert(uploadLog); return ResultVOUtils.error(500, "提交失败"); } @@ -475,17 +484,18 @@ public class ZaxyyClient { BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("warehouseQueryUrl", thirdSysConfig.getThirdSysConfig().getThirdId()); String response = httpClient.postJson(thirdSysConfig.getThirdSysConfig().getThirdSysUrl() + basicThirdSysDetailEntity.getValue(), zaZyHeareRequest, getHeaderArray()); +// String response = FileUtils.readFileAll("E:\\第三方测试数据\\仓库第三发.json"); response = parseErrorMsg(response); try { BaseResponse> baseResponse = - JSONObject.parseObject(response, new TypeReference() { + JSONObject.parseObject(response, new TypeReference>>() { }); if (baseResponse.getCode() == 20000) { List udiwmsWarehouseDetails = baseResponse.getData().getList(); UdiwmsWarehouseDetail resultData = new UdiwmsWarehouseDetail(); if (CollUtil.isNotEmpty(udiwmsWarehouseDetails)) { resultData.setCode("7071568"); - resultData.setCode("总仓库"); + resultData.setName("总仓库"); List subWarehouseList = new ArrayList<>(); for (UdiwmsWarehouseDetail udiwmsWarehouseDetail : udiwmsWarehouseDetails) { UdiwmsWarehouseDetail.SubWarehouse subWarehouse = new UdiwmsWarehouseDetail.SubWarehouse(); @@ -572,62 +582,5 @@ public class ZaxyyClient { return response; } - /** - * 获取第三方名称字段 - * - * @param thirdId - * @return - */ - private String getThirdName(String thirdId) { - String thirdName = null; - switch (thirdId) { - case "thirdId": - thirdName = "thirdName"; - break; - case "thirdId1": - thirdName = "thirdName1"; - break; - case "thirdId2": - thirdName = "thirdName2"; - break; - case "thirdId3": - thirdName = "thirdName3"; - break; - case "thirdId4": - thirdName = "thirdName4"; - break; - default: - break; - } - return thirdName; - } - - /** - * @param thirdSysBusApiEntity - * @return - */ - private String getThirdId(BasicThirdSysBusApiEntity thirdSysBusApiEntity) { - String thirdId = null; - switch (thirdSysBusApiEntity.getThirdSys()) { - case "thirdId": - thirdId = "thirdId"; - break; - case "third1": - thirdId = "thirdId1"; - break; - case "third2": - thirdId = "thirdId2"; - break; - case "third3": - thirdId = "thirdId3"; - break; - case "third4": - thirdId = "thirdId4"; - break; - default: - break; - } - return thirdId; - } } diff --git a/api-sync/src/main/java/com/glxp/mipsdl/admin/dao/basic/BasicThirdSysBusApiDao.java b/api-sync/src/main/java/com/glxp/mipsdl/admin/dao/basic/BasicThirdSysBusApiDao.java index ecd48ef..5366b3d 100644 --- a/api-sync/src/main/java/com/glxp/mipsdl/admin/dao/basic/BasicThirdSysBusApiDao.java +++ b/api-sync/src/main/java/com/glxp/mipsdl/admin/dao/basic/BasicThirdSysBusApiDao.java @@ -13,10 +13,10 @@ public interface BasicThirdSysBusApiDao { BasicThirdSysBusApiEntity selectByCode(@Param("code") String code); - boolean insertSysBusApi(com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity basicThirdSysEntity); + boolean insertSysBusApi(BasicThirdSysBusApiEntity basicThirdSysEntity); - boolean updateSysBusApi(com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity basicThirdSysEntity); + boolean updateSysBusApi(BasicThirdSysBusApiEntity basicThirdSysEntity); - List filterSysBusApi(FilterBusTypeRequest filterBasicThirdSysDetailRequest); + List filterSysBusApi(FilterBusTypeRequest filterBasicThirdSysDetailRequest); } diff --git a/api-sync/src/main/java/com/glxp/mipsdl/admin/dao/basic/BussinessTypeDao.java b/api-sync/src/main/java/com/glxp/mipsdl/admin/dao/basic/BussinessTypeDao.java index 966b527..d2b903d 100644 --- a/api-sync/src/main/java/com/glxp/mipsdl/admin/dao/basic/BussinessTypeDao.java +++ b/api-sync/src/main/java/com/glxp/mipsdl/admin/dao/basic/BussinessTypeDao.java @@ -1,5 +1,6 @@ package com.glxp.mipsdl.admin.dao.basic; +import com.glxp.mipsdl.admin.entity.basic.BussinessTypeEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -13,4 +14,6 @@ public interface BussinessTypeDao { * @return */ String selectInoutTypebByLocalAction(@Param("localAction") String localAction); + + BussinessTypeEntity selectByAction(String action); } diff --git a/api-sync/src/main/java/com/glxp/mipsdl/admin/dao/inout/OrderDao.java b/api-sync/src/main/java/com/glxp/mipsdl/admin/dao/inout/OrderDao.java index ca24883..fa99897 100644 --- a/api-sync/src/main/java/com/glxp/mipsdl/admin/dao/inout/OrderDao.java +++ b/api-sync/src/main/java/com/glxp/mipsdl/admin/dao/inout/OrderDao.java @@ -8,4 +8,5 @@ public interface OrderDao { OrderEntity findById(String orderId); + boolean updateOrder(OrderEntity orderEntity); } diff --git a/api-sync/src/main/java/com/glxp/mipsdl/admin/entity/basic/BussinessTypeEntity.java b/api-sync/src/main/java/com/glxp/mipsdl/admin/entity/basic/BussinessTypeEntity.java new file mode 100644 index 0000000..766f4f5 --- /dev/null +++ b/api-sync/src/main/java/com/glxp/mipsdl/admin/entity/basic/BussinessTypeEntity.java @@ -0,0 +1,73 @@ +package com.glxp.mipsdl.admin.entity.basic; + +import lombok.Data; + +import java.util.Date; + +@Data +public class BussinessTypeEntity { + private Integer id; + private String action; + private String name; + private Boolean enable; + private String remark; + private String mainAction; + private String thirdSysFk; + private String localAction; + private String localName; + private boolean checkEnable; + private boolean advanceType; + private boolean genUnit; + private boolean innerOrder; + private boolean secCheckEnable; + private Boolean spUse; + private String defaultUnit; + private Integer index; + private boolean checkUdims; + private boolean checkPdaEd; + private boolean checkPdaUn; + private boolean checkPc; + private boolean checkWebNew; + private boolean checkChange; + private boolean checkSp; + + private boolean secCheckUdims; + private boolean secCheckPdaEd; + private boolean secCheckPdaUn; + private boolean secCheckPc; + private boolean secCheckWebNew; + private boolean secCheckChange; + private boolean secCheckSp; + private boolean checkBalacne; + private boolean secCheckBalacne; + + private int corpType; + private String storageCode; + + //补单类型 + private String supplementOrderType; + private String thirdAction; + private String thirdSys; + private boolean useDyCount; + private boolean changeEnable; + + private boolean expireTip; + private Date updateTime; + private String prefix; + private String localPrefix; + private boolean preIn; + private boolean outTospms; + private boolean ullageFill; + private boolean scanPreIn; + private boolean vailInv; + + private boolean entrutSpms; + + private boolean codeFillCheck; + private String defaultSubInv; + private String defaultInv; + + private int orderVisibleType; //订单详情展示方式:0:根据批次号展示,1:根据条码展示 + + private boolean supplementAll; +} diff --git a/api-sync/src/main/java/com/glxp/mipsdl/admin/entity/phxyy/BasicThirdSysBusApiEntity.java b/api-sync/src/main/java/com/glxp/mipsdl/admin/entity/phxyy/BasicThirdSysBusApiEntity.java deleted file mode 100644 index b2cdaaa..0000000 --- a/api-sync/src/main/java/com/glxp/mipsdl/admin/entity/phxyy/BasicThirdSysBusApiEntity.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.glxp.mipsdl.admin.entity.phxyy; - -import lombok.Data; - -@Data -public class BasicThirdSysBusApiEntity { - - private Integer id; - private String code; - private String name; - private String thirdSys; - private String url; - private Integer type; - private String remark; - - -} diff --git a/api-sync/src/main/java/com/glxp/mipsdl/admin/req/phxyy/PhOrderRequest.java b/api-sync/src/main/java/com/glxp/mipsdl/admin/req/phxyy/PhOrderRequest.java index 15b1b32..a5907aa 100644 --- a/api-sync/src/main/java/com/glxp/mipsdl/admin/req/phxyy/PhOrderRequest.java +++ b/api-sync/src/main/java/com/glxp/mipsdl/admin/req/phxyy/PhOrderRequest.java @@ -8,7 +8,7 @@ import java.util.List; @Data public class PhOrderRequest { - + private String id; private String billNo; //单据号 private String billFlag; //单据状态,0.未签字,1.已签字 private Integer inoutType; //出入库类型 1.入库 2.出库 diff --git a/api-sync/src/main/java/com/glxp/mipsdl/admin/service/phxyy/BasicThirdSysBusApiService.java b/api-sync/src/main/java/com/glxp/mipsdl/admin/service/phxyy/BasicThirdSysBusApiService.java index 2bf17a6..7aadac2 100644 --- a/api-sync/src/main/java/com/glxp/mipsdl/admin/service/phxyy/BasicThirdSysBusApiService.java +++ b/api-sync/src/main/java/com/glxp/mipsdl/admin/service/phxyy/BasicThirdSysBusApiService.java @@ -1,7 +1,7 @@ package com.glxp.mipsdl.admin.service.phxyy; -import com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity; +import com.glxp.mipsdl.admin.entity.basic.BasicThirdSysBusApiEntity; import com.glxp.mipsdl.admin.req.phxyy.FilterBusTypeRequest; import java.util.List; diff --git a/api-sync/src/main/java/com/glxp/mipsdl/admin/service/phxyy/impl/BasicThirdSysBusApiServiceImpl.java b/api-sync/src/main/java/com/glxp/mipsdl/admin/service/phxyy/impl/BasicThirdSysBusApiServiceImpl.java index f706f38..2340de0 100644 --- a/api-sync/src/main/java/com/glxp/mipsdl/admin/service/phxyy/impl/BasicThirdSysBusApiServiceImpl.java +++ b/api-sync/src/main/java/com/glxp/mipsdl/admin/service/phxyy/impl/BasicThirdSysBusApiServiceImpl.java @@ -2,7 +2,7 @@ package com.glxp.mipsdl.admin.service.phxyy.impl; import cn.hutool.core.collection.CollUtil; import com.glxp.mipsdl.admin.dao.basic.BasicThirdSysBusApiDao; -import com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity; +import com.glxp.mipsdl.admin.entity.basic.BasicThirdSysBusApiEntity; import com.glxp.mipsdl.admin.req.phxyy.FilterBusTypeRequest; import com.glxp.mipsdl.admin.service.phxyy.BasicThirdSysBusApiService; import org.springframework.stereotype.Service; diff --git a/api-sync/src/main/java/com/glxp/mipsdl/admin/util/ThirdUtils.java b/api-sync/src/main/java/com/glxp/mipsdl/admin/util/ThirdUtils.java new file mode 100644 index 0000000..e184ba1 --- /dev/null +++ b/api-sync/src/main/java/com/glxp/mipsdl/admin/util/ThirdUtils.java @@ -0,0 +1,63 @@ +package com.glxp.mipsdl.admin.util; + +import com.glxp.mipsdl.admin.entity.basic.BasicThirdSysBusApiEntity; + +public class ThirdUtils { + /** + * 获取第三方名称字段 + * + * @param thirdId + * @return + */ + public static String getThirdName(String thirdId) { + String thirdName = null; + switch (thirdId) { + case "thirdId": + thirdName = "thirdName"; + break; + case "thirdId1": + thirdName = "thirdName1"; + break; + case "thirdId2": + thirdName = "thirdName2"; + break; + case "thirdId3": + thirdName = "thirdName3"; + break; + case "thirdId4": + thirdName = "thirdName4"; + break; + default: + break; + } + return thirdName; + } + + /** + * @param thirdSysBusApiEntity + * @return + */ + public static String getThirdId(BasicThirdSysBusApiEntity thirdSysBusApiEntity) { + String thirdId = null; + switch (thirdSysBusApiEntity.getThirdSys()) { + case "thirdId": + thirdId = "thirdId"; + break; + case "third1": + thirdId = "thirdId1"; + break; + case "third2": + thirdId = "thirdId2"; + break; + case "third3": + thirdId = "thirdId3"; + break; + case "third4": + thirdId = "thirdId4"; + break; + default: + break; + } + return thirdId; + } +} diff --git a/api-sync/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml b/api-sync/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml index 1a626f4..8023dc8 100644 --- a/api-sync/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml +++ b/api-sync/src/main/resources/mybatis/mapper/basic/BussinessTypeDao.xml @@ -9,4 +9,10 @@ where localAction = #{localAction} + + diff --git a/api-sync/src/main/resources/mybatis/mapper/inout/OrderDao.xml b/api-sync/src/main/resources/mybatis/mapper/inout/OrderDao.xml index 7bbbb7d..2190f5c 100644 --- a/api-sync/src/main/resources/mybatis/mapper/inout/OrderDao.xml +++ b/api-sync/src/main/resources/mybatis/mapper/inout/OrderDao.xml @@ -9,4 +9,49 @@ from io_order where id = #{orderId} + + + + + UPDATE io_order + + `action`=#{action}, + corpOrderId=#{corpOrderId}, + actDate=#{actDate}, + fromCorpId=#{fromCorpId}, + actor=#{actor}, + mainAction=#{mainAction}, + fromCorp=#{fromCorp}, + status=#{status}, + remark=#{remark}, + exportStatus=#{exportStatus}, + fromType=#{fromType}, + contrastStatus=#{contrastStatus}, + erpFk=#{erpFk}, + signStatus=#{signStatus}, + receiveStatus=#{receiveStatus}, + stockCheckFk=#{stockCheckFk}, + supId=#{supId}, + exportFilePath=#{exportFilePath}, + invStorageCode=#{invStorageCode}, + invWarehouseCode=#{invWarehouseCode}, + locStorageCode=#{locStorageCode}, + supplementNo=#{supplementNo}, + ullageSupNo=#{ullageSupNo}, + createUser=#{createUser}, + reviewUser=#{reviewUser}, + updateTime=#{updateTime}, + outChangeEnable=#{outChangeEnable}, + originUllageSupNo=#{originUllageSupNo}, + preCheck=#{preCheck}, + thirdBillNo=#{thirdBillNo}, + auditTime=#{auditTime}, + replicateNo=#{replicateNo}, + fromSubInvCode=#{fromSubInvCode}, + createTime=#{createTime}, + originFromType=#{originFromType}, + + + WHERE id = #{id} + \ No newline at end of file diff --git a/api-sync/src/main/resources/mybatis/mapper/phxyy/BasicThirdSysBusApiDao.xml b/api-sync/src/main/resources/mybatis/mapper/phxyy/BasicThirdSysBusApiDao.xml index d2e6bc1..6c0b8fd 100644 --- a/api-sync/src/main/resources/mybatis/mapper/phxyy/BasicThirdSysBusApiDao.xml +++ b/api-sync/src/main/resources/mybatis/mapper/phxyy/BasicThirdSysBusApiDao.xml @@ -3,7 +3,7 @@ - + UPDATE basic_third_sys_bus_api code=#{code}, @@ -17,7 +17,7 @@