You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/java/com/glxp/api/service/basic/BasicSkSickerService.java

105 lines
4.0 KiB
Java

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<BasicSkSickerMapper, BasicSkSickerEntity> {
@Resource
BasicSkSickerMapper basicSkSickerMapper;
@Resource
ErpBasicClient erpBasicClient;
@Resource
RedisUtil redisUtil;
public List<BasicSkSickerResponse> 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<BasicSkSickerResponse> data = basicSkSickerMapper.filterList(basicSkSickerRequest);
return data;
}
public List<BasicSkSickerResponse> filterNoList(BasicSkSickerRequest basicSkSickerRequest) {
if (basicSkSickerRequest == null) {
return Collections.emptyList();
}
List<BasicSkSickerResponse> data = basicSkSickerMapper.filterNoList(basicSkSickerRequest);
return data;
}
public List<BasicSkSickerEntity> findBySickCode(String sickCode) {
return basicSkSickerMapper.selectList(new QueryWrapper<BasicSkSickerEntity>().eq("code", sickCode));
}
public BasicSkSickerEntity findByAdNum(String adNum) {
return basicSkSickerMapper.selectOne(new QueryWrapper<BasicSkSickerEntity>().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<PageSimpleResponse<BasicSkSickerResponse>> baseResponse = erpBasicClient.getSicker(request);
if (baseResponse.getCode() == 20000) {
List<BasicSkSickerResponse> list = baseResponse.getData().getList();
List<BasicSkSickerEntity> 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("下载成功!");
}
}