package com.glxp.api.service.basic; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.dao.basic.BasicSkProjectMapper; import com.glxp.api.entity.basic.BasicSkPrescribeEntity; import com.glxp.api.http.ErpBasicClient; import com.glxp.api.req.basic.BasicSkProjectRequest; import com.glxp.api.req.basic.BasicSkSickerRequest; import com.glxp.api.req.basic.GetSickRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.BasicSkProjectResponse; import com.glxp.api.res.basic.BasicSkSickerResponse; import com.glxp.api.util.RedisUtil; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.glxp.api.entity.basic.BasicSkSickerEntity; import com.glxp.api.dao.basic.BasicSkSickerMapper; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Collections; import java.util.List; @Service public class BasicSkSickerService extends ServiceImpl { @Resource BasicSkSickerMapper basicSkSickerMapper; @Resource ErpBasicClient erpBasicClient; @Resource RedisUtil redisUtil; public List filterList(BasicSkSickerRequest basicSkSickerRequest) { if (basicSkSickerRequest == null) { return Collections.emptyList(); } if (basicSkSickerRequest.getPage() != null) { int offset = (basicSkSickerRequest.getPage() - 1) * basicSkSickerRequest.getLimit(); PageHelper.offsetPage(offset, basicSkSickerRequest.getLimit()); } List data = basicSkSickerMapper.filterList(basicSkSickerRequest); return data; } public List filterNoList(BasicSkSickerRequest basicSkSickerRequest) { if (basicSkSickerRequest == null) { return Collections.emptyList(); } List data = basicSkSickerMapper.filterNoList(basicSkSickerRequest); return data; } public List findBySickCode(String sickCode) { return basicSkSickerMapper.selectList(new QueryWrapper().eq("code", sickCode)); } public BasicSkSickerEntity findByAdNum(String adNum) { return basicSkSickerMapper.selectOne(new QueryWrapper().eq("adNum", adNum).last("limit 1")); } public BaseResponse downloadSicker(GetSickRequest request, Integer startPage) { int page = (int) redisUtil.get("thr_sicker_page"); if (startPage != null) page = 1; int limit = 50; request.setThirdSys("thirdId"); request.setLimit(limit); while (true) { request.setPage(page); BaseResponse> baseResponse = erpBasicClient.getSicker(request); if (baseResponse.getCode() == 20000) { List list = baseResponse.getData().getList(); List basicSkSickerEntities = new ArrayList<>(); list.forEach(item -> { BasicSkSickerEntity basicSkSickerEntity = new BasicSkSickerEntity(); BeanUtil.copyProperties(item, basicSkSickerEntity); //todo 数据转换 basicSkSickerEntities.add(basicSkSickerEntity); }); if (list.size() >= limit && !baseResponse.getData().getTotal().equals(-666)) { basicSkSickerMapper.replaceBatchs(basicSkSickerEntities); page++; redisUtil.set("thr_sicker_page", page); } else { break; } } else { return ResultVOUtils.error(500, "下载异常中断"); } } return ResultVOUtils.success("下载成功!"); } }