package com.glxp.api.service.collect; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.dao.collect.IoCollectCodeBackMapper; import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.basic.UdiProductEntity; import com.glxp.api.entity.collect.*; import com.glxp.api.entity.inout.IoCodeEntity; import com.glxp.api.req.collect.IoCollectCodeRequest; import com.glxp.api.req.inout.FilterCodeRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.res.collect.IoCollectCodeResponse; import com.glxp.api.res.inout.AddEnterCodeResponse; import com.glxp.api.res.inout.VailCodeResultResponse; import com.glxp.api.service.basic.UdiProductService; import com.glxp.api.service.basic.UdiRelevanceService; import com.glxp.api.util.udi.FilterUdiUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Collections; import java.util.List; @Service public class IoCollectCodeBackService extends ServiceImpl { @Resource IoCollectCodeBackMapper ioCollectCodeBackMapper; @Resource UdiRelevanceService udiRelevanceService; /** * 追溯码查询 * * @param ioCollectCodeRequest * @return */ public List filterList(IoCollectCodeRequest ioCollectCodeRequest) { if (ioCollectCodeRequest == null) { return Collections.emptyList(); } if (ioCollectCodeRequest.getPage() != null) { int offset = (ioCollectCodeRequest.getPage() - 1) * ioCollectCodeRequest.getLimit(); PageHelper.offsetPage(offset, ioCollectCodeRequest.getLimit()); } return super.baseMapper.filterList(ioCollectCodeRequest); } public BaseResponse CheckCode(IoCollectCodeRequest filterCodeRequest) { //判断 if (StrUtil.isNotEmpty(filterCodeRequest.getCode())){ IoCollectCodeBackup ioCollectCodeBackup = ioCollectCodeBackMapper.selectOne(new LambdaQueryWrapper() .eq(IoCollectCodeBackup::getBillNo, filterCodeRequest.getBillNo()) .eq(IoCollectCodeBackup::getCode, filterCodeRequest.getCode())); if (ioCollectCodeBackup == null){ BaseResponse response = new BaseResponse(); response.setData(filterCodeRequest.getCode()); response.setCode(500); response.setMessage("追溯码不存在"); return response; } UdiEntity udiEntity = FilterUdiUtils.getUdi(filterCodeRequest.getCode()); UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(udiEntity.getUdi()); udiEntity.setCode(filterCodeRequest.getCode()); AddEnterCodeResponse addEnterCodeResponse = setAddEnterCodeResponse(udiEntity, udiRelevanceResponse); return ResultVOUtils.success(addEnterCodeResponse); }else { List vailCodeResultResponses = new ArrayList<>(); for (String code : filterCodeRequest.getCodeList()){ IoCollectCodeBackup ioCollectCodeBackup = ioCollectCodeBackMapper.selectOne(new LambdaQueryWrapper() .eq(IoCollectCodeBackup::getBillNo, filterCodeRequest.getBillNo()) .eq(IoCollectCodeBackup::getCode, code)); VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse(); if (ioCollectCodeBackup != null){ vailCodeResultResponse.setStatus(1); vailCodeResultResponse.setCode(code); vailCodeResultResponse.setSucMsg("校验成功"); vailCodeResultResponses.add(vailCodeResultResponse); }else { vailCodeResultResponse.setStatus(2); vailCodeResultResponse.setCode(code); vailCodeResultResponse.setErrMsg("追溯码不存在"); vailCodeResultResponses.add(vailCodeResultResponse); } } return ResultVOUtils.success(vailCodeResultResponses); } } public AddEnterCodeResponse setAddEnterCodeResponse(UdiEntity udiEntity, UdiRelevanceResponse checkUdi) { AddEnterCodeResponse addEnterCodeResponse = new AddEnterCodeResponse(); BeanUtils.copyProperties(udiEntity, addEnterCodeResponse); addEnterCodeResponse.setBzgg(checkUdi.getBzgg()); addEnterCodeResponse.setCpmctymc(checkUdi.getCpmctymc()); addEnterCodeResponse.setPrepnSpec(checkUdi.getPrepnSpec()); addEnterCodeResponse.setPrepnUnit(checkUdi.getPrepnUnit()); addEnterCodeResponse.setPackUnit(checkUdi.getPackUnit()); addEnterCodeResponse.setGgxh(checkUdi.getGgxh()); return addEnterCodeResponse; } }