fix: 下载设备的收益明细功能

lh_dev_fifo
chenhc 7 months ago
parent a5391dd586
commit 89b0157172

@ -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<PageSimpleResponse<DeviceBusinessProject>> deviceBusinessProject = erpBasicClient.getDeviceBusinessProject(query);
return deviceBusinessProject;
}
/**
*
*/
@AuthRuleAnnotation("")
@PostMapping("/udi/device/businessProject/downloadDeviceBusinessProject")
public BaseResponse downloadDeviceBusinessProject(@RequestBody DeviceBusinessProjectRequest query) {
deviceBusinessProjectService.downloadDeviceBusinessProject(query);
return ResultVOUtils.success();
}
}

@ -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<PageSimpleResponse<DeviceBusinessProject>> getDeviceBusinessProject(DeviceBusinessProjectRequest deviceBusinessProjectRequest) {
ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(deviceBusinessProjectRequest.getThirdSys());
String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getDeviceBusinessProject";
try {
String response = httpOkClient.uCloudPost(url, deviceBusinessProjectRequest);
BaseResponse<PageSimpleResponse<DeviceBusinessProject>> listBaseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<DeviceBusinessProject>>>() {
});
return listBaseResponse;
} catch (Exception e) {
log.error("获取设备的收费项目收益明细", e);
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
}
}
}

@ -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<DeviceBusinessProjectVo> list;
private List<DeviceBusinessProject> downloadList;
private String thirdSys;
}

@ -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<DeviceBusinessProjectMapper, DeviceBusinessProject> {
@ -83,4 +99,57 @@ public class DeviceBusinessProjectService extends ServiceImpl<DeviceBusinessProj
return list;
}
@Resource
ErpBasicClient erpBasicClient;
@Transactional(rollbackFor = Exception.class)
public void downloadDeviceBusinessProject(DeviceBusinessProjectRequest query) {
//删除原本的日期区间的内容 更新下载
this.remove(new LambdaQueryWrapper<DeviceBusinessProject>()
.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<DeviceBusinessProject> addList = new ArrayList<>();
while (true) {
query.setPage(page);
BaseResponse<PageSimpleResponse<DeviceBusinessProject>> baseResponse = erpBasicClient.getDeviceBusinessProject(query);
if (baseResponse.getCode() == 20000) {
List<DeviceBusinessProject> 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);
}
}
}

Loading…
Cancel
Save