package com.nanometer.smartlab.controller;
|
|
import com.nanometer.smartlab.entity.BasePage;
|
import com.nanometer.smartlab.entity.SysProject;
|
import com.nanometer.smartlab.entity.SysUser;
|
import com.nanometer.smartlab.service.*;
|
import com.nanometer.smartlab.util.Constants;
|
import com.nanometer.smartlab.util.FacesUtils;
|
import org.apache.log4j.Logger;
|
import org.apache.shiro.subject.Subject;
|
import org.primefaces.context.RequestContext;
|
import org.primefaces.event.FileUploadEvent;
|
import org.primefaces.model.LazyDataModel;
|
import org.primefaces.model.SortOrder;
|
import org.springframework.context.annotation.Scope;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.util.CollectionUtils;
|
|
import javax.annotation.Resource;
|
import java.util.HashMap;
|
import java.util.Iterator;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
@Controller
|
@Scope("session")
|
public class ProjectMngController extends BaseController {
|
|
private static Logger logger = Logger.getLogger(ProjectMngController.class);
|
|
@Resource
|
private SysProjectService sysProjectService;
|
@Resource
|
private BasePageService basePageService;
|
@Resource
|
private SysUserService sysUserService;
|
@Resource
|
private OpeApplyService opeApplyService;
|
private LazyDataModel<SysProject> dataModel;
|
private SysProject sysProject;
|
private List<SysProject> selectedList;
|
private List<BasePage> basePageList;
|
private List<SysUser> sameDptUserList;
|
private Map<String, String> userIdNameMap;
|
private List<SysUser> userSelectList;
|
private int action;
|
|
private String projectId;
|
private String projectName;
|
private String sysUserName;
|
|
public static Logger getLogger() {
|
return logger;
|
}
|
|
public List<SysUser> getUserSelectList() {
|
if (userSelectList == null) {
|
this.initUserSelectList();
|
}
|
return userSelectList;
|
}
|
|
public SysUser getSelectedUserById(String userId) {
|
System.out.println(userId);
|
return userSelectList.stream().filter(u->u.getId().equals(userId)).findFirst().get();
|
}
|
|
public List<SysUser> getUserSelectList(String keyword) {
|
final String key = keyword.toLowerCase();
|
return userSelectList.stream().filter(u->u.getName().toLowerCase().contains(key)).collect(Collectors.toList());
|
}
|
|
private void initUserSelectList() {
|
logger.info("WarehouseStockMngController initUserSelectList start");
|
this.setUserSelectList(this.sysUserService.getSysUserList(null, null, null, null, null,null,null));
|
}
|
public void setUserSelectList(List<SysUser> userSelectList) {
|
this.userSelectList = userSelectList;
|
}
|
|
public static void setLogger(Logger logger) {
|
ProjectMngController.logger = logger;
|
}
|
|
public String getProjectId() {
|
return projectId;
|
}
|
|
public void setProjectId(String projectId) {
|
this.projectId = projectId;
|
}
|
|
public String getProjectName() {
|
return projectName;
|
}
|
|
public void setProjectName(String projectName) {
|
this.projectName = projectName;
|
}
|
|
public String getSysUserName() {
|
return sysUserName;
|
}
|
|
public void setSysUserName(String sysUserName) {
|
this.sysUserName = sysUserName;
|
}
|
|
public void onNewBtnClick() {
|
this.sysProject = new SysProject();
|
this.action = Constants.ACTION_ADD;
|
this.basePageList = this.basePageService.getBasePageList();
|
}
|
|
public void onEditBtnClick() {
|
if (this.selectedList == null
|
|| this.selectedList.size() == 0) {
|
FacesUtils.warn("请选择数据。");
|
return;
|
}
|
if (this.selectedList.size() > 1) {
|
FacesUtils.warn("只能选择一个数据进行修改。");
|
return;
|
}
|
this.sysProject = this.sysProjectService.getSysProject(this.selectedList.get(0).getId());
|
this.action = Constants.ACTION_EDIT;
|
this.basePageList = this.basePageService.getBasePageList();
|
RequestContext.getCurrentInstance().execute("PF('dialog').show()");
|
}
|
|
public void onSaveBtnClick() {
|
try {
|
// 新建
|
if (this.action == Constants.ACTION_ADD) {
|
if (this.sysProject == null) {
|
FacesUtils.warn("新建对象为空。");
|
return;
|
}
|
|
if (this.sysProject.getSysUserId() == null || this.sysProject.getSysUserId()=="") {
|
FacesUtils.warn("请选择课题负责人。");
|
return;
|
}
|
|
if (this.sysProject.getProjectId() == null || this.sysProject.getProjectId()=="") {
|
FacesUtils.warn("请输入课题编号。");
|
return;
|
}else {
|
if(sysProjectService.getProjectByProId(this.sysProject.getProjectId())!=null){
|
FacesUtils.warn("课题编号已存在,请重新输入。");
|
return;
|
}
|
}
|
|
BaseController c =new BaseController();
|
this.sysProject.setCreaterUser(c.getUserId());
|
this.sysProjectService.insertSysProject(this.sysProject);
|
|
FacesUtils.info("新建成功。");
|
RequestContext.getCurrentInstance().execute("PF('dialog').hide()");
|
// 修改
|
} else if (this.action == Constants.ACTION_EDIT) {
|
if (this.sysProject == null) {
|
FacesUtils.warn("修改对象为空。");
|
return;
|
}
|
|
if (this.sysProject.getSysUserId() == null) {
|
FacesUtils.warn("请选择课题负责人。");
|
return;
|
}
|
if (this.sysProject.getProjectId() == null || this.sysProject.getProjectId()=="") {
|
FacesUtils.warn("请输入课题编号。");
|
return;
|
}else {
|
SysProject sp=this.sysProjectService.getProjectByProId(this.sysProject.getProjectId());
|
if(sp!=null){
|
if(!sp.getId().equals(this.sysProject.getId())){
|
FacesUtils.warn("课题编号已存在,请重新输入。");
|
return;
|
}
|
}
|
}
|
SysProject pro=this.sysProjectService.getSysProject(this.sysProject.getId());
|
this.sysProjectService.updateSysProject(this.sysProject);
|
this.opeApplyService.updateOpeApplyProject(this.sysProject.getProjectId(),pro.getProjectId());
|
|
|
FacesUtils.info("修改成功。");
|
RequestContext.getCurrentInstance().execute("PF('dialog').hide()");
|
}
|
} catch (Exception e) {
|
logger.error("操作失败。", e);
|
FacesUtils.warn("操作失败。");
|
}
|
}
|
|
public void onDeleteBtnClick() {
|
try {
|
if (this.selectedList == null
|
|| this.selectedList.size() == 0) {
|
FacesUtils.warn("请选择数据。");
|
return;
|
}
|
|
this.sysProjectService.deleteSysProject(this.selectedList);
|
|
FacesUtils.info("删除成功。");
|
} catch (Exception e) {
|
logger.error("操作失败。", e);
|
FacesUtils.warn("操作失败。");
|
}
|
}
|
|
public List<SysUser> getSaysSameDptUserList() {
|
return sysUserService.getApproverUserList(null);
|
}
|
|
public LazyDataModel<SysProject> getDataModel() {
|
if (this.sameDptUserList == null) {
|
this.sameDptUserList = sysUserService.getApproverUserList(null);
|
if (!CollectionUtils.isEmpty(this.sameDptUserList)) {
|
userIdNameMap = new HashMap<>();
|
this.sameDptUserList.forEach(sysUser -> userIdNameMap.put(sysUser.getId(), sysUser.getName()));
|
}
|
}
|
|
if (this.dataModel == null) {
|
this.dataModel = new LazyDataModel<SysProject>() {
|
@Override
|
public List<SysProject> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
|
List<SysProject> list = null;
|
initUserSelectList();
|
try {
|
int count = sysProjectService.getSysProjectTotalCountUpdate(getUserId(),projectId,projectName,sysUserName);
|
this.setRowCount(count);
|
if (count > 0) {
|
list = sysProjectService.getSysProjectListUpdate(first, pageSize,getUserId(),projectId,projectName,sysUserName);
|
}
|
} catch (Exception e) {
|
logger.error(e);
|
}
|
return list;
|
}
|
|
@Override
|
public SysProject getRowData(String rowKey) {
|
Iterator<SysProject> iterator = this.iterator();
|
if (iterator != null) {
|
SysProject br = null;
|
while (iterator.hasNext()) {
|
br = iterator.next();
|
if (rowKey.equals(br.getId())) {
|
return br;
|
}
|
}
|
}
|
return null;
|
}
|
};
|
}
|
|
return dataModel;
|
}
|
|
public void uploadFile(FileUploadEvent event) {
|
try {
|
sysProjectService.importProject(event,getUser());
|
FacesUtils.info("导入成功");
|
} catch (Exception e) {
|
e.printStackTrace();
|
FacesUtils.warn(e.getMessage());
|
}
|
}
|
public SysProject getSysProject() {
|
return sysProject;
|
}
|
|
public void setSysProject(SysProject sysProject) {
|
this.sysProject = sysProject;
|
}
|
|
public List<SysProject> getSelectedList() {
|
return selectedList;
|
}
|
|
public void setSelectedList(List<SysProject> selectedList) {
|
this.selectedList = selectedList;
|
}
|
|
public List<BasePage> getBasePageList() {
|
return basePageList;
|
}
|
|
public int getAction() {
|
return action;
|
}
|
|
public List<SysUser> getSameDptUserList() {
|
return sameDptUserList;
|
}
|
|
public void setSameDptUserList(List<SysUser> sameDptUserList) {
|
this.sameDptUserList = sameDptUserList;
|
}
|
|
public Map<String, String> getUserIdNameMap() {
|
return userIdNameMap;
|
}
|
|
public void setUserIdNameMap(Map<String, String> userIdNameMap) {
|
this.userIdNameMap = userIdNameMap;
|
}
|
}
|