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(); 
 | 
    } 
 | 
  
 | 
} 
 |