whyclxw
4 天以前 bfa320956f20988fe671b0c4d25aa82fe766a98d
src/main/java/com/whyc/service/TechnicalSpecificationService.java
@@ -166,6 +166,7 @@
        specification.setFileUrl(specificationHttpUrl+File.separator+file1Name);
        specification.setExcelUrl(specificationHttpUrl+File.separator+file2Name);
        specification.setCreateTime(date);
        specification.setUploadUser(ActionUtil.getUser().getName());
        //锁定-负责人才能解锁
        specification.setLockFlag(1);
        mapper.insert(specification);
@@ -173,7 +174,7 @@
        lockOtherByAppliedProduct(specification);
        //锁定日志
        TechnicalSpecificationLockLog lockLog = new TechnicalSpecificationLockLog();
        lockLog.setUserName(ActionUtil.getUser().getName());
        lockLog.setUserName("系统");
        lockLog.setTechnicalSpecificationId(specification.getId());
        lockLog.setReason("系统默认锁定,新版本技术规则书上传");
        lockLog.setCreateTime(date);
@@ -183,14 +184,36 @@
    }
    private void lockOtherByAppliedProduct(TechnicalSpecification specification) {
        //先查询
        QueryWrapper<TechnicalSpecification> query = Wrappers.query();
        query.eq("apply_material_code",specification.getApplyMaterialCode());
        query.eq("apply_custom_code", specification.getApplyCustomCode());
        query.eq("lock_flag",0);
        query.last(" limit 1");
        TechnicalSpecification specificationToBeLocked = mapper.selectOne(query);
        if(specificationToBeLocked !=null){ //存在生效的,需要被锁定
            specificationToBeLocked.setLockFlag(1);
            mapper.updateById(specificationToBeLocked);
            //锁定日志
            TechnicalSpecificationLockLog lockLog = new TechnicalSpecificationLockLog();
            lockLog.setUserName("系统");
            lockLog.setTechnicalSpecificationId(specificationToBeLocked.getId());
            lockLog.setReason("系统默认锁定,新版本技术规则书上传,旧版本锁定");
            lockLog.setCreateTime(new Date());
            lockLog.setStatus(0);
            lockLogService.add(lockLog);
        }
        UpdateWrapper<TechnicalSpecification> update = Wrappers.update();
        update.set("lock_flag",1);
        update.set("lock_reason","系统默认锁定,新版本技术规则书上传,旧版本锁定");
        //update.set("lock_reason","系统默认锁定,新版本技术规则书上传,旧版本锁定");
        update.eq("apply_material_code",specification.getApplyMaterialCode());
        update.eq("apply_custom_code", specification.getApplyCustomCode());
        update.eq("lock_flag",0);
        update.last(" limit 1");
        mapper.update(null,update);
    }
@@ -274,9 +297,35 @@
            query.eq("lock_flag",lockFlag);
        }
        List<TechnicalSpecification> list=mapper.selectList(query);
        //标识每条记录适用机型可用的版本的负责人是不是这条记录的负责人
        if(list!=null&&list.size()>0){
            for (TechnicalSpecification t:list) {
                TechnicalSpecification enableTe=getEnableVersion(t);
                if(enableTe!=null){
                   if(enableTe.getOwner().equals(t.getOwner())){
                       t.setFlag(1);
                   }else{
                       t.setFlag(0);
                   }
                }else {
                    t.setFlag(1);
                }
            }
        }
        PageInfo pageInfo=new PageInfo(list);
        return new Response().setII(1,list!=null,pageInfo,"查询技术规格书");
    }
    //查询每条记录适用机型可用的版本
    public TechnicalSpecification getEnableVersion(TechnicalSpecification t){
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("apply_material_code",t.getApplyMaterialCode());
        wrapper.eq("apply_model",t.getApplyModel());
        wrapper.eq("apply_custom_code",t.getApplyCustomCode());
        wrapper.last("limit 1");
        TechnicalSpecification enableTe=mapper.selectOne(wrapper);
        return enableTe;
    }
   //查询指定技术规格书的所有版本
    public Response getVersionByInfo(String applyMaterialCode, String applyModel, String applyCustomCode) {
        QueryWrapper<TechnicalSpecification> query = Wrappers.query();
@@ -290,6 +339,21 @@
            query.eq("apply_custom_code",applyCustomCode);
        }
        List<TechnicalSpecification> list=mapper.selectList(query);
        //标识每条记录适用机型可用的版本的负责人是不是这条记录的负责人
        if(list!=null&&list.size()>0){
            for (TechnicalSpecification t:list) {
                TechnicalSpecification enableTe=getEnableVersion(t);
                if(enableTe!=null){
                    if(enableTe.getOwner().equals(t.getOwner())){
                        t.setFlag(1);
                    }else{
                        t.setFlag(0);
                    }
                }else {
                    t.setFlag(1);
                }
            }
        }
        return new Response().setII(1,list!=null,list,"查询指定技术规格书的所有版本");
    }
}