whycxzp
2021-09-27 d815151a1b5fc0d70df80cf80cb01b7636468d36
src/main/java/com/whyc/service/ProjectProcessManageService.java
@@ -1,9 +1,12 @@
package com.whyc.service;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.Response;
import com.whyc.mapper.ProjectArchiveManageMapper;
import com.whyc.mapper.ProjectManageMapper;
import com.whyc.pojo.DeviceManage;
import com.whyc.pojo.ProjectArchiveManage;
import com.whyc.pojo.ProjectManage;
import io.swagger.models.auth.In;
@@ -14,7 +17,10 @@
import org.springframework.transaction.TransactionStatus;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@Service
@@ -40,43 +46,60 @@
        return response;
    }
    public Response<List<ProjectManage>> searchByCondition(ProjectManage projectManage) {
        Response<List<ProjectManage>> response = new Response<>();
    /**
     * 根据筛选条件
     *
     * @param pageNum
     * @param pageSize
     * @param projectManage
     * @return
     */
    public Response<PageInfo<ProjectManage>> searchByCondition(int pageNum, int pageSize, ProjectManage projectManage) {
        PageHelper.startPage(pageNum, pageSize);
        List<ProjectManage> projectManages = projectManageMapper.searchByCondition(projectManage);
        response.setCode(1);
        response.setData(projectManages);
        return response;
        PageInfo<ProjectManage> projectManagePageInfo = new PageInfo<>(projectManages);
        return new Response<PageInfo<ProjectManage>>().set(1, projectManagePageInfo);
    }
    /**
     * 新建项目
     *
     * @param pm
     * @return
     */
    public Response add(ProjectManage pm) {
        Response response = new Response<>();
        pm.setProNameCode(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
        pm.setProState(1);//项目状态 进行中
        pm.setProProgress(1);//项目进度 立项
        Integer num = projectManageMapper.checkUniqueId(pm);
        if(num>0){
            return  response.setMsg(0, "添加失败,pro_name_code重复");
        if (num > 0) {
            return response.setMsg(0, "添加失败,pro_name_code重复");
        }
        boolean bl;
        TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
        try {
            bl = projectManageMapper.insert(pm) > 0;
            if (bl) {
                String[] paths = pm.getNote().split(";");
                for (int i = 0; i < paths.length; i++) {
                    ProjectArchiveManage pam = new ProjectArchiveManage();
                    pam.setProNum(pm.getProNum());
                    pam.setProName(pm.getProName());
                    pam.setProNameCode(pm.getProNameCode());//唯一,可对应多个文件
                    pam.setProSort(pm.getProSort());
                    String path = paths[i];
                    pam.setProFilePath(path);
                    String[] split = path.split("_");
                    int rexIdex = split[1].lastIndexOf(".");
                    pam.setProDocumentName(split[1].substring(0, rexIdex));
                    pam.setProDocumentFormat(split[1].substring(rexIdex + 1));
                    pam.setProUploadDate(new Date());
                    pam.setGainDate(new Date());
                    projectArchiveManageMapper.insert(pam);
                ArrayList<String> list = pm.getFileList();
                if (null != list) {
                    Date proUploadDate = new Date();
                    for (int i = 0; i < list.size(); i++) {
                        ProjectArchiveManage pam = new ProjectArchiveManage();
                        pam.setProNum(pm.getProNum());
                        pam.setProName(pm.getProName());
                        pam.setProNameCode(pm.getProNameCode());//唯一,可对应多个文件
                        pam.setProSort(pm.getProSort());
                        String path = list.get(i);
                        pam.setProFilePath(path);
                        String[] split = path.split("_");
                        int rexIdex = split[1].lastIndexOf(".");
                        pam.setProDocumentName(split[1].substring(0, rexIdex));
                        pam.setProDocumentFormat(split[1].substring(rexIdex + 1));
                        pam.setProUploadDate(proUploadDate);
                        projectArchiveManageMapper.insert(pam);
                    }
                }
            }
        } catch (Exception e) {
@@ -96,7 +119,8 @@
    /**
     * 项目管理
     * 项目过程管理/己确认、未确认阶段
     *
     * @param projectManage
     * @return
     */
@@ -104,13 +128,27 @@
        Response response = new Response<>();
        try {
            List<ProjectManage> projectManages = projectManageMapper.searchManageStateByCondition(projectManage);
            ProjectManage pm = projectManageMapper.searchManageStateByCondition(projectManage);
            List<ProjectArchiveManage> pams = projectArchiveManageMapper.searchByConditionDocumentPath(projectManage);
            HashMap<Object, Object> map = new HashMap<>();
            map.put("pm", pm);
            ArrayList<Object> list = new ArrayList<>();
            if (null != pams) {
                for (int i = 0; i < pams.size(); i++) {
                    ProjectArchiveManage pam = pams.get(i);
                    HashMap<Object, Object> mapDoc = new HashMap<>();
                    mapDoc.put("name", pam.getProDocumentName());
                    mapDoc.put("url", pam.getProFilePath());
                    list.add(mapDoc);
                }
            }
            map.put("mapDoc", list);
            response.setCode(1);
            response.setMsg(1,"查询成功");
            response.setData(projectManages);
            response.setMsg(1, "查询成功");
            response.setData(map);
        } catch (Exception e) {
            e.printStackTrace();
            return response.setMsg(0,"查询失败");
            return response.setMsg(0, "查询失败");
        }
        return response;
    }
@@ -118,6 +156,7 @@
    /**
     * 项目进度确认
     * 未归档可以修改更新,归档后不能修改
     *
     * @param pm
     * @return
@@ -128,34 +167,60 @@
        TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
        try {
            bl = projectManageMapper.updateManageState(pm) > 0;
            String path = pm.getNote().trim();
            if (path.length() > 10) {
                ProjectArchiveManage pam = new ProjectArchiveManage();
                pam.setProNum(pm.getProNum());
                pam.setProName(pm.getProName());
                pam.setProNameCode(pm.getProNameCode());//唯一
                pam.setProSort(pm.getProSort());
                pam.setProFilePath(path);
                String[] split = path.split("-");
                int rexIdex = split[1].lastIndexOf(".");
                pam.setProDocumentName(split[1].substring(0, rexIdex));
                pam.setProDocumentFormat(split[1].substring(rexIdex + 1));
                projectArchiveManageMapper.insert(pam);
            ArrayList<String> fileList = pm.getFileList();
            if (bl && null != fileList) {
                for (int i = 0; i < fileList.size(); i++) {
                    String filePath = fileList.get(i);
                    Boolean fileExist = projectArchiveManageMapper.checkFileExist(filePath) > 0;
                    if (!fileExist) {
                        ProjectArchiveManage pam = new ProjectArchiveManage();
                        pam.setProNum(pm.getProNum());
                        pam.setProName(pm.getProName());
                        pam.setProNameCode(pm.getProNameCode());//唯一
                        pam.setProSort(pm.getProSort());
                        pam.setProFilePath(filePath);
                        pam.setProUploadDate(new Date());
                        String[] split = filePath.split("_");
                        int rexIdex = split[1].lastIndexOf(".");
                        pam.setProDocumentName(split[1].substring(0, rexIdex));
                        pam.setProDocumentFormat(split[1].substring(rexIdex + 1));
                        projectArchiveManageMapper.insert(pam);
                    }
                }
            }
            response.setMsg(1, "更新成功");
        } catch (Exception e) {
            e.printStackTrace();
            dataSourceTransactionManager.rollback(transactionStatus);
            return response.setMsg(0, "更新失败");
        }
        if (bl) {
            response.setMsg(1, "更新成功");
            dataSourceTransactionManager.commit(transactionStatus);
        } else {
            response.setMsg(0, "更新失败");
            dataSourceTransactionManager.rollback(transactionStatus);
        }
        return response;
    }
    /**
     * 项目进度管理
     * 项目进度(1-6 立项、审批、研究、结题、验收、归档)
     *
     * @param progress
     * @return
     */
    public Response updateProjectProgress(ProjectManage progress) {
        Response<Object> response = new Response<>();
        progress.setProArchiveDate(new Date());
        boolean bl = projectManageMapper.updateProjectProgress(progress) > 0;
        if (bl) {
            projectArchiveManageMapper.updateProjectProgress(progress);//有文档材料就增加归档时间
            response.setMsg(1, "更新成功");
        } else {
            response.setMsg(0, "更新失败");
        }
        return response;
    }
}