package com.glxp.api.controller.collect; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; 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.dao.basic.SysWorkplaceDocumentDao; import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrderOrigin; import com.glxp.api.req.basic.BasicCollectUserRequest; import com.glxp.api.req.basic.WorkBindBusTypeRequest; import com.glxp.api.req.collect.CollectOrderBizRequest; import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.SysWorkplaceDocumentResponse; import com.glxp.api.res.basic.UserWorkResponse; import com.glxp.api.res.collect.CollectOrderBizResponse; import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.service.basic.BasicCollectUserService; import com.glxp.api.service.collect.DownloadFactory; import com.glxp.api.service.collect.IoCollectOrderBizOriginService; import com.glxp.api.service.collect.IoCollectOrderOriginService; import com.glxp.api.service.collect.IoCollectOriginService; 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.stream.Collectors; /** * 原始单据下载 */ @RestController public class IoCollectOriginController extends BaseController { @Resource private BasicCollectUserService basicCollectUserService; @Resource private IoCollectOrderOriginService collectOrderOriginService; @Resource IoCollectOriginService collectOriginService; @Resource IoCollectOrderBizOriginService collectOrderBizOriginService; @Resource SysWorkplaceDocumentDao sysWorkplaceDocumentDao; @PostMapping("/udiwms/basic/collect/origin/order/download") public BaseResponse downloadOrder(@RequestBody CollectOrderRequest collectOrderRequest) { Long workPlaceCode = collectOrderRequest.getWorkPlaceCode(); if (workPlaceCode == null) { WorkBindBusTypeRequest workBindBusTypeRequest = new WorkBindBusTypeRequest(); List sysWorkplaceDocumentResponses = sysWorkplaceDocumentDao.filterList(workBindBusTypeRequest); if (CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)) { for (SysWorkplaceDocumentResponse sysWorkplaceDocumentResponse : sysWorkplaceDocumentResponses) { Long workplaceCode = sysWorkplaceDocumentResponse.getWorkplaceCode(); String documentTypeCode = sysWorkplaceDocumentResponse.getDocumentTypeCode(); collectOrderRequest.setBusType(documentTypeCode); collectOrderRequest.setWorkPlaceCode(workplaceCode); collectOriginService.downloadOrderV2(collectOrderRequest); } } }else { return collectOriginService.downloadOrderV2(collectOrderRequest); } return ResultVOUtils.success("下载成功"); } /** * 异常处理 * * @param collectOrderRequest * @return */ @PostMapping("/udiwms/basic/collect/origin/order/errorHandle") public BaseResponse errorHandle(@RequestBody CollectOrderRequest collectOrderRequest) { collectOriginService.errorHandle(collectOrderRequest); return ResultVOUtils.success(); } @GetMapping("/udiwms/basic/collect/origin/order/filter") public BaseResponse filterOrder(CollectOrderRequest collectOrderRequest) { List workPlaceCodes = null; List 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 orderResponses = collectOrderOriginService.filterList(collectOrderRequest); PageInfo pageInfo = new PageInfo<>(orderResponses); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(orderResponses); return ResultVOUtils.success(pageSimpleResponse); } @GetMapping("/udiwms/basic/collect/origin/order/detail") public BaseResponse detail(CollectOrderBizRequest collectOrderBizRequest) { if (StrUtil.isBlank(collectOrderBizRequest.getOrderIdFk())) { return ResultVOUtils.error(500, "单据号不能为空"); } IoCollectOrderOrigin collectOrder = collectOrderOriginService.getByBillNo(collectOrderBizRequest.getOrderIdFk()); if (collectOrder == null) { return ResultVOUtils.error(500, "未找到单据"); } List list = collectOrderBizOriginService.filterList(collectOrderBizRequest); PageInfo pageInfo = new PageInfo<>(list); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(list); return ResultVOUtils.success(pageSimpleResponse); } }