|
@@ -10,7 +10,9 @@ import com.jeeplus.modules.act.service.ActTaskService;
|
|
|
import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryRelationInfo;
|
|
|
import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
|
|
|
import com.jeeplus.modules.projectAccessory.service.ProjectTemplateService;
|
|
|
+import com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo;
|
|
|
import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
|
|
|
+import com.jeeplus.modules.projectcontentinfo.dao.ProjectReportDataDao;
|
|
|
import com.jeeplus.modules.projectcontentinfo.dao.ProjectcontentinfoDao;
|
|
|
import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
|
|
|
import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportRecord;
|
|
@@ -20,6 +22,7 @@ import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
|
|
|
import com.jeeplus.modules.projectcontentinfo.service.ProjectReportRecordService;
|
|
|
import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
|
|
|
import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
|
|
|
+import com.jeeplus.modules.projectrecord.enums.ProjectStatusEnum;
|
|
|
import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
|
|
|
import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
|
|
|
import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsReported;
|
|
@@ -28,6 +31,7 @@ import com.jeeplus.modules.ruralprojectrecords.entity.RuralReportConsultant;
|
|
|
import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageNewService;
|
|
|
import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageService;
|
|
|
import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
|
|
|
+import com.jeeplus.modules.sys.entity.Area;
|
|
|
import com.jeeplus.modules.sys.entity.MainDictDetail;
|
|
|
import com.jeeplus.modules.sys.entity.User;
|
|
|
import com.jeeplus.modules.sys.service.UserService;
|
|
@@ -89,6 +93,10 @@ public class RuralProjectMessageNewController extends BaseController {
|
|
|
private ProjectEngineeringService engineeringService;
|
|
|
@Autowired
|
|
|
private ProjectReportRecordService projectReportRecordService;
|
|
|
+ @Autowired
|
|
|
+ private RuralProjectMessageService ruralProjectMessageS;
|
|
|
+ @Autowired
|
|
|
+ private ProjectReportDataDao projectReportDataDao;
|
|
|
|
|
|
private static byte[] SYN_BYTE = new byte[0];
|
|
|
|
|
@@ -1228,4 +1236,265 @@ public class RuralProjectMessageNewController extends BaseController {
|
|
|
}
|
|
|
return "modules/ruralprojectrecords/record/projectReportRecordModify";
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 项目上报
|
|
|
+ * @param projectRecords
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "updateReported")
|
|
|
+ public String updateReported(RuralProjectRecords projectRecords, Model model) {
|
|
|
+ //查询上报信息表中是否含有数据,没有则进行获取基础数据
|
|
|
+ RuralProjectRecordsReported reported = ruralProjectMessageService.getRuralProjectRecordsReported(projectRecords.getId());
|
|
|
+ if(reported == null){
|
|
|
+ RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(projectRecords.getId());
|
|
|
+ projectRecordsService.queryProjectDetail(records);
|
|
|
+ Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectRecords.getId());
|
|
|
+ ProjectReportData projectReportData = projectReportDataService.getOnRural(projectcontentinfo1.getInfoId());
|
|
|
+ records.setReportData(projectReportData);
|
|
|
+ reported = ruralProjectMessageService.disposeData(records);
|
|
|
+
|
|
|
+ //合同价送审价审定价处理
|
|
|
+ if(StringUtils.isNotBlank(reported.getHeTongJia())){
|
|
|
+ Double heTongJia = Double.valueOf(reported.getHeTongJia())/10000;
|
|
|
+ reported.setHeTongJia(String.format("%.2f", heTongJia));
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(reported.getSongShenJia())){
|
|
|
+ Double songShenJia = Double.valueOf(reported.getSongShenJia())/10000;
|
|
|
+ reported.setSongShenJia(String.format("%.2f", songShenJia));
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(reported.getShenDingJia())){
|
|
|
+ Double shenDingJia = Double.valueOf(reported.getShenDingJia())/10000;
|
|
|
+ reported.setShenDingJia(String.format("%.2f", shenDingJia));
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(reported.getJingHeJianE())){
|
|
|
+ Double jingHeJianE = Double.valueOf(reported.getJingHeJianE())/10000;
|
|
|
+ reported.setJingHeJianE(String.format("%.2f", jingHeJianE));
|
|
|
+ }
|
|
|
+
|
|
|
+ ruralProjectMessageS.disposeProjectRecords(records,reported);
|
|
|
+ }
|
|
|
+ //根据上报id查询上报咨询员的信息
|
|
|
+ List<RuralReportConsultant> reportedConsultants=ruralProjectMessageS.getReportedConsultantsList(reported.getId());
|
|
|
+ //查询报告咨询员的信息
|
|
|
+ List<RuralReportConsultant> consultants=ruralProjectMessageService.getConsultantsList(projectRecords.getId());
|
|
|
+ List<RuralReportConsultant> consultantList = Lists.newArrayList();
|
|
|
+ if(reportedConsultants.size() == 0){
|
|
|
+ //如果上报的咨询员信息为空 则处理报告咨询员信息
|
|
|
+ consultantList = ruralProjectMessageS.disposeConsultant(consultants, projectRecords);
|
|
|
+ }else{
|
|
|
+ //对上报的咨询员进行处理
|
|
|
+ consultantList = ruralProjectMessageS.disposereportedConsultant(reportedConsultants);
|
|
|
+ }
|
|
|
+ RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(reported.getProjectId());
|
|
|
+ /*if(StringUtils.isBlank(reported.getProjectRecordId())){
|
|
|
+ reported.setProjectRecordId(records.getProjectId());
|
|
|
+ }*/
|
|
|
+ model.addAttribute("ruralProjectRecordsReported", reported);
|
|
|
+ //查询项目信息
|
|
|
+ model.addAttribute("ruralProjectRecords", records);
|
|
|
+ model.addAttribute("consultantInfo", consultantList);
|
|
|
+ if(StringUtils.isBlank(reported.getS1())){
|
|
|
+ reported.setS1("10");
|
|
|
+ }
|
|
|
+ //获取工程类型
|
|
|
+ ProjectEngineeringInfo engineeringInfos=engineeringService.getProjectReportedType(reported.getPorjectUse());
|
|
|
+ model.addAttribute("engineeringInfo", engineeringInfos);
|
|
|
+ List<Area> areaList = ruralProjectMessageS.getProjectReportedAreaByParentId(reported.getS1());
|
|
|
+ model.addAttribute("cityList", areaList);
|
|
|
+ return "modules/ruralprojectrecords/ruralporjectmessage/newReported/reportedForm";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 项目上报
|
|
|
+ * @param projectRecords
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "reportedModify")
|
|
|
+ public String reportedModify(RuralProjectRecords projectRecords, Model model) {
|
|
|
+ //查询上报信息表中是否含有数据,没有则进行获取基础数据
|
|
|
+ RuralProjectRecordsReported reported = ruralProjectMessageService.getRuralProjectRecordsReported(projectRecords.getId());
|
|
|
+ ProcessInstance processInstance = actTaskService.getProcIns(reported.getProcessInstanceId());
|
|
|
+ if (processInstance!=null) {
|
|
|
+ Task taskInfok = actTaskService.getCurrentTaskInfo(processInstance);
|
|
|
+ Act act = new Act();
|
|
|
+ act.setTaskId(taskInfok.getId());
|
|
|
+ act.setTaskName(taskInfok.getName());
|
|
|
+ act.setTaskDefKey(taskInfok.getTaskDefinitionKey());
|
|
|
+ act.setProcDefId(taskInfok.getProcessDefinitionId());
|
|
|
+ act.setProcInsId(taskInfok.getProcessInstanceId());
|
|
|
+ act.setTask(taskInfok);
|
|
|
+ reported.setAct(act);
|
|
|
+ }
|
|
|
+ RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(reported.getProjectId());
|
|
|
+ //根据上报id查询上报咨询员的信息
|
|
|
+ List<RuralReportConsultant> reportedConsultants=ruralProjectMessageS.getReportedConsultantsList(reported.getId());
|
|
|
+ //对上报的咨询员进行处理
|
|
|
+ List<RuralReportConsultant> consultantList = ruralProjectMessageS.disposereportedConsultant(reportedConsultants);
|
|
|
+
|
|
|
+ //获取工程类型
|
|
|
+ ProjectEngineeringInfo engineeringInfos=engineeringService.getProjectReportedType(reported.getPorjectUse());
|
|
|
+ model.addAttribute("engineeringInfo", engineeringInfos);
|
|
|
+ List<Area> areaList = ruralProjectMessageS.getProjectReportedAreaByParentId(reported.getS1());
|
|
|
+ model.addAttribute("cityList", areaList);
|
|
|
+ //查询项目信息
|
|
|
+ model.addAttribute("ruralProjectRecords", records);
|
|
|
+ model.addAttribute("consultantInfo", consultantList);
|
|
|
+ model.addAttribute("ruralProjectRecordsReported", reported);
|
|
|
+ return "modules/ruralprojectrecords/ruralporjectmessage/newReported/reportedModify";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存报告并提交审核
|
|
|
+ * @param reported
|
|
|
+ * @param redirectAttributes
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "saveReported")
|
|
|
+ public String saveReported(RuralProjectRecordsReported reported, RedirectAttributes redirectAttributes) throws Exception {
|
|
|
+ if(!BaseController.REPORTSWITCH){
|
|
|
+ addMessage(redirectAttributes, "项目上报失败:上报管理员已关闭上报模块");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
+ }
|
|
|
+ String str = "";
|
|
|
+ if(!reported.getIsNewRecord()){//编辑表单保存
|
|
|
+ ruralProjectMessageService.disposeList(reported);
|
|
|
+ RuralProjectRecordsReported t = ruralProjectMessageService.getRuralProjectRecordsReportedById(reported.getId());;//从数据库取出记录的值
|
|
|
+ MyBeanUtils.copyBeanNotNull2Bean(reported, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
|
|
|
+ str = ruralProjectMessageService.saveReportedInfo(t, ProjectStatusEnum.IN_APRL);
|
|
|
+ }else{//新增表单保存
|
|
|
+ str = ruralProjectMessageService.saveReportedInfo(reported, ProjectStatusEnum.IN_APRL);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(str)){
|
|
|
+ addMessage(redirectAttributes, "项目上报失败:"+str);
|
|
|
+ }else {
|
|
|
+ addMessage(redirectAttributes, "项目上报成功");
|
|
|
+ }
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 保存报告并提交审核
|
|
|
+ * @param reported
|
|
|
+ * @param redirectAttributes
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "tstore")
|
|
|
+ public String tstore(RuralProjectRecordsReported reported, RedirectAttributes redirectAttributes) throws Exception {
|
|
|
+ if(!BaseController.REPORTSWITCH){
|
|
|
+ addMessage(redirectAttributes, "项目上报失败:上报管理员已关闭上报模块");
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
+ }
|
|
|
+ String str = "";
|
|
|
+ if(!reported.getIsNewRecord()){//编辑表单保存
|
|
|
+ ruralProjectMessageService.disposeList(reported);
|
|
|
+ RuralProjectRecordsReported t = ruralProjectMessageService.getRuralProjectRecordsReportedById(reported.getId());;//从数据库取出记录的值
|
|
|
+ MyBeanUtils.copyBeanNotNull2Bean(reported, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
|
|
|
+ str = ruralProjectMessageService.saveReportedInfo(t, ProjectStatusEnum.TSTORE);
|
|
|
+ }else{//新增表单保存
|
|
|
+ str = ruralProjectMessageService.saveReportedInfo(reported, ProjectStatusEnum.TSTORE);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(str)){
|
|
|
+ addMessage(redirectAttributes, "项目上报暂存失败:"+str);
|
|
|
+ }else {
|
|
|
+ addMessage(redirectAttributes, "项目上报暂存成功");
|
|
|
+ }
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 工单执行(完成任务)
|
|
|
+ * @param model
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "auditSaveReported")
|
|
|
+ public String auditSaveReported(RuralProjectRecordsReported reported, Model model,
|
|
|
+ RedirectAttributes redirectAttributes) {
|
|
|
+ try {
|
|
|
+ //判断是否关闭上报功能
|
|
|
+ if (!BaseController.REPORTSWITCH){
|
|
|
+ addMessage(redirectAttributes, "重新申请失败:上报管理员已关闭上报功能");
|
|
|
+ if (StringUtils.isNotBlank(reported.getHome()) && "home".equals(reported.getHome())){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/home/?repage";
|
|
|
+ }else if (StringUtils.isNotBlank(reported.getHome()) && "notifyList".equals(reported.getHome())){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/workprojectnotify/workProjectNotify/list/?repage";
|
|
|
+ }else {
|
|
|
+ RuralProjectRecords ruralProjectRecords = projectRecordsService.get(reported.getProjectId());
|
|
|
+ if(null != ruralProjectRecords){
|
|
|
+ if("1".equals(ruralProjectRecords.getProjectType())){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralProjectMessage/?repage";
|
|
|
+ }else if("2".equals(ruralProjectRecords.getProjectType())){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralCostProjectMessage/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ruralProjectMessageService.disposeList(reported);
|
|
|
+ RuralProjectRecordsReported t = ruralProjectMessageService.getRuralProjectRecordsReportedById(reported.getId());;//从数据库取出记录的值
|
|
|
+ MyBeanUtils.copyBeanNotNull2Bean(reported, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
|
|
|
+
|
|
|
+ String taskDefKey = t.getAct().getTaskDefKey();
|
|
|
+ List<User> users = null;
|
|
|
+ if ("bmzr".equals(taskDefKey)){
|
|
|
+ users = UserUtils.getByProssType(t.getProcessInstanceId(),2);
|
|
|
+ if (users==null )
|
|
|
+ users = UserUtils.getByRoleActivityEnname("sbglyyjla",3,t.getOffice().getId(),"4",t.getCreateBy());
|
|
|
+ }else if ("bzshb".equals(taskDefKey)){//总工审核
|
|
|
+ //获取项目信息
|
|
|
+ ProjectRecords projectRecords = projectRecordsServices.getRuralMasters(reported.getProjectId());
|
|
|
+ //查询报告信息
|
|
|
+ ProjectReportData projectReportData = projectReportDataDao.getProjectReportData(projectRecords.getId());
|
|
|
+ //查询报告审核总审人员
|
|
|
+ User zsUser = UserUtils.get(projectReportData.getBzshbUserId());
|
|
|
+ users = Lists.newArrayList();
|
|
|
+ users.add(zsUser);
|
|
|
+ }else if ("modifyApply".equals(taskDefKey)){
|
|
|
+ //判断审核增减率
|
|
|
+ //判断审核增减率是否大于30%(大于则为false,否则为true)
|
|
|
+ if(Double.valueOf(reported.getJingHeJianLv())>30 && "10".equals(reported.getProjectType())){
|
|
|
+ //获取项目信息
|
|
|
+ ProjectRecords projectRecords = projectRecordsServices.getRuralMasters(reported.getProjectId());
|
|
|
+ //查询报告信息
|
|
|
+ ProjectReportData projectReportData = projectReportDataDao.getProjectReportData(projectRecords.getId());
|
|
|
+ //查询报告审核总审人员
|
|
|
+ User zsUser = UserUtils.get(projectReportData.getBzshbUserId());
|
|
|
+ users = Lists.newArrayList();
|
|
|
+ users.add(zsUser);
|
|
|
+ }else{
|
|
|
+ users = UserUtils.getByRoleActivityEnname("sbglyyjla",3,t.getOffice().getId(),"4",t.getCreateBy());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ String flag = reported.getAct().getFlag();
|
|
|
+ if ("yes".equals(flag) && (users==null || users.size()==0)){
|
|
|
+ addMessage(redirectAttributes, "审批失败,审批人为空,请联系管理员!");
|
|
|
+ }else {
|
|
|
+ String str = ruralProjectMessageService.auditSaveReported(t, users);
|
|
|
+ addMessage(redirectAttributes, str);
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ addMessage(redirectAttributes, "上报流程审批失败");
|
|
|
+ logger.error("Exception e:"+e);
|
|
|
+ }
|
|
|
+ RuralProjectRecords ruralProjectRecords = projectRecordsService.get(reported.getProjectId());
|
|
|
+ if (StringUtils.isNotBlank(reported.getHome()) && "home".equals(reported.getHome())){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/home/?repage";
|
|
|
+ }else if (StringUtils.isNotBlank(reported.getHome()) && "notifyList".equals(reported.getHome())){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/workprojectnotify/workProjectNotify/list/?repage";
|
|
|
+ }else {
|
|
|
+ if(null != ruralProjectRecords){
|
|
|
+ if("1".equals(ruralProjectRecords.getProjectType())){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralProjectMessage/?repage";
|
|
|
+ }else if("2".equals(ruralProjectRecords.getProjectType())){
|
|
|
+ return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralCostProjectMessage/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|