第三方单据提交优化,平和单据提交重写,修改单据提交状态未改变问题,修改单据上传创建人问题

master
anthonyywj2 3 years ago
parent 742072f1cb
commit 90c03c83c3

@ -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<StockOrderDetailEntity> stockOrderDetailEntities = stockOrderDetailDao.findByOrderIdFk(stockOrderEntity.getId());
udiwmsOrderRequest.setBillDate(stockOrderEntity.getBilldate());
udiwmsOrderRequest.setBillNo(stockOrderEntity.getBillNo());
BussinessLocalTypeFilterRequest bussinessLocalTypeFilterRequest = new BussinessLocalTypeFilterRequest();
bussinessLocalTypeFilterRequest.setAction(stockOrderEntity.getBillType());
List<BussinessLocalTypeEntity> 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<InvWarehouseEntity> invWarehouseEntities = invWarehouseDao.selectByCode(stockOrderEntity.getCorpId());
InvWarehouseEntity invWarehouseEntity = invWarehouseEntities.get(0);
try {
//根据第三方系统标识,获取对应字段的值
FilterThrInvWarehouseRequest filterThrInvWarehouseRequest = new FilterThrInvWarehouseRequest();
filterThrInvWarehouseRequest.setCode(invWarehouseEntity.getThirdId());
filterThrInvWarehouseRequest.setThirdSysFk(thirdId);
List<ThrInvWarehouseEntity> 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<BaseResponse>() {
});
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<UdiwmsOrderDetail> 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<BaseResponse>() {
});
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;
}
}

@ -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 = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
"<root>" +
"<serverName>getMasterialInput</serverName>" +
"</root>";
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<BaseResponse>() {
});
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<StockOrderDetailEntity> 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<PageSimpleResponse<UdiwmsWarehouseDetail>> baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<UdiwmsWarehouseDetail>>>() {
});
if (baseResponse.getCode() == 20000) {
List<UdiwmsWarehouseDetail> udiwmsWarehouseDetails = baseResponse.getData().getList();
UdiwmsWarehouseDetail resultData = new UdiwmsWarehouseDetail();
if (CollUtil.isNotEmpty(udiwmsWarehouseDetails)) {
resultData.setCode("7071568");
resultData.setCode("总仓库");
resultData.setName("总仓库");
List<UdiwmsWarehouseDetail.SubWarehouse> 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;
}
}

@ -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<com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity> filterSysBusApi(FilterBusTypeRequest filterBasicThirdSysDetailRequest);
List<BasicThirdSysBusApiEntity> filterSysBusApi(FilterBusTypeRequest filterBasicThirdSysDetailRequest);
}

@ -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);
}

@ -8,4 +8,5 @@ public interface OrderDao {
OrderEntity findById(String orderId);
boolean updateOrder(OrderEntity orderEntity);
}

@ -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;
}

@ -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;
}

@ -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.出库

@ -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;

@ -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;

@ -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;
}
}

@ -9,4 +9,10 @@
where localAction = #{localAction}
</select>
<select id="selectByAction" resultType="com.glxp.mipsdl.admin.entity.basic.BussinessTypeEntity">
select *
from basic_bussiness_type
where action = #{action}
</select>
</mapper>

@ -9,4 +9,49 @@
from io_order
where id = #{orderId}
</select>
<update id="updateOrder" parameterType="com.glxp.mipsdl.admin.entity.inout.OrderEntity">
UPDATE io_order
<trim prefix="set" suffixOverrides=",">
<if test="action != null">`action`=#{action},</if>
<if test="corpOrderId != null">corpOrderId=#{corpOrderId},</if>
<if test="actDate != null">actDate=#{actDate},</if>
<if test="fromCorpId != null">fromCorpId=#{fromCorpId},</if>
<if test="actor != null">actor=#{actor},</if>
<if test="mainAction != null">mainAction=#{mainAction},</if>
<if test="fromCorp != null">fromCorp=#{fromCorp},</if>
<if test="status != null">status=#{status},</if>
<if test="remark != null">remark=#{remark},</if>
<if test="exportStatus != null">exportStatus=#{exportStatus},</if>
<if test="fromType != null">fromType=#{fromType},</if>
<if test="contrastStatus != null">contrastStatus=#{contrastStatus},</if>
<if test="erpFk != null">erpFk=#{erpFk},</if>
<if test="signStatus != null">signStatus=#{signStatus},</if>
<if test="receiveStatus != null">receiveStatus=#{receiveStatus},</if>
<if test="stockCheckFk != null">stockCheckFk=#{stockCheckFk},</if>
<if test="supId != null">supId=#{supId},</if>
<if test="exportFilePath != null">exportFilePath=#{exportFilePath},</if>
<if test="invStorageCode != null">invStorageCode=#{invStorageCode},</if>
<if test="invWarehouseCode != null">invWarehouseCode=#{invWarehouseCode},</if>
<if test="locStorageCode != null">locStorageCode=#{locStorageCode},</if>
<if test="supplementNo != null">supplementNo=#{supplementNo},</if>
<if test="ullageSupNo != null">ullageSupNo=#{ullageSupNo},</if>
<if test="createUser != null">createUser=#{createUser},</if>
<if test="reviewUser != null">reviewUser=#{reviewUser},</if>
<if test="updateTime != null">updateTime=#{updateTime},</if>
<if test="outChangeEnable != null">outChangeEnable=#{outChangeEnable},</if>
<if test="originUllageSupNo != null">originUllageSupNo=#{originUllageSupNo},</if>
<if test="preCheck != null">preCheck=#{preCheck},</if>
<if test="thirdBillNo != null">thirdBillNo=#{thirdBillNo},</if>
<if test="auditTime != null">auditTime=#{auditTime},</if>
<if test="replicateNo != null and replicateNo != ''">replicateNo=#{replicateNo},</if>
<if test="fromSubInvCode != null and fromSubInvCode != ''">fromSubInvCode=#{fromSubInvCode},</if>
<if test="createTime != null and createTime != ''">createTime=#{createTime},</if>
<if test="originFromType != null and originFromType != ''">originFromType=#{originFromType},</if>
</trim>
WHERE id = #{id}
</update>
</mapper>

@ -3,7 +3,7 @@
<mapper namespace="com.glxp.mipsdl.admin.dao.basic.BasicThirdSysBusApiDao">
<update id="updateSysBusApi" parameterType="com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity">
<update id="updateSysBusApi" parameterType="com.glxp.mipsdl.admin.entity.basic.BasicThirdSysBusApiEntity">
UPDATE basic_third_sys_bus_api
<trim prefix="set" suffixOverrides=",">
<if test="code != null">code=#{code},</if>
@ -17,7 +17,7 @@
</update>
<select id="filterSysBusApi" parameterType="com.glxp.mipsdl.admin.req.phxyy.FilterBusTypeRequest"
resultType="com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity">
resultType="com.glxp.mipsdl.admin.entity.basic.BasicThirdSysBusApiEntity">
SELECT * FROM basic_third_sys_bus_api
<where>
<if test="key != '' and key != null">
@ -40,7 +40,7 @@
<insert id="insertSysBusApi" keyProperty="id"
parameterType="com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity">
parameterType="com.glxp.mipsdl.admin.entity.basic.BasicThirdSysBusApiEntity">
insert
ignore
INTO basic_third_sys_bus_api

Loading…
Cancel
Save