Pārlūkot izejas kodu

Merge http://8.137.121.180:10880/longping/subject_gxj

fengjunhao 4 mēneši atpakaļ
vecāks
revīzija
53cf9f6238
26 mainītis faili ar 544 papildinājumiem un 515 dzēšanām
  1. 1 1
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/RptContMapper.java
  2. 4 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubAerialImageMapper.java
  3. 32 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubAerialImageMapper.xml
  4. 6 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/ISubAerialImageService.java
  5. 2 0
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubRptContService.java
  6. 46 2
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubAerialImageServiceImpl.java
  7. 6 2
      projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubRptContServiceImpl.java
  8. 5 1
      projects-service/src/main/java/com/rtrh/projects/modules/system/mapper/WeekAndMonrhFileMapper.java
  9. 16 8
      projects-service/src/main/java/com/rtrh/projects/modules/system/mapper/WeekAndMonrhFileMapper.xml
  10. 2 0
      projects-service/src/main/java/com/rtrh/projects/modules/system/service/WeekAndMonthFileService.java
  11. 26 9
      projects-service/src/main/java/com/rtrh/projects/modules/system/service/impl/WeekAndMonthFileImpl.java
  12. 14 0
      projects/src/main/java/com/rtrh/projects/web/controller/aerial/SubAerialImgController.java
  13. 24 0
      projects/src/main/java/com/rtrh/projects/web/controller/aerial/api/SubAerialImgApiController.java
  14. 103 0
      projects/src/main/java/com/rtrh/projects/web/controller/fileSystem/FileGetController.java
  15. 88 5
      projects/src/main/java/com/rtrh/projects/web/controller/fileSystem/FilePostController.java
  16. 20 0
      projects/src/main/java/com/rtrh/projects/web/controller/projects/api/ProjMonthReportApiController.java
  17. 2 3
      projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoController.java
  18. 2 3
      projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoExportController.java
  19. 114 0
      projects/src/main/webapp/vmodules/aerial/showFgw.jsp
  20. 17 16
      projects/src/main/webapp/vmodules/project/monthReport.jsp
  21. 9 465
      projects/src/main/webapp/vmodules/subject/subInfo/tz/cb.jsp
  22. 1 0
      projects/src/main/webapp/vmodules/subject/subInfo/tz/cb_sum.jsp
  23. 1 0
      projects/src/main/webapp/vmodules/subject/subInfo/tz/main.jsp
  24. 1 0
      projects/src/main/webapp/vmodules/subject/subInfo/tz/main_sum.jsp
  25. 1 0
      projects/src/main/webapp/vmodules/subject/subInfo/tz/new.jsp
  26. 1 0
      projects/src/main/webapp/vmodules/subject/subInfo/tz/new_sum.jsp

+ 1 - 1
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/RptContMapper.java

@@ -47,7 +47,7 @@ public interface RptContMapper {
     @Insert("INSERT INTO sub_rpt_cont (id, kind, begin_date, end_date, content, reason, amt_last, amt_rt, year, week, num_bl, sub_id, sub_plan_id, amt, create_time, logic_delete_flag, create_user_id, kj_month) VALUES (#{r.id}, #{r.kind}, #{r.beginDate}, #{r.endDate}, #{r.content}, #{r.reason}, #{r.amtLast}, #{r.amtRt}, #{r.year}, #{r.week}, #{r.numBl}, #{r.subId}, #{r.subPlanId}, #{r.amt}, #{r.createTime}, #{r.logicDeleteFlag}, #{r.createUserId}, #{r.kjMonth})")
     void save(@Param("r") RptCont rptCont);
 
-    @Update("UPDATE sub_rpt_cont SET reason = #{r.reason}, content = #{r.content}, amt_last = #{r.amtLast}, num_bl = #{r.numBl}, amt = #{r.amt}, sub_plan_id = #{r.subPlanId}, last_update_time = #{r.lastUpdateTime}, last_update_userId = #{lastUpdateUserId} WHERE id = #{r.id}")
+    @Update("UPDATE sub_rpt_cont SET reason = #{r.reason}, content = #{r.content}, amt_last = #{r.amtLast}, num_bl = #{r.numBl}, amt = #{r.amt}, sub_plan_id = #{r.subPlanId}, last_update_time = #{r.lastUpdateTime}, last_update_userId = #{r.lastUpdateUserId} WHERE id = #{r.id}")
     void update(@Param("r") RptCont rptCont);
 
     @Select("select " +

+ 4 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubAerialImageMapper.java

@@ -7,6 +7,8 @@ import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 
+import java.util.List;
+
 /**
  * @author dupengcheng
  * @date 2025/1/9
@@ -33,4 +35,6 @@ public interface SubAerialImageMapper {
     void  update(@Param("s") SubAerialImage image);
     @Insert("INSERT INTO sub_aerial_image (id, sub_id, aerial_date, img_id, remark, create_time, create_user_id, last_update_userId, last_update_time, logic_delete_flag, type) VALUES (#{s.id}, #{s.subId}, #{s.aerialDate}, #{s.imgId}, #{s.remark}, #{s.createTime}, #{s.createUserId}, #{s.lastUpdateUserId}, #{s.lastUpdateTime}, #{s.logicDeleteFlag}, #{s.type})")
     void  save(@Param("s") SubAerialImage image);
+
+    List<SubAerialImage> findBySubId(@Param("subId") String subId, @Param("type") String type);
 }

+ 32 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/mapper/SubAerialImageMapper.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.rtrh.projects.modules.projects.mapper.SubAerialImageMapper">
+
+    <select id="findBySubId" parameterType="string" resultType="com.rtrh.projects.modules.projects.po.SubAerialImage">
+        select
+        id,
+        sub_id as subId,
+        aerial_date as aerialDate,
+        img_id as imgId,
+        remark,
+        create_time as createTime,
+        create_user_id as createUserId,
+        last_update_userId as lastUpdateUserId,
+        last_update_time as lastUpdateTime,
+        logic_delete_flag as logicDeleteFlag,
+        type
+        from sub_aerial_image
+        where
+        logic_delete_flag = 0
+        <if test="subId != null and subId != ''">
+            and sub_id =#{subId}
+        </if>
+        <if test="type != null and type != ''">
+            and type = #{type}
+        </if>
+        <if test="type == null or type == ''">
+            and type is null
+        </if>
+        order by aerial_date asc
+    </select>
+</mapper>

+ 6 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/ISubAerialImageService.java

@@ -10,6 +10,8 @@ public interface ISubAerialImageService {
 
 	List<SubAerialImage> listBySubId(String subId);
 
+	List<SubAerialImage> listByFgwSubId(String subId, String type);
+
 
 	List<SubAerialImage> listBySubIdType(String subId,String type);
 
@@ -20,5 +22,9 @@ public interface ISubAerialImageService {
 
 	void save(List<SubAerialImgVO> list, LoginUserVO loginUserVO);
 
+	void saveFgw(List<SubAerialImgVO> list, LoginUserVO loginUserVO);
+
 	void del(String id);
+
+	void delFgw(String id);
 }

+ 2 - 0
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/SubRptContService.java

@@ -176,4 +176,6 @@ public interface SubRptContService {
 	Page list(Page page, LoginUserVO loginUserVO, SubInfoQueryTzVO queryTzVO);
 
     String selectNewestMonthReportByIdAndKind(String subId, String code);
+
+	RptCont getBySubIdAndMonthFgw(String subId, String year, String week, RptContKindEnum contKindEnum);
 }

+ 46 - 2
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubAerialImageServiceImpl.java

@@ -38,6 +38,12 @@ public class SubAerialImageServiceImpl implements ISubAerialImageService {
 		return subAerialImageDao.find(detachedCriteria);
 	}
 
+	@Override
+	@TargetDataSource("secondary")
+	public List<SubAerialImage> listByFgwSubId(String subId, String type) {
+		return subAerialImageMapper.findBySubId(subId,type);
+	}
+
 	@Override
 	public List<SubAerialImage> listBySubIdType(String subId, String type) {
 		DetachedCriteria detachedCriteria = DetachedCriteria.forClass(SubAerialImage.class);
@@ -53,8 +59,6 @@ public class SubAerialImageServiceImpl implements ISubAerialImageService {
 			}
 
 		}
-
-
 		detachedCriteria.add(criterion);
 		detachedCriteria.addOrder(Order.asc("aerialDate"));
 		return subAerialImageDao.find(detachedCriteria);
@@ -92,6 +96,7 @@ public class SubAerialImageServiceImpl implements ISubAerialImageService {
 			image.setAerialDate(vo.getAerialDate());
 			image.setImgId(vo.getImgId());
 			image.setRemark(vo.getRemark());
+			image.setType("0");
 			image.setLastUpdateTime(new Date());
 			image.setLastUpdateUserId(loginUserVO.getId());
 			subAerialImageMapper.update(image);
@@ -101,6 +106,7 @@ public class SubAerialImageServiceImpl implements ISubAerialImageService {
 			image.setImgId(vo.getImgId());
 			image.setRemark(vo.getRemark());
 			image.setSubId(vo.getSubId());
+			image.setType("0");
 			image.setCreateTime(new Date());
 			image.setCreateUserId(loginUserVO.getId());
 			subAerialImageMapper.save(image);
@@ -134,7 +140,37 @@ public class SubAerialImageServiceImpl implements ISubAerialImageService {
 			subAerialImageDao.saveOrUpdate(image);
 		}
 
+	}
 
+	@Override
+	@TargetDataSource("secondary")
+	public void saveFgw(List<SubAerialImgVO> list, LoginUserVO loginUserVO) {
+
+		for (SubAerialImgVO vo:list){
+			SubAerialImage image = new SubAerialImage();
+			if(StringUtil.isNotEmpty(vo.getId())) {
+				image = subAerialImageMapper.findById(vo.getId());
+				image.setAerialDate(vo.getAerialDate());
+				image.setImgId(vo.getImgId());
+				image.setRemark(vo.getRemark());
+				image.setLastUpdateTime(new Date());
+				image.setType("1");
+				image.setLogicDeleteFlag(vo.getLogicDeleteFlag());
+				image.setLastUpdateUserId(loginUserVO.getId());
+				subAerialImageMapper.update(image);
+			}else {
+				image.setId(Identities.uuid());
+				image.setAerialDate(vo.getAerialDate());
+				image.setImgId(vo.getImgId());
+				image.setRemark(vo.getRemark());
+				image.setSubId(vo.getSubId());
+				image.setCreateTime(new Date());
+				image.setType("1");
+				image.setCreateUserId(loginUserVO.getId());
+				subAerialImageMapper.save(image);
+			}
+
+		}
 
 	}
 
@@ -146,5 +182,13 @@ public class SubAerialImageServiceImpl implements ISubAerialImageService {
 
 	}
 
+	@Override
+	@TargetDataSource("secondary")
+	public void delFgw(String id) {
+		SubAerialImage image = subAerialImageMapper.findById(id);
+		image.setLogicDeleteFlag(1);
+		subAerialImageMapper.update(image);
+
+	}
 
 }

+ 6 - 2
projects-service/src/main/java/com/rtrh/projects/modules/projects/service/impl/SubRptContServiceImpl.java

@@ -412,7 +412,7 @@ public class SubRptContServiceImpl implements SubRptContService {
 		}
 		//保存附件信息
 		if(CollectionUtil.isNotEmpty(vo.getListFile())) {
-			weekAndMonthFileService.saveOrUpdate(vo.getListFile(), loginUserVO.getLoginName(), mainId);
+			weekAndMonthFileService.saveOrUpdateFgw(vo.getListFile(), loginUserVO.getLoginName(), mainId);
 		}
 	}
 
@@ -1977,5 +1977,9 @@ public class SubRptContServiceImpl implements SubRptContService {
 		return sql;
 	}
 
-
+	@Override
+	@TargetDataSource("secondary")
+	public RptCont getBySubIdAndMonthFgw(String subId, String year, String week, RptContKindEnum contKindEnum) {
+		return rptContMapper.getBySubIdAndMonth(subId, year, week, contKindEnum.getCode());
+	}
 }

+ 5 - 1
projects-service/src/main/java/com/rtrh/projects/modules/system/mapper/WeekAndMonrhFileMapper.java

@@ -5,6 +5,7 @@ import com.rtrh.projects.modules.system.po.WeekAndMonthFile;
 import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
 
 import java.util.List;
 
@@ -25,11 +26,14 @@ public interface WeekAndMonrhFileMapper {
             "create_user_id as createUserId,\n" +
             "last_update_userId as lastUpdateUserId,\n" +
             "last_update_time as lastUpdateTime,\n" +
-            "logic_delete_flag as logicDeleteFlag from week_and_month_file where main_id=#{mainId}")
+            "logic_delete_flag as logicDeleteFlag from week_and_month_file where main_id=#{mainId} and logic_delete_flag = 0")
     List<WeekAndMonthFile> listByMainId(@Param("mainId") String mainId);
 
     @Delete("delete from week_and_month_file where id = #{id}")
     void delete(@Param("id") String id);
 
     void saveOrUpdateAll(List<WeekAndMonthFile> list);
+
+    @Update("update week_and_month_file set logic_delete_flag = #{w.logicDeleteFlag} where id = #{w.id}")
+    void update(@Param("w") WeekAndMonthFile w);
 }

+ 16 - 8
projects-service/src/main/java/com/rtrh/projects/modules/system/mapper/WeekAndMonrhFileMapper.xml

@@ -4,14 +4,18 @@
 
 
 <insert id="saveOrUpdateAll" parameterType="java.util.List">
-    insert into kb_teach_together_group_member
+    insert into week_and_month_file
     (
-    id,
-    create_time,
-    create_user_id,
-    last_update_time,
-    last_update_userId,
-    main_id
+        id,
+        create_time,
+        create_user_id,
+        last_update_time,
+        last_update_userId,
+        main_id,
+        file_name,
+        file_addre,
+        file_type,
+        logic_delete_flag
     )
     values
     <foreach collection="list" item="item" index= "index" separator =",">
@@ -21,7 +25,11 @@
         #{item.createUserId},
         #{item.lastUpdateTime},
         #{item.lastUpdateUserId},
-        #{item.mainId}
+        #{item.mainId},
+        #{item.fileName},
+        #{item.fileAddre},
+        #{item.fileType},
+         0
         )
     </foreach>
 </insert>

+ 2 - 0
projects-service/src/main/java/com/rtrh/projects/modules/system/service/WeekAndMonthFileService.java

@@ -7,6 +7,8 @@ import com.rtrh.projects.modules.system.po.WeekAndMonthFile;
 
 public interface WeekAndMonthFileService {
     List<WeekAndMonthFile> listByMainId(String mainId);
+
+    List<WeekAndMonthFile> listByMainIdFgw(String mainId);
     /**
      * 保存
      * @param unit

+ 26 - 9
projects-service/src/main/java/com/rtrh/projects/modules/system/service/impl/WeekAndMonthFileImpl.java

@@ -1,9 +1,12 @@
 package com.rtrh.projects.modules.system.service.impl;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
 import com.rtrh.projects.modules.system.mapper.WeekAndMonrhFileMapper;
+import com.rtrh.projects.util.TargetDataSource;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -28,6 +31,12 @@ public class WeekAndMonthFileImpl implements WeekAndMonthFileService {
         return weekAndMonrhFileDao.listByMainId(mainId);
     }
 
+    @Override
+    @TargetDataSource("secondary")
+    public List<WeekAndMonthFile> listByMainIdFgw(String mainId) {
+        return weekAndMonrhFileMapper.listByMainId(mainId);
+    }
+
     @Override
     @Transactional
     public void saveOrUpdate(List<WeekAndMonthFile> list, String currUserName, String mainId) {
@@ -54,22 +63,30 @@ public class WeekAndMonthFileImpl implements WeekAndMonthFileService {
     @Override
     public void saveOrUpdateFgw(List<WeekAndMonthFile> list, String currUserName, String mainId) {
 
-        List<WeekAndMonthFile> list1= weekAndMonrhFileMapper.listByMainId(mainId);
+        /*List<WeekAndMonthFile> list1= weekAndMonrhFileMapper.listByMainId(mainId);
         for (WeekAndMonthFile weekAndMonthFile:list1){
             weekAndMonrhFileMapper.delete(weekAndMonthFile.getId());
-        }
+        }*/
 
 
         if(CollectionUtil.isNotEmpty(list)) {
+            List<WeekAndMonthFile> newList = new ArrayList<>();
             for (WeekAndMonthFile weekAndMonrhFile :list){
-                weekAndMonrhFile.setId(Identities.uuid());
-                weekAndMonrhFile.setCreateTime(new Date());
-                weekAndMonrhFile.setCreateUserId(currUserName);
-                weekAndMonrhFile.setLastUpdateTime(new Date());
-                weekAndMonrhFile.setLastUpdateUserId(currUserName);
-                weekAndMonrhFile.setMainId(mainId);
+                if (StringUtils.isEmpty(weekAndMonrhFile.getId())){
+                    weekAndMonrhFile.setId(Identities.uuid());
+                    weekAndMonrhFile.setCreateTime(new Date());
+                    weekAndMonrhFile.setCreateUserId(currUserName);
+                    weekAndMonrhFile.setLastUpdateTime(new Date());
+                    weekAndMonrhFile.setLastUpdateUserId(currUserName);
+                    weekAndMonrhFile.setMainId(mainId);
+                    newList.add(weekAndMonrhFile);
+                }else{
+                    weekAndMonrhFileMapper.update(weekAndMonrhFile);
+                }
+            }
+            if (newList.size()>0){
+                weekAndMonrhFileMapper.saveOrUpdateAll(newList);
             }
-            weekAndMonrhFileMapper.saveOrUpdateAll(list);
         }
     }
 

+ 14 - 0
projects/src/main/java/com/rtrh/projects/web/controller/aerial/SubAerialImgController.java

@@ -44,6 +44,20 @@ public class SubAerialImgController {
          return new ModelAndView("/vmodules/aerial/show.jsp");
     }
 
+	@GetMapping("imgShowFgw")
+	public ModelAndView aerialImgShowFgw(ModelMap model, String subId, String imgId) {
+		model.put("subId", subId);
+
+		List<SubAerialImage> list = subAerialImageService.listByFgwSubId(subId,null);
+		model.put("list", list);
+		if(StringUtil.isEmpty(imgId) && CollectionUtil.isNotEmpty(list)) {
+			imgId = list.get(0).getImgId();
+		}
+		model.put("imgId", imgId);
+
+		return new ModelAndView("/vmodules/aerial/showFgw.jsp");
+	}
+
     /**
      * 上传航拍图片的项目列表
      * @return

+ 24 - 0
projects/src/main/java/com/rtrh/projects/web/controller/aerial/api/SubAerialImgApiController.java

@@ -33,6 +33,14 @@ public class SubAerialImgApiController extends BaseController {
 		return message;
 	}
 
+	@PostMapping("listFgw")
+	public Message listFgw(@RequestBody SubAerialImgTypeVO subIdVO) {
+		Message message = new Message();
+		List<SubAerialImage> list = subAerialImageService.listByFgwSubId(subIdVO.getSubId(),subIdVO.getType());
+		message.setData(list);
+		return message;
+	}
+
 	@PostMapping("save")
 	@Log("航拍图片新增修改")
 	public Message save(@RequestBody SubAerialImgVO vo) {
@@ -58,6 +66,14 @@ public class SubAerialImgApiController extends BaseController {
 		return message;
 	}
 
+	@PostMapping("saveFgwNk")
+	@Log("航拍图片保存鸟瞰")
+	public Message saveFgwNk(@RequestBody List<SubAerialImgVO> list) {
+		Message message = new Message();
+		subAerialImageService.saveFgw(list, getCurUser().getLoginUser());
+		return message;
+	}
+
 
 	@PostMapping("del")
 	@Log("航拍图片删除")
@@ -66,4 +82,12 @@ public class SubAerialImgApiController extends BaseController {
 		subAerialImageService.del(idDTO.getId());
 		return message;
 	}
+
+	@PostMapping("delFgw")
+	@Log("航拍图片删除")
+	public Message delFgw(@RequestBody IdDTO idDTO) {
+		Message message = new Message();
+		subAerialImageService.delFgw(idDTO.getId());
+		return message;
+	}
 }

+ 103 - 0
projects/src/main/java/com/rtrh/projects/web/controller/fileSystem/FileGetController.java

@@ -3,6 +3,10 @@ package com.rtrh.projects.web.controller.fileSystem;
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.List;
+import java.util.ResourceBundle;
 
 import javax.imageio.IIOImage;
 import javax.imageio.ImageIO;
@@ -10,6 +14,16 @@ import javax.imageio.ImageWriter;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.rtrh.projects.outapi.result.JsonResult;
+import org.apache.http.HttpEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -128,6 +142,95 @@ public class FileGetController {
 		}
 		return null;
 	}
+
+	/**
+	 * 查看文件
+	 * @param fileId
+	 * @param arg0
+	 * @param arg1
+	 * @return
+	 * @throws Exception
+	 */
+	@RequestMapping(value = "static/file/{fileId}/showfileFgw", method = RequestMethod.GET)
+	public ModelAndView showFileFgw(@PathVariable("fileId") String fileId, Integer width, Integer height,
+								 HttpServletRequest arg0, HttpServletResponse arg1) {
+		handleCrossDomain(arg0, arg1);
+		ByteArrayInputStream is = null;
+		try {
+			if (!StringUtil.isEmpty(fileId)) {
+				try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
+					// 创建一个HttpGet请求
+					ResourceBundle resourceBundle = ResourceBundle.getBundle("config");
+					// 拼接 B 系统的 URL
+					String url = resourceBundle.getString("app.fgw.url");
+					url = url + "/static/file/"+fileId;
+					// 创建一个HttpGet请求
+					HttpGet request = new HttpGet(url);
+					// 发送请求并获取响应
+					try (CloseableHttpResponse response = httpClient.execute(request)) {
+						// 获取响应实体
+						HttpEntity entity = response.getEntity();
+						// 如果响应实体不为空,则输出响应内容
+						if (entity != null) {
+							String responseBody = EntityUtils.toString(entity);
+							FileInfoBO bo = JSONObject.parseObject(JSON.parse(responseBody).toString(), FileInfoBO.class);
+							if (bo != null) {
+								is = new ByteArrayInputStream(bo.getByteData());
+								FileInfoBean fileInfoBean = bo.getFileInfo();
+								FileType fileType = FileSystemEnum.FileType.getFileTypeByKey(fileInfoBean.getFtype());
+								arg1.setContentType(fileType.getMimeType());
+								arg1.setHeader("Content-disposition", "inline;filename=\""
+										+ new String(fileInfoBean.getName().getBytes("utf-8"), "iso-8859-1") + "\"");
+								// 对图片进行压缩处理
+								if (width != null && height != null) {
+									switch (fileType) {
+										case PNG:
+										case JPG:
+										case BMP:
+											ImageWriter imgWrier = ImageIO.getImageWritersByFormatName(fileType.getExtension()).next();
+											ByteArrayOutputStream out = new ByteArrayOutputStream();
+											try {
+												BufferedImage src = ImageIO.read(is);
+												src = Thumbnails.of(src).size(width, height).keepAspectRatio(false).asBufferedImage();
+												imgWrier.reset();
+												imgWrier.setOutput(ImageIO.createImageOutputStream(out));
+												imgWrier.write(new IIOImage(src, null, null));
+											} catch (Exception e) {
+												e.printStackTrace();
+											} finally {
+												out.flush();
+												out.close();
+												is.close();
+											}
+											byte[] data = out.toByteArray();
+											is = new ByteArrayInputStream(data);
+											break;
+										default:
+											break;
+									}
+								}
+								arg1.setHeader(HttpHeaders.CONTENT_LENGTH, String.valueOf(bo.getByteData().length));
+								arg1.setDateHeader("expires", System.currentTimeMillis() + 60000 * 60 * 24 * 7);
+								SystemUtil.writeStream(is, arg1.getOutputStream());
+							} else {
+								arg1.sendError(HttpServletResponse.SC_NOT_FOUND);
+							}
+						}
+					}
+				}
+			}
+		} catch (FileNotFoundException e) {
+			logger.error(e.getMessage());
+		} catch (Exception e) {
+			e.printStackTrace();
+			logger.error(e.getMessage());
+		} finally {
+			if (is != null) {
+				SystemUtil.closeAll(is);
+			}
+		}
+		return null;
+	}
 	
 	
 	

+ 88 - 5
projects/src/main/java/com/rtrh/projects/web/controller/fileSystem/FilePostController.java

@@ -1,15 +1,25 @@
 package com.rtrh.projects.web.controller.fileSystem;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
+import java.time.Duration;
+import java.util.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.rtrh.projects.outapi.result.JsonResult;
+import org.apache.http.HttpEntity;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -149,6 +159,79 @@ public class FilePostController {
 		return msgMap;
 	}
 
+	@RequestMapping(value = "static/file/uploadFgw", method = RequestMethod.POST)
+	@ResponseBody
+	public Map<String, Object> uploadFgw(MultipartHttpServletRequest arg0, HttpServletResponse arg1){
+		HashMap<String, Object> msgMap = new HashMap<>();
+
+		try {
+			Iterator<String> names = arg0.getFileNames();
+			List<FileInfoBO> bos = new ArrayList<>();
+			List<FileInfoBean> beans = new ArrayList<>();
+			while (names.hasNext()) {
+				MultipartFile part = arg0.getFile(names.next());
+				FileInfoBO bo = creatSpaceFileBO(arg0, part);
+				if (bo != null) {
+					bos.add(bo);
+				}
+			}
+
+			if (CollectionUtil.isNotEmpty(bos)) {
+				for (FileInfoBO bo : bos) {
+					// 设置文件为正式文件
+					bo.getFileInfo().setFstatus(FileStatus.Official.getKey());
+					//保存文件到发改委服务器上
+					// 创建ObjectMapper实例用于序列化Java对象为JSON
+					ObjectMapper objectMapper = new ObjectMapper();
+					String jsonRequest = objectMapper.writeValueAsString(bo);
+					try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
+						// 创建一个HttpGet请求
+						ResourceBundle resourceBundle = ResourceBundle.getBundle("config");
+						// 拼接 B 系统的 URL
+						String url = resourceBundle.getString("app.fgw.url");
+						url = url + "/static/file/saveOfficialDocument";
+						HttpPost request = new HttpPost(url);
+						// 设置请求头,指明内容类型为JSON
+						request.setHeader("Content-Type", "application/json");
+						// 设置请求体为JSON字符串
+						StringEntity entity = new StringEntity(jsonRequest);
+						request.setEntity(entity);
+						// 发送请求并获取响应
+						try (CloseableHttpResponse response = httpClient.execute(request)) {
+							// 获取响应实体
+							HttpEntity responseEntity = response.getEntity();
+							// 如果响应实体不为空,则输出响应内容
+							if (responseEntity != null) {
+								String responseBody = EntityUtils.toString(responseEntity);
+								JSONObject jsonObject = JSONObject.parseObject(responseBody);
+								FileInfoBean fileInfoBean = JSONObject.parseObject(jsonObject.get("resultList").toString(), FileInfoBean.class);
+								beans.add(fileInfoBean);
+							}
+						}
+					} catch (IOException e) {
+						e.printStackTrace();
+					}
+					// 转成pdf 穿件一个新的线程
+					String realname = bo.getFileInfo().getName();
+					if (realname.endsWith(".docx") || realname.endsWith(".doc") || realname.endsWith(".xls")
+							|| realname.endsWith(".xlsx") || realname.endsWith(".ppt") || realname.endsWith(".pptx")
+							|| realname.endsWith(".pdf") || realname.endsWith(".txt")) {
+					}
+				}
+			}
+			msgMap.put("success", true);
+			msgMap.put("resultList", beans);
+		} catch (Exception e) {
+			e.printStackTrace();
+			logger.error("", e);
+			msgMap.put("success", false);
+			msgMap.put("resultList", "[]");
+		} finally {
+
+		}
+		return msgMap;
+	}
+
 	/**
 	 * 编辑器上传
 	 * @param arg0

+ 20 - 0
projects/src/main/java/com/rtrh/projects/web/controller/projects/api/ProjMonthReportApiController.java

@@ -4,6 +4,7 @@ import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.Map;
 
+import com.rtrh.projects.modules.projects.mapper.RptContMapper;
 import com.rtrh.projects.modules.projects.po.SubInfo;
 import com.rtrh.projects.modules.projects.service.SubInfoService;
 import com.rtrh.projects.modules.projects.vo.SubRptWeekVO;
@@ -52,6 +53,8 @@ public class ProjMonthReportApiController extends BaseController {
 	@Autowired
 	private RptContDao rptContDao;
 	@Autowired
+	private SubRptContService rptContService;
+	@Autowired
 	private SubInfoService subInfoService;
 
 	@Autowired
@@ -136,6 +139,23 @@ public class ProjMonthReportApiController extends BaseController {
 		return res;
 	}
 
+	@PostMapping("getByInfoFgw")
+	public Message getByInfoFgw(@RequestBody ReportInfoGetVO getVO) {
+		Message res = new Message();
+		try {
+			String   week = String.valueOf(DateUtil.month(getVO.getStartDate()) +1);
+			RptCont old = rptContService.getBySubIdAndMonthFgw(getVO.getSubId(), getVO.getYear(), week, RptContKindEnum.MONTH);
+			if (old!=null){
+				List<WeekAndMonthFile> list=weekAndMonthFileService.listByMainIdFgw(old.getId());
+				res.setData(list);
+			}
+		} catch (Exception e) {
+			logger.error("",e);
+			res.addError(e.getMessage());
+		}
+		return res;
+	}
+
 	/**
 	 * 获取月报报信息
 	 */

+ 2 - 3
projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoController.java

@@ -15,6 +15,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.rtrh.projects.modules.projects.dao.SubMajorMonthDao;
 import com.rtrh.projects.modules.projects.dao.SubSourceDao;
+import com.rtrh.projects.modules.projects.enums.SubInfoStatusEnum;
 import com.rtrh.projects.modules.projects.po.SubInfo;
 import com.rtrh.projects.modules.projects.po.SubSource;
 import com.rtrh.projects.modules.rolemeun.po.SecRole;
@@ -868,9 +869,7 @@ public class SubInfoController extends BaseController {
     public ModelAndView editSubInfo2(String subId, ModelMap model, String queryType) {
         model.put("id", subId);
 
-        /**
-         * 监管单位
-         */
+
         List<JUnit> unit = jUnitService.getUnitByKind(JUnitKind.ZFDW);
         model.addAttribute("unit", unit);
 

+ 2 - 3
projects/src/main/java/com/rtrh/projects/web/controller/subject/SubInfoExportController.java

@@ -106,7 +106,8 @@ public class SubInfoExportController extends BaseController {
     private SubSourceDao subSourceDao;
     @Autowired
     private ISubInduService subInduService;
-
+    @Autowired
+    private HttpServletResponse response;
     /**
      * 导出汇总表
      *
@@ -1110,8 +1111,6 @@ public class SubInfoExportController extends BaseController {
         return excelExportEntity;
     }
 
-    @Resource
-    private HttpServletResponse response;
     /**
      * 4库导出总表
      *

+ 114 - 0
projects/src/main/webapp/vmodules/aerial/showFgw.jsp

@@ -0,0 +1,114 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+         pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
+<!DOCTYPE html>
+<html>
+<head>
+	<script src="${WebSite.asset}/lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
+	<script type="text/javascript" src="${WebSite.asset}/lib/vuejs/2.5.13/vue.js"></script>
+    <link rel="stylesheet" href="${WebSite.asset}/lib/photo-sphere-viewer/index.min.css" />
+	<style type="text/css">
+		.banner {
+			
+		}
+		
+		.banner ul {
+			display: flex;
+			list-style: none;
+		}
+		
+		.banner li {
+			width: 100px;
+			height: 120px;
+		}
+		
+		.banner img {
+			width: 100px;
+			height: 100px;
+		}
+		
+		.banner .choose {
+			border: 1px solid #62c4e9;
+		}
+		[v-cloak] {display: none !important;}
+	</style>
+
+</head>
+<body>
+<div id="viewer" style="width: 98vw; height: 90vh;">还没有航拍图片哟!!</div>
+<div class="banner" id="banner" v-cloak>
+	<ul>
+		<li :title="item.remark" v-for="(item, index ) in imgList" @click="choose(index)" :class="item.choose?'choose':''">
+			<img :src="`${domain }/static/file/`+item.imgId+`/showfileFgw`"/>
+			<span class="date">{{item.date }}</span>
+		</li>
+	</ul>
+</div>
+
+<script type="importmap">
+    {
+        "imports": {
+            "three": "${WebSite.asset}/lib/three/three.module.js",
+            "@photo-sphere-viewer/core": "${WebSite.asset}/lib/photo-sphere-viewer/index.module.js",
+        	"@photo-sphere-viewer/autorotatePlugin" : "${WebSite.asset}/lib/photo-sphere-viewer/plugin/AutorotatePlugin-5.7.2.js"
+		}
+    }
+</script>
+
+<script type="module">
+    import { Viewer } from '@photo-sphere-viewer/core';
+	import { AutorotatePlugin } from '@photo-sphere-viewer/autorotatePlugin';
+	new Vue({
+	  el: "#banner",
+	  data: {
+		imgList: []
+	  },
+	  mounted: function () {
+		  var initIndex = null;
+		  <c:forEach items="${list }" var="li" varStatus="lis">
+			<c:if test="${li.imgId eq imgId}">
+			initIndex = ${lis.index};
+			this.imgList.push({"imgId": "${li.imgId}", "date": '<fmt:formatDate value="${li.aerialDate}" pattern="yyyy-MM-dd"/>',  "remark":"${li.remark}", "choose": true});
+			</c:if>
+			<c:if test="${li.imgId ne imgId}">
+			this.imgList.push({"imgId": "${li.imgId}", "date": '<fmt:formatDate value="${li.aerialDate}" pattern="yyyy-MM-dd"/>',  "remark":"${li.remark}", "choose": false});
+			</c:if>
+			</c:forEach>
+		    if(initIndex != null) {
+    	      this.init360(initIndex);
+			}
+      },	
+	  methods: {
+	    init360: function(index) {
+			var item = this.imgList[index];
+			var img = "${domain}/static/file/"+item.imgId+"/showfileFgw";
+			$("#viewer").html("");
+			var viewer = new Viewer({
+       			container: document.querySelector('#viewer'),
+       			panorama: img,
+    			caption: item.date,
+				plugins: [
+					[AutorotatePlugin, {
+						enabled: true
+					}]
+				]
+				
+			});
+		},
+		choose: function(index) {
+			for(var i =0;i<this.imgList.length;i++) {
+				if(i == index) {
+					this.imgList[i].choose = true;
+				}else {
+					this.imgList[i].choose = false;
+				}
+			}
+			this.init360(index);
+		}
+	  }
+	})
+</script>
+</body>
+</html>

+ 17 - 16
projects/src/main/webapp/vmodules/project/monthReport.jsp

@@ -372,7 +372,7 @@
                                 <span class="delButton" title="删除" @click="del(item)">X</span>
                             </span>
                                     <img @dblclick="showAerial(item)"
-                                         :src="`${domain }/static/file/`+item.imgId+`/showfile`">
+                                         :src="`${domain }/static/file/`+item.imgId+`/showfileFgw`">
                                     <span class="detailbar">
 	        				<span class="time">{{item.aerialDate}}</span>
 	        				<span class="remark" :title="item.remark">{{item.remark}}</span>
@@ -521,7 +521,7 @@
                     }
                 });
 
-                App.common.utils.uploadFile('#upFile', App.getUrl('static/file/upload'), {
+                App.common.utils.uploadFile('#upFile', App.getUrl('static/file/uploadFgw'), {
                     acceptMime: 'image/png,image/jpg,image/jpeg',
                     exts: 'png|jpg|jpeg'
                 }, function (index, file, result) {
@@ -533,12 +533,13 @@
                 });
 
 
-                App.common.utils.uploadFile('#addPic', App.getUrl('/static/file/upload'), {
+                App.common.utils.uploadFile('#addPic', App.getUrl('/static/file/uploadFgw'), {
                     acceptMime: 'image/png,video/mp4,image/jpg,image/jpeg,application/pdf,application/msword,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
                     exts: 'png|jpg|jpeg|pdf|xls|xlsx|doc|docx|mp4'
                 }, null, function (res) {
                     for (var i = 0; i < res.resultList.length; i++) {
                         var pic = {};
+                        console.log(res.resultList[i])
                         pic.fileAddre = res.resultList[i].id;
                         pic.fileName = res.resultList[i].name;
                         pic.fileType = res.resultList[i].ftype;
@@ -548,7 +549,7 @@
                 });
 
 
-                App.common.utils.uploadFile('#addPicPlus', App.getUrl('/static/file/upload'), {
+                App.common.utils.uploadFile('#addPicPlus', App.getUrl('/static/file/uploadFgw'), {
                     acceptMime: 'image/png,video/mp4,image/jpg,image/jpeg,application/pdf,application/msword,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
                     exts: 'png|jpg|jpeg'
                 }, null, function (res) {
@@ -632,7 +633,7 @@
             edit: function (item) {
                 this.editInfo = item;
                 if (item.imgId) {
-                    $("#upFile").attr("src", App.common.utils.imgShow(item.imgId));
+                    $("#upFile").attr("src", App.getUrl("/static/file/"+fileId+"/showfileFgw"));
                 } else {
                     $("#upFile").attr("src", "${WebSite.asset }/css/images/jiahao.png");
                 }
@@ -646,7 +647,7 @@
             del: function (item) {
                 var self = this;
                 App.msg.confirm("确认删除该照片吗?", function () {
-                    App.postJson("/api/aerial/del", {id: item.id}, function (res) {
+                    App.postJson("/api/aerial/delFgw", {id: item.id}, function (res) {
                         if (res.success) {
                             self.getImgList();
                         }
@@ -683,13 +684,13 @@
             getImgList: function () {
                 var self = this;
                 this.imgList = [];
-                App.postJson("/api/aerial/list", {subId: self.yuebaoInfo.subId, type: "0"}, function (res) {
+                App.postJson("/api/aerial/listFgw", {subId: self.yuebaoInfo.subId, type: "0"}, function (res) {
                     if (res.success) {
                         self.imgList = res.data;
                     }
                 })
 
-                App.postJson("/api/aerial/list", {subId: self.yuebaoInfo.subId, type: "1"}, function (res) {
+                App.postJson("/api/aerial/listFgw", {subId: self.yuebaoInfo.subId, type: "1"}, function (res) {
                     if (res.success) {
                         self.imgLsPlus = res.data;
                     }
@@ -908,11 +909,11 @@
                 var mp4Url = "";
                 if (type == 8) {
                     <%--imageUrl= "${WebSite.asset}/css/images/pdf.png";--%>
-                    imageUrl = "${domain}/static/file/" + fileId + "/showfile";
+                    imageUrl = "${domain}/static/file/" + fileId + "/showfileFgw";
                     //$(tempId).attr("realUrl", "${domain}/static/file/"+fileId+"/showfile");
                 } else if (type == null || type == "") {
                 } else if (type == 101 || type == 102 || type == 103 || type == 104 || type == 105) {
-                    imageUrl = "${domain}/static/file/" + fileId + "/showfile";
+                    imageUrl = "${domain}/static/file/" + fileId + "/showfileFgw";
                     //$(tempId).attr("realUrl", "${domain}/static/file/"+fileId+"/showfile");
                 } else if (type == 4 || type == 5) {
                     imageUrl = "${WebSite.asset}/css/images/excel.png";
@@ -921,7 +922,7 @@
                     imageUrl = "${WebSite.asset}/css/images/word.png";
                     realUrl = "/static/file/download/" + fileId + "";
                 } else {
-                    imageUrl = '<video width="100%" height="100%"  controls="controls" autobuffer="autobuffer"  autoplay="autoplay" loop="loop"><source src="${domain}/static/file/' + fileId + '/showfile" type="video/mp4"></source></video>';
+                    imageUrl = '<video width="100%" height="100%"  controls="controls" autobuffer="autobuffer"  autoplay="autoplay" loop="loop"><source src="${domain}/static/file/' + fileId + '/showfileFgw" type="video/mp4"></source></video>';
                 }
                 if (imageUrl) {
                     if (type == 2 || type == 3 || type == 4 || type == 5) {
@@ -972,7 +973,7 @@
             showImagePlus: function (fileId) {
                 var imageUrl = "";
 
-                imageUrl = "${domain}/static/file/" + fileId + "/showfile";
+                imageUrl = "${domain}/static/file/" + fileId + "/showfileFgw";
                 var type = "101";
                 var createTime = "";
                 if (imageUrl) {
@@ -1027,7 +1028,7 @@
                     return "${WebSite.asset}/css/images/pdf.png";
                 } else if (type == null || type == "") {
                 } else if (type == 101 || type == 102 || type == 103 || type == 104 || type == 105) {
-                    return "${domain}/static/file/" + fileId + "/showfile";
+                    return "${domain}/static/file/" + fileId + "/showfileFgw";
                 } else if (type == 4 || type == 5) {
                     return "${WebSite.asset}/css/images/excel.png";
                 } else if (type == 2 || type == 3) {
@@ -1038,7 +1039,7 @@
 
             },
             picShowPlus(fileId) {
-                return "${domain}/static/file/" + fileId + "/showfile";
+                return "${domain}/static/file/" + fileId + "/showfileFgw";
             },
             getData() {
                 var self = this;
@@ -1304,7 +1305,7 @@
                         });
 
 
-                        App.postJson("/api/aerial/saveNk", self.imgLsPlus, function (res) {
+                        App.postJson("/api/aerial/saveFgwNk", self.imgLsPlus, function (res) {
 
                         });
                     },
@@ -1364,7 +1365,7 @@
                 date.setFullYear(row.kj_month.split("年")[0]);
                 date.setMonth(row.kj_month.split("年")[1].split("月")[0] - 1);
                 date.setDate(1);
-                App.postJson("/api/monthReport/getByInfo", {
+                App.postJson("/api/monthReport/getByInfoFgw", {
                     subId: subId,
                     year: year,
                     startDate: date.format("yyyy-MM-dd")

+ 9 - 465
projects/src/main/webapp/vmodules/subject/subInfo/tz/cb.jsp

@@ -201,7 +201,6 @@
         <div>
             <div class="layui-row">
                 <div style="display: flex;margin-bottom: 3px">
-<%--                    <label class="juli" onclick="levelList('abcs','A类','')">--%>
                     <label class="juli">
                         储备项目总数
                         <span class="info-icon" title="A类项目:成熟类项目,可研或初设已编制并完成初审,达到项目等资金的进度">?</span>
@@ -259,140 +258,15 @@
         <div style="height: 20px;"></div>
     </div>
 </template>
-<%--<div id="setReason" style="display: none;">--%>
-<%--    <form class="layui-form" lay-filter="reasonForm">--%>
-<%--        <div class="layui-row">--%>
-<%--            <div class="layui-col-xs6 layui-col-sm6">--%>
-<%--                <div class="layui-form-item">--%>
-<%--                    <label class="layui-form-label">已开工未入库原因:</label>--%>
-<%--                    <div class="layui-input-block">--%>
-<%--                        <textarea name="reasonNoRk" maxlength="200" style="height: 50px;width: 80%;" id="reasonNoRk"--%>
-<%--                                  autocomplete="off" class="layui-textarea"></textarea>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
-<%--            </div>--%>
-<%--            <div class="layui-col-xs6 layui-col-sm6">--%>
-<%--                <div class="layui-form-item">--%>
-<%--                    <label class="layui-form-label">已入库无投资原因:</label>--%>
-<%--                    <div class="layui-input-block">--%>
-<%--                        <textarea name="reasonNoAmt" maxlength="200" style="height: 50px;width: 80%;" id="reasonNoAmt"--%>
-<%--                                  autocomplete="off" class="layui-textarea"></textarea>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
-<%--            </div>--%>
-<%--        </div>--%>
-<%--        <div class="layui-row">--%>
-<%--            <div class="layui-col-xs6 layui-col-sm6">--%>
-<%--                <div class="layui-form-item">--%>
-<%--                    <label class="layui-form-label">是否入统:</label>--%>
-<%--                    <div class="layui-input-block">--%>
-<%--                        <input type="radio" name="isRk" value="0" title="否" checked="checked"/>--%>
-<%--                        <input type="radio" name="isRk" value="1" title="是"/>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
-<%--            </div>--%>
-<%--            <div class="layui-col-xs6 layui-col-sm6">--%>
-<%--                <div class="layui-form-item">--%>
-<%--                    <label class="layui-form-label">未开工建设原因:</label>--%>
-<%--                    <div class="layui-input-block">--%>
-<%--                        <textarea name="reasonNoKg" maxlength="200" style="height: 50px;width: 80%;" id="reasonNoKg"--%>
-<%--                                  autocomplete="off" class="layui-textarea"></textarea>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
-<%--            </div>--%>
-<%--        </div>--%>
-<%--        <div class="layui-row">--%>
-<%--            <div class="layui-col-xs6 layui-col-sm6">--%>
-<%--                <div class="layui-form-item">--%>
-<%--                    <label class="layui-form-label">存在的问题:</label>--%>
-<%--                    <div class="layui-input-block">--%>
-<%--                        <textarea name="reasonq" maxlength="200" style="height: 50px;width: 80%;" id="reasonq"--%>
-<%--                                  autocomplete="off" class="layui-textarea"></textarea>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
-<%--            </div>--%>
-<%--            <div class="layui-col-xs6 layui-col-sm6">--%>
-<%--                <div class="layui-form-item">--%>
-<%--                    <label class="layui-form-label">已开工进度慢原因:</label>--%>
-<%--                    <div class="layui-input-block">--%>
-<%--                        <textarea name="reasonJd" maxlength="200" style="height: 50px;width: 80%;" id="reasonJd"--%>
-<%--                                  autocomplete="off" class="layui-textarea"></textarea>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
-<%--            </div>--%>
-<%--        </div>--%>
-<%--    </form>--%>
-<%--</div>--%>
-
-
-<%--<div id="problem" class="layuimini-main" style="display: none;">--%>
-<%--    <form class="layui-form" lay-filter="problemForm">--%>
-<%--        <div class="layui-row">--%>
-<%--            <div class="layui-col-xs12 layui-col-sm12">--%>
-<%--                <div class="layui-form-item">--%>
-<%--                    <label class="layui-form-label">状态:</label>--%>
-<%--                    <div class="layui-input-block block-width">--%>
-<%--                        <input type="radio" name="statusF" value="2" title="红灯" checked="checked"/>--%>
-<%--                        <input type="radio" name="statusF" value="1" title="黄灯"/>--%>
-<%--                        <input type="radio" name="statusF" value="0" title="绿灯"/>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
-<%--            </div>--%>
-<%--        </div>--%>
-<%--        <div class="layui-row">--%>
-<%--            <div class="layui-col-xs12 layui-col-sm12">--%>
-<%--                <div class="layui-form-item">--%>
-<%--                    <label class="layui-form-label">问题描述:</label>--%>
-<%--                    <div class="layui-input-block block-width">--%>
-<%--                        <textarea name="status_reason" maxlength="400" style="height: 300px;width: 80%;"--%>
-<%--                                  id="problemReason" autocomplete="off" class="layui-textarea"></textarea>--%>
-<%--                    </div>--%>
-<%--                </div>--%>
-<%--            </div>--%>
-<%--        </div>--%>
-<%--        <div class="layui-row">--%>
-<%--            <div class="layui-col-xs12 layui-col-sm12">--%>
-<%--                <div class="layui-form-item">--%>
-<%--                    <label class="layui-form-label">要求解决日期:</label>--%>
-<%--                    <div class="layui-input-block  block-width" style="width: 25%">--%>
-<%--                        <input type="text" id="dateConfirm" name="dateConfirm" autocomplete="off" class="layui-input">--%>
-<%--                    </div>--%>
-<%--                </div>--%>
-<%--            </div>--%>
-<%--        </div>--%>
-<%--    </form>--%>
-<%--</div>--%>
-
-<div id="toBack" class="layuimini-main" style="display: none;">
-    <form class="layui-form" lay-filter="toBackForm">
-        <div class="layui-row">
-            <div class="layui-col-xs12 layui-col-sm12">
-                <div class="layui-form-item">
-                    <label class="layui-form-label" style="width: 100px">退回到状态:</label>
-                    <div class="layui-input-block">
-                        <input type="radio" name="status" value="1" title="项目前期" checked="checked"/>
-                        <input type="radio" name="status" value="6" title="待开工"/>
-                        <input type="radio" name="status" value="7" title="施工中"/>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </form>
-</div>
 
 <script type="text/html" id="subName">
     <span lay-event="toDetail" title="{{d.subName}}">{{d.subName}}</span>
 </script>
 
-<script type="text/html" id="mainName">
-    <span lay-event="toManagerUnit" title="{{d.mainName}}">{{d.mainName}}</span>
-</script>
-
 <script type="text/html" id="unitName">
     <span lay-event="toQcc" title="{{d.unitName}}">{{d.unitName}}</span>
 </script>
 
-
 <script type="text/html" id="date">
     <div title="">
         <div class="line"><span class="qianse">计划开工:</span> <span class="shense">{{d.beginDate}}</span>
@@ -411,25 +285,6 @@
     </div>
 </script>
 
-
-<script type="text/html" id="zjly">
-    <div title="">
-        <span class="lanse">{{d.zjlyName}}</span>
-    </div>
-</script>
-
-
-<script type="text/html" id="abcSpan">
-    {{# if(d.abc == "A") { }}
-    <span style="font-size:16px;font-weigh:500 !important;color: #26B520">{{d.abc||''}}</span>
-    {{#} }}
-    {{# if(d.abc == "B") { }}
-    <span style="font-size:16px;font-weigh:500 !important;color: #1869F6">{{d.abc||''}}</span>
-    {{#} }}
-    {{# if(d.abc == "C") { }}
-    <span style="font-size:16px;font-weigh:500 !important;color: #FF9600">{{d.abc||''}}</span>
-    {{#} }}
-</script>
 <%-- table操作按钮 --%>
 <script type="text/html" id="toolBar">
     <div class="toolBar">
@@ -441,67 +296,6 @@
     </div>
 </script>
 
-<script type="text/html" id="imageDiv">
-    <div style="width:50px;height:50px" onclick="showImage(this)">
-        {{# if(d.fileId != null && d.fileId != '') { }}
-        <img src="${domain}/static/file/{{d.fileId}}/showfile" realUrl="${domain}/static/file/{{d.fileId}}/showfile"
-             width="50px" height="50px"/>
-        {{#} }}
-    </div>
-</script>
-
-
-<script type="text/html" id="offsetLight">
-    {{#if(d.offset >= -30 && d.offset <= -10 ) { }}
-    <span style="color: yellow"><image class="light-rgb"
-                                       src="${WebSite.asset}/css/images/bigScreen/light-yellow.png"></image></span>
-    {{#} else if(d.offset < -30) { }}
-    <span style="color: red"><image class="light-rgb"
-                                    src="${WebSite.asset}/css/images/bigScreen/light-red.png"></image></span>
-    {{#}}}
-    {{#if(d.offset !="" || d.offset != undefined || d.offset != null) { }}
-    {{#if(d.offset<0) { }}
-    <span class="grey">{{d.offset||"--"}}%</span>
-    {{# } }}
-    {{#if(d.offset>0) { }}
-    <span class="green">{{d.offset||"--"}}%</span>
-    {{# } }}
-    {{# } }}
-</script>
-
-
-<script type="text/html" id="openLight">
-
-
-    {{# var computedPer1 = function(beginDate){
-
-    var beginDate =new Date(beginDate);
-    var beginDate7 =new Date(beginDate);
-    var beginDate3 =new Date(beginDate);
-    beginDate7.setDate(beginDate7.getDate()-7);
-    beginDate3.setDate(beginDate3.getDate()-3);
-
-    var newDate =  new Date();
-    if(newDate.getTime() >=beginDate7.getTime()  && newDate.getTime() <=beginDate3.getTime()){
-    return "yellow";
-    }else if(newDate.getTime() >=beginDate3.getTime() && newDate.getTime()  <=  beginDate.getTime()  ){
-    return "red";
-    }else{
-    return "-";
-    }
-    };
-    }}
-
-    {{#if(computedPer1(d.beginDate)=="yellow" ) { }}
-    <span style="color: yellow">  <image style="width:20px;height:20px;margin: auto;"
-                                         src="${WebSite.asset}/css/images/bigScreen/light-yellow.png"></image></span>
-    {{#} else if(computedPer1(d.beginDate)=="red") { }}
-    <span style="color: red">   <image style="width:20px;height:20px;margin: auto;"
-                                       src="${WebSite.asset}/css/images/bigScreen/light-red.png"></image></span>
-    {{#}}}
-</script>
-
-
 <script>
     layui.use('element', function () {
         let element = layui.element;
@@ -526,7 +320,7 @@
             sort: {field: "abc", type: ""},
             pageSize: 10,
             showExport: false,
-            moveDbParam:{
+            moveDbParam: {
                 status: "",
                 id: "",
                 statusName: ""
@@ -555,8 +349,8 @@
                 param.statusName = statusMap[param.status] || "未知状态";
                 let self = this;
                 self.closeAllLayers();
-                App.msg.confirm(`是否移入`+param.statusName+`库?`, () => {
-                    App.postJson("/api/subject/subInfo/moveDb", { id: param.id, status: param.status }, (res) => {
+                App.msg.confirm(`是否移入` + param.statusName + `库?`, () => {
+                    App.postJson("/api/subject/subInfo/moveDb", {id: param.id, status: param.status}, (res) => {
                         if (res.success) {
                             App.msg.success("移入成功");
                             self.getData()
@@ -630,102 +424,13 @@
                 if (params) {
                     layui.form.val("searchForm", JSON.parse(params));
                 }
-                <%--if(${isHydw}) {--%>
-                <%--	this.light = layui.xmSelect.render({--%>
-                <%--		el: "#light",--%>
-                <%--		language:'zn',--%>
-                <%--		data: [--%>
-                <%--			{value: '0', name:'绿灯'},--%>
-                <%--			{value: '1', name:'黄灯'},--%>
-                <%--			{value: '2', name:'红灯'}--%>
-                <%--		]--%>
-                <%--	})--%>
-                <%--}--%>
+
                 this.getData();
                 window.toDetail = this.toDetail;
                 window.levelList = this.levelList;
-                window.showImage = this.showImage;
                 $(".hiddenParams").show();
             },
-            leaderSupervise: function (obj) {
 
-                App.openLayer({
-                    title: "督办信息",
-                    content: App.getUrl("/meetingRecords/leaderMeeting?subId=" + obj.data.id),
-                    height: "600",
-                    width: "800"
-                })
-
-            },
-            setIsNew: function (obj) {
-                var self = this;
-                App.msg.confirm("是否移入新建库?", function () {
-                    App.postJson("/api/subject/subInfo/setIsNew", {subId: obj.data.id}, function (res) {
-                        if (res.success) {
-                            App.msg.success("设置成功");
-                            self.getData();
-                            layer.close(index);
-                        }
-                    });
-                });
-            },
-            showImage: function (that) {
-                var imageUrl = $(that).find("img").eq(0).attr("realUrl");
-                if (imageUrl) {
-                    // layer.open({
-                    // 	type: 2,
-                    // 	content: imageUrl,
-                    // 	area: ['500px', '1000px'],
-                    // 	offset: 'auto',
-                    // 	success: function(obj,index){
-                    // 		layer.full(index);
-                    // 	}
-                    // })
-                    layer.photos({
-                        photos: {
-                            "title": "",
-                            "id": "",
-                            "start": 0,
-                            "data": [
-                                {
-                                    "alt": "",
-                                    "pid": "",
-                                    "src": imageUrl,
-                                    "thumb": imageUrl
-                                }
-                            ]
-                        },
-                        anim: 5,
-                        closeBtn: "1",
-                        success: function () {
-                            //以鼠标位置为中心的图片滚动放大缩小
-                            $(document).on("mousewheel", ".layui-layer-photos", function (ev) {
-                                var oImg = this;
-                                var ev = event || window.event;//返回WheelEvent
-                                //ev.preventDefault();
-                                var delta = ev.detail ? ev.detail > 0 : ev.wheelDelta < 0;
-                                var ratioL = (ev.clientX - oImg.offsetLeft) / oImg.offsetWidth,
-                                    ratioT = (ev.clientY - oImg.offsetTop) / oImg.offsetHeight,
-                                    ratioDelta = !delta ? 1 + 0.1 : 1 - 0.1,
-                                    w = parseInt(oImg.offsetWidth * ratioDelta),
-                                    h = parseInt(oImg.offsetHeight * ratioDelta),
-                                    l = Math.round(ev.clientX - (w * ratioL)),
-                                    t = Math.round(ev.clientY - (h * ratioT));
-                                $(".layui-layer-photos").css({
-                                    width: w, height: h
-                                    , left: l, top: t
-                                });
-                                $("#layui-layer-photos").css({width: w, height: h});
-                                $("#layui-layer-photos>img").css({width: w, height: h});
-                            });
-                        }
-                        , end: function () { //销毁回调
-
-                        }
-
-                    });
-                }
-            },
             showMore: function () {
                 this.showMoreFlag = !this.showMoreFlag;
                 if (this.showMoreFlag) {
@@ -806,7 +511,7 @@
                     autoSort: false,
                     initSort: self.sort,
                     cols: [[
-                        {type: 'numbers', align: 'center', width: 44, title: '序号',fixed: 'left'},
+                        {type: 'numbers', align: 'center', width: 44, title: '序号', fixed: 'left'},
                         {field: 'subName', fixed: 'left', title: '项目名称', width: 200, templet: '#subName'},
                         {field: 'subjectName', title: '项目所在地', width: 100},
                         {field: 'content', title: '项目建设内容', minWidth: 300},
@@ -829,7 +534,7 @@
                 });
 
                 layui.table.on('tool(' + this.tableName + ')', obj => {
-                    const { event } = obj;
+                    const {event} = obj;
                     if (typeof self[event] === 'function') {
                         self[event](obj);
                     } else {
@@ -842,42 +547,7 @@
                     self.getData();
                 });
             },
-            toBack: function (obj) {
-                layer.open({
-                    type: 1,
-                    title: "退回",
-                    content: $("#toBack"),
-                    area: ['600px', ''],
-                    btn: ["保存", "取消"],
-                    yes: function (index) {
-                        var data = layui.form.val("toBackForm");
-                        var status = data.status;
-                        if (status != undefined) {
-                            if (parseInt(obj.data.status) <= parseInt(data.status)) {
-                                App.msg.warn("只能退回下级状态,请检查!!!!");
-                                return;
-                            }
-
-                        }
-                        App.postJson("/api/subject/subInfo/toTemp", {
-                            subId: obj.data.id,
-                            status: data.status
-                        }, function (res) {
-                            if (res.success) {
-                                layer.msg("成功", {icon: 6, time: 1000});
-                                //
-                                window.location.href = App.getUrl("subject/subInfo/projTz?type=4");
-                            }
-                        });
-
-                    },
-                    close: function (index) {
-                        layer.close(index);
-                    }
-                })
-            },
-
-            move (obj) {
+            move(obj) {
                 this.moveDbParam.id = obj.data.id
                 const formTemplate = `<div class="layui-form" style="padding: 20px;">
                 <div class="layui-form-item">
@@ -901,30 +571,17 @@
                     <button type="button" class="layui-btn layui-btn-primary layui-border" onclick="vm.closeAllLayers()">取消</button>
                     <button type="button" class="layui-btn moveConfirm" onclick="vm.confirmMove()">确认移入</button>
                 </div>
-            </div>
-        `;
+            </div>`;
                 layer.open({
                     type: 1,
                     title: '移入',
                     content: formTemplate,
                     area: ['350px', '300px'],
-                    success: function(layero, index){
+                    success: function (layero, index) {
                         layui.form.render();
                     }
                 });
             },
-            isHide: function (obj) {
-                var self = this;
-                App.msg.confirm("是否移入在建库?", function () {
-                    App.postJson("/api/subject/subInfo/setIsHide", {subId: obj.data.id}, function (res) {
-                        if (res.success) {
-                            App.msg.success("设置成功");
-                            self.getData();
-                            layer.close(index);
-                        }
-                    });
-                });
-            },
             loadPage: function (totalCount) {
                 var self = this;
                 layui.laypage.render({
@@ -942,72 +599,6 @@
                     }
                 });
             },
-            // yearPlan: function (obj) {
-            //     window.location.href = App.getUrl("amtPlan/detail?subId=" + obj.data.id);
-            // },
-            // setSubReason: function (obj) {
-            //     var self = this;
-            //     layui.form.val("reasonForm", obj.data);
-            //     layer.open({
-            //         type: 1,
-            //         title: "项目原因录入",
-            //         content: $("#setReason"),
-            //         area: ['880px', '560px'],
-            //         btn: ["保存", "取消"],
-            //         yes: function (index) {
-            //             var reason = layui.form.val("reasonForm");
-            //             reason.subId = obj.data.id;
-            //             App.postJson("/api/subject/subInfo/setSubReason", reason, function (res) {
-            //                 if (res.success) {
-            //                     App.msg.success("设置成功");
-            //                     self.getData();
-            //                     layer.close(index);
-            //                 }
-            //             });
-            //         },
-            //         close: function (index) {
-            //             layer.close(index);
-            //         }
-            //     })
-            // },
-            // problem: function (obj) {
-            //     var self = this;
-            //     obj.data.status_reason = "";
-            //     layui.form.val("problemForm", obj.data);
-            //     layer.open({
-            //         type: 1,
-            //         title: "问题督办",
-            //         content: $("#problem"),
-            //         area: ['800px', '600px'],
-            //         btn: ["保存", "取消"],
-            //         yes: function (index) {
-            //             var reason = layui.form.val("problemForm");
-            //             reason.subId = obj.data.id;
-            //
-            //             if (reason.statusF == "2" || reason.statusF == "1") {
-            //                 if (reason.status_reason == "" || reason.status_reason == undefined) {
-            //                     layer.msg("红灯,黄灯必须输入原因");
-            //                     return;
-            //                 }
-            //             }
-            //             App.postJson("/api/subject/subInfo/setStatus", {
-            //                 subId: obj.data.id,
-            //                 statusFgw: reason.statusF,
-            //                 reason: reason.status_reason,
-            //                 dateConfirm: reason.dateConfirm
-            //             }, function (res) {
-            //                 if (res.success) {
-            //                     App.msg.success("设置成功");
-            //                     self.getData();
-            //                     layer.close(index);
-            //                 }
-            //             });
-            //         },
-            //         close: function (index) {
-            //             layer.close(index);
-            //         }
-            //     })
-            // },
             exportExcel: function () {
                 var param = this.getSearchParams();
                 App.common.utils.downFile(App.getUrl("subInfoExport/exportSumExcel"), "POST", param, "项目情况表.xlsx", "导出失败");
@@ -1030,10 +621,6 @@
                 var param = this.getSearchParams();
                 App.common.utils.downFile(App.getUrl("subInfoExport/exportSchedulingExcel"), "POST", param, "项目调度表.xlsx", "导出失败");
             },
-            /* exportExcel2: function(){
-                var param = this.getSearchParams();
-                 App.common.utils.downFile(App.getUrl("subInfoExport/exportExcelTz"),"POST", param,"项目详情信息表.xlsx", "导出失败");
-            }, */
             exportMoreExcel: function () {
                 top.window.getSearchParams = this.getSearchParams;
                 App.openLayer({
@@ -1046,18 +633,6 @@
             toQcc: function (obj) {
                 window.open('https://www.qcc.com/web/search?key=' + obj.data.unitName, '_blank')
             },
-
-            toManagerUnit: function (obj) {
-                //详情
-                var index = layer.open({
-                    type: 2,
-                    title: '',
-                    area: ['1000px', '800px'],
-                    // /subject/subInfo/editSubInfo
-                    content: App.getUrl("/subject/subInfo/manageUnit?subId=" + obj.data.id + "&queryType=3"),
-                });
-                layui.layer.full(index);
-            },
             toDetail: function (obj) {
                 //详情
                 var index = layer.open({
@@ -1068,16 +643,6 @@
                 });
                 layui.layer.full(index);
             },
-            /*            toDetail: function (obj) {
-                            //详情
-                            var index = layer.open({
-                                type: 2,
-                                title: '',
-                                area: ['1000px', '800px'],
-                                content: App.getUrl("/subject/subInfo/detailView?layer=true&subId=" + obj.data.id + "&lastUrl=" + window.location.href),
-                            });
-                            layui.layer.full(index);
-                        },*/
             levelList: function (field, title, val) {
                 //详情
                 var param = field + "," + title + "," + val
@@ -1090,30 +655,9 @@
                 });
                 //top.layer.full(index);
             },
-            // print: function (obj) {
-            //     window.open(App.getUrl("/subject/apply/downPdf?subId=" + obj.data.id));
-            // },
             toEditSubInfo: function (obj) {
                 window.location.href = App.getUrl("/subject/subInfo/editSubInfo2?subId=" + obj.data.id + "&queryType=3");
             },
-            // preNew: function (obj) {
-            //     window.location.href = App.getUrl("/subPreNew/todo?subId=" + obj.data.id);
-            // },
-            // toTh: function (obj) {
-            //     if (obj.data.statusJh == null || obj.data.statusJh == '0' || obj.data.statusJh == '1') {
-            //         App.msg.confirm("是否需要退回到暂存状态?", function () {
-            //             App.postJson("/api/subject/subInfo/toTemp", {subId: obj.data.id, status: "0"}, function (res) {
-            //                 if (res.success) {
-            //                     layer.msg("成功", {icon: 6, time: 1000});
-            //                     //
-            //                     window.location.href = App.getUrl("subject/subInfo/projTz");
-            //                 }
-            //             });
-            //         })
-            //     } else {
-            //         App.msg.warn("已做过开工申报,需要走变更流程");
-            //     }
-            // },
             search: function () {
                 var param = layui.form.getValue("searchForm");
                 window.localStorage.setItem(this.cacheName, JSON.stringify(param));

+ 1 - 0
projects/src/main/webapp/vmodules/subject/subInfo/tz/cb_sum.jsp

@@ -770,6 +770,7 @@
                     App.postJson("/api/subject/subInfo/moveDb", { id: param.id, status: param.status }, (res) => {
                         if (res.success) {
                             App.msg.success("移入成功");
+                            self.getData()
                         } else {
                             App.msg.error(res.message || "移入失败,请重试");
                         }

+ 1 - 0
projects/src/main/webapp/vmodules/subject/subInfo/tz/main.jsp

@@ -736,6 +736,7 @@
                     App.postJson("/api/subject/subInfo/moveDb", { id: param.id, status: param.status }, (res) => {
                         if (res.success) {
                             App.msg.success("移入成功");
+                            self.getData()
                         } else {
                             App.msg.error(res.message || "移入失败,请重试");
                         }

+ 1 - 0
projects/src/main/webapp/vmodules/subject/subInfo/tz/main_sum.jsp

@@ -734,6 +734,7 @@
                     App.postJson("/api/subject/subInfo/moveDb", { id: param.id, status: param.status }, (res) => {
                         if (res.success) {
                             App.msg.success("移入成功");
+                            self.getData()
                         } else {
                             App.msg.error(res.message || "移入失败,请重试");
                         }

+ 1 - 0
projects/src/main/webapp/vmodules/subject/subInfo/tz/new.jsp

@@ -672,6 +672,7 @@
                     App.postJson("/api/subject/subInfo/moveDb", { id: param.id, status: param.status }, (res) => {
                         if (res.success) {
                             App.msg.success("移入成功");
+                            self.getData()
                         } else {
                             App.msg.error(res.message || "移入失败,请重试");
                         }

+ 1 - 0
projects/src/main/webapp/vmodules/subject/subInfo/tz/new_sum.jsp

@@ -737,6 +737,7 @@
                     App.postJson("/api/subject/subInfo/moveDb", { id: param.id, status: param.status }, (res) => {
                         if (res.success) {
                             App.msg.success("移入成功");
+                            self.getData()
                         } else {
                             App.msg.error(res.message || "移入失败,请重试");
                         }