| 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<Appliances> 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<Appliances> 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<Appliances> 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<Appliances> 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<Appliances> deleteWrapper = new UpdateWrapper<>(appliances); | 
|         appliancesMapper.delete(deleteWrapper); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteByIdInBatch(List<Integer> ids) { | 
|         if (CollectionUtils.isEmpty(ids)) { | 
|             return; | 
|         } | 
|         appliancesMapper.deleteBatchIds(ids); | 
|     } | 
|   | 
|     @Override | 
|     public void updateById(Appliances appliances) { | 
|         appliancesMapper.updateById(appliances); | 
|     } | 
|   | 
|     @Override | 
|     public void updateByIdInBatch(List<Appliances> 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<Appliances> wrapper = new QueryWrapper<>(appliances); | 
|         return appliancesMapper.selectOne(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public List<Appliances> findList(Appliances appliances) { | 
|         QueryWrapper<Appliances> wrapper = new QueryWrapper<>(appliances); | 
|         return appliancesMapper.selectList(wrapper); | 
|     } | 
|    | 
|     @Override | 
|     public PageData<Appliances> findPage(PageWrap<Appliances> pageWrap) { | 
|         IPage<Appliances> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|         QueryWrapper<Appliances> 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<Appliances> wrapper = new QueryWrapper<>(appliances); | 
|         return appliancesMapper.selectCount(wrapper); | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public Integer insertDate(Appliances appliances) { | 
|           appliancesMapper.insert(appliances); | 
|         return appliances.getId(); | 
|     } | 
|   | 
| } |