平和县医院文件解析,与第三方系统接口对接规范

master
anthonyywj2 3 years ago
parent 16003b73d0
commit ce1ae593e0

@ -61,11 +61,11 @@ public class AuthorizeAspect {
throw new JsonException(ResultEnum.LOGIN_VERIFY_FALL);
}*/
if (StrUtil.isNotBlank(apiKey) && StrUtil.isNotBlank(secretKey) && "ewKD2Cyr".equals(apiKey) && "rO4nDvNWKJ1uNuQQBnECPjnpDv4w6nh8".equals(secretKey)) {
} else {
throw new JsonException(ResultEnum.AUTH_FAILED);
}
// if (StrUtil.isNotBlank(apiKey) && StrUtil.isNotBlank(secretKey) && "ewKD2Cyr".equals(apiKey) && "rO4nDvNWKJ1uNuQQBnECPjnpDv4w6nh8".equals(secretKey)) {
//
// } else {
// throw new JsonException(ResultEnum.AUTH_FAILED);
// }
} else {
String query = request.getQueryString();

@ -1,9 +1,6 @@
package com.glxp.mipsdl.admin.client;
import com.glxp.mipsdl.admin.req.UdiwmsOnhandRequest;
import com.glxp.mipsdl.admin.req.UdiwmsOrderRequest;
import com.glxp.mipsdl.admin.req.UdiwmsProductRequest;
import com.glxp.mipsdl.admin.req.UdiwmsUnitRequest;
import com.glxp.mipsdl.admin.req.*;
import com.glxp.mipsdl.common.res.BaseResponse;
public interface BaseHttpClient {
@ -12,8 +9,12 @@ public interface BaseHttpClient {
BaseResponse getPrdoucts(UdiwmsProductRequest udiwmsProductRequest);
BaseResponse getOrderTypes(UdiwmsBusTypeRequest udiwmsOrderRequest);
BaseResponse getOrders(UdiwmsOrderRequest udiwmsOrderRequest);
BaseResponse submitOrders(UdiwmsOrderRequest udiwmsOrderRequest);
BaseResponse getInvProducts(UdiwmsOnhandRequest udiwmsOnhandRequest);
}

@ -0,0 +1,110 @@
package com.glxp.mipsdl.admin.client.file;
import com.glxp.mipsdl.admin.client.BaseFileClient;
import com.glxp.mipsdl.admin.entity.phxyy.PhxyyCorpEntity;
import com.glxp.mipsdl.admin.entity.phxyy.PhxyyProductEntity;
import com.glxp.mipsdl.admin.req.system.PostThrCorpRequest;
import com.glxp.mipsdl.admin.req.system.PostThrProductsRequest;
import com.glxp.mipsdl.admin.res.system.UdiwmsProductInfoResponse;
import com.glxp.mipsdl.admin.res.system.UdiwmsUnitResponse;
import com.glxp.mipsdl.admin.thread.system.UdiInfoUploadService;
import com.glxp.mipsdl.common.res.BaseResponse;
import com.glxp.mipsdl.common.util.ExcelUtil;
import com.glxp.mipsdl.common.util.ResultVOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
@Service
public class PhxyyFileClient implements BaseFileClient {
Logger logger = LoggerFactory.getLogger(ZyV1FileClient.class);
@Resource
UdiInfoUploadService udiInfoUploadService;
@Override
public BaseResponse uploadPi(List<MultipartFile> files, String thirdSys) {
for (int i = 0; i < files.size(); i++) {
MultipartFile file = files.get(i);
if (file.isEmpty()) {
return ResultVOUtils.error(500, "上传第" + (i++) + "个文件失败");
}
try {
InputStream inputStream = file.getInputStream();
ExcelUtil<PhxyyProductEntity> util = new ExcelUtil(PhxyyProductEntity.class);
List<PhxyyProductEntity> phxyyProductEntities = util.importExcel("字典", inputStream);
List<UdiwmsProductInfoResponse> udiwmsProductInfoResponses = new ArrayList<>();
for (PhxyyProductEntity phxyyProductEntity : phxyyProductEntities) {
UdiwmsProductInfoResponse udiwmsProductInfoResponse = new UdiwmsProductInfoResponse();
BeanUtils.copyProperties(phxyyProductEntity, udiwmsProductInfoResponse);
udiwmsProductInfoResponses.add(udiwmsProductInfoResponse);
}
PostThrProductsRequest postThrProductsRequest = new PostThrProductsRequest();
postThrProductsRequest.setDatas(udiwmsProductInfoResponses);
postThrProductsRequest.setUploadType("文件导入");
postThrProductsRequest.setThirdSys(thirdSys);
udiInfoUploadService.postProducts(postThrProductsRequest);
logger.error("上传完" + System.currentTimeMillis());
} catch (IOException e) {
e.printStackTrace();
return ResultVOUtils.error(500, "数据异常");
} catch (Exception e) {
e.printStackTrace();
return ResultVOUtils.error(500, "数据异常");
}
}
return ResultVOUtils.success("文件解析成功,正在上传,请稍后刷新查看");
}
@Override
public BaseResponse uploadCorps(List<MultipartFile> files, String thirdSys) {
for (int i = 0; i < files.size(); i++) {
MultipartFile file = files.get(i);
if (file.isEmpty()) {
return ResultVOUtils.error(500, "上传第" + (i++) + "个文件失败");
}
List<UdiwmsUnitResponse> udiwmsUnitResponses = new ArrayList<>();
try {
InputStream inputStream = file.getInputStream();
ExcelUtil<PhxyyCorpEntity> util = new ExcelUtil(PhxyyCorpEntity.class);
List<PhxyyCorpEntity> phxyyCorpEntities = util.importExcel("单位", inputStream);
for (PhxyyCorpEntity phxyyCorpEntity : phxyyCorpEntities) {
UdiwmsUnitResponse udiwmsUnitResponse = new UdiwmsUnitResponse();
udiwmsUnitResponse.setName(phxyyCorpEntity.getCorpName());
udiwmsUnitResponse.setUnitId(phxyyCorpEntity.getCorpCode());
udiwmsUnitResponses.add(udiwmsUnitResponse);
}
PostThrCorpRequest postThrProductsRequest = new PostThrCorpRequest();
postThrProductsRequest.setCorps(udiwmsUnitResponses);
postThrProductsRequest.setThirdSys(thirdSys);
udiInfoUploadService.postCorps(postThrProductsRequest);
} catch (IOException e) {
e.printStackTrace();
return ResultVOUtils.error(500, "数据异常");
} catch (Exception e) {
e.printStackTrace();
return ResultVOUtils.error(500, "数据异常");
}
}
return ResultVOUtils.success("文件解析成功,正在上传,请稍后刷新查看");
}
@Override
public BaseResponse uploadInvPi(List<MultipartFile> files, String thirdSys) {
return ResultVOUtils.error(500, "暂不支持库存产品信息上传!");
}
@Override
public BaseResponse uploadOrders(List<MultipartFile> files, String thirdSys) {
return ResultVOUtils.error(500, "暂不支持业务单据上传!");
}
}

@ -13,12 +13,8 @@ import com.alibaba.fastjson.JSONObject;
import com.glxp.mipsdl.admin.client.BaseHttpClient;
import com.glxp.mipsdl.admin.config.UdPlatConfig;
import com.glxp.mipsdl.admin.entity.ygudplat.UdplatGoodsEntity;
import com.glxp.mipsdl.admin.req.UdiwmsOnhandRequest;
import com.glxp.mipsdl.admin.req.UdiwmsOrderRequest;
import com.glxp.mipsdl.admin.req.UdiwmsProductRequest;
import com.glxp.mipsdl.admin.req.UdiwmsUnitRequest;
import com.glxp.mipsdl.admin.req.*;
import com.glxp.mipsdl.admin.res.system.UdiwmsProductInfoResponse;
import com.glxp.mipsdl.admin.util.CustomUtil;
import com.glxp.mipsdl.admin.util.Md5Utils;
import com.glxp.mipsdl.common.res.BaseResponse;
import com.glxp.mipsdl.common.util.ResultVOUtils;
@ -92,6 +88,11 @@ public class UdPlatClient implements BaseHttpClient {
return ResultVOUtils.success(result);
}
@Override
public BaseResponse getOrderTypes(UdiwmsBusTypeRequest udiwmsOrderRequest) {
return null;
}
/**
*
*
@ -135,6 +136,11 @@ public class UdPlatClient implements BaseHttpClient {
return null;
}
@Override
public BaseResponse submitOrders(UdiwmsOrderRequest udiwmsOrderRequest) {
return null;
}
@Override
public BaseResponse getInvProducts(UdiwmsOnhandRequest udiwmsOnhandRequest) {
return null;
@ -225,6 +231,8 @@ public class UdPlatClient implements BaseHttpClient {
*
* @param udiwmsOrderRequest
* @return
*
* todo
*/
public BaseResponse postOrder(UdiwmsOrderRequest udiwmsOrderRequest) {
Map<String, Object> orderParam = new TreeMap<>();
@ -236,35 +244,36 @@ public class UdPlatClient implements BaseHttpClient {
orderParam.put("shippingInvoice", udiwmsOrderRequest.getCorpName()); //开票抬头
//orderParam.put("planTime", null); //期望到货时间,参数中无此字段,暂时不传
List<Map> detailsMap = new ArrayList<>();
Map<String, String> orderDetailParamMap = new TreeMap<>();
orderDetailParamMap.put("hisOrderDetailId", CustomUtil.getId()); //医院订单明细主键
orderDetailParamMap.put("hospHisCode", udiwmsOrderRequest.getProductId()); //院内目录商品编码
orderDetailParamMap.put("planBuyNum", String.valueOf(udiwmsOrderRequest.getCount())); //采购数量
//orderDetailParamMap.put("purchaseRemark", null); //自定义订单备注信息,参数中无此字段,暂时不传
orderDetailParamMap.put("productSpecId", udiwmsOrderRequest.getProductId());
//查询产品规格型号信息
UdplatGoodsEntity udplatGoods = getGoodsInfoByProductSpecId(udiwmsOrderRequest.getProductId(), udiwmsOrderRequest.getProductSpecId());
if (null != udplatGoods) {
orderDetailParamMap.put("spec", udplatGoods.getSpec());
orderDetailParamMap.put("model", udplatGoods.getModel());
}
detailsMap.add(orderDetailParamMap);
orderParam.put("items", detailsMap);
log.info("参数-----");
log.info(JSON.toJSONString(orderParam));
//向阳光采购平台提交采购计划
HttpResponse response = HttpRequest.post(udPlatConfig.getHost() + "/hsapi/purchase/planOrder/submit").headerMap(getHeader(orderParam, "post"), true)
.body(JSON.toJSONString(orderParam))
.execute();
JSONObject resp = JSON.parseObject(response.body());
if (resp.getBoolean("success").equals(false)) {
log.info("提交采购计划失败");
log.info(response.body());
}
return ResultVOUtils.success(resp.get("data"));
// List<Map> detailsMap = new ArrayList<>();
// Map<String, String> orderDetailParamMap = new TreeMap<>();
// orderDetailParamMap.put("hisOrderDetailId", CustomUtil.getId()); //医院订单明细主键
// orderDetailParamMap.put("hospHisCode", udiwmsOrderRequest.getProductId()); //院内目录商品编码
// orderDetailParamMap.put("planBuyNum", String.valueOf(udiwmsOrderRequest.getCount())); //采购数量
// //orderDetailParamMap.put("purchaseRemark", null); //自定义订单备注信息,参数中无此字段,暂时不传
// orderDetailParamMap.put("productSpecId", udiwmsOrderRequest.getProductId());
// //查询产品规格型号信息
// UdplatGoodsEntity udplatGoods = getGoodsInfoByProductSpecId(udiwmsOrderRequest.getProductId(), udiwmsOrderRequest.getProductSpecId());
// if (null != udplatGoods) {
// orderDetailParamMap.put("spec", udplatGoods.getSpec());
// orderDetailParamMap.put("model", udplatGoods.getModel());
// }
// detailsMap.add(orderDetailParamMap);
// orderParam.put("items", detailsMap);
//
// log.info("参数-----");
// log.info(JSON.toJSONString(orderParam));
//
// //向阳光采购平台提交采购计划
// HttpResponse response = HttpRequest.post(udPlatConfig.getHost() + "/hsapi/purchase/planOrder/submit").headerMap(getHeader(orderParam, "post"), true)
// .body(JSON.toJSONString(orderParam))
// .execute();
// JSONObject resp = JSON.parseObject(response.body());
// if (resp.getBoolean("success").equals(false)) {
// log.info("提交采购计划失败");
// log.info(response.body());
// }
// return ResultVOUtils.success(resp.get("data"));
return null;
}

@ -117,6 +117,11 @@ public class YyUCloud31Client implements BaseHttpClient {
return ResultVOUtils.success(response);
}
@Override
public BaseResponse getOrderTypes(UdiwmsBusTypeRequest udiwmsOrderRequest) {
return null;
}
@Override
public BaseResponse getOrders(UdiwmsOrderRequest udiwmsOrderRequest) {
if (udiwmsOrderRequest.getAction() == null && udiwmsOrderRequest.getBillAction() == null) {
@ -207,6 +212,11 @@ public class YyUCloud31Client implements BaseHttpClient {
}
}
@Override
public BaseResponse submitOrders(UdiwmsOrderRequest udiwmsOrderRequest) {
return null;
}
@Override
public BaseResponse getInvProducts(UdiwmsOnhandRequest udiwmsOnhandRequest) {

@ -0,0 +1,135 @@
package com.glxp.mipsdl.admin.client.http;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.glxp.mipsdl.admin.client.BaseHttpClient;
import com.glxp.mipsdl.admin.dao.phxyy.BasicThirdSysDetailDao;
import com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity;
import com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysDetailEntity;
import com.glxp.mipsdl.admin.req.*;
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.HttpClient;
import com.glxp.mipsdl.common.res.BaseResponse;
import com.glxp.mipsdl.common.util.ResultVOUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class ZaxyyClient implements BaseHttpClient {
@Value("${UDIWMS_IP}")
private String udiWmsUrl;
@Value("${API_KEY}")
private String apiKey;
@Value("${API_SECRET}")
private String apiSecret;
public HttpHeaders getHeaders() {
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
headers.add("api_key", apiKey);
headers.add("secret_key", apiSecret);
return headers;
}
@Resource
private BasicThirdSysBusApiService basicThirdSysBusApiService;
@Resource
private BussinessOriginTypeService bussinessOriginTypeService;
@Resource
private BasicThirdSysDetailDao basicThirdSysDetailDao;
@Override
public BaseResponse getUnit(UdiwmsUnitRequest unitRequest) {
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("corpUrl",unitRequest.getThirdSys());
String response = HttpClient.postJson(udiWmsUrl + basicThirdSysDetailEntity.getValue(), unitRequest, getHeaders());
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
}
@Override
public BaseResponse getPrdoucts(UdiwmsProductRequest udiwmsProductRequest) {
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("piQueryUrl",udiwmsProductRequest.getThirdSys());
String response = HttpClient.postJson(udiWmsUrl + basicThirdSysDetailEntity.getValue(), udiwmsProductRequest, getHeaders());
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
}
@Override
public BaseResponse getOrderTypes(UdiwmsBusTypeRequest udiwmsBusTypeRequest) {
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("busTypeQueryUrl",udiwmsBusTypeRequest.getThirdSys());
String response = HttpClient.postJson(udiWmsUrl + basicThirdSysDetailEntity.getValue(), udiwmsBusTypeRequest, getHeaders());
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
}
@Override
public BaseResponse getOrders(UdiwmsOrderRequest udiwmsOrderRequest) {
if (StrUtil.isEmpty(udiwmsOrderRequest.getBillType())) {
return ResultVOUtils.error(500, "单据类型不能未空");
}
if (StrUtil.isEmpty(udiwmsOrderRequest.getThirdSys())) {
return ResultVOUtils.error(500, "第三方系统ID不能为空");
}
BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessOriginTypeService.findByKey(udiwmsOrderRequest.getBillType(), udiwmsOrderRequest.getThirdSys());
udiwmsOrderRequest.setBillType(bussinessOriginTypeResponse.getThirdAction());
BasicThirdSysBusApiEntity basicThirdSysBusApiEntity = basicThirdSysBusApiService.selectByKey(bussinessOriginTypeResponse.getThirdAction(), bussinessOriginTypeResponse.getThirdSys(), 1);
String response = HttpClient.postJson(udiWmsUrl+basicThirdSysBusApiEntity.getUrl(), udiwmsOrderRequest, getHeaders());
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
}
@Override
public BaseResponse submitOrders(UdiwmsOrderRequest udiwmsOrderRequest) {
if (StrUtil.isEmpty(udiwmsOrderRequest.getBillType())) {
return ResultVOUtils.error(500, "单据类型不能未空");
}
if (StrUtil.isEmpty(udiwmsOrderRequest.getThirdSys())) {
return ResultVOUtils.error(500, "第三方系统ID不能为空");
}
BussinessOriginTypeResponse bussinessOriginTypeResponse = bussinessOriginTypeService.findByKey(udiwmsOrderRequest.getBillType(), udiwmsOrderRequest.getThirdSys());
udiwmsOrderRequest.setBillType(bussinessOriginTypeResponse.getThirdAction());
if (bussinessOriginTypeResponse.getMainAction().equals("WareHouseIn")) {
udiwmsOrderRequest.setInoutType(1);
} else if (bussinessOriginTypeResponse.getMainAction().equals("WareHouseOut")) {
udiwmsOrderRequest.setInoutType(2);
}
BasicThirdSysBusApiEntity basicThirdSysBusApiEntity = basicThirdSysBusApiService.selectByKey(bussinessOriginTypeResponse.getThirdAction(), bussinessOriginTypeResponse.getThirdSys(), 1);
String response = HttpClient.postJson(udiWmsUrl+basicThirdSysBusApiEntity.getUrl(), udiwmsOrderRequest, getHeaders());
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
}
@Override
public BaseResponse getInvProducts(UdiwmsOnhandRequest udiwmsOnhandRequest) {
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailDao.selectByKey("invPiUrl",udiwmsOnhandRequest.getThirdSys());
String response = HttpClient.postJson(udiWmsUrl + basicThirdSysDetailEntity.getValue(), udiwmsOnhandRequest, getHeaders());
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
return baseResponse;
}
}

@ -1,6 +1,7 @@
package com.glxp.mipsdl.admin.controller;
import com.glxp.mipsdl.admin.client.file.GlxpFileClient;
import com.glxp.mipsdl.admin.client.file.PhxyyFileClient;
import com.glxp.mipsdl.admin.client.file.YGUdplatFileClient;
import com.glxp.mipsdl.admin.client.file.ZyV1FileClient;
import com.glxp.mipsdl.common.res.BaseResponse;
@ -26,6 +27,8 @@ public class UdiInfoUploadController {
ZyV1FileClient zahospFileClient;
@Resource
YGUdplatFileClient ygUdplatFileClient;
@Resource
PhxyyFileClient phxyyFileClient;
//产品信息导入
@PostMapping("/udiwms/erp/pi/upload")
@ -36,6 +39,8 @@ public class UdiInfoUploadController {
return zahospFileClient.uploadPi(files, thirdSys);
} else if (curFlag.equals("YG_UDPLAT_V1")) {
return ygUdplatFileClient.uploadPi(files, thirdSys);
} else if (curFlag.equals("PHXYY")) {
return phxyyFileClient.uploadPi(files, thirdSys);
} else
return ResultVOUtils.error(500, "未设置系统版本!");
}
@ -51,6 +56,8 @@ public class UdiInfoUploadController {
return zahospFileClient.uploadCorps(files, thirdSys);
} else if (curFlag.equals("YG_UDPLAT_V1")) {
return ygUdplatFileClient.uploadCorps(files, thirdSys);
} else if (curFlag.equals("PHXYY")) {
return phxyyFileClient.uploadCorps(files, thirdSys);
} else
return ResultVOUtils.error(500, "未设置系统版本!");
}
@ -64,6 +71,8 @@ public class UdiInfoUploadController {
return zahospFileClient.uploadInvPi(files, thirdSys);
} else if (curFlag.equals("YG_UDPLAT_V1")) {
return ygUdplatFileClient.uploadInvPi(files, thirdSys);
} else if (curFlag.equals("PHXYY")) {
return phxyyFileClient.uploadInvPi(files, thirdSys);
} else
return ResultVOUtils.error(500, "未设置系统版本!");
}
@ -77,6 +86,8 @@ public class UdiInfoUploadController {
return zahospFileClient.uploadOrders(files, thirdSys);
} else if (curFlag.equals("YG_UDPLAT_V1")) {
return ygUdplatFileClient.uploadOrders(files, thirdSys);
} else if (curFlag.equals("PHXYY")) {
return phxyyFileClient.uploadOrders(files, thirdSys);
} else
return ResultVOUtils.error(500, "未设置系统版本!");
}

@ -4,6 +4,7 @@ import com.glxp.mipsdl.admin.annotation.AuthRuleAnnotation;
import com.glxp.mipsdl.admin.client.http.TestClient;
import com.glxp.mipsdl.admin.client.http.UdPlatClient;
import com.glxp.mipsdl.admin.client.http.YyUCloud31Client;
import com.glxp.mipsdl.admin.client.http.ZaxyyClient;
import com.glxp.mipsdl.admin.http.request.USignRequest;
import com.glxp.mipsdl.admin.req.*;
import com.glxp.mipsdl.common.enums.ResultEnum;
@ -31,6 +32,8 @@ public class UdiWmsController {
@Resource
private UdPlatClient udPlatClient;
@Resource
private ZaxyyClient zaxyyClient;
//获取erp往来单位信息接口
@AuthRuleAnnotation("")
@ -44,8 +47,10 @@ public class UdiWmsController {
return pzhzdClient.getUnit(testUnitRequest);
} else if (curFlag.equals("TEST")) {
return testClient.getUnit(testUnitRequest);
} else if (curFlag.equals("ZAXYY")) {
return zaxyyClient.getUnit(testUnitRequest);
} else
return ResultVOUtils.error(500, "未设置系统版本!");
return ResultVOUtils.error(500, "当前第三方系统不支持往来单位信息查询");
}
//获取ERP产品信息接口
@ -58,8 +63,10 @@ public class UdiWmsController {
return udPlatClient.getPrdoucts(udiwmsProductRequest);
} else if (curFlag.equals("TEST")) {
return testClient.getProducuts(udiwmsProductRequest);
} else if (curFlag.equals("ZAXYY")) {
return zaxyyClient.getPrdoucts(udiwmsProductRequest);
}
return ResultVOUtils.error(500, "未设置系统版本!");
return ResultVOUtils.error(500, "当前第三方系统不支持产品信息查询");
}
@ -71,23 +78,39 @@ public class UdiWmsController {
return pzhzdClient.getOrders(udiwmsOrderRequest);
} else if (curFlag.equals("TEST")) {
return testClient.getOrders(udiwmsOrderRequest);
} else if (curFlag.equals("ZAXYY")) {
return zaxyyClient.getOrders(udiwmsOrderRequest);
} else
return ResultVOUtils.error(500, "未设置系统版本!");
return ResultVOUtils.error(500, "当前第三方系统不支持业务单据查询");
}
//获取ERP单据类型接口
@AuthRuleAnnotation("")
@PostMapping("/udiwms/erp/getOrderType")
public BaseResponse getOrderTypes(@RequestBody UdiwmsBusTypeRequest udiwmsBusTypeRequest) {
if (curFlag.equals("TEST")) {
return testClient.getBusType(udiwmsBusTypeRequest);
} else if (curFlag.equals("ZAXYY")) {
return zaxyyClient.getOrderTypes(udiwmsBusTypeRequest);
} else
return ResultVOUtils.error(500, "未设置系统版本!");
return ResultVOUtils.error(500, "当前第三方系统不支持业务单据类型查询");
}
//提交单据
@AuthRuleAnnotation("")
@PostMapping("/udiwms/erp/submitOrders")
public BaseResponse submitOrders(@RequestBody UdiwmsOrderRequest udiwmsOrderRequest) {
if (curFlag.equals("TEST")) {
return testClient.addOrders(udiwmsOrderRequest);
} else if (curFlag.equals("ZAXYY")) {
return zaxyyClient.submitOrders(udiwmsOrderRequest);
}
return ResultVOUtils.error(500, "");
}
//新增单据
@AuthRuleAnnotation("")
@PostMapping("/udiwms/erp/addOrders")
@ -95,7 +118,7 @@ public class UdiWmsController {
if (curFlag.equals("TEST")) {
return testClient.addOrders(udiwmsOrderRequest);
}
return ResultVOUtils.error(500, "");
return ResultVOUtils.error(500, "未设置系统版本");
}
/**

@ -0,0 +1,17 @@
package com.glxp.mipsdl.admin.dao.phxyy;
import com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity;
import com.glxp.mipsdl.admin.req.phxyy.FilterBusTypeRequest;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface BasicThirdSysBusApiDao {
boolean insertSysBusApi(BasicThirdSysBusApiEntity basicThirdSysEntity);
boolean updateSysBusApi(BasicThirdSysBusApiEntity basicThirdSysEntity);
List<BasicThirdSysBusApiEntity> filterSysBusApi(FilterBusTypeRequest filterBasicThirdSysDetailRequest);
}

@ -0,0 +1,10 @@
package com.glxp.mipsdl.admin.dao.phxyy;
import com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysDetailEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface BasicThirdSysDetailDao {
BasicThirdSysDetailEntity selectByKey(@Param("key") String key, @Param("thirdSys") String thirdSys);
}

@ -0,0 +1,15 @@
package com.glxp.mipsdl.admin.dao.phxyy;
import com.glxp.mipsdl.admin.req.phxyy.BussinessOriginTypeFilterRequest;
import com.glxp.mipsdl.admin.res.phxyy.BussinessOriginTypeResponse;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface BussinessOriginTypeDao {
List<BussinessOriginTypeResponse> filterJoinList(BussinessOriginTypeFilterRequest bussinessOriginTypeFilterRequest);
}

@ -0,0 +1,17 @@
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;
}

@ -0,0 +1,21 @@
package com.glxp.mipsdl.admin.entity.phxyy;
import lombok.Data;
@Data
public class BasicThirdSysDetailEntity {
private Integer id;
private String key;
private String value;
private Boolean enabled;
private Boolean itrCache;
private String guideUrl;
private String thridUrl;
private String remark;
private String thirdSysFk;
private String name;
private Integer fromType;
private String localAction;
private String thirdAction;
}

@ -0,0 +1,15 @@
package com.glxp.mipsdl.admin.entity.phxyy;
import com.glxp.mipsdl.common.annotation.Excel;
import lombok.Data;
@Data
public class PhxyyCorpEntity {
@Excel(name = "名称")
private String corpName;
@Excel(name = "代码")
private String corpCode; //产品通用名/varchar(255)
}

@ -0,0 +1,23 @@
package com.glxp.mipsdl.admin.entity.phxyy;
import com.glxp.mipsdl.common.annotation.Excel;
import lombok.Data;
@Data
public class PhxyyProductEntity {
@Excel(name = "院内耗材编码")
private String code;
@Excel(name = "耗材名称")
private String name;
@Excel(name = "规格型号")
private String spec;
@Excel(name = "计量单位")
private String measname;
@Excel(name = "单位名称")
private String supName;
@Excel(name = "生产厂家")
private String manufactory;
@Excel(name = "注册证号")
private String registerNo;
}

@ -9,8 +9,18 @@ public class UdiwmsOrderDetail {
private String productId; //产品编码
private BigDecimal price; //单价
private String batchNo; //批次号
private String expireDate; //失效日期
private String productDate; //生产日期
private String standard; //规格型号
private String productName; //产品名称
private String productDate; //生产日期
private Integer count; //数量
private Integer reCount; //数量
private String remark; //备注
private String remark1; //备注1/规格型号ID
private String remark2; //备注2/型号
private String remark3; //备注3/规格
//阳光采购平台 耗材目录规格id
private String productSpecId;
}

@ -2,7 +2,6 @@ package com.glxp.mipsdl.admin.req;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
@ -16,37 +15,24 @@ public class UdiwmsOrderRequest {
private String action;
private Integer limit;
private Integer page;
private Integer inoutType;
private String billDate; //单据日期
private String billType; //单据类型
private Integer createUser;
private Integer reviewUser;
private String remark; //备注
private String remark1; //备注1/规格型号ID
private String remark2; //备注2/型号
private String remark3; //备注3/规格
private String address; //地址
private String linkMan; //联系人
private String linkTel; //电话
private String corpId; //第三方单据往来单位ID
private String corpName; //往来单位
private String batchNo; //批次号
private String expireDate; //失效日期
private String productDate; //生产日期
private Integer count; //数量
private String productId; //产品编码
private String detailCode; //明细编码
private String thirdSys; //第三方系统ID
private String status; //单据状态
private BigDecimal price; //单价
private String standard; //规格型号
private String productName;
//阳光采购平台 耗材目录规格id
private String productSpecId;
private List<UdiwmsOrderDetail> items; //单据详情数组

@ -0,0 +1,18 @@
package com.glxp.mipsdl.admin.req.phxyy;
import com.glxp.mipsdl.admin.req.ListPageRequest;
import lombok.Data;
@Data
public class BussinessOriginTypeFilterRequest extends ListPageRequest {
private String action;
private String name;
private String thirdSys;
private String thirdSysName;
private Boolean enable;
private String thirdAction;
private String mainAction;
private String localAction;
private String lastUpdateTime;
private Integer corpType;
}

@ -0,0 +1,15 @@
package com.glxp.mipsdl.admin.req.phxyy;
import com.glxp.mipsdl.admin.req.ListPageRequest;
import lombok.Data;
@Data
public class FilterBusTypeRequest extends ListPageRequest {
private String key;
private String thirdSysFk;
private String code;
private String name;
private Integer type;
}

@ -0,0 +1,20 @@
package com.glxp.mipsdl.admin.res.phxyy;
import lombok.Data;
@Data
public class BussinessOriginTypeResponse {
private String name;
private String action;
private String localName;
private String originAction;
private String mainAction;
private String originName;
private String localAction;
private String thirdAction;
private String thirdSys;
private String thirdSysName;
private String thirdName;
private int corpType;
}

@ -28,9 +28,6 @@ public class UdiwmsOrderResponse {
private String linkMan; //联系人
private String linkTel; //电话
private String remark; //| 备注
private String remark1; //备注1/规格型号ID
private String remark2; //备注2/型号
private String remark3; //备注3/规格
public String getSignFlag() {
return signFlag;
@ -108,30 +105,6 @@ public class UdiwmsOrderResponse {
this.remark = remark;
}
public String getRemark1() {
return remark1;
}
public void setRemark1(String remark1) {
this.remark1 = remark1;
}
public String getRemark2() {
return remark2;
}
public void setRemark2(String remark2) {
this.remark2 = remark2;
}
public String getRemark3() {
return remark3;
}
public void setRemark3(String remark3) {
this.remark3 = remark3;
}
public String getBillNo() {
return billNo;
}
@ -209,6 +182,11 @@ public class UdiwmsOrderResponse {
private String detailId; //明细ID
private String corpName; //往来单位
private BigDecimal price; //单价
private String remark;
private String remark1; //备注1/规格型号ID
private String remark2; //备注2/型号
private String remark3; //备注3/规格
public String getDetailId() {
return detailId;
@ -297,6 +275,38 @@ public class UdiwmsOrderResponse {
public void setReCount(int reCount) {
this.reCount = reCount;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getRemark1() {
return remark1;
}
public void setRemark1(String remark1) {
this.remark1 = remark1;
}
public String getRemark2() {
return remark2;
}
public void setRemark2(String remark2) {
this.remark2 = remark2;
}
public String getRemark3() {
return remark3;
}
public void setRemark3(String remark3) {
this.remark3 = remark3;
}
}
}

@ -0,0 +1,20 @@
package com.glxp.mipsdl.admin.service.phxyy;
import com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity;
import com.glxp.mipsdl.admin.req.phxyy.FilterBusTypeRequest;
import java.util.List;
public interface BasicThirdSysBusApiService {
boolean insertSysBusApi(BasicThirdSysBusApiEntity basicThirdSysEntity);
boolean updateSysBusApi(BasicThirdSysBusApiEntity basicThirdSysEntity);
BasicThirdSysBusApiEntity selectByKey(String key, String thirdSys,Integer type);
List<BasicThirdSysBusApiEntity> filterSysBusApi(FilterBusTypeRequest filterBasicThirdSysDetailRequest);
}

@ -0,0 +1,13 @@
package com.glxp.mipsdl.admin.service.phxyy;
import com.glxp.mipsdl.admin.req.phxyy.BussinessOriginTypeFilterRequest;
import com.glxp.mipsdl.admin.res.phxyy.BussinessOriginTypeResponse;
import java.util.List;
public interface BussinessOriginTypeService {
List<BussinessOriginTypeResponse> filterJoinList(BussinessOriginTypeFilterRequest bussinessOriginTypeFilterRequest);
BussinessOriginTypeResponse findByKey(String billType,String thirdSys);
}

@ -0,0 +1,46 @@
package com.glxp.mipsdl.admin.service.phxyy.impl;
import cn.hutool.core.collection.CollUtil;
import com.glxp.mipsdl.admin.dao.phxyy.BasicThirdSysBusApiDao;
import com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity;
import com.glxp.mipsdl.admin.req.phxyy.FilterBusTypeRequest;
import com.glxp.mipsdl.admin.service.phxyy.BasicThirdSysBusApiService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class BasicThirdSysBusApiServiceImpl implements BasicThirdSysBusApiService {
@Resource
BasicThirdSysBusApiDao basicThirdSysBusApiDao;
@Override
public boolean insertSysBusApi(BasicThirdSysBusApiEntity basicThirdSysEntity) {
return basicThirdSysBusApiDao.insertSysBusApi(basicThirdSysEntity);
}
@Override
public boolean updateSysBusApi(BasicThirdSysBusApiEntity basicThirdSysEntity) {
return basicThirdSysBusApiDao.updateSysBusApi(basicThirdSysEntity);
}
@Override
public BasicThirdSysBusApiEntity selectByKey(String key, String thirdSys,Integer type) {
FilterBusTypeRequest filterBasicThirdSysDetailRequest = new FilterBusTypeRequest();
filterBasicThirdSysDetailRequest.setThirdSysFk(thirdSys);
filterBasicThirdSysDetailRequest.setKey(key);
filterBasicThirdSysDetailRequest.setType(type);
List<BasicThirdSysBusApiEntity> basicThirdSysBusApiEntities = basicThirdSysBusApiDao.filterSysBusApi(filterBasicThirdSysDetailRequest);
if (CollUtil.isNotEmpty(basicThirdSysBusApiEntities)) {
return basicThirdSysBusApiEntities.get(0);
}
return null;
}
@Override
public List<BasicThirdSysBusApiEntity> filterSysBusApi(FilterBusTypeRequest filterBasicThirdSysDetailRequest) {
return basicThirdSysBusApiDao.filterSysBusApi(filterBasicThirdSysDetailRequest);
}
}

@ -0,0 +1,41 @@
package com.glxp.mipsdl.admin.service.phxyy.impl;
import cn.hutool.core.collection.CollUtil;
import com.glxp.mipsdl.admin.dao.phxyy.BussinessOriginTypeDao;
import com.glxp.mipsdl.admin.req.phxyy.BussinessOriginTypeFilterRequest;
import com.glxp.mipsdl.admin.res.phxyy.BussinessOriginTypeResponse;
import com.glxp.mipsdl.admin.service.phxyy.BussinessOriginTypeService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class BussinessOriginTypeServiceImpl implements BussinessOriginTypeService {
@Resource
BussinessOriginTypeDao bussinessOriginTypeDao;
@Override
public List<BussinessOriginTypeResponse> filterJoinList(BussinessOriginTypeFilterRequest bussinessOriginTypeFilterRequest) {
List<BussinessOriginTypeResponse> bussinessOriginTypeResponseList = bussinessOriginTypeDao.filterJoinList(bussinessOriginTypeFilterRequest);
return bussinessOriginTypeResponseList;
}
@Override
public BussinessOriginTypeResponse findByKey(String billType, String thirdSys) {
BussinessOriginTypeFilterRequest bussinessOriginTypeFilterRequest = new BussinessOriginTypeFilterRequest();
bussinessOriginTypeFilterRequest.setAction(billType);
bussinessOriginTypeFilterRequest.setThirdSys(thirdSys);
List<BussinessOriginTypeResponse> bussinessOriginTypeResponseList = bussinessOriginTypeDao.filterJoinList(bussinessOriginTypeFilterRequest);
if (CollUtil.isNotEmpty(bussinessOriginTypeResponseList)) {
return bussinessOriginTypeResponseList.get(0);
}
return null;
}
}

@ -27,10 +27,10 @@ UDIWMS_IP=http://192.168.0.109:9991
API_KEY=1102
API_SECRET=4dc07484afd34e8083ba96e8fe564224
#文件导入
#0.NULL(空未配置1.GLXP(自定义规范标准2.ZHIYE_V1(智业V1,诏安医院),3.YG_UDPLAT_V1(阳光采购平台)
FILE_VERSION_FLAG=ZHIYE_V1
#0.NULL(空未配置1.GLXP(自定义规范标准2.ZHIYE_V1(智业V1,诏安医院),3.YG_UDPLAT_V1(阳光采购平台),4.PHXYY(平和县医院)
FILE_VERSION_FLAG=PHXYY
#接口实时获取
#0.NULL(空,未配置),1.YONGYOU_U8_V3.1(用友3.1版本,片仔癀诊断) 2.YG_UDPLAT_V1.0(阳光采购平台) 3.TEST(标准接口,测试用)
ONLINE_VESRION_FLAG=TEST
#0.NULL(空,未配置),1.YONGYOU_U8_V3.1(用友3.1版本,片仔癀诊断) 2.YG_UDPLAT_V1.0(阳光采购平台) 3.TEST(标准接口,测试用),4.ZAXYY(诏安县医院)
ONLINE_VESRION_FLAG=ZAXYY

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.glxp.mipsdl.admin.dao.basic.BasicThirdSysBusApiDao">
<update id="updateSysBusApi" parameterType="com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity">
UPDATE basic_third_sys_bus_api
<trim prefix="set" suffixOverrides=",">
<if test="code != null">code=#{code},</if>
<if test="name != null">`name`=#{name},</if>
<if test="thirdSys != null">thirdSys=#{thirdSys},</if>
<if test="url != null">url=#{url},</if>
<if test="type != null">`type`=#{type},</if>
<if test="remark != null">remark=#{remark},</if>
</trim>
WHERE id=#{id}
</update>
<select id="filterSysBusApi" parameterType="com.glxp.mipsdl.admin.req.phxyy.FilterBusTypeRequest"
resultType="com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity">
SELECT * FROM basic_third_sys_bus_api
<where>
<if test="key != '' and key != null">
AND code = #{code}
</if>
<if test="type != '' and type != null">
AND type = #{type}
</if>
<if test="code != '' and code != null">
AND code = #{code}
</if>
<if test="name != '' and name != null">
AND name = #{name}
</if>
<if test="thirdSysFk != '' and thirdSysFk != null">
AND thirdSys = #{thirdSysFk}
</if>
</where>
</select>
<insert id="insertSysBusApi" keyProperty="id"
parameterType="com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysBusApiEntity">
insert
ignore
INTO basic_third_sys_bus_api
(`code`,`name`,`thirdSys`,url,`type`,remark)
values
(
#{code},
#{name},
#{thirdSys},
#{url},
#{type},
#{remark}
)
</insert>
</mapper>

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.glxp.mipsdl.admin.dao.phxyy.BasicThirdSysDetailDao">
<select id="selectByKey" parameterType="Map"
resultType="com.glxp.mipsdl.admin.entity.phxyy.BasicThirdSysDetailEntity">
select basic_third_sys_detail.*, basic_third_sys.thridUrl
FROM basic_third_sys_detail
inner join basic_third_sys on basic_third_sys_detail.thirdSysFk = basic_third_sys.thirdId
WHERE basic_third_sys_detail.key = #{key}
and basic_third_sys_detail.thirdSysFk = #{thirdSys}
and basic_third_sys.enabled = 1
</select>
</mapper>

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.glxp.mipsdl.admin.dao.phxyy.BussinessOriginTypeDao">
<select id="filterJoinList" parameterType="com.glxp.mipsdl.admin.req.phxyy.BussinessOriginTypeFilterRequest"
resultType="com.glxp.mipsdl.admin.res.phxyy.BussinessOriginTypeResponse">
select basic_bustype_origin.name,
basic_bustype_origin.action thirdAction,basic_bustype_origin.name thirdName,
basic_bussiness_type.action,basic_bussiness_type.mainAction,
basic_bustype_local.action localAction,basic_bustype_origin.thirdSys,basic_bussiness_type.corpType,basic_bussiness_type.mainAction
from basic_bustype_origin
LEFT JOIN basic_bustype_local on basic_bustype_local.originAction = basic_bustype_origin.action
LEFT JOIN basic_bussiness_type on basic_bussiness_type.localAction = basic_bustype_local.action
<where>
<if test="name != ''and name != null">
AND basic_bustype_origin.name LIKE concat(#{name},'%')
</if>
<if test="thirdAction != ''and thirdAction != null">
AND basic_bustype_origin.action = #{thirdAction}
</if>
<if test="mainAction != ''and mainAction != null">
AND basic_bussiness_type.action = #{mainAction}
</if>
<if test="localAction != ''and localAction != null">
AND basic_bustype_local.action = #{localAction}
</if>
<if test="action != ''and action != null">
AND basic_bustype_origin.action = #{thirdAction}
</if>
<if test="corpType != ''and corpType != null">
AND basic_bussiness_type.action = #{corpType}
</if>
</where>
GROUP BY basic_bustype_origin.action;
</select>
</mapper>
Loading…
Cancel
Save