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.
190 lines
8.7 KiB
Java
190 lines
8.7 KiB
Java
package com.glxp.api.controller.collect;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
import com.glxp.api.controller.BaseController;
|
|
import com.glxp.api.entity.collect.IoCollectOrder;
|
|
import com.glxp.api.entity.collect.IoCollectOrderBackup;
|
|
import com.glxp.api.entity.collect.IoCollectOrderCodeMan;
|
|
import com.glxp.api.req.basic.BasicCollectUserRequest;
|
|
import com.glxp.api.req.collect.CollectOrderBizRequest;
|
|
import com.glxp.api.req.collect.CollectOrderRequest;
|
|
import com.glxp.api.req.collect.CollectOrderUploadCountRequest;
|
|
import com.glxp.api.res.PageSimpleResponse;
|
|
import com.glxp.api.res.basic.UserWorkResponse;
|
|
import com.glxp.api.res.collect.CollectOrderBizResponse;
|
|
import com.glxp.api.res.collect.CollectOrderUploadCountResponse;
|
|
import com.glxp.api.res.collect.IoCollectOrderResponse;
|
|
import com.glxp.api.service.basic.BasicCollectUserService;
|
|
import com.glxp.api.service.collect.IoCollectOrderBackupService;
|
|
import com.glxp.api.service.collect.IoCollectOrderBizBackupService;
|
|
import com.glxp.api.service.collect.IoCollectOrderService;
|
|
import io.swagger.models.auth.In;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import javax.annotation.Resource;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Objects;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* @author : zhu
|
|
* @date : 2024/9/11 10:36
|
|
* @modyified By :
|
|
*/
|
|
@RestController
|
|
public class IoCollectOrderBackupController extends BaseController {
|
|
|
|
@Resource
|
|
private IoCollectOrderBackupService ioCollectOrderBackupService;
|
|
|
|
@Resource
|
|
private BasicCollectUserService basicCollectUserService;
|
|
|
|
@Resource
|
|
private IoCollectOrderBizBackupService ioCollectOrderBizBackupService;
|
|
|
|
@PostMapping("/udiwms/basic/collect/orderFinish/filter")
|
|
public BaseResponse filterOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
|
|
|
|
List<Long> workPlaceCodes = null;
|
|
List<UserWorkResponse> page;
|
|
if (collectOrderRequest.getWorkPlaceCode() == null) {
|
|
Long userId = getUserId();
|
|
BasicCollectUserRequest request = new BasicCollectUserRequest();
|
|
request.setPage(1);
|
|
request.setLimit(100);
|
|
request.setUserId(userId.toString());
|
|
page = basicCollectUserService.filterList(request);
|
|
if (page != null) {
|
|
workPlaceCodes = page.stream()
|
|
.map(UserWorkResponse::getWorkplaceId)
|
|
.collect(Collectors.toList());
|
|
}
|
|
collectOrderRequest.setWorkPlaceCodes(workPlaceCodes);
|
|
}
|
|
List<IoCollectOrderResponse> orderResponses = ioCollectOrderBackupService.filterList(collectOrderRequest);
|
|
PageInfo<IoCollectOrderResponse> pageInfo = new PageInfo<>(orderResponses);
|
|
PageSimpleResponse<IoCollectOrderResponse> pageSimpleResponse = new PageSimpleResponse<>();
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
pageSimpleResponse.setList(orderResponses);
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
}
|
|
|
|
|
|
@GetMapping("/udiwms/basic/collect/orderFinish/detail")
|
|
public BaseResponse allDetail(CollectOrderBizRequest collectOrderBizRequest) {
|
|
if (StrUtil.isBlank(collectOrderBizRequest.getOrderIdFk())) {
|
|
return ResultVOUtils.error(500, "单据号不能为空");
|
|
}
|
|
IoCollectOrderBackup collectOrder = ioCollectOrderBackupService.getByBillNo(collectOrderBizRequest.getOrderIdFk());
|
|
if (collectOrder == null) {
|
|
return ResultVOUtils.error(500, "未找到单据");
|
|
}
|
|
// List<CollectOrderBizResponse> collectOrderBizResponses = ioCollectOrderBackupService.combieOrderDetail(collectOrderBizRequest);
|
|
List<CollectOrderBizResponse> collectOrderBizResponses = ioCollectOrderBackupService.setScanCodeOrderDetail(collectOrderBizRequest);
|
|
for (CollectOrderBizResponse response : collectOrderBizResponses) {
|
|
if (response.getGgxh() == null) {
|
|
response.setGgxh(response.getSpec());
|
|
}
|
|
}
|
|
|
|
List<CollectOrderBizResponse> collectOrderBizResponses1 = collectOrderBizResponses.stream().skip((collectOrderBizRequest.getPage()-1)*collectOrderBizRequest.getLimit()).limit(collectOrderBizRequest.getLimit()).
|
|
collect(Collectors.toList());
|
|
|
|
PageInfo<CollectOrderBizResponse> pageInfo = new PageInfo<>(collectOrderBizResponses);
|
|
PageSimpleResponse<CollectOrderBizResponse> pageSimpleResponse = new PageSimpleResponse<>();
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
pageSimpleResponse.setList(collectOrderBizResponses1);
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
}
|
|
|
|
|
|
/**
|
|
* 已完成单据上传
|
|
*
|
|
* @param collectOrderRequest
|
|
* @return
|
|
*/
|
|
@PostMapping("/udiwms/basic/collect/order/upload")
|
|
public BaseResponse orderUpload(@RequestBody CollectOrderRequest collectOrderRequest) {
|
|
if (StrUtil.isEmpty(collectOrderRequest.getBillNo()))
|
|
return ResultVOUtils.error(500, "单据号不能为空");
|
|
Boolean aBoolean = ioCollectOrderBackupService.orderUpload(collectOrderRequest.getBillNo(), getUser());
|
|
if (!aBoolean) {
|
|
return ResultVOUtils.error("上传失败");
|
|
}
|
|
return ResultVOUtils.success();
|
|
}
|
|
|
|
|
|
/**
|
|
* 通过业务外键获取码明细
|
|
*
|
|
* @param collectOrderBizRequest
|
|
* @return
|
|
*/
|
|
@GetMapping("/udiwms/basic/collect/orderFinish/codeDetail")
|
|
public BaseResponse codeDetail(CollectOrderBizRequest collectOrderBizRequest) {
|
|
if (collectOrderBizRequest.getId() == null) {
|
|
return ResultVOUtils.error(500, "业务外键不能为空");
|
|
}
|
|
List<IoCollectOrderCodeMan> list = ioCollectOrderBackupService.codeDetail(collectOrderBizRequest.getId());
|
|
return ResultVOUtils.success(list);
|
|
}
|
|
|
|
/**
|
|
* 获取单据上传医保统计信息
|
|
*
|
|
* @param collectOrderUploadCountRequest
|
|
* @return
|
|
*/
|
|
@PostMapping("/udiwms/basic/collect/orderFinish/uploadCount")
|
|
public BaseResponse uploadCount(@RequestBody CollectOrderUploadCountRequest collectOrderUploadCountRequest) {
|
|
CollectOrderUploadCountResponse collectOrderUploadCountResponse = new CollectOrderUploadCountResponse();
|
|
if (collectOrderUploadCountRequest.getStartTime() != null
|
|
&& collectOrderUploadCountRequest.getEndTime() != null) {
|
|
collectOrderUploadCountRequest.setStartTime(collectOrderUploadCountRequest.getStartTime() + " 00:00:00");
|
|
collectOrderUploadCountRequest.setEndTime(collectOrderUploadCountRequest.getEndTime() + " 23:59:59");
|
|
|
|
}
|
|
List<Map<String, Object>> list = ioCollectOrderBackupService.listMaps(new QueryWrapper<IoCollectOrderBackup>()
|
|
.groupBy("uploadStatus")
|
|
.between(collectOrderUploadCountRequest.getStartTime() != null
|
|
&& collectOrderUploadCountRequest.getEndTime() != null
|
|
, "updateTime", collectOrderUploadCountRequest.getStartTime(), collectOrderUploadCountRequest.getEndTime())
|
|
.select("uploadStatus", "count(1) as count")
|
|
);
|
|
Long notUploadingCount = 0L;
|
|
Long alreadyUploadingCount = 0L;
|
|
Long uploadingFailCount = 0L;
|
|
if (list != null && list.size() > 0) {
|
|
for (Map<String, Object> stringObjectMap : list) {
|
|
if (1 == (Integer) stringObjectMap.get("uploadStatus")) {
|
|
notUploadingCount += (Long) stringObjectMap.get("count");
|
|
} else if (2 == (Integer) stringObjectMap.get("uploadStatus")) {
|
|
alreadyUploadingCount += (Long) stringObjectMap.get("count");
|
|
} else if (3 == (Integer) stringObjectMap.get("uploadStatus")) {
|
|
uploadingFailCount += (Long) stringObjectMap.get("count");
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
collectOrderUploadCountResponse.setNotUploadingCount(notUploadingCount);
|
|
collectOrderUploadCountResponse.setAlreadyUploadingCount(alreadyUploadingCount);
|
|
collectOrderUploadCountResponse.setUploadingFailCount(uploadingFailCount);
|
|
// 总上传码数量 获取采购上传率 销售上传率 计算
|
|
ioCollectOrderBizBackupService.CalculatedUploadRate(collectOrderUploadCountRequest, collectOrderUploadCountResponse);
|
|
return ResultVOUtils.success(collectOrderUploadCountResponse);
|
|
}
|
|
|
|
}
|