[user3] 3 rokov pred
rodič
commit
43ee8588b6
17 zmenil súbory, kde vykonal 562 pridanie a 133 odobranie
  1. 35 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectMessageAllDao.java
  2. 3 1
      src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectMessageElectronicSealDao.java
  3. 1 1
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/ImportBRuralProjectRecords.java
  4. 12 11
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/ProjectReportSignatureInfo.java
  5. 2 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectRecords.java
  6. 44 45
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageAllService.java
  7. 58 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageElectronicSealService.java
  8. 13 13
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java
  9. 0 57
      src/main/java/com/jeeplus/modules/ruralprojectrecords/utils/AsposeUtil.java
  10. 1 1
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectRecordsController.java
  11. 7 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageAllController.java
  12. 1 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageController.java
  13. 40 1
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageElectronicSealController.java
  14. 1 0
      src/main/java/com/jeeplus/modules/workinvoice/service/WorkInvoiceService.java
  15. 165 0
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageAllDao.xml
  16. 176 3
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageElectronicSealDao.xml
  17. 3 0
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/electronicSeal/ruralProjectMessageElectronicSealList.jsp

+ 35 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectMessageAllDao.java

@@ -5,6 +5,7 @@ package com.jeeplus.modules.ruralprojectrecords.dao;
 
 import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.ruralprojectrecords.entity.DownloadProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.entity.DownloadProjectReporteds;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
@@ -108,4 +109,38 @@ public interface RuralProjectMessageAllDao extends CrudDao<RuralProjectRecords>
      * @return
      */
     String getListMoney(RuralProjectRecords ruralProjectRecords);
+
+    /**
+     * 根据项目名称查询项目存在数量
+     * @param projectNameList
+     * @return
+     */
+    Integer getProjectByNameList(@Param("projectNameList") List<String> projectNameList);
+
+    /*
+    * 根据报告号查项目编号以此到施工方
+    * */
+    String getIdByReportNumber(String reportNumber);
+
+    /*
+    * 根据报告号查有无
+    * */
+//    String selectByReportNumber();
+
+    /*
+    * 更新records
+    * */
+    void updataReords(RuralProjectRecords ruralProjectRecords);
+
+    //查合同id
+    String getHeTongId(String proId);
+    //依此改合同金额
+    void updateContractPrice(RuralProjectRecords ruralProjectRecords);
+    //查施工单位id
+    String selectIdBySGDW(RuralProjectRecords ruralProjectRecords);
+    //条件查询联系人,补全
+    String selectlxr(String infoid);
+    //添加
+    void insertSGDW(RuralProjectRecords ruralProjectRecords);
+
 }

+ 3 - 1
src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectMessageElectronicSealDao.java

@@ -10,5 +10,7 @@ import com.jeeplus.modules.ruralprojectrecords.entity.ProjectReportSignatureInfo
  **/
 @MyBatisDao
 public interface RuralProjectMessageElectronicSealDao extends CrudDao<ProjectReportSignatureInfo> {
-
+    String getAchivesIdByName(String name);
+    String getId(String staffId);
+    String getProjectReportId(String projectReportId);
 }

+ 1 - 1
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/ImportBRuralProjectRecords.java

@@ -80,7 +80,7 @@ public class ImportBRuralProjectRecords extends ActEntity<ImportBRuralProjectRec
 		return leaderName;
 	}
 	@ExcelField(title="项目负责人", align=2, sort=8)
-	public String getProjectMasterName() {
+	public String 	getProjectMasterName() {
 		return projectMasterName;
 	}
 	@ExcelField(title="工程类型名称", align=2, sort=9)

+ 12 - 11
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/ProjectReportSignatureInfo.java

@@ -7,6 +7,7 @@ import com.jeeplus.common.persistence.ActEntity;
 import com.jeeplus.common.utils.excel.annotation.ExcelField;
 
 import javax.net.ssl.SSLContext;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -42,8 +43,8 @@ public class ProjectReportSignatureInfo extends ActEntity<ProjectReportSignature
 	private String projectScaleContentScope;//工程规模内容和范围
 	private String mainContentsOfProject;//工程主要内容
 	private String totalContractPrice; //合同总价
-	private Date ContractStartDate; //合同开工日期
-	private Date ContractEndDate;   //合同竣工日期
+	private Date contractStartDate; //合同开工日期
+	private Date contractEndDate;   //合同竣工日期
 	private Date actualStartDate;   //实际开工日期
 	private Date actualEndDate;     //实际竣工日期
 	private Date completionAcceptanceDate;//竣工验收日期
@@ -64,7 +65,7 @@ public class ProjectReportSignatureInfo extends ActEntity<ProjectReportSignature
 	private String projectCostConsultingContract;//工程造价咨询合同
 	private String settlementPricingBasisDocument;//结算计价依据文件
 	private String materialsAndEquipmentByA;//甲供材及设备情况
-	private String AMaterialsByB;    //甲控乙供材情况
+	private String aMaterialsByB;    //甲控乙供材情况
 	private String rewardAndPunishmentFees;//奖惩费情况
 	private String waterAndElectricityFeesHandleSituation;//水电费处理情况
 	private String constructionQualityWarrantyDeposit;//工程质量保修金处理情况
@@ -271,19 +272,19 @@ public class ProjectReportSignatureInfo extends ActEntity<ProjectReportSignature
 	}
 
 	public Date getContractStartDate() {
-		return ContractStartDate;
+		return contractStartDate;
 	}
 
 	public void setContractStartDate(Date contractStartDate) {
-		ContractStartDate = contractStartDate;
+		this.contractStartDate = contractStartDate;
 	}
 
 	public Date getContractEndDate() {
-		return ContractEndDate;
+		return contractEndDate;
 	}
 
 	public void setContractEndDate(Date contractEndDate) {
-		ContractEndDate = contractEndDate;
+		this.contractEndDate = contractEndDate;
 	}
 
 	public Date getActualStartDate() {
@@ -446,12 +447,12 @@ public class ProjectReportSignatureInfo extends ActEntity<ProjectReportSignature
 		this.materialsAndEquipmentByA = materialsAndEquipmentByA;
 	}
 
-	public String getAMaterialsByB() {
-		return AMaterialsByB;
+	public String getaMaterialsByB() {
+		return aMaterialsByB;
 	}
 
-	public void setAMaterialsByB(String AMaterialsByB) {
-		this.AMaterialsByB = AMaterialsByB;
+	public void setaMaterialsByB(String aMaterialsByB) {
+		this.aMaterialsByB = aMaterialsByB;
 	}
 
 	public String getRewardAndPunishmentFees() {

+ 2 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectRecords.java

@@ -110,6 +110,8 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	private String flagArchive;  //归档员判定
 	private String projectProperties;//投资性质
 
+
+
 	@NotNull(message = "委托方联系人不能为空")
 	private List<WorkClientLinkman> workClientLinkmanList;		// 委托方联系人
 	private List<WorkClientLinkman> workConstructionLinkmanList;		// 施工方及联系人

+ 44 - 45
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageAllService.java

@@ -1,29 +1,39 @@
 package com.jeeplus.modules.ruralprojectrecords.service;
 
+import com.jeeplus.common.config.Global;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.CrudService;
 import com.jeeplus.common.utils.Collections3;
-import com.jeeplus.common.utils.MenuStatusEnum;
+import com.jeeplus.modules.projectAccessory.dao.ProjectTemplateDao;
+import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
 import com.jeeplus.modules.projectFilingBatch.dao.ProjectFilingBatchDao;
 import com.jeeplus.modules.projectFilingBatch.dao.ProjectFilingbatchRelationDao;
 import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingBatch;
 import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingbatchRelation;
+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.projectrecord.entity.ProjectRecordTreeData;
-import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectreportnum.service.ProjectReportNumService;
+import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectClientLinkmanDao;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectMessageAllDao;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralWorkProjectUserDao;
 import com.jeeplus.modules.ruralprojectrecords.entity.*;
+import com.jeeplus.modules.serialnum.service.SerialNumTplService;
+import com.jeeplus.modules.sys.dao.UserDao;
 import com.jeeplus.modules.sys.entity.*;
+import com.jeeplus.modules.sys.service.AreaService;
 import com.jeeplus.modules.sys.service.OfficeService;
 import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.dao.WorkClientAttachmentDao;
 import com.jeeplus.modules.workclientinfo.dao.WorkClientLinkmanDao;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
 import com.jeeplus.modules.workclientinfo.service.WorkClientInfoService;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import com.jeeplus.modules.workcontractinfo.service.WorkContractInfoService;
-import com.jeeplus.modules.workinvoice.entity.WorkInvoice;
 import com.jeeplus.modules.workprojectnotify.entity.WorkProjectNotify;
 import com.jeeplus.modules.workprojectnotify.service.WorkProjectNotifyService;
 import jersey.repackaged.com.google.common.collect.Lists;
@@ -46,6 +56,14 @@ import java.util.*;
 @Service
 @Transactional(readOnly = true)
 public class RuralProjectMessageAllService extends CrudService<RuralProjectMessageAllDao, RuralProjectRecords> {
+    /**
+     * 阿里云文件服务器前缀
+     */
+    private final static String aliyunUrl = Global.getConfig("aliyunUrl");
+    /**
+     * 百度云文件服务器前缀
+     */
+    private final static String bosUrl = Global.getConfig("bosUrl");
     @Autowired
     private RuralWorkProjectUserDao workProjectUserDao;
     @Autowired
@@ -66,6 +84,28 @@ public class RuralProjectMessageAllService extends CrudService<RuralProjectMessa
     private WorkProjectNotifyService workProjectNotifyService;
     @Autowired
     private OfficeService officeService;
+    @Autowired
+    private AreaService areaService;
+    @Autowired
+    private ProjectEngineeringService engineeringService;
+    @Autowired
+    private UserDao userDao;
+    @Autowired
+    private SerialNumTplService serialNumTplService;
+    @Autowired
+    private ProjectTemplateDao projectTemplateDao;
+    @Autowired
+    private WorkClientAttachmentDao workClientAttachmentDao;
+    @Autowired
+    private ProjectReportDataDao projectReportDataDao;
+    @Autowired
+    private ProjectReportNumService projectReportNumService;
+    @Autowired
+    private ProjectcontentinfoDao projectcontentinfoDao;
+    @Autowired
+    private RuralProjectClientLinkmanDao clientLinkmanDao;
+    @Autowired
+    private RuralProjectMessageAllDao ruralProjectMessageAllDao;
 
     public RuralProjectRecords get(String id) {
         return super.get(id);
@@ -73,7 +113,7 @@ public class RuralProjectMessageAllService extends CrudService<RuralProjectMessa
     public List<RuralProjectRecords> findList(RuralProjectRecords projectRecords) {
         return super.findList(projectRecords);
     }
-
+    private static byte[] SYN_BYTE = new byte[0];
     public Page<RuralProjectRecords> findPage(Page<RuralProjectRecords> page, RuralProjectRecords projectRecords) {
         //查询超期时间天数
         List<MainDictDetail> adventCount = DictUtils.getMainDictListOnProjectAdvent("advent_count");
@@ -1067,47 +1107,6 @@ public class RuralProjectMessageAllService extends CrudService<RuralProjectMessa
     }
 
 
-    public Page<RuralProjectRecords> findSignaturePage(Page<RuralProjectRecords> page, RuralProjectRecords projectRecords) {
-        //设置数据权限
-        if(!UserUtils.getUser().isAdmin()) {
-            String dataScopeSql = dataScopeFilterOR(projectRecords.getCurrentUser(), "o", "u", "s", MenuStatusEnum.OVERALL_WORK_RECORD_LIST.getValue());
-            projectRecords.getSqlMap().put("dsf", dataScopeSql);
-        }
-        //查询超期时间天数
-        List<MainDictDetail> adventCount = DictUtils.getMainDictListOnProjectAdvent("advent_count");
-        if(adventCount.size()>0){
-            //获取超期时间天数转int
-            Integer endingCount = Integer.parseInt(adventCount.get(0).getLabel());
-            projectRecords.setEndingCount(endingCount);
-        }
-        if(null!= projectRecords.getOffice() && StringUtils.isNotBlank(projectRecords.getOffice().getId())){
-            //查询该选择节点下所有的部门Id
-            List<String> officeIdList = officeService.getChildrenOffice(projectRecords.getOffice().getId());
-            officeIdList.add(projectRecords.getOffice().getId());
-            projectRecords.setOfficeIdList(officeIdList);
-        }
-
-        int count = dao.queryCount(projectRecords);
-        page.setCount(count);
-        page.setCountFlag(false);
-        projectRecords.setPage(page);
-        List<RuralProjectRecords> recordsList = findList(projectRecords);
-
 
-        //查询负责人信息
-        for (RuralProjectRecords records : recordsList) {
-            if(null != records.getRecordState() && 0 == records.getProjectReportRecordStatus()){
-                records.setProjectReportRecordStatus(records.getRecordState());
-            }
-            this.queryContractInfos(records);
-            //获取项目负责人
-            List<User> users = workProjectUserDao.getProjectprincipalList(records.getId());
-            records.setProjectLeaders(users);
-            records.setLeaderNameStr(Collections3.extractToString(users, "name", ","));
-            records.setLeaderIds(Collections3.extractToString(users, "id", ","));
 
-        }
-        page.setList(recordsList);
-        return page;
-    }
 }

+ 58 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageElectronicSealService.java

@@ -18,6 +18,7 @@ import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import com.jeeplus.modules.workcontractinfo.service.WorkContractInfoService;
 import com.jeeplus.modules.workstaff.entity.WorkStaffCertificate;
 import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -370,4 +371,61 @@ public class RuralProjectMessageElectronicSealService extends CrudService<RuralP
         return format;
     }
 
+    /**
+     * B类项目批量导入
+     * @param list
+     * @return
+     */
+    @Transactional(readOnly = false)
+    public String disposeImportBRuralProjectRecords(List<ProjectReportSignatureInfo> list){
+        Set<String> projectReportIdSet = new HashSet<>();
+        for (ProjectReportSignatureInfo importInfo : list){
+            //将报告号放入set中
+            projectReportIdSet.add(importInfo.getProjectReportId());
+        }
+        //将set转换为list
+        List<String> projectReportIdList = new ArrayList<>(projectReportIdSet);
+        //判断报告号list长度和导入数据的list长度是否一样,不一样则说明导入数据中项目名存在重复数据
+        if(projectReportIdList.size() != list.size()){
+            return "数据中存在重复报告号";
+        }else{
+            //根据项目名称集合查询项目信息是否存在
+            for(String projectReportId:projectReportIdList) {
+                ProjectReportSignatureInfo info = dao.get(projectReportId);
+                String number = dao.getProjectReportId(projectReportId);
+                if(info != null){
+                    return "数据中已存在重复报告名";
+                }else if(number == null){
+                    return "此报告号不存在";
+                }
+
+            }
+        }
+
+        //对咨询员的一级造价师进行查验
+        Set<String> consultantSet = new HashSet<>();
+        for(ProjectReportSignatureInfo projectReportSignatureInfo:list){
+            consultantSet.add(projectReportSignatureInfo.getConsultant());
+        }
+        Iterator<String> it = consultantSet.iterator();
+        while(it.hasNext()){
+            String staffId = dao.getAchivesIdByName(it.next());
+            String isId = dao.getId(staffId);
+            if(staffId == null){
+                return "未查找到该咨询员";
+            }else if(isId == null){
+                return it.next()+"该咨询员未持有一级造价师证!";
+            }
+        }
+
+
+        //对 (经过判断的) 数据进行新增处理
+        for (ProjectReportSignatureInfo projectReportSignatureInfo: list) {
+            dao.insert(projectReportSignatureInfo);
+
+        }
+        return "导入B类项目成功";
+    }
+
+
 }

+ 13 - 13
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -2406,21 +2406,21 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 					&& StringUtils.isBlank(info.getWhetherReportNumber())
 					&& StringUtils.isBlank(info.getSubmitScaleStr())
 					&& StringUtils.isBlank(info.getAttachmentProjectSort())){
-				iterator.remove();
+				iterator.remove();   //第一步  项目信息就均为空了,这行数据就不用在往下执行了
 			}
 		}
 		for (ImportBRuralProjectRecords importBRuralProjectRecords : list){
 			//将项目名放入set中
 			projectNameSet.add(importBRuralProjectRecords.getProjectName());
 		}
-		//将set转换为list
+		//将set转换为list    循环放的项目名  组
 		List<String> projectNameList = new ArrayList<>(projectNameSet);
 		//判断项目名list长度和导入数据的list长度是否一样,不一样则说明导入数据中项目名存在重复数据
 		if(projectNameList.size() != list.size()){
 			return "数据中存在重复项目名";
 		}else{
 			//根据项目名称集合查询项目信息是否存在
-			Integer projectByNameList = dao.getProjectByNameList(projectNameList);
+				Integer projectByNameList = dao.getProjectByNameList(projectNameList);
 			if(projectByNameList>0){
 				return "数据中存在重复项目名";
 			}
@@ -2472,7 +2472,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				//项目所在地处理
 				List<String> areaNameList = Arrays.asList(importBRuralProjectRecords.getAreaName().split("-"));
 				if(areaNameList.size() == 2){
-					//根据名称查询省级单位信息
+					//根据名称查询省级单位信息  父节点信息
 					Area province = areaService.getByNameAndParentId(areaNameList.get(0),"1");
 					if(null == province ){
 						return "项目所在地填写错误,查询不到省级信息";
@@ -2510,7 +2510,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				}
 
 				//判断投资性质
-				List<MainDictDetail> projectPropertiesList = DictUtils.getMainDictList("project_properties");
+				List<MainDictDetail> projectPropertiesList = DictUtils.getMainDictList("project_properties");  //获取投资性质?
 				for (MainDictDetail projectProperties: projectPropertiesList) {
 					if(projectProperties.getLabel().equals(importBRuralProjectRecords.getProjectProperties())){
 						projectRecords.setProjectProperties(projectProperties.getValue());
@@ -2533,13 +2533,13 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 					return "项目类别填写有误";
 				}
 				if("5".equals(projectRecords.getAttachmentProjectSort()) || "6".equals(projectRecords.getAttachmentProjectSort())){
-					projectRecords.setReportedState("10");
+					projectRecords.setReportedState("10");   //上报状态
 				}else{
 					projectRecords.setReportedState(null);
 				}
 
 				//判断工程类型
-				List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
+				List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());  //这能有数据?
 				for (ProjectEngineeringInfo engineeringInfo: engineeringInfos) {
 					if(engineeringInfo.getEngineeringName().equals(importBRuralProjectRecords.getEngineeringName())){
 						//判定当前的数据是否存在子集,如果存在子集则不允许添加
@@ -2626,7 +2626,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				projectRecords.setSubmitScale(submitScale);
 
 				//处理项目责任人
-				User userLeader = UserUtils.getByUserName(importBRuralProjectRecords.getLeaderName());
+				User userLeader = UserUtils.getByUserName(importBRuralProjectRecords.getLeaderName());  //根据姓名转换为ID
 				if(null == userLeader){
 					return "无法查询到项目责任人";
 				}
@@ -2691,7 +2691,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 			}
 		}
 
-		//对数据进行新增处理
+		//对 (经过判断的) 数据进行新增处理
 		for (RuralProjectRecords projectRecords: projectRecordsList) {
 			//添加创建人信息
 			projectRecords.preInsert();
@@ -2706,8 +2706,8 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 
 			//项目送审之后处理项目合同文件信息
 			//查询咨询合同附件类型id
-			ProjectTemplateInfo projectTemplateInfo = projectTemplateDao.getProjectTemplateInfoByName("咨询合同");
-			//删除该项目咨询合同类型中老合同对应的附件信息
+			ProjectTemplateInfo projectTemplateInfo = projectTemplateDao.getProjectTemplateInfoByName("咨询合同");  //根据名称查询信息    11
+			//删除该项目咨询合同类型中老合同对应的附件信息   是不是就是合同附件表
 			WorkClientAttachment attchment = new WorkClientAttachment();
 			attchment.setAttachmentId(projectTemplateInfo.getId());
 			attchment.setProjectId(projectRecords.getId());
@@ -2744,7 +2744,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				return "是否生成报告填写不正确";
 			}
 
-			//添加项目工作内容表
+			//添加项目工作内容表      电子签章用不上不管
 			Projectcontentinfo projectcontentinfo = null;
 			if(StringUtils.isNotBlank(projectRecords.getId())){
 				projectcontentinfo = projectcontentinfoDao.getByProjectId(projectRecords.getId());
@@ -2759,7 +2759,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 			projectcontentinfo.setParentIds("0,");
 			projectcontentinfo.setParent(new Projectcontentinfo("0"));
 			projectcontentinfo.setName(projectRecords.getProjectId());
-			if (StringUtils.isNotBlank(projectcontentinfo.getId())){
+			if (StringUtils.isNotBlank(projectcontentinfo.getId())){    //id有,就更新,没有就插入(新增)
 				projectcontentinfoDao.update(projectcontentinfo);
 			}else{
 				projectcontentinfo.preInsert();

+ 0 - 57
src/main/java/com/jeeplus/modules/ruralprojectrecords/utils/AsposeUtil.java

@@ -1,57 +0,0 @@
-package com.jeeplus.modules.ruralprojectrecords.utils;
-
-
-import com.aspose.words.Document;
-import com.aspose.words.License;
-import com.aspose.words.SaveFormat;
-
-import java.io.*;
-
-/**
- * @author: 大猫
- * @create: 2021-11-01 09:43
- * description : Aspose工具类
- **/
-
-public class AsposeUtil {
-
-    /**
-     * 加载license 用于破解 不生成水印
-     *
-     * @author LCheng
-     * @date 2020/12/25 13:51
-     */
-    private static void getLicense() {
-        try {
-            InputStream is = AsposeUtil.class.getClassLoader().getResourceAsStream("License.xml");
-            License license = new License();
-            license.setLicense(is);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * word转pdf
-     *
-     * @param wordPath word文件保存的路径
-     * @param pdfPath  转换后pdf文件保存的路径
-     * @author LCheng
-     * @date 2020/12/25 13:51
-     */
-    public static void wordToPdf(String wordPath, String pdfPath) {
-        getLicense();
-        File file = new File(pdfPath);
-        try {
-            FileOutputStream os = new FileOutputStream(file);
-            Document doc = new Document(wordPath);
-            doc.save(os, SaveFormat.PDF);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    public static void main(String[] args) {
-        wordToPdf("E:/桌面/红、绿、蓝——苏兴造字2021【】(1).doc","E:/桌面/test.pdf");
-    }
-}

+ 1 - 1
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectRecordsController.java

@@ -1010,7 +1010,7 @@ public class RuralCostProjectRecordsController extends BaseController {
 			RuralProjectcontentinfo ruralProjectcontentinfo = projectRecordsService.formAccessory(projectRecords);
 			projectRecordsService.disposeData(ruralProjectcontentinfo);
 			model.addAttribute("projectcontentinfo", ruralProjectcontentinfo);
-			model.addAttribute("projectRecords", projectRecords);
+		 	model.addAttribute("projectRecords", projectRecords);
 		}else {
 			return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectRecords/?repage";
 		}

+ 7 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageAllController.java

@@ -6,7 +6,9 @@ import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.MyBeanUtils;
 import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.ThisLocalityDownloadUtil;
 import com.jeeplus.common.utils.excel.ExportExcel;
+import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.web.BaseController;
 import com.jeeplus.modules.historical.entity.HistoricalData;
 import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryRelationInfo;
@@ -37,6 +39,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
@@ -604,4 +607,8 @@ public class RuralProjectMessageAllController extends BaseController {
         }
         return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralCostProjectRecords/?repage";
     }
+
+
+
+
 }

+ 1 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageController.java

@@ -63,6 +63,7 @@ import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;

+ 40 - 1
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageElectronicSealController.java

@@ -1,9 +1,13 @@
 package com.jeeplus.modules.ruralprojectrecords.web;
 
+import com.jeeplus.common.config.Global;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.FreemarkerUtil;
 import com.jeeplus.common.utils.ResponseUtil;
 import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.ThisLocalityDownloadUtil;
+import com.jeeplus.common.utils.excel.ImportExcel;
+import com.jeeplus.common.utils.excel.ImportExcelNew;
 import com.jeeplus.common.web.BaseController;
 import com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo;
 import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
@@ -26,6 +30,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -107,7 +113,7 @@ public class RuralProjectMessageElectronicSealController extends BaseController
         //添加查询类型list
         projectRecords.setTypeList(typeList);
         projectRecords.setSubmitMoney("1");
-        Page<RuralProjectRecords> page = ruralProjectMessageAllService.findSignaturePage(new Page<RuralProjectRecords>(request, response), projectRecords);
+        Page<RuralProjectRecords> page = ruralProjectMessageAllService.findPage(new Page<RuralProjectRecords>(request, response), projectRecords);
         model.addAttribute("page", page);
         if(null != projectRecords.getWorkContractInfo()){
             model.addAttribute("workContractInfoName", projectRecords.getWorkContractInfo().getName());
@@ -179,5 +185,38 @@ public class RuralProjectMessageElectronicSealController extends BaseController
 
     }
 
+    /**
+     * 导入造价审核B类项目数据
+     */
+    @RequiresPermissions("ruralProject:ruralProjectMessageAll:importB")
+    @RequestMapping(value = "importB", method=RequestMethod.POST)
+    public String importFile(MultipartFile file, RedirectAttributes redirectAttributes) {
+        try {
+            ImportExcelNew importExcelNew = new ImportExcelNew();
+            List<ProjectReportSignatureInfo> list = importExcelNew.ImportExcelNew(file,1,0);  //只处理file 1不要也可以,0为sheet编号
+
+            //对数据进行处理
+            String resultStr = ruralProjectMessageElectronicSealService.disposeImportBRuralProjectRecords(list);
+            addMessage(redirectAttributes, resultStr);
+        } catch (Exception e) {
+            addMessage(redirectAttributes, "导入B类项目失败!失败信息:"+e.getMessage());
+        }
+        return "redirect:"+ Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+    }
+
+    /**
+     * 下载导入造价审核B类项目数据模板
+     */
+    @RequestMapping(value = "importB/template")
+    public String importFileTemplateB(HttpServletResponse response, HttpServletRequest request) {
+        try {
+            ThisLocalityDownloadUtil download = new ThisLocalityDownloadUtil();
+            download.download("导入数据模板.xlsx",request,response);  //自制的导入模板
+        } catch (Exception e) {
+            logger.error("导入数据模板下载失败!",e);
+        }
+        return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+    }
+
 
 }

+ 1 - 0
src/main/java/com/jeeplus/modules/workinvoice/service/WorkInvoiceService.java

@@ -241,6 +241,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 	public List<WorkInvoice> findMapList(WorkInvoice workInvoice) {
 		return dao.findMapList(workInvoice);
 	}
+
 	public Page<WorkInvoice> findPage(Page<WorkInvoice> page, WorkInvoice workInvoice) {
 		workInvoice.getSqlMap().put("dsf", dataScopeFilter(workInvoice.getCurrentUser(), "o", "u","s", MenuStatusEnum.WORK_INVOICE.getValue()));
 		if(StringUtils.isNotBlank(workInvoice.getOfficeId())){

+ 165 - 0
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageAllDao.xml

@@ -2,6 +2,114 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectMessageAllDao">
 
+	<insert id="insert">
+		INSERT INTO rural_project_records(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			del_flag,
+			contract_id,
+			project_id,
+			project_name,
+			scale_type,
+			scale_unit,
+			scale_quantity,
+			area_id,
+			project_site,
+			project_desc,
+			remarks,
+			status,
+			company_id,
+			office_id,
+			alter_process_id,
+			province,
+			city,
+			area_name,
+			project_structure,
+			on_ground_num,
+			under_ground_num,
+			building_scale,
+			measuring_unit,
+			project_use,
+			install_fees,
+			building_fees,
+			building_percent,
+			install_percent,
+			unit_fees,
+			building_unit_fees,
+			install_unit_fees,
+			total_fees,
+			project_type,
+			start_date,
+			ending_date,
+			estimate_total_fees,
+			construction_unit,
+			construction_linkman,
+			attachment_project_sort,
+			project_master_id,
+			submit_money,
+			engineering_type,
+			project_properties,
+			submit_scale,
+			emergency_project,
+			reported_state
+		) VALUES (
+					 #{id},
+					 #{createBy.id},
+					 #{createDate},
+					 #{updateBy.id},
+					 #{updateDate},
+					 #{delFlag},
+					 #{workContractInfo.id},
+					 #{projectId},
+					 #{projectName},
+					 #{scaleType},
+					 #{scaleUnit},
+					 #{scaleQuantity},
+					 #{area.id},
+					 #{projectSite},
+					 #{projectDesc},
+					 #{remarks},
+					 #{projectStatus},
+					 #{company.id},
+					 #{office.id},
+					 #{alterProcessId},
+					 #{province},
+					 #{city},
+					 #{county},
+					 #{projectStructure},
+					 #{onGroundNum},
+					 #{underGroundNum},
+					 #{buildingScale},
+					 #{measuringUnit},
+					 #{projectUse},
+					 #{installFees},
+					 #{buildingFees},
+					 #{buildingPercent},
+					 #{installPercent},
+					 #{unitFees},
+					 #{buildingUnitFees},
+					 #{installUnitFees},
+					 #{totalFees},
+					 #{projectType},
+					 #{startDate},
+					 #{endingDate},
+					 #{estimateTotalFees},
+					 #{constructionUnit},
+					 #{constructionLinkman},
+					 #{attachmentProjectSort},
+					 #{projectMasterId},
+					 #{submitMoney},
+					 #{engineeringType},
+					 #{projectProperties},
+					 #{submitScale},
+					 #{emergencyProject},
+					 #{reportedState}
+				 )
+	</insert>
+
 	<sql id="projectRecordsColumns">
 		distinct(a.id) AS "id",
 		a.create_by AS "createBy.id",
@@ -1284,4 +1392,61 @@ END) as projectScale*/
 			</if>
 		</where>
 	</select>
+
+	<select id="getProjectByNameList" resultType="java.lang.Integer">
+		select count(1) from project_report_data a
+		<where>
+			<if test="projectNameList!=null and projectNameList.size!=0">
+				and a.number in
+				<foreach collection="projectNameList" item="projectName" separator="," open="(" close=")">
+					#{projectName}
+				</foreach>
+			</if>
+		</where>
+	</select>
+
+	<select id="getIdByReportNumber" resultType="String" parameterType="String">
+		select a.id
+		from rural_project_records a,project_report_data b
+		where a.id=b.project_id
+		and b.number=#{reportNumber}
+	</select>
+
+	<update id="updataReords">
+		update rural_project_records set
+		start_date=#{startDate},
+		ending_date=#{endingDate} where id=#{projectId}
+	</update>
+
+	<select id="getHeTongId" resultType="String" parameterType="String">
+		select contract_id from rural_project_records
+		where id=#{proId}
+	</select>
+
+	<update id="updateContractPrice">
+		update work_contract_info set contract_price=#{workContractInfo.contractPrice} where id=#{workContractInfo.id}
+	</update>
+
+	<select id="selectIdBySGDW" resultType="String">
+		select id from work_client_info where name=#{constructionUnit}
+	</select>
+
+	<select id="selectlxr" resultType="String">
+		select id from work_client_linkman where client_id=#{infoid} order by create_date desc limit 1
+	</select>
+
+	<insert id="insertSGDW">
+		insert into project_client_linkman(
+		    project_id,
+		    linkman_id,
+		    client_id,
+		    is_entrust)values (
+		    #{projectId},
+		    #{constructionLinkman},
+		    #{constructionUnit},
+		    0
+			)
+	</insert>
+
+
 </mapper>

+ 176 - 3
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageElectronicSealDao.xml

@@ -3,15 +3,188 @@
 <mapper namespace="com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectMessageElectronicSealDao">
 
 	<sql id="projectReportRecordColumns">
-
+			a.project_report_id,
+			a.submit_fee as "submit_fee",
+			a.authorize_fee as "authorize_fee",
+			a.construction_unit_assessment_fee as "construction_unit_assessment_fee",
+			a.authorize_fee_deduct_assessment_fee as "authorize_fee_deduct_assessment_fee",
+			a.construction_unit as "construction_unit",
+			a.description_of_deduction as "description_of_deduction",
+			a.description_of_exceeding_the_contract_amount as "description_of_exceeding_the_contract_amount",
+			a.description_of_special_matters as "description_of_special_matters",
+			a.stamp_date as "stamp_date",
+			a.print_quantity as "print_quantity",
+			a.report_preparation_date as "report_preparation_date",
+			a.agreed_start_date as "agreed_start_date",
+			a.agreed_end_date as "agreed_end_date",
+			a.consultant as "consultant",
+			a.self_calibration_opinion as "self_calibration_opinion",
+			a.review_opinion as "review_opinion",
+			a.review_date as "review_date",
+			a.date_of_consultation_report as "date_of_consultation_report",
+			a.start_date_of_consulting_operation as "start_date_of_consulting_operation",
+			a.end_date_of_consultation as "end_date_of_consultation",
+			a.start_audit_date as "start_audit_date",
+			a.project_scale_content_scope as "project_scale_content_scope",
+			a.main_contents_of_project as "main_contents_of_project",
+			a.total_contract_price as "total_contract_price",
+			a.contract_start_date as "contract_start_date",
+			a.contract_end_date as "contract_end_date",
+			a.actual_start_date as "actual_start_date",
+			a.actual_end_date as "actual_end_date",
+			a.completion_acceptance_date as "completion_acceptance_date",
+			a.design_unit as "design_unit",
+			a.construction_control_unit as "construction_control_unit",
+			a.follow_up_audit_unit as "follow_up_audit_unit",
+			a.engineering_design_change_order as "engineering_design_change_order",
+			a.confirmation_sheet_of_quantities as "confirmation_sheet_of_quantities",
+			a.project_visa as "project_visa",
+			a.quality_price_confirmation_of_engineering_materials as "quality_price_confirmation_of_engineering_materials",
+			a.listmaterials_equipment_by_a as "listmaterials_equipment_by_a",
+			a.project_reward_and_damages as "project_reward_and_damages",
+			a.charge as "charge",
+			a.taxes as "taxes",
+			a.duration_difference_causes_and_responsibilities as "duration_difference_causes_and_responsibilities",
+			a.quality_difference_causes_and_responsibilities as "quality_difference_causes_and_responsibilities",
+			a.other_contents_and_expenses as "other_contents_and_expenses",
+			a.project_cost_consulting_contract as "project_cost_consulting_contract",
+			a.settlement_pricing_basis_document as "settlement_pricing_basis_document",
+			a.materials_and_equipment_by_a as "materials_and_equipment_by_a",
+			a.a_materials_by_b as "a_materials_by_b",
+			a.reward_and_punishment_fees as "reward_and_punishment_fees",
+			a.water_and_electricity_fees_handle_situation as "water_and_electricity_fees_handle_situation",
+			a.construction_quality_warranty_deposit as "construction_quality_warranty_deposit",
+			a.tax_difference_calculation_and_processing as "tax_difference_calculation_and_processing"
 	</sql>
 
 
 	<select id="get" resultType="ProjectReportSignatureInfo">
 		SELECT
-		<include refid="projectReportRecordColumns"/>,
-		FROM rural_project_report_record_down a
+		<include refid="projectReportRecordColumns"/>
+		FROM project_report_signature_info a
 		WHERE a.project_report_id = #{projectReportId}
 	</select>
 
+	<insert id="insert">
+		insert into project_report_signature_info(
+			project_report_id,
+			submit_fee,
+			authorize_fee,
+			construction_unit_assessment_fee,
+			authorize_fee_deduct_assessment_fee,
+			construction_unit,
+			description_of_deduction,
+			description_of_exceeding_the_contract_amount,
+			description_of_special_matters,
+			stamp_date,
+			print_quantity,
+			report_preparation_date,
+			agreed_start_date,
+			agreed_end_date,
+			consultant,
+			self_calibration_opinion,
+			review_opinion,
+			review_date,
+			date_of_consultation_report,
+			start_date_of_consulting_operation,
+			end_date_of_consultation,
+			start_audit_date,
+			project_scale_content_scope,
+			main_contents_of_project,
+			total_contract_price,
+			contract_start_date,
+			contract_end_date,
+			actual_start_date,
+			actual_end_date,
+			completion_acceptance_date,
+			design_unit,
+			construction_control_unit,
+			follow_up_audit_unit,
+			engineering_design_change_order,
+			confirmation_sheet_of_quantities,
+			project_visa,
+			quality_price_confirmation_of_engineering_materials,
+			listmaterials_equipment_by_a,
+			project_reward_and_damages,
+			charge,
+			taxes,
+			duration_difference_causes_and_responsibilities,
+			quality_difference_causes_and_responsibilities,
+			other_contents_and_expenses,
+			project_cost_consulting_contract,
+			settlement_pricing_basis_document,
+			materials_and_equipment_by_a,
+			a_materials_by_b,
+			reward_and_punishment_fees,
+			water_and_electricity_fees_handle_situation,
+			construction_quality_warranty_deposit,
+			tax_difference_calculation_and_processing
+		)values (
+							#{projectReportId},
+							#{submitFee},
+							#{authorizeFee},
+							#{constructionUnitAssessmentFee},
+							#{authorizeFeeDeductAssessmentFee},
+							#{constructionUnit},
+							#{descriptionOfDeduction},
+							#{descriptionOfExceedingTheContractAmount},
+							#{descriptionOfSpecialMatters},
+							#{stampDate},
+							#{printQuantity},
+							#{reportPreparationDate},
+							#{agreedStartDate},
+							#{agreedEndDate},
+							#{consultant},
+							#{selfCalibrationOpinion},
+							#{reviewOpinion},
+							#{reviewDate},
+							#{dateOfConsultationReport},
+							#{startDateOfConsultingOperation},
+							#{endDateOfConsultation},
+							#{startAuditDate},
+							#{projectScaleContentScope},
+							#{mainContentsOfProject},
+							#{totalContractPrice},
+							#{contractStartDate},
+							#{contractEndDate},
+							#{actualStartDate},
+							#{actualEndDate},
+							#{completionAcceptanceDate},
+							#{designUnit},
+							#{constructionControlUnit},
+							#{followUpAuditUnit},
+							#{engineeringDesignChangeOrder},
+							#{confirmationSheetOfQuantities},
+							#{projectVisa},
+							#{qualityPriceConfirmationOfEngineeringMaterials},
+							#{listmaterialsEquipmentByA},
+							#{projectRewardAndDamages},
+							#{charge},
+							#{taxes},
+							#{durationDifferenceCausesAndResponsibilities},
+							#{qualityDifferenceCausesAndResponsibilities},
+							#{otherContentsAndExpenses},
+							#{projectCostConsultingContract},
+							#{settlementPricingBasisDocument},
+							#{materialsAndEquipmentByA},
+							#{aMaterialsByB},
+							#{rewardAndPunishmentFees},
+							#{waterAndElectricityFeesHandleSituation},
+							#{constructionQualityWarrantyDeposit},
+							#{taxDifferenceCalculationAndProcessing}
+		)
+	</insert>
+
+	<select id="getAchivesIdByName" resultType="String">
+		select id from work_staff_achives where name=#{name}
+	</select>
+
+	<select id="getId" resultType="String">
+		select id from work_staff_certificate where staff_id=#{staffId}
+	</select>
+
+	<select id="getProjectReportId" resultType="String">
+		select number from project_report_data where number=#{projectReportId}
+	</select>
+
 </mapper>

+ 3 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/electronicSeal/ruralProjectMessageElectronicSealList.jsp

@@ -923,6 +923,9 @@
 				<div class="nav-btns">
 					<%--此处按钮样式包括 nav-btn-add nav-btn-refresh nav-btn-import nav-btn-export nav-btn-query nav-btn-reset--%>
 					<div class="layui-btn-group">
+						<shiro:hasPermission name="ruralProject:ruralProjectMessageAll:importB">
+							<table:importExcel url="${ctx}/ruralProject/electronicSeal/importB"></table:importExcel><!-- 导入按钮 -->
+						</shiro:hasPermission>
 						<shiro:hasPermission name="ruralProject:ruralProjectMessageAll:export">
 							<table:exportExcel url="${ctx}/ruralProject/ruralProjectMessageAll/export"></table:exportExcel><!-- 导出按钮 -->
 						</shiro:hasPermission>