|
|
|
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.http.ErpBasicClient;
|
|
|
|
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.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.DownloadFactory;
|
|
|
|
import com.glxp.api.service.collect.IoCollectOrderBizOriginService;
|
|
|
|
import com.glxp.api.service.collect.IoCollectOrderOriginService;
|
|
|
|
import com.glxp.api.service.collect.IoCollectOriginService;
|
|
|
|
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;
|
|
|
|
|
|
|
|
@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) {
|
|
|
|
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());
|
|
|
|
BaseResponse<PageSimpleResponse<IoCollectOrder>> 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<Long> workPlaceCodes = null;
|
|
|
|
List<SysWorkplaceDocumentResponse> sysWorkplaceDocumentResponses = null;
|
|
|
|
List<UserWorkResponse> 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<String> uniqueDocumentTypeCodesLinkedHashSet = sysWorkplaceDocumentResponses.stream()
|
|
|
|
.map(SysWorkplaceDocumentResponse::getDocumentTypeCode)
|
|
|
|
.collect(Collectors.toCollection(LinkedHashSet::new));
|
|
|
|
List<String> documentTypeCodes = new ArrayList<>(uniqueDocumentTypeCodesLinkedHashSet);
|
|
|
|
|
|
|
|
collectOrderRequest.setDocumentTypeCodes(documentTypeCodes);
|
|
|
|
}
|
|
|
|
|
|
|
|
List<IoCollectOrderResponse> orderResponses = collectOrderOriginService.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/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<CollectOrderBizResponse> list = collectOrderBizOriginService.filterList(collectOrderBizRequest);
|
|
|
|
PageInfo<CollectOrderBizResponse> pageInfo = new PageInfo<>(list);
|
|
|
|
PageSimpleResponse<CollectOrderBizResponse> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
|
|
pageSimpleResponse.setList(list);
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
}
|
|
|
|
}
|