|
@@ -2,15 +2,22 @@ package com.jeeplus.modules.projectrecord.service;
|
|
|
|
|
|
|
|
|
import com.jeeplus.common.service.CrudService;
|
|
|
+import com.jeeplus.common.utils.MyBeanUtils;
|
|
|
+import com.jeeplus.common.utils.ResponseUtil;
|
|
|
import com.jeeplus.common.utils.StringUtils;
|
|
|
+import com.jeeplus.common.utils.excel.ExportExcel;
|
|
|
+import com.jeeplus.modules.projectAccessory.dao.ProjectTemplateDao;
|
|
|
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
|
|
|
import com.jeeplus.modules.projectrecord.dao.ProjectPlanDao;
|
|
|
import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
|
|
|
import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
|
|
|
import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
|
|
|
import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
|
|
|
import com.jeeplus.modules.sys.entity.User;
|
|
|
+import com.jeeplus.modules.sys.entity.Workattachment;
|
|
|
import com.jeeplus.modules.sys.service.WorkattachmentService;
|
|
|
import com.jeeplus.modules.sys.utils.UserUtils;
|
|
|
+import com.jeeplus.modules.utils.SftpClientUtil;
|
|
|
import com.jeeplus.modules.workclientinfo.dao.WorkClientAttachmentDao;
|
|
|
import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
|
|
|
import com.jeeplus.modules.workprojectnotify.service.WorkProjectNotifyService;
|
|
@@ -18,7 +25,9 @@ import com.jeeplus.modules.workprojectnotify.util.UtilNotify;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
+import java.io.File;
|
|
|
import java.text.DateFormat;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
@@ -36,6 +45,8 @@ public class ProjectPlanService extends CrudService<ProjectPlanDao, ProjectPlanI
|
|
|
private WorkProjectNotifyService workProjectNotifyService;
|
|
|
@Autowired
|
|
|
private RuralProjectRecordsService ruralProjectRecordsService;
|
|
|
+ @Autowired
|
|
|
+ private ProjectTemplateDao projectTemplateDao;
|
|
|
|
|
|
|
|
|
public List<ProjectPlanInfo> getProjectPlanList(ProjectPlanInfo projectPlanInfo){
|
|
@@ -54,6 +65,12 @@ public class ProjectPlanService extends CrudService<ProjectPlanDao, ProjectPlanI
|
|
|
|
|
|
@Transactional(readOnly = false)
|
|
|
public void saveProjectPlanInfo(ProjectRecords projectRecords) throws ParseException {
|
|
|
+ ProjectRecords projectRecord = ruralProjectRecordsService.getProjectRecords(projectRecords.getId());
|
|
|
+ projectRecord.setWorkAttachments(getWorkAttachment(projectRecord.getId()));
|
|
|
+
|
|
|
+ //项目计划生成excel文件并保存到项目档案信息中
|
|
|
+ //查询其他资料对应附件结构信息
|
|
|
+ ProjectTemplateInfo templateInfo = projectTemplateDao.getProjectTemplateInfoByName("咨询企业作业计划书或咨询实施规划及细则");
|
|
|
|
|
|
Set masterIdSet = new HashSet();
|
|
|
//项目计划信息
|
|
@@ -170,6 +187,9 @@ public class ProjectPlanService extends CrudService<ProjectPlanDao, ProjectPlanI
|
|
|
workClientAttachment.setAttachmentUser(UserUtils.getUser().getId());
|
|
|
if (StringUtils.isBlank(workClientAttachment.getId()) || "null".equals(workClientAttachment.getId())){
|
|
|
workattachmentService.insertOnWorkClientAttachment(workClientAttachment);
|
|
|
+ workClientAttachment.setAttachmentId(templateInfo.getId());
|
|
|
+ workClientAttachment.setProjectId(projectRecord.getId());
|
|
|
+ workattachmentService.insertOnWorkClientAttachment(workClientAttachment);
|
|
|
}else{
|
|
|
workattachmentService.updateOnWorkClientAttachment(workClientAttachment);
|
|
|
}
|
|
@@ -177,6 +197,73 @@ public class ProjectPlanService extends CrudService<ProjectPlanDao, ProjectPlanI
|
|
|
workClientAttachmentDao.delete(workClientAttachment);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ try {
|
|
|
+ MyBeanUtils.copyBeanNotNull2Bean(projectRecords, projectRecord);//将编辑表单中的非NULL值覆盖数据库记录中的值
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ //文件名称
|
|
|
+ String fileName = "项目计划.xlsx";
|
|
|
+ String path = null;
|
|
|
+ if(System.getProperty("os.name").toLowerCase().contains("win")){
|
|
|
+ path = "D:/attachment-file/"+fileName;;
|
|
|
+ }else{
|
|
|
+ path = "/attachment-file/"+fileName;;
|
|
|
+ }
|
|
|
+ ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
|
|
|
+ projectPlanInfo.setProjectId(projectRecord.getId());
|
|
|
+ //获取项目计划信息
|
|
|
+ List<ProjectPlanInfo> projectPlanList = this.getProjectPlanList(projectPlanInfo);
|
|
|
+ new ExportExcel("项目计划", ProjectPlanInfo.class).setDataList(projectPlanList).writeFile(path).dispose();
|
|
|
+ //本地项目计划信息生成file文件
|
|
|
+ File file = new File(path);
|
|
|
+ //File转MultipartFile文件
|
|
|
+ SftpClientUtil sftpClientUtil = new SftpClientUtil();
|
|
|
+ MultipartFile mFile = sftpClientUtil.transformFile(file);
|
|
|
+ //文件上传oss
|
|
|
+ String uploadPath = null;
|
|
|
+ try {
|
|
|
+ uploadPath = ResponseUtil.uploadOss(mFile, "reportRecord");
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }finally {
|
|
|
+ //删除本地文件
|
|
|
+ if (!file.isDirectory()) {
|
|
|
+ file.delete();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(uploadPath)){
|
|
|
+ //将备考表添加到附件中
|
|
|
+ Workattachment workattachment = new Workattachment();
|
|
|
+ workattachment.setAttachmentId(templateInfo.getId());
|
|
|
+ workattachment.setProjectId(projectRecord.getId());
|
|
|
+ workattachment.setUrl(uploadPath);
|
|
|
+ workattachment.setType("xlsx");
|
|
|
+ workattachment.setAttachmentFlag("131");
|
|
|
+ workattachment.setAttachmentName("项目计划.xlsx");
|
|
|
+ workattachment.setAttachmentUser(UserUtils.getUser().getId());
|
|
|
+ workattachmentService.insertOnWorkAttachment(workattachment);
|
|
|
+
|
|
|
+ //判定上传的文件是否和已保存的附件id一样。不一样则将老数据删除
|
|
|
+ if (StringUtils.isNotBlank(projectRecord.getPlanAttachmentId()) && StringUtils.isNotBlank(workattachment.getId())) {
|
|
|
+ if(!projectRecord.getPlanAttachmentId().equals(workattachment.getId())){
|
|
|
+ workattachmentService.deleteById(projectRecord.getPlanAttachmentId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ projectRecord.setPlanAttachmentId(workattachment.getId());
|
|
|
+ //修改项目计划附件id信息
|
|
|
+ ruralProjectRecordsService.updatePlanInfo(projectRecord);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|