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/IoCollectOriginController.java

273 lines
14 KiB
Java

10 months ago
package com.glxp.api.controller.collect;
10 months ago
import cn.hutool.core.collection.CollUtil;
10 months ago
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4 months ago
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageInfo;
10 months ago
import com.glxp.api.common.res.BaseResponse;
10 months ago
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusTypeConstant;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.controller.BaseController;
10 months ago
import com.glxp.api.dao.basic.SysWorkplaceDocumentDao;
import com.glxp.api.entity.auth.SysWorkplace;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderOrigin;
4 months ago
import com.glxp.api.entity.thrsys.ThrBusTypeOriginEntity;
import com.glxp.api.http.ErpBasicClient;
import com.glxp.api.req.basic.BasicCollectUserRequest;
import com.glxp.api.req.basic.GetSickPrescribeRequest;
10 months ago
import com.glxp.api.req.basic.WorkBindBusTypeRequest;
import com.glxp.api.req.collect.CollectOrderBizRequest;
10 months ago
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;
10 months ago
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.auth.SysWorkplaceService;
import com.glxp.api.service.basic.BasicCollectUserService;
10 months ago
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
import com.glxp.api.service.collect.IoCollectOrderBizOriginService;
import com.glxp.api.service.collect.IoCollectOrderOriginService;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.service.collect.IoCollectOriginService;
4 months ago
import com.glxp.api.service.thrsys.impl.ThrBusTypeOriginServiceImpl;
import com.glxp.api.util.IntUtil;
6 months ago
import org.springframework.dao.CannotAcquireLockException;
import org.springframework.web.bind.annotation.*;
10 months ago
import javax.annotation.Resource;
10 months ago
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
10 months ago
import java.util.Set;
import java.util.stream.Collectors;
10 months ago
/**
*
*/
@RestController
public class IoCollectOriginController extends BaseController {
10 months ago
@Resource
private BasicCollectUserService basicCollectUserService;
@Resource
private IoCollectOrderOriginService collectOrderOriginService;
10 months ago
@Resource
IoCollectOriginService collectOriginService;
@Resource
IoCollectOrderBizOriginService collectOrderBizOriginService;
10 months ago
@Resource
SysWorkplaceDocumentDao sysWorkplaceDocumentDao;
10 months ago
@Resource
SysWorkplaceDocumentService sysWorkplaceDocumentService;
@Resource
private ErpBasicClient erpBasicClient;
@Resource
private IoCollectOrderService ioCollectOrderService;
10 months ago
@Resource
SysWorkplaceService sysWorkplaceService;
4 months ago
@Resource
private ThrBusTypeOriginServiceImpl thrBusTypeOriginService;
@PostMapping("/udiwms/basic/collect/origin/order/download")
10 months ago
public BaseResponse downloadOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
10 months ago
return collectOriginService.downloadOrderV2(collectOrderRequest);
10 months ago
}
10 months ago
@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.startsWith("YPCF")) {
GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest();
getSickPrescribeRequest.setLimit(collectOrderRequest.getLimit());
getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo());
getSickPrescribeRequest.setThirdSys("thirdId");
getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType());
if (StrUtil.isNotEmpty(collectOrderRequest.getStartTime())) {
getSickPrescribeRequest.setStartTime(collectOrderRequest.getStartTime() + " 00:00:00");
7 months ago
}
if (StrUtil.isNotEmpty(collectOrderRequest.getEndTime())) {
getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime() + " 23:59:59");
7 months ago
}
getSickPrescribeRequest.setKey(collectOrderRequest.getKeyWords());
getSickPrescribeRequest.setPage(collectOrderRequest.getPage());
getSickPrescribeRequest.setFromCorpName(collectOrderRequest.getFromCorpName());
getSickPrescribeRequest.setShipperName(collectOrderRequest.getShipperName());
getSickPrescribeRequest.setBusType(collectOrderRequest.getBusType());
4 months ago
BaseResponse<PageSimpleResponse<IoCollectOrder>> 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());
if (StrUtil.isNotEmpty(collectOrderRequest.getStartTime())) {
getSickPrescribeRequest.setStartTime(collectOrderRequest.getStartTime() + " 00:00:00");
7 months ago
}
if (StrUtil.isNotEmpty(collectOrderRequest.getEndTime())) {
getSickPrescribeRequest.setEndTime(collectOrderRequest.getEndTime() + " 23:59:59");
7 months ago
}
getSickPrescribeRequest.setKey(collectOrderRequest.getKeyWords());
getSickPrescribeRequest.setPage(collectOrderRequest.getPage());
getSickPrescribeRequest.setFromCorpName(collectOrderRequest.getFromCorpName());
getSickPrescribeRequest.setShipperName(collectOrderRequest.getShipperName());
getSickPrescribeRequest.setBusType(collectOrderRequest.getBusType());
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getPrescribeQx(getSickPrescribeRequest);
return baseResponse;
} else if (busType.contains("SC")) {
FilterOrderRequest filterOrderRequest = new FilterOrderRequest();
filterOrderRequest.setStatus(10);
filterOrderRequest.setAction(busType);
filterOrderRequest.setProductType(null);
filterOrderRequest.setLimit(collectOrderRequest.getLimit());
filterOrderRequest.setPage(collectOrderRequest.getPage());
if (StrUtil.isNotEmpty(collectOrderRequest.getStartTime())) {
7 months ago
filterOrderRequest.setStartTime(collectOrderRequest.getStartTime() + "00:00:00");
}
if (StrUtil.isNotEmpty(collectOrderRequest.getEndTime())) {
filterOrderRequest.setEndTime(collectOrderRequest.getEndTime() + "23:59:59");
7 months ago
}
if (collectOrderRequest.getBusType().equals(ConstantType.SPLIT_OUT)) {
List<SysWorkplace> sysWorkplaceList = sysWorkplaceService.list(new LambdaQueryWrapper<SysWorkplace>().eq(SysWorkplace::getJobMode, 1));
if (CollUtil.isNotEmpty(sysWorkplaceList)) {
List<Long> workplaceCodes = sysWorkplaceList.stream().map(SysWorkplace::getWorkplaceId).collect(Collectors.toList());
filterOrderRequest.setWorkplaceCodes(workplaceCodes);
filterOrderRequest.setStatus(7);
}
}
filterOrderRequest.setBillNo(collectOrderRequest.getBillNo());
filterOrderRequest.setFromCorp(collectOrderRequest.getFromCorpName());
filterOrderRequest.setAction(collectOrderRequest.getBusType());
filterOrderRequest.setKeyWords(collectOrderRequest.getKeyWords());
BaseResponse<PageSimpleResponse<IoCollectOrder>> 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());
if (StrUtil.isNotEmpty(collectOrderRequest.getStartTime())) {
7 months ago
filterThrOrderRequest.setStartTime(collectOrderRequest.getStartTime() + "00:00:00");
}
if (StrUtil.isNotEmpty(collectOrderRequest.getEndTime())) {
filterThrOrderRequest.setEndTime(collectOrderRequest.getEndTime() + "23:59:59");
7 months ago
}
filterThrOrderRequest.setPage(collectOrderRequest.getPage());
filterThrOrderRequest.setKeyWords(collectOrderRequest.getKeyWords());
filterThrOrderRequest.setFromCorpName(collectOrderRequest.getFromCorpName());
filterThrOrderRequest.setShipperName(collectOrderRequest.getShipperName());
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest);
return baseResponse;
}
}
10 months ago
/**
*
*
10 months ago
* @param collectOrderRequest
* @return
*/
@PostMapping("/udiwms/basic/collect/origin/order/errorHandle")
6 months ago
@ExceptionHandler(CannotAcquireLockException.class)
10 months ago
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);
10 months ago
}
@GetMapping("/udiwms/basic/collect/origin/order/filter")
public BaseResponse filterOrder(CollectOrderRequest collectOrderRequest) {
List<Long> workPlaceCodes = null;
10 months ago
List<SysWorkplaceDocumentResponse> sysWorkplaceDocumentResponses = null;
List<UserWorkResponse> page;
10 months ago
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());
}
10 months ago
//通过工位列表 获取出 业务列表
workBindBusTypeRequest.setWorkPlaceCodes(workPlaceCodes);
sysWorkplaceDocumentResponses = sysWorkplaceDocumentService.filterListByWorkplace(workBindBusTypeRequest);
10 months ago
} else {
10 months ago
workBindBusTypeRequest.setWorkplaceCode(collectOrderRequest.getWorkPlaceCode());
sysWorkplaceDocumentResponses = sysWorkplaceDocumentService.filterListByWorkplace(workBindBusTypeRequest);
collectOrderRequest.setWorkPlaceCode(null);
}
10 months ago
10 months ago
if (CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)) {
10 months ago
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);
}
10 months ago
}