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 splitCodeEntities = splitCodeService.filterList(splitCodeRequest); PageInfo pageInfo = new PageInfo<>(splitCodeEntities); PageSimpleResponse 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 collectOrderCodeAutoResponses = collectOrderCodeAutoService.filterList(collectOrderCodeAutoRequest); PageInfo pageInfo = new PageInfo<>(collectOrderCodeAutoResponses); PageSimpleResponse 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 collectOrderBizs = collectOrderBizService.filterList(collectOrderBizRequest); List collectOrderCodeAutos = collectOrderCodeAutoService.listByBillNo(collectOrderBizRequest.getOrderIdFk(), collectOrderBizRequest.getFifoSplit()); List 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 pageInfo = new PageInfo<>(collectOrderBizResponses); PageSimpleResponse 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 collectOrderCodeAutoResponses = collectOrderCodeAutoService.filterList(collectOrderCodeAutoRequest); PageInfo pageInfo = new PageInfo<>(collectOrderCodeAutoResponses); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(collectOrderCodeAutoResponses); return ResultVOUtils.success(pageSimpleResponse); } }