| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.core.utils.redis.RedisUtil; |
| | | import com.doumee.dao.business.YwStockMapper; |
| | | import com.doumee.dao.business.YwStocktakingMapper; |
| | | import com.doumee.dao.business.model.YwStocktaking; |
| | | import com.doumee.dao.business.YwStocktakingRecordMapper; |
| | | import com.doumee.dao.business.YwWarehouseMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.service.business.YwStocktakingService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.apache.commons.lang.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 运维盘点信息表Service实现 |
| | |
| | | @Autowired |
| | | private YwStocktakingMapper ywStocktakingMapper; |
| | | |
| | | @Autowired |
| | | private YwStockMapper ywStockMapper; |
| | | |
| | | |
| | | @Autowired |
| | | private YwStocktakingRecordMapper ywStocktakingRecordMapper; |
| | | |
| | | @Autowired |
| | | private YwWarehouseMapper ywWarehouseMapper; |
| | | |
| | | @Autowired |
| | | private RedisTemplate<String, Object> redisTemplate; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public Integer create(YwStocktaking ywStocktaking) { |
| | | if(Objects.isNull(ywStocktaking) |
| | | || StringUtils.isBlank(ywStocktaking.getName()) |
| | | || Objects.isNull(ywStocktaking.getPlanDate()) |
| | | || Objects.isNull(ywStocktaking.getWarehouseId()) |
| | | || Objects.isNull(ywStocktaking.getUserId()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | YwWarehouse ywWarehouse = ywWarehouseMapper.selectById(ywStocktaking.getWarehouseId()); |
| | | if(Objects.isNull(ywWarehouse)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到仓库数据"); |
| | | } |
| | | //判断当前仓库当前日期是否存在盘点单 |
| | | if(ywStocktakingMapper.selectCount(new QueryWrapper<YwStocktaking>().lambda().eq(YwStocktaking::getIsdeleted,Constants.ZERO).eq(YwStocktaking::getStatus,Constants.ZERO) |
| | | .eq(YwStocktaking::getWarehouseId,ywStocktaking.getWarehouseId()).apply(" DATE(PLAN_DATE) = '" + DateUtil.formatDate(ywStocktaking.getPlanDate(),"yyyy-MM-dd") +"'" ))>0){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"["+DateUtil.formatDate(ywStocktaking.getPlanDate(),"yyyy-MM-dd")+"]["+ywWarehouse.getName()+"]已有盘点单,不可重复发起盘点"); |
| | | } |
| | | LoginUserInfo loginUserInfo = ywStocktaking.getLoginUserInfo(); |
| | | ywStocktaking.setCreator(loginUserInfo.getId()); |
| | | ywStocktaking.setCreateDate(new Date()); |
| | | ywStocktaking.setIsdeleted(Constants.ZERO); |
| | | ywStocktaking.setStatus(Constants.ZERO); |
| | | ywStocktaking.setCode(getNextCode()); |
| | | ywStocktakingMapper.insert(ywStocktaking); |
| | | return ywStocktaking.getId(); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | ywStocktakingMapper.deleteById(id); |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void deleteById(Integer id, LoginUserInfo loginUserInfo) { |
| | | YwStocktaking model = ywStocktakingMapper.selectById(id); |
| | | if(Objects.isNull(model)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到盘点单数据"); |
| | | } |
| | | if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)||Constants.equalsInteger(model.getStatus(),Constants.THREE)){ |
| | | ywStocktakingMapper.update(new UpdateWrapper<YwStocktaking>().lambda() |
| | | .set(YwStocktaking::getIsdeleted,Constants.ONE) |
| | | .set(YwStocktaking::getEditDate,DateUtil.getCurrDateTime()) |
| | | .set(YwStocktaking::getEditor,loginUserInfo.getId()) |
| | | .eq(YwStocktaking::getId,id) |
| | | ); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"盘点单状态已流转,无法进行该操作"); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void cancelById(Integer id, LoginUserInfo loginUserInfo) { |
| | | YwStocktaking model = ywStocktakingMapper.selectById(id); |
| | | if(Objects.isNull(model)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到盘点单数据"); |
| | | } |
| | | if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)||Constants.equalsInteger(model.getStatus(),Constants.ONE)){ |
| | | ywStocktakingMapper.update(new UpdateWrapper<YwStocktaking>().lambda() |
| | | .set(YwStocktaking::getEditDate,DateUtil.getCurrDateTime()) |
| | | .set(YwStocktaking::getCancelDate,DateUtil.getCurrDateTime()) |
| | | .set(YwStocktaking::getCancelUserId,loginUserInfo.getId()) |
| | | .set(YwStocktaking::getEditor,loginUserInfo.getId()) |
| | | .set(YwStocktaking::getStatus,Constants.THREE).eq(YwStocktaking::getId,id)); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"盘点单状态已流转,无法进行该操作"); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void beginById(Integer id, LoginUserInfo loginUserInfo) { |
| | | YwStocktaking model = ywStocktakingMapper.selectById(id); |
| | | if(Objects.isNull(model)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到盘点单数据"); |
| | | } |
| | | if(model.getPlanDate().getTime()<System.currentTimeMillis()){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未到开始时间,无法进行该操作"); |
| | | } |
| | | if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)&&Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){ |
| | | ywStocktakingMapper.update(new UpdateWrapper<YwStocktaking>().lambda() |
| | | .set(YwStocktaking::getEditDate,DateUtil.getCurrDateTime()) |
| | | .set(YwStocktaking::getDealDate,DateUtil.getCurrDateTime()) |
| | | .set(YwStocktaking::getDealUserId,loginUserInfo.getId()) |
| | | .set(YwStocktaking::getEditor,loginUserInfo.getId()) |
| | | .set(YwStocktaking::getStatus,Constants.ONE) |
| | | .eq(YwStocktaking::getId,model.getId())); |
| | | //生成当前仓库下所有的资产信息 |
| | | List<YwStock> stockList = ywStockMapper.selectList(new QueryWrapper<YwStock>().lambda().eq(YwStock::getIsdeleted,Constants.ZERO).eq(YwStock::getWarehouseId,model.getWarehouseId())); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(stockList)){ |
| | | List<YwStocktakingRecord> ywStocktakingRecordList = new ArrayList<>(); |
| | | for (YwStock ywStock:stockList) { |
| | | YwStocktakingRecord ywStocktakingRecord = new YwStocktakingRecord(); |
| | | ywStocktakingRecord.setCreator(loginUserInfo.getId()); |
| | | ywStocktakingRecord.setCreateDate(new Date()); |
| | | ywStocktakingRecord.setIsdeleted(Constants.ZERO); |
| | | ywStocktakingRecord.setStatus(Constants.ZERO); |
| | | ywStocktakingRecord.setMaterialId(ywStock.getMaterialId()); |
| | | ywStocktakingRecord.setStock(ywStock.getStock()); |
| | | ywStocktakingRecord.setStocktakingId(model.getId()); |
| | | ywStocktakingRecordList.add(ywStocktakingRecord); |
| | | } |
| | | ywStocktakingRecordMapper.insert(ywStocktakingRecordList); |
| | | } |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"盘点单状态已流转,无法进行该操作"); |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void finishById(Integer id, LoginUserInfo loginUserInfo) { |
| | | YwStocktaking model = ywStocktakingMapper.selectById(id); |
| | | if(Objects.isNull(model)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到盘点单数据"); |
| | | } |
| | | if(!Constants.equalsInteger(model.getStatus(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"盘点单状态已流转,无法进行该操作!"); |
| | | } |
| | | if(!Constants.equalsInteger(loginUserInfo.getId(),model.getUserId())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非您的盘点单无法进行操作"); |
| | | } |
| | | List<YwStocktakingRecord> recordList = ywStocktakingRecordMapper.selectList(new QueryWrapper<YwStocktakingRecord>().lambda() |
| | | .eq(YwStocktakingRecord::getStocktakingId,id).eq(YwStocktakingRecord::getIsdeleted,Constants.ZERO)); |
| | | for (YwStocktakingRecord ywStocktakingRecord:recordList) { |
| | | //提交时 未进行盘点的明细数据 |
| | | if(Constants.equalsInteger(ywStocktakingRecord.getStatus(),Constants.ZERO)){ |
| | | ywStocktakingRecordMapper.update(new UpdateWrapper<YwStocktakingRecord>().lambda() |
| | | .set(YwStocktakingRecord::getStatus,Constants.TWO) |
| | | .set(YwStocktakingRecord::getUserId,loginUserInfo.getId()) |
| | | .eq(YwStocktakingRecord::getId,ywStocktakingRecord.getId()) |
| | | ); |
| | | } |
| | | //查询库存信息 进行库存更新 |
| | | YwStock ywStock = ywStockMapper.selectOne(new QueryWrapper<YwStock>().lambda().eq(YwStock::getMaterialId,ywStocktakingRecord.getMaterialId()) |
| | | .eq(YwStock::getWarehouseId,model.getWarehouseId()).eq(YwStock::getStock,ywStocktakingRecord.getStock())); |
| | | if(Objects.isNull(ywStock)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"库存信息异常,请联系管理员"); |
| | | } |
| | | if(ywStocktakingRecord.getActStock().compareTo(BigDecimal.ZERO)==Constants.ZERO){ |
| | | ywStockMapper.deleteById(ywStock.getId()); |
| | | }else { |
| | | ywStockMapper.update(new UpdateWrapper<YwStock>().lambda().set(YwStock::getStock,ywStocktakingRecord.getActStock()).eq(YwStock::getId,ywStock.getId())); |
| | | } |
| | | } |
| | | ywStocktakingMapper.update(new UpdateWrapper<YwStocktaking>().lambda() |
| | | .set(YwStocktaking::getEditDate,DateUtil.getCurrDateTime()) |
| | | .set(YwStocktaking::getDoneDate,DateUtil.getCurrDateTime()) |
| | | .set(YwStocktaking::getDoneUserId,loginUserInfo.getId()) |
| | | .set(YwStocktaking::getEditor,loginUserInfo.getId()) |
| | | .set(YwStocktaking::getStatus,Constants.TWO) |
| | | .eq(YwStocktaking::getId,model.getId())); |
| | | |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public void updateById(YwStocktaking ywStocktaking) { |
| | | if(Objects.isNull(ywStocktaking) |
| | | || StringUtils.isBlank(ywStocktaking.getName()) |
| | | || Objects.isNull(ywStocktaking.getId()) |
| | | || Objects.isNull(ywStocktaking.getPlanDate()) |
| | | || Objects.isNull(ywStocktaking.getWarehouseId()) |
| | | || Objects.isNull(ywStocktaking.getUserId()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | YwStocktaking model = ywStocktakingMapper.selectById(ywStocktaking.getId()); |
| | | if(Objects.isNull(model)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到盘点单数据"); |
| | | } |
| | | YwWarehouse ywWarehouse = ywWarehouseMapper.selectById(ywStocktaking.getWarehouseId()); |
| | | if(Objects.isNull(ywWarehouse)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到仓库数据"); |
| | | } |
| | | //判断当前仓库当前日期是否存在盘点单 |
| | | if(ywStocktakingMapper.selectCount(new QueryWrapper<YwStocktaking>().lambda().ne(YwStocktaking::getId,ywStocktaking.getId()).eq(YwStocktaking::getIsdeleted,Constants.ZERO).eq(YwStocktaking::getStatus,Constants.ZERO) |
| | | .eq(YwStocktaking::getWarehouseId,ywStocktaking.getWarehouseId()).apply(" DATE(PLAN_DATE) = '" + DateUtil.formatDate(ywStocktaking.getPlanDate(),"yyyy-MM-dd") +"'" ))>0){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"["+DateUtil.formatDate(ywStocktaking.getPlanDate(),"yyyy-MM-dd")+"]["+ywWarehouse.getName()+"]已有盘点单,不可重复发起盘点"); |
| | | } |
| | | LoginUserInfo loginUserInfo = ywStocktaking.getLoginUserInfo(); |
| | | ywStocktaking.setEditor(loginUserInfo.getId()); |
| | | ywStocktaking.setEditDate(new Date()); |
| | | ywStocktaking.setCode(null); |
| | | ywStocktakingMapper.updateById(ywStocktaking); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public YwStocktaking getDetail(Integer id) { |
| | | MPJLambdaWrapper<YwStocktaking> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(YwStocktaking.class) |
| | | .select(" s.name ", YwStocktaking::getUserName) |
| | | .select(" s1.name ",YwStocktaking::getCreateName) |
| | | .selectAs(YwWarehouse::getName,YwStocktaking::getWarehouseName) |
| | | .leftJoin(YwWarehouse.class,YwWarehouse::getId,YwStocktaking::getWarehouseId) |
| | | .leftJoin("system_user s on t.user_id = s.id") |
| | | .leftJoin("system_user s1 on t.creator = s1.id") |
| | | .eq(YwStocktaking::getId,id) |
| | | .last("limit 1"); |
| | | YwStocktaking ywStocktaking = ywStocktakingMapper.selectOne(queryWrapper); |
| | | List<YwStocktakingRecord> recordList = ywStocktakingRecordMapper.selectList(new QueryWrapper<YwStocktakingRecord>().lambda().eq(YwStocktakingRecord::getStocktakingId,id).eq(YwStocktakingRecord::getIsdeleted,Constants.ZERO)); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(recordList)){ |
| | | //合计盘点数据 |
| | | ywStocktaking.setFinishAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size()); |
| | | ywStocktaking.setUnFinishAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size()); |
| | | ywStocktaking.setEqualAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)&&Constants.equalsInteger(i.getType(),Constants.ZERO)).collect(Collectors.toList()).size()); |
| | | ywStocktaking.setLossAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)&&Constants.equalsInteger(i.getType(),Constants.ONE)).collect(Collectors.toList()).size()); |
| | | ywStocktaking.setProfitAmount(recordList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)&&Constants.equalsInteger(i.getType(),Constants.TWO)).collect(Collectors.toList()).size()); |
| | | } |
| | | return ywStocktaking; |
| | | } |
| | | |
| | | @Override |
| | | public YwStocktaking findOne(YwStocktaking ywStocktaking) { |
| | | QueryWrapper<YwStocktaking> wrapper = new QueryWrapper<>(ywStocktaking); |
| | | return ywStocktakingMapper.selectOne(wrapper); |
| | |
| | | @Override |
| | | public PageData<YwStocktaking> findPage(PageWrap<YwStocktaking> pageWrap) { |
| | | IPage<YwStocktaking> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<YwStocktaking> queryWrapper = new QueryWrapper<>(); |
| | | MPJLambdaWrapper<YwStocktaking> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getId, pageWrap.getModel().getId()); |
| | | } |
| | | if (pageWrap.getModel().getCreator() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getCreator, pageWrap.getModel().getCreator()); |
| | | } |
| | | if (pageWrap.getModel().getCreateDate() != null) { |
| | | queryWrapper.lambda().ge(YwStocktaking::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.lambda().le(YwStocktaking::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | } |
| | | if (pageWrap.getModel().getEditor() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getEditor, pageWrap.getModel().getEditor()); |
| | | } |
| | | if (pageWrap.getModel().getEditDate() != null) { |
| | | queryWrapper.lambda().ge(YwStocktaking::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.lambda().le(YwStocktaking::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | } |
| | | if (pageWrap.getModel().getIsdeleted() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | } |
| | | if (pageWrap.getModel().getPosition() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getPosition, pageWrap.getModel().getPosition()); |
| | | } |
| | | if (pageWrap.getModel().getRemark() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getRemark, pageWrap.getModel().getRemark()); |
| | | } |
| | | if (pageWrap.getModel().getStatus() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getStatus, pageWrap.getModel().getStatus()); |
| | | } |
| | | if (pageWrap.getModel().getUserId() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getUserId, pageWrap.getModel().getUserId()); |
| | | } |
| | | if (pageWrap.getModel().getPlanDate() != null) { |
| | | queryWrapper.lambda().ge(YwStocktaking::getPlanDate, Utils.Date.getStart(pageWrap.getModel().getPlanDate())); |
| | | queryWrapper.lambda().le(YwStocktaking::getPlanDate, Utils.Date.getEnd(pageWrap.getModel().getPlanDate())); |
| | | } |
| | | if (pageWrap.getModel().getCode() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getCode, pageWrap.getModel().getCode()); |
| | | } |
| | | if (pageWrap.getModel().getDealUserId() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getDealUserId, pageWrap.getModel().getDealUserId()); |
| | | } |
| | | if (pageWrap.getModel().getDealDate() != null) { |
| | | queryWrapper.lambda().ge(YwStocktaking::getDealDate, Utils.Date.getStart(pageWrap.getModel().getDealDate())); |
| | | queryWrapper.lambda().le(YwStocktaking::getDealDate, Utils.Date.getEnd(pageWrap.getModel().getDealDate())); |
| | | } |
| | | if (pageWrap.getModel().getDealInfo() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getDealInfo, pageWrap.getModel().getDealInfo()); |
| | | } |
| | | if (pageWrap.getModel().getDoneNum() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getDoneNum, pageWrap.getModel().getDoneNum()); |
| | | } |
| | | if (pageWrap.getModel().getWaitNum() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getWaitNum, pageWrap.getModel().getWaitNum()); |
| | | } |
| | | if (pageWrap.getModel().getTotalNum() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getTotalNum, pageWrap.getModel().getTotalNum()); |
| | | } |
| | | if (pageWrap.getModel().getProfitNum() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getProfitNum, pageWrap.getModel().getProfitNum()); |
| | | } |
| | | if (pageWrap.getModel().getLossNum() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getLossNum, pageWrap.getModel().getLossNum()); |
| | | } |
| | | if (pageWrap.getModel().getEqualNum() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getEqualNum, pageWrap.getModel().getEqualNum()); |
| | | } |
| | | if (pageWrap.getModel().getDoneUserId() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getDoneUserId, pageWrap.getModel().getDoneUserId()); |
| | | } |
| | | if (pageWrap.getModel().getDoneDate() != null) { |
| | | queryWrapper.lambda().ge(YwStocktaking::getDoneDate, Utils.Date.getStart(pageWrap.getModel().getDoneDate())); |
| | | queryWrapper.lambda().le(YwStocktaking::getDoneDate, Utils.Date.getEnd(pageWrap.getModel().getDoneDate())); |
| | | } |
| | | if (pageWrap.getModel().getDoneInfo() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getDoneInfo, pageWrap.getModel().getDoneInfo()); |
| | | } |
| | | if (pageWrap.getModel().getCancelUserId() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getCancelUserId, pageWrap.getModel().getCancelUserId()); |
| | | } |
| | | if (pageWrap.getModel().getCancelDate() != null) { |
| | | queryWrapper.lambda().ge(YwStocktaking::getCancelDate, Utils.Date.getStart(pageWrap.getModel().getCancelDate())); |
| | | queryWrapper.lambda().le(YwStocktaking::getCancelDate, Utils.Date.getEnd(pageWrap.getModel().getCancelDate())); |
| | | } |
| | | if (pageWrap.getModel().getCancelInfo() != null) { |
| | | queryWrapper.lambda().eq(YwStocktaking::getCancelInfo, pageWrap.getModel().getCancelInfo()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | return PageData.from(ywStocktakingMapper.selectPage(page, queryWrapper)); |
| | | YwStocktaking model = pageWrap.getModel(); |
| | | queryWrapper.selectAll(YwStocktaking.class) |
| | | .select(" s.name ", YwStocktaking::getUserName) |
| | | .select(" s1.name ",YwStocktaking::getCreateName) |
| | | .selectAs(YwWarehouse::getName,YwStocktaking::getWarehouseName) |
| | | .leftJoin(YwWarehouse.class,YwWarehouse::getId,YwStocktaking::getWarehouseId) |
| | | .leftJoin("system_user s on t.user_id = s.id") |
| | | .leftJoin("system_user s1 on t.creator = s1.id") |
| | | .eq(YwStocktaking::getIsdeleted,Constants.ZERO) |
| | | .like(StringUtils.isNotBlank(model.getName()),YwStocktaking::getName,model.getName()) |
| | | .eq(Objects.nonNull(model.getStatus()),YwStocktaking::getStatus,model.getStatus()) |
| | | .orderByAsc(YwStocktaking::getStatus) |
| | | .orderByDesc(YwStocktaking::getPlanDate) |
| | | ; |
| | | |
| | | IPage iPage = ywStocktakingMapper.selectJoinPage(page, YwStocktaking.class,queryWrapper); |
| | | return PageData.from(iPage); |
| | | } |
| | | |
| | | @Override |
| | |
| | | QueryWrapper<YwStocktaking> wrapper = new QueryWrapper<>(ywStocktaking); |
| | | return ywStocktakingMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | |
| | | public synchronized String getNextCode(){ |
| | | String prefix = "PD-" + DateUtil.getDate(new Date(),"yyyyMMdd") +"-"; |
| | | Integer countNum = RedisUtil.getObject(redisTemplate, |
| | | Constants.RedisKeys.COM_OUTBOUND_TAKING_KEY, |
| | | Integer.class); |
| | | countNum = Constants.formatIntegerNum(countNum)+1; |
| | | //更新缓存 |
| | | RedisUtil.addObject(redisTemplate, Constants.RedisKeys.COM_OUTBOUND_TAKING_KEY,countNum); |
| | | String nextIndex =Integer.toString( countNum ); |
| | | return prefix + org.apache.commons.lang3.StringUtils.leftPad(nextIndex,4,"0"); |
| | | } |
| | | |
| | | |
| | | } |