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/IoCollectOrderCodeAutoContr...

145 lines
7.0 KiB
Java

package com.glxp.api.controller.collect;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.entity.collect.IoCollectOrderCodeAuto;
import com.glxp.api.entity.inout.IoSplitCodeEntity;
import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.req.collect.CollectOrderCodeAutoRequest;
import com.glxp.api.req.inout.IoSplitCodeRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.CollectOrderCodeAutoResponse;
import com.glxp.api.service.collect.IoCollectOrderBizService;
import com.glxp.api.service.collect.IoCollectOrderCodeAutoService;
import com.glxp.api.service.inout.IoSplitCodeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* 自动赋码
*/
@Slf4j
@RestController
public class IoCollectOrderCodeAutoController extends BaseController {
@Resource
IoSplitCodeService splitCodeService;
@Resource
IoCollectOrderCodeAutoService collectOrderCodeAutoService;
/**
* 器械拆零按码查询
*
* @return
*/
@GetMapping("/udiwms/ioSplit/collect/auto/code/filter")
public BaseResponse filterByCode(IoSplitCodeRequest splitCodeRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<IoSplitCodeEntity> splitCodeEntities = splitCodeService.filterList(splitCodeRequest);
PageInfo<IoSplitCodeEntity> pageInfo = new PageInfo<>(splitCodeEntities);
PageSimpleResponse<IoSplitCodeEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(splitCodeEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
/**
* 器械拆零按单查询赋码明细
*
* @return
*/
@GetMapping("/udiwms/ioSplit/collect/auto/order/filter")
public BaseResponse filterByBillNo(CollectOrderCodeAutoRequest collectOrderCodeAutoRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<CollectOrderCodeAutoResponse> collectOrderCodeAutoResponses = collectOrderCodeAutoService.filterList(collectOrderCodeAutoRequest);
PageInfo<CollectOrderCodeAutoResponse> pageInfo = new PageInfo<>(collectOrderCodeAutoResponses);
PageSimpleResponse<CollectOrderCodeAutoResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(collectOrderCodeAutoResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
@Resource
IoCollectOrderBizService collectOrderBizService;
/**
* 器械拆零按单查询赋码明细
*
* @return
*/
@GetMapping("/udiwms/ioSplit/collect/auto/order/result")
public BaseResponse filterResultByBillNo(CollectOrderBizRequest collectOrderBizRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<CollectOrderBizResponse> collectOrderBizs = collectOrderBizService.filterList(collectOrderBizRequest);
List<IoCollectOrderCodeAuto> collectOrderCodeAutos = collectOrderCodeAutoService.listByBillNo(collectOrderBizRequest.getOrderIdFk(), collectOrderBizRequest.getFifoSplit());
List<CollectOrderBizResponse> collectOrderBizResponses = new ArrayList<>();
for (CollectOrderBizResponse collectOrderBiz : collectOrderBizs) {
CollectOrderBizResponse collectOrderBizResponse = new CollectOrderBizResponse();
BeanUtils.copyProperties(collectOrderBiz, collectOrderBizResponse);
for (IoCollectOrderCodeAuto collectOrderCodeAuto : collectOrderCodeAutos) {
if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) &&
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && StrUtil.emptyIfNull(collectOrderBiz.getBatchNo()).equals(collectOrderCodeAuto.getBatchNo()))) {
collectOrderBizResponse.setUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
} else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) {
collectOrderBizResponse.setUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
}
}
if (StrUtil.isNotEmpty(collectOrderBizResponse.getUdiCode())) {
collectOrderBizResponse.setUdiCode(collectOrderBizResponse.getUdiCode().substring(1));
}
collectOrderBizResponses.add(collectOrderBizResponse);
}
PageInfo<CollectOrderBizResponse> pageInfo = new PageInfo<>(collectOrderBizResponses);
PageSimpleResponse<CollectOrderBizResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(collectOrderBizResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
/**
* 器械拆零按扫码查询处方赋码明细
*
* @return
*/
@GetMapping("/udiwms/ioSplit/collect/code/filter")
public BaseResponse filterByTagCode(CollectOrderCodeAutoRequest collectOrderCodeAutoRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<CollectOrderCodeAutoResponse> collectOrderCodeAutoResponses = collectOrderCodeAutoService.filterList(collectOrderCodeAutoRequest);
PageInfo<CollectOrderCodeAutoResponse> pageInfo = new PageInfo<>(collectOrderCodeAutoResponses);
PageSimpleResponse<CollectOrderCodeAutoResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(collectOrderCodeAutoResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
}