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/service/inout/IoSplitFifoCodeService.java

104 lines
4.0 KiB
Java

11 months ago
package com.glxp.api.service.inout;
11 months ago
import cn.hutool.core.collection.CollUtil;
11 months ago
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
11 months ago
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
11 months ago
import com.glxp.api.dao.auth.SysWorkplaceDao;
11 months ago
import com.glxp.api.dao.inout.IoSplitFifoCodeMapper;
11 months ago
import com.glxp.api.entity.auth.SysWorkplace;
11 months ago
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
11 months ago
import com.glxp.api.exception.JsonException;
11 months ago
import com.glxp.api.req.inout.IoSplitFifoCodeRequest;
import com.glxp.api.res.inout.IoSplitCodeResponse;
11 months ago
import com.glxp.api.service.auth.SysWorkplaceService;
11 months ago
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
@Service
public class IoSplitFifoCodeService extends ServiceImpl<IoSplitFifoCodeMapper, IoSplitFifoCodeEntity> {
@Resource
IoSplitFifoCodeMapper splitFifoCodeMapper;
11 months ago
@Resource
SysWorkplaceService sysWorkplaceService;
11 months ago
11 months ago
public List<IoSplitCodeResponse> 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);
}
11 months ago
public List<IoSplitCodeResponse> 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);
}
11 months ago
public Boolean isExitCode(String code, Long workPlaceCode) {
11 months ago
return splitFifoCodeMapper.exists(
new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
.eq(IoSplitFifoCodeEntity::getCode, code)
11 months ago
.eq(workPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, workPlaceCode)
11 months ago
);
}
11 months ago
11 months ago
public IoSplitFifoCodeEntity findByCode(String code, Long workPlaceCode) {
11 months ago
return splitFifoCodeMapper.selectOne(
new LambdaQueryWrapper<IoSplitFifoCodeEntity>()
.eq(IoSplitFifoCodeEntity::getCode, code)
11 months ago
.eq(workPlaceCode != null, IoSplitFifoCodeEntity::getWorkPlaceCode, workPlaceCode)
11 months ago
.last("limit 1")
);
}
11 months ago
/**
*
* @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<IoSplitCodeResponse> invReminds = splitFifoCodeMapper.findInvRemind(workPlaceCode);
if (CollUtil.isEmpty(invReminds)){
11 months ago
return "当前工位存量提醒:" + "0";
}
11 months ago
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];
}
11 months ago
11 months ago
}