Commit cfde27da authored by neo's avatar neo

[DEV] create project impl but not really create db

parent aa757024
......@@ -34,7 +34,9 @@ public enum OperationAction {
/**新增权限*/
AddNewPermission(17),
/**去除权限*/
DeletePermission(18);
DeletePermission(18),
/**进入项目**/
EnterProject(19);
private int value;
......
......@@ -12,11 +12,16 @@ import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import pwc.taxtech.atms.common.OperateLogType;
import pwc.taxtech.atms.common.OperationAction;
import pwc.taxtech.atms.common.OperationModule;
import pwc.taxtech.atms.dto.OperationLogDto;
import pwc.taxtech.atms.dto.PagingResultDto;
import pwc.taxtech.atms.dto.QueryOperateParamDto;
import pwc.taxtech.atms.service.OperationLogService;
import java.util.Date;
/** @see PwC.Tax.Tech.Atms.WebApi.Controllers.OperationLogController.cs */
@RestController
@RequestMapping("/api/v1/operationlog/")
......@@ -34,4 +39,20 @@ public class OperationLogController {
logger.debug("OperationLogController /getorgloglist");
return operationLogService.getOperationLogList(queryOperateParamDto);
}
@ApiOperation(value = "添加进入项目日志")
@RequestMapping(value = "addEnterProjectLog/{userName}", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public void addEnterProjectLog(String userName, String logContent)
{
OperationLogDto dto=new OperationLogDto();
dto.setAction(OperationAction.EnterProject.value());
dto.setComment("");
dto.setCreateTime(new Date());
dto.setLogType(OperateLogType.OperationLogUser.value());
dto.setModule(OperationModule.User.value());
dto.setOperationContent(logContent);
dto.setOperationObject(userName);
dto.setOperationUser(userName);
// operationLogService.addLog(dto);
}
}
......@@ -2,9 +2,11 @@ package pwc.taxtech.atms.controller;
import java.util.List;
import io.swagger.annotations.ApiImplicitParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
......@@ -14,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.ApiOperation;
import pwc.taxtech.atms.dto.ProjectClientDto;
import pwc.taxtech.atms.dto.ServiceTypeDto;
import pwc.taxtech.atms.dto.taxadmin.AddProjectResult;
import pwc.taxtech.atms.dto.taxadmin.ProjectDisplayDto;
import pwc.taxtech.atms.service.ProjectService;
......@@ -60,4 +63,14 @@ public class ProjectController {
logger.info("/api/v1/project/getAllProjectList with orgID {} serviceID {}", orgID, serviceID);
return projectService.getAllProjectList(orgID, serviceID == null ? "" : serviceID, projectYear);
}
@ApiOperation(value = "add", notes = "add a project")
@RequestMapping(value = "add", method = RequestMethod.POST)
@ApiImplicitParam(name = "projectDto", value = "projectDto", required = true, dataType = "ProjectDisplayDto")
public @ResponseBody
AddProjectResult AddProject(@RequestBody ProjectDisplayDto projectDto,String userName) {
if(userName.isEmpty())userName="test";//TODO: should use session username future(neo)
return projectService.addProject(projectDto, userName);
}
}
package pwc.taxtech.atms.dto.taxadmin;
public class AddProjectResult {
private String dBname;
private String projectID;
private Boolean result;
private String resultMsg;
public String getdBname() {
return dBname;
}
public void setdBname(String dBname) {
this.dBname = dBname;
}
public String getProjectID() {
return projectID;
}
public void setProjectID(String projectID) {
this.projectID = projectID;
}
public Boolean getResult() {
return result;
}
public void setResult(Boolean result) {
this.result = result;
}
public String getResultMsg() {
return resultMsg;
}
public void setResultMsg(String resultMsg) {
this.resultMsg = resultMsg;
}
}
......@@ -4,6 +4,7 @@ import java.util.List;
import pwc.taxtech.atms.dto.ProjectClientDto;
import pwc.taxtech.atms.dto.ServiceTypeDto;
import pwc.taxtech.atms.dto.taxadmin.AddProjectResult;
import pwc.taxtech.atms.dto.taxadmin.ProjectDisplayDto;
public interface ProjectService {
......@@ -38,6 +39,8 @@ public interface ProjectService {
List<ProjectDisplayDto> getAllProjectList(String orgID, String s, Integer projectYear);
AddProjectResult addProject(ProjectDisplayDto projectDto, String userName);
// Map<Integer, Integer> getProjectAllStatus(String dbName);
}
......@@ -7,23 +7,32 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.common.OperateLogType;
import pwc.taxtech.atms.common.OperationModule;
import pwc.taxtech.atms.dao.OrganizationServiceTemplateGroupMapper;
import pwc.taxtech.atms.dao.ProjectClientMapper;
import pwc.taxtech.atms.dao.ProjectMapper;
import pwc.taxtech.atms.dao.ProjectServiceTypeMapper;
import pwc.taxtech.atms.dao.ServiceTypeMapper;
import pwc.taxtech.atms.dao.TemplateGroupMapper;
import pwc.taxtech.atms.dto.FieldsMapper;
import pwc.taxtech.atms.dto.ProjectClientDto;
import pwc.taxtech.atms.dto.ServiceTypeDto;
import pwc.taxtech.atms.dto.TemplateGroupDto;
import pwc.taxtech.atms.dto.taxadmin.AddProjectResult;
import pwc.taxtech.atms.dto.taxadmin.ProjectDisplayDto;
import pwc.taxtech.atms.dto.taxadmin.ProjectYearParam;
import pwc.taxtech.atms.entitiy.OrganizationServiceTemplateGroupExample;
import pwc.taxtech.atms.entitiy.Project;
import pwc.taxtech.atms.entitiy.ProjectClient;
import pwc.taxtech.atms.entitiy.ProjectClientExample;
import pwc.taxtech.atms.entitiy.ProjectClientExample.Criteria;
import pwc.taxtech.atms.entitiy.ProjectServiceType;
import pwc.taxtech.atms.entitiy.ServiceType;
import pwc.taxtech.atms.entitiy.ServiceTypeExample;
import pwc.taxtech.atms.entitiy.TemplateGroup;
import pwc.taxtech.atms.entitiy.TemplateGroupExample;
import pwc.taxtech.atms.service.OperationLogService;
import pwc.taxtech.atms.service.ProjectService;
import java.util.ArrayList;
......@@ -32,6 +41,7 @@ import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
@Service
......@@ -40,6 +50,7 @@ public class ProjectServiceImpl implements ProjectService {
* @see PwC.Tax.Tech.Atms..Admin.Application\Services\Impl\ProjectService.cs
*/
private static final int FIRST_OR_DEFAULT = 0;
private static Logger LOGGER = LoggerFactory.getLogger(ProjectServiceImpl.class);
@Autowired
private ServiceTypeMapper serviceTypeMapper;
......@@ -53,8 +64,21 @@ public class ProjectServiceImpl implements ProjectService {
@Autowired
private ProjectMapper projectMapper;
@Autowired
private OrganizationServiceTemplateGroupMapper organizationServiceTemplateGroupMapper;
@Autowired
private ProjectServiceTypeMapper projectServiceTypeMapper;
@Autowired
private OperationLogService operationLogService;
private final OperateLogType LOG_TYPE = OperateLogType.OperationLogProject;
private static final Logger logger = LoggerFactory.getLogger(ProjectServiceImpl.class);
public ProjectServiceImpl() {
}
@Override
public List<ServiceTypeDto> getServiceList() {
......@@ -125,8 +149,8 @@ public class ProjectServiceImpl implements ProjectService {
&& (x.getStartPeriod() != p.getStartPeriod() || x.getEndPeriod() != p.getEndPeriod()))
.collect(Collectors.toList());
if (fixList != null && !fixList.isEmpty()) {
ProjectDisplayDto pddFirst=fixList.get(FIRST_OR_DEFAULT);
if (fixList != null && !fixList.isEmpty()) {
ProjectDisplayDto pddFirst = fixList.get(FIRST_OR_DEFAULT);
//修改数据库对应项目起始月
Project project = new Project();
......@@ -144,13 +168,92 @@ public class ProjectServiceImpl implements ProjectService {
}
});
removeList.forEach(r->{orgList.remove(r);});
removeList.forEach(r -> {
orgList.remove(r);
});
pList.addAll(data);
pList.addAll(orgList);
return pList;
}
@Override
public AddProjectResult addProject(ProjectDisplayDto projectDto, String userName) {
projectDto.setActive(true);
projectDto.setRuleType(1);
Project project = new Project();
try {
FieldsMapper.map(projectDto, project);
} catch (Exception e) {
LOGGER.warn("map project dto to project may be some error");
e.printStackTrace();
}
try {
project.setID(UUID.randomUUID().toString());
OrganizationServiceTemplateGroupExample example = new OrganizationServiceTemplateGroupExample();
example.createCriteria().andOrganizationIDEqualTo(projectDto.getOrganizationID());
organizationServiceTemplateGroupMapper.selectByExample(example).forEach(ostg -> {
ProjectServiceType pst = new ProjectServiceType();
pst.setID(UUID.randomUUID().toString());
pst.setServiceTypeID(ostg.getServiceTypeID());
pst.setTemplateGroupID(ostg.getTemplateGroupID());
projectServiceTypeMapper.insert(pst);
operationLogService.addDataAddLog(pst, OperationModule.ProjectServiceType, userName,
Message.Project.AddProjectServiceType, pst.getID(), projectDto.getName(), LOG_TYPE);
});
project.setDbName(generateDatabase(project, projectDto.getEnterpriseAccountSetID()));
projectMapper.insert(project);
operationLogService.addDataAddLog(project, OperationModule.Project, userName, Message.Project.AddProject,
project.getID(), projectDto.getName(), LOG_TYPE);
AddProjectResult addProjectResult = new AddProjectResult();
addProjectResult.setResult(true);
addProjectResult.setdBname(project.getDbName());
addProjectResult.setProjectID(project.getID());
return addProjectResult;
}catch (Exception e){
operationLogService.addDataAddLog(null, OperationModule.Project, userName,
Message.Project.AddProjectFail, e.getMessage(), projectDto.getName(), LOG_TYPE);
AddProjectResult addProjectResult = new AddProjectResult();
addProjectResult.setResult(false);
addProjectResult.setResultMsg(e.getMessage());
return addProjectResult;
}
}
private String generateDatabase(Project project, String accsetid) {//TODO: should be impl future(neo)
return "db_test";
}
private String GenerateProjectDbName(String maxName, String year) {
year = year.substring(2);
String pre2 = maxName.charAt(0) + "", post2 = "";
int post = Integer.parseInt(maxName.substring(3)) + 1;
if (post >= 100000) {
Integer pre = Integer.parseInt(String.valueOf(maxName.charAt(0)));
pre2 = ((char)(pre+1))+"";
post2 = "00000";
} else if (post >= 10000) {
post2 = post + "";
} else if (post >= 1000) {
post2 = "0" + post;
} else if (post >= 100) {
post2 = "00" + post;
} else if (post >= 10) {
post2 = "000" + post;
} else {
post2 = "0000" + post;
}
return pre2 + year + post2;
}
private List<ProjectDisplayDto> getProjectFromEnterpriseAccountSetOrg(List<ProjectDisplayDto> pList, String orgID,
String serviceID, Integer projectYear) {
List<ProjectDisplayDto> list = new ArrayList<>();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment