package doumeemes.service.business.impl; 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 doumeemes.core.model.ApiResponse; import doumeemes.core.model.LoginUserInfo; import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.core.utils.Constants; import doumeemes.core.utils.Utils; import doumeemes.dao.business.AppliancesMapper; import doumeemes.dao.business.model.Appliances; import doumeemes.dao.business.model.BarcodeParam; import doumeemes.dao.ext.AppliancesExtMapper; import doumeemes.dao.ext.dto.QueryAppliancesExtDTO; import doumeemes.dao.ext.vo.AppliancesExtListVO; import doumeemes.service.business.AppliancesService; import doumeemes.service.business.BarcodeParamService; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 工装器具信息表Service实现 * @author 江蹄蹄 * @date 2022/04/20 09:33 */ @Service public class AppliancesServiceImpl implements AppliancesService { @Autowired private AppliancesMapper appliancesMapper; @Autowired private AppliancesExtMapper appliancesExtMapper; @Autowired private BarcodeParamService barcodeParamService; @Override public ApiResponse create(Appliances appliances) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); //获取二维码规则 BarcodeParam queryparam=new BarcodeParam(); queryparam.setDepartId(user.getCurComDepartment().getId()); queryparam.setRootDepartId(user.getRootDepartment().getId()); queryparam.setType(Constants.BARCODEPARAM_TYPE.appliance); BarcodeParam barcodeParam =barcodeParamService.findOne(queryparam); if(barcodeParam==null){ return ApiResponse.failed("请先完善二维码篮筐配置"); } appliances.setBrcode(barcodeParam.getId()); appliances.setDeleted(Constants.ZERO); appliances.setDepartId(user.getCurComDepartment().getId()); appliances.setRootDepartId(user.getRootDepartment().getId()); appliances.setStatus(Constants.APPLIANCES_STATUS.empty); appliances.setCreateTime(new Date()); appliances.setCreateUser(user.getId()); String markCode=appliances.getCode(); QueryAppliancesExtDTO query=new QueryAppliancesExtDTO(); query.setDeleted(Constants.ZERO); query.setCategoryId(appliances.getCategoryId()); query.setDepartId(user.getCurComDepartment().getId()); query.setRootDepartId(user.getRootDepartment().getId()); // query.setType(appliances.getType()); AppliancesExtListVO queryData= appliancesExtMapper.findMaxSerial(query); if(queryData!=null){ if(appliances.getSerialStartNum()!=null){ if(appliances.getSerialStartNum()>Integer.valueOf(queryData.getSerialNum())){ Integer startnum=appliances.getSerialStartNum(); Integer endnum=appliances.getSerialEndNum(); List addlist=new ArrayList<>(); for(int i=startnum;i<=endnum;i++){ String serialnul=i+""; if(i<10000){ //不足四位左边补0 serialnul=String.format("%04d",i); } appliances.setSerialNum(i+""); if(StringUtils.isNotEmpty(markCode)){ appliances.setCode(markCode+serialnul); }else{ appliances.setCode(serialnul); } addlist.add(appliances); Appliances query1=new Appliances(); query1.setDeleted(Constants.ZERO); // query1.setCategoryId(appliances.getCategoryId()); query1.setDepartId(user.getCurComDepartment().getId()); query1.setRootDepartId(user.getRootDepartment().getId()); query1.setCode(appliances.getCode()); List queryData1= this.findList(query1); if(queryData1.size()>0){ return ApiResponse.failed("序列号为:"+i+"的编码已存在,不允许插入"); } appliancesMapper.insert(appliances); } }else{ return ApiResponse.failed("开始序列号不能小于等于"+queryData.getSerialNum()); } }else{ return ApiResponse.failed("开始序列号不能为空!"); } }else{ Integer startnum=appliances.getSerialStartNum(); Integer endnum=appliances.getSerialEndNum(); if(startnum==null||startnum==0||endnum==null||endnum==0){ return ApiResponse.failed("参数错误!"); } List addlist=new ArrayList<>(); for(int i=startnum;i<=endnum;i++){ String serialnul=i+""; if(i<10000){ //不足四位左边补0 serialnul=String.format("%04d",i); } appliances.setSerialNum(i+""); if(StringUtils.isNotEmpty(markCode)){ appliances.setCode(markCode+serialnul); }else{ appliances.setCode(serialnul); } addlist.add(appliances); Appliances query1=new Appliances(); query1.setDeleted(Constants.ZERO); // query1.setCategoryId(appliances.getCategoryId()); query1.setDepartId(user.getCurComDepartment().getId()); query1.setRootDepartId(user.getRootDepartment().getId()); query1.setCode(appliances.getCode()); List queryData1= this.findList(query1); if(queryData1.size()>0){ return ApiResponse.failed("序列号为:"+i+"的编码已存在,不允许插入"); } appliancesMapper.insert(appliances); } } return ApiResponse.success(null); } @Override public void deleteById(Integer id) { appliancesMapper.deleteById(id); } @Override public void delete(Appliances appliances) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(appliances); appliancesMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } appliancesMapper.deleteBatchIds(ids); } @Override public void updateById(Appliances appliances) { appliancesMapper.updateById(appliances); } @Override public void updateByIdInBatch(List appliancess) { if (CollectionUtils.isEmpty(appliancess)) { return; } for (Appliances appliances: appliancess) { this.updateById(appliances); } } @Override public Appliances findById(Integer id) { return appliancesMapper.selectById(id); } @Override public Appliances findOne(Appliances appliances) { QueryWrapper wrapper = new QueryWrapper<>(appliances); return appliancesMapper.selectOne(wrapper); } @Override public List findList(Appliances appliances) { QueryWrapper wrapper = new QueryWrapper<>(appliances); return appliancesMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper queryWrapper = new QueryWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); if (pageWrap.getModel().getId() != null) { queryWrapper.lambda().eq(Appliances::getId, pageWrap.getModel().getId()); } if (pageWrap.getModel().getDeleted() != null) { queryWrapper.lambda().eq(Appliances::getDeleted, pageWrap.getModel().getDeleted()); } if (pageWrap.getModel().getCreateUser() != null) { queryWrapper.lambda().eq(Appliances::getCreateUser, pageWrap.getModel().getCreateUser()); } if (pageWrap.getModel().getCreateTime() != null) { queryWrapper.lambda().ge(Appliances::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime())); queryWrapper.lambda().le(Appliances::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime())); } if (pageWrap.getModel().getUpdateUser() != null) { queryWrapper.lambda().eq(Appliances::getUpdateUser, pageWrap.getModel().getUpdateUser()); } if (pageWrap.getModel().getUpdateTime() != null) { queryWrapper.lambda().ge(Appliances::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime())); queryWrapper.lambda().le(Appliances::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime())); } if (pageWrap.getModel().getRemark() != null) { queryWrapper.lambda().eq(Appliances::getRemark, pageWrap.getModel().getRemark()); } if (pageWrap.getModel().getRootDepartId() != null) { queryWrapper.lambda().eq(Appliances::getRootDepartId, pageWrap.getModel().getRootDepartId()); } if (pageWrap.getModel().getDepartId() != null) { queryWrapper.lambda().eq(Appliances::getDepartId, pageWrap.getModel().getDepartId()); } if (pageWrap.getModel().getSerialNum() != null) { queryWrapper.lambda().eq(Appliances::getSerialNum, pageWrap.getModel().getSerialNum()); } if (pageWrap.getModel().getBrcode() != null) { queryWrapper.lambda().eq(Appliances::getBrcode, pageWrap.getModel().getBrcode()); } if (pageWrap.getModel().getValidTime() != null) { queryWrapper.lambda().ge(Appliances::getValidTime, Utils.Date.getStart(pageWrap.getModel().getValidTime())); queryWrapper.lambda().le(Appliances::getValidTime, Utils.Date.getEnd(pageWrap.getModel().getValidTime())); } if (pageWrap.getModel().getType() != null) { queryWrapper.lambda().eq(Appliances::getType, pageWrap.getModel().getType()); } if (pageWrap.getModel().getStatus() != null) { queryWrapper.lambda().eq(Appliances::getStatus, pageWrap.getModel().getStatus()); } if (pageWrap.getModel().getWorkorderId() != null) { queryWrapper.lambda().eq(Appliances::getWorkorderId, pageWrap.getModel().getWorkorderId()); } if (pageWrap.getModel().getMaterialId() != null) { queryWrapper.lambda().eq(Appliances::getMaterialId, pageWrap.getModel().getMaterialId()); } if (pageWrap.getModel().getNum() != null) { queryWrapper.lambda().eq(Appliances::getNum, pageWrap.getModel().getNum()); } if (pageWrap.getModel().getCode() != null) { queryWrapper.lambda().eq(Appliances::getCode, pageWrap.getModel().getCode()); } if (pageWrap.getModel().getPositionType() != null) { queryWrapper.lambda().eq(Appliances::getPositionType, pageWrap.getModel().getPositionType()); } if (pageWrap.getModel().getWarehouseId() != null) { queryWrapper.lambda().eq(Appliances::getWarehouseId, pageWrap.getModel().getWarehouseId()); } if (pageWrap.getModel().getLocationId() != null) { queryWrapper.lambda().eq(Appliances::getLocationId, pageWrap.getModel().getLocationId()); } if (pageWrap.getModel().getProcedureId() != null) { queryWrapper.lambda().eq(Appliances::getProcedureId, pageWrap.getModel().getProcedureId()); } if (pageWrap.getModel().getCurObjType() != null) { queryWrapper.lambda().eq(Appliances::getCurObjType, pageWrap.getModel().getCurObjType()); } if (pageWrap.getModel().getCurObjId() != null) { queryWrapper.lambda().eq(Appliances::getCurObjId, pageWrap.getModel().getCurObjId()); } for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } } return PageData.from(appliancesMapper.selectPage(page, queryWrapper)); } @Override public long count(Appliances appliances) { QueryWrapper wrapper = new QueryWrapper<>(appliances); return appliancesMapper.selectCount(wrapper); } @Override public Integer insertDate(Appliances appliances) { appliancesMapper.insert(appliances); return appliances.getId(); } }