From 20819dfd71dda85e2c0bb4b28f741eba8202dbfc Mon Sep 17 00:00:00 2001 From: anthonywj Date: Mon, 11 Dec 2023 21:22:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=95=BF=E6=B3=B0=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9(=E9=AB=98=E5=80=BC=E8=80=97=E6=9D=90=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E4=B8=8A=E4=BC=A0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/mipsdl/client/ctqyy/CtqyyClient.java | 429 +++++++++++++++++- .../req/base/UdiwmsPreInOrderRequest.java | 3 +- .../glxp/mipsdl/res/ctqyy/CtBaseResponse.java | 4 +- 3 files changed, 425 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java b/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java index 2dff4ec..ec4c2e1 100644 --- a/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java @@ -1,44 +1,119 @@ package com.glxp.mipsdl.client.ctqyy; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.glxp.mipsdl.client.CommonHttpClient; +import com.glxp.mipsdl.config.ThirdSysConfig; +import com.glxp.mipsdl.constant.ConstantType; import com.glxp.mipsdl.constant.Constants; +import com.glxp.mipsdl.dao.auth.AuthUserDao; +import com.glxp.mipsdl.dao.auth.AuthWarehouseDao; +import com.glxp.mipsdl.dao.auth.AuthWarehouseUserMapper; +import com.glxp.mipsdl.dao.basic.BasicBussinessTypeDao; +import com.glxp.mipsdl.dao.basic.BasicCorpDao; +import com.glxp.mipsdl.dao.basic.BasicProductsDao; +import com.glxp.mipsdl.dao.basic.BasicUdirelDao; +import com.glxp.mipsdl.dao.inout.*; +import com.glxp.mipsdl.dao.thrsys.ThrInvWarehouseDao; +import com.glxp.mipsdl.dao.thrsys.ThrSystemBusApiDao; +import com.glxp.mipsdl.entity.auth.AuthUserEntity; +import com.glxp.mipsdl.entity.auth.AuthWarehouseEntity; +import com.glxp.mipsdl.entity.auth.AuthWarehouseUser; +import com.glxp.mipsdl.entity.basic.BasicBussinessTypeEntity; +import com.glxp.mipsdl.entity.basic.BasicCorpEntity; +import com.glxp.mipsdl.entity.basic.BasicProductsEntity; +import com.glxp.mipsdl.entity.basic.BasicUdirelEntity; import com.glxp.mipsdl.entity.ctqyy.MaterialDictEntity; import com.glxp.mipsdl.entity.ctqyy.PriceClassEntity; import com.glxp.mipsdl.entity.ctqyy.ThrHslbEntity; +import com.glxp.mipsdl.entity.inout.*; +import com.glxp.mipsdl.entity.thrsys.ThrCorpEntity; +import com.glxp.mipsdl.entity.thrsys.ThrInvWarehouseEntity; +import com.glxp.mipsdl.entity.thrsys.ThrSystemBusApiEntity; import com.glxp.mipsdl.http.HttpClient; import com.glxp.mipsdl.req.base.*; import com.glxp.mipsdl.req.ctqyy.*; import com.glxp.mipsdl.req.post.*; +import com.glxp.mipsdl.req.zaxyy.ZaxzyyOrderRequest; +import com.glxp.mipsdl.req.zzzyy.ZzzyyRequest; import com.glxp.mipsdl.res.BaseResponse; import com.glxp.mipsdl.res.ctqyy.CtBaseResponse; import com.glxp.mipsdl.res.udiwms.*; +import com.glxp.mipsdl.service.auth.AuthWarehouseService; +import com.glxp.mipsdl.service.thrsys.ThrCorpService; import com.glxp.mipsdl.service.thrsys.ThrSystemDetailService; +import com.glxp.mipsdl.util.DateUtil; +import com.glxp.mipsdl.util.IntUtil; import com.glxp.mipsdl.util.ResultVOUtils; +import com.glxp.mipsdl.util.SubmitOrderUtil; import lombok.extern.slf4j.Slf4j; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Slf4j @Service(value = "100011HttpClient") public class CtqyyClient extends CommonHttpClient { - + @Resource + AuthWarehouseUserMapper authWarehouseUserMapper; @Resource private ThrSystemDetailService thrSystemDetailService; @Resource private HttpClient httpClient; + @Resource + private SubmitOrderUtil submitOrderUtil; + @Resource + private IoOrderUploadLogDao orderUploadLogDao; + + @Resource + private IoOrderDao orderDao; + @Resource + private ThrSystemBusApiDao thrSystemBusApiDao; + @Resource + private BasicBussinessTypeDao basicBussinessTypeDao; + @Resource + private BasicCorpDao basicCorpDao; + @Resource + private IoCodeDao codeDao; + @Resource + private AuthWarehouseDao authWarehouseDao; + @Resource + private ThrInvWarehouseDao thrInvWarehouseDao; + @Resource + private AuthWarehouseService authWarehouseService; + @Resource + private ThirdSysConfig thirdSysConfig; + @Resource + private ThrCorpService thrCorpService; + @Resource + private IoOrderDetailBizDao orderDetailBizDao; + @Resource + private IoOrderDetailCodeDao orderDetailCodeDao; + @Resource + private AuthUserDao authUserDao; + @Resource + BasicUdirelDao basicUdirelDao; + @Resource + BasicProductsDao basicProductsDao; + /** * 拼接xml请求头 * @@ -151,7 +226,7 @@ public class CtqyyClient extends CommonHttpClient { return ResultVOUtils.error(500, "提交产品列表不能为空!"); } MaterialDictEntity materialDictEntity = new MaterialDictEntity(); - if (udiRelevanceResponse.getMainId().isEmpty() && StrUtil.isNotEmpty(udiRelevanceResponse.getOriginUuid())) + if (StrUtil.isEmpty(udiRelevanceResponse.getMainId()) && StrUtil.isNotEmpty(udiRelevanceResponse.getOriginUuid())) materialDictEntity.setOperatType("1"); else materialDictEntity.setOperatType("2"); @@ -183,7 +258,7 @@ public class CtqyyClient extends CommonHttpClient { try { log.error("提交新增产品信息:" + ctqyyRequest.getMsgBody()); CtBaseResponse baseResponse = JSONObject.parseObject(response, CtBaseResponse.class); - if (baseResponse.getReturnCode() != 20000) { + if (baseResponse.getCode() != 20000) { String errMsg = "提交新增产品信息,异常:{}" + response; log.error(errMsg); return ResultVOUtils.error(500, "提交新增产品失败!"); @@ -338,11 +413,208 @@ public class CtqyyClient extends CommonHttpClient { return null; } + @Override public BaseResponse submitOrders(UdiwmsOrderRequest udiwmsOrderRequest) { - return null; + if (StrUtil.isBlank(udiwmsOrderRequest.getBillNo())) { + return ResultVOUtils.error(500, "单据号不能为空"); + } + + ZaxzyyOrderRequest zaxzyyOrderRequest = new ZaxzyyOrderRequest(); + BeanUtil.copyProperties(udiwmsOrderRequest, zaxzyyOrderRequest); + //查询单据和详情信息,组装第三方系统接口所需参数 + IoOrderEntity orderEntity = orderDao.selectOne(new QueryWrapper().eq("billNo", udiwmsOrderRequest.getBillNo())); + + zaxzyyOrderRequest.setBillDate(DateUtil.formatDateTime(orderEntity.getCreateTime())); + //查询对应的第三方单据类型 + ThrSystemBusApiEntity thrSystemBusApiEntity = thrSystemBusApiDao.selectOne(new QueryWrapper().eq("code", udiwmsOrderRequest.getBillType())); + if (StrUtil.isBlank(thrSystemBusApiEntity.getUrl())) { +// return ResultVOUtils.error(500, "接口未配置,无法提交!"); + } + zaxzyyOrderRequest.setOperUser(getUserName(orderEntity)); + zaxzyyOrderRequest.setBillType(thrSystemBusApiEntity.getThirdBuyCode()); + zaxzyyOrderRequest.setBillFlag("1"); + + //查询单据类型 + BasicBussinessTypeEntity basicBussinessTypeEntity = basicBussinessTypeDao.selectByAction(udiwmsOrderRequest.getBillType()); + if (basicBussinessTypeEntity.getCorpType().equals(Constants.CORP_HOSPTIAL)) { + //医院客户 + zaxzyyOrderRequest.setCorpId(orderEntity.getFromCorp()); + //查询客户名称 + String corpName = basicCorpDao.selectNameByErpId(orderEntity.getFromCorp()); + zaxzyyOrderRequest.setCorpName(corpName); + } else if (basicBussinessTypeEntity.getCorpType().equals(Constants.CORP_INTTERNAL)) { + //内部科室 + BasicCorpEntity basicCorpEntity = null; + if (StrUtil.isNotEmpty(orderEntity.getFromCorp())) { + basicCorpEntity = basicCorpDao.selectByErpId(orderEntity.getFromCorp()); + } + if (basicCorpEntity != null) { + zaxzyyOrderRequest.setCorpId(basicCorpEntity.getThirdId()); + zaxzyyOrderRequest.setCorpName(basicCorpEntity.getName()); + } else { + AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new QueryWrapper().eq("code", udiwmsOrderRequest.getCorpId())); + try { + //根据第三方系统标识,获取对应字段的值 + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper() + .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); + + zaxzyyOrderRequest.setCorpId(thrInvWarehouseEntity.getCode()); + zaxzyyOrderRequest.setCorpName(thrInvWarehouseEntity.getName()); + } catch (Exception e) { + log.error("查询单据对应往来单位的第三方仓库信息异常", e); + } + } + + } else { + //供应商 + BasicCorpEntity basicCorpEntity = null; + if (StrUtil.isNotEmpty(orderEntity.getFromCorp())) { + basicCorpEntity = basicCorpDao.selectByErpId(orderEntity.getFromCorp()); + } + if (basicCorpEntity != null) { + zaxzyyOrderRequest.setCorpId(basicCorpEntity.getThirdId()); + zaxzyyOrderRequest.setCorpName(basicCorpEntity.getName()); + } else { + log.error("查询单据对应的第三方往来单位信息异常"); + } + } + + + //查询仓库信息 + AuthWarehouseEntity warehouseEntity = authWarehouseDao.selectOne(new QueryWrapper().eq("code", orderEntity.getInvCode())); + try { + ThrInvWarehouseEntity thrInvWarehouseEntity = thrInvWarehouseDao.selectOne(new LambdaQueryWrapper() + .eq(ThrInvWarehouseEntity::getCode, authWarehouseService.getThirdInvCode(warehouseEntity)) + .eq(ThrInvWarehouseEntity::getThirdSysFk, thirdSysConfig.getThirdId())); + + zaxzyyOrderRequest.setLocInvCode(thrInvWarehouseEntity.getCode()); + zaxzyyOrderRequest.setLocInvName(thrInvWarehouseEntity.getName()); + + zaxzyyOrderRequest.setLocStorageCode(thrInvWarehouseEntity.getCode()); + zaxzyyOrderRequest.setLocStorageName(thrInvWarehouseEntity.getName()); + } catch (Exception e) { + log.error("查询第三方系统仓库信息异常", e); + } + + //设置单据出入库类型 + if (basicBussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { + zaxzyyOrderRequest.setInoutType(1); //入库 + } else if (basicBussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { + zaxzyyOrderRequest.setInoutType(2); //出库 + } + + //设置备注信息 + zaxzyyOrderRequest.setRemark("udi管理系统提交单据"); + //组装单据明细数据 + List ioCodeEntities = codeDao.selectList(new QueryWrapper() + .eq("orderId", orderEntity.getBillNo()) + .ne("action", "StockCheck") + ); + List items = new ArrayList<>(); + //查询业务单据详情 + List detailBizEntities = orderDetailBizDao.selectList(new QueryWrapper().eq("orderIdFk", orderEntity.getBillNo())); + setOrderDetailList(ioCodeEntities, items, detailBizEntities); + zaxzyyOrderRequest.setItem(items); + if (CollUtil.isEmpty(items)) { + log.error("\"产品信息对照异常,无法上传\""); + return ResultVOUtils.error(500, "产品信息对照异常,无法上传"); + } + + for (UdiwmsOrderDetailRequest i : items) { + String fphm = ""; + String fprq = null; + List invoiceList = IoOrderInvoiceEntity.builder().build() + .selectList(Wrappers.lambdaQuery(IoOrderInvoiceEntity.class).eq(IoOrderInvoiceEntity::getOrderIdFk, orderEntity.getBillNo()) + .eq(IoOrderInvoiceEntity::getBindRlFk, i.getBindRlFk()) + .eq(StrUtil.isNotEmpty(i.getBatchNo()), IoOrderInvoiceEntity::getBatchNo, i.getBatchNo()). + groupBy(IoOrderInvoiceEntity::getInvoiceEncode)); + if (CollectionUtil.isNotEmpty(invoiceList)) { + fphm = invoiceList.stream().map(IoOrderInvoiceEntity::getInvoiceEncode).collect(Collectors.joining(",")); + if (invoiceList.get(0).getInvoiceDate() != null) + fprq = DateUtil.formatDateTime(invoiceList.get(0).getInvoiceDate()); + } + i.setFirstSalesInvNo(fphm); + i.setInvoiceDate(fprq); + } + //构造诏安接口参数 + ZzzyyRequest zaZyRequest = new ZzzyyRequest(); + + //提交到第三方系统 + if (thrSystemBusApiEntity.getUrl().equals("saveMasterialInput")) { + //采购入库单据 + + if (vailHightMaterial(detailBizEntities.get(0))) { + zaZyRequest.setMsgHeader(getMsgHeader("saveMaterialHight")); + } else { + zaZyRequest.setMsgHeader(getMsgHeader("saveMasterialInput")); + } + + String key = "orderSubmitUrl"; + zaZyRequest.setMsgBody(JSONUtil.toJsonStr(zaxzyyOrderRequest)); + } else if (thrSystemBusApiEntity.getUrl().equals("saveMaterialHight")) { +// zaxzyyOrderRequest.setLocStorageCode("1001304"); +// zaxzyyOrderRequest.setLocStorageName("骨科耗材及试剂仓库"); + //临床出库 + zaZyRequest.setMsgHeader(getMsgHeader("saveMaterialHight")); + String key = "preInOrderSubmit"; + + UdiwmsPreInOrderRequest udiwmsPreInOrderRequest = submitPreInOrderToThirdSys(zaxzyyOrderRequest, orderEntity); + zaZyRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsPreInOrderRequest)); + } + + return submitOrder(orderEntity, zaZyRequest); + } + + + /** + * 校验是否高值耗材 + * + * @return + */ + public boolean vailHightMaterial(IoOrderDetailBizEntity orderDetailBizEntity) { + BasicUdirelEntity basicUdirel = basicUdirelDao.selectById(orderDetailBizEntity.getBindRlFk()); + BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(new QueryWrapper().eq("uuid", basicUdirel.getUuid()).last("limit 1")); + if (basicProductsEntity != null && + (StrUtil.trimToEmpty(basicProductsEntity.getBasicPrductRemak7()).equals("1101") + || StrUtil.trimToEmpty(basicProductsEntity.getBasicPrductRemak7()).equals("3601"))) { + return true; + } else + return false; + + } + + + public String getUserName(IoOrderEntity orderEntity) { + String userName = null; + //创建人非供应商 + if (StrUtil.isNotEmpty(orderEntity.getCheckUser())) { + AuthUserEntity authUserEntity = authUserDao.selectById(orderEntity.getCheckUser()); + if (authUserEntity == null) + userName = null; + userName = authUserEntity.getUserName(); + } else if (StrUtil.isNotEmpty(orderEntity.getReviewUser())) { + AuthUserEntity authUserEntity = authUserDao.selectById(orderEntity.getReviewUser()); + userName = authUserEntity.getUserName(); + } else if (StrUtil.isNotEmpty(orderEntity.getCreateUser()) && orderEntity.getCreateUser().length() != 14) { + AuthUserEntity authUserEntity = authUserDao.selectById(orderEntity.getCreateUser()); + userName = authUserEntity.getUserName(); + } else if (StrUtil.isNotEmpty(orderEntity.getUpdateUser()) && orderEntity.getUpdateUser().length() != 14) { + AuthUserEntity authUserEntity = authUserDao.selectById(orderEntity.getUpdateUser()); + userName = authUserEntity.getUserName(); + } + if (userName == null) { + List authWarehouseUsers = authWarehouseUserMapper.selectList(new QueryWrapper().eq("code", orderEntity.getInvCode())); + if (CollUtil.isNotEmpty(authWarehouseUsers)) { + return authWarehouseUsers.get(0).getUserName(); + } + } + return userName; + } + @Override public BaseResponse getInvProducts(UdiwmsInvProductsRequest udiwmsInvProductsRequest) { return null; @@ -380,11 +652,6 @@ public class CtqyyClient extends CommonHttpClient { return null; } - @Override - public BaseResponse submitPreInOrders(UdiwmsPreInOrderRequest udiwmsPreInOrderRequest) { - return null; - } - @Override public BaseResponse postProducts(PostThrProductsRequest postThrProductsRequest) { return null; @@ -406,4 +673,148 @@ public class CtqyyClient extends CommonHttpClient { } + /** + * 封装单据详情参数 + * + * @param ioCodeEntities 单据码明细 + * @param orderDetailRequests 单据详情参数 + * @param detailBizEntities 单据业务详情 + */ + private void setOrderDetailList(List ioCodeEntities, List orderDetailRequests, List detailBizEntities) { + for (IoOrderDetailBizEntity detailBizEntity : detailBizEntities) { + + IoOrderDetailCodeEntity orderDetailCodeEntity = orderDetailCodeDao + .selectOne(new QueryWrapper() + .eq("orderIdFk", detailBizEntity.getOrderIdFk()) + .eq("bindRlFk", detailBizEntity.getBindRlFk()) + .eq(StrUtil.isNotEmpty(detailBizEntity.getBatchNo()), "batchNo", detailBizEntity.getBatchNo()) + .isNull(StrUtil.isEmpty(detailBizEntity.getBatchNo()), "batchNo").last("LIMIT 1")); + if (orderDetailCodeEntity != null && IntUtil.value(orderDetailCodeEntity.getReCount()) > 0) { + detailBizEntity.setCount(orderDetailCodeEntity.getReCount()); + UdiwmsOrderDetailRequest item = submitOrderUtil.buildProductInfo(detailBizEntity); + if (item != null) { + //封装条码信息 + submitOrderUtil.setCodeList(ioCodeEntities, detailBizEntity, item); + orderDetailRequests.add(item); + } + } + } + } + + + /** + * 处理提交单据,记录日志,解析结果逻辑 + * + * @param orderEntity + * @param zaZyRequest + * @return + */ + private BaseResponse submitOrder(IoOrderEntity orderEntity, ZzzyyRequest zaZyRequest) { + //记录日志 + IoOrderUploadLogEntity uploadLog = new IoOrderUploadLogEntity(); + uploadLog.setBillDate(orderEntity.getCreateTime()); + uploadLog.setBillType(orderEntity.getAction()); + uploadLog.setSubmitTime(new Date()); + uploadLog.setBillNo(orderEntity.getBillNo()); + uploadLog.setFromType(Constants.THIRD_ORDER_UPLOAD); + String response = httpClient.postJson(thrSystemDetailService.getUrlExclude(Constants.URL_NAME_ORDER_SUBMIT_URL), zaZyRequest); + response = parserResult(response); + if (StrUtil.isNotBlank(response)) { + try { + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + if (baseResponse.getCode() == 20000) { + String thirdBillNo = String.valueOf(baseResponse.getData()); + orderEntity.setThirdBillNo(thirdBillNo); + orderEntity.setExportStatus(1); //提交成功 + uploadLog.setStatus(2); + uploadLog.setThrBillNo(thirdBillNo); + uploadLog.setResult("提交成功"); + orderDao.updateById(orderEntity); + orderUploadLogDao.insert(uploadLog); + return ResultVOUtils.success("提交成功"); + } + uploadLog.setStatus(3); + uploadLog.setResult("提交失败,错误信息:" + baseResponse.getMessage()); + orderEntity.setExportStatus(2); //上传失败 + orderDao.updateById(orderEntity); + orderUploadLogDao.insert(uploadLog); + return baseResponse; + } catch (Exception e) { + log.error("解析提交到智业单据返回结果异常,结果信息:{}", response); + log.error("异常信息:{}", e); + uploadLog.setStatus(3); + uploadLog.setResult("提交失败,错误信息:" + response); + orderEntity.setExportStatus(2); //上传失败 + orderDao.updateById(orderEntity); + orderUploadLogDao.insert(uploadLog); + return ResultVOUtils.error(500, "提交失败"); + } + } else { + uploadLog.setStatus(3); + uploadLog.setResult("提交失败,调用接口返回为空"); + orderEntity.setExportStatus(2); //上传失败 + orderDao.updateById(orderEntity); + orderUploadLogDao.insert(uploadLog); + return ResultVOUtils.error(500, "提交失败"); + } + } + + + @Override + public BaseResponse submitPreInOrders(UdiwmsPreInOrderRequest udiwmsPreInOrderRequest) { + ZzzyyRequest zaZyRequest = new ZzzyyRequest(); + zaZyRequest.setMsgHeader(getMsgHeader("saveMaterialHight")); + zaZyRequest.setMsgBody(JSONUtil.toJsonStr(udiwmsPreInOrderRequest)); + String response = httpClient.postJson(thrSystemDetailService.getUrlExclude(Constants.URL_NAME_PRE_IN_ORDER_SUBMIT_URL), zaZyRequest); + response = parserResult(response); + try { + BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class); + return baseResponse; + } catch (Exception e) { + log.error("解析漳州中医院智业接口提交单据返回数据异常,返回结果:{}", response); + log.error("异常信息:{}", e); + return ResultVOUtils.error(500, "网络错误,或远程服务器异常无法返回正确结果(" + response + ")"); + } + } + + + /** + * 转换提交单据参数 + * + * @param udiwmsOrderRequest + * @param orderEntity + * @return + */ + public UdiwmsPreInOrderRequest submitPreInOrderToThirdSys(ZaxzyyOrderRequest udiwmsOrderRequest, IoOrderEntity orderEntity) { + UdiwmsPreInOrderRequest udiwmsPreInOrderRequest = new UdiwmsPreInOrderRequest(); + if (udiwmsOrderRequest != null) { + BeanUtils.copyProperties(udiwmsOrderRequest, udiwmsPreInOrderRequest); + udiwmsPreInOrderRequest.setLocInvCode(udiwmsOrderRequest.getLocStorageCode()); + udiwmsPreInOrderRequest.setLocInvName(udiwmsOrderRequest.getLocStorageName()); + if (orderEntity.getReviewUser() != null) { + AuthUserEntity authUser = authUserDao.selectById(orderEntity.getReviewUser()); + udiwmsPreInOrderRequest.setActor(authUser.getEmployeeName()); + } else if (orderEntity.getCreateUser() != null) { + AuthUserEntity authUser = authUserDao.selectById(orderEntity.getCreateUser()); + udiwmsPreInOrderRequest.setActor(authUser.getEmployeeName()); + } + List itemDTOS = new ArrayList<>(); + if (CollUtil.isNotEmpty(udiwmsOrderRequest.getItem())) { + for (UdiwmsOrderDetailRequest udiwmsOrderDetail : udiwmsOrderRequest.getItem()) { + if (CollUtil.isNotEmpty(udiwmsOrderDetail.getCodeList())) { + for (UdiwmsOrderDetailRequest.CodeDetailEntity codeDetaiEntity : udiwmsOrderDetail.getCodeList()) { + UdiwmsPreInOrderRequest.ItemDTO itemDTO = new UdiwmsPreInOrderRequest.ItemDTO(); + BeanUtils.copyProperties(udiwmsOrderDetail, itemDTO); + itemDTO.setCode(codeDetaiEntity.getCode()); + itemDTO.setCount(codeDetaiEntity.getCount()); + itemDTOS.add(itemDTO); + + } + } + } + } + udiwmsPreInOrderRequest.setItems(itemDTOS); + } + return udiwmsPreInOrderRequest; + } } diff --git a/src/main/java/com/glxp/mipsdl/req/base/UdiwmsPreInOrderRequest.java b/src/main/java/com/glxp/mipsdl/req/base/UdiwmsPreInOrderRequest.java index 2a7d15f..45842ea 100644 --- a/src/main/java/com/glxp/mipsdl/req/base/UdiwmsPreInOrderRequest.java +++ b/src/main/java/com/glxp/mipsdl/req/base/UdiwmsPreInOrderRequest.java @@ -2,6 +2,7 @@ package com.glxp.mipsdl.req.base; import lombok.Data; +import java.math.BigDecimal; import java.util.List; @Data @@ -31,7 +32,7 @@ public class UdiwmsPreInOrderRequest { private Integer count; private String measname; private String registerNo; - private Double price; + private BigDecimal price; private String secSalesInvNo; private String invoiceDate; private String secSalesListNo; diff --git a/src/main/java/com/glxp/mipsdl/res/ctqyy/CtBaseResponse.java b/src/main/java/com/glxp/mipsdl/res/ctqyy/CtBaseResponse.java index fbf0337..8efce14 100644 --- a/src/main/java/com/glxp/mipsdl/res/ctqyy/CtBaseResponse.java +++ b/src/main/java/com/glxp/mipsdl/res/ctqyy/CtBaseResponse.java @@ -7,7 +7,9 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @Data public class CtBaseResponse { - + private Integer code; + private String priceNo; + private String message; @JsonProperty("returnCode") private Integer returnCode;