wangtong vor 1 Jahr
Ursprung
Commit
34a1210ef2

+ 2 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZEngineeringCivilController.java

@@ -45,6 +45,7 @@ public class ZEngineeringCivilController extends BaseController {
     @Resource
     private IZEngineeringReviewService izEngineeringReviewService;
 
+
     /**
      * 查询民用工程列表
      */
@@ -187,7 +188,7 @@ public class ZEngineeringCivilController extends BaseController {
     @Log(title = "民用工程", businessType = BusinessType.OTHER)
     @PostMapping("/CivilReview")
     public R Civilinsert( @RequestBody ZEngineeringReviewBo zEngineeringReviewBo) {
-        return R.ok(izEngineeringReviewService.Civilinsert(zEngineeringReviewBo));
+        return R.ok(iZEngineeringCivilService.Civilinsert(zEngineeringReviewBo));
     }
 
 

+ 6 - 6
ruoyi-admin/src/main/resources/application-dev.yml

@@ -182,17 +182,17 @@ sms:
     territory: ap-guangzhou
 huawei:
   obs:
-    ak: TEAGJ1GSLMIJVDIX914U
-    sk: jKm4WzEoLaMKVpzQL7jxQaFqgh4rJubK02bLcB5H
+    ak: KZVKAAUQENCKITHZ3EWO
+    sk: B7tLa82CJ5EdNOh5a2G9i77sPYh8skcydTk3C8sb
     upload:
-      endPoint: obs.cn-south-1.myhuaweicloud.com
+      endPoint: obs.cn-north-4.myhuaweicloud.com
     access:
-      endPoint: https://zdszcs.obs.cn-south-1.myhuaweicloud.com
-    bucketName: zdszcs
+      endPoint: https://szrqgz1.obs.cn-north-4.myhuaweicloud.com
+    bucketName: szrqgz1
 tableNames:
   #动态表名月分(该处为需要动态表的表名,号分割)
   Month: z_engineering_review,z_engiineering_photo,z_engineering_info,z_engineering_material,z_engineering_node
   #动态表名年度
   Year: z_engineering_review
 # 临时文件路径
-filePath: D:/
+filePath: D:/

+ 1 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/obs/ObsService.java

@@ -161,7 +161,7 @@ public class ObsService {
 
         ByteBuffer buffer = ByteBuffer.allocate(4096);
         WritableByteChannel wchannel = Channels.newChannel(new FileOutputStream(new File(localFilePath + "/" + fileName)));
-
+        System.out.println(localFilePath + "/" + fileName);
         while (rchannel.read(buffer) != -1) {
             buffer.flip();
             wchannel.write(buffer);

+ 1 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/mapper/ZEngineeringCivilMapper.java

@@ -26,4 +26,5 @@ public interface ZEngineeringCivilMapper extends BaseMapperPlus<ZEngineeringCivi
     List<areaWillDoneVo> getAreaCompletionInformationList(@Param("idList") List idList,@Param("enginCycle")String enginCycle);
     areaStatusVo getsumStatus(String enginCycle);
 
+    areaMessageVo getHouseMessage(String Id);
 }

+ 2 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZEngiineeringPhotoService.java

@@ -4,6 +4,7 @@ import com.ruoyi.common.core.domain.PageQuery;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.zdsz.domain.ZEngiineeringPhoto;
 import com.ruoyi.zdsz.domain.bo.ZEngiineeringPhotoBo;
+import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringInfoBo;
 import com.ruoyi.zdsz.domain.vo.ZEngiineeringPhotoVo;
 
@@ -69,4 +70,5 @@ public interface IZEngiineeringPhotoService {
 
     Boolean deleteWithValidByurls(String url);
     Boolean deleteWithValid(ZEngiineeringPhoto bo);
+    void write(ZEngineeringCivilBo zEngineeringCivilBo);
 }

+ 7 - 1
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZEngineeringCivilService.java

@@ -3,6 +3,7 @@ package com.ruoyi.zdsz.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.zdsz.domain.ZEngineeringCivil;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
+import com.ruoyi.zdsz.domain.bo.ZEngineeringReviewBo;
 import com.ruoyi.zdsz.domain.vo.ZEngineeringCivilVo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -63,5 +64,10 @@ public interface IZEngineeringCivilService {
     TableDataInfo<areaStatusVo> getAreaCompletionInformationList(ZEngineeringCivilBo bo,PageQuery po);
     areaStatusVo getsumStatus(ZEngineeringCivilBo bo);
     int   batchReview (ZEngineeringCivilBo bo, ZEngineeringNodeBo zEngineeringNodeBo);
-    Boolean updateCiviiStatus(ZEngineeringCivil zEngineeringCivil);
+    /**
+     * 审核并保存图片至服务器文件夹
+     * @param zEngineeringReviewBo
+     * @return
+     */
+    int Civilinsert(ZEngineeringReviewBo zEngineeringReviewBo);
 }

+ 11 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZEngineeringNodeService.java

@@ -4,7 +4,10 @@ import com.ruoyi.common.core.domain.PageQuery;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.zdsz.domain.ZEngineeringCivil;
 import com.ruoyi.zdsz.domain.ZEngineeringNode;
+import com.ruoyi.zdsz.domain.ZEngineeringReview;
+import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
+import com.ruoyi.zdsz.domain.bo.ZEngineeringReviewBo;
 import com.ruoyi.zdsz.domain.vo.ZEngineeringNodeVo;
 
 import java.util.Collection;
@@ -30,6 +33,7 @@ public interface IZEngineeringNodeService {
      * @return
      */
     ZEngineeringNodeBo query(ZEngineeringNodeBo bo) ;
+    ZEngineeringNodeBo Userquery(ZEngineeringNodeBo bo,String username);
     /**
      * 获取工程节点列表
      * @param id
@@ -89,5 +93,12 @@ public interface IZEngineeringNodeService {
      */
      int batchReview(List<ZEngineeringCivil> zEngineeringCivilList,ZEngineeringNodeBo zEngineeringNodeBo,String userId);
 
+    /**
+     * 审核下载图片
+     * @param
+     * @return
+     */
+    int Civilinsert(List<ZEngineeringCivil> zEngineeringCivilList,ZEngineeringNodeBo bo,String UserId);
+
 
 }

+ 1 - 1
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZEngineeringReviewService.java

@@ -44,7 +44,7 @@ public interface IZEngineeringReviewService {
      */
     Boolean insertByBo(ZEngineeringReviewBo bo);
     Boolean insert(ZEngineeringReviewBo bo);
-    Boolean Civilinsert(ZEngineeringReviewBo bo);
+    Boolean Civilinsert(ZEngineeringCivil zEngineeringCivil,ZEngineeringReviewBo bo);
 
     /**
      * 批量插入

+ 124 - 40
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngiineeringPhotoServiceImpl.java

@@ -11,16 +11,21 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.obs.ObsService;
 import com.ruoyi.zdsz.domain.ZEngiineeringPhoto;
 import com.ruoyi.zdsz.domain.bo.ZEngiineeringPhotoBo;
+import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringInfoBo;
 import com.ruoyi.zdsz.domain.vo.ZEngiineeringPhotoVo;
 import com.ruoyi.zdsz.mapper.ZEngiineeringPhotoMapper;
 import com.ruoyi.zdsz.service.IZEngiineeringPhotoService;
 import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.io.File;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -33,16 +38,18 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor
 @Service
 public class ZEngiineeringPhotoServiceImpl implements IZEngiineeringPhotoService {
+    @Value("${filePath}")
+    private String filePath;
 
     private final ZEngiineeringPhotoMapper baseMapper;
     @Resource
-   private ObsService obsService;
+    private ObsService obsService;
 
     /**
      * 查询照片
      */
     @Override
-    public ZEngiineeringPhotoVo queryById(String id){
+    public ZEngiineeringPhotoVo queryById(String id) {
         return baseMapper.selectVoById(id);
     }
 
@@ -50,11 +57,11 @@ public class ZEngiineeringPhotoServiceImpl implements IZEngiineeringPhotoService
     @DynamicName(spel = "#bo.createTime")
 //    @Async("threadPoolTaskExecutor")
     public List<String> queryList(ZEngineeringInfoBo bo) {
-        List<String> list =new ArrayList<>();
+        List<String> list = new ArrayList<>();
         LambdaQueryWrapper<ZEngiineeringPhoto> lqw = Wrappers.lambdaQuery();
         lqw.eq(StringUtils.isNotBlank(bo.getId()), ZEngiineeringPhoto::getParentId, bo.getId()).orderByDesc(ZEngiineeringPhoto::getCreateTime);
-        List<ZEngiineeringPhoto> zEngiineeringPhotoList= baseMapper.selectList(lqw);
-        zEngiineeringPhotoList.stream().forEach( item->{
+        List<ZEngiineeringPhoto> zEngiineeringPhotoList = baseMapper.selectList(lqw);
+        zEngiineeringPhotoList.stream().forEach(item -> {
             list.add(item.getPicUrl());
         });
         return list;
@@ -103,11 +110,12 @@ public class ZEngiineeringPhotoServiceImpl implements IZEngiineeringPhotoService
 
     /**
      * 批量插入
+     *
      * @param bo
      * @return
      */
     @Override
-    @Transactional(rollbackFor=Exception.class)
+    @Transactional(rollbackFor = Exception.class)
     @DynamicName(spel = "#bo[0].createTime")
 //    @Async("threadPoolTaskExecutor")
     public Boolean insertBatch(List<ZEngiineeringPhoto> bo) {
@@ -133,42 +141,39 @@ public class ZEngiineeringPhotoServiceImpl implements IZEngiineeringPhotoService
         ZEngiineeringPhoto zEngiineeringPhoto = bo.get(0);
         LambdaQueryWrapper<ZEngiineeringPhoto> lqw = Wrappers.lambdaQuery();
         lqw.eq(StringUtils.isNotBlank(zEngiineeringPhoto.getParentId()), ZEngiineeringPhoto::getParentId, zEngiineeringPhoto.getParentId());
-        List<ZEngiineeringPhoto> zEngiineeringPhotoList=  baseMapper.selectList(lqw);
-        List<String> list=new ArrayList<>();
-        zEngiineeringPhotoList.stream().forEach(item->{
+        List<ZEngiineeringPhoto> zEngiineeringPhotoList = baseMapper.selectList(lqw);
+        List<String> list = new ArrayList<>();
+        zEngiineeringPhotoList.stream().forEach(item -> {
             list.add(item.getPicUrl());
         });
-        List<String> bolist=new ArrayList<>();
-        bo.stream().forEach(item->{
+        List<String> bolist = new ArrayList<>();
+        bo.stream().forEach(item -> {
             bolist.add(item.getPicUrl());
         });
-        List dlList= list.stream().filter(i->!bolist.contains(i)).collect(Collectors.toList());
-        List<String> inList= bolist.stream().filter(i->!list.contains(i)).collect(Collectors.toList());
+        List dlList = list.stream().filter(i -> !bolist.contains(i)).collect(Collectors.toList());
+        List<String> inList = bolist.stream().filter(i -> !list.contains(i)).collect(Collectors.toList());
         obsService.deleteFiles(dlList);
-        List dlIdList=new ArrayList();
-        dlList.stream().forEach(item->{
-            zEngiineeringPhotoList.stream().forEach(Photoitem->{
-                if (Photoitem.getPicUrl()==item)
-                {
+        List dlIdList = new ArrayList();
+        dlList.stream().forEach(item -> {
+            zEngiineeringPhotoList.stream().forEach(Photoitem -> {
+                if (Photoitem.getPicUrl() == item) {
                     dlIdList.add(Photoitem);
                 }
             });
 
         });
-        if (dlIdList.size()!=0)
-        {
+        if (dlIdList.size() != 0) {
             baseMapper.deleteBatchIds(dlIdList);
 
-        }else if (inList.size()!=0)
-        {
-            List <ZEngiineeringPhoto> photoList=new ArrayList();
-            inList.stream().forEach(item->{
-                    ZEngiineeringPhoto zEngiineeringPhoto1=new ZEngiineeringPhoto();
-                    zEngiineeringPhoto1.setParentId(zEngiineeringPhoto.getParentId());
-                     zEngiineeringPhoto1.setPicUrl(item);
+        } else if (inList.size() != 0) {
+            List<ZEngiineeringPhoto> photoList = new ArrayList();
+            inList.stream().forEach(item -> {
+                ZEngiineeringPhoto zEngiineeringPhoto1 = new ZEngiineeringPhoto();
+                zEngiineeringPhoto1.setParentId(zEngiineeringPhoto.getParentId());
+                zEngiineeringPhoto1.setPicUrl(item);
                 zEngiineeringPhoto1.setUpdateTime(new Date());
                 zEngiineeringPhoto1.setCreateTime(zEngiineeringPhoto.getCreateTime());
-                    photoList.add(zEngiineeringPhoto1);
+                photoList.add(zEngiineeringPhoto1);
             });
             insertBatch(photoList);
         }
@@ -184,28 +189,27 @@ public class ZEngiineeringPhotoServiceImpl implements IZEngiineeringPhotoService
     public Boolean delete(ZEngineeringInfoBo bo) {
         LambdaQueryWrapper<ZEngiineeringPhoto> lqw = Wrappers.lambdaQuery();
         lqw.eq(StringUtils.isNotBlank(bo.getId()), ZEngiineeringPhoto::getParentId, bo.getId());
-        List<ZEngiineeringPhoto> zEngiineeringPhoto= baseMapper.selectList(lqw);
-        List IdList=new ArrayList();
-        List UrlList=new ArrayList();
-        zEngiineeringPhoto.stream().forEach(item->{
+        List<ZEngiineeringPhoto> zEngiineeringPhoto = baseMapper.selectList(lqw);
+        List IdList = new ArrayList();
+        List UrlList = new ArrayList();
+        zEngiineeringPhoto.stream().forEach(item -> {
             IdList.add(item.getId());
             UrlList.add(item.getPicUrl());
 
         });
-        int flag=0;
-        if(IdList.size()>0)
-        {
+        int flag = 0;
+        if (IdList.size() > 0) {
             obsService.deleteFiles(UrlList);
-            flag=  baseMapper.deleteBatchIds(IdList);
+            flag = baseMapper.deleteBatchIds(IdList);
         }
-       ;
-        return flag>0;
+        ;
+        return flag > 0;
     }
 
     /**
      * 保存前的数据校验
      */
-    private void validEntityBeforeSave(ZEngiineeringPhoto entity){
+    private void validEntityBeforeSave(ZEngiineeringPhoto entity) {
         //TODO 做一些数据校验,如唯一约束
     }
 
@@ -214,7 +218,7 @@ public class ZEngiineeringPhotoServiceImpl implements IZEngiineeringPhotoService
      */
     @Override
     public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
-        if(isValid){
+        if (isValid) {
             //TODO 做一些业务上的校验,判断是否需要校验
         }
         return baseMapper.deleteBatchIds(ids) > 0;
@@ -243,4 +247,84 @@ public class ZEngiineeringPhotoServiceImpl implements IZEngiineeringPhotoService
         }
         return baseMapper.deleteByUrls(bo.getPicUrl()) > 0;
     }
+
+    @Override
+    public void write(ZEngineeringCivilBo zEngineeringCivilBo) {
+        zEngineeringCivilBo.getzEngineeringNodeBo().getzEngineeringInfoBoList().forEach(zEngineeringInfoBo -> {
+                zEngineeringInfoBo.getzEngiineeringPhotoBoList().forEach(photo -> {
+                    if (StringUtils.isNotBlank(photo)) {
+                        // 创建最外层文件夹
+                        File file = new File(filePath);
+                        if (!file.exists()) {
+                            file.mkdirs();
+                        }
+                        // 创建行政区
+                        File headFile = new File(file.getPath() + "/" + zEngineeringCivilBo.getDistrict());
+                        if (!headFile.exists()) {
+                            headFile.mkdirs();
+                        }
+                        // 小区下再次创建小区,本级用于导出
+                        File areaFile = new File(headFile.getPath() + "/" + zEngineeringCivilBo.getAreaId());
+                        if (!areaFile.exists()) {
+                            areaFile.mkdirs();
+                        }
+                        // 楼
+                        File buildingFile = new File(areaFile.getPath() + "/" + zEngineeringCivilBo.getBuildingId());
+                        if (!buildingFile.exists()) {
+                            buildingFile.mkdirs();
+                        }
+                        // 单元
+                        File unitFile = new File(buildingFile.getPath() + "/" + zEngineeringCivilBo.getUnitId());
+                        if (!unitFile.exists()) {
+                            unitFile.mkdirs();
+                        }
+                        // 房间
+                        File houseFile = new File(unitFile.getPath() + "/" + zEngineeringCivilBo.getHouseId());
+                        if (!houseFile.exists()) {
+                            houseFile.mkdirs();
+                        }
+                        // 工程周期
+                        File EnginCycleFile = new File(houseFile.getPath() + "/" + zEngineeringCivilBo.getEnginCycle());
+                        if (!EnginCycleFile.exists()) {
+                            EnginCycleFile.mkdirs();
+                        }
+                        // 工程类型
+                        File EnginType = new File(EnginCycleFile.getPath() + "/" + zEngineeringCivilBo.getEnginType());
+                        if (!EnginType.exists()) {
+                            EnginType.mkdirs();
+                        }
+                        // 工程分类
+                        File EnginClassification = new File(EnginType.getPath() + "/" + zEngineeringCivilBo.getEnginClassification());
+                        if (!EnginClassification.exists()) {
+                            EnginClassification.mkdirs();
+                        }
+                        // 节点类型
+                        File Type = new File(EnginClassification.getPath() + "/" + zEngineeringCivilBo.getzEngineeringNodeBo().getType());
+                        if (!Type.exists()) {
+                            Type.mkdirs();
+                        }
+                        // 时间
+                        File CreateTimeFile = new File(Type.getPath() + "/" + new SimpleDateFormat("yyyy-MM-dd").format(zEngineeringInfoBo.getCreateTime()) );
+                        if (!CreateTimeFile.exists()) {
+                            CreateTimeFile.mkdirs();
+                        }
+                        File CreateByFile = new File(CreateTimeFile.getPath() + "/" + zEngineeringInfoBo.getConstructUser());
+                        if (!CreateByFile.exists()) {
+                            CreateByFile.mkdirs();
+                        }
+                        try {
+                            obsService.download(CreateByFile.getPath(), photo.substring(photo.lastIndexOf("/")+1));
+                            System.out.println(photo.substring(photo.lastIndexOf("/")+1));
+                            System.out.println(photo);
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                        }
+
+
+                    }
+
+                });
+
+            });
+    }
 }

+ 67 - 11
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringCivilServiceImpl.java

@@ -1,36 +1,43 @@
 package com.ruoyi.zdsz.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.common.annotation.DynamicName;
+import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.domain.PageQuery;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.utils.redis.RedisUtils;
+import com.ruoyi.framework.handler.MonthTableNameHandler;
+import com.ruoyi.system.service.ISysDictTypeService;
 import com.ruoyi.zdsz.domain.ZArea;
+import com.ruoyi.zdsz.domain.ZEngineeringNode;
 import com.ruoyi.zdsz.domain.bo.ZBuildingBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
+import com.ruoyi.zdsz.domain.bo.ZEngineeringReviewBo;
 import com.ruoyi.zdsz.domain.vo.*;
 import com.ruoyi.zdsz.mapper.ZAreaMapper;
-import com.ruoyi.zdsz.service.IZEngineeringNodeService;
-import com.ruoyi.zdsz.service.IZMaterialStatisticsService;
+import com.ruoyi.zdsz.mapper.ZEngineeringNodeMapper;
+import com.ruoyi.zdsz.service.*;
 import com.ruoyi.zdsz.task.RiewTask;
+import com.ruoyi.zdsz.task.photoTask;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
 import com.ruoyi.zdsz.domain.ZEngineeringCivil;
 import com.ruoyi.zdsz.mapper.ZEngineeringCivilMapper;
-import com.ruoyi.zdsz.service.IZEngineeringCivilService;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.*;
 import java.util.stream.Collectors;
 
 /**
@@ -51,6 +58,12 @@ public class ZEngineeringCivilServiceImpl implements IZEngineeringCivilService {
     private IZEngineeringNodeService izEngineeringNodeService;
     @Resource
     private IZMaterialStatisticsService izMaterialStatisticsService;
+    @Resource
+    private final ZEngineeringNodeMapper zEngineeringNodeMapper;
+    @Resource
+    private IZEngineeringReviewService izEngineeringReviewService;
+    @Resource
+    private IZEngiineeringPhotoService izEngiineeringPhotoService;
 
     /**
      * 查询民用工程
@@ -378,13 +391,14 @@ public class ZEngineeringCivilServiceImpl implements IZEngineeringCivilService {
          * 线程执行插入量
          */
         int count = 500;
-        List<ZEngineeringCivil> newList = new ArrayList();
+//        List<ZEngineeringCivil> newList = new ArrayList();
         if (sumcount > 0) {
             //线程数量(根据查询总数量进行分配线程数量)
             int runSize = (int) (sumcount / count + 1);
-            ScheduledThreadPoolExecutor threadPoolTaskExecutor = new ScheduledThreadPoolExecutor(runSize);
+            //ThreadPoolExecutor threadPoolTaskExecutor = new ScheduledThreadPoolExecutor(runSize);
+            ExecutorService threadPoolTaskExecutor = Executors.newCachedThreadPool();
             CountDownLatch countDownLatch = new CountDownLatch(runSize);
-            for (int i = 0; i <= runSize; i++) {
+            for (int i = 1; i <= runSize; i++) {
                 Page page = new Page<>(i, count);
 //                Page<ZEngineeringCivil> zEngineeringCivilPage = baseMapper.selectPage(page, lqw);
 //                if((i+1)==runSize){
@@ -396,8 +410,9 @@ public class ZEngineeringCivilServiceImpl implements IZEngineeringCivilService {
 //                    int endIndex = (i+1)*count;
 //                    newList =zEngineeringCivilList.subList(startIndex,endIndex);
 //                }
-
+                System.out.println("第"+i+"次查询:"+page.getSize());
                 threadPoolTaskExecutor.execute(new RiewTask( zEngineeringNodeBo, countDownLatch,page,lqw));
+                threadPoolTaskExecutor.execute(new photoTask( zEngineeringNodeBo, countDownLatch,page,lqw));
             }
             threadPoolTaskExecutor.shutdown();
 //            try {
@@ -413,11 +428,52 @@ public class ZEngineeringCivilServiceImpl implements IZEngineeringCivilService {
     }
 
     @Override
-    public Boolean updateCiviiStatus(ZEngineeringCivil zEngineeringCivil) {
+    @DynamicName(spel = "#zEngineeringReviewBo.createTime")
+    public int Civilinsert(ZEngineeringReviewBo zEngineeringReviewBo) {
+        ZEngineeringNode zEngineeringNode=  zEngineeringNodeMapper.selectById(zEngineeringReviewBo.getEngInfoId());
+        ZEngineeringCivil zEngineeringCivil= baseMapper.selectById(zEngineeringNode.getCivliId());
+        ZEngineeringCivilBo zEngineeringCivilBo=BeanUtil.copyProperties(zEngineeringCivil,ZEngineeringCivilBo.class);
+        ZEngineeringNodeBo zEngineeringNodeBo=BeanUtil.copyProperties(zEngineeringNode,ZEngineeringNodeBo.class);
+        zEngineeringCivilBo.setzEngineeringNodeBo(izEngineeringNodeService.query(zEngineeringNodeBo));
+        zEngineeringCivilBo.setCreateTime(zEngineeringReviewBo.getCreateTime());
+        izEngineeringReviewService.Civilinsert(zEngineeringCivil,zEngineeringReviewBo);
+        areaMessageVo areaMessageVo= baseMapper.getHouseMessage(zEngineeringCivilBo.getHouseId());
+        BeanUtils.copyProperties(areaMessageVo,zEngineeringCivilBo);
+        Map<String,List<SysDictData>> sysDictMap= RedisUtils.getCacheMap("sys_dict");
+        sysDictMap.get(zEngineeringCivilBo.getEnginType()).stream().forEach(item->{
+            if (item.getDictValue().equals(zEngineeringCivilBo.getCompletionStatus()))
+            {
+                zEngineeringCivilBo.setEnginClassification(item.getDictLabel());
+            }
+        });
+        sysDictMap.get(zEngineeringCivilBo.getEnginType()+"_"+zEngineeringCivilBo.getEnginClassification()).stream().forEach(item->{
+            if (item.getDictValue().equals(zEngineeringCivilBo.getzEngineeringNodeBo().getType()))
+            {
+                zEngineeringCivilBo.setEnginClassification(item.getDictLabel());
+            }
+        });
+        sysDictMap.get("engin_cycle").stream().forEach(item->{
+            if (item.getDictValue().equals(zEngineeringCivilBo.getEnginCycle()))
+            {
+                zEngineeringCivilBo.setEnginCycle(item.getDictLabel());
+            }
+        });
+//        zEngineeringCivilBo.getzEngineeringNodeBo().setType(type);
+//        zEngineeringCivilBo.setEnginClassification(completionStatus);
+        if(zEngineeringCivilBo.getEnginType().equals("old_renovation"))
+        {
+            zEngineeringCivilBo.setEnginType("旧改");
+        }else if (zEngineeringCivilBo.getEnginType().equals("new_built"))
+        {
+            zEngineeringCivilBo.setEnginType("新建");
+        }
 
-        return null;
+        izEngiineeringPhotoService.write(zEngineeringCivilBo);
+        return 0;
     }
 
+
+
 }
 
 

+ 1 - 1
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringInfoServiceImpl.java

@@ -70,7 +70,7 @@ public class ZEngineeringInfoServiceImpl implements IZEngineeringInfoService {
         List<ZEngineeringInfoBo> zEngineeringInfoBoList = new ArrayList<>();
         zEngineeringInfoVoList.stream().forEach(item -> {
             ZEngineeringInfoBo zEngineeringInfoBo1 = BeanUtil.toBean(item, ZEngineeringInfoBo.class);
-            SysUser sysUser = sysUserService.selectUserByUserName(item.getCreateBy());
+            SysUser sysUser = sysUserService.selectUserById(Long.parseLong(item.getConstructUser()));
             if (!ObjectUtils.isEmpty(sysUser)) {
                 zEngineeringInfoBo1.setHeadName(sysUser.getNickName());
                 zEngineeringInfoBo1.setConstructUser(sysUser.getNickName());

+ 90 - 9
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringNodeServiceImpl.java

@@ -10,22 +10,25 @@ import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.helper.LoginHelper;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.redis.RedisUtils;
 import com.ruoyi.framework.handler.MonthTableNameHandler;
 import com.ruoyi.system.service.ISysDictTypeService;
 import com.ruoyi.zdsz.domain.ZEngineeringCivil;
 import com.ruoyi.zdsz.domain.ZEngineeringNode;
 import com.ruoyi.zdsz.domain.ZEngineeringReview;
+import com.ruoyi.zdsz.domain.bo.ZEngineeringCivilBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringInfoBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringReviewBo;
 import com.ruoyi.zdsz.domain.vo.ZEngineeringNodeVo;
+import com.ruoyi.zdsz.domain.vo.areaMessageVo;
+import com.ruoyi.zdsz.mapper.ZEngineeringCivilMapper;
 import com.ruoyi.zdsz.mapper.ZEngineeringNodeMapper;
 import com.ruoyi.zdsz.mapper.ZEngineeringReviewMapper;
-import com.ruoyi.zdsz.service.IZEngineeringInfoService;
-import com.ruoyi.zdsz.service.IZEngineeringNodeService;
-import com.ruoyi.zdsz.service.IZEngineeringReviewService;
+import com.ruoyi.zdsz.service.*;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
@@ -58,6 +61,10 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
     private ThreadPoolTaskExecutor threadPoolTaskExecutor;
     @Resource
     private IZEngineeringReviewService izEngineeringReviewService;
+    @Resource
+    private IZEngiineeringPhotoService izEngiineeringPhotoService;
+    @Resource
+    private ZEngineeringCivilMapper zEngineeringCivilMapper;
 
 
     /**
@@ -75,8 +82,32 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
         LambdaQueryWrapper<ZEngineeringNode> lqw = Wrappers.lambdaQuery();
         lqw.eq(StringUtils.isNotBlank(bo.getCivliId()), ZEngineeringNode::getCivliId, bo.getCivliId());
         lqw.eq(StringUtils.isNotBlank(bo.getType()), ZEngineeringNode::getType, bo.getType());
-        if (!LoginHelper.isAdmin())
-            lqw.eq(ZEngineeringNode::getCreateBy, LoginHelper.getLoginUser().getUsername());
+//        if (!LoginHelper.isAdmin())
+//            lqw.eq(ZEngineeringNode::getCreateBy, LoginHelper.getLoginUser().getUsername());
+        ZEngineeringNode zEngineeringNode=baseMapper.selectOne(lqw);
+//        ZEngineeringNode zEngineeringNodeVo=baseMapper.selectById(bo.getId());
+        if (zEngineeringNode==null)
+        {
+            return  null;
+        }
+        ZEngineeringNodeBo zEngineeringNodeBo = new ZEngineeringNodeBo();
+//        ZEngineeringNodeBo zEngineeringNodeBo= BeanUtil.toBean(zEngineeringNode, ZEngineeringNodeBo.class);
+        BeanUtil.copyProperties(zEngineeringNode,zEngineeringNodeBo,"id");
+        zEngineeringNodeBo.setId(zEngineeringNode.getId());
+        List<ZEngineeringInfoBo> zEngineeringInfoBo= izEngineeringInfoService.query(zEngineeringNodeBo);
+        zEngineeringNodeBo.setId(zEngineeringNode.getId());
+        zEngineeringNodeBo.setzEngineeringInfoBoList(zEngineeringInfoBo);
+        return zEngineeringNodeBo;
+    }
+    @Override
+    @DynamicName(spel = "#bo.createTime")
+    //    @Async("threadPoolTaskExecutor")
+    public ZEngineeringNodeBo Userquery(ZEngineeringNodeBo bo,String username) {
+        LambdaQueryWrapper<ZEngineeringNode> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StringUtils.isNotBlank(bo.getCivliId()), ZEngineeringNode::getCivliId, bo.getCivliId());
+        lqw.eq(StringUtils.isNotBlank(bo.getType()), ZEngineeringNode::getType, bo.getType());
+//        if (!LoginHelper.isAdmin())
+//            lqw.eq(ZEngineeringNode::getCreateBy, username);
         ZEngineeringNode zEngineeringNode=baseMapper.selectOne(lqw);
 //        ZEngineeringNode zEngineeringNodeVo=baseMapper.selectById(bo.getId());
         if (zEngineeringNode==null)
@@ -166,7 +197,7 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
     }
 
     @Override
-    @Async
+     @Async
     public int batchReview(List<ZEngineeringCivil> zEngineeringCivilList,ZEngineeringNodeBo bo,String userId) {
         zEngineeringCivilList.forEach(item->{
             SimpleDateFormat format = new SimpleDateFormat("yyyy_MM");
@@ -188,18 +219,68 @@ public class ZEngineeringNodeServiceImpl implements IZEngineeringNodeService {
             zEngineeringReview.setEngInfoId(zEngineeringNode.getId());
             zEngineeringReviewList.add(zEngineeringReview);
             izEngineeringReviewService.Bacthinsert(zEngineeringReview);
+             ZEngineeringReviewBo zEngineeringReviewBo=BeanUtil.copyProperties(zEngineeringReview, ZEngineeringReviewBo.class);
             izEngineeringReviewService.updateCivilStatus(item);
+             //Civilinsert(zEngineeringReviewBo);
 
            }
-
-
             MonthTableNameHandler.removeData();
         });
 
         return 0;
     }
+    @Override
+    @Async
+    @DynamicName(spel = "#zEngineeringCivilList[0].createTime")
+    public int Civilinsert(List<ZEngineeringCivil> zEngineeringCivilList,ZEngineeringNodeBo bo, String UserId) {
+        zEngineeringCivilList.forEach(item2-> {
+            SimpleDateFormat format = new SimpleDateFormat("yyyy_MM");
+            LambdaQueryWrapper<ZEngineeringNode> lqw = Wrappers.lambdaQuery();
+            lqw.eq(StringUtils.isNotBlank(item2.getId()), ZEngineeringNode::getCivliId, item2.getId());
+            lqw.eq(StringUtils.isNotBlank(bo.getType()), ZEngineeringNode::getType, bo.getType());
+            format.format(item2.getCreateTime());
+            MonthTableNameHandler.setData(format.format(item2.getCreateTime()));
+            ZEngineeringNode zEngineeringNode = baseMapper.selectOne(lqw);
+            //ZEngineeringNode zEngineeringNode = baseMapper.selectById(zEngineeringReviewBo.getEngInfoId());
+//        ZEngineeringCivil zEngineeringCivil= zEngineeringCivilMapper.selectById(zEngineeringNode.getCivliId());
+            ZEngineeringCivilBo zEngineeringCivilBo = BeanUtil.copyProperties(item2, ZEngineeringCivilBo.class);
+            ZEngineeringNodeBo zEngineeringNodeBo = BeanUtil.copyProperties(zEngineeringNode, ZEngineeringNodeBo.class);
+            MonthTableNameHandler.setData(new SimpleDateFormat("yyyy_MM").format(item2.getCreateTime()));
+            zEngineeringCivilBo.setzEngineeringNodeBo(Userquery(zEngineeringNodeBo,UserId));
+            MonthTableNameHandler.removeData();
+//        zEngineeringCivilBo.setCreateTime(zEngineeringReviewBo.getCreateTime());
+//        izEngineeringReviewService.Civilinsert(zEngineeringCivil,zEngineeringReviewBo);
+            areaMessageVo areaMessageVo = zEngineeringCivilMapper.getHouseMessage(zEngineeringCivilBo.getHouseId());
+            if (!ObjectUtils.isEmpty(areaMessageVo))
+            BeanUtils.copyProperties(areaMessageVo, zEngineeringCivilBo);
+            Map<String, List<SysDictData>> sysDictMap = RedisUtils.getCacheMap("sys_dict");
+//            sysDictMap.get(zEngineeringCivilBo.getEnginType()).stream().forEach(item -> {
+//                if (item.getDictValue().equals(zEngineeringCivilBo.getCompletionStatus())) {
+//                    zEngineeringCivilBo.setCompletionStatus(item.getDictLabel());
+//                }
+//            });
+            sysDictMap.get(zEngineeringCivilBo.getEnginType()).stream().forEach(item -> {
+                if (item.getDictValue().equals(zEngineeringCivilBo.getEnginClassification())) {
+                    zEngineeringCivilBo.setEnginClassification(item.getDictLabel());
+                }
+            });
+            sysDictMap.get("engin_cycle").stream().forEach(item -> {
+                if (item.getDictValue().equals(zEngineeringCivilBo.getEnginCycle())) {
+                    zEngineeringCivilBo.setEnginCycle(item.getDictLabel());
+                }
+            });
+//        zEngineeringCivilBo.getzEngineeringNodeBo().setType(type);
+//        zEngineeringCivilBo.setEnginClassification(completionStatus);
+            if (zEngineeringCivilBo.getEnginType().equals("old_renovation")) {
+                zEngineeringCivilBo.setEnginType("旧改");
+            } else if (zEngineeringCivilBo.getEnginType().equals("new_built")) {
+                zEngineeringCivilBo.setEnginType("新建");
+            }
 
-
+            izEngiineeringPhotoService.write(zEngineeringCivilBo);
+        });
+        return 0;
+    }
 
     public List getZEngineeringNodeList(String date, String UserId, ZEngineeringNodeBo bo) {
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");

+ 21 - 17
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringReviewServiceImpl.java

@@ -148,15 +148,19 @@ public class ZEngineeringReviewServiceImpl implements IZEngineeringReviewService
     }
 
     @Override
-    public Boolean Civilinsert(ZEngineeringReviewBo bo) {
-       ZEngineeringNodeVo zEngineeringNodeBo=  zEngineeringNodeMapper.selectVoById(bo.getEngInfoId());
-       ZEngineeringCivilVo zEngineeringCivilBo= zEngineeringCivilMapper.selectVoById(zEngineeringNodeBo.getCivliId());
-       ZEngineeringCivil zEngineeringCivil=new ZEngineeringCivil();
-        BeanUtils.copyProperties(zEngineeringCivilBo,zEngineeringCivil);
+    public Boolean Civilinsert(ZEngineeringCivil zEngineeringCivil,ZEngineeringReviewBo bo) {
+       ZEngineeringReview zEngineeringReview= BeanUtil.copyProperties(bo,ZEngineeringReview.class);
+        LambdaQueryWrapper<ZEngineeringReview> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StringUtils.isNotBlank(bo.getEngInfoId()), ZEngineeringReview::getEngInfoId, bo.getEngInfoId());
+        boolean flag =false;
+        if (!baseMapper.exists(lqw))
+        {
+            flag=  baseMapper.insert(zEngineeringReview)> 0;
+        }
         MonthTableNameHandler.setData(new SimpleDateFormat("yyyy_MM").format(bo.getCreateTime()));
         updateCivilStatus(zEngineeringCivil);
         MonthTableNameHandler.removeData();
-        return true;
+        return flag;
     }
 
     @Override
@@ -169,16 +173,16 @@ public class ZEngineeringReviewServiceImpl implements IZEngineeringReviewService
         if (!baseMapper.exists(lqw))
             {
                 flag=  baseMapper.insert(bo)> 0;
-                if(flag)
-                {
-                    LambdaQueryWrapper<ZEngineeringReview> lqw2 = Wrappers.lambdaQuery();
-                    lqw2.eq(StringUtils.isNotBlank(bo.getEngInfoId()), ZEngineeringReview::getEngInfoId, bo.getEngInfoId());
-                    lqw2.eq(ZEngineeringReview::getReviewStatus, 1);
-                   if (baseMapper.selectCount(lqw2)>=6)
-                   {
-
-                   }
-                }
+//                if(flag)
+//                {
+//                    LambdaQueryWrapper<ZEngineeringReview> lqw2 = Wrappers.lambdaQuery();
+//                    lqw2.eq(StringUtils.isNotBlank(bo.getEngInfoId()), ZEngineeringReview::getEngInfoId, bo.getEngInfoId());
+//                    lqw2.eq(ZEngineeringReview::getReviewStatus, 1);
+//                   if (baseMapper.selectCount(lqw2)>=6)
+//                   {
+//
+//                   }
+//                }
             }
 
 
@@ -234,7 +238,7 @@ public class ZEngineeringReviewServiceImpl implements IZEngineeringReviewService
         return baseMapper.deleteBatchIds(ids) > 0;
     }
     @Override
-    @DynamicName(spel = "#bo.createTime")
+    @DynamicName(spel = "#zEngineeringCivil.createTime")
     public Boolean updateCivilStatus(ZEngineeringCivil zEngineeringCivil) {
         List<SysDictData> sysDictDataList=dictTypeService.selectDictDataByType(zEngineeringCivil.getEnginType()+"_"+zEngineeringCivil.getEnginClassification());
         AtomicInteger sum= new AtomicInteger();

+ 6 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/task/RiewTask.java

@@ -17,12 +17,16 @@ import java.beans.beancontext.BeanContext;
 import java.util.List;
 import java.util.concurrent.CountDownLatch;
 
+/**
+ * 批量审核
+ */
 public class RiewTask  implements  Runnable{
 
     private IZEngineeringNodeService izEngineeringNodeService;
 //    private List<ZEngineeringCivil> zEngineeringCivilList;
     private ZEngineeringNodeBo zEngineeringNodeBo;
     private  String userId;
+    private  String userName;
     private   CountDownLatch countDownLatch;
     private  ZEngineeringCivilMapper baseMapper;
     private LambdaQueryWrapper<ZEngineeringCivil> lqw ;
@@ -35,6 +39,7 @@ public class RiewTask  implements  Runnable{
         this.izEngineeringNodeService= GetBeanUtil.getApplicationContext().getBean(IZEngineeringNodeService.class);
         this.baseMapper= GetBeanUtil.getApplicationContext().getBean(ZEngineeringCivilMapper.class);
         this.userId= LoginHelper.getLoginUser().getUserId().toString();
+        this.userName= LoginHelper.getLoginUser().getUsername().toString();
         this.countDownLatch=countDownLatch;
         this.lqw = lqw;
         this.page=page;
@@ -45,6 +50,7 @@ public class RiewTask  implements  Runnable{
 //        {
             Page<ZEngineeringCivil> page1=baseMapper.selectPage(page, lqw);
             izEngineeringNodeService.batchReview(page1.getRecords(),zEngineeringNodeBo,userId);
+          // izEngineeringNodeService.Civilinsert(page1.getRecords(),zEngineeringNodeBo,userName);
 //        }
         //countDownLatch.countDown();//发出线程任务完成的信号
 

+ 16 - 0
ruoyi-zdsz/src/main/resources/mapper/zdsz/ZEngineeringCivilMapper.xml

@@ -143,4 +143,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
             a.completion_status = '施工中'AND a.engin_cycle=#{enginCycle}
     </select>
+    <select id="getHouseMessage" resultType="com.ruoyi.zdsz.domain.vo.areaMessageVo">
+        SELECT
+            a.`name` AS houseId,
+            b.`name` AS unitId,
+            c.`name` AS buildingId,
+            d.name AS areaId,
+            e.dict_label AS district
+        FROM
+            z_house a
+                LEFT JOIN z_unit b ON a.unit_id=b.id
+                LEFT JOIN z_building c ON a.building_id=c.id
+                LEFT JOIN z_area d ON a.area_id=d.id
+                LEFT JOIN sys_dict_data e ON e.dict_value=d.district
+        WHERE
+            a.id = #{id}
+ </select>
 </mapper>