Преглед изворни кода

发票部分功能优化和发票张数输入bug调整

徐滕 пре 16 часа
родитељ
комит
197c1878ed
15 измењених фајлова са 754 додато и 155 уклоњено
  1. 259 6
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java
  2. 22 2
      src/main/java/com/jeeplus/modules/workreimbursement/service/WorkReimbursementNewService.java
  3. 28 22
      src/main/java/com/jeeplus/modules/workreimbursement/service/WorkReimbursementService.java
  4. 4 0
      src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementAllController.java
  5. 9 8
      src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementNewController.java
  6. 358 94
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsDao.xml
  7. 10 4
      src/main/webapp/webpage/modules/workreimbursement/treeForm/all/workReimbursementAllFormAdd.jsp
  8. 8 3
      src/main/webapp/webpage/modules/workreimbursement/treeForm/all/workReimbursementAllModifyApply.jsp
  9. 6 0
      src/main/webapp/webpage/modules/workreimbursement/treeForm/new/workReimbursementNewAudit.jsp
  10. 10 4
      src/main/webapp/webpage/modules/workreimbursement/treeForm/new/workReimbursementNewFormAdd.jsp
  11. 10 4
      src/main/webapp/webpage/modules/workreimbursement/treeForm/new/workReimbursementNewModifyApply.jsp
  12. 9 4
      src/main/webapp/webpage/modules/workreimbursement/treeForm/replenish/workReimbursementReplenishAudit.jsp
  13. 6 0
      src/main/webapp/webpage/modules/workreimbursement/treeForm/replenish/workReimbursementReplenishCwAudit.jsp
  14. 6 0
      src/main/webapp/webpage/modules/workreimbursement/treeForm/specific/workReimbursementSpecificAudit.jsp
  15. 9 4
      src/main/webapp/webpage/modules/workreimbursement/treeForm/specific/workReimbursementSpecificModifyApply.jsp

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

@@ -392,6 +392,20 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 	}
 
 	public List<RuralProjectRecordsExport> findPageExport(Page<RuralProjectRecords> page, RuralProjectRecords projectRecords) {
+		//查询上报超期时间天数
+		List<MainDictDetail> adventCount = DictUtils.getMainDictListOnProjectAdvent("advent_count");
+		//查询超期时间天数(电子归档)
+		List<MainDictDetail> adventRecordCount = DictUtils.getMainDictListOnProjectAdvent("advent_record_count");
+		//查询超期时间天数(A类纸质归档)
+		List<MainDictDetail> adventRecordACount = DictUtils.getMainDictListOnProjectAdvent("advent_record_A_count");
+		//查询超期时间天数(B类纸质归档)
+		List<MainDictDetail> adventRecordBCount = DictUtils.getMainDictListOnProjectAdvent("advent_record_B_count");
+		Integer endingCount = 0;
+		if(adventCount.size()>0){
+			//获取超期时间天数转int
+			endingCount = Integer.parseInt(adventCount.get(0).getLabel());
+			projectRecords.setEndingCount(endingCount);
+		}
 		//设置数据权限
         if(!UserUtils.getUser().isAdmin()) {
 			String dataScopeSql = null;
@@ -405,17 +419,47 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 			}
             projectRecords.getSqlMap().put("dsf", dataScopeSql);
 			projectRecords.getSqlMap().put("delFlag", "AND a.del_flag = 0");
-        }
-        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);
+        }else{
+			projectRecords.getSqlMap().put("delFlag", "AND a.del_flag = 0");
+		}
+		if(null!= projectRecords.getOffice() && StringUtils.isNotBlank(projectRecords.getOffice().getId())){
+			if("一部本部".equals(projectRecords.getOffice().getId())){
+				List<String> officeIdList = jersey.repackaged.com.google.common.collect.Lists.newArrayList();
+				Office office = officeService.getByName("工程一部");
+				officeIdList.add(office.getId());
+				projectRecords.setOfficeIdList(officeIdList);
+			}else{
+				//查询该选择节点下所有的部门Id
+				List<String> officeIdList = officeService.getChildrenOffice(projectRecords.getOffice().getId());
+				officeIdList.add(projectRecords.getOffice().getId());
+				if (officeIdList.size() > 0) {
+					projectRecords.setOfficeIdList(officeIdList);
+				}
+			}
 		}
         page.setCountFlag(false);
         projectRecords.setPage(page);
 		List<RuralProjectRecordsExport> recordsList = dao.findExportList(projectRecords);
 
+		Integer endingAdventRecordCount = 0;
+		if(adventRecordCount.size()>0){
+			//获取超期时间天数(电子归档)转int
+			endingAdventRecordCount = Integer.parseInt(adventRecordCount.get(0).getLabel());
+		}
+		Integer endingAdventRecordACount = 0;
+		if(adventRecordACount.size()>0){
+			//获取超期时间天数(A类纸质归档)转int
+			endingAdventRecordACount = Integer.parseInt(adventRecordACount.get(0).getLabel());
+		}
+		Integer endingAdventRecordBCount = 0;
+		if(adventRecordBCount.size()>0){
+			//获取超期时间天数(A类纸质归档)转int
+			endingAdventRecordBCount = Integer.parseInt(adventRecordBCount.get(0).getLabel());
+		}
+		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+		Date date = new Date();
+
+
 		if(null != recordsList && recordsList.size()>0){
 
 			//查询报告文件、依据性文件、其他文件必填列表以及数据
@@ -443,6 +487,215 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 						}
 					}
 				}
+
+				//判断是A类还是B类 2是A类1是B类
+				if ("1".equals(info.getSubmitMoney())){
+					//设置电子未归档天数
+					if (null != info.getReportAuditDate() && 5 != info.getProjectReportRecordStatus()
+							&& 7!= info.getProjectReportRecordStatus()){
+						try {
+							Date date2 = info.getReportAuditDate();
+							Long dateTimeLong = date.getTime();
+							Long date2TimeLong = date2.getTime();
+							//计算未归档天数
+							Long endTime = (dateTimeLong - date2TimeLong)/(24*60*60*1000);
+							endTime = endTime - endingAdventRecordCount;
+							info.setNoArchivedDays(endTime.toString());
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					}else if (null != info.getReportAuditDate() && (5 == info.getProjectReportRecordStatus()
+							|| 7 == info.getProjectReportRecordStatus()) && null != info.getProjectReportRecordAuditDate()) {
+						try {
+							Date date2 = info.getReportAuditDate();
+							//获取电子归档审核通过时间
+							Long dateTimeLong = info.getProjectReportRecordAuditDate().getTime();
+							Long date2TimeLong = date2.getTime();
+							//计算未归档天数
+							Long endTime = (dateTimeLong - date2TimeLong) / (24 * 60 * 60 * 1000);
+							endTime = endTime - endingAdventRecordCount;
+							info.setNoArchivedDays(endTime.toString());
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					}
+
+					//设置纸质未归档天数
+					if (null != info.getReportAuditDate()
+							&& !"5".equals(info.getPaperFilingStatus())
+							&& !"7".equals(info.getPaperFilingStatus()) && !"10".equals(info.getPaperFilingStatus())){
+						try {
+							Date date2 = info.getReportAuditDate();
+							Long dateTimeLong = date.getTime();
+							Long date2TimeLong = date2.getTime();
+							//计算未归档天数
+							Long endTime = (dateTimeLong - date2TimeLong)/(24*60*60*1000);
+							endTime = endTime - endingAdventRecordBCount;
+
+							info.setPaperNoArchivedDays(endTime.toString());
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					}else if(null != info.getReportAuditDate()
+							&& ("5".equals(info.getPaperFilingStatus())
+							|| "7".equals(info.getPaperFilingStatus())) && null != info.getFilingBatchAuditPassDate()) {
+						try {
+							Date date2 = info.getReportAuditDate();
+							//获取电子归档审核通过时间
+							Long dateTimeLong = info.getFilingBatchAuditPassDate().getTime();
+							Long date2TimeLong = date2.getTime();
+							//计算未归档天数
+							Long endTime = (dateTimeLong - date2TimeLong) / (24 * 60 * 60 * 1000);
+							endTime = endTime - endingAdventRecordBCount;
+
+							info.setPaperNoArchivedDays(endTime.toString());
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+
+					}
+
+					//设置上报未归档天数
+					if (null != info.getReportAuditDate()
+							&& !"5".equals(info.getReportStatus())
+							&& !"7".equals(info.getReportStatus()) && !"10".equals(info.getReportStatus())){
+						try {
+							Date date2 = info.getReportAuditDate();
+							Long dateTimeLong = date.getTime();
+							Long date2TimeLong = date2.getTime();
+							//计算未归档天数
+							Long endTime = (dateTimeLong - date2TimeLong)/(24*60*60*1000);
+							endTime = endTime - endingCount;
+
+							info.setAccomplishDays(endTime.toString());
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					}else if(null != info.getReportAuditDate()
+							&& ("5".equals(info.getReportStatus())
+							|| "7".equals(info.getReportStatus())) && null != info.getAccomplishDate()) {
+						try {
+							Date date2 = info.getReportAuditDate();
+							//获取电子归档审核通过时间
+							Long dateTimeLong = info.getAccomplishDate().getTime();
+							Long date2TimeLong = date2.getTime();
+							//计算未归档天数
+							Long endTime = (dateTimeLong - date2TimeLong) / (24 * 60 * 60 * 1000);
+							endTime = endTime - endingCount;
+
+							info.setAccomplishDays(endTime.toString());
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+
+					}
+
+				} else if ("2".equals(info.getSubmitMoney())){
+					if(StringUtils.isNotBlank(info.getPpfFileNum())){
+						info.setFilingBoxNum(info.getPpfFileNum());
+					}
+					//设置电子未归档天数
+					if (null != info.getReportTwoAuditDate() && 5 != info.getProjectReportRecordStatus()
+							&& 7!= info.getProjectReportRecordStatus()){
+						try {
+							Date date2 = info.getReportTwoAuditDate();
+							Long dateTimeLong = date.getTime();
+							Long date2TimeLong = date2.getTime();
+							//计算未归档天数
+							Long endTime = (dateTimeLong - date2TimeLong)/(24*60*60*1000);
+							endTime = endTime - endingAdventRecordCount;
+
+							info.setNoArchivedDays(endTime.toString());
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					}else if (null != info.getReportTwoAuditDate() && (5 == info.getProjectReportRecordStatus()
+							|| 7 == info.getProjectReportRecordStatus()) && null != info.getProjectReportRecordAuditDate()) {
+						try {
+							Date date2 = info.getReportTwoAuditDate();
+							//获取电子归档审核通过时间
+							Long dateTimeLong = info.getProjectReportRecordAuditDate().getTime();
+							Long date2TimeLong = date2.getTime();
+							//计算未归档天数
+							Long endTime = (dateTimeLong - date2TimeLong) / (24 * 60 * 60 * 1000);
+							endTime = endTime - endingAdventRecordCount;
+							info.setNoArchivedDays(endTime.toString());
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					}
+
+					//设置纸质未归档天数
+					if (null != info.getReportTwoAuditDate()
+							&& !"5".equals(info.getPaperFilingStatus()) &&
+							!"7".equals(info.getPaperFilingStatus()) && !"10".equals(info.getPaperFilingStatus())){
+						try {
+							Date date2 = info.getReportTwoAuditDate();
+							Long dateTimeLong = date.getTime();
+							Long date2TimeLong = date2.getTime();
+							//计算未归档天数
+							Long endTime = (dateTimeLong - date2TimeLong)/(24*60*60*1000);
+							endTime = endTime - endingAdventRecordACount;
+
+							info.setPaperNoArchivedDays(endTime.toString());
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					}else if (null != info.getReportTwoAuditDate() && (5 == info.getProjectReportRecordStatus()
+							|| 7 == info.getProjectReportRecordStatus()) && null != info.getPaperFilingAuditPassDate()) {
+						try {
+							Date date2 = info.getReportTwoAuditDate();
+							//获取电子归档审核通过时间
+							Long dateTimeLong = info.getPaperFilingAuditPassDate().getTime();
+							Long date2TimeLong = date2.getTime();
+							//计算未归档天数
+							Long endTime = (dateTimeLong - date2TimeLong) / (24 * 60 * 60 * 1000);
+							endTime = endTime - endingAdventRecordACount;
+
+							info.setPaperNoArchivedDays(endTime.toString());
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					}
+
+
+
+					//设置上报未归档天数
+					if (null != info.getReportTwoAuditDate()
+							&& !"5".equals(info.getReportStatus())
+							&& !"7".equals(info.getReportStatus()) && !"10".equals(info.getReportStatus())){
+						try {
+							Date date2 = info.getReportTwoAuditDate();
+							Long dateTimeLong = date.getTime();
+							Long date2TimeLong = date2.getTime();
+							//计算未归档天数
+							Long endTime = (dateTimeLong - date2TimeLong)/(24*60*60*1000);
+							endTime = endTime - endingCount;
+
+							info.setAccomplishDays(endTime.toString());
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					}else if(null != info.getReportTwoAuditDate()
+							&& ("5".equals(info.getReportStatus())
+							|| "7".equals(info.getReportStatus())) && null != info.getAccomplishDate()) {
+						try {
+							Date date2 = info.getReportTwoAuditDate();
+							//获取电子归档审核通过时间
+							Long dateTimeLong = info.getAccomplishDate().getTime();
+							Long date2TimeLong = date2.getTime();
+							//计算未归档天数
+							Long endTime = (dateTimeLong - date2TimeLong) / (24 * 60 * 60 * 1000);
+							endTime = endTime - endingCount;
+
+							info.setAccomplishDays(endTime.toString());
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+
+					}
+				}
+
 			}
 		}
 

+ 22 - 2
src/main/java/com/jeeplus/modules/workreimbursement/service/WorkReimbursementNewService.java

@@ -250,6 +250,10 @@ public class WorkReimbursementNewService extends CrudService<WorkReimbursementDa
         if("7f776d072d7b4c839cef4e63ce6dbfa5".equals(office.getId()) || office.getParentIds().contains("7f776d072d7b4c839cef4e63ce6dbfa5")){
             bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,"7f776d072d7b4c839cef4e63ce6dbfa5","8",workReimbursement.getCreateBy());
         }
+        //判定当前登陆人的部门是否是综合管理部的子部门,如果是,则审核人均为综合管理部部门主任
+        if("5adafaaa43ab4a11801f9ad264374a06".equals(office.getId()) || office.getParentIds().contains("5adafaaa43ab4a11801f9ad264374a06")){
+            bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,"6c9ca86e941b4a738c1ab9b006976264","8",workReimbursement.getCreateBy());
+        }
 
         //判断当前登陆人的部门是否为综合管理部。如果是,则审核人设置为总审室部门主任(王年生)
         /*if("6c9ca86e941b4a738c1ab9b006976264".equals(office.getId())){
@@ -459,6 +463,10 @@ public class WorkReimbursementNewService extends CrudService<WorkReimbursementDa
         if("7f776d072d7b4c839cef4e63ce6dbfa5".equals(office.getId()) || office.getParentIds().contains("7f776d072d7b4c839cef4e63ce6dbfa5")){
             bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,"7f776d072d7b4c839cef4e63ce6dbfa5","8",workReimbursement.getCreateBy());
         }
+        //判定当前登陆人的部门是否是综合管理部的子部门,如果是,则审核人均为综合管理部部门主任
+        if("5adafaaa43ab4a11801f9ad264374a06".equals(office.getId()) || office.getParentIds().contains("5adafaaa43ab4a11801f9ad264374a06")){
+            bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,"6c9ca86e941b4a738c1ab9b006976264","8",workReimbursement.getCreateBy());
+        }
 
         //判断当前登陆人的部门是否为综合管理部。如果是,则审核人设置为总审室部门主任(王年生)
         /*if("6c9ca86e941b4a738c1ab9b006976264".equals(office.getId())){
@@ -626,6 +634,10 @@ public class WorkReimbursementNewService extends CrudService<WorkReimbursementDa
         if("7f776d072d7b4c839cef4e63ce6dbfa5".equals(office.getId()) || office.getParentIds().contains("7f776d072d7b4c839cef4e63ce6dbfa5")){
             bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,"7f776d072d7b4c839cef4e63ce6dbfa5","8",workReimbursement.getCreateBy());
         }
+        //判定当前登陆人的部门是否是综合管理部的子部门,如果是,则审核人均为综合管理部部门主任
+        if("5adafaaa43ab4a11801f9ad264374a06".equals(office.getId()) || office.getParentIds().contains("5adafaaa43ab4a11801f9ad264374a06")){
+            bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,"6c9ca86e941b4a738c1ab9b006976264","8",workReimbursement.getCreateBy());
+        }
 
         //判断当前登陆人的部门是否为综合管理部。如果是,则审核人设置为总审室部门主任(王年生)
         /*if("6c9ca86e941b4a738c1ab9b006976264".equals(office.getId())){
@@ -794,6 +806,10 @@ public class WorkReimbursementNewService extends CrudService<WorkReimbursementDa
         if("7f776d072d7b4c839cef4e63ce6dbfa5".equals(office.getId()) || office.getParentIds().contains("7f776d072d7b4c839cef4e63ce6dbfa5")){
             bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,"7f776d072d7b4c839cef4e63ce6dbfa5","8",workReimbursement.getCreateBy());
         }
+        //判定当前登陆人的部门是否是综合管理部的子部门,如果是,则审核人均为综合管理部部门主任
+        if("5adafaaa43ab4a11801f9ad264374a06".equals(office.getId()) || office.getParentIds().contains("5adafaaa43ab4a11801f9ad264374a06")){
+            bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,"6c9ca86e941b4a738c1ab9b006976264","8",workReimbursement.getCreateBy());
+        }
 
         //财务主任(雷主任)
         List<User> cws = UserUtils.getByRoleActivityEnname("cwzg",3,office.getId(),"8",workReimbursement.getCreateBy());
@@ -966,6 +982,10 @@ public class WorkReimbursementNewService extends CrudService<WorkReimbursementDa
         if("7f776d072d7b4c839cef4e63ce6dbfa5".equals(office.getId()) || office.getParentIds().contains("7f776d072d7b4c839cef4e63ce6dbfa5")){
             bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,"7f776d072d7b4c839cef4e63ce6dbfa5","8",workReimbursement.getCreateBy());
         }
+        //判定当前登陆人的部门是否是综合管理部的子部门,如果是,则审核人均为综合管理部部门主任
+        if("5adafaaa43ab4a11801f9ad264374a06".equals(office.getId()) || office.getParentIds().contains("5adafaaa43ab4a11801f9ad264374a06")){
+            bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,"6c9ca86e941b4a738c1ab9b006976264","8",workReimbursement.getCreateBy());
+        }
 
         //财务主任(雷主任)
         List<User> cws = UserUtils.getByRoleActivityEnname("cwzg",3,office.getId(),"8",workReimbursement.getCreateBy());
@@ -2586,10 +2606,10 @@ public class WorkReimbursementNewService extends CrudService<WorkReimbursementDa
                     break;
                 } else if ("modifyApply".equals(taskDefKey)&& count.contains("0")) {
                     taskCount = "0";
-                    notifyRole = "部门负责人审批";
+                    notifyRole = "办公室审批";
                     exp = "pass";
                     workActivityProcess.setCount(0);
-                    enname = "bmzr";
+                    enname = "cw";
                     if (!"yes".equals(workReimbursement.getAct().getFlag())) {
                         workReimbursement.setStatus("3");
                     }

+ 28 - 22
src/main/java/com/jeeplus/modules/workreimbursement/service/WorkReimbursementService.java

@@ -548,6 +548,10 @@ public class WorkReimbursementService extends CrudService<WorkReimbursementDao,
         if("7f776d072d7b4c839cef4e63ce6dbfa5".equals(office.getId()) || office.getParentIds().contains("7f776d072d7b4c839cef4e63ce6dbfa5")){
             bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,"7f776d072d7b4c839cef4e63ce6dbfa5","8",workReimbursement.getCreateBy());
         }
+        //判定当前登陆人的部门是否是综合管理部的子部门,如果是,则审核人均为综合管理部部门主任
+        if("5adafaaa43ab4a11801f9ad264374a06".equals(office.getId()) || office.getParentIds().contains("5adafaaa43ab4a11801f9ad264374a06")){
+            bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,"6c9ca86e941b4a738c1ab9b006976264","8",workReimbursement.getCreateBy());
+        }
         //判断当前登陆人的部门是否为综合管理部。如果是,则审核人设置为总审室部门主任(王年生)
         /*if("6c9ca86e941b4a738c1ab9b006976264".equals(office.getId())){
             bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,"26f5f4aff4244d8c833cca11f305c612","8",workReimbursement.getCreateBy());
@@ -2284,35 +2288,29 @@ public class WorkReimbursementService extends CrudService<WorkReimbursementDao,
             if (childNodes.item(k).getNodeType() == Node.ELEMENT_NODE) {
                 Node currentNode = childNodes.item(k);
                 String nodeName = currentNode.getNodeName();
-                // 【核心新增:去除节点名中的 `-` 字符】
-                String cleanNodeName = nodeName.replaceAll("-", ""); // 关键步骤:替换所有 `-` 为空
+                String cleanNodeName = nodeName.replaceAll("-", "");
                 NodeList grandChildNodes = currentNode.getChildNodes();
 
-                // 拼接逻辑(改用处理后的 cleanNodeName)
                 String currentKeyPrefix;
                 if (currentLevel == 1) {
-                    // 第1层:用处理后的节点名作为前缀
                     currentKeyPrefix = cleanNodeName;
                 } else if (currentLevel == 2) {
-                    // 第2层:判断是否与第1层前缀同名(基于处理后的名称)
                     if (cleanNodeName.equals(parentPrefix)) {
                         currentKeyPrefix = parentPrefix;
                     } else {
                         currentKeyPrefix = parentPrefix + cleanNodeName;
                     }
                 } else {
-                    // 第3层及以上:正常拼接处理后的节点名
                     currentKeyPrefix = parentPrefix + cleanNodeName;
                 }
 
-                // 获取节点文本值
                 String textValue = getNodeTextValue(grandChildNodes);
-                if (StringUtils.isNotBlank(textValue)) {
-                    // 生成不重复的最终key(基于处理后的前缀)
-                    String finalKey = generateUniqueKey(currentKeyPrefix, keyCounter);
-                    map.put(finalKey, textValue);
-                } else {
-                    // 无文本值,递归时传递处理后的前缀
+                // 修复:空文本但有子元素时仍递归(避免漏解析深层节点)
+                if (StringUtils.isNotBlank(textValue) || hasChildElements(grandChildNodes)) {
+                    if (StringUtils.isNotBlank(textValue)) {
+                        String finalKey = generateUniqueKey(currentKeyPrefix, keyCounter);
+                        map.put(finalKey, textValue);
+                    }
                     if (hasChildElements(grandChildNodes)) {
                         Map<String,String> childMap = xmlDataDispose(grandChildNodes, document, currentKeyPrefix, currentLevel + 1, keyCounter);
                         map.putAll(childMap);
@@ -2330,14 +2328,14 @@ public class WorkReimbursementService extends CrudService<WorkReimbursementDao,
         StringBuilder text = new StringBuilder();
         for (int i = 0; i < childNodes.getLength(); i++) {
             Node child = childNodes.item(i);
-            if (child.getNodeType() == Node.TEXT_NODE) {
-                String trimText = StringUtils.trim(child.getNodeValue());
-                if (StringUtils.isNotBlank(trimText)) {
-                    text.append(trimText);
-                }
+            // 修复1:新增CDATA节点处理(数电票核心字段多为CDATA包裹)
+            if (child.getNodeType() == Node.TEXT_NODE || child.getNodeType() == Node.CDATA_SECTION_NODE) {
+                // 修复2:先拼接原始值,最后统一trim(避免中间有效换行/空格被过滤)
+                text.append(child.getNodeValue());
             }
         }
-        return text.toString();
+        // 仅首尾trim,保留中间有效文本(如Remark里的换行转义后内容)
+        return StringUtils.trim(text.toString());
     }
 
     /**
@@ -2356,9 +2354,17 @@ public class WorkReimbursementService extends CrudService<WorkReimbursementDao,
      * 生成不重复key(同名节点加序号,避免覆盖)
      */
     private String generateUniqueKey(String keyPrefix, Map<String, Integer> keyCounter) {
-        int count = keyCounter.getOrDefault(keyPrefix, 0) + 1;
-        keyCounter.put(keyPrefix, count);
-        return count == 1 ? keyPrefix : keyPrefix + count;
+        // 修复:先获取当前计数(初始为0),再判断是否需要加序号
+        int count = keyCounter.getOrDefault(keyPrefix, 0);
+        if (count == 0) {
+            // 首次出现:直接返回前缀,计数置为1
+            keyCounter.put(keyPrefix, 1);
+            return keyPrefix;
+        } else {
+            // 重复出现:计数+1,返回前缀+序号(如SellerName2)
+            keyCounter.put(keyPrefix, count + 1);
+            return keyPrefix + count;
+        }
     }
 
 

+ 4 - 0
src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementAllController.java

@@ -600,6 +600,10 @@ public class WorkReimbursementAllController extends BaseController {
 						//users = UserUtils.getByRoleActivityEnname("fgld",2,workReimbursement.getOfficeId(),"8",workReimbursement.getCreateBy());
 						if("d8cf33fafd2d4f04a603e89f7e28e54c".equals(workReimbursement.getOfficeId())) {	//如果是苏州团队的  部门主任审核人为一部部门主任
 							users = UserUtils.getByRoleActivityEnname("bmzr", 2, "7f776d072d7b4c839cef4e63ce6dbfa5", "8", workReimbursement.getCreateBy());
+						}
+						//判定当前登陆人的部门是否是综合管理部的子部门,如果是,则审核人均为综合管理部部门主任
+						else if("5adafaaa43ab4a11801f9ad264374a06".equals(workReimbursement.getOfficeId())){
+							users = UserUtils.getByRoleActivityEnname("bmzr",2,"6c9ca86e941b4a738c1ab9b006976264","8",workReimbursement.getCreateBy());
 						}else{
 							users = UserUtils.getByRoleActivityEnname("bmzr", 2, workReimbursement.getOfficeId(), "8", workReimbursement.getCreateBy());
 						}

+ 9 - 8
src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementNewController.java

@@ -420,14 +420,15 @@ public class WorkReimbursementNewController extends BaseController {
 						users = UserUtils.getByRoleActivityEnname("dzfpbxshybxsd",3,workReimbursement.getOfficeId(),"8",workReimbursement.getCreateBy());
 					}
 				}else  if ("cw".equals(taskDefKey)){
-					users = UserUtils.getByProssType(workReimbursement.getProcessInstanceId(),2);
-					if (users==null ){
-						//users = UserUtils.getByRoleActivityEnname("fgld",2,workReimbursement.getOfficeId(),"8",workReimbursement.getCreateBy());
-						if("d8cf33fafd2d4f04a603e89f7e28e54c".equals(workReimbursement.getOfficeId())) {	//如果是苏州团队的  部门主任审核人为一部部门主任
-							users = UserUtils.getByRoleActivityEnname("bmzr", 2, "7f776d072d7b4c839cef4e63ce6dbfa5", "8", workReimbursement.getCreateBy());
-						}else{
-							users = UserUtils.getByRoleActivityEnname("bmzr", 2, workReimbursement.getOfficeId(), "8", workReimbursement.getCreateBy());
-						}
+					//users = UserUtils.getByRoleActivityEnname("fgld",2,workReimbursement.getOfficeId(),"8",workReimbursement.getCreateBy());
+					if("d8cf33fafd2d4f04a603e89f7e28e54c".equals(workReimbursement.getOfficeId())) {	//如果是苏州团队的  部门主任审核人为一部部门主任
+						users = UserUtils.getByRoleActivityEnname("bmzr", 2, "7f776d072d7b4c839cef4e63ce6dbfa5", "8", workReimbursement.getCreateBy());
+					}
+					//判定当前登陆人的部门是否是综合管理部的子部门,如果是,则审核人均为综合管理部部门主任
+					else if("5adafaaa43ab4a11801f9ad264374a06".equals(workReimbursement.getOfficeId())){
+						users = UserUtils.getByRoleActivityEnname("bmzr",2,"6c9ca86e941b4a738c1ab9b006976264","8",workReimbursement.getCreateBy());
+					}else{
+						users = UserUtils.getByRoleActivityEnname("bmzr", 2, workReimbursement.getOfficeId(), "8", workReimbursement.getCreateBy());
 					}
 
 				}else  if ("gsld".equals(taskDefKey)){

+ 358 - 94
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsDao.xml

@@ -782,21 +782,21 @@
 		</where>
 	</select>
 
-    <select id="findExportList" resultType="RuralProjectRecordsExport" >
+	<select id="findExportList" resultType="RuralProjectRecordsExport" >
+		select * from (
 		SELECT
-			<include refid="projectRecordsColumnss"/>
-		,a.record_state as "recordState"
-		,a.submit_money as "submitMoney"
-		,a.submit_scale as "submitScale"
-		,a.attachment_project_sort as "attachmentProjectSort"
+		<include refid="newProjectRecordsColumns"/>
+		,wci.contract_num as "workContractInfo.contractNum"
+		,(select name from sys_user user where user.id=a.create_by) AS "createByName"
+		,o.name AS "createByOffice"
+		,sub.name as "projectMasterName"
+		,(case when a.submit_money = '1' then 'B级' when a.submit_money = '2' then 'A级' else '' end) as submitMoneyStr
 		,rprr.ZiXunBDE as "ziXunBDE"
-		,(case when a.submit_money = '1' then 'B级' when a.submit_money = '2' then 'A级' else '' end) as projectScale
-		,(case
-		when a.submit_money = '1' and prd.status = '5' then
-		'已完成'
-		when a.submit_money = '2' and prdt.status = '5' then
-		'已完成' else '未完成'
-		end) as completionStatus
+		,ifnull(prd.review_fee ,"") as "reviewFee"
+		,ifnull(prd.approval_fee ,"") as "approvalFee"
+		,ifnull(prd.verify_fee ,"") as "verifyFee"
+		,ifnull(prd.verify_rate ,"") as "verifyRate"
+
 		,(case
 		when a.submit_money = '1' and pfp.status = '5' then
 		'已归档'
@@ -804,35 +804,38 @@
 		'已归档' else '未归档'
 		end) as downArchiveStatus
 
+		,prr.accomplish_date as "projectReportRecordAuditDate"
+		,prd.first_audit_date as "reportAuditDate"
+		,rprr.accomplish_date as "projectRecordsReportedAuditPassDate"
+		,prdt.audit_pass_date as "reportTwoAuditDate"
+		,concat(ifnull( pfp.STATUS, 0 ),ifnull( ppf.STATUS, 0 )) as "downProjectReportRecordPaperFilingStatus"
+		,su.name as "leaderNameStr"
+		,su.id as "leaderNameIds"
+		,a.submit_money as "submitMoney"
 		,a.project_type as projectType,
 		wci.name AS "workContractInfo.name",
-		wci.contract_num as "workContractInfo.contractNum",
-		wci.contract_price as "workContractInfo.contractPrice",
-		sub.name as "projectMasterName",
-		sob.name as "projectMasterOffice",
 		wct.id AS "workContractInfo.client.id",
 		wct.name AS "workContractInfo.client.name",
 		o.top_company AS "office.name",
-		o.name AS "createByOffice",
 		ifnull(prd.number ,"") as "projectReportNumber"
 		,ifnull(prd.status,0) as "projectReportStatus"
 		,ifnull(prd.name,"") as "projectReportName"
-		,ifnull(prr.status,0) as "projectReportRecordStatus"
-		,ifnull(prrd.status,0) as "downProjectReportRecordStatus",
-		prrd.file_num as recodeNum,
-		prr.process_instance_id as prrProcessInstanceId,
-		prrd.process_instance_id as prrdProcessInstanceId
+		,a.project_material_storage_status as "projectMaterialStorageStatus"
+		<choose>
+			<when test="projectReportRecordStatus  != null and projectReportRecordStatus != ''">
+				,ifnull(prr.status,#{projectReportRecordStatus}) as "projectReportRecordStatus"
+			</when>
+			<otherwise>
+				,ifnull(prr.status,0) as "projectReportRecordStatus"
+			</otherwise>
+		</choose>
+		,prr.process_instance_id as prrProcessInstanceId
 		,prd.id as prdId
 		,prr.id as prrId
-		,prrd.id as prrdId
 		,prd.audit_pass_date as auditPassDate
 		,if(date_add(prd.audit_pass_date,interval #{endingCount} day) >now(),"0","1") as reportedType
 		,ifnull(rprr.report_status,0) as "reportStatus"
 		,ifnull(rprr.sync_status,0) as "syncStatus"
-		,ifnull(pas.status,0) as "approvalSignatureStatus"
-		,ifnull(pas.process_instance_id,"") as "approvalSignatureProcessInstanceId"
-		,ifnull(prs.status,0) as "reportSignatureStatus"
-		,ifnull(prs.process_instance_id,"") as "reportSignatureProcessInstanceId"
 		,rprr.process_instance_id as "reportedProcessInstanceId"
 		,ifnull(prdt.status,0) as "projectReportStatusTwo"
 		,prdt.id as prdtId
@@ -840,55 +843,66 @@
 		,ifnull(pmdr.status,0) as "defectRecordStatus"
 		,pmdr.process_instance_id as "pmdrProcessInstanceId"
 		,pmdr.id as pmdrId
-		,ifnull(ppf.status,0) as "paperFilingStatus"
+
+		,(case when a.submit_money = '1' then ifnull((case when a.paper_filing_status = '10' then 10 when a.paper_filing_status = '6' then '6' when a.paper_filing_status = '7' then '7' else ifnull(pfp.status,0) end),0) when a.submit_money = '2' then ifnull((case when a.paper_filing_status = '10' then 10 when a.paper_filing_status = '6' then '6' when a.paper_filing_status = '7' then '7' else ifnull(ppf.status,0) end),0) else '' end) as paperFilingStatus
+		,pfp.audit_pass_date as "filingBatchAuditPassDate"
+		,pfp.box_num as "filingBoxNum"
+		,ppf.file_num as "ppfFileNum"
+		/*,ifnull(ppf.status,0) as "paperFilingStatus"*/
 		,ppf.process_instance_id as "ppfProcessInstanceId"
 		,ppf.id as "ppfId"
+		,ppf.audit_pass_date as "paperFilingAuditPassDate"
 		,pfb.process_instance_id AS "filingProcessinstanceId"
-		,ifnull(pfp.status,0) as "filingProjectStatus"
-		,ifnull(prd.approval_fee ,"") as "approvalFee"
-		,ifnull(prd.review_fee ,"") as "reviewFee"
-		,ifnull(prd.verify_fee ,"") as "verifyFee"
-		,ifnull(prd.verify_rate ,"") as "verifyRate"
-		,prd.audit_pass_date as "reportAuditDate"
-		,prdt.audit_pass_date as "reportTwoAuditDate"
-		/*,SUM(wi.money) as "money"*/
+		/*,ifnull(pfp.status,0) as "filingProjectStatus"*/
+		,prd.audit_pass_date as "prdAuditDate"
 		,prd.ZiXunShouRu as "money"
-		,prd.signature_flag as "signatureFlag"
-		,prd.signature_contract_id as "signatureContractId"
-		,prd.signature_url as "signatureUrl"
-		,a.report_signature_flag as "reportSignatureFlag"
-		,a.report_signature_url as "reportSignatureUrl"
-		,a.report_signature_contract_id as "reportSignatureContractId"
-		,prsi.id as "prsiId"
-		,(SELECT group_concat( su.NAME ) FROM work_project_user wpu LEFT JOIN sys_user su ON su.id = wpu.user_id WHERE wpu.project_id = a.id ) AS "leaderNameStr",
-		(SELECT group_concat( su.id ) FROM work_project_user wpu LEFT JOIN sys_user su ON su.id = wpu.user_id WHERE wpu.project_id = a.id ) AS "leaderNameIds"
+		,cb.case_process_id as "caseProcessId"
+		,cb.case_type as "caseType"
+		,cb.case_create_by as "caseCreateBy"
+		,if(case_status > 0 ,case_status,"0") as "caseStatus"
+		,a.paper_filing_status as "apaperFilingStatus"
+		,a.over_paper_filing_status as "overPaperFilingStatus"
+		,rprr.accomplish_date AS "accomplishDate"
 		FROM rural_project_records a
 		LEFT JOIN sys_area area ON area.id = a.area_id
+		LEFT JOIN sys_user sub on a.project_master_id = sub.id
 		left join rural_project_records_reported rprr on rprr.id = a.id
-		LEFT JOIN project_flingbatch_relation pfp on pfp.project_id=a.id
+		left join case_base cb on a.id = cb.project_id
+		/*LEFT JOIN project_flingbatch_relation pfp on pfp.project_id=a.id*/
+		left join
+		(select id,status,project_id,filing_batch,audit_pass_date,box_num from
+		(
+		select id,create_date,status,project_id,filing_batch,audit_pass_date,box_num
+		from project_flingbatch_relation order by create_date desc
+		)z
+		group by z.project_id
+		) pfp ON pfp.project_id = a.id
+
 		LEFT JOIN project_filingbatch pfb on pfb.id=pfp.filing_batch
 		LEFT JOIN sys_user sua on a.create_by = sua.id
-		<if test="leaderNameStr !=null and leaderNameStr !=''">
-			LEFT JOIN work_project_user w on a.id = w.project_id
-			LEFT JOIN sys_user su on w.user_id = su.id
-		</if>
-		LEFT JOIN sys_user sub on a.project_master_id = sub.id
-		LEFT JOIN sys_office sob ON sob.id = sub.office_id
 		LEFT JOIN work_project_user w1 on a.id = w1.project_id
+		LEFT JOIN sys_user su on w1.user_id = su.id
+		LEFT JOIN sys_user suMaster on a.project_master_id = suMaster.id
 		LEFT JOIN work_contract_info wci on a.contract_id = wci.id
 		LEFT JOIN work_client_info wct on wci.client_id = wct.id
 		LEFT JOIN sys_office o ON o.id = a.office_id
 		left join project_report_data prd on prd.project_id = a.id
-		left join project_report_data_two prdt on prdt.project_id = a.id
+		left join project_report_data_two prdt on prdt.project_id = a.id and prdt.del_flag = 0
 		left join rural_project_report_record prr on prr.report_id = prd.id
 		LEFT JOIN project_material_defect_record pmdr on prd.id = pmdr.report_id
-		left join rural_project_report_record_down prrd on prrd.report_id = prd.id
 		left join project_paper_filing ppf on ppf.project_id = a.id
-		left join project_approval_signature pas on pas.project_id = a.id
-		left join project_report_signature prs on prs.project_id = a.id
-		left join project_report_signature_info prsi on prsi.project_report_id = prd.number
 		<where>
-
+			a.status = 5
+			<if test="caseStatus !=null and caseStatus != ''">
+				<choose>
+					<when test="caseStatus == 0">
+						and a.id not in (select project_id from case_base)
+					</when>
+					<otherwise>
+						AND cb.case_status = #{caseStatus}
+					</otherwise>
+				</choose>
+			</if>
 			<if test="projectId != null and projectId != ''">
 				AND a.project_id like concat('%',#{projectId},'%')
 			</if>
@@ -913,7 +927,6 @@
 			<if test="projectDesc != null and projectDesc != ''">
 				AND a.project_desc LIKE concat('%',#{projectDesc},'%')
 			</if>
-
 			<if test="area != null and area.id != null and area.id != ''">
 				AND (area.parent_ids LIKE
 				<if test="dbName == 'oracle'">'%'||#{area.id}||'%'</if>
@@ -940,30 +953,179 @@
 			<if test="workContractInfo!=null and workContractInfo.client !=null and workContractInfo.client.name !=null and workContractInfo.client.name !=''">
 				AND wct.name like concat(concat('%',#{workContractInfo.client.name}),'%')
 			</if>
-            <if test="leaderNameStr !=null and leaderNameStr !=''">
+			<!--<if test="leaderNameStr !=null and leaderNameStr !=''">
                 AND su.name like concat(concat('%',#{leaderNameStr}),'%') AND w.is_master = '1' AND w.del_flag='0'
-            </if>
-            <if test="projectStatus !=null">
-                AND a.status = #{projectStatus}
-            </if>
-            <if test="beginDate !=null">
-                AND a.create_date >= #{beginDate}
-            </if>
+            </if>-->
+			<if test="(leaderNameStr != null and leaderNameStr != '') or (leaderId != null and leaderId != '')">
+				AND ((w1.user_id = #{leaderId}) or su.name like concat('%',#{leaderNameStr},'%')) AND w1.is_master = '1' AND w1.del_flag='0'
+			</if>
+			<if test="(projectMasterName != null and projectMasterName != '') or (projectMasterId != null and projectMasterId != '')">
+				AND ((a.project_master_id = #{projectMasterId}) or suMaster.name like concat('%',#{projectMasterName},'%')) AND suMaster.del_flag='0'
+			</if>
+			<if test="projectStatus !=null">
+				AND a.status = #{projectStatus}
+			</if>
+			<if test="beginDate !=null">
+				AND a.create_date >= #{beginDate}
+			</if>
+			<if test="endDate !=null">
+				AND a.create_date &lt; #{endDate}
+			</if>
+
+			<!-- 送审规模 -->
+			<if test="beginSubmitScale !=null and beginSubmitScale != ''">
+				AND a.submit_scale >= #{beginSubmitScale}
+			</if>
+			<if test="endSubmitScale !=null and endSubmitScale != ''">
+				AND a.submit_scale &lt; #{endSubmitScale}
+			</if>
+			<!-- 质量复核审核时间 -->
+			<if test="reportBeginDate !=null">
+				AND prd.audit_pass_date >= #{reportBeginDate}
+			</if>
+			<if test="reportEndDate !=null">
+				AND prd.audit_pass_date &lt;= #{reportEndDate}
+			</if>
+			<if test="reportBeginDate !=null or reportEndDate !=null">
+				AND prd.status in (5,7)
+			</if>
+			<!-- 报告签发审核时间 -->
+			<if test="reportTwoBeginDate !=null">
+				AND prdt.audit_pass_date >= #{reportTwoBeginDate}
+			</if>
+			<if test="reportTwoEndDate !=null">
+				AND prdt.audit_pass_date &lt;= #{reportTwoEndDate}
+			</if>
+			<if test="reportTwoBeginDate !=null or reportTwoEndDate !=null">
+				AND prdt.status in (5,7)
+			</if>
+			<!-- 电子归档审核时间 -->
+			<if test="reportRecordBeginDate !=null">
+				AND prr.accomplish_date >= #{reportRecordBeginDate}
+			</if>
+			<if test="reportRecordEndDate !=null">
+				AND prr.accomplish_date &lt;= #{reportRecordEndDate}
+			</if>
+			<if test="reportRecordBeginDate !=null or reportRecordEndDate !=null">
+				AND prr.status in (5,7)
+			</if>
+			<!-- 纸质归档审核时间 -->
+			<if test="paperRecordBeginDate !=null">
+				and (pfp.audit_pass_date >= #{paperRecordBeginDate}
+				or ppf.audit_pass_date >= #{paperRecordBeginDate})
+			</if>
+			<if test="paperRecordEndDate !=null">
+				and (pfp.audit_pass_date &lt;= #{paperRecordEndDate}
+				or ppf.audit_pass_date &lt;= #{paperRecordEndDate})
+			</if>
+			<if test="paperRecordBeginDate !=null or paperRecordBeginDate !=null">
+				AND (ppf.status in (5,7) or pfp.status in (5,7))
+				and (a.paper_filing_status != 10 or a.paper_filing_status is null)
+			</if>
+			<!-- 上报审核时间 -->
+			<if test="reportedBeginDate !=null">
+				AND rprr.accomplish_date >= #{reportedBeginDate}
+			</if>
+			<if test="reportedEndDate !=null">
+				AND rprr.accomplish_date &lt;= #{reportedEndDate}
+			</if>
+			<if test="reportedBeginDate !=null or reportedEndDate !=null">
+				AND a.reported_state in (5,7)
+			</if>
+
+
 			<if test="attachmentProjectSort !=null and attachmentProjectSort != ''">
 				AND a.attachment_project_sort = #{attachmentProjectSort}
 			</if>
-            <if test="endDate !=null">
-                AND a.create_date &lt; #{endDate}
-            </if>
-			<if test="projectType !=null and projectType !=''">
-				and project_type= #{projectType}
-			</if>
 			<if test="engineeringType !=null and engineeringType !=''">
 				and a.engineering_type= #{engineeringType}
 			</if>
+
+			<if test="bzshbUserId!=null and bzshbUserId!=''">
+				and prd.bzshb_user_id=#{bzshbUserId}
+			</if>
+			<if test="projectMaterialStorageStatus !=null and projectMaterialStorageStatus!=''">
+				AND a.project_material_storage_status= #{projectMaterialStorageStatus}
+			</if>
+			<if test="emergencyProject !=null and emergencyProject != ''">
+				<choose>
+					<when test="emergencyProject == 0">
+						AND (a.emergency_project = #{emergencyProject} or a.emergency_project is null)
+					</when>
+					<otherwise>
+						AND a.emergency_project = #{emergencyProject}
+					</otherwise>
+				</choose>
+			</if>
+			<!--<if test="createBy != null and createBy.id !=null and createBy.id !=''">
+				AND a.create_by = #{createBy.id}
+ 			</if>-->
+			<if test="createBy != null and((createBy.id != null and createBy.id != '') or (createBy.name != null and createBy.name != ''))">
+				AND (a.create_by = #{createBy.id} or sua.name like concat('%',#{createBy.name},'%'))
+			</if>
+			<choose>
+				<when test="downProjectReportRecordStatus == 0">
+					<choose>
+						<when test="submitMoney !=null and submitMoney !=''">
+							<if test="submitMoney == 1">
+								AND( pfp.status is null)
+							</if>
+							<if test="submitMoney == 2">
+								AND( /*pfp.status is null or*/ ppf.status is null )
+							</if>
+						</when>
+					</choose>
+				</when>
+				<otherwise>
+					<if test="downProjectReportRecordStatus!=null and downProjectReportRecordStatus !=''">
+						<choose>
+							<when test="submitMoney !=null and submitMoney !=''">
+								<if test="submitMoney == 1">
+									<choose>
+										<when test="downProjectReportRecordStatus == 10">
+											and a.paper_filing_status = #{downProjectReportRecordStatus}
+										</when>
+										<otherwise>
+											and pfp.status = #{downProjectReportRecordStatus}
+										</otherwise>
+									</choose>
+								</if>
+								<if test="submitMoney == 2">
+									<choose>
+										<when test="downProjectReportRecordStatus == 10 or downProjectReportRecordStatus == 6">
+											and a.paper_filing_status = #{downProjectReportRecordStatus}
+										</when>
+										<otherwise>
+											and ppf.status = #{downProjectReportRecordStatus}
+										</otherwise>
+									</choose>
+								</if>
+							</when>
+						</choose>
+
+					</if>
+				</otherwise>
+			</choose>
+			<if test="null != defectRecordStatus">
+				<choose>
+					<when test="defectRecordStatus == 0">
+						and pmdr.status is null
+					</when>
+					<otherwise>
+						and pmdr.status = #{defectRecordStatus}
+					</otherwise>
+				</choose>
+			</if>
+			<if test="reportData!=null and reportData.number !=null and reportData.number !=''">
+				and prd.number like concat('%',#{reportData.number},'%')
+			</if>
 			<!--<if test="office!=null and office.id!=null and office.id!=''">
 				and  a.office_id = #{office.id}
 			</if>-->
+			<if test="office!=null and office.id=='' and office.name!=null and office.name!='' ">
+				and  o.name like concat('%',#{office.name},'%')
+			</if>
+
 			<if test="officeIdList!=null and officeIdList.size!=0">
 				and a.office_id in
 				<foreach collection="officeIdList" item="officeId" separator="," open="(" close=")">
@@ -971,39 +1133,141 @@
 				</foreach>
 			</if>
 
-			<if test="reportData!=null and reportData.number !=null and reportData.number !=''">
-				and prd.number like concat('%',#{reportData.number},'%')
+			<if test="reportedState !=null and reportedState !=''">
+				<choose>
+					<when test="reportedState == 0">
+						AND a.reported_state is null
+					</when>
+					<otherwise>
+						AND a.reported_state = #{reportedState}
+					</otherwise>
+				</choose>
 			</if>
-			<if test="filingProjectStatus!=null and filingProjectStatus !=''">
-				and pfp.status =${filingProjectStatus}
+
+
+			<if test="projectReportStatus != null and projectReportStatus != ''">
+				AND prd.status = #{projectReportStatus}
 			</if>
-			<if test="submitMoney!=null and submitMoney !=''">
-				and a.submit_money =${submitMoney}
+			<if test="submitMoney != null and submitMoney != ''">
+				AND a.submit_money = #{submitMoney}
 			</if>
-			<if test="createBy !=null and createBy !=''">
-				<if test="createBy.name !=null and createBy.name !=''">
-					AND sua.name like concat(concat('%',#{createBy.name}),'%')
-				</if>
+			<choose>
+				<when test="projectReportRecordStatus != null and projectReportRecordStatus != '' and projectReportRecordStatus != 0">
+					<choose>
+						<when test="projectReportRecordStatus == 6 or projectReportRecordStatus == 7">
+							<choose>
+								<when test="projectReportRecordStatus == 6">
+									AND a.record_state= #{projectReportRecordStatus} and prr.status is null
+								</when>
+								<otherwise>
+									AND prr.status = #{projectReportRecordStatus}
+								</otherwise>
+							</choose>
+						</when>
+						<otherwise>
+							AND prr.status = #{projectReportRecordStatus}
+						</otherwise>
+					</choose>
+				</when>
+				<otherwise>
+					<choose>
+						<when test="projectReportRecordStatus == 0">
+							AND prr.status is null
+						</when>
+					</choose>
+				</otherwise>
+			</choose>
+
+			<if test="typeList !=null and typeList !=''">
+				and a.project_type in
+				<foreach collection="typeList" item="id" index="index" open="(" close=")" separator=",">
+					#{id}
+				</foreach>
 			</if>
-			<if test="office!=null and office.name!=null and office.name!=''">
-				AND o.name like concat(concat('%',#{office.name}),'%')
+			<choose>
+				<when test="projectReportStatusTwo == 0">
+					AND prdt.status is null
+				</when>
+				<otherwise>
+					<if test="projectReportStatusTwo!=null and projectReportStatusTwo !=''">
+						AND prdt.status = #{projectReportStatusTwo}
+					</if>
+				</otherwise>
+			</choose>
+
+			 AND a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
+				AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND a.company_id = #{currentUser.company.id} )${sqlMap.dsf} )
 			</if>
-            <if test="sqlMap.delFlag !=null and sqlMap.delFlag!=''">
-				${sqlMap.delFlag}
-            </if>
-            <if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
-               AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND a.company_id = #{currentUser.company.id} )${sqlMap.dsf} )
-            </if>
 		</where>
-            GROUP BY a.id
 		<choose>
 			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
 				ORDER BY ${page.orderBy}
 			</when>
 			<otherwise>
-				ORDER BY a.update_date DESC
+				ORDER BY SUBSTRING(a.project_id,6,4) DESC,cast( SUBSTRING(a.project_id,11) as UNSIGNED) DESC
 			</otherwise>
 		</choose>
+		) temporarydb
+		<where>
+			1=1
+			<choose>
+				<when test="downProjectReportRecordStatus == 0">
+					<choose>
+						<when test="submitMoney !=null and submitMoney !=''">
+							<if test="submitMoney == 1">
+								AND( temporarydb.downProjectReportRecordPaperFilingStatus = '00')
+							</if>
+							<if test="submitMoney == 2">
+								AND( temporarydb.downProjectReportRecordPaperFilingStatus = '00')
+							</if>
+						</when>
+						<otherwise>
+							AND( temporarydb.downProjectReportRecordPaperFilingStatus = '00')
+						</otherwise>
+					</choose>
+				</when>
+				<otherwise>
+					<if test="downProjectReportRecordStatus!=null and downProjectReportRecordStatus !=''">
+						<choose>
+							<when test="submitMoney !=null and submitMoney !=''">
+								<if test="submitMoney == 1">
+									<choose>
+										<when test="downProjectReportRecordStatus == 10">
+											and temporarydb.apaperFilingStatus = #{downProjectReportRecordStatus}
+										</when>
+										<otherwise>
+											and (temporarydb.downProjectReportRecordPaperFilingStatus like concat(#{downProjectReportRecordStatus},'%'))
+										</otherwise>
+									</choose>
+								</if>
+								<if test="submitMoney == 2">
+									<choose>
+										<when test="downProjectReportRecordStatus == 10 or downProjectReportRecordStatus == 6">
+											and temporarydb.apaperFilingStatus = #{downProjectReportRecordStatus}
+										</when>
+										<otherwise>
+											and ( temporarydb.downProjectReportRecordPaperFilingStatus like concat('%',#{downProjectReportRecordStatus}))
+										</otherwise>
+									</choose>
+								</if>
+							</when>
+							<otherwise>
+								<choose>
+									<when test="downProjectReportRecordStatus == 10 or downProjectReportRecordStatus == 6 or downProjectReportRecordStatus == 7">
+										and temporarydb.apaperFilingStatus = #{downProjectReportRecordStatus}
+									</when>
+									<otherwise>
+										AND( temporarydb.downProjectReportRecordPaperFilingStatus like concat('%',#{downProjectReportRecordStatus},'%'))
+									</otherwise>
+								</choose>
+							</otherwise>
+						</choose>
+
+					</if>
+				</otherwise>
+			</choose>
+		</where>
 	</select>
 
 	<select id="queryCount" resultType="int" >

+ 10 - 4
src/main/webapp/webpage/modules/workreimbursement/treeForm/all/workReimbursementAllFormAdd.jsp

@@ -287,7 +287,7 @@
                                     "</td>" +
 
                                     "<td>" +
-                                    "<input id='workAccountList" + index + "_invoiceBills' onchange='billSum(" + index + ")' name='workAccountList[" + index + "].invoiceBills' type='text' value='" + (obj.invoiceBills === null || obj.invoiceBills === undefined ? "" : obj.invoiceBills) + "'  placeholder='非数电票张数' maxlength='5'  class='form-control number'/>" +
+                                    "<input id='workAccountList" + index + "_invoiceBills' onchange='billSum(" + index + ")' name='workAccountList[" + index + "].invoiceBills' type='text' value='" + (obj.invoiceBills === null || obj.invoiceBills === undefined ? "" : obj.invoiceBills) + "'  placeholder='非数电票张数' maxlength='5'  class='form-control number' onkeyup='positiveIntegerNum(this)'/>" +
                                     "</td>" +
 
                                     "<td>" +
@@ -1588,7 +1588,7 @@
             var idValue = $idInput.val() || "";
 
             // 标记删除(通过修改第一个td中第二个input的值为1)
-            var $targetInput = $currentRow.find("td:first-child input:eq(3)");
+            var $targetInput = $currentRow.find("td:first-child input:eq(1)");
             if ($targetInput.length > 0) {
                 $targetInput.val("1");
             }
@@ -2257,6 +2257,12 @@
             }
             $("#reimbursementElectronicInvoiceVATTaxes"+index+"_sumMoney").val(money);
         }
+
+        function positiveIntegerNum(obj){
+            obj.value = obj.value.replace(/[^\d]/g,""); // 清除数字以外的所有字符(移除原有的小数点允许规则)
+            obj.value = obj.value.replace(/^0+/g,""); // 清除开头的所有0(确保是正整数,替换原验证第一个字符为数字的逻辑)
+            // 移除所有原有的小数点相关处理行
+        }
     </script>
     <style>
         /*超过5个汉字,调整label的长度,以下是配套的*/
@@ -2488,7 +2494,7 @@
                                             <input id="workAccountList${index.index}_eInvoiceBills" onchange="billSum(${index.index})" style="background-color: #f5f5f5" readonly name="workAccountList[${index.index}].eInvoiceBills" type="text" value="${workAccount.eInvoiceBills}"  placeholder="数电发票张数" maxlength="5"  class="form-control number"/>
                                         </td>
                                         <td>
-                                            <input id="workAccountList${index.index}_invoiceBills" onchange="billSum(${index.index})" name="workAccountList[${index.index}].invoiceBills" type="text" value="${workAccount.invoiceBills}"  placeholder="非数电票张数" maxlength="5"  class="form-control number"/>
+                                            <input id="workAccountList${index.index}_invoiceBills" onchange="billSum(${index.index})" name="workAccountList[${index.index}].invoiceBills" type="text" value="${workAccount.invoiceBills}"  placeholder="非数电票张数" maxlength="5"  class="form-control number" onkeyup="positiveIntegerNum(this)"/>
                                         </td>
                                         <td>
                                             <input id="workAccountList${index.index}_bills" name="workAccountList[${index.index}].bills" type="text" value="${workAccount.bills}"  readonly="readonly"  class="form-control number" style="background-color: #f5f5f5;"/>
@@ -2589,7 +2595,7 @@
                     <input id="workAccountList{{idx}}_eInvoiceBills" onchange="billSum({{idx}})" style="background-color: #f5f5f5" readonly name="workAccountList[{{idx}}].eInvoiceBills" type="text" value="{{row.eInvoiceBills}}"  placeholder="数电发票张数" maxlength="5" class="form-control number"/>
                 </td>
                 <td>
-                    <input id="workAccountList{{idx}}_invoiceBills" onchange="billSum({{idx}})" name="workAccountList[{{idx}}].invoiceBills" type="text" value="{{row.invoiceBills}}"  placeholder="非数电票张数" maxlength="5" class="form-control number"/>
+                    <input id="workAccountList{{idx}}_invoiceBills" onchange="billSum({{idx}})" name="workAccountList[{{idx}}].invoiceBills" type="text" value="{{row.invoiceBills}}"  placeholder="非数电票张数" maxlength="5" class="form-control number" onkeyup="positiveIntegerNum(this)"/>
                 </td>
                 <td>
                     <input id="workAccountList{{idx}}_bills" name="workAccountList[{{idx}}].bills" type="text" value="{{row.bills}}"  readonly="readonly" class="form-control number" style="background-color: #f5f5f5;"/>

+ 8 - 3
src/main/webapp/webpage/modules/workreimbursement/treeForm/all/workReimbursementAllModifyApply.jsp

@@ -287,7 +287,7 @@
                                     "</td>" +
 
                                     "<td>" +
-                                    "<input id='workAccountList" + index + "_invoiceBills' onchange='billSum(" + index + ")' name='workAccountList[" + index + "].invoiceBills' type='text' value='" + (obj.invoiceBills === null || obj.invoiceBills === undefined ? "" : obj.invoiceBills) + "'  placeholder='非数电票张数' maxlength='5'  class='form-control number'/>" +
+                                    "<input id='workAccountList" + index + "_invoiceBills' onchange='billSum(" + index + ")' name='workAccountList[" + index + "].invoiceBills' type='text' value='" + (obj.invoiceBills === null || obj.invoiceBills === undefined ? "" : obj.invoiceBills) + "'  placeholder='非数电票张数' maxlength='5'  class='form-control number' onkeyup='positiveIntegerNum(this)'/>" +
                                     "</td>" +
 
                                     "<td>" +
@@ -2237,6 +2237,11 @@
             }
             $("#reimbursementElectronicInvoiceVATTaxes"+index+"_sumMoney").val(money);
         }
+        function positiveIntegerNum(obj){
+            obj.value = obj.value.replace(/[^\d]/g,""); // 清除数字以外的所有字符(移除原有的小数点允许规则)
+            obj.value = obj.value.replace(/^0+/g,""); // 清除开头的所有0(确保是正整数,替换原验证第一个字符为数字的逻辑)
+            // 移除所有原有的小数点相关处理行
+        }
     </script>
     <style>
         /*超过5个汉字,调整label的长度,以下是配套的*/
@@ -2475,7 +2480,7 @@
                                             <input id="workAccountList${index.index}_eInvoiceBills" onchange="billSum(${index.index})" style="background-color: #f5f5f5" readonly="readonly" name="workAccountList[${index.index}].eInvoiceBills" type="text" value="${workAccount.eInvoiceBills}"  placeholder="数电发票张数" maxlength="5"  class="form-control number"/>
                                         </td>
                                         <td>
-                                            <input id="workAccountList${index.index}_invoiceBills" onchange="billSum(${index.index})" name="workAccountList[${index.index}].invoiceBills" type="text" value="${workAccount.invoiceBills}"  placeholder="非数电票张数" maxlength="5"  class="form-control number"/>
+                                            <input id="workAccountList${index.index}_invoiceBills" onchange="billSum(${index.index})" name="workAccountList[${index.index}].invoiceBills" type="text" value="${workAccount.invoiceBills}"  placeholder="非数电票张数" maxlength="5"  class="form-control number" onkeyup="positiveIntegerNum(this)"/>
                                         </td>
                                         <td>
                                             <input id="workAccountList${index.index}_bills" name="workAccountList[${index.index}].bills" type="text" value="${workAccount.bills}"  readonly="readonly"  class="form-control number" style="background-color: #f5f5f5;"/>
@@ -2576,7 +2581,7 @@
                     <input id="workAccountList{{idx}}_eInvoiceBills" onchange="billSum({{idx}})" style="background-color: #f5f5f5" readonly="readonly" name="workAccountList[{{idx}}].eInvoiceBills" type="text" value="{{row.eInvoiceBills}}"  placeholder="数电发票张数" maxlength="5" class="form-control number"/>
                 </td>
                 <td>
-                    <input id="workAccountList{{idx}}_invoiceBills" onchange="billSum({{idx}})" name="workAccountList[{{idx}}].invoiceBills" type="text" value="{{row.invoiceBills}}"  placeholder="非数电票张数" maxlength="5" class="form-control number"/>
+                    <input id="workAccountList{{idx}}_invoiceBills" onchange="billSum({{idx}})" name="workAccountList[{{idx}}].invoiceBills" type="text" value="{{row.invoiceBills}}"  placeholder="非数电票张数" maxlength="5" class="form-control number" onkeyup="positiveIntegerNum(this)"/>
                 </td>
                 <td>
                     <input id="workAccountList{{idx}}_bills" name="workAccountList[{{idx}}].bills" type="text" value="{{row.bills}}"  readonly="readonly" class="form-control number" style="background-color: #f5f5f5;"/>

+ 6 - 0
src/main/webapp/webpage/modules/workreimbursement/treeForm/new/workReimbursementNewAudit.jsp

@@ -684,6 +684,12 @@
             })
         }
 
+        function positiveIntegerNum(obj){
+            obj.value = obj.value.replace(/[^\d]/g,""); // 清除数字以外的所有字符(移除原有的小数点允许规则)
+            obj.value = obj.value.replace(/^0+/g,""); // 清除开头的所有0(确保是正整数,替换原验证第一个字符为数字的逻辑)
+            // 移除所有原有的小数点相关处理行
+        }
+
 
 
     </script>

+ 10 - 4
src/main/webapp/webpage/modules/workreimbursement/treeForm/new/workReimbursementNewFormAdd.jsp

@@ -288,7 +288,7 @@
                                     "</td>" +
 
                                     "<td>" +
-                                    "<input id='workAccountList" + index + "_invoiceBills' onchange='billSum(" + index + ")' name='workAccountList[" + index + "].invoiceBills' type='text' value='" + (obj.invoiceBills === null || obj.invoiceBills === undefined ? "" : obj.invoiceBills) + "'  placeholder='非数电票张数' maxlength='5'  class='form-control number'/>" +
+                                    "<input id='workAccountList" + index + "_invoiceBills' onchange='billSum(" + index + ")' name='workAccountList[" + index + "].invoiceBills' type='text' value='" + (obj.invoiceBills === null || obj.invoiceBills === undefined ? "" : obj.invoiceBills) + "'  placeholder='非数电票张数' maxlength='5'  class='form-control number' onkeyup='positiveIntegerNum(this)'/>" +
                                     "</td>" +
 
                                     "<td>" +
@@ -1594,7 +1594,7 @@
             var idValue = $idInput.val() || "";
 
             // 标记删除(通过修改第一个td中第二个input的值为1)
-            var $targetInput = $currentRow.find("td:first-child input:eq(3)");
+            var $targetInput = $currentRow.find("td:first-child input:eq(1)");
             if ($targetInput.length > 0) {
                 $targetInput.val("1");
             }
@@ -2264,6 +2264,12 @@
             }
             $("#reimbursementElectronicInvoiceVATTaxes"+index+"_sumMoney").val(money);
         }
+
+        function positiveIntegerNum(obj){
+            obj.value = obj.value.replace(/[^\d]/g,""); // 清除数字以外的所有字符(移除原有的小数点允许规则)
+            obj.value = obj.value.replace(/^0+/g,""); // 清除开头的所有0(确保是正整数,替换原验证第一个字符为数字的逻辑)
+            // 移除所有原有的小数点相关处理行
+        }
     </script>
     <style>
         /*超过5个汉字,调整label的长度,以下是配套的*/
@@ -2495,7 +2501,7 @@
                                             <input id="workAccountList${index.index}_eInvoiceBills" onchange="billSum(${index.index})" style="background-color: #f5f5f5" readonly name="workAccountList[${index.index}].eInvoiceBills" type="text" value="${workAccount.eInvoiceBills}"  placeholder="数电发票张数" maxlength="5"  class="form-control number"/>
                                         </td>
                                         <td>
-                                            <input id="workAccountList${index.index}_invoiceBills" onchange="billSum(${index.index})" name="workAccountList[${index.index}].invoiceBills" type="text" value="${workAccount.invoiceBills}"  placeholder="非数电票张数" maxlength="5"  class="form-control number"/>
+                                            <input id="workAccountList${index.index}_invoiceBills" onchange="billSum(${index.index})" name="workAccountList[${index.index}].invoiceBills" type="text" value="${workAccount.invoiceBills}"  placeholder="非数电票张数" maxlength="5"  class="form-control number" onkeyup="positiveIntegerNum(this)"/>
                                         </td>
                                         <td>
                                             <input id="workAccountList${index.index}_bills" name="workAccountList[${index.index}].bills" type="text" value="${workAccount.bills}"  readonly="readonly"  class="form-control number" style="background-color: #f5f5f5;"/>
@@ -2596,7 +2602,7 @@
                     <input id="workAccountList{{idx}}_eInvoiceBills" onchange="billSum({{idx}})" style="background-color: #f5f5f5" readonly name="workAccountList[{{idx}}].eInvoiceBills" type="text" value="{{row.eInvoiceBills}}"  placeholder="数电发票张数" maxlength="5" class="form-control number"/>
                 </td>
                 <td>
-                    <input id="workAccountList{{idx}}_invoiceBills" onchange="billSum({{idx}})" name="workAccountList[{{idx}}].invoiceBills" type="text" value="{{row.invoiceBills}}"  placeholder="非数电票张数" maxlength="5" class="form-control number"/>
+                    <input id="workAccountList{{idx}}_invoiceBills" onchange="billSum({{idx}})" name="workAccountList[{{idx}}].invoiceBills" type="text" value="{{row.invoiceBills}}"  placeholder="非数电票张数" maxlength="5" class="form-control number" onkeyup="positiveIntegerNum(this)"/>
                 </td>
                 <td>
                     <input id="workAccountList{{idx}}_bills" name="workAccountList[{{idx}}].bills" type="text" value="{{row.bills}}"  readonly="readonly" class="form-control number" style="background-color: #f5f5f5;"/>

+ 10 - 4
src/main/webapp/webpage/modules/workreimbursement/treeForm/new/workReimbursementNewModifyApply.jsp

@@ -287,7 +287,7 @@
                                     "</td>" +
 
                                     "<td>" +
-                                    "<input id='workAccountList" + index + "_invoiceBills' onchange='billSum(" + index + ")' name='workAccountList[" + index + "].invoiceBills' type='text' value='" + (obj.invoiceBills === null || obj.invoiceBills === undefined ? "" : obj.invoiceBills) + "'  placeholder='非数电票张数' maxlength='5'  class='form-control number'/>" +
+                                    "<input id='workAccountList" + index + "_invoiceBills' onchange='billSum(" + index + ")' name='workAccountList[" + index + "].invoiceBills' type='text' value='" + (obj.invoiceBills === null || obj.invoiceBills === undefined ? "" : obj.invoiceBills) + "'  placeholder='非数电票张数' maxlength='5'  class='form-control number' onkeyup='positiveIntegerNum(this)'/>" +
                                     "</td>" +
 
                                     "<td>" +
@@ -1567,7 +1567,7 @@
             var idValue = $idInput.val() || "";
 
             // 标记删除(通过修改第一个td中第二个input的值为1)
-            var $targetInput = $currentRow.find("td:first-child input:eq(3)");
+            var $targetInput = $currentRow.find("td:first-child input:eq(1)");
             if ($targetInput.length > 0) {
                 $targetInput.val("1");
             }
@@ -2234,6 +2234,12 @@
             }
             $("#reimbursementElectronicInvoiceVATTaxes"+index+"_sumMoney").val(money);
         }
+
+        function positiveIntegerNum(obj){
+            obj.value = obj.value.replace(/[^\d]/g,""); // 清除数字以外的所有字符(移除原有的小数点允许规则)
+            obj.value = obj.value.replace(/^0+/g,""); // 清除开头的所有0(确保是正整数,替换原验证第一个字符为数字的逻辑)
+            // 移除所有原有的小数点相关处理行
+        }
     </script>
     <style>
         /*超过5个汉字,调整label的长度,以下是配套的*/
@@ -2472,7 +2478,7 @@
                                             <input id="workAccountList${index.index}_eInvoiceBills" onchange="billSum(${index.index})" style="background-color: #f5f5f5" readonly="readonly" name="workAccountList[${index.index}].eInvoiceBills" type="text" value="${workAccount.eInvoiceBills}"  placeholder="数电发票张数" maxlength="5"  class="form-control number"/>
                                         </td>
                                         <td>
-                                            <input id="workAccountList${index.index}_invoiceBills" onchange="billSum(${index.index})" name="workAccountList[${index.index}].invoiceBills" type="text" value="${workAccount.invoiceBills}"  placeholder="非数电票张数" maxlength="5"  class="form-control number"/>
+                                            <input id="workAccountList${index.index}_invoiceBills" onchange="billSum(${index.index})" name="workAccountList[${index.index}].invoiceBills" type="text" value="${workAccount.invoiceBills}"  placeholder="非数电票张数" maxlength="5"  class="form-control number" onkeyup="positiveIntegerNum(this)"/>
                                         </td>
                                         <td>
                                             <input id="workAccountList${index.index}_bills" name="workAccountList[${index.index}].bills" type="text" value="${workAccount.bills}"  readonly="readonly"  class="form-control number" style="background-color: #f5f5f5;"/>
@@ -2573,7 +2579,7 @@
                     <input id="workAccountList{{idx}}_eInvoiceBills" onchange="billSum({{idx}})" style="background-color: #f5f5f5" readonly="readonly" name="workAccountList[{{idx}}].eInvoiceBills" type="text" value="{{row.eInvoiceBills}}"  placeholder="数电发票张数" maxlength="5" class="form-control number"/>
                 </td>
                 <td>
-                    <input id="workAccountList{{idx}}_invoiceBills" onchange="billSum({{idx}})" name="workAccountList[{{idx}}].invoiceBills" type="text" value="{{row.invoiceBills}}"  placeholder="非数电票张数" maxlength="5" class="form-control number"/>
+                    <input id="workAccountList{{idx}}_invoiceBills" onchange="billSum({{idx}})" name="workAccountList[{{idx}}].invoiceBills" type="text" value="{{row.invoiceBills}}"  placeholder="非数电票张数" maxlength="5" class="form-control number" onkeyup="positiveIntegerNum(this)"/>
                 </td>
                 <td>
                     <input id="workAccountList{{idx}}_bills" name="workAccountList[{{idx}}].bills" type="text" value="{{row.bills}}"  readonly="readonly" class="form-control number" style="background-color: #f5f5f5;"/>

+ 9 - 4
src/main/webapp/webpage/modules/workreimbursement/treeForm/replenish/workReimbursementReplenishAudit.jsp

@@ -287,7 +287,7 @@
 										"</td>" +
 
 										"<td>" +
-										"<input id='workAccountList" + index + "_invoiceBills' onchange='billSum(" + index + ")' name='workAccountList[" + index + "].invoiceBills' type='text' value='" + (obj.invoiceBills === null || obj.invoiceBills === undefined ? "" : obj.invoiceBills) + "'  placeholder='非数电票张数' maxlength='5'  class='form-control number'/>" +
+										"<input id='workAccountList" + index + "_invoiceBills' onchange='billSum(" + index + ")' name='workAccountList[" + index + "].invoiceBills' type='text' value='" + (obj.invoiceBills === null || obj.invoiceBills === undefined ? "" : obj.invoiceBills) + "'  placeholder='非数电票张数' maxlength='5'  class='form-control number' onkeyup='positiveIntegerNum(this)'/>" +
 										"</td>" +
 
 										"<td>" +
@@ -1560,7 +1560,7 @@
 			var idValue = $idInput.val() || "";
 
 			// 标记删除(通过修改第一个td中第二个input的值为1)
-			var $targetInput = $currentRow.find("td:first-child input:eq(3)");
+			var $targetInput = $currentRow.find("td:first-child input:eq(1)");
 			if ($targetInput.length > 0) {
 				$targetInput.val("1");
 			}
@@ -2227,6 +2227,11 @@
 			}
 			$("#reimbursementElectronicInvoiceVATTaxes"+index+"_sumMoney").val(money);
 		}
+		function positiveIntegerNum(obj){
+			obj.value = obj.value.replace(/[^\d]/g,""); // 清除数字以外的所有字符(移除原有的小数点允许规则)
+			obj.value = obj.value.replace(/^0+/g,""); // 清除开头的所有0(确保是正整数,替换原验证第一个字符为数字的逻辑)
+			// 移除所有原有的小数点相关处理行
+		}
 	</script>
 	<style>
 		/*超过5个汉字,调整label的长度,以下是配套的*/
@@ -2461,7 +2466,7 @@
                                             <input id="workAccountList${index.index}_eInvoiceBills" onchange="billSum(${index.index})" style="background-color: #f5f5f5" readonly="readonly" name="workAccountList[${index.index}].eInvoiceBills" type="text" value="${workAccount.eInvoiceBills}"  placeholder="数电发票张数" maxlength="5"  class="form-control number"/>
                                         </td>
                                         <td>
-                                            <input id="workAccountList${index.index}_invoiceBills" onchange="billSum(${index.index})" name="workAccountList[${index.index}].invoiceBills" type="text" value="${workAccount.invoiceBills}"  placeholder="非数电票张数" maxlength="5"  class="form-control number"/>
+                                            <input id="workAccountList${index.index}_invoiceBills" onchange="billSum(${index.index})" name="workAccountList[${index.index}].invoiceBills" type="text" value="${workAccount.invoiceBills}"  placeholder="非数电票张数" maxlength="5"  class="form-control number" onkeyup="positiveIntegerNum(this)"/>
                                         </td>
                                         <td>
                                             <input id="workAccountList${index.index}_bills" name="workAccountList[${index.index}].bills" type="text" value="${workAccount.bills}"  readonly="readonly"  class="form-control number" style="background-color: #f5f5f5;"/>
@@ -2562,7 +2567,7 @@
                     <input id="workAccountList{{idx}}_eInvoiceBills" onchange="billSum({{idx}})" style="background-color: #f5f5f5" readonly="readonly" name="workAccountList[{{idx}}].eInvoiceBills" type="text" value="{{row.eInvoiceBills}}"  placeholder="数电发票张数" maxlength="5" class="form-control number"/>
                 </td>
                 <td>
-                    <input id="workAccountList{{idx}}_invoiceBills" onchange="billSum({{idx}})" name="workAccountList[{{idx}}].invoiceBills" type="text" value="{{row.invoiceBills}}"  placeholder="非数电票张数" maxlength="5" class="form-control number"/>
+                    <input id="workAccountList{{idx}}_invoiceBills" onchange="billSum({{idx}})" name="workAccountList[{{idx}}].invoiceBills" type="text" value="{{row.invoiceBills}}"  placeholder="非数电票张数" maxlength="5" class="form-control number" onkeyup="positiveIntegerNum(this)"/>
                 </td>
                 <td>
                     <input id="workAccountList{{idx}}_bills" name="workAccountList[{{idx}}].bills" type="text" value="{{row.bills}}"  readonly="readonly" class="form-control number" style="background-color: #f5f5f5;"/>

+ 6 - 0
src/main/webapp/webpage/modules/workreimbursement/treeForm/replenish/workReimbursementReplenishCwAudit.jsp

@@ -664,6 +664,12 @@
 			})
 		}
 
+		function positiveIntegerNum(obj){
+			obj.value = obj.value.replace(/[^\d]/g,""); // 清除数字以外的所有字符(移除原有的小数点允许规则)
+			obj.value = obj.value.replace(/^0+/g,""); // 清除开头的所有0(确保是正整数,替换原验证第一个字符为数字的逻辑)
+			// 移除所有原有的小数点相关处理行
+		}
+
 
 
 	</script>

+ 6 - 0
src/main/webapp/webpage/modules/workreimbursement/treeForm/specific/workReimbursementSpecificAudit.jsp

@@ -664,6 +664,12 @@
 			})
 		}
 
+		function positiveIntegerNum(obj){
+			obj.value = obj.value.replace(/[^\d]/g,""); // 清除数字以外的所有字符(移除原有的小数点允许规则)
+			obj.value = obj.value.replace(/^0+/g,""); // 清除开头的所有0(确保是正整数,替换原验证第一个字符为数字的逻辑)
+			// 移除所有原有的小数点相关处理行
+		}
+
 
 
 	</script>

+ 9 - 4
src/main/webapp/webpage/modules/workreimbursement/treeForm/specific/workReimbursementSpecificModifyApply.jsp

@@ -287,7 +287,7 @@
                                     "</td>" +
 
                                     "<td>" +
-                                    "<input id='workAccountList" + index + "_invoiceBills' onchange='billSum(" + index + ")' name='workAccountList[" + index + "].invoiceBills' type='text' value='" + (obj.invoiceBills === null || obj.invoiceBills === undefined ? "" : obj.invoiceBills) + "'  placeholder='非数电票张数' maxlength='5'  class='form-control number'/>" +
+                                    "<input id='workAccountList" + index + "_invoiceBills' onchange='billSum(" + index + ")' name='workAccountList[" + index + "].invoiceBills' type='text' value='" + (obj.invoiceBills === null || obj.invoiceBills === undefined ? "" : obj.invoiceBills) + "'  placeholder='非数电票张数' maxlength='5'  class='form-control number' onkeyup='positiveIntegerNum(this)'/>" +
                                     "</td>" +
 
                                     "<td>" +
@@ -1573,7 +1573,7 @@
             var idValue = $idInput.val() || "";
 
             // 标记删除(通过修改第一个td中第二个input的值为1)
-            var $targetInput = $currentRow.find("td:first-child input:eq(3)");
+            var $targetInput = $currentRow.find("td:first-child input:eq(1)");
             if ($targetInput.length > 0) {
                 $targetInput.val("1");
             }
@@ -2240,6 +2240,11 @@
             }
             $("#reimbursementElectronicInvoiceVATTaxes"+index+"_sumMoney").val(money);
         }
+        function positiveIntegerNum(obj){
+            obj.value = obj.value.replace(/[^\d]/g,""); // 清除数字以外的所有字符(移除原有的小数点允许规则)
+            obj.value = obj.value.replace(/^0+/g,""); // 清除开头的所有0(确保是正整数,替换原验证第一个字符为数字的逻辑)
+            // 移除所有原有的小数点相关处理行
+        }
     </script>
     <style>
         /*超过5个汉字,调整label的长度,以下是配套的*/
@@ -2478,7 +2483,7 @@
                                             <input id="workAccountList${index.index}_eInvoiceBills" onchange="billSum(${index.index})" style="background-color: #f5f5f5" readonly="readonly" name="workAccountList[${index.index}].eInvoiceBills" type="text" value="${workAccount.eInvoiceBills}"  placeholder="数电发票张数" maxlength="5"  class="form-control number"/>
                                         </td>
                                         <td>
-                                            <input id="workAccountList${index.index}_invoiceBills" onchange="billSum(${index.index})" name="workAccountList[${index.index}].invoiceBills" type="text" value="${workAccount.invoiceBills}"  placeholder="非数电票张数" maxlength="5"  class="form-control number"/>
+                                            <input id="workAccountList${index.index}_invoiceBills" onchange="billSum(${index.index})" name="workAccountList[${index.index}].invoiceBills" type="text" value="${workAccount.invoiceBills}"  placeholder="非数电票张数" maxlength="5"  class="form-control number" onkeyup="positiveIntegerNum(this)"/>
                                         </td>
                                         <td>
                                             <input id="workAccountList${index.index}_bills" name="workAccountList[${index.index}].bills" type="text" value="${workAccount.bills}"  readonly="readonly"  class="form-control number" style="background-color: #f5f5f5;"/>
@@ -2579,7 +2584,7 @@
                     <input id="workAccountList{{idx}}_eInvoiceBills" onchange="billSum({{idx}})" style="background-color: #f5f5f5" readonly="readonly" name="workAccountList[{{idx}}].eInvoiceBills" type="text" value="{{row.eInvoiceBills}}"  placeholder="数电发票张数" maxlength="5" class="form-control number"/>
                 </td>
                 <td>
-                    <input id="workAccountList{{idx}}_invoiceBills" onchange="billSum({{idx}})" name="workAccountList[{{idx}}].invoiceBills" type="text" value="{{row.invoiceBills}}"  placeholder="非数电票张数" maxlength="5" class="form-control number"/>
+                    <input id="workAccountList{{idx}}_invoiceBills" onchange="billSum({{idx}})" name="workAccountList[{{idx}}].invoiceBills" type="text" value="{{row.invoiceBills}}"  placeholder="非数电票张数" maxlength="5" class="form-control number" onkeyup="positiveIntegerNum(this)"/>
                 </td>
                 <td>
                     <input id="workAccountList{{idx}}_bills" name="workAccountList[{{idx}}].bills" type="text" value="{{row.bills}}"  readonly="readonly" class="form-control number" style="background-color: #f5f5f5;"/>