From 89b01571726db2a316591945d5ef529797f3d2bb Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Fri, 6 Dec 2024 14:38:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=8B=E8=BD=BD=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=9A=84=E6=94=B6=E7=9B=8A=E6=98=8E=E7=BB=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dev/DeviceBusinessProjectController.java | 25 +++++++ .../com/glxp/api/http/ErpBasicClient.java | 21 ++++++ .../req/dev/DeviceBusinessProjectRequest.java | 3 + .../thrsys/DeviceBusinessProjectService.java | 69 +++++++++++++++++++ 4 files changed, 118 insertions(+) diff --git a/src/main/java/com/glxp/api/controller/dev/DeviceBusinessProjectController.java b/src/main/java/com/glxp/api/controller/dev/DeviceBusinessProjectController.java index dbd0ddad5..25b7f1530 100644 --- a/src/main/java/com/glxp/api/controller/dev/DeviceBusinessProjectController.java +++ b/src/main/java/com/glxp/api/controller/dev/DeviceBusinessProjectController.java @@ -21,6 +21,7 @@ import com.glxp.api.entity.auth.WarehouseUserEntity; import com.glxp.api.entity.dev.DeviceBusinessProject; import com.glxp.api.entity.dev.DeviceBusinessProjectDevice; import com.glxp.api.entity.dev.DeviceInfoEntity; +import com.glxp.api.http.ErpBasicClient; import com.glxp.api.req.dev.DeviceBusinessProjectRequest; import com.glxp.api.req.dev.DeviceCheckQuery; import com.glxp.api.res.PageSimpleResponse; @@ -55,6 +56,8 @@ public class DeviceBusinessProjectController extends BaseController { DeviceBusinessProjectService deviceBusinessProjectService; @Resource DeviceBusinessProjectDeviceService deviceBusinessProjectDeviceService; + @Resource + ErpBasicClient erpBasicClient; /** @@ -192,4 +195,26 @@ public class DeviceBusinessProjectController extends BaseController { } + /** + * 获取设备的收费项目收益明细 + */ + @AuthRuleAnnotation("") + @PostMapping("/udi/device/businessProject/getDeviceBusinessProject") + public BaseResponse getDeviceBusinessProject(@RequestBody DeviceBusinessProjectRequest query) { + BaseResponse> deviceBusinessProject = erpBasicClient.getDeviceBusinessProject(query); + return deviceBusinessProject; + } + + + /** + * 日期查询结果下载 + */ + @AuthRuleAnnotation("") + @PostMapping("/udi/device/businessProject/downloadDeviceBusinessProject") + public BaseResponse downloadDeviceBusinessProject(@RequestBody DeviceBusinessProjectRequest query) { + deviceBusinessProjectService.downloadDeviceBusinessProject(query); + return ResultVOUtils.success(); + } + + } diff --git a/src/main/java/com/glxp/api/http/ErpBasicClient.java b/src/main/java/com/glxp/api/http/ErpBasicClient.java index 159944888..4c8dd21e4 100644 --- a/src/main/java/com/glxp/api/http/ErpBasicClient.java +++ b/src/main/java/com/glxp/api/http/ErpBasicClient.java @@ -10,6 +10,7 @@ import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.entity.basic.BasicSkProjectDetailEntity; import com.glxp.api.entity.basic.BasicSkProjectEntity; import com.glxp.api.entity.basic.BasicSkSickerEntity; +import com.glxp.api.entity.dev.DeviceBusinessProject; import com.glxp.api.entity.thrsys.ThrManufacturerEntity; import com.glxp.api.entity.thrsys.ThrSystemBusApiEntity; import com.glxp.api.entity.thrsys.ThrSystemEntity; @@ -19,6 +20,7 @@ import com.glxp.api.req.basic.DlThirdDestinyRequest; import com.glxp.api.req.basic.GetSickPrescribeRequest; import com.glxp.api.req.basic.GetSickRequest; import com.glxp.api.req.basic.YbHcflDetailFilterRequest; +import com.glxp.api.req.dev.DeviceBusinessProjectRequest; import com.glxp.api.req.thrsys.*; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.BasicSkPrescribeResponse; @@ -35,6 +37,7 @@ import okhttp3.*; import org.apache.commons.lang3.exception.ExceptionUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.PostMapping; import javax.annotation.Resource; import java.util.List; @@ -337,4 +340,22 @@ public class ErpBasicClient { return ResultVOUtils.error(500, "连接第三方系统接口服务出错"); } } + + /** + * 获取设备的收费项目收益明细 + */ + public BaseResponse> getDeviceBusinessProject(DeviceBusinessProjectRequest deviceBusinessProjectRequest) { + ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(deviceBusinessProjectRequest.getThirdSys()); + String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getDeviceBusinessProject"; + try { + String response = httpOkClient.uCloudPost(url, deviceBusinessProjectRequest); + BaseResponse> listBaseResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + return listBaseResponse; + } catch (Exception e) { + log.error("获取设备的收费项目收益明细", e); + return ResultVOUtils.error(500, "连接第三方系统接口服务出错"); + } + } } diff --git a/src/main/java/com/glxp/api/req/dev/DeviceBusinessProjectRequest.java b/src/main/java/com/glxp/api/req/dev/DeviceBusinessProjectRequest.java index 06b3ecfc4..f98fa60d5 100644 --- a/src/main/java/com/glxp/api/req/dev/DeviceBusinessProjectRequest.java +++ b/src/main/java/com/glxp/api/req/dev/DeviceBusinessProjectRequest.java @@ -3,6 +3,7 @@ package com.glxp.api.req.dev; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.glxp.api.entity.dev.DeviceBusinessProject; import com.glxp.api.res.dev.DeviceBusinessProjectVo; import com.glxp.api.util.page.ListPageRequest; import io.swagger.annotations.ApiModelProperty; @@ -100,4 +101,6 @@ public class DeviceBusinessProjectRequest extends ListPageRequest { private String endChargTime; private String key; private List list; + private List downloadList; + private String thirdSys; } diff --git a/src/main/java/com/glxp/api/service/thrsys/DeviceBusinessProjectService.java b/src/main/java/com/glxp/api/service/thrsys/DeviceBusinessProjectService.java index 47cf42717..969687060 100644 --- a/src/main/java/com/glxp/api/service/thrsys/DeviceBusinessProjectService.java +++ b/src/main/java/com/glxp/api/service/thrsys/DeviceBusinessProjectService.java @@ -1,10 +1,22 @@ package com.glxp.api.service.thrsys; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.github.pagehelper.PageHelper; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.dao.dev.DeviceBusinessProjectDeviceMapper; +import com.glxp.api.entity.basic.BasicSkProjectEntity; import com.glxp.api.entity.dev.DeviceBusinessProjectDevice; +import com.glxp.api.exception.JsonException; +import com.glxp.api.http.ErpBasicClient; import com.glxp.api.req.dev.DeviceBusinessProjectRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.basic.BasicSkProjectResponse; import com.glxp.api.res.dev.DeviceBusinessProjectVo; import com.glxp.api.vo.dev.DeviceCheckVo; import com.glxp.api.vo.dev.DeviceInfoVo; @@ -13,10 +25,14 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.MathContext; import java.math.RoundingMode; +import java.util.ArrayList; +import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.dao.dev.DeviceBusinessProjectMapper; import com.glxp.api.entity.dev.DeviceBusinessProject; +import org.springframework.transaction.annotation.Transactional; + @Service public class DeviceBusinessProjectService extends ServiceImpl { @@ -83,4 +99,57 @@ public class DeviceBusinessProjectService extends ServiceImpl() + .ge(StrUtil.isNotEmpty(query.getStartChargTime()),DeviceBusinessProject::getChargTime,query.getStartChargTime()) + .le(StrUtil.isNotEmpty(query.getEndChargTime()),DeviceBusinessProject::getChargTime,query.getEndChargTime()) + ); + + int page = 1; + int limit = 500; + query.setThirdSys("thirdId"); + query.setLimit(limit); + List addList = new ArrayList<>(); + while (true) { + query.setPage(page); + BaseResponse> baseResponse = erpBasicClient.getDeviceBusinessProject(query); + if (baseResponse.getCode() == 20000) { + List list = baseResponse.getData().getList(); + if (CollUtil.isNotEmpty(list)) { + list.forEach(item -> { + item.setId(null); + item.setCreateTime(new Date()); + item.setUpdateTime(new Date()); + // TODO: 2024/12/6 物资系统的部门编码转化 自身系统的编码和名称 + + + addList.add(item); + }); + } + if (list.size() >= limit && !baseResponse.getData().getTotal().equals(-666)) { + page++; + } else { + break; + } + } else { + throw new JsonException("下载异常中断"); + } + + if (addList.size() >= 500){ + this.saveBatch(addList); + } + } + + if (CollUtil.isNotEmpty(addList)){ + this.saveBatch(addList); + } + + } }