package com.glxp.api.service.inout; import cn.hutool.core.collection.CollUtil; 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.dao.auth.SysWorkplaceDao; import com.glxp.api.dao.inout.IoSplitFifoCodeMapper; import com.glxp.api.entity.auth.SysWorkplace; import com.glxp.api.entity.inout.IoSplitFifoCodeEntity; import com.glxp.api.exception.JsonException; import com.glxp.api.req.inout.IoSplitFifoCodeRequest; import com.glxp.api.res.inout.IoSplitCodeResponse; import com.glxp.api.service.auth.SysWorkplaceService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Collections; import java.util.List; @Service public class IoSplitFifoCodeService extends ServiceImpl { @Resource IoSplitFifoCodeMapper splitFifoCodeMapper; @Resource SysWorkplaceService sysWorkplaceService; public List filterGroupList(IoSplitFifoCodeRequest splitFifoCodeRequest) { if (splitFifoCodeRequest == null) { return Collections.emptyList(); } if (splitFifoCodeRequest.getPage() != null) { int offset = (splitFifoCodeRequest.getPage() - 1) * splitFifoCodeRequest.getLimit(); PageHelper.offsetPage(offset, splitFifoCodeRequest.getLimit()); } return super.baseMapper.filterGroupList(splitFifoCodeRequest); } public List filterList(IoSplitFifoCodeRequest splitFifoCodeRequest) { if (splitFifoCodeRequest == null) { return Collections.emptyList(); } if (splitFifoCodeRequest.getPage() != null) { int offset = (splitFifoCodeRequest.getPage() - 1) * splitFifoCodeRequest.getLimit(); PageHelper.offsetPage(offset, splitFifoCodeRequest.getLimit()); } return super.baseMapper.filterList(splitFifoCodeRequest); } public Boolean isExitCode(String code, Long workPlaceCode) { return splitFifoCodeMapper.exists( new LambdaQueryWrapper() .eq(IoSplitFifoCodeEntity::getCode, code) .eq(workPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, workPlaceCode) ); } public IoSplitFifoCodeEntity findByCode(String code, Long workPlaceCode) { return splitFifoCodeMapper.selectOne( new LambdaQueryWrapper() .eq(IoSplitFifoCodeEntity::getCode, code) .eq(workPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, workPlaceCode) .last("limit 1") ); } /** * 库存量提醒 * @param workPlaceCode * @return */ public String findInvRemind(Long workPlaceCode) { final String[] msg = {"当前工位存量提醒:"}; SysWorkplace workplace = sysWorkplaceService.getWorkplace(workPlaceCode); if (workplace == null) throw new JsonException("未找到匹配工位"); Integer invRemindNumber = workplace.getInvRemindNumber(); List invReminds = splitFifoCodeMapper.findInvRemind(workPlaceCode); if (CollUtil.isEmpty(invReminds)){ return "当前工位存量提醒:" + "0"; } invReminds.forEach( item -> { Integer groupCount = item.getGroupCount(); if (groupCount < invRemindNumber){ String cpmctymc = item.getCpmctymc(); String batchNo = item.getBatchNo(); if (StrUtil.isBlank(batchNo)){ msg[0] = msg[0] + cpmctymc + "存量为:"+groupCount; }else { msg[0] = msg[0] + cpmctymc + "["+batchNo+"]存量为:"+groupCount; } } }); return msg[0]; } }