Prechádzať zdrojové kódy

大中型现场查勘照片列表

wucl 3 týždňov pred
rodič
commit
2c248d5b22

+ 14 - 0
biz-base/src/main/java/com/dayou/controller/MajorTargetController.java

@@ -1,9 +1,11 @@
 package com.dayou.controller;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.dto.MajorTargetMergeNumberDTO;
 import com.dayou.dto.TakeNumberDTO;
 import com.dayou.dto.TaskRecordDTO;
 import com.dayou.service.IMajorTargetService;
+import com.dayou.vo.MajorTargetSceneImageVO;
 import com.dayou.workflow.annotation.FinishTask;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -110,5 +112,17 @@ public class MajorTargetController extends BaseController {
         Boolean ret =majorTargetService.mergeNumber(mergeDTO);
         return RestResponse.data(ret);
     }
+
+    /**
+     * 现场查勘照片列表
+     * @param page
+     * @param image
+     * @return
+     */
+    @GetMapping("/sceneImages")
+    public RestResponse<Page<MajorTargetSceneImageVO>> getSceneImages(Page page,MajorTargetSceneImageVO image){
+        Page<MajorTargetSceneImageVO> ret = majorTargetService.getSceneImages(page,image);
+        return RestResponse.data(ret);
+    }
 }
 

+ 4 - 0
dao/src/main/java/com/dayou/mapper/MajorTargetMapper.java

@@ -1,8 +1,10 @@
 package com.dayou.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.entity.MajorTarget;
 import com.dayou.dao.CustomBaseMapper;
 import com.dayou.vo.IdNameVO;
+import com.dayou.vo.MajorTargetSceneImageVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -44,4 +46,6 @@ public interface MajorTargetMapper extends CustomBaseMapper<MajorTarget> {
     BigDecimal getEvaluateAmountByTargetId(@Param("targetIds") List<Long> targetIds);
 
     Boolean deleteTarget(@Param("id") Long id);
+
+    Page<MajorTargetSceneImageVO> getSceneImages(Page page, @Param("image") MajorTargetSceneImageVO image);
 }

+ 1 - 1
dao/src/main/resources/mapper/MajorAppraiserUnitMapper.xml

@@ -88,7 +88,7 @@
             AND created &lt;= #{rate.endDate}
         </if>
         GROUP BY user_id ) ur
-        LEFT JOIN USER u ON u.id = ur.user_id
+        LEFT JOIN user u ON u.id = ur.user_id
         ) dy
         LEFT JOIN (
         SELECT

+ 39 - 0
dao/src/main/resources/mapper/MajorTargetMapper.xml

@@ -103,4 +103,43 @@
     <delete id="deleteTarget" parameterType="java.lang.Long">
         delete from major_target where id = #{id}
     </delete>
+
+    <select id="getSceneImages" parameterType="com.dayou.vo.MajorTargetSceneImageVO" resultType="com.dayou.vo.MajorTargetSceneImageVO">
+        SELECT
+            mt.id,
+            m.NAME AS orderName,
+            m.order_id,
+            mt.located,
+            mt.created AS createTime,
+            mt.target_type,
+            u1.name as principal,
+            u2.name as clientManager,
+            mt.scene_image,
+            mt.site_ids
+        FROM
+            major_target mt
+                LEFT JOIN major m ON m.id = mt.major_id
+                left join user u1 on u1.id = mt.principal_id
+                left join user u2 on u2.id = m.client_manager_id
+        where mt.deleted = 0 and mt.created>='2025-07-01 00:00:00'
+        <if test="image!=null and image.orderName!=null and image.orderName!=''">
+            and m.name like concat('%',#{image.orderName},'%')
+        </if>
+        <if test="image!=null and image.orderId!=null and image.orderId!=''">
+            and m.order_id like concat('%',#{image.orderId},'%')
+        </if>
+        <if test="image!=null and image.located!=null and image.located!=''">
+            and mt.located like concat('%',#{image.located},'%')
+        </if>
+        <if test="image!=null and image.sceneUserId!=null and image.sceneUserId!=''">
+            and mt.site_ids like concat('%',#{image.sceneUserId},'%')
+        </if>
+        <if test="image!=null and image.startDate!=null and image.startDate!=''">
+            AND mt.created &gt;= #{image.startDate}
+        </if>
+        <if test="image!=null and image.endDate!=null and image.endDate!=''">
+            AND mt.created &lt;= #{image.endDate}
+        </if>
+        order by mt.created desc
+    </select>
 </mapper>

+ 1 - 0
dao/src/main/resources/mapper/PersonalStatisticalStatementMapper.xml

@@ -38,6 +38,7 @@
     <sql id="personalEfficiencyDetailQuery">
         SELECT personal.id,
         personal.order_id,
+        personal.evaluate_aim,
         personal.location,
         customer.name AS customerName,
         (SELECT name FROM customer_company WHERE id = personal.clientele_sub_id) AS customerSubName,

+ 38 - 0
domain/src/main/java/com/dayou/vo/MajorTargetSceneImageVO.java

@@ -0,0 +1,38 @@
+package com.dayou.vo;
+
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.util.Date;
+
+@Data
+public class MajorTargetSceneImageVO {
+
+    private Long id;
+
+    private String orderName;
+
+    private String orderId;
+
+    private String located;
+
+    private String sceneImage;
+
+    private LocalDate createTime;
+
+    private String targetType;
+
+    private String clientManager;
+
+    private String sceneUsers;
+
+    private String principal;
+
+    private Long sceneUserId;
+
+    private String siteIds;
+
+    private String startDate;
+
+    private String endDate;
+}

+ 7 - 0
domain/src/main/java/com/dayou/vo/PersonalEfficiencyDetailVO.java

@@ -22,6 +22,12 @@ public class PersonalEfficiencyDetailVO {
     private String location;
 
     /**
+     * 评估目的
+     */
+    @Excel(name = "评估目的")
+    private String evaluateAim;
+
+    /**
      * 客户名称
      */
     @Excel(name = "客户名称")
@@ -130,4 +136,5 @@ public class PersonalEfficiencyDetailVO {
     @Excel(name = "当前节点处理人")
     private String handlerName;
 
+
 }

+ 4 - 0
service/src/main/java/com/dayou/service/IMajorTargetService.java

@@ -1,9 +1,11 @@
 package com.dayou.service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.dto.MajorTargetMergeNumberDTO;
 import com.dayou.dto.TakeNumberDTO;
 import com.dayou.dto.TaskRecordDTO;
 import com.dayou.entity.MajorTarget;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.dayou.vo.MajorTargetSceneImageVO;
 
 import java.util.List;
 
@@ -37,4 +39,6 @@ public interface IMajorTargetService extends IService<MajorTarget> {
         String majorTakeLetterNo(TakeNumberDTO takeNumberDTO);
 
     Boolean mergeNumber(MajorTargetMergeNumberDTO mergeDTO);
+
+    Page<MajorTargetSceneImageVO> getSceneImages(Page page, MajorTargetSceneImageVO image);
 }

+ 29 - 0
service/src/main/java/com/dayou/service/impl/MajorTargetServiceImpl.java

@@ -1,26 +1,33 @@
 package com.dayou.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.common.BaseEntity;
 import com.dayou.dto.MajorTargetMergeNumberDTO;
 import com.dayou.dto.TakeNumberDTO;
 import com.dayou.dto.TaskRecordDTO;
 import com.dayou.entity.MajorProduction;
 import com.dayou.entity.MajorTarget;
+import com.dayou.entity.User;
 import com.dayou.enums.ProductionEnum;
 import com.dayou.enums.TakeNumberEnum;
 import com.dayou.mapper.MajorProductionMapper;
 import com.dayou.mapper.MajorTargetMapper;
+import com.dayou.mapper.UserMapper;
 import com.dayou.service.IBusinessNumberService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.service.IMajorProductionService;
 import com.dayou.service.IMajorService;
 import com.dayou.service.IMajorTargetService;
 import com.dayou.vo.IdNameVO;
+import com.dayou.vo.MajorTargetSceneImageVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -53,6 +60,7 @@ public class MajorTargetServiceImpl extends ServiceImpl<MajorTargetMapper, Major
 
     @Autowired
     private IMajorTargetService majorTargetService;
+
     @Autowired
     private MajorProductionMapper majorProductionMapper;
 
@@ -62,6 +70,9 @@ public class MajorTargetServiceImpl extends ServiceImpl<MajorTargetMapper, Major
     @Autowired
     private IMajorService majorService;
 
+    @Autowired
+    private UserMapper userMapper;
+
     @Override
     public List<MajorTarget> getList(MajorTarget majorTarget){
         List<MajorTarget> list = majorTargetMapper.getList(majorTarget);
@@ -304,4 +315,22 @@ public class MajorTargetServiceImpl extends ServiceImpl<MajorTargetMapper, Major
         return Boolean.FALSE;
     }
 
+    @Override
+    public Page<MajorTargetSceneImageVO> getSceneImages(Page page, MajorTargetSceneImageVO image) {
+        Page<MajorTargetSceneImageVO> sceneImages = majorTargetMapper.getSceneImages(page, image);
+        List<MajorTargetSceneImageVO> records = sceneImages.getRecords();
+        records.stream().forEach(x->{
+            List<JSONObject> images = JSON.parseArray(x.getSceneImage(), JSONObject.class);
+            String url = (String) images.get(0).get("url");
+            x.setSceneImage(url);
+            List<Long> users = JSON.parseArray(x.getSiteIds(), Long.class);
+            if (CollectionUtil.isNotEmpty(users)){
+                List<User> userList = userMapper.selectList(new LambdaQueryWrapper<User>().in(User::getId, users).select(User::getName).ne(BaseEntity::getId, 1L));
+                List<String> names = userList.stream().map(User::getName).collect(Collectors.toList());
+                x.setSceneUsers(String.join(",",names));
+            }
+        });
+        return sceneImages;
+    }
+
 }