From 71846cb62a1c8b3dd2b7fa81a14471ea1c26f070 Mon Sep 17 00:00:00 2001
From: guoyuepeng <770272267@qq.com>
Date: Wed, 8 Nov 2023 08:53:50 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../firemanager/FirePointController.java      |   69 +-
 .../keyProjects/OutSourcedController.java     | 1356 +++++++++--------
 .../PersonnelManagementController.java        |  641 ++++----
 .../keyProjects/UnitsController.java          |   13 +-
 .../keyProjects/VideoResourcesController.java |    4 +-
 .../app/AppAIWarningController.java           |    2 -
 .../app/AppKeyProjectsController.java         |   20 +
 .../app/AppKeyprojectCheckController.java     |   29 +-
 .../controller/xgf/XgfCorpController.java     |  149 +-
 .../firemanager/FirePointMapper.java          |    2 +
 .../keyProjects/KeyprojectHiddenMapper.java   |    8 +
 .../dsno2/keyProjects/OutSourcedMapper.java   |   10 +
 .../dsno2/keyProjects/VideoManagerMapper.java |    2 +
 .../zcloud/service/bus/ImgFilesService.java   |    3 +-
 .../service/bus/impl/ImgFilesServiceImpl.java |   72 +-
 .../service/firemanager/FirePointService.java |    5 +-
 .../impl/FirePointServiceImpl.java            |   23 +-
 .../keyProjects/KeyprojectHiddenService.java  |    2 +
 .../keyProjects/OutSourcedService.java        |   10 +
 .../keyProjects/VideoManagerService.java      |    2 +
 .../impl/KeyprojectHiddenServiceImpl.java     |    5 +
 .../impl/OutSourcedServiceImpl.java           |    9 +
 .../impl/PersonnelManagementServiceImpl.java  |    4 +-
 .../keyProjects/impl/UnitsServiceImpl.java    |  190 +--
 .../impl/VideoManagerServiceImpl.java         |    5 +
 .../mybatis/datasource/bus/CorpInfoMapper.xml |    8 +
 .../firemanager/FirePonitMapper.xml           |   26 +
 .../firemanager/FireRecordMapper.xml          |   11 +-
 .../keyProjects/KeyprojectHiddenMapper.xml    |  105 +-
 .../dsno2/keyProjects/OutSourcedMapper.xml    |  245 ++-
 .../mybatis/dsno2/keyProjects/UnitsMapper.xml |   11 +-
 .../dsno2/keyProjects/VideoManagerMapper.xml  |   10 +-
 .../keyProjects/VideoResourcesMapper.xml      |   16 +-
 33 files changed, 1885 insertions(+), 1182 deletions(-)

diff --git a/src/main/java/com/zcloud/controller/firemanager/FirePointController.java b/src/main/java/com/zcloud/controller/firemanager/FirePointController.java
index 1018fc17..30b0bc03 100644
--- a/src/main/java/com/zcloud/controller/firemanager/FirePointController.java
+++ b/src/main/java/com/zcloud/controller/firemanager/FirePointController.java
@@ -4,10 +4,12 @@ import com.zcloud.controller.base.BaseController;
 import com.zcloud.entity.Page;
 import com.zcloud.entity.PageData;
 import com.zcloud.entity.system.Department;
+import com.zcloud.service.bus.ImgFilesService;
 import com.zcloud.service.firemanager.FirePointService;
 import com.zcloud.service.system.DepartmentService;
 import com.zcloud.service.system.UsersService;
 import com.zcloud.util.DateUtil;
+import com.zcloud.util.InitPageDataUtil;
 import com.zcloud.util.Jurisdiction;
 import com.zcloud.util.logAop.LogOperation;
 import net.sf.json.JSONArray;
@@ -15,7 +17,9 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.*;
 
@@ -29,11 +33,42 @@ import java.util.*;
 public class FirePointController extends BaseController {
     @Autowired
     private FirePointService firePointService;
+
+    @Autowired
+    private InitPageDataUtil initPageDataUtil;
+    @Autowired
+    private ImgFilesService imgFilesService;
     @Autowired
     private DepartmentService departmentService;
     @Autowired
     private UsersService usersService;
 
+
+    /**
+     * 定位
+     *
+     * @param
+     * @throws Exception
+     */
+    @RequestMapping(value = "/getFirePointCheckPhotos")
+    @ResponseBody
+    public Object getFirePointCheckPhotos() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = this.getPageData();
+        List<PageData> checkImages = firePointService.getFirePointCheckPhotos(pd);
+        if (checkImages != null && checkImages.size() > 0) {
+            checkImages.forEach(item -> {
+                String[] checkImagesItems = item.getString("FILEPATHLIST").split("@@");
+                item.put("FILEPATH_LIST", checkImagesItems);
+            });
+        }
+        map.put("imgList", checkImages);
+        map.put("result", errInfo);
+        return map;
+    }
+
+
     /**
      * @Description: 消防点位列表
      * @Author: dearLin
@@ -63,14 +98,16 @@ public class FirePointController extends BaseController {
         return map;
     }
 
-    /**定位
+    /**
+     * 定位
+     *
      * @param
      * @throws Exception
      */
-    @RequestMapping(value="/savePosition")
+    @RequestMapping(value = "/savePosition")
     @ResponseBody
-    public Object savePosition() throws Exception{
-        Map<String,Object> map = new HashMap<String,Object>();
+    public Object savePosition() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
         String errInfo = "success";
         PageData pd = new PageData();
         pd = this.getPageData();
@@ -87,13 +124,17 @@ public class FirePointController extends BaseController {
      */
     @RequestMapping("/getFirPointInfo")
     @ResponseBody
-    public Object info() {
+    public Object info() throws Exception {
         Map<String, Object> map = new HashMap<String, Object>();
         String errInfo = "success";
         PageData pd = getPageData();
         pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
         PageData resdata = firePointService.findById(pd);
+        PageData imgPage = new PageData();
+        imgPage.put("FOREIGN_KEY",pd.getString("FIRE_POINT_ID"));
+        List<PageData> dataList = imgFilesService.listAll(imgPage);
         map.put("res", resdata);
+        map.put("imgList", dataList);
         map.put("result", errInfo);
         return map;
     }
@@ -107,13 +148,13 @@ public class FirePointController extends BaseController {
     @LogOperation(value = "修改消防风险点位成功", exceptionInformation = "修改消防风险点位失败", isUpdate = true, updateId = "FIRE_POINT_ID")
     @RequestMapping("/updFireRegionById")
     @ResponseBody
-    public Object updFirePointById() {
+    public Object updFirePointById(@RequestParam(value = "files",required = false) MultipartFile[] files) {
         Map<String, Object> map = new HashMap<String, Object>();
         String errInfo = "success";
         PageData pd = getPageData();
         pd.put("OPERATOR", Jurisdiction.getUsername());
         pd.put("OPERATTIME", DateUtil.date2Str(new Date()));
-        firePointService.updFirePointById(pd);
+        firePointService.updFirePointById(files,pd);
         map.put("result", errInfo);
         return map;
     }
@@ -151,13 +192,12 @@ public class FirePointController extends BaseController {
         pd.put("OPERATOR", Jurisdiction.getUsername());
         pd.put("OPERATTIME", DateUtil.date2Str(new Date()));
         firePointService.removeFirePointByIds(pd);
-            map.put("result", errInfo);
+        map.put("result", errInfo);
 
         return map;
     }
 
 
-
     /**
      * @Description: 保存点位信息
      * @Author: dearLin
@@ -167,17 +207,16 @@ public class FirePointController extends BaseController {
     @LogOperation(value = "新增消防风险点位成功", exceptionInformation = "新增消防风险点位失败")
     @RequestMapping(value = "/savePointInfo")
     @ResponseBody
-    public Object saveInfo() {
+    public Object saveInfo(@RequestParam(value = "files",required = false) MultipartFile[] files) {
         Map<String, Object> map = new HashMap<String, Object>();
         String errInfo = "success";
         PageData pd = getPageData();
-        pd.put("FIRE_POINT_ID", this.get32UUID());
-        pd.put("CREATOR", Jurisdiction.getUSER_ID());
+        String uuid = this.get32UUID();
+        pd.put("FIRE_POINT_ID", uuid);
+        initPageDataUtil.initSave(pd);
         pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
-        pd.put("OPERATOR", Jurisdiction.getUSER_ID());
-        pd.put("CREATTIME", DateUtil.date2Str(new Date()));
-        pd.put("OPERATTIME", DateUtil.date2Str(new Date()));
         firePointService.savePointInfo(pd);
+        imgFilesService.uploadPicture(files,"118",pd.getString("FIRE_POINT_ID"));
         map.put("result", errInfo);
         return map;
     }
diff --git a/src/main/java/com/zcloud/controller/keyProjects/OutSourcedController.java b/src/main/java/com/zcloud/controller/keyProjects/OutSourcedController.java
index 352c7449..dd972b2c 100644
--- a/src/main/java/com/zcloud/controller/keyProjects/OutSourcedController.java
+++ b/src/main/java/com/zcloud/controller/keyProjects/OutSourcedController.java
@@ -7,6 +7,7 @@ import com.zcloud.entity.system.Department;
 import com.zcloud.service.bus.ImgFilesService;
 import com.zcloud.service.keyProjects.AIWarningService;
 import com.zcloud.service.keyProjects.OutSourcedService;
+import com.zcloud.service.keyProjects.VideoManagerService;
 import com.zcloud.service.system.DepartmentService;
 import com.zcloud.service.system.UsersService;
 import com.zcloud.util.*;
@@ -33,672 +34,731 @@ import java.util.*;
 @RequestMapping("/outsourced")
 public class OutSourcedController extends BaseController {
 
-	@Autowired
-	private OutSourcedService outsourcedService;
-	@Autowired
-	private AIWarningService aiWarningService;
-	@Autowired
-	private DepartmentService departmentService;
-	@Autowired
-	private UsersService usersService;
-	@Autowired
-	private ImgFilesService imgfilesService;
+    @Autowired
+    private OutSourcedService outsourcedService;
+    @Autowired
+    private AIWarningService aiWarningService;
+    @Autowired
+    private DepartmentService departmentService;
+    @Autowired
+    private UsersService usersService;
+    @Autowired
+    private ImgFilesService imgfilesService;
+    @Autowired
+    private VideoManagerService videoManagerService;
 
 
-
-	/**新增
-	 * @param
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/add")
-	@RequiresPermissions("outsourced:add")
-	@ResponseBody
-	public Object add(@RequestParam(value="file",required=false) MultipartFile file,
-					  @RequestParam(value="file1",required=false) MultipartFile file1,
-					  @RequestParam(value="file2",required=false) MultipartFile file2,
-					  @RequestParam(value="file3",required=false) MultipartFile file3,
-					  @RequestParam(value="file4",required=false) MultipartFile file4,
-					  @RequestParam(value="file5",required=false) MultipartFile file5,
-					  @RequestParam(value="file6",required=false) MultipartFile file6,
-					  @RequestParam(value="file7",required=false) MultipartFile file7,
-					  @RequestParam(value="file8",required=false) MultipartFile file8,
-					  @RequestParam(value="file9",required=false) MultipartFile[] file9) throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		pd.put("OUTSOURCED_ID", this.get32UUID());	//主键
-		pd.put("CREATOR", Jurisdiction.getUSER_ID());	//添加人
-		pd.put("CREATTIME", DateUtil.date2Str(new Date()));	//添加时间
-		pd.put("OPERATOR", Jurisdiction.getUSER_ID());	//修改人
-		pd.put("OPERATTIME", DateUtil.date2Str(new Date()));	//修改时间
-		pd.put("ISDELETE", "0");	//是否删除
-		pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());	//企业ID
-		pd.put("MANAGE_NAME", Jurisdiction.getCORPINFO_ID());	//辖区单位
-		//pd.put("INVOLVING_CORPS", Jurisdiction.getCORPINFO_ID());	//理单位名称
-		pd.put("IS_CORP_TYPE", "1");	//是否企业重点工程0监管重点工程;1企业重点工程
+    /**
+     * 新增
+     *
+     * @param
+     * @throws Exception
+     */
+    @RequestMapping(value = "/add")
+    @RequiresPermissions("outsourced:add")
+    @ResponseBody
+    public Object add(@RequestParam(value = "file", required = false) MultipartFile file,
+                      @RequestParam(value = "file1", required = false) MultipartFile file1,
+                      @RequestParam(value = "file2", required = false) MultipartFile file2,
+                      @RequestParam(value = "file3", required = false) MultipartFile file3,
+                      @RequestParam(value = "file4", required = false) MultipartFile file4,
+                      @RequestParam(value = "file5", required = false) MultipartFile file5,
+                      @RequestParam(value = "file6", required = false) MultipartFile file6,
+                      @RequestParam(value = "file7", required = false) MultipartFile file7,
+                      @RequestParam(value = "file8", required = false) MultipartFile file8,
+                      @RequestParam(value = "file9", required = false) MultipartFile[] file9) throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        pd.put("OUTSOURCED_ID", this.get32UUID());    //主键
+        pd.put("CREATOR", Jurisdiction.getUSER_ID());    //添加人
+        pd.put("CREATTIME", DateUtil.date2Str(new Date()));    //添加时间
+        pd.put("OPERATOR", Jurisdiction.getUSER_ID());    //修改人
+        pd.put("OPERATTIME", DateUtil.date2Str(new Date()));    //修改时间
+        pd.put("ISDELETE", "0");    //是否删除
+        pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());    //企业ID
+        pd.put("MANAGE_NAME", Jurisdiction.getCORPINFO_ID());    //辖区单位
+        //pd.put("INVOLVING_CORPS", Jurisdiction.getCORPINFO_ID());	//理单位名称
+        pd.put("IS_CORP_TYPE", "1");    //是否企业重点工程0监管重点工程;1企业重点工程
 
 
-		if (null != file && !file.isEmpty()) {
-			String suffixName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("UNITS_APTITUDE", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file1 && !file1.isEmpty()) {
-			String suffixName = file1.getOriginalFilename().substring(file1.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file1.getOriginalFilename().substring(file1.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file1, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("MEASURES", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file2 && !file2.isEmpty()) {
-			String suffixName = file2.getOriginalFilename().substring(file2.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file2.getOriginalFilename().substring(file2.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file2, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("MANAGE_APTITUDE", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file3 && !file3.isEmpty()) {
-			String suffixName = file3.getOriginalFilename().substring(file3.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file3.getOriginalFilename().substring(file3.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file3, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("DESIGE", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file4 && !file4.isEmpty()) {
-			String suffixName = file4.getOriginalFilename().substring(file4.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file4.getOriginalFilename().substring(file4.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file4, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("ATTACHMENTS", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file5 && !file5.isEmpty()) {
-			String suffixName = file5.getOriginalFilename().substring(file5.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file5.getOriginalFilename().substring(file5.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file5, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("RECORDS", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file6 && !file6.isEmpty()) {
-			String suffixName = file6.getOriginalFilename().substring(file6.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file6.getOriginalFilename().substring(file6.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file6, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("SHEET", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file7 && !file7.isEmpty()) {
-			String suffixName = file7.getOriginalFilename().substring(file7.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file7.getOriginalFilename().substring(file7.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file7, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("EXAMINATION", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file8 && !file8.isEmpty()) {
-			String suffixName = file8.getOriginalFilename().substring(file8.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file8.getOriginalFilename().substring(file8.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file8, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("OATTACHMENTS", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-
-		if (null != file9 && file9.length > 0 ) {
-			//校验
-			for (int i=0;i<file9.length ;i++){
-				MultipartFile file9One = file9[i];
-				String suffixName = file9One.getOriginalFilename().substring(file9One.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-				if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-					map.put("result", "fail");
-					map.put("exception", "上传文件格式不正确");
-					return map;
-				}
-			}
-			for (int i=0;i<file9.length ;i++){
-				MultipartFile file9One = file9[i];
-				String ffile = DateUtil.getDays();
-				String fileName = this.get32UUID() + file9One.getOriginalFilename().
-						substring(file9One.getOriginalFilename().lastIndexOf("."));
-				Smb.sshSftp(file9One, fileName,Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile);
-				PageData pdImg = new PageData();
-				String fileUpdateName = file9One.getOriginalFilename();
-				pdImg.put("IMGFILES_ID",  this.get32UUID());
-				pdImg.put("FILE_NAME",  fileUpdateName);
-				pdImg.put("FILEPATH",  Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName);
-				pdImg.put("TYPE", "300");
-				pdImg.put("FOREIGN_KEY",  pd.getString("OUTSOURCED_ID"));
-				imgfilesService.save(pdImg);
-			}
-		}
-		// 把自己添加到辖区单位
-		//if (!pd.getString("INVOLVING_CORPS").contains(Jurisdiction.getCORPINFO_ID())) {
-		//	String involvingCorps = pd.getString("INVOLVING_CORPS");
-		//	involvingCorps = Jurisdiction.getCORPINFO_ID()+","+involvingCorps;
-		//	pd.put("INVOLVING_CORPS",involvingCorps);
-		//}
-		pd.put("INVOLVING_CORPS",Jurisdiction.getCORPINFO_ID());
-		outsourcedService.save(pd);
-		map.put("result", errInfo);
-		return map;
-	}
-
-	/**删除
-	 * @param out
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/delete")
-	@RequiresPermissions("outsourced:del")
-	@ResponseBody
-	public Object delete() throws Exception{
-		Map<String,String> map = new HashMap<String,String>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		outsourcedService.delete(pd);
-		map.put("result", errInfo);				//返回结果
-		return map;
-	}
-
-	/**修改
-	 * @param
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/edit")
-	@RequiresPermissions("outsourced:edit")
-	@ResponseBody
-	public Object edit(@RequestParam(value="file",required=false) MultipartFile file,
-					   @RequestParam(value="file1",required=false) MultipartFile file1,
-					   @RequestParam(value="file2",required=false) MultipartFile file2,
-					   @RequestParam(value="file3",required=false) MultipartFile file3,
-					   @RequestParam(value="file4",required=false) MultipartFile file4,
-					   @RequestParam(value="file5",required=false) MultipartFile file5,
-					   @RequestParam(value="file6",required=false) MultipartFile file6,
-					   @RequestParam(value="file7",required=false) MultipartFile file7,
-					   @RequestParam(value="file8",required=false) MultipartFile file8,
-					   @RequestParam(value="file9",required=false) MultipartFile[] file9) throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-
-
-		if (null != file && !file.isEmpty()) {
-			String suffixName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("UNITS_APTITUDE", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file1 && !file1.isEmpty()) {
-			String suffixName = file1.getOriginalFilename().substring(file1.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file1.getOriginalFilename().substring(file1.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file1, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("MEASURES", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file2 && !file2.isEmpty()) {
-			String suffixName = file2.getOriginalFilename().substring(file2.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file2.getOriginalFilename().substring(file2.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file2, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("MANAGE_APTITUDE", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file3 && !file3.isEmpty()) {
-			String suffixName = file3.getOriginalFilename().substring(file3.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file3.getOriginalFilename().substring(file3.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file3, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("DESIGE", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file4 && !file4.isEmpty()) {
-			String suffixName = file4.getOriginalFilename().substring(file4.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file4.getOriginalFilename().substring(file4.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file4, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("ATTACHMENTS", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file5 && !file5.isEmpty()) {
-			String suffixName = file5.getOriginalFilename().substring(file5.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file5.getOriginalFilename().substring(file5.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file5, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("RECORDS", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file6 && !file6.isEmpty()) {
-			String suffixName = file6.getOriginalFilename().substring(file6.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file6.getOriginalFilename().substring(file6.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file6, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("SHEET", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file7 && !file7.isEmpty()) {
-			String suffixName = file7.getOriginalFilename().substring(file7.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file7.getOriginalFilename().substring(file7.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file7, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("EXAMINATION", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-		if (null != file8 && !file8.isEmpty()) {
-			String suffixName = file8.getOriginalFilename().substring(file8.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-			if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-				errInfo = "fail";
-				map.put("result", errInfo);
-				map.put("msg", "文件格式不正确!");
-				return map;
-			}
-			String  ffile = DateUtil.getDays();
-			String fileName = this.get32UUID()+file8.getOriginalFilename().substring(file8.getOriginalFilename().lastIndexOf("."));
-			Smb.sshSftp(file8, fileName, Const.FILEPATHFILE + ffile);
-			pd.put("OATTACHMENTS", Const.FILEPATHFILE + ffile + "/" + fileName);
-		}
-
-		if (null != file9 && file9.length > 0 ) {
-			//校验
-			for (int i=0;i<file9.length ;i++){
-				MultipartFile file9One = file9[i];
-				String suffixName = file9One.getOriginalFilename().substring(file9One.getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
-				if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
-					map.put("result", "fail");
-					map.put("exception", "上传文件格式不正确");
-					return map;
-				}
-			}
-			for (int i=0;i<file9.length ;i++){
-				MultipartFile file9One = file9[i];
-				String ffile = DateUtil.getDays();
-				String fileName = this.get32UUID() + file9One.getOriginalFilename().
-						substring(file9One.getOriginalFilename().lastIndexOf("."));
-				Smb.sshSftp(file9One, fileName,Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile);
-				PageData pdImg = new PageData();
-				String fileUpdateName = file9One.getOriginalFilename();
-				pdImg.put("IMGFILES_ID",  this.get32UUID());
-				pdImg.put("FILE_NAME",  fileUpdateName);
-				pdImg.put("FILEPATH",  Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName);
-				pdImg.put("TYPE", "300");
-				pdImg.put("FOREIGN_KEY",  pd.getString("OUTSOURCED_ID"));
-				imgfilesService.save(pdImg);
-			}
-
-		}
-		// 把自己添加到辖区单位
-		//if (!pd.getString("INVOLVING_CORPS").contains(Jurisdiction.getCORPINFO_ID())) {
-			 //involvingCorps = pd.getString("INVOLVING_CORPS");
-
-			pd.put("INVOLVING_CORPS",Jurisdiction.getCORPINFO_ID());
-		//}
-		outsourcedService.edit(pd);
-		map.put("result", errInfo);
-		return map;
-	}
-
-	/**
-	 * 列表
-	 * @param page
-	 * @throws Exception
-	 */
-	@RequestMapping(value = "/list")
-	@ResponseBody
-	public Object list(Page page) throws Exception {
-		Map<String, Object> map = new HashMap<String, Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-        if(!StringUtils.equals(Jurisdiction.getUsername(),"admin")){
-        	if(!StringUtils.equals(Jurisdiction.getCORPINFO_ID(),"1e6dbbe16004402f8d2c0e52afd9a676")&&!StringUtils.equals(Jurisdiction.getCORPINFO_ID(),"3a854eefa7894e06aaa1a2611bca80f6")&&
-					!StringUtils.equals(Jurisdiction.getCORPINFO_ID(),"020578a4c1f04bc692ee25145c2efbe5")&&!StringUtils.equals(Jurisdiction.getCORPINFO_ID(),"90966974de3c4b83aca6f8fd6432d5c2")){
-				pd.put("DeptId",outsourcedService.getDeptId(Jurisdiction.getUSER_ID()));
-				pd.put("UserId",Jurisdiction.getUSER_ID());
-			}
+        if (null != file && !file.isEmpty()) {
+            String suffixName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("UNITS_APTITUDE", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file1 && !file1.isEmpty()) {
+            String suffixName = file1.getOriginalFilename().substring(file1.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file1.getOriginalFilename().substring(file1.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file1, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("MEASURES", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file2 && !file2.isEmpty()) {
+            String suffixName = file2.getOriginalFilename().substring(file2.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file2.getOriginalFilename().substring(file2.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file2, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("MANAGE_APTITUDE", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file3 && !file3.isEmpty()) {
+            String suffixName = file3.getOriginalFilename().substring(file3.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file3.getOriginalFilename().substring(file3.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file3, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("DESIGE", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file4 && !file4.isEmpty()) {
+            String suffixName = file4.getOriginalFilename().substring(file4.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file4.getOriginalFilename().substring(file4.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file4, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("ATTACHMENTS", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file5 && !file5.isEmpty()) {
+            String suffixName = file5.getOriginalFilename().substring(file5.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file5.getOriginalFilename().substring(file5.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file5, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("RECORDS", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file6 && !file6.isEmpty()) {
+            String suffixName = file6.getOriginalFilename().substring(file6.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file6.getOriginalFilename().substring(file6.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file6, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("SHEET", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file7 && !file7.isEmpty()) {
+            String suffixName = file7.getOriginalFilename().substring(file7.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file7.getOriginalFilename().substring(file7.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file7, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("EXAMINATION", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file8 && !file8.isEmpty()) {
+            String suffixName = file8.getOriginalFilename().substring(file8.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file8.getOriginalFilename().substring(file8.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file8, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("OATTACHMENTS", Const.FILEPATHFILE + ffile + "/" + fileName);
         }
-		String KEYWORDS = pd.getString("KEYWORDS");                        //关键词检索条件
-		if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim());
-		String corpinfo = Jurisdiction.getCORPINFO_ID();
-		pd.put("CORPINFO_ID",corpinfo);
-		page.setPd(pd);
-		List<PageData> varList = outsourcedService.list(page);    //列出OutSourced列表
 
-		/**
-		 *  相关责任人可以正常添加 ,
-		 *
-		 * 1.获取重点工程的id 放到list里面
-		 * 2.根据重点工程id,获取ia报警的相关责任人
-		 * 3.根据重点工程id整理相关责任人,放到map里面, map的key值是终端工程id,value是人员名称或者id(已;分割)
-		 */
+        if (null != file9 && file9.length > 0) {
+            //校验
+            for (int i = 0; i < file9.length; i++) {
+                MultipartFile file9One = file9[i];
+                String suffixName = file9One.getOriginalFilename().substring(file9One.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+                if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                    map.put("result", "fail");
+                    map.put("exception", "上传文件格式不正确");
+                    return map;
+                }
+            }
+            for (int i = 0; i < file9.length; i++) {
+                MultipartFile file9One = file9[i];
+                String ffile = DateUtil.getDays();
+                String fileName = this.get32UUID() + file9One.getOriginalFilename().
+                        substring(file9One.getOriginalFilename().lastIndexOf("."));
+                Smb.sshSftp(file9One, fileName, Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile);
+                PageData pdImg = new PageData();
+                String fileUpdateName = file9One.getOriginalFilename();
+                pdImg.put("IMGFILES_ID", this.get32UUID());
+                pdImg.put("FILE_NAME", fileUpdateName);
+                pdImg.put("FILEPATH", Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName);
+                pdImg.put("TYPE", "300");
+                pdImg.put("FOREIGN_KEY", pd.getString("OUTSOURCED_ID"));
+                imgfilesService.save(pdImg);
+            }
+        }
+        // 把自己添加到辖区单位
+        //if (!pd.getString("INVOLVING_CORPS").contains(Jurisdiction.getCORPINFO_ID())) {
+        //	String involvingCorps = pd.getString("INVOLVING_CORPS");
+        //	involvingCorps = Jurisdiction.getCORPINFO_ID()+","+involvingCorps;
+        //	pd.put("INVOLVING_CORPS",involvingCorps);
+        //}
+        pd.put("INVOLVING_CORPS", Jurisdiction.getCORPINFO_ID());
+        outsourcedService.save(pd);
+        map.put("result", errInfo);
+        return map;
+    }
 
-		List<String> outIds = new ArrayList<>();
-		for (PageData pageData:varList){
-			outIds.add(pageData.getString("OUTSOURCED_ID"));
-		}
-		pd.put("outIds",outIds);
-		List<PageData> userList = aiWarningService.getPeopleListByIds(pd);
+    /**
+     * 删除
+     *
+     * @param out
+     * @throws Exception
+     */
+    @RequestMapping(value = "/delete")
+    @RequiresPermissions("outsourced:del")
+    @ResponseBody
+    public Object delete() throws Exception {
+        Map<String, String> map = new HashMap<String, String>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        outsourcedService.delete(pd);
+        map.put("result", errInfo);                //返回结果
+        return map;
+    }
 
-		Map<String,String> putUserMap = new HashMap<>(); //  key  value
-		for (PageData pageData :userList ){
-			String OUTSOURCED_ID =pageData.getString("OUTSOURCED_ID");
-			if(Tools.notEmpty(pageData.getString("NAME"))){
-				String userName = pageData.getString("NAME");
-				String userNames = userName;
-				if(putUserMap.containsKey(OUTSOURCED_ID)){
-					userNames = putUserMap.get(OUTSOURCED_ID) + ";" +userName;
-				}else{
-					userNames = userName;
-				}
-				putUserMap.put(OUTSOURCED_ID,userNames);
-			}
-		}
+    /**
+     * 修改
+     *
+     * @param
+     * @throws Exception
+     */
+    @RequestMapping(value = "/edit")
+    @RequiresPermissions("outsourced:edit")
+    @ResponseBody
+    public Object edit(@RequestParam(value = "file", required = false) MultipartFile file,
+                       @RequestParam(value = "file1", required = false) MultipartFile file1,
+                       @RequestParam(value = "file2", required = false) MultipartFile file2,
+                       @RequestParam(value = "file3", required = false) MultipartFile file3,
+                       @RequestParam(value = "file4", required = false) MultipartFile file4,
+                       @RequestParam(value = "file5", required = false) MultipartFile file5,
+                       @RequestParam(value = "file6", required = false) MultipartFile file6,
+                       @RequestParam(value = "file7", required = false) MultipartFile file7,
+                       @RequestParam(value = "file8", required = false) MultipartFile file8,
+                       @RequestParam(value = "file9", required = false) MultipartFile[] file9) throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
 
 
-		//* shuachu
-		for (PageData pageData :varList ){
-			String userNames = "";
-			String OUTSOURCED_ID =pageData.getString("OUTSOURCED_ID");
-			if(putUserMap.containsKey(OUTSOURCED_ID)){
-				userNames = putUserMap.get(OUTSOURCED_ID);
-				if(userNames.length()>1){
-					pageData.put("userNames",userNames);
-				}
-			}else{
-				pageData.put("userNames","");
-			}
-		}
-		//* shuachu
+        if (null != file && !file.isEmpty()) {
+            String suffixName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("UNITS_APTITUDE", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file1 && !file1.isEmpty()) {
+            String suffixName = file1.getOriginalFilename().substring(file1.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file1.getOriginalFilename().substring(file1.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file1, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("MEASURES", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file2 && !file2.isEmpty()) {
+            String suffixName = file2.getOriginalFilename().substring(file2.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file2.getOriginalFilename().substring(file2.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file2, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("MANAGE_APTITUDE", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file3 && !file3.isEmpty()) {
+            String suffixName = file3.getOriginalFilename().substring(file3.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file3.getOriginalFilename().substring(file3.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file3, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("DESIGE", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file4 && !file4.isEmpty()) {
+            String suffixName = file4.getOriginalFilename().substring(file4.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file4.getOriginalFilename().substring(file4.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file4, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("ATTACHMENTS", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file5 && !file5.isEmpty()) {
+            String suffixName = file5.getOriginalFilename().substring(file5.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file5.getOriginalFilename().substring(file5.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file5, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("RECORDS", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file6 && !file6.isEmpty()) {
+            String suffixName = file6.getOriginalFilename().substring(file6.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file6.getOriginalFilename().substring(file6.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file6, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("SHEET", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file7 && !file7.isEmpty()) {
+            String suffixName = file7.getOriginalFilename().substring(file7.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file7.getOriginalFilename().substring(file7.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file7, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("EXAMINATION", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
+        if (null != file8 && !file8.isEmpty()) {
+            String suffixName = file8.getOriginalFilename().substring(file8.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+            if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                errInfo = "fail";
+                map.put("result", errInfo);
+                map.put("msg", "文件格式不正确!");
+                return map;
+            }
+            String ffile = DateUtil.getDays();
+            String fileName = this.get32UUID() + file8.getOriginalFilename().substring(file8.getOriginalFilename().lastIndexOf("."));
+            Smb.sshSftp(file8, fileName, Const.FILEPATHFILE + ffile);
+            pd.put("OATTACHMENTS", Const.FILEPATHFILE + ffile + "/" + fileName);
+        }
 
-		map.put("varList", varList);
-		map.put("page", page);
-		map.put("result", errInfo);
-		return map;
-	}
+        if (null != file9 && file9.length > 0) {
+            //校验
+            for (int i = 0; i < file9.length; i++) {
+                MultipartFile file9One = file9[i];
+                String suffixName = file9One.getOriginalFilename().substring(file9One.getOriginalFilename().lastIndexOf(".") + 1).toLowerCase();
+                if (!"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+                    map.put("result", "fail");
+                    map.put("exception", "上传文件格式不正确");
+                    return map;
+                }
+            }
+            for (int i = 0; i < file9.length; i++) {
+                MultipartFile file9One = file9[i];
+                String ffile = DateUtil.getDays();
+                String fileName = this.get32UUID() + file9One.getOriginalFilename().
+                        substring(file9One.getOriginalFilename().lastIndexOf("."));
+                Smb.sshSftp(file9One, fileName, Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile);
+                PageData pdImg = new PageData();
+                String fileUpdateName = file9One.getOriginalFilename();
+                pdImg.put("IMGFILES_ID", this.get32UUID());
+                pdImg.put("FILE_NAME", fileUpdateName);
+                pdImg.put("FILEPATH", Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName);
+                pdImg.put("TYPE", "300");
+                pdImg.put("FOREIGN_KEY", pd.getString("OUTSOURCED_ID"));
+                imgfilesService.save(pdImg);
+            }
 
-	 /**去修改页面获取数据
-	 * @param
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/goEdit")
-	@ResponseBody
-	public Object goEdit() throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		pd = outsourcedService.findById(pd);	//根据ID读取
-		PageData selectPageData = new PageData();
-		selectPageData.put("CORPINFO_ID",pd.get("PUNISH_THE_PERSON"));
-		List<PageData> deptList = departmentService.listAll(selectPageData);    //根据ID读取
-		String userStr = pd.getString("PUNISH_THE_PERSON");
-		if (!Tools.isEmpty(userStr)) {
-			String[] split = userStr.split(",");
-			selectPageData.put("ids",split);
+        }
+        // 把自己添加到辖区单位
+        //if (!pd.getString("INVOLVING_CORPS").contains(Jurisdiction.getCORPINFO_ID())) {
+        //involvingCorps = pd.getString("INVOLVING_CORPS");
+
+        pd.put("INVOLVING_CORPS", Jurisdiction.getCORPINFO_ID());
+        //}
+        outsourcedService.edit(pd);
+        map.put("result", errInfo);
+        return map;
+    }
+
+    /**
+     * 列表
+     *
+     * @param page
+     * @throws Exception
+     */
+    @RequestMapping(value = "/list")
+    @ResponseBody
+    public Object list(Page page) throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        if (!StringUtils.equals(Jurisdiction.getUsername(), "admin")) {
+            if (!StringUtils.equals(Jurisdiction.getCORPINFO_ID(), "1e6dbbe16004402f8d2c0e52afd9a676")
+                    && !StringUtils.equals(Jurisdiction.getCORPINFO_ID(), "3a854eefa7894e06aaa1a2611bca80f6")
+                    && !StringUtils.equals(Jurisdiction.getCORPINFO_ID(), "020578a4c1f04bc692ee25145c2efbe5")
+                    && !StringUtils.equals(Jurisdiction.getCORPINFO_ID(), "90966974de3c4b83aca6f8fd6432d5c2")) {
+                pd.put("DeptId", outsourcedService.getDeptId(Jurisdiction.getUSER_ID()));
+                pd.put("UserId", Jurisdiction.getUSER_ID());
+            }
+        }
+        String KEYWORDS = pd.getString("KEYWORDS");                        //关键词检索条件
+        if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim());
+        String corpinfo = Jurisdiction.getCORPINFO_ID();
+        pd.put("CORPINFO_ID", corpinfo);
+        page.setPd(pd);
+        List<PageData> varList = outsourcedService.list(page);    //列出OutSourced列表
+
+        /**
+         *  相关责任人可以正常添加 ,
+         *
+         * 1.获取重点工程的id 放到list里面
+         * 2.根据重点工程id,获取ia报警的相关责任人
+         * 3.根据重点工程id整理相关责任人,放到map里面, map的key值是终端工程id,value是人员名称或者id(已;分割)
+         */
+
+        List<String> outIds = new ArrayList<>();
+        for (PageData pageData : varList) {
+            outIds.add(pageData.getString("OUTSOURCED_ID"));
+        }
+        pd.put("outIds", outIds);
+        List<PageData> userList = aiWarningService.getPeopleListByIds(pd);
+
+        Map<String, String> putUserMap = new HashMap<>(); //  key  value
+        for (PageData pageData : userList) {
+            String OUTSOURCED_ID = pageData.getString("OUTSOURCED_ID");
+            if (Tools.notEmpty(pageData.getString("NAME"))) {
+                String userName = pageData.getString("NAME");
+                String userNames = userName;
+                if (putUserMap.containsKey(OUTSOURCED_ID)) {
+                    userNames = putUserMap.get(OUTSOURCED_ID) + ";" + userName;
+                } else {
+                    userNames = userName;
+                }
+                putUserMap.put(OUTSOURCED_ID, userNames);
+            }
+        }
+
+
+        //* shuachu
+        for (PageData pageData : varList) {
+            String userNames = "";
+            String OUTSOURCED_ID = pageData.getString("OUTSOURCED_ID");
+            if (putUserMap.containsKey(OUTSOURCED_ID)) {
+                userNames = putUserMap.get(OUTSOURCED_ID);
+                if (userNames.length() > 1) {
+                    pageData.put("userNames", userNames);
+                }
+            } else {
+                pageData.put("userNames", "");
+            }
+        }
+        //* shuachu
+
+        map.put("varList", varList);
+        map.put("page", page);
+        map.put("result", errInfo);
+        return map;
+    }
+
+    /**
+     * 去修改页面获取数据
+     *
+     * @param
+     * @throws Exception
+     */
+    @RequestMapping(value = "/goEdit")
+    @ResponseBody
+    public Object goEdit() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        pd = outsourcedService.findById(pd);    //根据ID读取
+        PageData selectPageData = new PageData();
+        selectPageData.put("CORPINFO_ID", pd.get("PUNISH_THE_PERSON"));
+        List<PageData> deptList = departmentService.listAll(selectPageData);    //根据ID读取
+        String userStr = pd.getString("PUNISH_THE_PERSON");
+        if (!Tools.isEmpty(userStr)) {
+            String[] split = userStr.split(",");
+            selectPageData.put("ids", split);
 //			List<PageData> pageData = usersService.listUserAndDept(selectPageData);
-			// 监管与企业的
-			List<PageData> pageData = usersService.selectUserListByUserIds(selectPageData);
-			map.put("punishThePerson", pageData);
-		}
-		PageData pd3 = new PageData();
-		pd3.put("TYPE", 300);
-		pd3.put("FOREIGN_KEY", pd.getString("OUTSOURCED_ID"));
-		List<PageData> file9 =  imgfilesService.listAll(pd3);
+            // 监管与企业的
+            List<PageData> pageData = usersService.selectUserListByUserIds(selectPageData);
+            map.put("punishThePerson", pageData);
+        }
+        PageData pd3 = new PageData();
+        pd3.put("TYPE", 300);
+        pd3.put("FOREIGN_KEY", pd.getString("OUTSOURCED_ID"));
+        List<PageData> file9 = imgfilesService.listAll(pd3);
 
-		map.put("pd", pd);
-		map.put("deptList", deptList);
-		map.put("file9", file9);
-		map.put("result", errInfo);
-		return map;
-	}
+        map.put("pd", pd);
+        map.put("deptList", deptList);
+        map.put("file9", file9);
+        map.put("result", errInfo);
+        return map;
+    }
 
-	 /**批量删除
-	 * @param
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/deleteAll")
-	@RequiresPermissions("outsourced:del")
-	@ResponseBody
-	public Object deleteAll() throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		String DATA_IDS = pd.getString("DATA_IDS");
-		if(Tools.notEmpty(DATA_IDS)){
-			String ArrayDATA_IDS[] = DATA_IDS.split(",");
-			outsourcedService.deleteAll(ArrayDATA_IDS);
-			errInfo = "success";
-		}else{
-			errInfo = "fail";
-		}
-		map.put("result", errInfo);				//返回结果
-		return map;
-	}
+    /**
+     * 批量删除
+     *
+     * @param
+     * @throws Exception
+     */
+    @RequestMapping(value = "/deleteAll")
+    @RequiresPermissions("outsourced:del")
+    @ResponseBody
+    public Object deleteAll() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        String DATA_IDS = pd.getString("DATA_IDS");
+        if (Tools.notEmpty(DATA_IDS)) {
+            String ArrayDATA_IDS[] = DATA_IDS.split(",");
+            outsourcedService.deleteAll(ArrayDATA_IDS);
+            errInfo = "success";
+        } else {
+            errInfo = "fail";
+        }
+        map.put("result", errInfo);                //返回结果
+        return map;
+    }
 
-	 /**导出到excel
-	 * @param
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/excel")
-	@RequiresPermissions("toExcel")
-	public ModelAndView exportExcel() throws Exception{
-		ModelAndView mv = new ModelAndView();
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		Map<String,Object> dataMap = new HashMap<String,Object>();
-		List<String> titles = new ArrayList<String>();
-		titles.add("发包部门");	//1
-		titles.add("发包部门负责人");	//2
-		titles.add("外包工程名称");	//3
-		titles.add("计划工期开始时间");	//4
-		titles.add("计划工期结束时间");	//5
-		titles.add("合同起止时间");	//6
-		titles.add("相关方单位名称 ");	//7
-		titles.add("合同号 ");	//8
-		titles.add("相关方单位资质");	//9
-		titles.add("相关方单位本项目负责人");	//10
-		titles.add("相关方单位本项目负责人手机");	//11
-		titles.add("监理单位名称 ");	//12
-		titles.add("监理单位资质");	//13
-		titles.add("监理单位本项目负责人姓名");	//14
-		titles.add("监理单位本项目负责人手机");	//15
-		titles.add("安全技术措施");	//16
-		titles.add("附件");	//17
-		titles.add("备注 ");	//18
-		titles.add("培训管理单位");	//19
-		titles.add("培训管理负责人");	//20
-		titles.add("培训时间");	//21
-		titles.add("安全培训记录 ");	//22
-		titles.add("培训签名表");	//23
-		titles.add("外包工程考试题");	//24
-		titles.add("其他附件");	//25
-		titles.add("添加人");	//26
-		titles.add("添加时间");	//27
-		titles.add("修改人");	//28
-		titles.add("修改时间");	//29
-		titles.add("是否删除");	//30
-		titles.add("企业ID");	//31
-		titles.add("申请人");	//32
-		titles.add("状态");	//33
-		dataMap.put("titles", titles);
-		List<PageData> varOList = outsourcedService.listAll(pd);
-		List<PageData> varList = new ArrayList<PageData>();
-		for(int i=0;i<varOList.size();i++){
-			PageData vpd = new PageData();
-			vpd.put("var1", varOList.get(i).getString("CONTRACT_ID"));	    //1
-			vpd.put("var2", varOList.get(i).getString("CONTRACT_PIC"));	    //2
-			vpd.put("var3", varOList.get(i).getString("OUTSOURCED_NAME"));	    //3
-			vpd.put("var4", varOList.get(i).getString("STARTTIME"));	    //4
-			vpd.put("var5", varOList.get(i).getString("ENDTIME"));	    //5
-			vpd.put("var6", varOList.get(i).getString("CONTRACTTIME"));	    //6
-			vpd.put("var7", varOList.get(i).getString("UNITS_NAME"));	    //7
-			vpd.put("var8", varOList.get(i).getString("CONTRACT_NUM"));	    //8
-			vpd.put("var9", varOList.get(i).getString("UNITS_APTITUDE"));	    //9
-			vpd.put("var10", varOList.get(i).getString("UNITS_PIC"));	    //10
-			vpd.put("var11", varOList.get(i).get("UNITS_PHONE").toString());	//11
-			vpd.put("var12", varOList.get(i).getString("MANAGE_NAME"));	    //12
-			vpd.put("var13", varOList.get(i).getString("MANAGE_APTITUDE"));	    //13
-			vpd.put("var14", varOList.get(i).getString("MANAGE_PIC"));	    //14
-			vpd.put("var15", varOList.get(i).get("MANAGE_PHONE").toString());	//15
-			vpd.put("var16", varOList.get(i).getString("MEASURES"));	    //16
-			vpd.put("var17", varOList.get(i).getString("ATTACHMENTS"));	    //17
-			vpd.put("var18", varOList.get(i).getString("REMARKS"));	    //18
-			vpd.put("var19", varOList.get(i).getString("TRAINING_NAME"));	    //19
-			vpd.put("var20", varOList.get(i).getString("TRAINING_PIC"));	    //20
-			vpd.put("var21", varOList.get(i).getString("TRAINING_TIME"));	    //21
-			vpd.put("var22", varOList.get(i).getString("RECORDS"));	    //22
-			vpd.put("var23", varOList.get(i).getString("SHEET"));	    //23
-			vpd.put("var24", varOList.get(i).getString("EXAMINATION"));	    //24
-			vpd.put("var25", varOList.get(i).getString("OATTACHMENTS"));	    //25
-			vpd.put("var26", varOList.get(i).getString("CREATOR"));	    //26
-			vpd.put("var27", varOList.get(i).getString("CREATTIME"));	    //27
-			vpd.put("var28", varOList.get(i).getString("OPERATOR"));	    //28
-			vpd.put("var29", varOList.get(i).getString("OPERATTIME"));	    //29
-			vpd.put("var30", varOList.get(i).getString("ISDELETE"));	    //30
-			vpd.put("var31", varOList.get(i).getString("CORPINFO_ID"));	    //31
-			vpd.put("var32", varOList.get(i).getString("APPLICANT"));	    //32
-			vpd.put("var33", varOList.get(i).getString("STATE"));	    //33
-			varList.add(vpd);
-		}
-		dataMap.put("varList", varList);
-		ObjectExcelView erv = new ObjectExcelView();
-		mv = new ModelAndView(erv,dataMap);
-		return mv;
-	}
+    /**
+     * 导出到excel
+     *
+     * @param
+     * @throws Exception
+     */
+    @RequestMapping(value = "/excel")
+    @RequiresPermissions("toExcel")
+    public ModelAndView exportExcel() throws Exception {
+        ModelAndView mv = new ModelAndView();
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        Map<String, Object> dataMap = new HashMap<String, Object>();
+        List<String> titles = new ArrayList<String>();
+        titles.add("发包部门");    //1
+        titles.add("发包部门负责人");    //2
+        titles.add("外包工程名称");    //3
+        titles.add("计划工期开始时间");    //4
+        titles.add("计划工期结束时间");    //5
+        titles.add("合同起止时间");    //6
+        titles.add("相关方单位名称 ");    //7
+        titles.add("合同号 ");    //8
+        titles.add("相关方单位资质");    //9
+        titles.add("相关方单位本项目负责人");    //10
+        titles.add("相关方单位本项目负责人手机");    //11
+        titles.add("监理单位名称 ");    //12
+        titles.add("监理单位资质");    //13
+        titles.add("监理单位本项目负责人姓名");    //14
+        titles.add("监理单位本项目负责人手机");    //15
+        titles.add("安全技术措施");    //16
+        titles.add("附件");    //17
+        titles.add("备注 ");    //18
+        titles.add("培训管理单位");    //19
+        titles.add("培训管理负责人");    //20
+        titles.add("培训时间");    //21
+        titles.add("安全培训记录 ");    //22
+        titles.add("培训签名表");    //23
+        titles.add("外包工程考试题");    //24
+        titles.add("其他附件");    //25
+        titles.add("添加人");    //26
+        titles.add("添加时间");    //27
+        titles.add("修改人");    //28
+        titles.add("修改时间");    //29
+        titles.add("是否删除");    //30
+        titles.add("企业ID");    //31
+        titles.add("申请人");    //32
+        titles.add("状态");    //33
+        dataMap.put("titles", titles);
+        List<PageData> varOList = outsourcedService.listAll(pd);
+        List<PageData> varList = new ArrayList<PageData>();
+        for (int i = 0; i < varOList.size(); i++) {
+            PageData vpd = new PageData();
+            vpd.put("var1", varOList.get(i).getString("CONTRACT_ID"));        //1
+            vpd.put("var2", varOList.get(i).getString("CONTRACT_PIC"));        //2
+            vpd.put("var3", varOList.get(i).getString("OUTSOURCED_NAME"));        //3
+            vpd.put("var4", varOList.get(i).getString("STARTTIME"));        //4
+            vpd.put("var5", varOList.get(i).getString("ENDTIME"));        //5
+            vpd.put("var6", varOList.get(i).getString("CONTRACTTIME"));        //6
+            vpd.put("var7", varOList.get(i).getString("UNITS_NAME"));        //7
+            vpd.put("var8", varOList.get(i).getString("CONTRACT_NUM"));        //8
+            vpd.put("var9", varOList.get(i).getString("UNITS_APTITUDE"));        //9
+            vpd.put("var10", varOList.get(i).getString("UNITS_PIC"));        //10
+            vpd.put("var11", varOList.get(i).get("UNITS_PHONE").toString());    //11
+            vpd.put("var12", varOList.get(i).getString("MANAGE_NAME"));        //12
+            vpd.put("var13", varOList.get(i).getString("MANAGE_APTITUDE"));        //13
+            vpd.put("var14", varOList.get(i).getString("MANAGE_PIC"));        //14
+            vpd.put("var15", varOList.get(i).get("MANAGE_PHONE").toString());    //15
+            vpd.put("var16", varOList.get(i).getString("MEASURES"));        //16
+            vpd.put("var17", varOList.get(i).getString("ATTACHMENTS"));        //17
+            vpd.put("var18", varOList.get(i).getString("REMARKS"));        //18
+            vpd.put("var19", varOList.get(i).getString("TRAINING_NAME"));        //19
+            vpd.put("var20", varOList.get(i).getString("TRAINING_PIC"));        //20
+            vpd.put("var21", varOList.get(i).getString("TRAINING_TIME"));        //21
+            vpd.put("var22", varOList.get(i).getString("RECORDS"));        //22
+            vpd.put("var23", varOList.get(i).getString("SHEET"));        //23
+            vpd.put("var24", varOList.get(i).getString("EXAMINATION"));        //24
+            vpd.put("var25", varOList.get(i).getString("OATTACHMENTS"));        //25
+            vpd.put("var26", varOList.get(i).getString("CREATOR"));        //26
+            vpd.put("var27", varOList.get(i).getString("CREATTIME"));        //27
+            vpd.put("var28", varOList.get(i).getString("OPERATOR"));        //28
+            vpd.put("var29", varOList.get(i).getString("OPERATTIME"));        //29
+            vpd.put("var30", varOList.get(i).getString("ISDELETE"));        //30
+            vpd.put("var31", varOList.get(i).getString("CORPINFO_ID"));        //31
+            vpd.put("var32", varOList.get(i).getString("APPLICANT"));        //32
+            vpd.put("var33", varOList.get(i).getString("STATE"));        //33
+            varList.add(vpd);
+        }
+        dataMap.put("varList", varList);
+        ObjectExcelView erv = new ObjectExcelView();
+        mv = new ModelAndView(erv, dataMap);
+        return mv;
+    }
 
-	/**去修改页面获取数据
-	 * @param
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/getListAllSel")
-	@ResponseBody
-	public Object getListAllSel() throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		pd.put("CORPINFO_ID",Jurisdiction.getCORPINFO_ID());
-		List<PageData> varList = outsourcedService.listAll(pd);	//根据ID读取
+    /**
+     * 去修改页面获取数据
+     *
+     * @param
+     * @throws Exception
+     */
+    @RequestMapping(value = "/getListAllSel")
+    @ResponseBody
+    public Object getListAllSel() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
+        List<PageData> varList = outsourcedService.listAll(pd);    //根据ID读取
 
-		map.put("pd", pd);
-		map.put("varList", varList);
-		map.put("result", errInfo);
-		return map;
-	}
+        map.put("pd", pd);
+        map.put("varList", varList);
+        map.put("result", errInfo);
+        return map;
+    }
 
-	/**
-	 * 删除
-	 *
-	 * @param
-	 * @throws Exception
-	 */
-	@RequestMapping(value = "/jie")
-	@ResponseBody
-	public Object jie() throws Exception {
-		Map<String, String> map = new HashMap<String, String>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		pd = outsourcedService.findById(pd);
-		outsourcedService.jie(pd);
-		map.put("result", errInfo);                //返回结果
-		return map;
-	}
+    /**
+     * 删除
+     *
+     * @param
+     * @throws Exception
+     */
+    @RequestMapping(value = "/jie")
+    @ResponseBody
+    public Object jie() throws Exception {
+        Map<String, String> map = new HashMap<String, String>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        //校验当前重点工程是否存在未完成的隐患 (包含未整改,未处罚,ai报警未处置的)
+        PageData pageData = outsourcedService.jieshuOutSourced(pd);
+        if(!StringUtils.equals("0",pageData.getString("qr"))){
+            map.put("result", errInfo);
+            map.put("msg","当前重点工程还有"+pageData.getString("qr")+"项待确认安全环保检查,请处理以后再结束");
+            map.put("code","500");
+            return map;
+        }
+        if(!StringUtils.equals("0",pageData.getString("zg"))){
+            map.put("result", errInfo);
+            map.put("msg","当前重点工程还有"+pageData.getString("zg")+"项需整改的隐患,请处理以后再结束");
+            map.put("code","500");
+            return map;
+        }
+        if(!StringUtils.equals("0",pageData.getString("ys"))){
+            map.put("result", errInfo);
+            map.put("msg","当前重点工程还有"+pageData.getString("ys")+"项待验收隐患,请处理以后再结束");
+            map.put("code","500");
+            return map;
+        }
+        if(!StringUtils.equals("0",pageData.getString("cf"))){
+            map.put("result", errInfo);
+            map.put("msg","当前重点工程还有"+pageData.getString("cf")+"项待处罚隐患,请处理以后再结束");
+            map.put("code","500");
+            return map;
+        }
+        if(!StringUtils.equals("0",pageData.getString("fk"))){
+            map.put("result", errInfo);
+            map.put("msg","当前重点工程还有"+pageData.getString("fk")+"项处罚待反馈隐患,请处理以后再结束");
+            map.put("code","500");
+            return map;
+        }
+        if(!StringUtils.equals("0",pageData.getString("ai"))){
+            map.put("result", errInfo);
+            map.put("msg","当前重点工程还有"+pageData.getString("ai")+"项AI报警待处置,请处理以后再结束");
+            map.put("code","500");
+            return map;
+        }
+        pd = outsourcedService.findById(pd);
+        outsourcedService.jie(pd);
+        //清空摄像头与重点工程的关联关系
+        videoManagerService.updateAiByOUTSOURCED_ID(pd);
+        map.put("code","0");
+        map.put("result", errInfo);                //返回结果
+        return map;
+    }
 
 }
diff --git a/src/main/java/com/zcloud/controller/keyProjects/PersonnelManagementController.java b/src/main/java/com/zcloud/controller/keyProjects/PersonnelManagementController.java
index 35e7dccb..35d66633 100644
--- a/src/main/java/com/zcloud/controller/keyProjects/PersonnelManagementController.java
+++ b/src/main/java/com/zcloud/controller/keyProjects/PersonnelManagementController.java
@@ -25,332 +25,353 @@ import java.util.*;
 @RequestMapping("/personnelmanagement")
 public class PersonnelManagementController extends BaseController {
 
-	@Autowired
-	private PersonnelManagementService personnelmanagementService;
+    @Autowired
+    private PersonnelManagementService personnelmanagementService;
 
-	/**新增
-	 * @param
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/add")
-	@RequiresPermissions("personnelmanagement:add")
-	@ResponseBody
-	public Object add() throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd =  this.getPageData();
-		pd.put("PERSONNELMANAGEMENT_ID", this.get32UUID());	//主键
-		pd.put("CREATOR", Jurisdiction.getUSER_ID());	//添加人
-		pd.put("CREATTIME", DateUtil.date2Str(new Date()));	//添加时间
-		pd.put("OPERATOR", Jurisdiction.getUSER_ID());	//修改人
-		pd.put("OPERATTIME", DateUtil.date2Str(new Date()));	//修改时间
-		pd.put("ISDELETE", "0");	//是否删除
-		pd.put("PASSWORD", new SimpleHash("SHA-1", pd.getString("PHONENUM"), Const.DEFAULT_PASSWORD).toString());
-		personnelmanagementService.save(pd);
-		map.put("result", errInfo);
-		return map;
-	}
+    /**
+     * 新增
+     *
+     * @param
+     * @throws Exception
+     */
+    @RequestMapping(value = "/add")
+    @RequiresPermissions("personnelmanagement:add")
+    @ResponseBody
+    public Object add() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = this.getPageData();
+        pd.put("PERSONNELMANAGEMENT_ID", this.get32UUID());    //主键
+        pd.put("CREATOR", Jurisdiction.getUSER_ID());    //添加人
+        pd.put("CREATTIME", DateUtil.date2Str(new Date()));    //添加时间
+        pd.put("OPERATOR", Jurisdiction.getUSER_ID());    //修改人
+        pd.put("OPERATTIME", DateUtil.date2Str(new Date()));    //修改时间
+        pd.put("ISDELETE", "0");    //是否删除
+        pd.put("PASSWORD", new SimpleHash("SHA-1", pd.getString("PHONENUM"), Const.DEFAULT_PASSWORD).toString());
+        personnelmanagementService.save(pd);
+        map.put("result", errInfo);
+        return map;
+    }
 
-	/**删除
-	 * @param out
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/delete")
-	@RequiresPermissions("personnelmanagement:del")
-	@ResponseBody
-	public Object delete() throws Exception{
-		Map<String,String> map = new HashMap<String,String>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		String state = personnelmanagementService.IsJudgeCreator(getPageData().getString("PERSONNELMANAGEMENT_ID"));
-		if("1".equals(state)){
-			personnelmanagementService.delete(pd);
-		}else {
-			errInfo = "fail";
-			map.put("result", errInfo);
-			map.put("msg", "只用添加人" + state + "可以删除相关方人员!");
+    /**
+     * 删除
+     *
+     * @param out
+     * @throws Exception
+     */
+    @RequestMapping(value = "/delete")
+    @RequiresPermissions("personnelmanagement:del")
+    @ResponseBody
+    public Object delete() throws Exception {
+        Map<String, String> map = new HashMap<String, String>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        String state = personnelmanagementService.IsJudgeCreator(getPageData().getString("PERSONNELMANAGEMENT_ID"));
+        if ("1".equals(state)) {
+            personnelmanagementService.delete(pd);
+        } else {
+            errInfo = "fail";
+            map.put("result", errInfo);
+            map.put("msg", "只用添加人" + state + "可以删除相关方人员!");
 
-		}
-		map.put("result", errInfo);				//返回结果
-		return map;
-	}
+        }
+        map.put("result", errInfo);                //返回结果
+        return map;
+    }
 
-	/**修改
-	 * @param
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/edit")
-	@RequiresPermissions("personnelmanagement:edit")
-	@ResponseBody
-	public Object edit() throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		String state = personnelmanagementService.IsJudgeCreator(getPageData().getString("PERSONNELMANAGEMENT_ID"));
-		if("1".equals(state)){
-			personnelmanagementService.edit(pd);
-		}else {
-			errInfo = "fail";
-			map.put("result", errInfo);
-			map.put("msg", "只用添加人" + state + "可以删除相关方人员!");
+    /**
+     * 修改
+     *
+     * @param
+     * @throws Exception
+     */
+    @RequestMapping(value = "/edit")
+    @RequiresPermissions("personnelmanagement:edit")
+    @ResponseBody
+    public Object edit() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        String state = personnelmanagementService.IsJudgeCreator(getPageData().getString("PERSONNELMANAGEMENT_ID"));
+        if ("1".equals(state)) {
+            personnelmanagementService.edit(pd);
+        } else {
+            errInfo = "fail";
+            map.put("result", errInfo);
+            map.put("msg", "只用添加人" + state + "可以删除相关方人员!");
 
-		}
-		map.put("result", errInfo);
-		return map;
-	}
+        }
+        map.put("result", errInfo);
+        return map;
+    }
 
-	/**列表
-	 * @param page
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/list")
-	@RequiresPermissions("personnelmanagement:list")
-	@ResponseBody
-	public Object list(Page page) throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		String KEYWORDS = pd.getString("KEYWORDS");						//关键词检索条件
-		if(Tools.notEmpty(KEYWORDS))pd.put("KEYWORDS", KEYWORDS.trim());
-		page.setPd(pd);
-		List<PageData>	varList = personnelmanagementService.list(page);	//列出PersonnelManagement列表
-		map.put("varList", varList);
-		map.put("page", page);
-		map.put("result", errInfo);
-		return map;
-	}
+    /**
+     * 列表
+     *
+     * @param page
+     * @throws Exception
+     */
+    @RequestMapping(value = "/list")
+    @RequiresPermissions("personnelmanagement:list")
+    @ResponseBody
+    public Object list(Page page) throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        String KEYWORDS = pd.getString("KEYWORDS");                        //关键词检索条件
+        if (Tools.notEmpty(KEYWORDS)) pd.put("KEYWORDS", KEYWORDS.trim());
+        page.setPd(pd);
+        List<PageData> varList = personnelmanagementService.list(page);    //列出PersonnelManagement列表
+        map.put("varList", varList);
+        map.put("page", page);
+        map.put("result", errInfo);
+        return map;
+    }
 
-	 /**去修改页面获取数据
-	 * @param
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/goEdit")
-	@RequiresPermissions("personnelmanagement:edit")
-	@ResponseBody
-	public Object goEdit() throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		pd = personnelmanagementService.findById(pd);	//根据ID读取
-		map.put("pd", pd);
-		map.put("result", errInfo);
-		return map;
-	}
+    /**
+     * 去修改页面获取数据
+     *
+     * @param
+     * @throws Exception
+     */
+    @RequestMapping(value = "/goEdit")
+    @RequiresPermissions("personnelmanagement:edit")
+    @ResponseBody
+    public Object goEdit() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        pd = personnelmanagementService.findById(pd);    //根据ID读取
+        map.put("pd", pd);
+        map.put("result", errInfo);
+        return map;
+    }
 
-	 /**批量删除
-	 * @param
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/deleteAll")
-	@RequiresPermissions("personnelmanagement:del")
-	@ResponseBody
-	public Object deleteAll() throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		String DATA_IDS = pd.getString("DATA_IDS");
-		if(Tools.notEmpty(DATA_IDS)){
-			String ArrayDATA_IDS[] = DATA_IDS.split(",");
-			personnelmanagementService.deleteAll(ArrayDATA_IDS);
-			errInfo = "success";
-		}else{
-			errInfo = "fail";
-		}
-		map.put("result", errInfo);				//返回结果
-		return map;
-	}
+    /**
+     * 批量删除
+     *
+     * @param
+     * @throws Exception
+     */
+    @RequestMapping(value = "/deleteAll")
+    @RequiresPermissions("personnelmanagement:del")
+    @ResponseBody
+    public Object deleteAll() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        String DATA_IDS = pd.getString("DATA_IDS");
+        if (Tools.notEmpty(DATA_IDS)) {
+            String ArrayDATA_IDS[] = DATA_IDS.split(",");
+            personnelmanagementService.deleteAll(ArrayDATA_IDS);
+            errInfo = "success";
+        } else {
+            errInfo = "fail";
+        }
+        map.put("result", errInfo);                //返回结果
+        return map;
+    }
 
-	/**判断特种作业证书编号是否存在
-	 * @return
-	 */
-	@RequestMapping(value="/hasCertificate")
-	@ResponseBody
-	public Object hasCertificate() throws Exception{
-		Map<String,String> map = new HashMap<String,String>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		if(personnelmanagementService.findByCertificate(pd) != null){
-			map.put("msg","特种作业证书编号已存在");
-		}
-		map.put("result", errInfo);				//返回结果
-		return map;
-	}
+    /**
+     * 判断特种作业证书编号是否存在
+     *
+     * @return
+     */
+    @RequestMapping(value = "/hasCertificate")
+    @ResponseBody
+    public Object hasCertificate() throws Exception {
+        Map<String, String> map = new HashMap<String, String>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        if (personnelmanagementService.findByCertificate(pd) != null) {
+            map.put("msg", "特种作业证书编号已存在");
+        }
+        map.put("result", errInfo);                //返回结果
+        return map;
+    }
 
-	/**
-	 * 判断手机号否存在
-	 *
-	 * @return
-	 */
-	@RequestMapping(value = "/hasPhone")
-	@ResponseBody
-	public Object hasName() throws Exception {
-		Map<String, Object> map = new HashMap<String, Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		pd = personnelmanagementService.findByPhone(pd);
-		if (pd != null) {
-			map.put("pd", pd);
-		}
-		map.put("result", errInfo);                //返回结果
-		return map;
-	}
+    /**
+     * 判断手机号否存在
+     *
+     * @return
+     */
+    @RequestMapping(value = "/hasPhone")
+    @ResponseBody
+    public Object hasName() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        pd = personnelmanagementService.findByPhone(pd);
+        if (pd != null) {
+            map.put("pd", pd);
+        }
+        map.put("result", errInfo);                //返回结果
+        return map;
+    }
 
 
-	/**导出到excel
-	 * @param
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/excel")
-	@RequiresPermissions("toExcel")
-	public ModelAndView exportExcel() throws Exception{
-		ModelAndView mv = new ModelAndView();
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		Map<String,Object> dataMap = new HashMap<String,Object>();
-		List<String> titles = new ArrayList<String>();
-		titles.add("添加人");	//1
-		titles.add("添加单位");	//2
-		titles.add("单位名称");	//3
-		titles.add("人员类型");	//4
-		titles.add("作业类别");	//5
-		titles.add("操作项目");	//6
-		titles.add("姓名");	//7
-		titles.add("性别");	//8
-		titles.add("特种作业证书编号");	//9
-		titles.add("复审时间");	//10
-		titles.add("手机号码");	//11
-		titles.add("身份证号码");	//12
-		titles.add("发证机关");	//13
-		titles.add("有效期");	//14
-		titles.add("添加时间");	//15
-		titles.add("修改人");	//16
-		titles.add("修改时间");	//17
-		titles.add("是否删除");	//18
-		titles.add("企业ID");	//19
-		dataMap.put("titles", titles);
-		List<PageData> varOList = personnelmanagementService.listAll(pd);
-		List<PageData> varList = new ArrayList<PageData>();
-		for(int i=0;i<varOList.size();i++){
-			PageData vpd = new PageData();
-			vpd.put("var1", varOList.get(i).getString("CREATOR"));	    //1
-			vpd.put("var2", varOList.get(i).getString("ADDUNITS"));	    //2
-			vpd.put("var3", varOList.get(i).getString("UNITS_NAME"));	    //3
-			vpd.put("var4", varOList.get(i).getString("TYPE"));	    //4
-			vpd.put("var5", varOList.get(i).getString("JOB_TYPE"));	    //5
-			vpd.put("var6", varOList.get(i).getString("OPERATIONITEM"));	    //6
-			vpd.put("var7", varOList.get(i).getString("NAME"));	    //7
-			vpd.put("var8", varOList.get(i).getString("SEX"));	    //8
-			vpd.put("var9", varOList.get(i).getString("CERTIFICATE_NUM"));	    //9
-			vpd.put("var10", varOList.get(i).getString("REVIEWTIME"));	    //10
-			vpd.put("var11", varOList.get(i).getString("PHONENUM"));	    //11
-			vpd.put("var12", varOList.get(i).getString("IDENTITYCARD"));	    //12
-			vpd.put("var13", varOList.get(i).getString("LICENSING"));	    //13
-			vpd.put("var14", varOList.get(i).getString("VALID"));	    //14
-			vpd.put("var15", varOList.get(i).getString("CREATETIME"));	    //15
-			vpd.put("var16", varOList.get(i).getString("OPERATOR"));	    //16
-			vpd.put("var17", varOList.get(i).getString("OPERATTIME"));	    //17
-			vpd.put("var18", varOList.get(i).getString("ISDELETE"));	    //18
-			vpd.put("var19", varOList.get(i).getString("CORPINFO_ID"));	    //19
-			varList.add(vpd);
-		}
-		dataMap.put("varList", varList);
-		ObjectExcelView erv = new ObjectExcelView();
-		mv = new ModelAndView(erv,dataMap);
-		return mv;
-	}
-	/**
-	 * 判断相关方下面是有相关方人员
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/isTrueDelete")
-	@ResponseBody
-	public Object isTrueDelete () throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		List<PageData> pageData = personnelmanagementService.listAll(pd);
-		if(pageData.size()>0){
-			int number = 1;
-			map.put("number",number);
-		}else {
-			int number = 0;
-			map.put("number",number);
-		}
+    /**
+     * 导出到excel
+     *
+     * @param
+     * @throws Exception
+     */
+    @RequestMapping(value = "/excel")
+    @RequiresPermissions("toExcel")
+    public ModelAndView exportExcel() throws Exception {
+        ModelAndView mv = new ModelAndView();
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        Map<String, Object> dataMap = new HashMap<String, Object>();
+        List<String> titles = new ArrayList<String>();
+        titles.add("添加人");    //1
+        titles.add("添加单位");    //2
+        titles.add("单位名称");    //3
+        titles.add("人员类型");    //4
+        titles.add("作业类别");    //5
+        titles.add("操作项目");    //6
+        titles.add("姓名");    //7
+        titles.add("性别");    //8
+        titles.add("特种作业证书编号");    //9
+        titles.add("复审时间");    //10
+        titles.add("手机号码");    //11
+        titles.add("身份证号码");    //12
+        titles.add("发证机关");    //13
+        titles.add("有效期");    //14
+        titles.add("添加时间");    //15
+        titles.add("修改人");    //16
+        titles.add("修改时间");    //17
+        titles.add("是否删除");    //18
+        titles.add("企业ID");    //19
+        dataMap.put("titles", titles);
+        List<PageData> varOList = personnelmanagementService.listAll(pd);
+        List<PageData> varList = new ArrayList<PageData>();
+        for (int i = 0; i < varOList.size(); i++) {
+            PageData vpd = new PageData();
+            vpd.put("var1", varOList.get(i).getString("CREATOR"));        //1
+            vpd.put("var2", varOList.get(i).getString("ADDUNITS"));        //2
+            vpd.put("var3", varOList.get(i).getString("UNITS_NAME"));        //3
+            vpd.put("var4", varOList.get(i).getString("TYPE"));        //4
+            vpd.put("var5", varOList.get(i).getString("JOB_TYPE"));        //5
+            vpd.put("var6", varOList.get(i).getString("OPERATIONITEM"));        //6
+            vpd.put("var7", varOList.get(i).getString("NAME"));        //7
+            vpd.put("var8", varOList.get(i).getString("SEX"));        //8
+            vpd.put("var9", varOList.get(i).getString("CERTIFICATE_NUM"));        //9
+            vpd.put("var10", varOList.get(i).getString("REVIEWTIME"));        //10
+            vpd.put("var11", varOList.get(i).getString("PHONENUM"));        //11
+            vpd.put("var12", varOList.get(i).getString("IDENTITYCARD"));        //12
+            vpd.put("var13", varOList.get(i).getString("LICENSING"));        //13
+            vpd.put("var14", varOList.get(i).getString("VALID"));        //14
+            vpd.put("var15", varOList.get(i).getString("CREATETIME"));        //15
+            vpd.put("var16", varOList.get(i).getString("OPERATOR"));        //16
+            vpd.put("var17", varOList.get(i).getString("OPERATTIME"));        //17
+            vpd.put("var18", varOList.get(i).getString("ISDELETE"));        //18
+            vpd.put("var19", varOList.get(i).getString("CORPINFO_ID"));        //19
+            varList.add(vpd);
+        }
+        dataMap.put("varList", varList);
+        ObjectExcelView erv = new ObjectExcelView();
+        mv = new ModelAndView(erv, dataMap);
+        return mv;
+    }
 
-		map.put("result", errInfo);
-		return map;
-	}
-	@RequestMapping(value="/resetPwd")
-	@ResponseBody
-	public Object resetPwd (Page page) throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		PageData pageData = personnelmanagementService.findById(pd);
-		String pwd = new SimpleHash("SHA-1", pageData.getString("PHONENUM"), Const.DEFAULT_PASSWORD).toString();
-		PageData updateUser = new PageData();
-		updateUser.put("PASSWORD", pwd);
-		updateUser.put("PERSONNELMANAGEMENT_ID", pageData.getString("PERSONNELMANAGEMENT_ID"));
-		personnelmanagementService.editPassword(updateUser);
+    /**
+     * 判断相关方下面是有相关方人员
+     *
+     * @throws Exception
+     */
+    @RequestMapping(value = "/isTrueDelete")
+    @ResponseBody
+    public Object isTrueDelete() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        List<PageData> pageData = personnelmanagementService.listAll(pd);
+        if (pageData.size() > 0) {
+            int number = 1;
+            map.put("number", number);
+        } else {
+            int number = 0;
+            map.put("number", number);
+        }
 
-		map.put("result", errInfo);
-		return map;
-	}
+        map.put("result", errInfo);
+        return map;
+    }
+
+    @RequestMapping(value = "/resetPwd")
+    @ResponseBody
+    public Object resetPwd(Page page) throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        PageData pageData = personnelmanagementService.findById(pd);
+        String pwd = new SimpleHash("SHA-1", pageData.getString("PHONENUM"), Const.DEFAULT_PASSWORD).toString();
+        PageData updateUser = new PageData();
+        updateUser.put("PASSWORD", pwd);
+        updateUser.put("PERSONNELMANAGEMENT_ID", pageData.getString("PERSONNELMANAGEMENT_ID"));
+        personnelmanagementService.editPassword(updateUser);
+
+        map.put("result", errInfo);
+        return map;
+    }
 
 
-	/**
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/isTrueDeleteAll")
-	@ResponseBody
-	public Object isTrueDeleteAll () throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		String[] UNITS_ID =  pd.getString("UNITS_ID").split(",");
-		List<String> list = new ArrayList<>();
-		for(String IDS:UNITS_ID){
-			list.add(IDS);
-		}
-		pd.put("IDS",list);
-		pd.put("UNITS_ID","");
-		List<PageData> pageData = personnelmanagementService.listAll(pd);
-		if(pageData.size()>0){
-			int number = 1;
-			map.put("number",number);
-		}else {
-			int number = 0;
-			map.put("number",number);
-		}
+    /**
+     * @throws Exception
+     */
+    @RequestMapping(value = "/isTrueDeleteAll")
+    @ResponseBody
+    public Object isTrueDeleteAll() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        String[] UNITS_ID = pd.getString("UNITS_ID").split(",");
+        List<String> list = new ArrayList<>();
+        for (String IDS : UNITS_ID) {
+            list.add(IDS);
+        }
+        pd.put("IDS", list);
+        pd.put("UNITS_ID", "");
+        List<PageData> pageData = personnelmanagementService.listAll(pd);
+        if (pageData.size() > 0) {
+            int number = 1;
+            map.put("number", number);
+        } else {
+            int number = 0;
+            map.put("number", number);
+        }
 
-		map.put("result", errInfo);
-		return map;
-	}
+        map.put("result", errInfo);
+        return map;
+    }
 
-	/**列表
-	 * @param page
-	 * @throws Exception
-	 */
-	@RequestMapping(value="/listAll")
-	@ResponseBody
-	public Object listAll() throws Exception{
-		Map<String,Object> map = new HashMap<String,Object>();
-		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
-		List<PageData>	varList = personnelmanagementService.listAll(pd);	//列出PersonnelManagement列表
-		map.put("varList", varList);
-		map.put("result", errInfo);
-		return map;
-	}
+    /**
+     * 列表
+     *
+     * @param page
+     * @throws Exception
+     */
+    @RequestMapping(value = "/listAll")
+    @ResponseBody
+    public Object listAll() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String errInfo = "success";
+        PageData pd = new PageData();
+        pd = this.getPageData();
+        List<PageData> varList = personnelmanagementService.listAll(pd);    //列出PersonnelManagement列表
+        map.put("varList", varList);
+        map.put("result", errInfo);
+        return map;
+    }
 }
diff --git a/src/main/java/com/zcloud/controller/keyProjects/UnitsController.java b/src/main/java/com/zcloud/controller/keyProjects/UnitsController.java
index fa01802f..1c6234bf 100644
--- a/src/main/java/com/zcloud/controller/keyProjects/UnitsController.java
+++ b/src/main/java/com/zcloud/controller/keyProjects/UnitsController.java
@@ -47,9 +47,9 @@ public class UnitsController extends BaseController {
 		PageData pd = new PageData();
 		pd = this.getPageData();
 		pd.put("UNITS_ID", this.get32UUID());    //主键
-		pd.put("CREATOR", Jurisdiction.getUsername());    //添加人
+		pd.put("CREATOR", Jurisdiction.getUSER_ID());    //添加人
 		pd.put("CREATTIME", DateUtil.date2Str(new Date()));    //添加时间
-		pd.put("OPERATOR", Jurisdiction.getUsername());    //修改人
+		pd.put("OPERATOR", Jurisdiction.getUSER_ID());    //修改人
 		pd.put("OPERATTIME", DateUtil.date2Str(new Date()));    //修改时间
 		pd.put("ISDELETE", "0");    //是否删除
 		if (null != file && !file.isEmpty()) {
@@ -67,8 +67,7 @@ public class UnitsController extends BaseController {
 			Smb.sshSftp(file, fileName, Const.FILEPATHFILE + "/" + ffile);
 			pd.put("FILEPATH", Const.FILEPATHFILE + "/" + ffile + "/" + fileName);
 		}
-		pd.put("UNITS_ID", pd.getString("UNITS_ID"));
-		List<PageData> list = unitsService.listAll(pd);
+//		List<PageData> list = unitsService.listAll(pd);
 		unitsService.save(pd);
 		map.put("result", errInfo);
 		return map;
@@ -86,18 +85,16 @@ public class UnitsController extends BaseController {
 	public Object delete() throws Exception {
 		Map<String, String> map = new HashMap<String, String>();
 		String errInfo = "success";
-		PageData pd = new PageData();
-		pd = this.getPageData();
+		PageData pd = this.getPageData();
 		String state = unitsService.IsJudgeCreator(pd.getString("UNITS_ID"));
 		if("1".equals(state)){
 			unitsService.delete(pd);
 		}else{
 			errInfo = "fail";
 			map.put("result", errInfo);
-			map.put("msg", "只用添加人"+state+"可以删除相关方!");
+			map.put("msg", "只有添加人"+state+"可以删除相关方!");
 			return map;
 		}
-
 		map.put("result", errInfo);                //返回结果
 		return map;
 	}
diff --git a/src/main/java/com/zcloud/controller/keyProjects/VideoResourcesController.java b/src/main/java/com/zcloud/controller/keyProjects/VideoResourcesController.java
index 55f482cb..659c68be 100644
--- a/src/main/java/com/zcloud/controller/keyProjects/VideoResourcesController.java
+++ b/src/main/java/com/zcloud/controller/keyProjects/VideoResourcesController.java
@@ -47,8 +47,8 @@ public class VideoResourcesController extends BaseController {
         pd.put("VIDEO_RESOURCES_ID", this.get32UUID());    //主键
         pd.put("CREATTIME", DateUtil.date2Str(new Date()));    //操作日期
         pd.put("OPERATTIME", DateUtil.date2Str(new Date()));    //操作日期
-        pd.put("OPERATOR", Jurisdiction.getUsername());    //操作人
-        pd.put("CREATOR", Jurisdiction.getUsername());    //操作人
+        pd.put("OPERATOR", Jurisdiction.getUSER_ID());    //操作人
+        pd.put("CREATOR", Jurisdiction.getUSER_ID());    //操作人
         pd.put("CORPINFO_ID", Jurisdiction.getCORPINFO_ID());    //操作人
         pd.put("ISDELETE", "0");    //是否删除
         videoResourcesService.save(pd);
diff --git a/src/main/java/com/zcloud/controller/keyProjects/app/AppAIWarningController.java b/src/main/java/com/zcloud/controller/keyProjects/app/AppAIWarningController.java
index 9f4264a0..312b47ee 100644
--- a/src/main/java/com/zcloud/controller/keyProjects/app/AppAIWarningController.java
+++ b/src/main/java/com/zcloud/controller/keyProjects/app/AppAIWarningController.java
@@ -154,8 +154,6 @@ public class AppAIWarningController extends BaseController {
 						imgAddPd.put("FOREIGN_KEY",  hidden.getString("HIDDEN_ID"));
 						imgFilesService.save(imgAddPd);
 					}
-
-
 					keyprojectHiddenService.save(hidden);
 					try {
 //						this.DownloadPicturn(pd);
diff --git a/src/main/java/com/zcloud/controller/keyProjects/app/AppKeyProjectsController.java b/src/main/java/com/zcloud/controller/keyProjects/app/AppKeyProjectsController.java
index 1a72f90f..3de397ac 100644
--- a/src/main/java/com/zcloud/controller/keyProjects/app/AppKeyProjectsController.java
+++ b/src/main/java/com/zcloud/controller/keyProjects/app/AppKeyProjectsController.java
@@ -136,4 +136,24 @@ public class AppKeyProjectsController extends BaseController {
 		map.put("result", errInfo);
 		return map;
 	}
+
+	/**处罚管理列表  查询自己可以处罚的重点工程    角标计算逻辑 查询重点工程中所有处罚未选择是否处罚的隐患累加
+	 * @throws Exception
+	 */
+	@RequestMapping(value="/getPUNISHlist")
+	@ResponseBody
+	public Object getPUNISHlist(Page page) throws Exception{
+		Map<String,Object> map = new HashMap<String,Object>();
+		String errInfo = "success";
+		PageData pd = new PageData();
+		pd = this.getPageData();
+		String KEYWORDS = pd.getString("KEYWORDS");						//关键词检索条件
+		if(Tools.notEmpty(KEYWORDS))pd.put("KEYWORDS", KEYWORDS.trim());
+		page.setPd(pd);
+		List<PageData>	varList = outsourcedService.getPUNISHlist(page);	//列出OutSourced列表
+		map.put("varList", varList);
+		map.put("page", page);
+		map.put("result", errInfo);
+		return map;
+	}
 }
diff --git a/src/main/java/com/zcloud/controller/keyProjects/app/AppKeyprojectCheckController.java b/src/main/java/com/zcloud/controller/keyProjects/app/AppKeyprojectCheckController.java
index dda9dc58..aedca068 100644
--- a/src/main/java/com/zcloud/controller/keyProjects/app/AppKeyprojectCheckController.java
+++ b/src/main/java/com/zcloud/controller/keyProjects/app/AppKeyprojectCheckController.java
@@ -46,6 +46,9 @@ public class AppKeyprojectCheckController extends BaseController {
 	@Autowired
 	private PersonnelManagementService personnelmanagementService;
 
+	@Autowired
+	private KeyprojectPunishService keyprojectpunishService;
+
 	/**新增
 	 * @param
 	 * @throws Exception
@@ -150,7 +153,7 @@ public class AppKeyprojectCheckController extends BaseController {
 	}
 
 	/**删除
-	 * @param out
+	 * @param
 	 * @throws Exception
 	 */
 	@RequestMapping(value="/delete")
@@ -274,6 +277,9 @@ public class AppKeyprojectCheckController extends BaseController {
 		pd.put("zgImgs", imgFilesService.listAll(pd2));//整改图片
 		pd2.put("TYPE",5);
 		pd.put("ysImgs", imgFilesService.listAll(pd2));//整改图片
+		PageData findTicketData = new PageData();
+		findTicketData.put("HIDDEN_ID",pd.getString("HIDDEN_ID"));
+		pd.put("punishForm",keyprojectpunishService.findById(findTicketData));
 		map.put("pd", pd);
 		map.put("result", errInfo);
 		return map;
@@ -363,4 +369,25 @@ public class AppKeyprojectCheckController extends BaseController {
 		return map;
 	}
 
+	/**重点工程处罚列表 包含 未选择处罚结果的隐患  已下发处罚但为反馈的隐患 不处罚的隐患
+	 * @param page
+	 * @throws Exception
+	 */
+	@RequestMapping(value="/punishlist")
+	@ResponseBody
+	public Object punishlist(Page page) throws Exception{
+		Map<String,Object> map = new HashMap<String,Object>();
+		String errInfo = "success";
+		PageData pd = new PageData();
+		pd = this.getPageData();
+		String KEYWORDS = pd.getString("KEYWORDS");						//关键词检索条件
+		if(Tools.notEmpty(KEYWORDS))pd.put("KEYWORDS", KEYWORDS.trim());
+		page.setPd(pd);
+		List<PageData>	varList = keyprojectHiddenService.getpunishlist(page);	//列出KeyprojectCheck列表
+		map.put("varList", varList);
+		map.put("page", page);
+		map.put("result", errInfo);
+		return map;
+	}
+
 }
diff --git a/src/main/java/com/zcloud/controller/xgf/XgfCorpController.java b/src/main/java/com/zcloud/controller/xgf/XgfCorpController.java
index 8a4cd8a0..af776b24 100644
--- a/src/main/java/com/zcloud/controller/xgf/XgfCorpController.java
+++ b/src/main/java/com/zcloud/controller/xgf/XgfCorpController.java
@@ -30,77 +30,85 @@ public class XgfCorpController extends BaseController {
     private String url;
     @Value("${qa-regulatory-gwj.api.url}")
     private String regulatoryUrl;
+
     /**
      * 相关方单位账号管理-列表
+     *
      * @param page
      * @throws Exception
      */
-    @RequestMapping(value="/getCorpInfoList")
+    @RequestMapping(value = "/getCorpInfoList")
     @ResponseBody
-    public Object getCorpInfoList(Page page) throws Exception{
+    public Object getCorpInfoList(Page page) throws Exception {
         PageData pd = new PageData();
         pd = this.getPageData();
-        pd.put("SUPERVISE_CORPINFO_ID",Jurisdiction.getCORPINFO_ID());
+        pd.put("SUPERVISE_CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
         if (Jurisdiction.getIS_MAIN().equals("1")) { //主账号
             pd.put("SUPERVISE_DEPARTMENT_ID", "");
-        }else{
+        } else {
             pd.put("SUPERVISE_DEPARTMENT_ID", Jurisdiction.getDEPARTMENT_ID());
         }
         Map result = HttpClientService.doPost(url + "/api/corpinfo/list", pd);
         return result;
     }
+
     @RequestMapping("/unitCorpCount")
-    public Map<String,Object> getUnitCorpCount(){
-        Map<String,Object> result = restTemplate.getForObject(url + "/api/corpinfo/unitCorpInfo", Map.class);
+    public Map<String, Object> getUnitCorpCount() {
+        Map<String, Object> result = restTemplate.getForObject(url + "/api/corpinfo/unitCorpInfo", Map.class);
         String errInfo = "success";
-        List<PageData> unitCorp = (List<PageData>)result.get("unitCorp");
+        List<PageData> unitCorp = (List<PageData>) result.get("unitCorp");
         int size = unitCorp.size();
-        Map<String,Object> map = new HashMap<>();
-        map.put("unitCorpCount",size);
-        map.put("result",errInfo);
+        Map<String, Object> map = new HashMap<>();
+        map.put("unitCorpCount", size);
+        map.put("result", errInfo);
         return map;
     }
 
     /**
      * 监管端编辑企业信息
+     *
      * @return
      * @throws Exception
      */
-    @RequestMapping(value="/editCorpInfo")
+    @RequestMapping(value = "/editCorpInfo")
     @ResponseBody
-    public Object editCorpInfo() throws Exception{
-        Map<String,Object> map = new HashMap<String,Object>();
+    public Object editCorpInfo() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
         String errInfo = "success";
         PageData pd = new PageData();
         pd = this.getPageData();
-        pd.put("OPERATOR", Jurisdiction.getUSER_ID());	//修改人
-        pd.put("OPERATTIME", DateUtil.date2Str(new Date()));	//修改时间
+        pd.put("OPERATOR", Jurisdiction.getUSER_ID());    //修改人
+        pd.put("OPERATTIME", DateUtil.date2Str(new Date()));    //修改时间
         Map result = HttpClientService.doPost(url + "/api/corpinfo/editCorpInfo", pd);
         return result;
     }
 
     /**
      * 监管端删除企业信息
+     *
      * @return
      * @throws Exception
      */
-    @RequestMapping(value="/deleteCorpInfo")
+    @RequestMapping(value = "/deleteCorpInfo")
     @ResponseBody
-    public Object deleteCorpInfo() throws Exception{
-        Map<String,Object> map = new HashMap<String,Object>();
+    public Object deleteCorpInfo() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
         String errInfo = "success";
         PageData pd = new PageData();
         pd = this.getPageData();
         Map result = HttpClientService.doPost(url + "/api/corpinfo/deleteCorpInfo", pd);
         return result;
     }
-    /**导出到excel
+
+    /**
+     * 导出到excel
+     *
      * @param
      * @throws Exception
      */
-    @RequestMapping(value="/excelAll")
+    @RequestMapping(value = "/excelAll")
 //    @RequiresPermissions("toExcel")
-    public ModelAndView exportExcel() throws Exception{
+    public ModelAndView exportExcel() throws Exception {
 
         ModelAndView mv = new ModelAndView();
         PageData pd = new PageData();
@@ -108,26 +116,26 @@ public class XgfCorpController extends BaseController {
         Map<String, Object> dataMap = new HashMap<String, Object>();
         List<String> titles = new ArrayList<String>();
         titles.add("序号");    //1
-        titles.add("企业状态");    //2
-        titles.add("股份主管部门");    //3
-        titles.add("基层单位主管公司");    //4
-        titles.add("基层单位主管部门");    //5
-        titles.add("相关方单位名称");    //6
-        titles.add("统一社会信用代码");    //7
-        titles.add("经营地址");    //8
-        titles.add("法人");    //9
-        titles.add("联系人");    //10
-        titles.add("联系电话");    //11
-        titles.add("用工形式");    //12
-        titles.add("选取形式");    //13
-        titles.add("流动人员比例%");    //14
+        titles.add("相关方单位名称");    //2
+        titles.add("企业状态");    //3
+        titles.add("股份主管部门");    //4
+        titles.add("股份监管部门");    //5
+        titles.add("基层单位主管部门");    //6
+        titles.add("基层单位监管部门");    //7
+        titles.add("统一社会信用代码");    //8
+        titles.add("经营地址");    //9
+        titles.add("法人");    //10
+        titles.add("联系人");    //11
+        titles.add("联系电话");    //12
+        titles.add("用工形式");    //13
+        titles.add("选取形式");    //14
         titles.add("添加人");    //15
         titles.add("添加时间");    //16
         dataMap.put("titles", titles);
-        pd.put("SUPERVISE_CORPINFO_ID",Jurisdiction.getCORPINFO_ID());
+        pd.put("SUPERVISE_CORPINFO_ID", Jurisdiction.getCORPINFO_ID());
         if (Jurisdiction.getIS_MAIN().equals("1")) { //主账号
             pd.put("SUPERVISE_DEPARTMENT_ID", "");
-        }else{
+        } else {
             pd.put("SUPERVISE_DEPARTMENT_ID", Jurisdiction.getDEPARTMENT_ID());
         }
         Map result = HttpClientService.doPost(url + "/api/corpinfo/unitCorpInfo", pd);
@@ -137,35 +145,35 @@ public class XgfCorpController extends BaseController {
         for (int i = 0; i < varOList.size(); i++) {
             PageData vpd = new PageData();
             vpd.put("var1", i + 1);
+            vpd.put("var2", varOList.get(i).get("RELEVANT_UNIT_NAME"));
             if (varOList.get(i).get("STATE").equals("0")) {
-                vpd.put("var2", "未填报");
+                vpd.put("var3", "未填报");
             } else if (varOList.get(i).get("STATE").equals("1")) {
-                vpd.put("var2", "待审核");
+                vpd.put("var3", "待审核");
             } else if (varOList.get(i).get("STATE").equals("2")) {
-                vpd.put("var2", "已审核");
+                vpd.put("var3", "已审核");
             } else if (varOList.get(i).get("STATE").equals("3")) {
-                vpd.put("var2", "已打回");
+                vpd.put("var3", "已打回");
             } else if (varOList.get(i).get("STATE").equals("4")) {
-                vpd.put("var2", "已填报");
+                vpd.put("var3", "已填报");
             }
 
-            vpd.put("var3", varOList.get(i).get("MAIN_DEPARTMENT_NAME"));
-            vpd.put("var4", varOList.get(i).get("SUPERVISE_CORPINFO_NAME"));
-            vpd.put("var5", varOList.get(i).get("SUPERVISE_DEPARTMENT_NAME"));
-            vpd.put("var6", varOList.get(i).get("RELEVANT_UNIT_NAME"));
-            vpd.put("var7", varOList.get(i).get("SOCIAL_CODE"));
-            vpd.put("var8", varOList.get(i).get("BUSINESS_ADDRESS"));
-            vpd.put("var9", varOList.get(i).get("LEGAL_PERSON"));
-            vpd.put("var10", varOList.get(i).get("CONTACT_PERSON"));
-            vpd.put("var11", varOList.get(i).get("CONTACT_TEL"));
-            vpd.put("var12", varOList.get(i).get("EMPLOYMENT_FORM_NAME"));
+            vpd.put("var4", varOList.get(i).get("MAIN_DEPARTMENT_NAME"));
+            vpd.put("var5", varOList.get(i).get("MANAGER_DEPARTMENT_NAME"));
+            vpd.put("var6", varOList.get(i).get("SUPERVISE_CORPINFO_DEPT_NAME"));
+            vpd.put("var7", varOList.get(i).get("COMPETENT_DEPT_NAME"));
+            vpd.put("var8", varOList.get(i).get("SOCIAL_CODE"));
+            vpd.put("var9", varOList.get(i).get("BUSINESS_ADDRESS"));
+            vpd.put("var10", varOList.get(i).get("LEGAL_PERSON"));
+            vpd.put("var11", varOList.get(i).get("CONTACT_PERSON"));
+            vpd.put("var12", varOList.get(i).get("CONTACT_TEL"));
+            vpd.put("var13", varOList.get(i).get("EMPLOYMENT_FORM_NAME"));
             if (varOList.get(i).get("SELECT_FORM").equals("competitive_negotiation")) {
-                vpd.put("var13", "竞争性谈判");
+                vpd.put("var14", "竞争性谈判");
             }
             if (varOList.get(i).get("SELECT_FORM").equals("invite_tenders")) {
-                vpd.put("var13", "招标");
+                vpd.put("var14", "招标");
             }
-            vpd.put("var14", varOList.get(i).get("FLOATING_PERCENT"));
             vpd.put("var15", varOList.get(i).get("CREATOR_NAME"));
             vpd.put("var16", varOList.get(i).get("CREATTIME").toString().replace("T", " ").replace(".000+0000", ""));
             varList.add(vpd);
@@ -175,49 +183,55 @@ public class XgfCorpController extends BaseController {
         mv = new ModelAndView(erv, dataMap);
         return mv;
     }
+
     /**
      * 查询相关方统一社会信用代码是否唯一
+     *
      * @param page
      * @throws Exception
      */
-    @RequestMapping(value="/resetPassword")
+    @RequestMapping(value = "/resetPassword")
     @ResponseBody
-    public Object resetPassword() throws Exception{
+    public Object resetPassword() throws Exception {
         PageData pd = new PageData();
         pd = this.getPageData();
         Map result = HttpClientService.doPost(url + "/api/corpinfo/resetPasswordByCorpInfoId", pd);
         return result;
     }
+
     /**
      * 相关方单位人员-人员基础信息管理-list
+     *
      * @return
      * @throws Exception
      */
-    @RequestMapping(value="/getCorpInfoDetail")
+    @RequestMapping(value = "/getCorpInfoDetail")
     @ResponseBody
-    public Object getCorpInfoDetail() throws Exception{
+    public Object getCorpInfoDetail() throws Exception {
         PageData pd = new PageData();
         pd = this.getPageData();
         Map result = HttpClientService.doPost(url + "/api/corpinfo/getDataForEditByCorpInfoIdForApi", pd);
         return result;
     }
 
-    /**  审核
+    /**
+     * 审核
+     *
      * @param
      * @throws Exception
      */
-    @RequestMapping(value="/examine")
+    @RequestMapping(value = "/examine")
     @ResponseBody
-    public Object examine () throws Exception{
-        Map<String,Object> map = new HashMap<String,Object>();
+    public Object examine() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
         String errInfo = "success";
         PageData pd = new PageData();
         pd = this.getPageData();
 
-        pd.put("OPERATTIME",DateUtil.date2Str(new Date()));
-        pd.put("OPERATOR",Jurisdiction.getUSER_ID());
+        pd.put("OPERATTIME", DateUtil.date2Str(new Date()));
+        pd.put("OPERATOR", Jurisdiction.getUSER_ID());
         String type = pd.getString("STATE"); //2 通过 3.未通过
-        if("2".equals(type)){
+        if ("2".equals(type)) {
             pd.put("STATE", "2");   // 审核状态改为通过
         } else if ("3".equals(type)) {
             pd.put("STATE", "3");   // 审核状态改为打回
@@ -230,11 +244,12 @@ public class XgfCorpController extends BaseController {
 
     /**
      * 显示列表ztree
+     *
      * @return
      */
-    @RequestMapping(value="/listTree2")
+    @RequestMapping(value = "/listTree2")
     @ResponseBody
-    public Object listTree2()throws Exception{
+    public Object listTree2() throws Exception {
         PageData pd = new PageData();
         pd = this.getPageData();
         Map result = HttpClientService.doPost(regulatoryUrl + "/department/listTree", pd);
diff --git a/src/main/java/com/zcloud/mapper/datasource/firemanager/FirePointMapper.java b/src/main/java/com/zcloud/mapper/datasource/firemanager/FirePointMapper.java
index 3c76f67c..9c3d17fa 100644
--- a/src/main/java/com/zcloud/mapper/datasource/firemanager/FirePointMapper.java
+++ b/src/main/java/com/zcloud/mapper/datasource/firemanager/FirePointMapper.java
@@ -77,4 +77,6 @@ public interface FirePointMapper {
     void deleteAll(PageData pd);
 
     void removeQualifiedByQIds(PageData pd);
+
+    List<PageData> getFirePointCheckPhotos(PageData pd);
 }
diff --git a/src/main/java/com/zcloud/mapper/datasource/keyProjects/KeyprojectHiddenMapper.java b/src/main/java/com/zcloud/mapper/datasource/keyProjects/KeyprojectHiddenMapper.java
index f6ee3019..9fa7b3bd 100644
--- a/src/main/java/com/zcloud/mapper/datasource/keyProjects/KeyprojectHiddenMapper.java
+++ b/src/main/java/com/zcloud/mapper/datasource/keyProjects/KeyprojectHiddenMapper.java
@@ -150,5 +150,13 @@ public interface KeyprojectHiddenMapper {
     void deleteByKey(PageData key);
 
     PageData keyprojectcount(PageData pd);
+
+
+	/**重点工程处罚列表 包含 未选择处罚结果的隐患  已下发处罚但为反馈的隐患 不处罚的隐患
+	 * @param page
+	 * @throws Exception
+	 */
+	List<PageData> getpunishlistPage(Page page);
+
 }
 
diff --git a/src/main/java/com/zcloud/mapper/dsno2/keyProjects/OutSourcedMapper.java b/src/main/java/com/zcloud/mapper/dsno2/keyProjects/OutSourcedMapper.java
index d98451b1..c63201ea 100644
--- a/src/main/java/com/zcloud/mapper/dsno2/keyProjects/OutSourcedMapper.java
+++ b/src/main/java/com/zcloud/mapper/dsno2/keyProjects/OutSourcedMapper.java
@@ -63,5 +63,15 @@ public interface OutSourcedMapper{
 	 */
 	void jie(PageData pd);
 
+	/**
+	 * 当前用户处罚重点工程列表  用于APP
+	 * @param page
+	 * @return
+	 */
+	List<PageData> getPUNISHlistPage(Page page);
+
+
+	//校验结束重点工程是否有为完成的内容
+	PageData jieshuOutSourced(PageData pd);
 }
 
diff --git a/src/main/java/com/zcloud/mapper/dsno2/keyProjects/VideoManagerMapper.java b/src/main/java/com/zcloud/mapper/dsno2/keyProjects/VideoManagerMapper.java
index e26cb8de..bce67b13 100644
--- a/src/main/java/com/zcloud/mapper/dsno2/keyProjects/VideoManagerMapper.java
+++ b/src/main/java/com/zcloud/mapper/dsno2/keyProjects/VideoManagerMapper.java
@@ -73,5 +73,7 @@ public interface VideoManagerMapper {
 	List<PageData> getCameraPosition(PageData pageData);
 
 	void editByResourcesId(PageData pd);
+
+	void updateAiByOUTSOURCED_ID(PageData pd);
 }
 
diff --git a/src/main/java/com/zcloud/service/bus/ImgFilesService.java b/src/main/java/com/zcloud/service/bus/ImgFilesService.java
index d2faa4b6..111f5eb8 100644
--- a/src/main/java/com/zcloud/service/bus/ImgFilesService.java
+++ b/src/main/java/com/zcloud/service/bus/ImgFilesService.java
@@ -3,6 +3,7 @@ package com.zcloud.service.bus;
 import java.util.List;
 import com.zcloud.entity.Page;
 import com.zcloud.entity.PageData;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 说明:图片管理
@@ -95,6 +96,6 @@ public interface ImgFilesService{
 
 	void hideImg(PageData forward);
 	public List<PageData> getListByKeyAndType (Object key ) throws Exception;
-
+	void uploadPicture(MultipartFile[] files, String TYPE, String FOREIGN_KEY);
 }
 
diff --git a/src/main/java/com/zcloud/service/bus/impl/ImgFilesServiceImpl.java b/src/main/java/com/zcloud/service/bus/impl/ImgFilesServiceImpl.java
index 6516adc5..a4e45627 100644
--- a/src/main/java/com/zcloud/service/bus/impl/ImgFilesServiceImpl.java
+++ b/src/main/java/com/zcloud/service/bus/impl/ImgFilesServiceImpl.java
@@ -1,9 +1,12 @@
 package com.zcloud.service.bus.impl;
 
+import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
-import com.zcloud.util.Tools;
+import com.zcloud.util.*;
+import org.apache.commons.io.FileUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -11,6 +14,7 @@ import com.zcloud.entity.Page;
 import com.zcloud.entity.PageData;
 import com.zcloud.mapper.datasource.bus.ImgFilesMapper;
 import com.zcloud.service.bus.ImgFilesService;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 说明:图片管理
@@ -152,5 +156,71 @@ public class ImgFilesServiceImpl implements ImgFilesService{
 		}
 		return new ArrayList<>();
 	}
+
+	@Override
+	public void uploadPicture(MultipartFile[] files, String TYPE, String FOREIGN_KEY) {
+		if (files != null && files.length > 0) {
+			for (int i = 0; i < files.length; i++) {
+				String suffixName = files[i].getOriginalFilename().substring(files[i].getOriginalFilename().lastIndexOf(".")+1).toLowerCase();
+				if (!"json".equals(suffixName) && !"pdf".equals(suffixName) && !"jpg".equals(suffixName) && !"jpeg".equals(suffixName) && !"png".equals(suffixName) && !"mp4".equals(suffixName)) {
+					return ;
+				}
+			}
+			for (int i = 0; i < files.length; i++) {
+				MultipartFile file = files[i];
+//                 保存文件
+				File tempFile = new File(file.getOriginalFilename());
+				try {
+					FileUtils.copyInputStreamToFile(file.getInputStream(), tempFile);
+				} catch (IOException e) {
+					throw new RuntimeException(e);
+				}
+				if(!FileUpload.isImage(tempFile) && !TYPE.equals("2")) {//四色图改为json文件,不用判断类型
+					return ;
+				}
+				tempFile.delete();
+
+				if(TYPE.equals("2")) {//先删除原四色图
+					PageData pd2 = new PageData();
+					pd2.put("FOREIGN_KEY",FOREIGN_KEY);
+					pd2.put("TYPE",TYPE);
+					List<PageData> four = null;
+					try {
+						four = listAll(pd2);
+					} catch (Exception e) {
+						throw new RuntimeException(e);
+					}
+					for (PageData pageData : four) {
+						File old = new File(PathUtil.getProjectpath()+pageData.getString("FILEPATH"));
+						old.delete();
+						try {
+							delete(pageData);
+						} catch (Exception e) {
+							throw new RuntimeException(e);
+						}
+					}
+				}
+				String  ffile = DateUtil.getDays();
+//        		String filePath = PathUtil.getProjectpath() + Const.FILEPATHFILE + ffile;	//文件上传路径
+//        		String fileName = FileUpload.fileUp(file, filePath, this.get32UUID());				//执行上传
+				String fileName = UuidUtil.get32UUID()+file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
+				try {
+					Smb.sshSftp(file, fileName, Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile);
+				} catch (Exception e) {
+					throw new RuntimeException(e);
+				}
+				PageData pd = new PageData();
+				pd.put("IMGFILES_ID",  UuidUtil.get32UUID());
+				pd.put("FILEPATH",  Const.FILEPATHYHTP + Jurisdiction.getCORPINFO_ID() + "/" + ffile + "/" + fileName);
+				pd.put("TYPE", TYPE);
+				pd.put("FOREIGN_KEY",  FOREIGN_KEY);
+				try {
+					save(pd);
+				} catch (Exception e) {
+					throw new RuntimeException(e);
+				}
+			}
+		}
+	}
 }
 
diff --git a/src/main/java/com/zcloud/service/firemanager/FirePointService.java b/src/main/java/com/zcloud/service/firemanager/FirePointService.java
index 2f9f9f3d..a94f7b78 100644
--- a/src/main/java/com/zcloud/service/firemanager/FirePointService.java
+++ b/src/main/java/com/zcloud/service/firemanager/FirePointService.java
@@ -2,6 +2,7 @@ package com.zcloud.service.firemanager;
 
 import com.zcloud.entity.Page;
 import com.zcloud.entity.PageData;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 import java.util.Map;
@@ -18,7 +19,7 @@ public interface FirePointService {
 
     PageData findById(PageData pd);
 
-    void updFirePointById(PageData pd);
+    void updFirePointById(MultipartFile[] files,PageData pd);
 
     boolean delFirePointByIds(PageData pd);
 
@@ -42,4 +43,6 @@ public interface FirePointService {
     void removeFirePointByIds(PageData pd);
 
     void removeQualifiedByQIds(PageData pd);
+
+    List<PageData> getFirePointCheckPhotos(PageData pd);
 }
diff --git a/src/main/java/com/zcloud/service/firemanager/impl/FirePointServiceImpl.java b/src/main/java/com/zcloud/service/firemanager/impl/FirePointServiceImpl.java
index e35feb10..b11771f6 100644
--- a/src/main/java/com/zcloud/service/firemanager/impl/FirePointServiceImpl.java
+++ b/src/main/java/com/zcloud/service/firemanager/impl/FirePointServiceImpl.java
@@ -7,6 +7,7 @@ import java.util.Map;
 
 import javax.annotation.Resource;
 
+import com.zcloud.service.bus.ImgFilesService;
 import com.zcloud.util.*;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -15,6 +16,7 @@ import com.zcloud.entity.Page;
 import com.zcloud.entity.PageData;
 import com.zcloud.mapper.datasource.firemanager.FirePointMapper;
 import com.zcloud.service.firemanager.FirePointService;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 说明:TODO 作者:wangxuan 官网:www.zcloudchina.com
@@ -24,6 +26,8 @@ public class FirePointServiceImpl implements FirePointService {
     @Resource
     private FirePointMapper firePointMapper;
     @Resource
+    private ImgFilesService imgFilesService;
+    @Resource
     private InitPageDataUtil initPageDataUtil;
 
     @Override
@@ -32,6 +36,7 @@ public class FirePointServiceImpl implements FirePointService {
         return firePointMapper.datalistPage(page);
     }
 
+    @Override
     public void savePosition(PageData pd)throws Exception{
         firePointMapper.savePosition(pd);
     }
@@ -43,8 +48,17 @@ public class FirePointServiceImpl implements FirePointService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void updFirePointById(PageData pd) {
+    public void updFirePointById(MultipartFile[] files, PageData pd) {
         firePointMapper.updFirePointById(pd);
+        String waitRemoveDataIds = pd.getString("WAIT_REMOVE_DATA_IDS",null);
+        if (waitRemoveDataIds != null) {
+            try {
+                imgFilesService.deleteAll(waitRemoveDataIds.split(","));
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        }
+        imgFilesService.uploadPicture(files,"118",pd.getString("FIRE_POINT_ID"));
     }
 
     @Override
@@ -76,6 +90,7 @@ public class FirePointServiceImpl implements FirePointService {
      * @return
      * @throws Exception
      */
+    @Override
     public Map<String, PageData> getAllByCorpIdForExcel(PageData pd) throws Exception {
         Map<String, PageData> listAllMap = new HashMap<>();
         List<PageData> listAll = firePointMapper.getAllList(pd);
@@ -88,6 +103,7 @@ public class FirePointServiceImpl implements FirePointService {
         return listAllMap;
     }
 
+    @Override
     public PageData saveFroExcel(String name, String bianma, String qyID, String departId, String userID)
         throws Exception {
         PageData pd = new PageData();
@@ -135,4 +151,9 @@ public class FirePointServiceImpl implements FirePointService {
     public void removeQualifiedByQIds(PageData pd) {
         firePointMapper.removeQualifiedByQIds(pd);
     }
+
+    @Override
+    public List<PageData> getFirePointCheckPhotos(PageData pd) {
+        return firePointMapper.getFirePointCheckPhotos(pd);
+    }
 }
diff --git a/src/main/java/com/zcloud/service/keyProjects/KeyprojectHiddenService.java b/src/main/java/com/zcloud/service/keyProjects/KeyprojectHiddenService.java
index 2d677b3f..954c4e8f 100644
--- a/src/main/java/com/zcloud/service/keyProjects/KeyprojectHiddenService.java
+++ b/src/main/java/com/zcloud/service/keyProjects/KeyprojectHiddenService.java
@@ -178,5 +178,7 @@ public interface KeyprojectHiddenService {
 	 * @throws Exception
 	 */
 	public PageData keyprojectcount(PageData pd)throws Exception;
+
+	List<PageData> getpunishlist(Page page);
 }
 
diff --git a/src/main/java/com/zcloud/service/keyProjects/OutSourcedService.java b/src/main/java/com/zcloud/service/keyProjects/OutSourcedService.java
index b10976cb..f6e1474a 100644
--- a/src/main/java/com/zcloud/service/keyProjects/OutSourcedService.java
+++ b/src/main/java/com/zcloud/service/keyProjects/OutSourcedService.java
@@ -64,5 +64,15 @@ public interface OutSourcedService{
 	 */
 	public void jie(PageData pd)throws Exception;
 
+
+	/**
+	 * 当前用户处罚重点工程列表  用于APP
+	 * @param page
+	 * @return
+	 */
+	public List<PageData> getPUNISHlist(Page page)throws Exception;
+
+	//校验结束重点工程是否有为完成的内容
+	PageData jieshuOutSourced(PageData pd);
 }
 
diff --git a/src/main/java/com/zcloud/service/keyProjects/VideoManagerService.java b/src/main/java/com/zcloud/service/keyProjects/VideoManagerService.java
index 7a4ba56f..aa472aa9 100644
--- a/src/main/java/com/zcloud/service/keyProjects/VideoManagerService.java
+++ b/src/main/java/com/zcloud/service/keyProjects/VideoManagerService.java
@@ -71,5 +71,7 @@ public interface VideoManagerService {
 
 	List<PageData> getCameraPosition(PageData pageData);
 
+
+	void updateAiByOUTSOURCED_ID(PageData pd);
 }
 
diff --git a/src/main/java/com/zcloud/service/keyProjects/impl/KeyprojectHiddenServiceImpl.java b/src/main/java/com/zcloud/service/keyProjects/impl/KeyprojectHiddenServiceImpl.java
index 2d348656..9a47f11f 100644
--- a/src/main/java/com/zcloud/service/keyProjects/impl/KeyprojectHiddenServiceImpl.java
+++ b/src/main/java/com/zcloud/service/keyProjects/impl/KeyprojectHiddenServiceImpl.java
@@ -248,5 +248,10 @@ public class KeyprojectHiddenServiceImpl implements KeyprojectHiddenService {
 	public PageData keyprojectcount(PageData pd) throws Exception {
 	  return hiddenMapper.keyprojectcount(pd);
 	}
+
+	@Override
+	public List<PageData> getpunishlist(Page page) {
+		return hiddenMapper.getpunishlistPage(page);
+	}
 }
 
diff --git a/src/main/java/com/zcloud/service/keyProjects/impl/OutSourcedServiceImpl.java b/src/main/java/com/zcloud/service/keyProjects/impl/OutSourcedServiceImpl.java
index eff4e518..db3f5b50 100644
--- a/src/main/java/com/zcloud/service/keyProjects/impl/OutSourcedServiceImpl.java
+++ b/src/main/java/com/zcloud/service/keyProjects/impl/OutSourcedServiceImpl.java
@@ -89,5 +89,14 @@ public class OutSourcedServiceImpl implements OutSourcedService {
 		outsourcedMapper.jie(pd);
 	}
 
+	@Override
+	public List<PageData> getPUNISHlist(Page page) throws Exception {
+		return outsourcedMapper.getPUNISHlistPage(page);
+	}
+
+	@Override
+	public PageData jieshuOutSourced(PageData pd) {
+		return outsourcedMapper.jieshuOutSourced(pd);
+	}
 }
 
diff --git a/src/main/java/com/zcloud/service/keyProjects/impl/PersonnelManagementServiceImpl.java b/src/main/java/com/zcloud/service/keyProjects/impl/PersonnelManagementServiceImpl.java
index 837236bf..93e0756c 100644
--- a/src/main/java/com/zcloud/service/keyProjects/impl/PersonnelManagementServiceImpl.java
+++ b/src/main/java/com/zcloud/service/keyProjects/impl/PersonnelManagementServiceImpl.java
@@ -119,13 +119,13 @@ public class PersonnelManagementServiceImpl implements PersonnelManagementServic
 		PageData unitPd = personnelmanagementMapper.findById(pd);
 		String state = "0";
 		if(!Tools.isEmpty(unitPd)){
-			String loginUserid = Jurisdiction.getUsername();
+			String loginUserid = Jurisdiction.getUSER_ID();
 			String cratorUserId = unitPd.getString("CREATOR");
 			if(loginUserid.equals(cratorUserId)){
 				state ="1";
 			}
 			else {
-				state =cratorUserId;
+				state =Jurisdiction.getName();
 			}
 		}
 		return state;
diff --git a/src/main/java/com/zcloud/service/keyProjects/impl/UnitsServiceImpl.java b/src/main/java/com/zcloud/service/keyProjects/impl/UnitsServiceImpl.java
index b16d1db1..a2875f81 100644
--- a/src/main/java/com/zcloud/service/keyProjects/impl/UnitsServiceImpl.java
+++ b/src/main/java/com/zcloud/service/keyProjects/impl/UnitsServiceImpl.java
@@ -22,98 +22,116 @@ import java.util.List;
 @Transactional //开启事物
 public class UnitsServiceImpl implements UnitsService {
 
-	@Autowired
-	private UnitsMapper unitsMapper;
+    @Autowired
+    private UnitsMapper unitsMapper;
 
-	/**新增
-	 * @param pd
-	 * @throws Exception
-	 */
-	public void save(PageData pd)throws Exception{
-		unitsMapper.save(pd);
-	}
+    /**
+     * 新增
+     *
+     * @param pd
+     * @throws Exception
+     */
+    public void save(PageData pd) throws Exception {
+        unitsMapper.save(pd);
+    }
 
-	/**删除
-	 * @param pd
-	 * @throws Exception
-	 */
-	public void delete(PageData pd)throws Exception{
-		unitsMapper.delete(pd);
-	}
+    /**
+     * 删除
+     *
+     * @param pd
+     * @throws Exception
+     */
+    public void delete(PageData pd) throws Exception {
+        unitsMapper.delete(pd);
+    }
 
-	/**修改
-	 * @param pd
-	 * @throws Exception
-	 */
-	public void edit(PageData pd)throws Exception{
-		unitsMapper.edit(pd);
-	}
+    /**
+     * 修改
+     *
+     * @param pd
+     * @throws Exception
+     */
+    public void edit(PageData pd) throws Exception {
+        unitsMapper.edit(pd);
+    }
 
-	/**列表
-	 * @param page
-	 * @throws Exception
-	 */
-	public List<PageData> list(Page page)throws Exception{
-		return unitsMapper.datalistPage(page);
-	}
+    /**
+     * 列表
+     *
+     * @param page
+     * @throws Exception
+     */
+    public List<PageData> list(Page page) throws Exception {
+        return unitsMapper.datalistPage(page);
+    }
 
-	/**列表(全部)
-	 * @param pd
-	 * @throws Exception
-	 */
-	public List<PageData> listAll(PageData pd)throws Exception{
-		return unitsMapper.listAll(pd);
-	}
+    /**
+     * 列表(全部)
+     *
+     * @param pd
+     * @throws Exception
+     */
+    public List<PageData> listAll(PageData pd) throws Exception {
+        return unitsMapper.listAll(pd);
+    }
 
-	/**通过id获取数据
-	 * @param pd
-	 * @throws Exception
-	 */
-	public PageData findById(PageData pd)throws Exception{
-		return unitsMapper.findById(pd);
-	}
+    /**
+     * 通过id获取数据
+     *
+     * @param pd
+     * @throws Exception
+     */
+    public PageData findById(PageData pd) throws Exception {
+        return unitsMapper.findById(pd);
+    }
 
-	/**批量删除
-	 * @param ArrayDATA_IDS
-	 * @throws Exception
-	 */
-	public void deleteAll(String[] ArrayDATA_IDS)throws Exception{
-		unitsMapper.deleteAll(ArrayDATA_IDS);
-	}
-	/**
-	 * 获取该相关方名称是否重复
-	 * @param pd
-	 * @return
-	 * @throws Exception
-	 */
-	public PageData findByName(PageData pd) throws Exception {
-		return unitsMapper.findByName(pd);
-	}
-	public PageData findByCode(PageData pd) throws Exception {
-		return unitsMapper.findByCode(pd);
-	}
-	/**
-	 * 判断操作人是为添加人
-	 * @param unitsID 相关方单位id
-	 * @return  1 可以删除 ,其他的时候返回添加人姓名
-	 * @throws Exception
-	 */
-	public String IsJudgeCreator(String unitsID) throws Exception {
-		PageData pd = new PageData();
-		pd.put("UNITS_ID",unitsID);
-		PageData unitPd = unitsMapper.findById(pd);
-		String state = "0";
-		if(!Tools.isEmpty(unitPd)){
-			String loginUserid = Jurisdiction.getUsername();
-			String cratorUserId = unitPd.getString("CREATOR");
-			if(loginUserid.equals(cratorUserId)){
-				state ="1";
-			}
-			else {
-				state =cratorUserId;
-			}
-		}
-		return state;
-	}
+    /**
+     * 批量删除
+     *
+     * @param ArrayDATA_IDS
+     * @throws Exception
+     */
+    public void deleteAll(String[] ArrayDATA_IDS) throws Exception {
+        unitsMapper.deleteAll(ArrayDATA_IDS);
+    }
+
+    /**
+     * 获取该相关方名称是否重复
+     *
+     * @param pd
+     * @return
+     * @throws Exception
+     */
+    public PageData findByName(PageData pd) throws Exception {
+        return unitsMapper.findByName(pd);
+    }
+
+    public PageData findByCode(PageData pd) throws Exception {
+        return unitsMapper.findByCode(pd);
+    }
+
+    /**
+     * 判断操作人是为添加人
+     *
+     * @param unitsID 相关方单位id
+     * @return 1 可以删除 ,其他的时候返回添加人姓名
+     * @throws Exception
+     */
+    public String IsJudgeCreator(String unitsID) throws Exception {
+        PageData pd = new PageData();
+        pd.put("UNITS_ID", unitsID);
+        PageData unitPd = unitsMapper.findById(pd);
+        String state = "0";
+        if (!Tools.isEmpty(unitPd)) {
+            String loginUserid = Jurisdiction.getUSER_ID();
+            String cratorUserId = unitPd.getString("CREATOR");
+            if (loginUserid.equals(cratorUserId)) {
+                state = "1";
+            } else {
+                state = Jurisdiction.getName();
+            }
+        }
+        return state;
+    }
 }
 
diff --git a/src/main/java/com/zcloud/service/keyProjects/impl/VideoManagerServiceImpl.java b/src/main/java/com/zcloud/service/keyProjects/impl/VideoManagerServiceImpl.java
index 89639473..af6a8611 100644
--- a/src/main/java/com/zcloud/service/keyProjects/impl/VideoManagerServiceImpl.java
+++ b/src/main/java/com/zcloud/service/keyProjects/impl/VideoManagerServiceImpl.java
@@ -116,5 +116,10 @@ public class VideoManagerServiceImpl implements VideoManagerService {
 	public List<PageData> getCameraPosition(PageData pageData) {
 		return videomanagerMapper.getCameraPosition(pageData);
 	}
+
+	@Override
+	public void updateAiByOUTSOURCED_ID(PageData pd) {
+		videomanagerMapper.updateAiByOUTSOURCED_ID(pd);
+	}
 }
 
diff --git a/src/main/resources/mybatis/datasource/bus/CorpInfoMapper.xml b/src/main/resources/mybatis/datasource/bus/CorpInfoMapper.xml
index bd8361f0..5b4bef11 100644
--- a/src/main/resources/mybatis/datasource/bus/CorpInfoMapper.xml
+++ b/src/main/resources/mybatis/datasource/bus/CorpInfoMapper.xml
@@ -51,6 +51,8 @@
 		f.ISRECEIVE,
 		f.PROVINCE,
 		f.CITY,
+		f.SAFETY_NAME,
+		f.SAFETY_PHONE,
 		f.COUNTRY,
 		f.ADDRESS_BUSINESS,
 		f.CORP_STATE,
@@ -256,6 +258,12 @@
 				FOURTYPE=#{FOURTYPE},
 			</if>
 			PROVINCE=#{PROVINCE},
+		<if test="SAFETY_PHONE != null and SAFETY_PHONE != ''">
+			SAFETY_PHONE=#{SAFETY_PHONE},
+		</if>
+		<if test="SAFETY_NAME != null and SAFETY_NAME != ''">
+			SAFETY_NAME=#{SAFETY_NAME},
+		</if>
 			CITY=#{CITY},
 			ASCRIPTION=#{ASCRIPTION},
 			COR_ORDER=#{COR_ORDER},
diff --git a/src/main/resources/mybatis/datasource/firemanager/FirePonitMapper.xml b/src/main/resources/mybatis/datasource/firemanager/FirePonitMapper.xml
index 98366a7b..9f679748 100644
--- a/src/main/resources/mybatis/datasource/firemanager/FirePonitMapper.xml
+++ b/src/main/resources/mybatis/datasource/firemanager/FirePonitMapper.xml
@@ -205,4 +205,30 @@
           AND p.CORPINFO_ID = #{CORPINFO_ID}
         order by p.OPERATTIME desc
     </select>
+    <select id="getFirePointCheckPhotos" resultType="com.zcloud.entity.PageData">
+        SELECT
+            GROUP_CONCAT( img.FILEPATH SEPARATOR '@@' ) FILEPATHLIST,
+            u.`NAME` CREATOR_NAME,
+            cl.FIRE_CHECK_ID,
+            cl.FIRE_CHECK_STANDARD_NAME,
+            frp.EQUIPMENT_POINT_ID,
+            frp.FIRE_POINT_ID,
+            frp.FIRE_RECORD_ID,
+            frp.CREATTIME
+        FROM
+            `qa-gwj-prevention`.bus_fire_checklist cl
+                LEFT JOIN `qa-gwj-prevention`.bus_fire_record_point frp ON frp.fire_check_id = cl.fire_check_id
+                AND cl.ISDELETE = 0
+                LEFT JOIN `qa-gwj-prevention`.bus_imgfiles img ON frp.EQUIPMENT_POINT_ID = img.FOREIGN_KEY
+                LEFT JOIN `qa-gwj-prevention`.sys_user u on frp.CREATOR = u.USER_ID
+        WHERE
+            frp.ISDELETE = 0
+          AND frp.FIRE_POINT_ID = #{FIRE_POINT_ID}
+          AND frp.P_ISCHECKED = 0
+        GROUP BY
+            cl.FIRE_CHECK_ID
+        ORDER BY
+            frp.CREATTIME DESC
+            limit 1
+    </select>
 </mapper>
diff --git a/src/main/resources/mybatis/datasource/firemanager/FireRecordMapper.xml b/src/main/resources/mybatis/datasource/firemanager/FireRecordMapper.xml
index fccf4656..911b6cf5 100644
--- a/src/main/resources/mybatis/datasource/firemanager/FireRecordMapper.xml
+++ b/src/main/resources/mybatis/datasource/firemanager/FireRecordMapper.xml
@@ -881,10 +881,13 @@
         <if test="pd.STARTTIME != null and pd.STARTTIME != ''">
             and fr.CHECK_TIME between #{pd.STARTTIME,jdbcType=VARCHAR} and #{pd.ENDTIME,jdbcType=VARCHAR}
         </if>
-        <if test="pd.STATUS != null and pd.STATUS != ''">
-            and fr.FINISHED = #{pd.STATUS}
-            <!-- bug 12428-->
-            AND CONCAT( date_format( CURRENT_DATE ()- 1, '%Y-%m-%d' ), ' 00:00:00' ) BETWEEN fr.PERIODSTART AND fr.PERIODEND
+        <!-- bug 12428-->
+        <if test="pd.STATUS != null  and pd.STATUS == '0'.toString()">
+            and temp.FINISHED is null
+        </if>
+        <if test="pd.STATUS != null and pd.STATUS == '1'.toString()">
+            and temp.FINISHED is not null
+--             AND CONCAT( date_format( CURRENT_DATE ()- 1, '%Y-%m-%d' ), ' 00:00:00' ) BETWEEN fr.PERIODSTART AND fr.PERIODEND
         </if>
         <if test="pd.OVERTIME != null and pd.OVERTIME != ''">and fr.SUPPLEMENTARY = #{pd.OVERTIME}</if>
         <if test="pd.USERNAME != null and pd.USERNAME !=''">and su.NAME like concat(#{pd.USERNAME},'%')</if>
diff --git a/src/main/resources/mybatis/datasource/keyProjects/KeyprojectHiddenMapper.xml b/src/main/resources/mybatis/datasource/keyProjects/KeyprojectHiddenMapper.xml
index 52ac0dce..06680df2 100644
--- a/src/main/resources/mybatis/datasource/keyProjects/KeyprojectHiddenMapper.xml
+++ b/src/main/resources/mybatis/datasource/keyProjects/KeyprojectHiddenMapper.xml
@@ -267,6 +267,9 @@
 			<if test="ISPUNISH != null and ISPUNISH != ''">
 				ISPUNISH = #{ISPUNISH},
 			</if>
+			<if test="PUNISH_PERSON != null and PUNISH_PERSON != ''">
+				PUNISH_PERSON = #{PUNISH_PERSON},
+			</if>
 			<if test="HIDDENLEVEL != null and HIDDENLEVEL != ''">
 				HIDDENLEVEL = #{HIDDENLEVEL},
 			</if>
@@ -335,6 +338,24 @@
 		LEFT JOIN `qa-gwj-regulatory`.BUS_OUTSOURCED bod ON bod.OUTSOURCED_ID = f.FOREIGN_ID <!-- 用于AI隐患的重点工程名称 -->
 		left join `qa-gwj-regulatory`.BUS_PERSONNELMANAGEMENT p on p.PERSONNELMANAGEMENT_ID = f.RECTIFICATIONOR
 		left join BUS_KEYPROJECTPUNISH pu on pu.HIDDEN_ID = f.HIDDEN_ID
+		<if test="pd.CREATOR != null and pd.CREATOR !=''" >
+		left join (
+		SELECT
+		f.HIDDEN_ID
+		FROM
+		`qa-gwj-prevention`.BUS_KEYPROJECT_HIDDEN f
+		LEFT JOIN `qa-gwj-prevention`.bus_keyprojectcheck keycheck ON keycheck.KEYPROJECTCHECK_ID = f.FOREIGN_ID
+		LEFT JOIN `qa-gwj-regulatory`.BUS_OUTSOURCED bo ON keycheck.OUTSOURCED_ID = bo.OUTSOURCED_ID
+		LEFT JOIN `qa-gwj-regulatory`.BUS_OUTSOURCED boai ON f.FOREIGN_ID = boai.OUTSOURCED_ID
+		LEFT JOIN `qa-gwj-prevention`.BUS_KEYPROJECTPUNISH pu ON pu.HIDDEN_ID = f.HIDDEN_ID
+		WHERE
+		f.ISDELETE = '0'
+		AND f.SOURCE IN ( '4', '5', '1' )
+		AND f.STATE = '2'
+		AND f.CREATOR = #{pd.CREATOR}
+		AND ifnull(bo.OUTSOURCED_ID,boai.OUTSOURCED_ID) IS NOT NULL
+		) t on t.HIDDEN_ID = f.HIDDEN_ID
+		</if>
 		where f.ISDELETE = '0'
 		<if test="pd.OUTSOURCED_ID != null and pd.OUTSOURCED_ID != ''">
 			and bo.OUTSOURCED_ID = #{pd.OUTSOURCED_ID}
@@ -368,7 +389,11 @@
 			)
 		</if>
 		GROUP BY f.HIDDEN_ID
-		order by f.CREATTIME  desc, f.STATE desc
+		order by
+		<if test="pd.CREATOR != null and pd.CREATOR !=''" >
+		t.HIDDEN_ID desc,
+		</if>
+		f.CREATTIME  desc, f.STATE desc
 	</select>
 
 	<!-- 隐患导出EXCEL(企业隐患管理使用) -->
@@ -1496,9 +1521,24 @@
 
 	<select id="keyprojectcount" parameterType="pd" resultType="pd">
 		select count(1)                                                                as AI_COUNT,
-			   (select count(1)
-				from bus_keyproject_hidden f
-				where f.ISDELETE = '0' and f.STATE = 2 and f.CREATOR = #{loginUserId}) as HIDDEN_COUNT,
+			   (		SELECT COUNT(t.HIDDEN_ID) FROM (
+		SELECT
+		f.HIDDEN_ID,ifnull(bo.OUTSOURCED_ID,boai.OUTSOURCED_ID) OUTSOURCED_ID
+		FROM
+		`qa-gwj-prevention`.BUS_KEYPROJECT_HIDDEN f
+		LEFT JOIN `qa-gwj-prevention`.bus_keyprojectcheck keycheck ON keycheck.KEYPROJECTCHECK_ID = f.FOREIGN_ID
+		LEFT JOIN `qa-gwj-regulatory`.BUS_OUTSOURCED bo ON keycheck.OUTSOURCED_ID = bo.OUTSOURCED_ID
+		LEFT JOIN `qa-gwj-regulatory`.BUS_OUTSOURCED boai ON f.FOREIGN_ID = boai.OUTSOURCED_ID
+		WHERE
+		f.ISDELETE = '0'
+		AND f.SOURCE IN ( '4', '5', '1' )
+		AND ifnull(bo.OUTSOURCED_ID,boai.OUTSOURCED_ID) IS NOT NULL
+		and f.ISPUNISH is null
+		and (
+		bo.PUNISH_THE_PERSON LIKE CONCAT( CONCAT( '%', #{loginUserId} ), '%' )
+		OR boai.PUNISH_THE_PERSON LIKE CONCAT( CONCAT( '%', #{loginUserId} ), '%' )
+		)
+	) t ) as HIDDEN_COUNT,
 		(	SELECT COUNT(DISTINCT t.HIDDEN_ID) FROM (
 		SELECT
 		f.HIDDEN_ID
@@ -1506,27 +1546,14 @@
 		BUS_KEYPROJECT_HIDDEN f
 		LEFT JOIN `qa-gwj-prevention`.bus_keyprojectcheck keycheck ON keycheck.KEYPROJECTCHECK_ID = f.FOREIGN_ID
 		LEFT JOIN `qa-gwj-regulatory`.BUS_OUTSOURCED bo ON keycheck.OUTSOURCED_ID = bo.OUTSOURCED_ID
+		LEFT JOIN `qa-gwj-regulatory`.BUS_OUTSOURCED boai ON f.FOREIGN_ID = boai.OUTSOURCED_ID
 		LEFT JOIN BUS_KEYPROJECTPUNISH pu ON pu.HIDDEN_ID = f.HIDDEN_ID
 		WHERE
 		f.ISDELETE = '0'
 		AND f.SOURCE IN ( '4', '5', '1' )
 		AND f.STATE = '2'
 		AND f.CREATOR = #{loginUserId}
-		AND bo.OUTSOURCED_ID IS NOT NULL
-		UNION ALL
-		SELECT
-		f.HIDDEN_ID
-		FROM
-		BUS_KEYPROJECT_HIDDEN f
-		LEFT JOIN `qa-gwj-prevention`.bus_keyprojectcheck keycheck ON keycheck.KEYPROJECTCHECK_ID = f.FOREIGN_ID
-		LEFT JOIN `qa-gwj-regulatory`.BUS_OUTSOURCED bo ON keycheck.OUTSOURCED_ID = bo.OUTSOURCED_ID
-		LEFT JOIN BUS_KEYPROJECTPUNISH pu ON pu.HIDDEN_ID = f.HIDDEN_ID
-		WHERE
-		f.ISDELETE = '0'
-		AND f.SOURCE IN ( '4', '5', '1' )
-		AND bo.PUNISH_THE_PERSON LIKE CONCAT( CONCAT( '%', #{loginUserId} ), '%' )
-		AND f.STATE in ('2','4')
-		AND ( f.ISPUNISH = '' OR f.ISPUNISH IS NULL )
+		AND ifnull(bo.OUTSOURCED_ID,boai.OUTSOURCED_ID) IS NOT NULL
 		) t)CF_COUNT
 		from `qa-gwj-regulatory`.bus_aiwarning f
 		where f.ISDELETE = '0'
@@ -1539,4 +1566,44 @@
 								  and aip.ISDELETE = 0
 		      )
 	</select>
+
+	<select id="getpunishlistPage" parameterType="page" resultType="pd">
+		SELECT
+			u.UNITS_NAME,
+			per.`NAME` as PERSON_NAME,
+			ifnull(v.`NAME`,vv.`NAME`) as CREATOR_NAME,
+			c.KEYPROJECTCHECK_ID,
+			p.KEYPROJECTPUNISH_ID,
+			p.HANDLED,
+			p.REASON,
+			vi.`NAME` as RECTIFICATIONOR_NAME,
+			h.*
+		FROM
+			`qa-gwj-prevention`.bus_keyproject_hidden h
+			LEFT JOIN `qa-gwj-prevention`.bus_keyprojectcheck c ON h.FOREIGN_ID = c.KEYPROJECTCHECK_ID
+			LEFT JOIN `qa-gwj-prevention`.bus_keyprojectpunish p ON p.HIDDEN_ID = h.HIDDEN_ID
+			LEFT JOIN `qa-gwj-regulatory`.bus_units u ON h.RECTIFICATIONDEPT = u.UNITS_ID
+			LEFT JOIN `qa-gwj-regulatory`.bus_personnelmanagement per on per.PERSONNELMANAGEMENT_ID = p.PERSONNELMANAGEMENT_ID
+			LEFT JOIN `qa-gwj-prevention`.vi_user_all v ON v.USER_ID = p.CREATOR
+			LEFT JOIN `qa-gwj-prevention`.vi_user_all vv ON vv.USER_ID = h.PUNISH_PERSON
+			LEFT JOIN `qa-gwj-regulatory`.bus_personnelmanagement vi ON vi.PERSONNELMANAGEMENT_ID = h.RECTIFICATIONOR
+		WHERE
+			h.ISDELETE = '0'
+			<if test="pd.HANDLED==1">
+				and (P.HANDLED = '0' OR  P.HANDLED IS NULL)
+			</if>
+			<if test="pd.HANDLED==2">
+				and P.HANDLED = '1'
+			</if>
+			AND ( c.OUTSOURCED_ID = #{pd.OUTSOURCED_ID} OR h.FOREIGN_ID =  #{pd.OUTSOURCED_ID} )
+		<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
+			and
+			(
+			h.HIDDENDESCR LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
+			)
+		</if>
+		ORDER BY
+			h.ISPUNISH ASC,
+			p.HANDLED DESC
+	</select>
 </mapper>
diff --git a/src/main/resources/mybatis/dsno2/keyProjects/OutSourcedMapper.xml b/src/main/resources/mybatis/dsno2/keyProjects/OutSourcedMapper.xml
index 7243ffdf..3fbb08db 100644
--- a/src/main/resources/mybatis/dsno2/keyProjects/OutSourcedMapper.xml
+++ b/src/main/resources/mybatis/dsno2/keyProjects/OutSourcedMapper.xml
@@ -237,6 +237,7 @@
 		f.*,
 		(select GROUP_CONCAT(t.CORP_NAME) from `qa-gwj-prevention`.BUS_CORP_INFO t where FIND_IN_SET(t.CORPINFO_ID, f.INVOLVING_CORPS)) as INVOLVING_CORPS_NAME,
 		( SELECT GROUP_CONCAT( t.NAME ) FROM `qa-gwj-prevention`.oa_department t WHERE FIND_IN_SET( t.DEPARTMENT_ID, f.INVOLVING_CORPS_DEPART_ID ) ) AS INVOLVING_CORPS_DEPART_NAME,
+		( SELECT GROUP_CONCAT( t.NAME ) FROM `qa-gwj-prevention`.vi_department_all t WHERE FIND_IN_SET( t.DEPARTMENT_ID, f.DEPARTMENT_ID ) ) AS DEPARTMENT_NAME,
 		(select GROUP_CONCAT(t.CORP_NAME) from `qa-gwj-prevention`.BUS_CORP_INFO t where FIND_IN_SET(t.CORPINFO_ID, f.GROUP_UNIT)) as GROUP_UNIT_NAME,
 		(select GROUP_CONCAT(t.CORP_NAME) from `qa-gwj-prevention`.BUS_CORP_INFO t where FIND_IN_SET(t.CORPINFO_ID, f.MANAGE_NAME)) as MANAGE_CORPS_NAME,
 		(select GROUP_CONCAT(t.NAME) from (
@@ -246,7 +247,7 @@
 			`qa-gwj-prevention`.OA_DEPARTMENT t
 			LEFT JOIN `qa-gwj-prevention`.bus_corp_info c ON c.CORPINFO_ID = t.CORPINFO_ID
 		) t where FIND_IN_SET(t.DEPARTMENT_ID, f.JURISDICTION_UNIT)) as JURISDICTION_UNIT_NAME,
-		isd.NAME DEPARTMENT_NAME,
+		-- isd.NAME DEPARTMENT_NAME,
 		isdd.NAME MANAGER_DEPARTMENT_NAME,
 		isu.NAME USER_NAME,
 		pci.NAME Q_COMPETENT_DEPT_NAME,
@@ -257,7 +258,7 @@
 		p.`NAME` as UNITS_PIC_NAME
 		from
 		<include refid="tableName"></include> f
-		LEFT JOIN `qa-gwj-prevention`.vi_department_all isd ON isd.DEPARTMENT_ID = f.DEPARTMENT_ID
+		-- LEFT JOIN `qa-gwj-prevention`.vi_department_all isd ON isd.DEPARTMENT_ID = f.DEPARTMENT_ID
 		LEFT JOIN `qa-gwj-regulatory`.SYS_DEPARTMENT isdd ON isdd.DEPARTMENT_ID = f.MANAGER_DEPARTMENT_ID
 		LEFT JOIN `qa-gwj-prevention`.vi_user_all isu ON isu.USER_ID = f.CONTRACT_PIC
 		LEFT JOIN `qa-gwj-prevention`.oa_department pci ON pci.DEPARTMENT_ID = f.COMPETENT_DEPT_ID
@@ -278,6 +279,8 @@
 		(select GROUP_CONCAT(t.CORP_NAME) from `qa-gwj-prevention`.BUS_CORP_INFO t where FIND_IN_SET(t.CORPINFO_ID, f.MANAGE_NAME)) as MANAGE_CORPS_NAME,
 		( SELECT GROUP_CONCAT( t.NAME ) FROM `qa-gwj-prevention`.oa_department t WHERE FIND_IN_SET( t.DEPARTMENT_ID, f.INVOLVING_CORPS_DEPART_ID ) ) AS INVOLVING_CORPS_DEPART_NAME,
 		(select GROUP_CONCAT(t.CORP_NAME) from `qa-gwj-prevention`.BUS_CORP_INFO t where FIND_IN_SET(t.CORPINFO_ID, f.GROUP_UNIT)) as GROUP_UNIT_NAME,
+		( SELECT GROUP_CONCAT( t.NAME ) FROM `qa-gwj-prevention`.vi_department_all t WHERE FIND_IN_SET( t.DEPARTMENT_ID, f.DEPARTMENT_ID ) ) AS DEPARTMENT_NAME,
+
 		(select GROUP_CONCAT(t.NAME) from (
 		SELECT
 		CONCAT( CONCAT( c.CORP_NAME, '-' ), t.NAME ) NAME  ,t.DEPARTMENT_ID
@@ -285,13 +288,11 @@
 		`qa-gwj-prevention`.OA_DEPARTMENT t
 		LEFT JOIN `qa-gwj-prevention`.bus_corp_info c ON c.CORPINFO_ID = t.CORPINFO_ID
 		) t where FIND_IN_SET(t.DEPARTMENT_ID, f.JURISDICTION_UNIT)) as JURISDICTION_UNIT_NAME,
-		isd.NAME DEPARTMENT_NAME,
 		isdd.NAME MANAGER_DEPARTMENT_NAME,
 		isu.NAME USER_NAME,
 		b.UNITS_NAME as UNITS_NAME,
 		isu.NAME as AIWARNING_PEOPLE,
 		pci.NAME Q_COMPETENT_DEPT_NAME,
-        pcij.NAME Q_DEPARTMENT_NAME,
 		(select count(1) from `qa-gwj-prevention`.BUS_KEYPROJECTCHECK c where c.OUTSOURCED_ID = f.OUTSOURCED_ID) as CHECK_COUNT,
 		(select count(1) from `qa-gwj-regulatory`.BUS_AIWARNING a left join bus_videomanager avid on avid.VIDEOMANAGER_ID = a.VIDEOMANAGER_ID where  avid.OUTSOURCED_ID= f.OUTSOURCED_ID and a.ISDELETE = '0') as AI_COUNT,
 		(select count(1) from `qa-gwj-regulatory`.BUS_VIDEOMANAGER v where v.OUTSOURCED_ID = f.OUTSOURCED_ID and v.ISDELETE = '0') as VIDEO_COUNT,
@@ -299,20 +300,38 @@
 		vua.NAME OUTSOURCED_CREATOR_NAME,
 		ifnull(vac.CORP_NAME,'秦港股份有限公司') CORP_NAME,
 		p.`NAME` as UNITS_PIC_NAME
+		<if test="pd.UserId  != null and pd.UserId   !=''">
+		,ifnull(dbsl.co,0) as co
+		</if>
 		from
 		<include refid="tableName"></include> f
 		left join bus_units b using (UNITS_ID)
-		LEFT JOIN `qa-gwj-prevention`.vi_department_all isd ON isd.DEPARTMENT_ID = f.DEPARTMENT_ID
 		LEFT JOIN `qa-gwj-regulatory`.SYS_DEPARTMENT isdd ON isdd.DEPARTMENT_ID = f.MANAGER_DEPARTMENT_ID
 		LEFT JOIN `qa-gwj-regulatory`.SYS_USER isu ON isu.USER_ID = f.CONTRACT_PIC
         LEFT JOIN `qa-gwj-prevention`.oa_department pcij ON pcij.DEPARTMENT_ID = f.DEPARTMENT_ID
-		LEFT JOIN  `qa-gwj-regulatory`.BUS_AIWARNING_PEOPLE AP ON AP.CONTRACT_PIC_ID = isu.USER_ID
-		LEFT JOIN `qa-gwj-prevention`.vi_department_all ida ON ida.DEPARTMENT_ID = f.DEPARTMENT_ID
-		LEFT JOIN `qa-gwj-prevention`.SYS_USER su ON su.USER_ID = f.CONTRACT_PIC
 		LEFT JOIN `qa-gwj-prevention`.oa_department pci ON pci.DEPARTMENT_ID = f.COMPETENT_DEPT_ID
 		LEFT JOIN `qa-gwj-prevention`.vi_user_all vua on f.CREATOR = vua.USER_ID
 		LEFT JOIN `qa-gwj-regulatory`.vi_all_corp vac on vua.CORPINFO_ID = vac.CORPINFO_ID
 		left join  `qa-gwj-regulatory`.bus_personnelmanagement p on p.PERSONNELMANAGEMENT_ID = f.UNITS_PIC
+		-- 这个判断是隐患管理排序以及隐患管理的角标
+		<if test="pd.UserId  != null and pd.UserId   !=''">
+		left join (SELECT t.OUTSOURCED_ID,COUNT( distinct t.HIDDEN_ID) co  FROM (
+		SELECT
+		f.HIDDEN_ID,ifnull(bo.OUTSOURCED_ID,boai.OUTSOURCED_ID) OUTSOURCED_ID
+		FROM
+		`qa-gwj-prevention`.BUS_KEYPROJECT_HIDDEN f
+		LEFT JOIN `qa-gwj-prevention`.bus_keyprojectcheck keycheck ON keycheck.KEYPROJECTCHECK_ID = f.FOREIGN_ID
+		LEFT JOIN `qa-gwj-regulatory`.BUS_OUTSOURCED bo ON keycheck.OUTSOURCED_ID = bo.OUTSOURCED_ID
+		LEFT JOIN `qa-gwj-regulatory`.BUS_OUTSOURCED boai ON f.FOREIGN_ID = boai.OUTSOURCED_ID
+		LEFT JOIN `qa-gwj-prevention`.BUS_KEYPROJECTPUNISH pu ON pu.HIDDEN_ID = f.HIDDEN_ID
+		WHERE
+		f.ISDELETE = '0'
+		AND f.SOURCE IN ( '4', '5', '1' )
+		AND f.STATE = '2'
+		AND f.CREATOR = #{pd.UserId}
+		AND ifnull(bo.OUTSOURCED_ID,boai.OUTSOURCED_ID) IS NOT NULL
+		) t GROUP BY t.OUTSOURCED_ID ) dbsl on dbsl.OUTSOURCED_ID = f.OUTSOURCED_ID
+		</if>
 		where f.ISDELETE = '0'
 		<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''"><!-- 关键词检索 -->
 			and
@@ -331,6 +350,8 @@
 			b.UNITS_NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
 			or
 			f.UNITS_PIC LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
+			or
+			pcij.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
 			)
 		</if>
 		<if test="pd.OUTSOURCED_NAME != null and pd.OUTSOURCED_NAME !=''">
@@ -372,7 +393,11 @@
 			or f.CREATOR = #{pd.UserId}
 			)
 		</if>
-		ORDER BY f.OPERATTIME DESC
+		ORDER BY
+		<if test="pd.UserId  != null and pd.UserId   !=''">
+			dbsl.co DESC,
+		</if>
+		   f.OPERATTIME DESC
 	</select>
 
 	<select id="getDeptId" resultType="string">
@@ -456,4 +481,206 @@
 		where
 		OUTSOURCED_ID = #{OUTSOURCED_ID}
 	</update>
+
+	<select id="getPUNISHlistPage" parameterType="page" resultType="pd">
+		select
+		f.*,
+		(select GROUP_CONCAT(t.CORP_NAME) from `qa-gwj-prevention`.BUS_CORP_INFO t where FIND_IN_SET(t.CORPINFO_ID, f.INVOLVING_CORPS)) as INVOLVING_CORPS_NAME,
+		(select GROUP_CONCAT(t.CORP_NAME) from `qa-gwj-prevention`.BUS_CORP_INFO t where FIND_IN_SET(t.CORPINFO_ID, f.MANAGE_NAME)) as MANAGE_CORPS_NAME,
+		( SELECT GROUP_CONCAT( t.NAME ) FROM `qa-gwj-prevention`.oa_department t WHERE FIND_IN_SET( t.DEPARTMENT_ID, f.INVOLVING_CORPS_DEPART_ID ) ) AS INVOLVING_CORPS_DEPART_NAME,
+		( SELECT GROUP_CONCAT( t.NAME ) FROM `qa-gwj-prevention`.vi_department_all t WHERE FIND_IN_SET( t.DEPARTMENT_ID, f.DEPARTMENT_ID ) ) AS DEPARTMENT_NAME,
+		(select GROUP_CONCAT(t.NAME) from (
+		SELECT
+		CONCAT( CONCAT( c.CORP_NAME, '-' ), t.NAME ) NAME  ,t.DEPARTMENT_ID
+		FROM
+		`qa-gwj-prevention`.OA_DEPARTMENT t
+		LEFT JOIN `qa-gwj-prevention`.bus_corp_info c ON c.CORPINFO_ID = t.CORPINFO_ID
+		) t where FIND_IN_SET(t.DEPARTMENT_ID, f.JURISDICTION_UNIT)) as JURISDICTION_UNIT_NAME,
+		isdd.NAME MANAGER_DEPARTMENT_NAME,
+		isu.NAME USER_NAME,
+		b.UNITS_NAME as UNITS_NAME,
+		isu.NAME as AIWARNING_PEOPLE,
+		pci.NAME Q_COMPETENT_DEPT_NAME,
+		(select count(1) from `qa-gwj-regulatory`.BUS_AIWARNING a left join bus_videomanager avid on avid.VIDEOMANAGER_ID = a.VIDEOMANAGER_ID where  avid.OUTSOURCED_ID= f.OUTSOURCED_ID and a.ISDELETE = '0') as AI_COUNT,
+		(SELECT count( 1 ) FROM `qa-gwj-prevention`.BUS_KEYPROJECTPUNISH k left join `qa-gwj-prevention`.bus_keyprojectcheck kjc on kjc.KEYPROJECTCHECK_ID = k.KEYPROJECTCHECK_ID WHERE  kjc.OUTSOURCED_ID =f.OUTSOURCED_ID   AND k.ISDELETE = '0' ) as KEY_COUNT,
+		vua.NAME OUTSOURCED_CREATOR_NAME,
+		ifnull(vac.CORP_NAME,'秦港股份有限公司') CORP_NAME,
+		p.`NAME` as UNITS_PIC_NAME
+		,ifnull(cfsl.co,0) as cfcount
+		from
+		<include refid="tableName"></include> f
+		left join bus_units b using (UNITS_ID)
+		LEFT JOIN `qa-gwj-regulatory`.SYS_DEPARTMENT isdd ON isdd.DEPARTMENT_ID = f.MANAGER_DEPARTMENT_ID
+		LEFT JOIN `qa-gwj-regulatory`.SYS_USER isu ON isu.USER_ID = f.CONTRACT_PIC
+		LEFT JOIN `qa-gwj-prevention`.oa_department pcij ON pcij.DEPARTMENT_ID = f.DEPARTMENT_ID
+		LEFT JOIN `qa-gwj-prevention`.oa_department pci ON pci.DEPARTMENT_ID = f.COMPETENT_DEPT_ID
+		LEFT JOIN `qa-gwj-prevention`.vi_user_all vua on f.CREATOR = vua.USER_ID
+		LEFT JOIN `qa-gwj-regulatory`.vi_all_corp vac on vua.CORPINFO_ID = vac.CORPINFO_ID
+		left join  `qa-gwj-regulatory`.bus_personnelmanagement p on p.PERSONNELMANAGEMENT_ID = f.UNITS_PIC
+		left join (SELECT PUN.OUTSOURCED_ID,COUNT( distinct PUN.HIDDEN_ID) co  FROM (
+		SELECT
+		f.HIDDEN_ID,ifnull(bo.OUTSOURCED_ID,boai.OUTSOURCED_ID) OUTSOURCED_ID
+		FROM
+		`qa-gwj-prevention`.BUS_KEYPROJECT_HIDDEN f
+		LEFT JOIN `qa-gwj-prevention`.bus_keyprojectcheck keycheck ON keycheck.KEYPROJECTCHECK_ID = f.FOREIGN_ID
+		LEFT JOIN `qa-gwj-regulatory`.BUS_OUTSOURCED bo ON keycheck.OUTSOURCED_ID = bo.OUTSOURCED_ID
+		LEFT JOIN `qa-gwj-regulatory`.BUS_OUTSOURCED boai ON f.FOREIGN_ID = boai.OUTSOURCED_ID
+		WHERE
+		f.ISDELETE = '0'
+		AND f.SOURCE IN ( '4', '5', '1' )
+		AND ifnull(bo.OUTSOURCED_ID,boai.OUTSOURCED_ID) IS NOT NULL
+		and f.ISPUNISH is null
+		) PUN GROUP BY PUN.OUTSOURCED_ID ) cfsl on cfsl.OUTSOURCED_ID = f.OUTSOURCED_ID
+		where f.ISDELETE = '0'
+		<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
+			and
+			(
+			<!--	根据需求自己加检索条件-->
+			f.OUTSOURCED_NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
+			or
+			b.UNITS_NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
+			or
+			f.UNITS_PIC LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
+			or
+			pcij.NAME LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
+			)
+		</if>
+		and f.PUNISH_THE_PERSON LIKE CONCAT( CONCAT( '%', #{pd.PUNISHUser} ), '%' )
+		AND f.STATE = '1'
+		ORDER BY
+		cfsl.co DESC,
+		f.OPERATTIME DESC
+	</select>
+
+	<select id="jieshuOutSourced" parameterType="pd" resultType="pd">
+		SELECT
+		o.OUTSOURCED_ID,
+		IFNULL( QR.qr, 0 ) qr,
+		IFNULL( ZG.zg, 0 ) zg,
+		IFNULL( YS.ys, 0 ) ys,
+		IFNULL( CF.cf, 0 ) cf,
+		IFNULL( FK.fk, 0 ) fk,
+		IFNULL( AI.ai, 0 ) ai
+		FROM
+		`qa-gwj-regulatory`.bus_outsourced o
+		<!-- 检查待确认 -->
+		LEFT JOIN (
+		SELECT
+		COUNT( 1 ) qr,
+		c.OUTSOURCED_ID
+		FROM
+		`qa-gwj-prevention`.bus_keyprojectcheck c
+		WHERE
+		c.INSPECTION_STATUS = 0
+		AND c.ISDELETE = 0
+		GROUP BY
+		c.OUTSOURCED_ID
+		) QR ON QR.OUTSOURCED_ID = o.OUTSOURCED_ID
+		<!-- 隐患待整改 -->
+		LEFT JOIN (
+		SELECT
+		COUNT( f.OUTSOURCED_ID ) zg,
+		f.OUTSOURCED_ID
+		FROM
+		(
+		SELECT
+		h.HIDDEN_ID,
+		IFNULL( c.OUTSOURCED_ID, h.FOREIGN_ID ) OUTSOURCED_ID
+		FROM
+		`qa-gwj-prevention`.bus_keyproject_hidden h
+		LEFT JOIN `qa-gwj-prevention`.bus_keyprojectcheck c ON h.FOREIGN_ID = c.KEYPROJECTCHECK_ID
+		WHERE
+		h.STATE = 1
+		AND h.ISDELETE = 0
+		) f
+		GROUP BY
+		f.OUTSOURCED_ID
+		) ZG ON ZG.OUTSOURCED_ID = o.OUTSOURCED_ID
+		<!-- 隐患待验收 -->
+		LEFT JOIN (
+		SELECT
+		COUNT( DISTINCT t.OUTSOURCED_ID ) ys,
+		t.OUTSOURCED_ID
+		FROM
+		(
+		SELECT
+		f.HIDDEN_ID,
+		IFNULL( c.OUTSOURCED_ID, f.FOREIGN_ID ) OUTSOURCED_ID
+		FROM
+		`qa-gwj-prevention`.BUS_KEYPROJECT_HIDDEN f
+		LEFT JOIN `qa-gwj-prevention`.bus_keyprojectcheck c ON c.KEYPROJECTCHECK_ID = f.FOREIGN_ID
+		WHERE
+		f.ISDELETE = '0'
+		AND f.SOURCE IN ( '4', '5', '1' )
+		AND f.STATE = '2'
+		) t
+		GROUP BY
+		t.OUTSOURCED_ID
+		) YS ON YS.OUTSOURCED_ID = o.OUTSOURCED_ID
+		<!-- 隐患待处罚 -->
+		LEFT JOIN (
+		SELECT
+		COUNT( DISTINCT t.OUTSOURCED_ID ) cf,
+		t.OUTSOURCED_ID
+		FROM
+		(
+		SELECT
+		f.HIDDEN_ID,
+		IFNULL( c.OUTSOURCED_ID, f.FOREIGN_ID ) OUTSOURCED_ID
+		FROM
+		`qa-gwj-prevention`.BUS_KEYPROJECT_HIDDEN f
+		LEFT JOIN `qa-gwj-prevention`.bus_keyprojectcheck c ON c.KEYPROJECTCHECK_ID = f.FOREIGN_ID
+		WHERE
+		f.ISDELETE = '0'
+		AND f.SOURCE IN ( '4', '5', '1' )
+		AND (f.ISPUNISH is NULL OR f.ISPUNISH = '')
+		) t
+		GROUP BY
+		t.OUTSOURCED_ID
+		) CF on CF.OUTSOURCED_ID = o.OUTSOURCED_ID
+		<!-- 处罚待反馈 -->
+		LEFT JOIN (
+		SELECT
+		COUNT( DISTINCT t.OUTSOURCED_ID ) fk,
+		t.OUTSOURCED_ID
+		FROM
+		(
+		SELECT
+		p.HIDDEN_ID,
+		IFNULL( c.OUTSOURCED_ID, f.FOREIGN_ID ) OUTSOURCED_ID
+		FROM
+		`qa-gwj-prevention`.bus_keyprojectpunish p
+		LEFT JOIN `qa-gwj-prevention`.BUS_KEYPROJECT_HIDDEN f on p.HIDDEN_ID = f.HIDDEN_ID
+		LEFT JOIN `qa-gwj-prevention`.bus_keyprojectcheck c ON c.KEYPROJECTCHECK_ID = f.FOREIGN_ID
+		WHERE
+		p.ISDELETE = '0'
+		AND p.HANDLED = '0'
+		) t
+		GROUP BY
+		t.OUTSOURCED_ID
+		) FK ON FK.OUTSOURCED_ID = o.OUTSOURCED_ID
+		<!-- ai报警待处置 -->
+		LEFT JOIN (
+		SELECT
+		count( 1 ) AS ai ,t.OUTSOURCED_ID
+		FROM
+		`qa-gwj-regulatory`.bus_aiwarning f
+		LEFT JOIN (
+		SELECT DISTINCT
+		vi.VIDEOMANAGER_ID,
+		aip.OUTSOURCED_ID
+		FROM
+		`qa-gwj-regulatory`.bus_aiwarning_people aip
+		LEFT JOIN `qa-gwj-regulatory`.bus_videomanager vi ON vi.OUTSOURCED_ID = aip.OUTSOURCED_ID
+		WHERE
+		aip.ISDELETE = 0
+		AND vi.VIDEOMANAGER_ID IS NOT NULL
+		) t ON t.VIDEOMANAGER_ID = f.VIDEOMANAGER_ID
+		WHERE
+		f.ISDELETE = 0
+		AND f.STATUS = 0
+		GROUP BY t.OUTSOURCED_ID
+		) AI ON AI.OUTSOURCED_ID = o.OUTSOURCED_ID
+		WHERE o.OUTSOURCED_ID=#{OUTSOURCED_ID}
+	</select>
 </mapper>
diff --git a/src/main/resources/mybatis/dsno2/keyProjects/UnitsMapper.xml b/src/main/resources/mybatis/dsno2/keyProjects/UnitsMapper.xml
index 3cdd1980..d2ad20ad 100644
--- a/src/main/resources/mybatis/dsno2/keyProjects/UnitsMapper.xml
+++ b/src/main/resources/mybatis/dsno2/keyProjects/UnitsMapper.xml
@@ -196,19 +196,26 @@
 		f.COUNTY,
 		f.VILLAGE,
 		f.STREET,
-		f.FILEPATH
+		f.FILEPATH,
+		vua.`NAME` CREATOR_NAME,
+		vua.CORP_NAME
 		from
 		<include refid="tableName"></include> f
+		LEFT JOIN `qa-gwj-prevention`.`vi_user_all` vua on f.CREATOR = vua.USER_ID
 		where
 			f.UNITS_ID = #{UNITS_ID}
+			and f.ISDELETE = 0
 	</select>
 
 	<!-- 列表 -->
 	<select id="datalistPage" parameterType="page" resultType="pd">
 		select
-		<include refid="Field"></include>
+		<include refid="Field"></include>,
+		vua.`NAME` CREATOR_NAME,
+		vua.CORP_NAME
 		from
 		<include refid="tableName"></include> f
+		LEFT JOIN `qa-gwj-prevention`.`vi_user_all` vua on f.CREATOR = vua.USER_ID
 		where f.ISDELETE = '0'
 		<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
 			and
diff --git a/src/main/resources/mybatis/dsno2/keyProjects/VideoManagerMapper.xml b/src/main/resources/mybatis/dsno2/keyProjects/VideoManagerMapper.xml
index 2055717f..fb13f861 100644
--- a/src/main/resources/mybatis/dsno2/keyProjects/VideoManagerMapper.xml
+++ b/src/main/resources/mybatis/dsno2/keyProjects/VideoManagerMapper.xml
@@ -282,5 +282,13 @@
 		</if>
 	</select>
 
-
+	<update id="updateAiByOUTSOURCED_ID" parameterType="pd">
+		update
+		<include refid="tableName"></include>
+		set
+		PLATFORMVIDEOMANAGEMENT_ID = null,
+		VIDEO_RESOURCES_ID = null
+		where
+		OUTSOURCED_ID = #{OUTSOURCED_ID}
+	</update>
 </mapper>
diff --git a/src/main/resources/mybatis/dsno2/keyProjects/VideoResourcesMapper.xml b/src/main/resources/mybatis/dsno2/keyProjects/VideoResourcesMapper.xml
index 36775c40..853f35a8 100644
--- a/src/main/resources/mybatis/dsno2/keyProjects/VideoResourcesMapper.xml
+++ b/src/main/resources/mybatis/dsno2/keyProjects/VideoResourcesMapper.xml
@@ -16,6 +16,7 @@
 		f.VIDEO_RESOURCES_ID,
         f.UNITS_ID,
         f.MODEL,
+        f.UNIT_USE,
         f.PERSON,
         f.PHONE,
         f.VIDEONAME,
@@ -32,6 +33,7 @@
         VIDEOURL,
 		UNITS_ID,
         MODEL,
+        UNIT_USE,
         PERSON,
         PHONE,
         CODE,
@@ -50,6 +52,7 @@
 		#{VIDEOURL},
 		#{UNITS_ID},
 		#{MODEL},
+		#{UNIT_USE},
 		#{PERSON},
 		#{PHONE},
 		#{CODE},
@@ -89,6 +92,7 @@
 		set
 		UNITS_ID= #{UNITS_ID},
 		MODEL= #{MODEL},
+		UNIT_USE =  #{UNIT_USE},
 		PERSON =  #{PERSON},
 		REMAKE =  #{REMAKE},
 		PHONE= #{PHONE},
@@ -124,10 +128,13 @@
 	<select id="datalistPage" parameterType="page" resultType="pd">
 		select
 		<include refid="Field"></include>,
+		vua.`NAME` CREATOR_NAME,
+		vua.CORP_NAME,
 		COUNT(v.VIDEOMANAGER_ID) ITEM_COUNT
 		from
 		<include refid="tableName"></include> f
 		LEFT JOIN bus_videomanager v ON f.VIDEO_RESOURCES_ID = v.VIDEO_RESOURCES_ID and v.ISDELETE = '0'
+		LEFT JOIN `qa-gwj-prevention`.`vi_user_all` vua on f.CREATOR = vua.USER_ID
 		where f.ISDELETE = '0'
 		<!--企业端看自己的建的和监管端建的-->
 		<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
@@ -137,13 +144,18 @@
 		<if test="pd.VIDEONAME != null and pd.VIDEONAME != ''"><!-- 关键词检索 -->
 			and
 			(
-			f.VIDEONAME LIKE CONCAT(CONCAT('%', #{pd.VIDEONAME}),'%')
+			f.VIDEONAME LIKE CONCAT(CONCAT('%', #{pd.VIDEONAME}),'%') or (f.CODE LIKE CONCAT(CONCAT('%', #{pd.VIDEONAME}),'%'))
 			)
 		</if>
 		<if test="pd.UNITS_ID != null and pd.UNITS_ID != ''">
 			and f.UNITS_ID = #{pd.UNITS_ID}
 		</if>
-
+		<if test="pd.PERSONNELMANAGEMENT_ID != null and pd.PERSONNELMANAGEMENT_ID != ''">
+			and f.PERSON like CONCAT(CONCAT('%', #{pd.PERSONNELMANAGEMENT_ID}),'%')
+		</if>
+		<if test="pd.UNIT_USE != null and pd.UNIT_USE != ''">
+			and f.UNIT_USE like CONCAT(CONCAT('%', #{pd.UNIT_USE}),'%')
+		</if>
 		GROUP BY f.OPERATTIME desc
 	</select>