Browse Source

军工保密证书功能提交

徐滕 2 weeks ago
parent
commit
962387ee0c
27 changed files with 758 additions and 95 deletions
  1. 5 0
      src/main/java/com/jeeplus/modules/militaryIndustryConfidentiality/dao/MilitaryIndustryConfidentialityDao.java
  2. 30 8
      src/main/java/com/jeeplus/modules/militaryIndustryConfidentiality/entity/MilitaryIndustryConfidentiality.java
  3. 118 3
      src/main/java/com/jeeplus/modules/militaryIndustryConfidentiality/service/MilitaryIndustryConfidentialityService.java
  4. 29 6
      src/main/java/com/jeeplus/modules/militaryIndustryConfidentiality/web/MilitaryIndustryConfidentialityController.java
  5. 18 0
      src/main/java/com/jeeplus/modules/workcalendar/service/WorkCalendarTaskService.java
  6. 19 0
      src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java
  7. 2 0
      src/main/java/com/jeeplus/modules/workstaff/dao/WorkStaffAchivesDao.java
  8. 10 0
      src/main/java/com/jeeplus/modules/workstaff/service/WorkStaffBasicInfoService.java
  9. 13 13
      src/main/java/com/jeeplus/modules/workstaff/service/WorkStaffRewardsService.java
  10. 1 0
      src/main/java/com/jeeplus/modules/workstaff/web/WorkStaffBasicInfoController.java
  11. 40 0
      src/main/resources/mappings/modules/militaryIndustryConfidentiality/MilitaryIndustryConfidentialityDao.xml
  12. 6 0
      src/main/resources/mappings/modules/workstaff/WorkStaffAchivesDao.xml
  13. 1 1
      src/main/resources/mappings/modules/workstaff/WorkStaffRewardsDao.xml
  14. 5 18
      src/main/webapp/webpage/modules/militaryIndustryConfidentiality/militaryIndustryConfidentialityForm.jsp
  15. 18 8
      src/main/webapp/webpage/modules/militaryIndustryConfidentiality/militaryIndustryConfidentialityList.jsp
  16. 405 0
      src/main/webapp/webpage/modules/militaryIndustryConfidentiality/militaryIndustryConfidentialityView.jsp
  17. 3 3
      src/main/webapp/webpage/modules/sys/userInfo.jsp
  18. 3 3
      src/main/webapp/webpage/modules/workstaff/workAddressBookView.jsp
  19. 4 4
      src/main/webapp/webpage/modules/workstaff/workStaffAchiveInfoForm.jsp
  20. 4 4
      src/main/webapp/webpage/modules/workstaff/workStaffAchiveInfoForms.jsp
  21. 4 4
      src/main/webapp/webpage/modules/workstaff/workStaffBasicDetailAudit.jsp
  22. 4 4
      src/main/webapp/webpage/modules/workstaff/workStaffBasicDetailForm.jsp
  23. 4 4
      src/main/webapp/webpage/modules/workstaff/workStaffBasicDetailModify.jsp
  24. 4 4
      src/main/webapp/webpage/modules/workstaff/workStaffBasicDetailModifyDirectly.jsp
  25. 1 1
      src/main/webapp/webpage/modules/workstaff/workStaffBasicDirectlyAudit.jsp
  26. 4 4
      src/main/webapp/webpage/modules/workstaff/workStaffBasicInfoForm.jsp
  27. 3 3
      src/main/webapp/webpage/modules/workstaff/workStaffBasicInfoView.jsp

+ 5 - 0
src/main/java/com/jeeplus/modules/militaryIndustryConfidentiality/dao/MilitaryIndustryConfidentialityDao.java

@@ -11,5 +11,10 @@ import com.jeeplus.modules.militaryIndustryConfidentiality.entity.MilitaryIndust
  */
 @MyBatisDao
 public interface MilitaryIndustryConfidentialityDao extends CrudDao<MilitaryIndustryConfidentiality> {
+    /**
+     * 修改状态值
+     * @param info
+     */
+    void updateStatus(MilitaryIndustryConfidentiality info);
 
 }

+ 30 - 8
src/main/java/com/jeeplus/modules/militaryIndustryConfidentiality/entity/MilitaryIndustryConfidentiality.java

@@ -1,6 +1,8 @@
 package com.jeeplus.modules.militaryIndustryConfidentiality.entity;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.jeeplus.common.persistence.DataEntity;
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
 import com.jeeplus.modules.sys.entity.User;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -34,6 +36,7 @@ public class MilitaryIndustryConfidentiality  extends DataEntity<MilitaryIndustr
     private Date endEndDate;     //到期时间结束时间
     private String officeName;     //证书人员隶属部门
     private String wsbiId;     //关联的人员id(work_staff_basic_info)
+    private String home;
 
     public MilitaryIndustryConfidentiality() {
         super();
@@ -43,6 +46,7 @@ public class MilitaryIndustryConfidentiality  extends DataEntity<MilitaryIndustr
         super(id);
     }
 
+    @ExcelField(title="所在单位", align=2, sort=1 ,mainDictType = "militaryIndustryConfidentiality_personnel_type")
     public String getPersonnelType() {
         return personnelType;
     }
@@ -59,6 +63,7 @@ public class MilitaryIndustryConfidentiality  extends DataEntity<MilitaryIndustr
         this.userId = userId;
     }
 
+    @ExcelField(title="姓名", align=2, sort=2)
     public String getUserName() {
         return userName;
     }
@@ -67,6 +72,16 @@ public class MilitaryIndustryConfidentiality  extends DataEntity<MilitaryIndustr
         this.userName = userName;
     }
 
+    @ExcelField(title="部门名称", align=2, sort=2)
+    public String getOfficeName() {
+        return officeName;
+    }
+
+    public void setOfficeName(String officeName) {
+        this.officeName = officeName;
+    }
+
+    @ExcelField(title="证书名称", align=2, sort=4)
     public String getName() {
         return name;
     }
@@ -75,6 +90,7 @@ public class MilitaryIndustryConfidentiality  extends DataEntity<MilitaryIndustr
         this.name = name;
     }
 
+    @ExcelField(title="证书编号", align=2, sort=5)
     public String getNum() {
         return num;
     }
@@ -83,6 +99,8 @@ public class MilitaryIndustryConfidentiality  extends DataEntity<MilitaryIndustr
         this.num = num;
     }
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ExcelField(title="证书生效日期", align=2, sort=6)
     public Date getEffectiveDate() {
         return effectiveDate;
     }
@@ -91,6 +109,7 @@ public class MilitaryIndustryConfidentiality  extends DataEntity<MilitaryIndustr
         this.effectiveDate = effectiveDate;
     }
 
+    @ExcelField(title="证书有效期(年)", align=2, sort=7)
     public Integer getPeriodOfValidity() {
         return periodOfValidity;
     }
@@ -99,6 +118,8 @@ public class MilitaryIndustryConfidentiality  extends DataEntity<MilitaryIndustr
         this.periodOfValidity = periodOfValidity;
     }
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ExcelField(title="证书失效日期", align=2, sort=8)
     public Date getEndDate() {
         return endDate;
     }
@@ -107,6 +128,7 @@ public class MilitaryIndustryConfidentiality  extends DataEntity<MilitaryIndustr
         this.endDate = endDate;
     }
 
+    @ExcelField(title="证书状态", align=2, sort=9 ,mainDictType = "militaryIndustryConfidentiality_status")
     public String getStatus() {
         return status;
     }
@@ -171,14 +193,6 @@ public class MilitaryIndustryConfidentiality  extends DataEntity<MilitaryIndustr
         this.endEndDate = endEndDate;
     }
 
-    public String getOfficeName() {
-        return officeName;
-    }
-
-    public void setOfficeName(String officeName) {
-        this.officeName = officeName;
-    }
-
     public String getWsbiId() {
         return wsbiId;
     }
@@ -186,4 +200,12 @@ public class MilitaryIndustryConfidentiality  extends DataEntity<MilitaryIndustr
     public void setWsbiId(String wsbiId) {
         this.wsbiId = wsbiId;
     }
+
+    public String getHome() {
+        return home;
+    }
+
+    public void setHome(String home) {
+        this.home = home;
+    }
 }

+ 118 - 3
src/main/java/com/jeeplus/modules/militaryIndustryConfidentiality/service/MilitaryIndustryConfidentialityService.java

@@ -1,21 +1,28 @@
 package com.jeeplus.modules.militaryIndustryConfidentiality.service;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.oss.OSSClientUtil;
 import com.jeeplus.common.service.CrudService;
 import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.modules.militaryIndustryConfidentiality.dao.MilitaryIndustryConfidentialityDao;
 import com.jeeplus.modules.militaryIndustryConfidentiality.entity.MilitaryIndustryConfidentiality;
+import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.service.WorkattachmentService;
-import com.jeeplus.modules.workstaff.entity.DingTalkUser;
-import com.jeeplus.modules.workstaff.entity.WorkStaffBasicInfo;
-import com.jeeplus.modules.workstaff.entity.WorkStaffCertificate;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workprojectnotify.service.WorkProjectNotifyService;
+import com.jeeplus.modules.workprojectnotify.util.UtilNotify;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.InputStream;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -27,6 +34,8 @@ import java.util.Date;
 @Transactional(readOnly = true)
 public class MilitaryIndustryConfidentialityService extends CrudService<MilitaryIndustryConfidentialityDao, MilitaryIndustryConfidentiality> {
 
+    @Autowired
+    private WorkProjectNotifyService workProjectNotifyService;
 
     public MilitaryIndustryConfidentiality get(String id) {
         MilitaryIndustryConfidentiality militaryIndustryConfidentiality = super.get(id);
@@ -51,6 +60,15 @@ public class MilitaryIndustryConfidentialityService extends CrudService<Military
             militaryIndustryConfidentiality.setFileName(file.getOriginalFilename());
             militaryIndustryConfidentiality.setFilePath(this.uploadFile(file));
         }
+        //判定当前时间是否在证书到期日期之前
+        Date now = new Date(); // 当前时间
+        Date endEndDate = militaryIndustryConfidentiality.getEndDate(); // 你的目标日期,假设已赋值
+
+        if (now.before(endEndDate)) {
+            militaryIndustryConfidentiality.setStatus("1");
+        } else {
+            militaryIndustryConfidentiality.setStatus("2");
+        }
         super.save(militaryIndustryConfidentiality);
     }
 
@@ -80,4 +98,101 @@ public class MilitaryIndustryConfidentialityService extends CrudService<Military
         dao.deleteByLogic(militaryIndustryConfidentiality);
 
     }
+
+
+    /**
+     * 定时任务。每天3:45执行,即将过期或过期人员进行发送通知
+     * ccpm人员 发送通知给 证书持有人、保密管理员、综合部主任
+     * 会计公司人员 发送通知给保密管理员、综合部主任
+     */
+    @Transactional(readOnly = false)
+    public void timedTask() {
+        MilitaryIndustryConfidentiality militaryIndustryConfidentiality = new MilitaryIndustryConfidentiality();
+        List<MilitaryIndustryConfidentiality> list = dao.findList(militaryIndustryConfidentiality);
+        for (MilitaryIndustryConfidentiality info : list) {
+
+            if (StringUtils.isBlank(info.getUserName()) && null != info.getUser() && StringUtils.isNotBlank(info.getUser().getName())) {
+                info.setUserName(info.getUser().getName());
+            }
+            String oldStatus = info.getStatus();
+            //判定当前时间是否在证书到期日期之前
+            Date now = new Date(); // 当前时间
+            Date endEndDate = info.getEndDate(); // 你的目标日期,假设已赋值
+
+            if (now.before(endEndDate)) {
+                info.setStatus("1");
+            } else {
+                info.setStatus("2");
+            }
+            if(!oldStatus.equals(info.getStatus())){
+                dao.updateStatus(info);
+            }
+        }
+
+        for (MilitaryIndustryConfidentiality info : list) {
+            Date endDateRaw = info.getEndDate();
+            if (endDateRaw == null) continue;
+
+            // 转为 LocalDate
+            LocalDate endDate = endDateRaw.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+            LocalDate notifyStartDate = endDate.minusMonths(6);
+            LocalDate today = LocalDate.now();
+
+            // 判断当前是否在通知期内
+            if (!today.isBefore(notifyStartDate) && !today.isAfter(endDate)) {
+
+                // 当前日期是“每月与到期日同一天”
+                int endDay = endDate.getDayOfMonth();
+                int todayDay = today.getDayOfMonth();
+
+                // 为了避免 2 月、4 月等没有 30、31 号的情况,做个判断:
+                int maxDayOfMonth = today.lengthOfMonth();
+                boolean isSameDay = (endDay == todayDay) || (endDay > maxDayOfMonth && todayDay == maxDayOfMonth);
+
+                if (isSameDay) {
+                    // ✅ 发通知逻辑
+                    sendNotification(info);
+                }
+            }
+        }
+
+    }
+
+    /**
+     * 发送通知
+     * ccpm人员 发送通知给 证书持有人、保密管理员、综合部主任
+     * 会计公司人员 发送通知给保密管理员、综合部主任
+     * @param info
+     */
+    private void sendNotification(MilitaryIndustryConfidentiality info) {
+        List<User> sendUserList = Lists.newArrayList();
+        User sendUser = UserUtils.getByUserId(info.getCreateBy().getId());
+        List<User> zhglbzrUsers = UserUtils.getByRoleActivityEnname("zhglbzr",3,sendUser.getOffice().getId(),"ffe5af5b557e46f28b000c94716e228a","8");
+        List<User> bmglyUsers = UserUtils.getByRoleActivityEnname("bmgly",3,sendUser.getOffice().getId(),"ffe5af5b557e46f28b000c94716e228a","8");
+        sendUserList.addAll(zhglbzrUsers);
+        sendUserList.addAll(bmglyUsers);
+        if("1".equals(info.getPersonnelType()) && StringUtils.isNotBlank(info.getUser().getId())) {
+            User user = UserUtils.get(info.getUser().getId());
+            sendUserList.add(user);
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
+        String formattedDate = sdf.format(info.getEndDate());
+
+        String notifyStr = info.getUserName() + " 的军工保密证书将于 " + formattedDate + " 到期,请及时更新。";
+        String titleStr = info.getUserName() + " 的军工保密证书将于 " + formattedDate + " 到期,请及时更新。";
+
+        for (User user: sendUserList) {
+            user = UserUtils.get(user.getId());
+            workProjectNotifyService
+                    .save(UtilNotify.saveNotify(info.getId(),
+                            user,
+                            user.getCompany().getId(),
+                            titleStr,
+                            notifyStr,
+                            "187",
+                            "0",
+                            "待通知",
+                            ""));
+        }
+    }
 }

+ 29 - 6
src/main/java/com/jeeplus/modules/militaryIndustryConfidentiality/web/MilitaryIndustryConfidentialityController.java

@@ -9,7 +9,6 @@ import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.web.BaseController;
 import com.jeeplus.modules.militaryIndustryConfidentiality.entity.MilitaryIndustryConfidentiality;
 import com.jeeplus.modules.militaryIndustryConfidentiality.service.MilitaryIndustryConfidentialityService;
-import com.jeeplus.modules.sys.utils.UserUtils;
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -94,8 +93,26 @@ public class MilitaryIndustryConfidentialityController extends BaseController {
             militaryIndustryConfidentiality.setName("军工保密资格证");//默认值
         }
         model.addAttribute("militaryIndustryConfidentiality", militaryIndustryConfidentiality);
-        String view = "modules/militaryIndustryConfidentiality/militaryIndustryConfidentialityForm";
-        return view;
+        return "modules/militaryIndustryConfidentiality/militaryIndustryConfidentialityForm";
+    }
+
+
+    /**
+     * 查看,增加,编辑员工信息表单页面
+     */
+    @RequiresPermissions(value={"militaryIndustryConfidentiality:view"},logical= Logical.OR)
+    @RequestMapping(value = "view")
+    public String view(MilitaryIndustryConfidentiality militaryIndustryConfidentiality, Model model,boolean reFlag) {
+        if(StringUtils.isNotBlank(militaryIndustryConfidentiality.getId())) {
+            militaryIndustryConfidentiality = service.get(militaryIndustryConfidentiality.getId());
+        }else{
+            militaryIndustryConfidentiality = new MilitaryIndustryConfidentiality();
+            militaryIndustryConfidentiality.setPersonnelType("1");//默认值
+            militaryIndustryConfidentiality.setPeriodOfValidity(3);//默认值
+            militaryIndustryConfidentiality.setName("军工保密资格证");//默认值
+        }
+        model.addAttribute("militaryIndustryConfidentiality", militaryIndustryConfidentiality);
+        return "modules/militaryIndustryConfidentiality/militaryIndustryConfidentialityView";
     }
 
 
@@ -135,12 +152,18 @@ public class MilitaryIndustryConfidentialityController extends BaseController {
      * 导出excel文件
      */
     @RequiresPermissions("militaryIndustryConfidentiality:export")
-    @RequestMapping(value = "exportAchive", method= RequestMethod.POST)
-    public String exportFile(MilitaryIndustryConfidentiality militaryIndustryConfidentiality, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
+    @RequestMapping(value = "export", method= RequestMethod.POST)
+    public String export(MilitaryIndustryConfidentiality militaryIndustryConfidentiality, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
         try {
             String fileName = "员工信息"+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
             Page<MilitaryIndustryConfidentiality> page = service.findPage(new Page<MilitaryIndustryConfidentiality>(request, response, -1), militaryIndustryConfidentiality);
-            new ExportExcel("员工信息", MilitaryIndustryConfidentiality.class).setDataList(page.getList()).write(response, fileName).dispose();
+            List<MilitaryIndustryConfidentiality> list = page.getList();
+            for (MilitaryIndustryConfidentiality industryConfidentiality : list) {
+                if (StringUtils.isBlank(industryConfidentiality.getUserName()) && null != industryConfidentiality.getUser() && StringUtils.isNotBlank(industryConfidentiality.getUser().getName())) {
+                    industryConfidentiality.setUserName(industryConfidentiality.getUser().getName());
+                }
+            }
+            new ExportExcel("员工信息", MilitaryIndustryConfidentiality.class).setDataList(list).write(response, fileName).dispose();
             addMessage(redirectAttributes, "导出员工信息记录成功!");
             return null;
         } catch (Exception e) {

+ 18 - 0
src/main/java/com/jeeplus/modules/workcalendar/service/WorkCalendarTaskService.java

@@ -4,6 +4,7 @@
 package com.jeeplus.modules.workcalendar.service;
 
 import com.jeeplus.common.utils.DateUtils;
+import com.jeeplus.modules.militaryIndustryConfidentiality.service.MilitaryIndustryConfidentialityService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectSignatureOldMessageDisposeService;
 import com.jeeplus.modules.statement.service.StatementCompanyComprehensiveService;
@@ -54,6 +55,8 @@ public class WorkCalendarTaskService  {
     private WorkInvoiceService workInvoiceService;
     @Autowired
     private UserService userService;
+    @Autowired
+    private MilitaryIndustryConfidentialityService militaryIndustryConfidentialityService;
 
     //@Scheduled(cron= "0 0/1 * * * ?")
     public void notifyTask() {
@@ -380,4 +383,19 @@ public class WorkCalendarTaskService  {
         }
         logger.info("------------测试员工的激活状态开始调整------------------");
     }
+
+
+    /**
+     * 获取项目即将超期还未上报并进行通知
+     */
+    //设置每日凌晨3:45分调用通知方法
+    @Scheduled(cron= "0 45 3 * * ?")
+    @Transactional(readOnly = false)
+    public void updateMilitaryIndustryConfidentialityStatus() {
+        logger.info("-----------军工证书到期时间开始提醒------------------");
+        militaryIndustryConfidentialityService.timedTask();
+
+        logger.info("------------军工证书到期时间结束提醒------------------");
+    }
+
 }

+ 19 - 0
src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java

@@ -42,6 +42,8 @@ import com.jeeplus.modules.leaveapply.dao.LeaveDetailDao;
 import com.jeeplus.modules.leaveapply.entity.LeaveApply;
 import com.jeeplus.modules.leaveapply.entity.LeaveDetail;
 import com.jeeplus.modules.leaveapply.service.LeaveApplyService;
+import com.jeeplus.modules.militaryIndustryConfidentiality.entity.MilitaryIndustryConfidentiality;
+import com.jeeplus.modules.militaryIndustryConfidentiality.service.MilitaryIndustryConfidentialityService;
 import com.jeeplus.modules.oa.entity.Leave;
 import com.jeeplus.modules.oa.entity.OaNotify;
 import com.jeeplus.modules.oa.service.LeaveService;
@@ -618,6 +620,8 @@ public class WorkProjectNotifyController extends BaseController {
 	private RuralProjectRecordsOwnCaseBaseService ruralProjectRecordsOwnCaseBaseService;
 	@Autowired
 	private ProjectEngineeringCaseBaseService engineeringCaseBaseService;
+	@Autowired
+	private MilitaryIndustryConfidentialityService militaryIndustryConfidentialityService;
 
 
 	@ModelAttribute
@@ -7722,6 +7726,8 @@ public class WorkProjectNotifyController extends BaseController {
 					return this.saveAchiveModify(workProjectNotify, model);
 				} else if ("186".equals(workProjectNotify.getType())) {
 					return this.saveAchiveModifyDirectly(workProjectNotify, model);
+				} else if ("187".equals(workProjectNotify.getType())) {
+					return this.sendMilitaryIndustryConfidentiality(workProjectNotify, model);
 				} else if ("70".equals(workProjectNotify.getType())) {    //部门调转
 					WorkChangeJob workChangeJob = workChangeJobService.get(workProjectNotify.getNotifyId());
 					Act act = getByAct(workChangeJob.getProcessInstanceId());
@@ -11345,4 +11351,17 @@ public class WorkProjectNotifyController extends BaseController {
 		}
     }
 
+	/**
+	 * 业务用章申请
+	 * @param workProjectNotify
+	 * @param model
+	 * @return
+	 */
+	private String sendMilitaryIndustryConfidentiality(WorkProjectNotify workProjectNotify,Model model) throws Exception {
+		MilitaryIndustryConfidentiality militaryIndustryConfidentiality = militaryIndustryConfidentialityService.get(workProjectNotify.getNotifyId());
+		militaryIndustryConfidentiality.setHome("home");
+		model.addAttribute("militaryIndustryConfidentiality", militaryIndustryConfidentiality);
+		return "modules/militaryIndustryConfidentiality/militaryIndustryConfidentialityView";
+    }
+
 }

+ 2 - 0
src/main/java/com/jeeplus/modules/workstaff/dao/WorkStaffAchivesDao.java

@@ -55,4 +55,6 @@ public interface WorkStaffAchivesDao extends CrudDao<WorkStaffBasicInfo> {
     void updateStatus(@Param("id") String id, @Param("status") String status);
 
     void updateWorkStaffAchieves(WorkStaffBasicInfo workStaffBasicInfo);
+
+    void updateAlterationDate(String id);
 }

+ 10 - 0
src/main/java/com/jeeplus/modules/workstaff/service/WorkStaffBasicInfoService.java

@@ -589,6 +589,7 @@ public class WorkStaffBasicInfoService extends CrudService<WorkStaffBasicInfoDao
             workStaffBasicInfo.preUpdate();
             workStaffAchivesDao.update(workStaffBasicInfo);
         }
+        workStaffAchivesDao.updateAlterationDate(workStaffBasicInfo.getId());
     }
 
     private int cacuField(WorkStaffBasicInfo workStaffBasicInfo) {
@@ -1151,6 +1152,15 @@ public class WorkStaffBasicInfoService extends CrudService<WorkStaffBasicInfoDao
         return "";
     }
 
+    /**
+     * 如果修改,则变更修改时间
+     * @param achiveId
+     */
+    @Transactional(readOnly = false)
+    public void updateAlterationDate(String achiveId){
+        workStaffAchivesDao.updateAlterationDate(achiveId);
+    }
+
     @Transactional(readOnly = false)
     public String completeCertificateApply(String achiveIds) {
         if (StringUtils.isBlank(achiveIds)) {

+ 13 - 13
src/main/java/com/jeeplus/modules/workstaff/service/WorkStaffRewardsService.java

@@ -108,8 +108,8 @@ public class WorkStaffRewardsService extends CrudService<WorkStaffRewardsDao, Wo
     private static Map<String,String> EDU_MAP = Maps.newHashMap();//教育经历
 
     static{//教育经历
-        EDU_MAP.put("type", "奖惩类型");
-        EDU_MAP.put("name", "奖惩名称");
+        EDU_MAP.put("type", "表彰与奖励类型");
+        EDU_MAP.put("name", "表彰与奖励名称");
         EDU_MAP.put("atTime", "时间");
         EDU_MAP.put("grade", "级别");
         EDU_MAP.put("reason", "原因");
@@ -168,7 +168,7 @@ public class WorkStaffRewardsService extends CrudService<WorkStaffRewardsDao, Wo
                         String getMethod = "get"+name.substring(0,1).toUpperCase()+name.substring(1);
                         WorkStaffAchivesLog workStaffAchivesLog=new WorkStaffAchivesLog();
                         workStaffAchivesLog.setStaffId(workStaffBasicInfo.getId());
-                        workStaffAchivesLog.setModule("奖惩情况");
+                        workStaffAchivesLog.setModule("表彰与奖励");
                         workStaffAchivesLog.setSonId(workStaffRewards.getId());
                         workStaffAchivesLog.setFields(name);
                         workStaffAchivesLog.setType("修改");
@@ -220,7 +220,7 @@ public class WorkStaffRewardsService extends CrudService<WorkStaffRewardsDao, Wo
         //新增
         WorkStaffAchivesLog workStaffAchivesLog=new WorkStaffAchivesLog();
         workStaffAchivesLog.setStaffId(workStaffBasicInfo.getId());
-        workStaffAchivesLog.setModule("奖惩情况");
+        workStaffAchivesLog.setModule("表彰与奖励");
         workStaffAchivesLog.setType("新增");
         workStaffAchivesLog.setState("1");
         List<WorkStaffAchivesLog> sonIds=workStaffAchivesLogService.findSonId(workStaffAchivesLog);
@@ -262,7 +262,7 @@ public class WorkStaffRewardsService extends CrudService<WorkStaffRewardsDao, Wo
         //删除
         WorkStaffAchivesLog delLog=new WorkStaffAchivesLog();
         delLog.setStaffId(workStaffBasicInfo.getId());
-        delLog.setModule("奖惩情况");
+        delLog.setModule("表彰与奖励");
         delLog.setType("删除");
         workStaffAchivesLog.setState("1");
         List<WorkStaffAchivesLog> dellogs=workStaffAchivesLogService.findList(delLog);
@@ -292,7 +292,7 @@ public class WorkStaffRewardsService extends CrudService<WorkStaffRewardsDao, Wo
                                 String methodName = "get"+name.substring(0,1).toUpperCase()+name.substring(1);
                                 WorkStaffAchivesLog workStaffAchivesLog=new WorkStaffAchivesLog();
                                 workStaffAchivesLog.setStaffId(workStaffBasicInfo.getId());
-                                workStaffAchivesLog.setModule("奖惩情况");
+                                workStaffAchivesLog.setModule("表彰与奖励");
                                 workStaffAchivesLog.setSonId(newRewards.getId());
                                 workStaffAchivesLog.setFields(name);
                                 workStaffAchivesLog.setState("1");
@@ -305,7 +305,7 @@ public class WorkStaffRewardsService extends CrudService<WorkStaffRewardsDao, Wo
                                         String oldValue=oldInvoke.toString();
                                         if(!newValue.equals(oldValue)){
                                                 workStaffAchivesLogService.saveStaffLog(workStaffAchivesLog,workStaffBasicInfo.getId(),
-                                                        "奖惩情况",describes,name,
+                                                        "表彰与奖励",describes,name,
                                                         oldInvoke.toString(),newInvoke.toString(),
                                                         oldInvoke.toString(),newInvoke.toString(),newRewards.getId(),"修改");
 
@@ -322,7 +322,7 @@ public class WorkStaffRewardsService extends CrudService<WorkStaffRewardsDao, Wo
                                         }
                                         if(!newDate.equals(oldDate)){
                                             workStaffAchivesLogService.saveStaffLog(workStaffAchivesLog,workStaffBasicInfo.getId(),
-                                                    "奖惩情况",describes,name,
+                                                    "表彰与奖励",describes,name,
                                                     oldDate,newDate,oldDate,newDate,newRewards.getId(),"修改");
                                         }
                                     }
@@ -346,7 +346,7 @@ public class WorkStaffRewardsService extends CrudService<WorkStaffRewardsDao, Wo
                             String methodName = "get"+name.substring(0,1).toUpperCase()+name.substring(1);
                             WorkStaffAchivesLog workStaffAchivesLog=new WorkStaffAchivesLog();
                             workStaffAchivesLog.setStaffId(workStaffBasicInfo.getId());
-                            workStaffAchivesLog.setModule("奖惩情况");
+                            workStaffAchivesLog.setModule("表彰与奖励");
                             workStaffAchivesLog.setSonId(newId);
                             workStaffAchivesLog.setFields(name);
                             workStaffAchivesLog.setState("1");
@@ -356,7 +356,7 @@ public class WorkStaffRewardsService extends CrudService<WorkStaffRewardsDao, Wo
                                 if(newInvoke instanceof String){
                                     String newValue=newInvoke.toString();
                                         workStaffAchivesLogService.saveStaffLog(workStaffAchivesLog,workStaffBasicInfo.getId(),
-                                                "奖惩情况",describes,name,
+                                                "表彰与奖励",describes,name,
                                                 "",newInvoke.toString(),
                                                 "",newInvoke.toString(),newId,"新增");
 
@@ -364,7 +364,7 @@ public class WorkStaffRewardsService extends CrudService<WorkStaffRewardsDao, Wo
                                 if(newInvoke instanceof Date){//日期
                                     String newDate=sdf.format(newInvoke);
                                     workStaffAchivesLogService.saveStaffLog(workStaffAchivesLog,workStaffBasicInfo.getId(),
-                                            "奖惩情况",describes,name,
+                                            "表彰与奖励",describes,name,
                                             "",newDate,"",newDate,newId,"新增");
                                 };
                             } catch (NoSuchMethodException e) {
@@ -379,12 +379,12 @@ public class WorkStaffRewardsService extends CrudService<WorkStaffRewardsDao, Wo
                 }else if(newRewards.getId()!=null&&"1".equals(newRewards.getDelFlag())&&!"".equals(newRewards.getId())){//删除
                     WorkStaffAchivesLog workStaffAchivesLog=new WorkStaffAchivesLog();
                     workStaffAchivesLog.setStaffId(workStaffBasicInfo.getId());
-                    workStaffAchivesLog.setModule("奖惩情况");
+                    workStaffAchivesLog.setModule("表彰与奖励");
                     workStaffAchivesLog.setSonId(newRewards.getId());
                     workStaffAchivesLog.setType("删除");
                     workStaffAchivesLog.setState("1");
                     workStaffAchivesLogService.saveStaffLog(workStaffAchivesLog,workStaffBasicInfo.getId(),
-                            "奖惩情况","","",
+                            "表彰与奖励","","",
                             "","",
                             "","",newRewards.getId(),"删除");
                 }

+ 1 - 0
src/main/java/com/jeeplus/modules/workstaff/web/WorkStaffBasicInfoController.java

@@ -884,6 +884,7 @@ public class WorkStaffBasicInfoController extends BaseController {
 			workProjectNotifyService.readByNotifyId(workProjectNotify);
 		}
 		workStaffBasicInfoService.completeApply(workStaffBasicInfo.getId());
+		workStaffBasicInfoService.updateAlterationDate(workStaffBasicInfo.getId());
 		workStaffBasicInfoService.saveLog(workStaffBasicInfo);
 		addMessage(redirectAttributes, "申请员工档案信息成功");
 		if (StringUtils.isNotBlank(workStaffBasicInfo.getHome()) && "home".equals(workStaffBasicInfo.getHome())){

+ 40 - 0
src/main/resources/mappings/modules/militaryIndustryConfidentiality/MilitaryIndustryConfidentialityDao.xml

@@ -53,6 +53,39 @@
 		<include refid="moduleChooseJoins"/>
 		<where>
 			a.del_flag = #{DEL_FLAG_NORMAL}
+
+			<!-- 查询 userId -->
+			<if test="userId != null and userId != ''">
+				AND a.user_id = #{userId, jdbcType=VARCHAR}
+			</if>
+
+			<!-- 查询 userName,支持两种情况 -->
+			<if test="userName != null and userName != ''">
+				AND (
+				user.name like concat('%', #{userName, jdbcType=VARCHAR}, '%')
+				OR a.user_name like concat('%', #{userName, jdbcType=VARCHAR}, '%')
+				)
+			</if>
+
+			<if test="num != null and num != ''">
+				AND a.num like concat('%', #{num, jdbcType=VARCHAR}, '%')
+			</if>
+
+			<if test="personnelType != null and personnelType != ''">
+				AND a.personnel_type = #{personnelType}
+			</if>
+
+			<if test="status != null and status != ''">
+				AND a.status = #{status}
+			</if>
+
+			<if test="startEndDate !=null">
+				AND a.end_date >= #{startEndDate}
+			</if>
+			<if test="endEndDate !=null">
+				AND a.end_date &lt; #{endEndDate}
+			</if>
+
 		</where>
 		<choose>
 			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
@@ -140,5 +173,12 @@
 			del_flag = #{DEL_FLAG_DELETE}
 		WHERE id = #{id}
 	</update>
+
+	<!--逻辑删除-->
+	<update id="updateStatus">
+		UPDATE military_industry_confidentiality SET
+			status = #{status}
+		WHERE id = #{id}
+	</update>
 	
 </mapper>

+ 6 - 0
src/main/resources/mappings/modules/workstaff/WorkStaffAchivesDao.xml

@@ -858,4 +858,10 @@
 		</set>
 		where user_id = #{userId}
 	</update>
+
+	<update id="updateAlterationDate">
+		update work_staff_achives set
+			alteration_date = now()
+		where id = #{id}
+	</update>
 </mapper>

+ 1 - 1
src/main/resources/mappings/modules/workstaff/WorkStaffRewardsDao.xml

@@ -142,6 +142,6 @@
 		UPDATE work_staff_rewards SET
 			del_flag = '1'
 		WHERE id in (select l.son_id from work_staff_achives_log l
-		where l.staff_id=#{id} and l.module='奖惩情况' and l.type='删除')
+		where l.staff_id=#{id} and l.module='表彰与奖励' and l.type='删除')
 	</update>
 </mapper>

+ 5 - 18
src/main/webapp/webpage/modules/militaryIndustryConfidentiality/militaryIndustryConfidentialityForm.jsp

@@ -86,7 +86,6 @@
 
                 // 监听 input 的 change 事件,捕获日期变化
                 document.getElementById('effectiveDate').addEventListener('change', function(){
-                    console.log('监听到日期变化,值为:', this.value);
                     calculateEndDate();
                 });
 
@@ -135,7 +134,6 @@
             var files = $("#attachment_file")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
                 var attachmentId = $("#id").val();
                 var attachmentFlag = "82";
-                /*console.log(file);*/
                 var timestamp=new Date().getTime();
 
                 var storeAs = "projectRecords";
@@ -224,7 +222,7 @@
             // 下载按钮
             /*fileStr += '<a href="javascript:void(0);" title="下载 ' + file.name + '" ' +
                 'style="color: #28a745; margin-left: 5px; text-decoration: none;" ' +
-                'onclick="downloadFile(\'' + url + '\', \'' + file.name + '\')">' +
+                'onclick="newDownloadFile(\'' + url + '\', \'' + file.name + '\')">' +
                 '<i class="fa fa-download"></i></a>';*/
 
             $('#' + spanId).html(fileStr);
@@ -277,15 +275,13 @@
             // 2. 清除上传的文件 input 值
             $('#' + inputId).val('');
             document.getElementById(inputId).value = ''; // 双保险
-            console.log($('#' + inputId + 'Path').val())
             // 3. 清除隐藏的路径字段(用于提交给后台)
             $('#' + inputId + 'Path').val('');
-            console.log($('#' + inputId + 'Path').val())
         }
 
 
         // 下载函数,利用a标签模拟点击下载blob图片
-        function downloadFile(blobUrl, fileName) {
+        function newDownloadFile(blobUrl, fileName) {
             var a = document.createElement('a');
             a.href = blobUrl;
             a.download = fileName || 'download.png';
@@ -308,29 +304,20 @@
             const effectiveDate = new Date(effectiveDateStr);
             const validityYears = parseInt(validityYearsStr);
 
-            console.log('effectiveDate',effectiveDate)
-            console.log('validityYears',validityYears)
-
             if (isNaN(validityYears)) {
-                alert("证书有效期请输入数字!");
+                parent.layer.msg("证书有效期请输入正整数!", {icon: 5});
                 document.getElementById("endDate").value = "";
                 return;
             }
-
             // 增加有效年限
             const endDate = new Date(effectiveDate);
             endDate.setFullYear(effectiveDate.getFullYear() + validityYears);
 
-            console.log('endDate',endDate)
-
             // 格式化为 yyyy-MM-dd
             const yyyy = endDate.getFullYear();
             const mm = String(endDate.getMonth() + 1).padStart(2, '0');
             const dd = String(endDate.getDate()-1).padStart(2, '0');
             const formattedEndDate = yyyy+ '-' + mm + '-' + dd;
-
-            console.log('formattedEndDate',formattedEndDate)
-
             // 设置值到“证书到期日期”输入框中
             document.getElementById("endDate").value = formattedEndDate;
         }
@@ -345,7 +332,7 @@
             <form:hidden path="id"/>
 
             <div class="form-group layui-row">
-                <div class="form-group-label"><h2>项目基础信息</h2></div>
+                <div class="form-group-label"><h2>军工保密证书信息</h2></div>
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label"><span class="require-item">*</span>所在单位:</label>
                     <div class="layui-input-block readOnlyFFF">
@@ -396,7 +383,7 @@
                 <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label double-line"><span class="require-item">*</span>证书有效期(年):</label>
                     <div class="layui-input-block">
-                        <form:input path="periodOfValidity" placeholder="请输入证书有效期" htmlEscape="false" onchange="calculateEndDate()" class="form-control layui-input required"/>
+                        <form:input path="periodOfValidity" placeholder="请输入证书有效期" htmlEscape="false" onchange="calculateEndDate()" oninput="this.value = this.value.replace(/[^0-9]/g, '').replace(/^0+/, '')" maxlength="2" class="form-control layui-input required"/>
                     </div>
                 </div>
 

+ 18 - 8
src/main/webapp/webpage/modules/militaryIndustryConfidentiality/militaryIndustryConfidentialityList.jsp

@@ -101,13 +101,16 @@
                 <input type="hidden" input="params" value="">
                 <input id="toflag" name="toflag" type="hidden" value="1"/>
                 <table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
-                <div class="commonQuery lw6">
+                <div class="commonQuery lw12">
+
                     <div class="layui-item query athird">
-                        <label class="layui-form-label">姓名:</label>
-                        <div class="layui-input-block">
-                            <form:input path="userName" htmlEscape="false" maxlength="64"  class=" form-control layui-input"/>
+                        <label class="layui-form-label">证书归属人:</label>
+                        <div class="layui-input-block  with-icon">
+                            <sys:inquireselectUser id="user" name="userId" value="${militaryIndustryConfidentiality.user.id}" labelName="userName" labelValue="${militaryIndustryConfidentiality.userName}"
+                                                   title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true" allowInput="true" cssStyle="background-color:#fff"/>
                         </div>
                     </div>
+
                     <div class="layui-item query athird">
                         <label class="layui-form-label">证书编号:</label>
                         <div class="layui-input-block">
@@ -125,11 +128,14 @@
                     </div>
                     <div style="    clear:both;"></div>
                 </div>
-                <div id="moresees" style="clear:both;display:none;" class="form-group layui-row first lw12">
+                <div id="moresees" style="clear:both;display:none;" class="lw12">
                     <div class="layui-item query athird">
                         <label class="layui-form-label">所在单位:</label>
                         <div class="layui-input-block">
-                            <form:input path="personnelType" htmlEscape="false" maxlength="64"  class=" form-control layui-input"/>
+                            <form:select path="personnelType" class="form-control simple-select required">
+                                <form:option value="" label=""/>
+                                <form:options items="${fns:getMainDictList('militaryIndustryConfidentiality_personnel_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                            </form:select>
                         </div>
                     </div>
                     <div class="layui-item query athird">
@@ -137,7 +143,7 @@
                         <div class="layui-input-block">
                             <form:select path="status" class="form-control simple-select required">
                                 <form:option value="" label=""/>
-                                <form:options items="${fns:getMainDictList('militaryIndustryConfidentiality_status')}" itemLabel="label" itemValue="label" htmlEscape="false"/>
+                                <form:options items="${fns:getMainDictList('militaryIndustryConfidentiality_status')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
                             </form:select>
                         </div>
                     </div>
@@ -210,7 +216,11 @@
                 }}
                 ,{field:'personnelType',align:'center', title: '所在单位',minWidth:150}
                 ,{field:'name',align:'center', title: '证书名称', minWidth:100}
-                ,{field:'num',align:'center', title: '证书编号', minWidth:100}
+                ,{field:'num',align:'center', title: '证书编号', minWidth:100, templet:function(d){
+                        // wsbiId 不为空,显示可点击链接
+                        return "<a class=\"attention-info\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看证书详情', '${ctx}/militaryIndustryConfidentiality/view?id=" + d.id + "','95%','95%')\">" +
+                            "<span title=\"" + d.num + "\">" + d.num + "</span></a>";
+                    }}
                 ,{field:'officeName',align:'center', title: '部门', minWidth:100}
                 ,{field:'effectiveDate',align:'center', title: '证书生效日期', minWidth:100}
                 ,{field:'periodOfValidity',align:'center', title: '证书有效期(年)', minWidth:100}

+ 405 - 0
src/main/webapp/webpage/modules/militaryIndustryConfidentiality/militaryIndustryConfidentialityView.jsp

@@ -0,0 +1,405 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>项目管理</title>
+    <meta name="decorator" content="default"/>
+    <script type="text/javascript" src="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.js"></script>
+    <script type="text/javascript" src="${ctxStatic}/iCheck/icheck.min.js"></script>
+    <script type="text/javascript" src="${ctxStatic}/layui/layuidown.js"></script>
+    <script src="${ctxStatic}/common/html/js/script.js"></script>
+    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/layuidown.css"/>
+    <link rel='stylesheet' type="text/css" href="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.css"/>
+    <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+    <script src="${ctxStatic}/layer-v2.3/layui/xmSelect.js" charset="utf-8"></script>
+    <style>
+        #projectDesc-error{
+            left:0;
+            top:82px;
+        }
+        .layui-layer-dialog{
+            background: red;
+        }
+        td input{
+            margin-left:-10px !important;
+            height: 42px !important;
+        }
+        .disables {
+            pointer-events: none;
+        }
+        .notDisables {
+            pointer-events: all;
+        }
+        .forbidden{
+            background-color:#c2c2c2;
+        }
+
+        .notForbidden{
+            background-color:#3ca2e0;
+        }
+        .spanzj{
+            color: red;
+            font-size: 12px;
+            padding-left: 10px;
+        }
+
+        #show2 {
+        }
+    </style>
+    <script type="text/javascript">
+        var validateForm;
+        var isMasterClient = true;//是否是委托方
+        var clientCount = 0;
+        function doSubmit(i){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                $("#inputForm").submit();
+                return true;
+            }else{
+                parent.layer.msg("信息未填写完整!", {icon: 5});
+            }
+            return false;
+        }
+        $(document).ready(function() {
+            layui.use(['form', 'layer', 'laydate'], function () {
+                var form = layui.form;
+                var laydate = layui.laydate;
+
+                form.on('select(personnelTypeFilter)', function (data) {
+                    var span=data.value;
+                    if(span==1){;
+                        $("#userName").val("");
+                        $("#show1").show();
+                        $("#show2").hide();
+                    }else{
+                        $("#ccpmUserId").val("");
+                        $("#ccpmUserName").val("");
+                        $("#show1").hide();
+                        $("#show2").show();
+                    }
+                });
+
+
+            });
+
+            var personnelType = $("#personnelType").val()
+            console.log('personnelType',personnelType)
+            if(personnelType==1){;
+                $("#userName").val("");
+                $("#show1").show();
+                $("#show2").hide();
+            }else{
+                $("#ccpmUserId").val("");
+                $("#ccpmUserName").val("");
+                $("#show1").hide();
+                $("#show2").show();
+            }
+
+            var radioVal ;
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+        });
+
+        function insertTitle(tValue){
+            $("#flagFile").val(false);
+            var files = $("#attachment_file")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+                var attachmentId = $("#id").val();
+                var attachmentFlag = "82";
+                var timestamp=new Date().getTime();
+
+                var storeAs = "projectRecords";
+                var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+                var divId = "_attachment";
+                $("#addFile"+divId).show();
+                multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,0);}
+        }
+
+
+        function addFile() {
+            $("#attachment_file").click();
+        }
+
+        function addRow(list, idx, tpl, row){
+            // var idx1 = $("#workClientLinkmanList tr").length;
+            bornTemplete(list, idx, tpl, row, idx);
+        }
+
+        function bornTemplete(list, idx, tpl, row, idx1){
+            $(list).append(Mustache.render(tpl, {
+                idx: idx, delBtn: true, row: row,
+                order:idx1 + 1
+            }));
+            $(list+idx).find("select").each(function(){
+                $(this).val($(this).attr("data-value"));
+            });
+            $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+                var ss = $(this).attr("data-value").split(',');
+                for (var i=0; i<ss.length; i++){
+                    if($(this).val() == ss[i]){
+                        $(this).attr("checked","checked");
+                    }
+                }
+            });
+        }
+        function delRow(obj, prefix){
+            var id = $(prefix+"_id");
+            var delFlag = $(prefix+"_delFlag");
+            $(obj).parent().parent().remove();
+        }
+        function this_upload_file_button(id){
+            $("#"+id).click();
+        }
+
+
+        function changeFileName(obj, index) {
+            var file = obj.files[0];
+            if (!file) return;
+
+            var url = URL.createObjectURL(file);
+
+            // 限制文件大小
+            if (file.size > 100 * 1024 * 1024) {
+                layer.msg("请上传100M以内文件!", { icon: 2 });
+                return;
+            }
+
+            var ext = file.name.split('.').pop().toLowerCase();
+            var isImage = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'].includes(ext);
+
+            var spanId = $(obj).attr("id") + 'Name' + index;
+            var fileStr = "";
+
+            if (isImage) {
+                // 图片展示区域
+                fileStr += '<div style="position:relative; display:inline-block;">' +
+                    '<img src="' + url + '" width="50" height="50" style="cursor:pointer;" ' +
+                    'onclick="openLayerPreview(\'' + url + '\')" alt="' + file.name + '">' +
+
+                    // 删除按钮
+                    '<i class="fa fa-times-circle" style="position:absolute; top:-8px; right:-8px; color:red; cursor:pointer;" ' +
+                    'onclick="deleteImage(\'' + spanId + '\', \'' + obj.id + '\')"></i>' +
+                    '</div>';
+            } else {
+                // 非图片文件展示名称
+                fileStr += '<span style="display:inline-block;width:24px;height:24px;"></span>' +
+                    '<a href="javascript:void(0);" onclick="preview(\'预览\', \'' + url + '\', \'90%\', \'90%\')" ' +
+                    'title="' + file.name + '" style="text-decoration:none;color:#007bff;">' +
+                    shortenFileName(file.name, 20) +
+                    '</a>' +
+                    '<i class="fa fa-times-circle" style="margin-left:5px;color:red;cursor:pointer;" ' +
+                    'onclick="deleteImage(\'' + spanId + '\', \'' + obj.id + '\')"></i>';
+            }
+
+            // 下载按钮
+            /*fileStr += '<a href="javascript:void(0);" title="下载 ' + file.name + '" ' +
+                'style="color: #28a745; margin-left: 5px; text-decoration: none;" ' +
+                'onclick="newDownloadFile(\'' + url + '\', \'' + file.name + '\')">' +
+                '<i class="fa fa-download"></i></a>';*/
+
+            $('#' + spanId).html(fileStr);
+        }
+
+
+        function shortenFileName(name, maxLength) {
+            if (name.length <= maxLength) {
+                return name;
+            }
+            return name.substring(0, maxLength) + '...';
+        }
+
+        function openLayerPreview(imgUrl) {
+            var img = new Image();
+            img.onload = function () {
+                var imgWidth = img.width;
+                var imgHeight = img.height;
+
+                // 最大限制,防止太大撑爆屏幕
+                var maxWidth = window.innerWidth * 0.8;
+                var maxHeight = window.innerHeight * 0.8;
+
+                // 缩放比例
+                var ratio = Math.min(maxWidth / imgWidth, maxHeight / imgHeight, 1);
+
+                var finalWidth = imgWidth * ratio;
+                var finalHeight = imgHeight * ratio;
+
+                layui.use('layer', function () {
+                    var layer = layui.layer;
+                    layer.open({
+                        type: 1,
+                        title: '图片预览',
+                        shadeClose: true,
+                        shade: 0.2,
+                        area: [finalWidth + 'px', finalHeight + 'px'],
+                        content: '<img src="' + imgUrl + '" style="width:100%;height:100%;object-fit:contain;">'
+                    });
+                });
+            };
+            img.src = imgUrl;
+        }
+
+
+        function deleteImage(spanId, inputId) {
+            // 1. 清空图片展示区域
+            $('#' + spanId).html('');
+
+            // 2. 清除上传的文件 input 值
+            $('#' + inputId).val('');
+            document.getElementById(inputId).value = ''; // 双保险
+            // 3. 清除隐藏的路径字段(用于提交给后台)
+            $('#' + inputId + 'Path').val('');
+        }
+
+
+        // 下载函数,利用a标签模拟点击下载blob图片
+        function newDownloadFile(blobUrl, fileName) {
+            console.log(1231231)
+            var a = document.createElement('a');
+            a.href = blobUrl;
+            a.download = fileName || 'download.png';
+            document.body.appendChild(a);
+            a.click();
+            document.body.removeChild(a);
+        }
+
+    </script>
+</head>
+<body>
+<div class="single-form">
+    <div class="container">
+        <sys:message content="${message}"/>
+        <form:form id="inputForm" modelAttribute="militaryIndustryConfidentiality" action="${ctx}/militaryIndustryConfidentiality/save" enctype="multipart/form-data" method="post" class="form-horizontal layui-form ">
+            <form:hidden path="id"/>
+
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>军工保密证书信息</h2></div>
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label"><span class="require-item">*</span>所在单位:</label>
+                    <div class="layui-input-block">
+                        <form:select lay-filter="personnelTypeFilter" style="color: #000000;" placeholder="请选择" path="personnelType" disabled="true" class="form-control required editable-select layui-input" value="${militaryIndustryConfidentiality.personnelType}">
+                            <form:option value=""/>
+                            <form:options items="${fns:getMainDictList('militaryIndustryConfidentiality_personnel_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                        </form:select>
+                    </div>
+                </div>
+
+
+                <div class="layui-item layui-col-sm6 lw7" id="show1">
+                    <label class="layui-form-label"><span class="require-item">*</span>证书归属人:</label>
+                    <div class="layui-input-block  with-icon">
+                        <input class="form-control required layui-input" readonly="readonly" id="ccpmUserName" name="userName" placeholder="请输入证书归属人" value="${militaryIndustryConfidentiality.user.name}">
+                    </div>
+                </div>
+
+                <div class="layui-item layui-col-sm6 lw7" id="show2">
+                    <label class="layui-form-label"><span class="require-item">*</span>证书归属人:</label>
+                    <div class="layui-input-block">
+                        <form:input path="userName" placeholder="请输入证书归属人" htmlEscape="false" readonly="true" class="form-control layui-input "/>
+                    </div>
+                </div>
+
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label"><span class="require-item">*</span>证书名称:</label>
+                    <div class="layui-input-block">
+                        <form:input path="name" maxlength="255" htmlEscape="false" placeholder="请输入证书名称" readonly="true" class="form-control layui-input required"/>
+                    </div>
+                </div>
+
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label"><span class="require-item">*</span>证书编号:</label>
+                    <div class="layui-input-block">
+                        <form:input path="num" maxlength="255" htmlEscape="false" readonly="true" placeholder="请输入证书编号" class="form-control layui-input required"/>
+                    </div>
+                </div>
+
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label double-line"><span class="require-item">*</span>证书生效日期:</label>
+                    <div class="layui-input-block">
+                        <input class="laydate-icondate form-control layui-input layer-date laydate-icon required" readonly="readonly" id="effectiveDate" name="effectiveDate" placeholder="请选择证书生效日期" value="<fmt:formatDate value="${militaryIndustryConfidentiality.effectiveDate}" pattern="yyyy-MM-dd"/>">
+                    </div>
+                </div>
+
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label double-line"><span class="require-item">*</span>证书有效期(年):</label>
+                    <div class="layui-input-block">
+                        <form:input path="periodOfValidity" placeholder="请输入证书有效期" htmlEscape="false" readonly="true" oninput="this.value = this.value.replace(/[^0-9]/g, '').replace(/^0+/, '')" maxlength="2" class="form-control layui-input required"/>
+                    </div>
+                </div>
+
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label double-line"><span class="require-item">*</span>证书到期日期:</label>
+                    <div class="layui-input-block">
+                        <input class="laydate-icondate form-control layui-input layer-date laydate-icon required" readonly="readonly" id="endDate" name="endDate" placeholder="请选择证书到期日期" value="<fmt:formatDate value="${militaryIndustryConfidentiality.endDate}" pattern="yyyy-MM-dd"/>">
+                    </div>
+                </div>
+
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label double-line"><span class="require-item">*</span>保密证书:</label>
+                    <div class="layui-input-block">
+                        <%-- 文件展示区域 --%>
+                        <span id="fileName1">
+                            <c:if test="${not empty militaryIndustryConfidentiality.filePathStr}">
+                                <c:set var="fileNameArr" value="${fn:split(militaryIndustryConfidentiality.filePath, '/')}" />
+                                <c:set var="fileName" value="${fileNameArr[fn:length(fileNameArr) - 1]}" />
+                                <c:set var="extArr" value="${fn:split(fileName, '.')}" />
+                                <c:set var="ext" value="${fn:toLowerCase(extArr[fn:length(extArr) - 1])}" />
+
+                                <c:choose>
+                                    <%-- 图片类型预览 --%>
+                                    <c:when test="${ext == 'jpg' || ext == 'jpeg' || ext == 'png' || ext == 'gif' || ext == 'bmp' || ext == 'webp'}">
+                                        <div style="position:relative; display:inline-block;">
+                                            <img src="${militaryIndustryConfidentiality.filePathStr}" width="50" height="50"
+                                                 style="cursor:pointer;" onclick="openLayerPreview('${militaryIndustryConfidentiality.filePathStr}')"
+                                                 alt="保密证书预览" />
+                                        </div>
+                                    </c:when>
+                                    <%-- 其他文件类型 --%>
+                                    <c:otherwise>
+                                        <a class="attention-info" href="javascript:void(0)"
+                                           style="color: #007bff;" onclick="preview('预览','${militaryIndustryConfidentiality.filePathStr}','90%','90%')">
+                                                ${militaryIndustryConfidentiality.fileName}
+                                        </a>
+                                    </c:otherwise>
+                                </c:choose>
+
+                                <%-- 下载按钮 --%>
+                                <a href="javascript:void(0);"
+                                   title="下载 ${militaryIndustryConfidentiality.fileName}"
+                                   style="color: #28a745; margin-left: 5px; text-decoration: none;"
+                                   onclick="downloadFile('${ctx}', '${militaryIndustryConfidentiality.filePath}', '${militaryIndustryConfidentiality.fileName}')">
+                                    <i class="fa fa-download"></i>
+                                </a>
+                            </c:if>
+                        </span>
+                    </div>
+                </div>
+
+
+
+                <div class="layui-item layui-col-sm12 lw6 with-textarea">
+                    <label class="layui-form-label ">备注:</label>
+                    <div class="layui-input-block">
+                        <form:textarea placeholder="请输入备注" readonly="true" style="background-color: #f1f1f1" path="remarks" htmlEscape="false" rows="4"  maxlength="255"  class="form-control "/>
+                    </div>
+                </div>
+            </div>
+
+            <div class="form-group layui-row page-end"></div>
+        </form:form>
+    </div>
+</div>
+</body>
+</html>

+ 3 - 3
src/main/webapp/webpage/modules/sys/userInfo.jsp

@@ -1360,13 +1360,13 @@
                                     </div>
                                 </div>
                                 <div class="form-group layui-row">
-                                    <div class="form-group-label"><h2>奖惩情况</h2></div>
+                                    <div class="form-group-label"><h2>表彰与奖励</h2></div>
                                     <div class="layui-item layui-col-xs12 form-table-container">
                                         <table id="rewardsTable" class="table table-bordered table-condensed details">
                                             <thead>
                                             <tr>
-                                                <th width="10%"><span class="require-item">*</span>奖惩类型</th>
-                                                <th width="20%"><span class="require-item">*</span>奖惩名称</th>
+                                                <th width="15%"><span class="require-item">*</span>表彰与奖励类型</th>
+                                                <th width="15%"><span class="require-item">*</span>表彰与奖励名称</th>
                                                 <th width="15%"><span class="require-item">*</span>时间</th>
                                                 <th width="15%">级别</th>
                                                 <th width="20%"><span class="require-item">*</span>原因</th>

+ 3 - 3
src/main/webapp/webpage/modules/workstaff/workAddressBookView.jsp

@@ -682,13 +682,13 @@
                     <%--</div>--%>
                 <%--</div>--%>
                 <%--<div class="form-group layui-row">--%>
-                    <%--<div class="form-group-label"><h2>奖惩情况</h2></div>--%>
+                    <%--<div class="form-group-label"><h2>表彰与奖励</h2></div>--%>
                     <%--<div class="layui-item layui-col-xs12 form-table-container">--%>
                         <%--<table id="rewardsTable" class="table table-bordered table-condensed details">--%>
                             <%--<thead>--%>
                             <%--<tr>--%>
-                                <%--<th width="10%"><span class="require-item">*</span>奖惩类型</th>--%>
-                                <%--<th width="20%"><span class="require-item">*</span>奖惩名称</th>--%>
+                                <%--<th width="15%"><span class="require-item">*</span>表彰与奖励类型</th>--%>
+                                <%--<th width="15%"><span class="require-item">*</span>表彰与奖励名称</th>--%>
                                 <%--<th width="15%"><span class="require-item">*</span>时间</th>--%>
                                 <%--<th width="15%">级别</th>--%>
                                 <%--<th width="20%"><span class="require-item">*</span>原因</th>--%>

+ 4 - 4
src/main/webapp/webpage/modules/workstaff/workStaffAchiveInfoForm.jsp

@@ -1477,7 +1477,7 @@
                 </div>
             </div>
             <div class="form-group layui-row">
-                <div class="form-group-label"><h2>奖惩情况</h2></div>
+                <div class="form-group-label"><h2>表彰与奖励</h2></div>
                 <div class="layui-item nav-btns">
                     <a href=javascript:void(0); onclick="addRowRewards('#rewardsList',rewardsIdx,rewardsTpl)" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i> 新增</a>
                 </div>
@@ -1486,11 +1486,11 @@
                         <thead>
                         <tr>
                             <th class="hide"></th>
-                            <th width="10%"><span class="require-item">*</span>奖惩类型</th>
-                            <th width="15%"><span class="require-item">*</span>奖惩名称</th>
+                            <th width="15%"><span class="require-item">*</span>表彰与奖励类型</th>
+                            <th width="15%"><span class="require-item">*</span>表彰与奖励名称</th>
                             <th width="15%"><span class="require-item">*</span>时间</th>
                             <th width="13%">级别</th>
-                            <th width="20%"><span class="require-item">*</span>原因</th>
+                            <th width="15%"><span class="require-item">*</span>原因</th>
                             <th width="17%"><span class="require-item">*</span>授予机构</th>
                             <th width="10%">操作</th>
                         </tr>

+ 4 - 4
src/main/webapp/webpage/modules/workstaff/workStaffAchiveInfoForms.jsp

@@ -1477,7 +1477,7 @@
                 </div>
             </div>
             <div class="form-group layui-row">
-                <div class="form-group-label"><h2>奖惩情况</h2></div>
+                <div class="form-group-label"><h2>表彰与奖励</h2></div>
                 <div class="layui-item nav-btns">
                     <a href=javascript:void(0); onclick="addRowRewards('#rewardsList',rewardsIdx,rewardsTpl)" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i> 新增</a>
                 </div>
@@ -1486,11 +1486,11 @@
                         <thead>
                         <tr>
                             <th class="hide"></th>
-                            <th width="10%"><span class="require-item">*</span>奖惩类型</th>
-                            <th width="15%"><span class="require-item">*</span>奖惩名称</th>
+                            <th width="15%"><span class="require-item">*</span>表彰与奖励类型</th>
+                            <th width="15%"><span class="require-item">*</span>表彰与奖励名称</th>
                             <th width="15%"><span class="require-item">*</span>时间</th>
                             <th width="13%">级别</th>
-                            <th width="20%"><span class="require-item">*</span>原因</th>
+                            <th width="15%"><span class="require-item">*</span>原因</th>
                             <th width="17%"><span class="require-item">*</span>授予机构</th>
                             <th width="10%">操作</th>
                         </tr>

+ 4 - 4
src/main/webapp/webpage/modules/workstaff/workStaffBasicDetailAudit.jsp

@@ -217,7 +217,7 @@
                     type:'post',
                     url:'${ctx}/workstaff/workStaffBasicInfo/getEdu',
                     async: false,
-                    data:{ "id":id, "achiveId":achiveId,"module":'奖惩情况'},
+                    data:{ "id":id, "achiveId":achiveId,"module":'表彰与奖励'},
                     success:function(data) {
                         if(data){
                             $("#"+id).css("color","red");
@@ -1120,14 +1120,14 @@
                     </div>
                 </div>
                 <div class="form-group layui-row">
-                    <div class="form-group-label"><h2>奖惩情况</h2></div>
+                    <div class="form-group-label"><h2>表彰与奖励</h2></div>
                     <div class="layui-item layui-col-xs12 form-table-container">
                         <table id="rewardsTable" class="table table-bordered table-condensed can-edit">
                             <thead>
                             <tr>
                                 <th class="hide"></th>
-                                <th width="10%"><span class="require-item">*</span>奖惩类型</th>
-                                <th width="15%"><span class="require-item">*</span>奖惩名称</th>
+                                <th width="15%"><span class="require-item">*</span>表彰与奖励类型</th>
+                                <th width="15%"><span class="require-item">*</span>表彰与奖励名称</th>
                                 <th width="15%"><span class="require-item">*</span>时间</th>
                                 <th width="13%">级别</th>
                                 <th width="20%"><span class="require-item">*</span>原因</th>

+ 4 - 4
src/main/webapp/webpage/modules/workstaff/workStaffBasicDetailForm.jsp

@@ -1687,7 +1687,7 @@
                     </div>
                 </div>
                 <div class="form-group layui-row">
-                    <div class="form-group-label"><h2>奖惩情况</h2></div>
+                    <div class="form-group-label"><h2>表彰与奖励</h2></div>
                     <div class="layui-item nav-btns">
                         <a href=javascript:void(0); onclick="addRowRewards('#rewardsList',rewardsIdx,rewardsTpl)" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i> 新增</a>
                     </div>
@@ -1696,11 +1696,11 @@
                             <thead>
                             <tr>
                                 <th class="hide"></th>
-                                <th width="10%"><span class="require-item">*</span>奖惩类型</th>
-                                <th width="15%"><span class="require-item">*</span>奖惩名称</th>
+                                <th width="15%"><span class="require-item">*</span>表彰与奖励类型</th>
+                                <th width="15%"><span class="require-item">*</span>表彰与奖励名称</th>
                                 <th width="15%"><span class="require-item">*</span>时间</th>
                                 <th width="13%">级别</th>
-                                <th width="20%"><span class="require-item">*</span>原因</th>
+                                <th width="15%"><span class="require-item">*</span>原因</th>
                                 <th width="17%"><span class="require-item">*</span>授予机构</th>
                                 <th width="10%">操作</th>
                             </tr>

+ 4 - 4
src/main/webapp/webpage/modules/workstaff/workStaffBasicDetailModify.jsp

@@ -1615,7 +1615,7 @@
                     </div>
                 </div>
                 <div class="form-group layui-row">
-                    <div class="form-group-label"><h2>奖惩情况</h2></div>
+                    <div class="form-group-label"><h2>表彰与奖励</h2></div>
                     <div class="layui-item nav-btns">
                         <a href=javascript:void(0); onclick="addRowRewards('#rewardsList',rewardsIdx,rewardsTpl)" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i> 新增</a>
                     </div>
@@ -1624,11 +1624,11 @@
                             <thead>
                             <tr>
                                 <th class="hide"></th>
-                                <th width="10%"><span class="require-item">*</span>奖惩类型</th>
-                                <th width="15%"><span class="require-item">*</span>奖惩名称</th>
+                                <th width="15%"><span class="require-item">*</span>表彰与奖励类型</th>
+                                <th width="15%"><span class="require-item">*</span>表彰与奖励名称</th>
                                 <th width="15%"><span class="require-item">*</span>时间</th>
                                 <th width="13%">级别</th>
-                                <th width="20%"><span class="require-item">*</span>原因</th>
+                                <th width="15%"><span class="require-item">*</span>原因</th>
                                 <th width="17%"><span class="require-item">*</span>授予机构</th>
                                 <th width="10%">操作</th>
                             </tr>

+ 4 - 4
src/main/webapp/webpage/modules/workstaff/workStaffBasicDetailModifyDirectly.jsp

@@ -1379,7 +1379,7 @@
                 </div>
             </div>
             <div class="form-group layui-row">
-                <div class="form-group-label"><h2>奖惩情况</h2></div>
+                <div class="form-group-label"><h2>表彰与奖励</h2></div>
                 <div class="layui-item nav-btns">
                     <a href=javascript:void(0); onclick="addRowRewards('#rewardsList',rewardsIdx,rewardsTpl)" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i> 新增</a>
                 </div>
@@ -1388,11 +1388,11 @@
                         <thead>
                         <tr>
                             <th class="hide"></th>
-                            <th width="10%"><span class="require-item">*</span>奖惩类型</th>
-                            <th width="15%"><span class="require-item">*</span>奖惩名称</th>
+                            <th width="15%"><span class="require-item">*</span>表彰与奖励类型</th>
+                            <th width="15%"><span class="require-item">*</span>表彰与奖励名称</th>
                             <th width="15%"><span class="require-item">*</span>时间</th>
                             <th width="13%">级别</th>
-                            <th width="20%"><span class="require-item">*</span>原因</th>
+                            <th width="15%"><span class="require-item">*</span>原因</th>
                             <th width="17%"><span class="require-item">*</span>授予机构</th>
                             <th width="10%">操作</th>
                         </tr>

+ 1 - 1
src/main/webapp/webpage/modules/workstaff/workStaffBasicDirectlyAudit.jsp

@@ -212,7 +212,7 @@
                     type:'post',
                     url:'${ctx}/workstaff/workStaffBasicInfo/getEdu',
                     async: false,
-                    data:{ "id":id, "achiveId":achiveId,"module":'奖惩情况'},
+                    data:{ "id":id, "achiveId":achiveId,"module":'表彰与奖励'},
                     success:function(data) {
                         if(data){
                             $("#"+id).css("color","red");

+ 4 - 4
src/main/webapp/webpage/modules/workstaff/workStaffBasicInfoForm.jsp

@@ -2081,7 +2081,7 @@
                 </div>
             </div>
             <div class="form-group layui-row">
-                <div class="form-group-label"><h2>奖惩情况</h2></div>
+                <div class="form-group-label"><h2>表彰与奖励</h2></div>
                 <div class="layui-item nav-btns">
                     <a href=javascript:void(0); onclick="addRowRewards('#rewardsList',rewardsIdx,rewardsTpl)" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i> 新增</a>
                 </div>
@@ -2090,11 +2090,11 @@
                         <thead>
                         <tr>
                             <th class="hide"></th>
-                            <th width="10%"><span class="require-item">*</span>奖惩类型</th>
-                            <th width="15%"><span class="require-item">*</span>奖惩名称</th>
+                            <th width="15%"><span class="require-item">*</span>表彰与奖励类型</th>
+                            <th width="15%"><span class="require-item">*</span>表彰与奖励名称</th>
                             <th width="15%"><span class="require-item">*</span>时间</th>
                             <th width="13%">级别</th>
-                            <th width="20%"><span class="require-item">*</span>原因</th>
+                            <th width="15%"><span class="require-item">*</span>原因</th>
                             <th width="17%"><span class="require-item">*</span>授予机构</th>
                             <th width="10%">操作</th>
                         </tr>

+ 3 - 3
src/main/webapp/webpage/modules/workstaff/workStaffBasicInfoView.jsp

@@ -981,13 +981,13 @@
                     </div>
                 </div>
                 <div class="form-group layui-row">
-                    <div class="form-group-label"><h2>奖惩情况</h2></div>
+                    <div class="form-group-label"><h2>表彰与奖励</h2></div>
                     <div class="layui-item layui-col-xs12 form-table-container">
                         <table id="rewardsTable" class="table table-bordered table-condensed details">
                             <thead>
                             <tr>
-                                <th width="10%"><span class="require-item">*</span>奖惩类型</th>
-                                <th width="20%"><span class="require-item">*</span>奖惩名称</th>
+                                <th width="15%"><span class="require-item">*</span>表彰与奖励类型</th>
+                                <th width="15%"><span class="require-item">*</span>表彰与奖励名称</th>
                                 <th width="15%"><span class="require-item">*</span>时间</th>
                                 <th width="15%">级别</th>
                                 <th width="20%"><span class="require-item">*</span>原因</th>