package com.whyc.service;
|
|
|
import com.whyc.dto.Response;
|
import com.whyc.mapper.ProjectArchiveManageMapper;
|
import com.whyc.mapper.ProjectManageMapper;
|
import com.whyc.pojo.ProjectArchiveManage;
|
import com.whyc.pojo.ProjectManage;
|
import io.swagger.models.auth.In;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.TransactionDefinition;
|
import org.springframework.transaction.TransactionStatus;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
public class ProjectProcessManageService {
|
|
@Autowired
|
DataSourceTransactionManager dataSourceTransactionManager;
|
@Autowired
|
TransactionDefinition transactionDefinition;
|
|
@Resource
|
private ProjectManageMapper projectManageMapper;
|
|
@Resource
|
private ProjectArchiveManageMapper projectArchiveManageMapper;
|
|
|
public Response<List<ProjectManage>> searchAll() {
|
Response<List<ProjectManage>> response = new Response<>();
|
List<ProjectManage> projectManages = projectManageMapper.searchAll();
|
response.setCode(1);
|
response.setData(projectManages);
|
return response;
|
}
|
|
public Response<List<ProjectManage>> searchByCondition(ProjectManage projectManage) {
|
Response<List<ProjectManage>> response = new Response<>();
|
List<ProjectManage> projectManages = projectManageMapper.searchByCondition(projectManage);
|
response.setCode(1);
|
response.setData(projectManages);
|
return response;
|
|
}
|
|
|
public Response add(ProjectManage pm) {
|
Response response = new Response<>();
|
Integer num = projectManageMapper.checkUniqueId(pm);
|
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);
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
dataSourceTransactionManager.rollback(transactionStatus); //事务回滚
|
return response.setMsg(0, "添加失败");
|
}
|
if (bl) {
|
dataSourceTransactionManager.commit(transactionStatus); //手动提交
|
response.setMsg(1, "添加成功");
|
} else {
|
dataSourceTransactionManager.rollback(transactionStatus); //事务回滚
|
response.setMsg(0, "添加失败");
|
}
|
return response;
|
}
|
|
|
/**
|
* 项目管理
|
* @param projectManage
|
* @return
|
*/
|
public Response<Object> searchManageStateByCondition(ProjectManage projectManage) {
|
Response response = new Response<>();
|
|
try {
|
List<ProjectManage> projectManages = projectManageMapper.searchManageStateByCondition(projectManage);
|
response.setCode(1);
|
response.setMsg(1,"查询成功");
|
response.setData(projectManages);
|
} catch (Exception e) {
|
e.printStackTrace();
|
return response.setMsg(0,"查询失败");
|
}
|
return response;
|
}
|
|
|
/**
|
* 项目进度确认
|
*
|
* @param pm
|
* @return
|
*/
|
public Response updateManageState(ProjectManage pm) {
|
Response response = new Response<>();
|
boolean bl;
|
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);
|
}
|
response.setMsg(1, "更新成功");
|
} catch (Exception e) {
|
e.printStackTrace();
|
dataSourceTransactionManager.rollback(transactionStatus);
|
return response.setMsg(0, "更新失败");
|
}
|
if (bl) {
|
dataSourceTransactionManager.commit(transactionStatus);
|
} else {
|
|
dataSourceTransactionManager.rollback(transactionStatus);
|
}
|
return response;
|
}
|
|
|
}
|