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.constant.BusTypeConstant; 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.http.ErpBasicClient; import com.glxp.api.req.basic.BasicCollectUserRequest; import com.glxp.api.req.basic.GetSickPrescribeRequest; 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.req.inout.FilterOrderRequest; import com.glxp.api.req.thrsys.FilterThrOrderRequest; 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.*; import com.glxp.api.util.IntUtil; 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; @Resource private ErpBasicClient erpBasicClient; @Resource private IoCollectOrderService ioCollectOrderService; @PostMapping("/udiwms/basic/collect/origin/order/download") public BaseResponse downloadOrder(@RequestBody CollectOrderRequest collectOrderRequest) { return collectOriginService.downloadOrderV2(collectOrderRequest); } @PostMapping("/udiwms/basic/collect/origin/order/getThrOrderPage") public BaseResponse getThrOrders(@RequestBody CollectOrderRequest collectOrderRequest) { String busType = collectOrderRequest.getBusType(); if (StrUtil.isBlank(busType)) return ResultVOUtils.error("请选择业务名称"); if (busType.equals(BusTypeConstant.YPCF002.getBusType())) { GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest(); getSickPrescribeRequest.setLimit(collectOrderRequest.getLimit()); getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo()); getSickPrescribeRequest.setThirdSys("thirdId"); getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType()); getSickPrescribeRequest.setStartTime(collectOrderRequest.getStartTime()); getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime()); getSickPrescribeRequest.setKey(collectOrderRequest.getKeyWords()); getSickPrescribeRequest.setPage(collectOrderRequest.getPage()); getSickPrescribeRequest.setFromCorpName(collectOrderRequest.getFromCorpName()); getSickPrescribeRequest.setShipperName(collectOrderRequest.getShipperName()); getSickPrescribeRequest.setBusType(collectOrderRequest.getBusType()); BaseResponse> baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest); return baseResponse; }else if (busType.equals(BusTypeConstant.QXCF001.getBusType())) { GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest(); getSickPrescribeRequest.setLimit(collectOrderRequest.getLimit()); getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo()); getSickPrescribeRequest.setThirdSys("thirdId"); getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType()); getSickPrescribeRequest.setStartTime(collectOrderRequest.getStartTime()); getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime()); getSickPrescribeRequest.setKey(collectOrderRequest.getKeyWords()); getSickPrescribeRequest.setPage(collectOrderRequest.getPage()); getSickPrescribeRequest.setFromCorpName(collectOrderRequest.getFromCorpName()); getSickPrescribeRequest.setShipperName(collectOrderRequest.getShipperName()); getSickPrescribeRequest.setBusType(collectOrderRequest.getBusType()); BaseResponse> baseResponse = erpBasicClient.getPrescribeQx(getSickPrescribeRequest); return baseResponse; }else if (busType.contains("SC")) { FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); filterOrderRequest.setStatus(7); filterOrderRequest.setAction(busType); filterOrderRequest.setProductType(null); filterOrderRequest.setLimit(collectOrderRequest.getLimit()); filterOrderRequest.setPage(collectOrderRequest.getPage()); filterOrderRequest.setStartTime(collectOrderRequest.getStartTime()); filterOrderRequest.setEndTime(collectOrderRequest.getEndTime()); filterOrderRequest.setBillNo(collectOrderRequest.getBillNo()); filterOrderRequest.setFromCorp(collectOrderRequest.getFromCorpName()); filterOrderRequest.setAction(collectOrderRequest.getBusType()); filterOrderRequest.setKeyWords(collectOrderRequest.getKeyWords()); BaseResponse> baseResponse = ioCollectOrderService.selectImportUdi(filterOrderRequest); return baseResponse; }else { FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest(); filterThrOrderRequest.setLimit(collectOrderRequest.getLimit()); filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo()); filterThrOrderRequest.setThirdSys("thirdId"); filterThrOrderRequest.setBusType(collectOrderRequest.getBusType()); filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode()); filterThrOrderRequest.setFromType(collectOrderRequest.getFromType()); filterThrOrderRequest.setStartTime(collectOrderRequest.getStartTime()); filterThrOrderRequest.setEndTime(collectOrderRequest.getEndTime()); filterThrOrderRequest.setPage(collectOrderRequest.getPage()); filterThrOrderRequest.setKeyWords(collectOrderRequest.getKeyWords()); filterThrOrderRequest.setFromCorpName(collectOrderRequest.getFromCorpName()); filterThrOrderRequest.setShipperName(collectOrderRequest.getShipperName()); BaseResponse> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest); return baseResponse; } } /** * 异常处理 * * @param collectOrderRequest * @return */ @PostMapping("/udiwms/basic/collect/origin/order/errorHandle") public BaseResponse errorHandle(@RequestBody CollectOrderRequest collectOrderRequest) { return collectOriginService.errorHandle(collectOrderRequest); } /** * 异常处理-提交 * * @param collectOrderRequest * @return */ @PostMapping("/udiwms/basic/collect/origin/order/errorHandleSubmit") public BaseResponse errorHandleSubmit(@RequestBody CollectOrderRequest collectOrderRequest) { return collectOriginService.errorHandleSubmit(collectOrderRequest); } @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); } }