1.添加上传单据到自助平台接口

2.往来单位类型添加医院客户类型
feature-order-fix
x_z 2 years ago
parent b9b19c6808
commit 26392dcbd7

@ -89,6 +89,7 @@ public class ConstantStatus {
public static final int CORP_SP = 2; //供应商
public static final int CORP_INTTERNAL = 3; //内部科室等
public static final int CORP_SPECIAL = 4; //内部科室等
public static final int CORP_HOSPTIAL = 5; //医院客户
//往来信息类型-单据

@ -12,7 +12,7 @@ import com.glxp.api.admin.req.inout.DeleteRequest;
import com.glxp.api.admin.req.inout.PlatformLinkRequest;
import com.glxp.api.admin.res.PageSimpleResponse;
import com.glxp.api.admin.res.info.PlatformLinkResponse;
import com.glxp.api.admin.service.basic.UnitMaintainService;
import com.glxp.api.admin.service.auth.CustomerService;
import com.glxp.api.admin.service.info.PlatformService;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
@ -37,7 +37,7 @@ public class PlatformController {
@Resource
private PlatformService platformService;
@Resource
private UnitMaintainService unitMaintainService;
private CustomerService customerService;
@AuthRuleAnnotation("")
@PostMapping("/udiwms/platform/remove")
@ -116,6 +116,8 @@ public class PlatformController {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, verifyResult);
}
platformLinkRequest.setCustomerId(String.valueOf(customerService.getUserBean().getCustomerId()));
PlatformEntity platformEntity = platformService.get(platformLinkRequest.getPlatformId());
if (platformEntity != null) {
String url = platformEntity.getHost() + "/verify";
@ -172,6 +174,7 @@ public class PlatformController {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
platformLinkRequest.setCustomerId(String.valueOf(customerService.getUserBean().getCustomerId()));
List<PlatformLinkResponse> list = platformService.getLinkPlatformList(platformLinkRequest);
PageInfo<PlatformLinkResponse> pageInfo = new PageInfo<>(list);
PageSimpleResponse<PlatformLinkResponse> pageSimpleResponse = new PageSimpleResponse<>();

@ -3,7 +3,9 @@ package com.glxp.api.admin.controller.inout;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.github.pagehelper.PageInfo;
import com.glxp.api.admin.annotation.AuthRuleAnnotation;
import com.glxp.api.admin.constant.Constant;
@ -16,7 +18,9 @@ import com.glxp.api.admin.entity.auth.AuthAdmin;
import com.glxp.api.admin.entity.basic.BussinessTypeEntity;
import com.glxp.api.admin.entity.basic.EntrustReceEntity;
import com.glxp.api.admin.entity.basic.UdiEntity;
import com.glxp.api.admin.entity.business.StockOrderDetailEntity;
import com.glxp.api.admin.entity.business.StockOrderEntity;
import com.glxp.api.admin.entity.info.PlatformEntity;
import com.glxp.api.admin.entity.info.SystemParamConfigEntity;
import com.glxp.api.admin.entity.inout.*;
import com.glxp.api.admin.entity.inventory.InvBusUserEntity;
@ -32,7 +36,10 @@ import com.glxp.api.admin.res.PageSimpleResponse;
import com.glxp.api.admin.service.auth.CustomerService;
import com.glxp.api.admin.service.basic.BussinessTypeService;
import com.glxp.api.admin.service.basic.EntrustReceService;
import com.glxp.api.admin.service.basic.UdiRelevanceService;
import com.glxp.api.admin.service.business.StockOrderDetailService;
import com.glxp.api.admin.service.business.StockOrderService;
import com.glxp.api.admin.service.info.PlatformService;
import com.glxp.api.admin.service.info.SystemParamConfigService;
import com.glxp.api.admin.service.inout.*;
import com.glxp.api.admin.service.inventory.InvBusUserService;
@ -43,6 +50,7 @@ import com.glxp.api.admin.util.*;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.BindingResult;
@ -56,6 +64,7 @@ import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@RestController
public class OrderController {
@ -101,6 +110,13 @@ public class OrderController {
@Resource
InvBusUserService invBusUserService;
@Resource
private PlatformService platformService;
@Resource
private StockOrderDetailService stockOrderDetailService;
@Resource
private UdiRelevanceService udiRelevanceService;
@AuthRuleAnnotation("")
@GetMapping("udiwms/inout/order/getUdi")
public BaseResponse getUdi(@RequestParam("code") String code) {
@ -279,8 +295,8 @@ public class OrderController {
if (stockOrderEntity == null || stockOrderEntity.getOrderIdFk() == null) {
if (bussinessTypeEntity.isEntrutSpms()) {
BaseResponse baseResponse = spsDirectClient.downloadOrder(orderFilterRequest.getOrderId(), userId + "", orderFilterRequest.getAction());
if(baseResponse==null){
return ResultVOUtils.error(500,"中继服务连接失败!");
if (baseResponse == null) {
return ResultVOUtils.error(500, "中继服务连接失败!");
}
return baseResponse;
} else
@ -798,4 +814,84 @@ public class OrderController {
return ResultVOUtils.success(orderEntity);
}
@AuthRuleAnnotation("")
@PostMapping("/warehouse/inout/order/uploadSpms")
public BaseResponse uploadSpms(@RequestBody OrderUploadRequest orderUploadRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (orderUploadRequest.getOrderIds() != null && orderUploadRequest.getOrderIds().size() > 0) {
PostUdimsOrderRequest postUdimsOrderRequest = new PostUdimsOrderRequest();
List<PostUdimsOrderRequest.OrderBean> orderBeans = new ArrayList<>();
String orderId = orderUploadRequest.getOrderIds().get(0);
OrderEntity orderEntity = orderService.findById(orderId);
UnitMaintainPlatformEntity unitMaintainPlatform = platformService.findLinkData(customerService.getUserBean().getCustomerId(), orderEntity.getAction(), orderEntity.getFromCorpId());
if (unitMaintainPlatform == null || unitMaintainPlatform.getAppid() == null) {
return ResultVOUtils.error(500, "该往来单位未绑定UDI自助平台");
}
if (!orderEntity.getAction().equals(unitMaintainPlatform.getSourceAction())) {
return ResultVOUtils.error(500, "该单据类型不支持提交!");
}
PostUdimsOrderRequest.OrderBean orderBean = new PostUdimsOrderRequest.OrderBean();
BeanUtils.copyProperties(orderEntity, orderBean);
orderBean.setAction(unitMaintainPlatform.getTargetAction());
orderBean.setInvStorageCode(unitMaintainPlatform.getInvCode());
orderBean.setInvWarehouseCode(unitMaintainPlatform.getInvSubCode());
WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest();
warehouseQueryRequest.setOrderId(orderEntity.getId());
List<WarehouseEntity> warehouseEntities = codesService.findByOrderId(warehouseQueryRequest);
List<PostUdimsOrderRequest.OrderBean.CodeBean> codeBeans = new ArrayList<>();
warehouseEntities.forEach(data -> {
PostUdimsOrderRequest.OrderBean.CodeBean codeBean = new PostUdimsOrderRequest.OrderBean.CodeBean();
BeanUtils.copyProperties(data, codeBean);
codeBean.setInvStorageCode(unitMaintainPlatform.getInvCode());
codeBean.setInvWarehouseCode(unitMaintainPlatform.getInvSubCode());
codeBeans.add(codeBean);
});
//查询单据详情
FilterOrderDetailRequest filterOrderDetailRequest = new FilterOrderDetailRequest();
filterOrderDetailRequest.setOrderId(orderBean.getOrderId());
//查询业务单据详情
List<StockOrderDetailEntity> orderDetailList = stockOrderDetailService.findByScanOrderId(orderBean.getOrderId());
if (CollUtil.isNotEmpty(orderDetailList)) {
List<PostUdimsOrderDetailRequest> orderDetails = new ArrayList<>();
for (StockOrderDetailEntity stockOrderDetailEntity : orderDetailList) {
PostUdimsOrderDetailRequest orderDetail = new PostUdimsOrderDetailRequest();
orderDetail.setUuidFk(udiRelevanceService.findUuidById(stockOrderDetailEntity.getRelId()));
orderDetail.setFirstSalesInvNo(stockOrderDetailEntity.getFirstSalesInvNo());
orderDetail.setSecSalesInvNo(stockOrderDetailEntity.getSecSalesInvNo());
orderDetail.setPrice(stockOrderDetailEntity.getPrice());
orderDetail.setInvoiceDate(stockOrderDetailEntity.getInvoiceDate());
orderDetail.setSecSalesListNo(stockOrderDetailEntity.getSecSalesListNo());
orderDetail.setBatchNo(stockOrderDetailEntity.getBatchNo());
orderDetails.add(orderDetail);
}
orderBean.setOrderDetails(orderDetails);
}
orderBean.setCodes(codeBeans);
orderBeans.add(orderBean);
postUdimsOrderRequest.setOrderBeans(orderBeans);
PlatformEntity platformEntity = platformService.get(unitMaintainPlatform.getPlatformId());
postUdimsOrderRequest.setOrderBeans(orderBeans);
log.info("提交单据到自助平台,单据数据:{}", JSONUtil.toJsonStr(postUdimsOrderRequest));
String response =
HttpClient.uCloudPostSmp(platformEntity.getHost() + "/warehouse/inout/postOrdersUdims",
postUdimsOrderRequest, unitMaintainPlatform.getApiKey(), unitMaintainPlatform.getSecretKey());
log.info("自助平台响应结果:{}", response);
BaseResponse baseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse>() {
});
if (baseResponse.getCode() == 20000) {
orderEntity.setUploadStatus("1");
orderService.updateOrder(orderEntity);
return baseResponse;
} else {
return ResultVOUtils.error(500, baseResponse.getMessage());
}
}
return ResultVOUtils.success("未选择订单!");
}
}

@ -66,4 +66,10 @@ public interface UdiRelevanceDao {
*/
void importUdiRelevance(@Param("udiRelevanceEntities") List<UdiRelevanceEntity> udiRelevanceEntities);
/**
* UUID
* @param relId
* @return
*/
String selectUuidById(String relId);
}

@ -29,5 +29,11 @@ public interface StockOrderDetailDao {
StockOrderDetailEntity findOne(@Param("id") String id);
/**
* ID
*
* @param scanOrderId
* @return
*/
List<StockOrderDetailEntity> findByScanOrderId(@Param("scanOrderId") String scanOrderId);
}

@ -79,4 +79,11 @@ public class OrderEntity {
private String preInBillNo;
private String preOutBillNo;
/**
*
*
* 01
*/
private String uploadStatus;
}

@ -0,0 +1,35 @@
package com.glxp.api.admin.req.inout;
import com.glxp.api.admin.req.ListPageRequest;
import lombok.Data;
import java.util.List;
@Data
public class FilterOrderDetailRequest extends ListPageRequest {
private String docid;
private String goodsname;
private String companyname;
private String orderId;
private String orderIdFk;
private String startDate;
private String endDate;
private String billAction;
private String billcode;
private String fbillflag;
Long customerId;
//批次号
private String lotno;
//产品ID
private String uuidFk;
List<String> orderIds;
/**
* ID
*/
private String relId;
}

@ -0,0 +1,10 @@
package com.glxp.api.admin.req.inout;
import lombok.Data;
import java.util.List;
@Data
public class OrderUploadRequest {
private List<String> orderIds;
}

@ -0,0 +1,35 @@
package com.glxp.api.admin.req.inout;
import lombok.Data;
import java.math.BigDecimal;
/**
* udims
*/
@Data
public class PostUdimsOrderDetailRequest {
//uuid
private String uuidFk;
//批次号
private String batchNo;
//价格
private BigDecimal price;
//销售发票号(第一票)
private String firstSalesInvNo;
//销售发票号(第二票)
private String secSalesInvNo;
//销售清单号(第二票)
private String secSalesListNo;
//开票日期
private String invoiceDate;
}

@ -0,0 +1,61 @@
package com.glxp.api.admin.req.inout;
import lombok.Data;
import java.util.List;
@Data
public class PostUdimsOrderRequest {
List<OrderBean> orderBeans;
private String customerId;
@Data
public static class OrderBean {
private String orderId;
private String corpOrderId;
private String action;
private String actDate;
private String actor;
private String mainAction;
private String fromCorpId;
private String fromCorp;
private String remark;
private String invStorageCode;
private String invWarehouseCode;
private List<PostUdimsOrderDetailRequest> orderDetails;
private List<CodeBean> codes;
@Data
public static class CodeBean {
private String action;
private String mainAction;
private String code;
private String corpOrderId;
private String actor;
private String actDate;
private String fromCorpId;
private String fromCorp;
private String orderId;
private String batchNo;
private String produceDate;
private String expireDate;
private String serialNo;
private Integer count;
private String packageLevel;
private String warehouseCode;
private String customerId;
private String nameCode;
private String supId;//供应商ID
private String invStorageCode;
private String invWarehouseCode;
private String relId;
private Integer status;
private String locStorageCode;
}
}
}

@ -1,10 +1,8 @@
package com.glxp.api.admin.service.basic;
import com.glxp.api.admin.entity.basic.UdiInfoEntity;
import com.glxp.api.admin.entity.basic.UdiRelevanceEntity;
import com.glxp.api.admin.req.basic.FilterUdiInfoRequest;
import com.glxp.api.admin.res.basic.UdiRelevanceResponse;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -62,4 +60,11 @@ public interface UdiRelevanceService {
boolean deleteByIds(List<String> id);
boolean deleteByUuid(String uuid);
/**
* uuid
* @param relId
* @return
*/
String findUuidById(String relId);
}

@ -318,4 +318,9 @@ public class UdiRelevanceServiceImpl implements UdiRelevanceService {
public boolean deleteByUuid(String uuid) {
return udiRelevanceDao.deleteByUuid(uuid);
}
@Override
public String findUuidById(String relId) {
return udiRelevanceDao.selectUuidById(relId);
}
}

@ -36,4 +36,11 @@ public interface StockOrderDetailService {
*/
void updateOrderDetailInfo(StockOrderDetailEntity stockOrderDetailEntity);
/**
* ID
*
* @param orderId
* @return
*/
List<StockOrderDetailEntity> findByScanOrderId(String orderId);
}

@ -125,4 +125,9 @@ public class StockOrderDetailServiceImpl implements StockOrderDetailService {
}
}
@Override
public List<StockOrderDetailEntity> findByScanOrderId(String orderId) {
return stockOrderDetailDao.findByScanOrderId(orderId);
}
}

@ -129,7 +129,7 @@ public class PlatformServiceImpl implements PlatformService {
String host = platformEntity.getHost();
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("invSubCode", invSubCode);
String resp = HttpClient.mipsGet(host + "/apiwms/bussinessType/apimsFilter", paramMap);
String resp = HttpClient.mipsGet(host + "/udiwms/bussinessType/udimsFilter", paramMap);
if (StrUtil.isNotBlank(resp) && resp.contains("20000")) {
return JSON.parseObject(resp, BaseResponse.class);
} else {
@ -145,7 +145,7 @@ public class PlatformServiceImpl implements PlatformService {
return ResultVOUtils.success();
}
String host = platformEntity.getHost();
String url = host + "/spms/inv/warehouse/filterInv/forapims";
String url = host + "/spms/inv/warehouse/filterInv/forUdims";
log.info("拉取自助平台仓库数据:" + url);
String resp = HttpUtil.get(url);
log.info("拉取结果:" + resp);
@ -172,7 +172,7 @@ public class PlatformServiceImpl implements PlatformService {
String host = platformEntity.getHost();
Map<String, String> paramMap = new HashMap<>();
paramMap.put("invCode", invCode);
String resp = HttpClient.mipsGet(host + "/spms/sub/inv/warehouse/getSubInvForapims", paramMap);
String resp = HttpClient.mipsGet(host + "/spms/sub/inv/warehouse/getSubInvForUdims", paramMap);
if (StrUtil.isNotBlank(resp) && resp.contains("20000")) {
return JSON.parseObject(resp, BaseResponse.class);
} else {
@ -188,7 +188,7 @@ public class PlatformServiceImpl implements PlatformService {
* @return
*/
public BaseResponse testPlatformConnection(String host) {
String testUrl = host + "/apiwms/auth/device/connect";
String testUrl = host + "/udiwms/auth/device/connect";
String response = HttpUtil.get(testUrl);
if (StrUtil.isNotBlank(response)) {
try {
@ -218,22 +218,22 @@ public class PlatformServiceImpl implements PlatformService {
/**
*
*
* @param UnitMaintainPlatformEntity
* @param unitMaintainPlatformEntity
*/
public void saveUnitPlatform(UnitMaintainPlatformEntity UnitMaintainPlatformEntity) {
if (null != UnitMaintainPlatformEntity.getId()) {
unitMaintainPlatformDao.updateById(UnitMaintainPlatformEntity);
public void saveUnitPlatform(UnitMaintainPlatformEntity unitMaintainPlatformEntity) {
if (null != unitMaintainPlatformEntity.getId()) {
unitMaintainPlatformDao.updateById(unitMaintainPlatformEntity);
} else {
unitMaintainPlatformDao.insert(UnitMaintainPlatformEntity);
unitMaintainPlatformDao.insert(unitMaintainPlatformEntity);
}
//更新当前客户关联数据的所有key
List<UnitMaintainPlatformEntity> list = unitMaintainPlatformDao.selectByCustomerId(UnitMaintainPlatformEntity.getCustomerId());
List<UnitMaintainPlatformEntity> list = unitMaintainPlatformDao.selectByCustomerId(unitMaintainPlatformEntity.getCustomerId());
if (CollUtil.isNotEmpty(list)) {
for (UnitMaintainPlatformEntity maintainPlatform : list) {
maintainPlatform.setAppid(UnitMaintainPlatformEntity.getAppid());
maintainPlatform.setApiKey(UnitMaintainPlatformEntity.getApiKey());
maintainPlatform.setSecretKey(UnitMaintainPlatformEntity.getSecretKey());
maintainPlatform.setAppid(unitMaintainPlatformEntity.getAppid());
maintainPlatform.setApiKey(unitMaintainPlatformEntity.getApiKey());
maintainPlatform.setSecretKey(unitMaintainPlatformEntity.getSecretKey());
unitMaintainPlatformDao.updateById(maintainPlatform);
}
}

@ -1,12 +1,9 @@
package com.glxp.api.admin.util;
import com.alibaba.fastjson.JSONObject;
import com.glxp.api.admin.entity.basic.BasicThirdSysEntity;
import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.io.UnsupportedEncodingException;
@ -95,4 +92,18 @@ public class HttpClient {
}
public static String uCloudPostSmp(String url, Object object, String appKey, String secretKey) {
RestTemplate restTemplate = new RestTemplate();
String json = JSONUtil.toJsonStr(object);
log.info(url + "\n" + json);
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
headers.add("api_key", appKey);
headers.add("secret_key", secretKey);
HttpEntity<String> httpEntity = new HttpEntity<>(json, headers);
log.info(httpEntity.toString());
String response = restTemplate.postForObject(url, httpEntity, String.class);
return response;
}
}

@ -620,4 +620,8 @@
#{item.udplatCode},#{item.supName},#{item.price},#{modifyTime})
</foreach>
</insert>
<select id="selectUuidById" resultType="java.lang.String">
select uuid from basic_udirel where id = #{relId}
</select>
</mapper>

@ -176,4 +176,9 @@
WHERE id = #{id} limit 1
</select>
<select id="findByScanOrderId" resultType="com.glxp.api.admin.entity.business.StockOrderDetailEntity">
select *
from stock_order_detail
where orderIdFk = (select billNo from stock_order where stock_order.orderIdFk = #{scanOrderId})
</select>
</mapper>

@ -73,13 +73,13 @@
select *
from auth_platform
<where>
<if test="id != null and id != ''">
<if test="id != null and id != '' and id != 'null'">
AND id = #{id}
</if>
<if test="name != null and name != ''">
<if test="name != null and name != '' and name != 'null'">
AND name like concat('%', #{name}, '%')
</if>
<if test="host != null and host != ''">
<if test="host != null and host != '' and host != 'null'">
AND host like concat('%', #{host}, '%')
</if>
</where>

@ -6,7 +6,7 @@
up.unitId,
u.name corpName,
u.corpType,
u.spell,
u.spell pinyinCode,
ap.name platformName,
ap.id platformId,
up.sourceAction,

Loading…
Cancel
Save