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/controller/collect/IoCollectOrderBackupControl...

249 lines
12 KiB
Java

package com.glxp.api.controller.collect;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController;
import com.glxp.api.dao.collect.IoCollectOrderBackupMapper;
import com.glxp.api.entity.collect.IoCollectOrderBackup;
import com.glxp.api.entity.collect.IoCollectOrderBizBackup;
9 months ago
import com.glxp.api.entity.collect.IoCollectOrderCodeMan;
import com.glxp.api.http.ErpBasicClient;
import com.glxp.api.req.basic.BasicCollectUserRequest;
import com.glxp.api.req.collect.*;
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.IoCollectCodeResponse;
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 lombok.extern.slf4j.Slf4j;
import org.aspectj.weaver.ast.Var;
import org.springframework.validation.BindingResult;
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.stream.Collectors;
/**
* @author : zhu
* @date : 2024/9/11 10:36
* @modyified By :
*/
@RestController
@Slf4j
public class IoCollectOrderBackupController extends BaseController {
@Resource
private IoCollectOrderBackupService ioCollectOrderBackupService;
@Resource
private BasicCollectUserService basicCollectUserService;
@Resource
private IoCollectOrderBizBackupService ioCollectOrderBizBackupService;
9 months ago
@PostMapping("/udiwms/basic/collect/orderFinish/filter")
public BaseResponse filterOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
List<Long> workPlaceCodes = null;
List<UserWorkResponse> page;
4 months ago
// 上传医保不做登录权限限制
// 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);
// }
log.error("collectOrderRequest"+collectOrderRequest);
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.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);
}
/**
*
10 months ago
*
* @param collectOrderRequest
* @return
*/
@PostMapping("/udiwms/basic/collect/order/upload")
public BaseResponse orderUpload(@RequestBody CollectOrderRequest collectOrderRequest) {
if (StrUtil.isEmpty(collectOrderRequest.getBillNo()))
return ResultVOUtils.error(500, "单据号不能为空");
9 months ago
Boolean aBoolean = ioCollectOrderBackupService.orderUpload(collectOrderRequest.getBillNo(), getUser());
if (!aBoolean) {
return ResultVOUtils.error("上传失败");
}
return ResultVOUtils.success();
}
@Resource
private ErpBasicClient erpBasicClient;
/**
*
*
* @param collectOrderRequest
* @return
*/
@Resource
private IoCollectOrderBackupMapper ioCollectOrderBackupMapper;
@PostMapping("/udiwms/basic/collect/order/orderMedicalDelete")
public BaseResponse orderMedicalDelete(@RequestBody CollectOrderRequest collectOrderRequest) {
PostOrderMedicalDeleteRequest postOrderMedicalDeleteRequest = new PostOrderMedicalDeleteRequest();
postOrderMedicalDeleteRequest.setThirdSys("thirdId");
postOrderMedicalDeleteRequest.setBillNo(collectOrderRequest.getBillNo());
postOrderMedicalDeleteRequest.setBusType(collectOrderRequest.getBusType());
BaseResponse baseResponse = erpBasicClient.orderMedicalDelete(postOrderMedicalDeleteRequest);
if (baseResponse.getCode() == 20000) {
IoCollectOrderBackup ioCollectOrderBackup = new IoCollectOrderBackup();
ioCollectOrderBackup.setUploadStatus(4);
ioCollectOrderBackupMapper.update(
ioCollectOrderBackup,new QueryWrapper<IoCollectOrderBackup>().eq("billNo",collectOrderRequest.getBillNo())
);
}
return baseResponse;
}
9 months ago
/**
*
9 months ago
*
9 months ago
* @param collectOrderBizRequest
* @return
*/
@GetMapping("/udiwms/basic/collect/orderFinish/codeDetail")
public BaseResponse codeDetail(CollectOrderBizRequest collectOrderBizRequest) {
if (collectOrderBizRequest.getId() == null) {
return ResultVOUtils.error(500, "业务外键不能为空");
}
7 months ago
List<IoCollectOrderCodeMan> list = ioCollectOrderBackupService.codeDetail(collectOrderBizRequest.getId());
9 months ago
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);
// 总上传码数量 获取采购上传率 销售上传率 计算
ioCollectOrderBackupService.calculatedUploadRate(collectOrderUploadCountRequest, collectOrderUploadCountResponse);
return ResultVOUtils.success(collectOrderUploadCountResponse);
}
9 months ago
@GetMapping("/udiwms/basic/collect/ioCollectCodeBackup/getOrderDetails")
public BaseResponse getOrderDetails(CollectOrderRequest collectOrderRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest();
collectOrderBizRequest.setOrderIdFk(collectOrderRequest.getBillNo());
List<CollectOrderBizResponse> collectOrderBizResponses = ioCollectOrderBizBackupService.filterList(collectOrderBizRequest);
PageInfo<CollectOrderBizResponse> pageInfo = new PageInfo<>(collectOrderBizResponses);
PageSimpleResponse<CollectOrderBizResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(collectOrderBizResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
@PostMapping("/udiwms/basic/collect/orderFinish/orderStats")
public BaseResponse orderStats(@RequestBody CollectOrderRequest collectOrderRequest) {
List<Long> workPlaceCodes = null;
List<UserWorkResponse> page;
// 上传医保不做登录权限限制
log.error("collectOrderRequest"+collectOrderRequest);
Page<IoCollectOrderResponse> orderResponses = ioCollectOrderBackupService.filterorderStatsList(collectOrderRequest);
return ResultVOUtils.success(orderResponses);
}
}