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.basic.SysWorkplaceDocumentService; 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.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; 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; @Resource SysWorkplaceDocumentService sysWorkplaceDocumentService; @PostMapping("/udiwms/basic/collect/origin/order/download") public BaseResponse downloadOrder(@RequestBody CollectOrderRequest collectOrderRequest) { return collectOriginService.downloadOrderV2(collectOrderRequest); } /** * 异常处理 * * @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 sysWorkplaceDocumentResponses = null; List page; WorkBindBusTypeRequest workBindBusTypeRequest = new WorkBindBusTypeRequest(); 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()); } //通过工位列表 获取出 业务列表 workBindBusTypeRequest.setWorkPlaceCodes(workPlaceCodes); sysWorkplaceDocumentResponses = sysWorkplaceDocumentService.filterListByWorkplace(workBindBusTypeRequest); }else { workBindBusTypeRequest.setWorkplaceCode(collectOrderRequest.getWorkPlaceCode()); sysWorkplaceDocumentResponses = sysWorkplaceDocumentService.filterListByWorkplace(workBindBusTypeRequest); collectOrderRequest.setWorkPlaceCode(null); } if (CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)){ Set uniqueDocumentTypeCodesLinkedHashSet = sysWorkplaceDocumentResponses.stream() .map(SysWorkplaceDocumentResponse::getDocumentTypeCode) .collect(Collectors.toCollection(LinkedHashSet::new)); List documentTypeCodes = new ArrayList<>(uniqueDocumentTypeCodesLinkedHashSet); collectOrderRequest.setDocumentTypeCodes(documentTypeCodes); } 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); } }