wucl 3 місяців тому
батько
коміт
47810bd9ae

+ 26 - 0
biz-base/src/main/java/com/dayou/controller/PersonalFacePriceController.java

@@ -1,7 +1,10 @@
 package com.dayou.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.common.RestResponse;
 import com.dayou.dto.PersonalFacePriceQueryDTO;
+import com.dayou.entity.PersonalFacePrice;
 import com.dayou.service.IPersonalFacePriceService;
 import com.dayou.vo.DayouPersonalPriceVO;
 import com.dayou.vo.ExternalFacePriceVO;
@@ -65,4 +68,27 @@ public class PersonalFacePriceController extends BaseController {
         ExternalFacePriceVO ret = personalFacePriceService.externalPersonalPriceByCommunity(facePriceQuery);
         return RestResponse.success(ret);
     }
+
+    /**
+     * 执行口估
+     * @param facePrice
+     * @return
+     */
+    @PostMapping("")
+    public RestResponse<Boolean> doFacePrice(@RequestBody PersonalFacePrice facePrice) {
+        Boolean ret = personalFacePriceService.doFacePrice(facePrice);
+        return RestResponse.success(ret);
+    }
+
+    /**
+     * 分页查询口估执行记录
+     * @param facePrice
+     * @param page
+     * @return
+     */
+    @GetMapping("")
+    public RestResponse<IPage<PersonalFacePrice>> getPage(PersonalFacePrice facePrice, Page page){
+        IPage<PersonalFacePrice> ret = personalFacePriceService.getPage(page,facePrice);
+        return RestResponse.success(ret);
+    }
 }

+ 15 - 0
biz-base/src/main/resources/application-prod.yml

@@ -36,6 +36,21 @@ spring:
             connection-timeout: 30000
             idle-timeout: 600000
             max-lifetime: 1800000
+        dydb:
+          url: jdbc:mysql://192.168.0.8:3306/p_dydb?autoReconnect=true&useUnicode=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true
+          driver-class-name: com.mysql.cj.jdbc.Driver
+          username: test
+          password: test
+          initialSize: 10 #初始化连接数D
+          minIdle: 10 #最小空闲连接数
+          max-active: 100 #最大连接数
+          maxWait: 60000 #最大等待时间ms(获取不到连接后多久超时)
+          hikari:
+            minimum-idle: 5
+            maximum-pool-size: 200
+            connection-timeout: 30000
+            idle-timeout: 600000
+            max-lifetime: 1800000
 
 
 dfs:

+ 2 - 2
common/src/main/java/com/dayou/utils/AddressUtil.java

@@ -151,14 +151,14 @@ public class AddressUtil {
                 }
             }
         } catch (Exception e) {
-            ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR,"小区名称解析失败");
+            ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR,"口估地址不规范");
         }
         return null;
     }
 
 
     public static void main(String[] args) {
-        String location = "测试订单";
+        String location = "公平街办涌泉锦泉街98号锦里光华10栋2单元1层1号";
         //String location = "成都市天府新区万安镇麓山大道二段20号附9号麓山国际3栋2单元2层3号住宅";
         System.out.println(getRoadNumberAddress(location));
         AddressDTO addressDTO = AddressUtil.parseAddress(location);

+ 2 - 0
common/src/main/java/com/dayou/utils/DateUtils.java

@@ -540,6 +540,8 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
                 return DateUtils.addMonths(new Date(),-3);
             case "一月内":
                 return DateUtils.addMonths(new Date(),-1);
+            case "不限":
+                return DateUtils.addYears(new Date(),-10);
             default:
                 return DateUtils.addYears(new Date(),-1);
         }

+ 7 - 1
dao/src/main/java/com/dayou/mapper/PersonalFacePriceMapper.java

@@ -1,16 +1,22 @@
 package com.dayou.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dayou.entity.PersonalFacePrice;
 import com.dayou.vo.DayouPersonalPriceVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
 import java.util.List;
 
-public interface PersonalFacePriceMapper {
+public interface PersonalFacePriceMapper extends BaseMapper<PersonalFacePrice> {
 
     List<DayouPersonalPriceVO> queryByFuzzyAddress(@Param("address") String roadNumberAddress, @Param("valueTiming") Date startDate);
 
     List<String> queryCommunityNameByFuzzyAddress(@Param("address") String address);
 
     List<DayouPersonalPriceVO> queryByFuzzyCommunityName(@Param("community")String community, @Param("valueTiming")Date valueTiming);
+
+    IPage<PersonalFacePrice> getPage(Page page, @Param("facePrice") PersonalFacePrice facePrice);
 }

+ 45 - 0
dao/src/main/resources/mapper/PersonalFacePriceMapper.xml

@@ -94,4 +94,49 @@
 	10
     </select>
 
+    <select id="getPage" parameterType="com.dayou.entity.PersonalFacePrice" resultType="com.dayou.entity.PersonalFacePrice">
+        SELECT
+            pfp.id,
+            pfp.query_target,
+            pfp.query_type,
+            pfp.face_price,
+            pfp.face_acreage,
+            pfp.face_amount,
+            pfp.dy_avg_price,
+            pfp.deal_price,
+            pfp.up_price,
+            pfp.dy_example_num,
+            pfp.external_example_num,
+            pfp.limit_date,
+            pfp.value_timing,
+            pfp.user_id,
+            pfp.created,
+            pfp.deleted,
+            u.name as userName
+        FROM
+            personal_face_price pfp
+                LEFT JOIN user u ON u.id = pfp.user_id
+        WHERE
+            pfp.deleted = 0
+        <if test="facePrice!=null and facePrice.userName !=null and  facePrice.userName !=''">
+            and u.name like concat('%',#{facePrice.userName},'%')
+        </if>
+        <if test="facePrice!=null and facePrice.queryTarget !=null and  facePrice.queryTarget !=''">
+            and pfp.query_target like concat('%',#{facePrice.queryTarget},'%')
+        </if>
+        <if test="facePrice!=null and facePrice.limitDate !=null and  facePrice.limitDate !=''">
+            and pfp.limit_date = #{facePrice.limitDate}
+        </if>
+        <if test="facePrice!=null and facePrice.queryType !=null and  facePrice.queryType !=''">
+            and pfp.query_type = #{facePrice.queryType}
+        </if>
+        <if test="facePrice!=null and facePrice.startDate!=null and facePrice.startDate!=''">
+            and pfp.value_timing &gt;= #{facePrice.startDate}
+        </if>
+        <if test="facePrice!=null and facePrice.endDate!=null and facePrice.endDate!=''">
+            and pfp.value_timing &lt;= #{facePrice.endDate}
+        </if>
+         order by pfp.created DESC
+    </select>
+
 </mapper>

+ 83 - 0
domain/src/main/java/com/dayou/entity/PersonalFacePrice.java

@@ -0,0 +1,83 @@
+package com.dayou.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.dayou.common.BaseEntity;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+public class PersonalFacePrice extends BaseEntity {
+
+    /**
+     * 口估查询标的
+     */
+    private String queryTarget;
+    /**
+     * 口估查询方式
+     */
+    private String queryType;
+    /**
+     * 口估单价
+     */
+    private BigDecimal facePrice;
+    /**
+     * 口估面积
+     */
+    private BigDecimal faceAcreage;
+    /**
+     * 口估总价
+     */
+    private BigDecimal faceAmount;
+    /**
+     * 大友均价
+     */
+    private BigDecimal dyAvgPrice;
+    /**
+     * 系统成交价
+     */
+    private BigDecimal dealPrice;
+    /**
+     * 系统挂牌价
+     */
+    private BigDecimal upPrice;
+    /**
+     * 大友案例个数
+     */
+    private Integer dyExampleNum;
+    /**
+     * 系统案例个数
+     */
+    private Integer externalExampleNum;
+    /**
+     * 口估查询范围
+     */
+    private String limitDate;
+    /**
+     * 价值时点
+     */
+    private LocalDate valueTiming;
+    /**
+     * 口估人员
+     */
+    private Long userId;
+
+    /**
+     * 口估人员名字
+     */
+    @TableField(exist = false)
+    private String userName;
+
+    /**
+     * 查询开始日期
+     */
+    @TableField(exist = false)
+    private String startDate;
+
+    /**
+     * 查询结束日期
+     */
+    @TableField(exist = false)
+    private String endDate;
+}

+ 14 - 1
service/src/main/java/com/dayou/service/IPersonalFacePriceService.java

@@ -1,12 +1,16 @@
 package com.dayou.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.dayou.dto.PersonalFacePriceQueryDTO;
+import com.dayou.entity.PersonalFacePrice;
 import com.dayou.vo.DayouPersonalPriceVO;
 import com.dayou.vo.ExternalFacePriceVO;
 
 import java.util.List;
 
-public interface IPersonalFacePriceService {
+public interface IPersonalFacePriceService extends IService<PersonalFacePrice> {
 
     /**
      * 大友个贷评估价 地址
@@ -35,4 +39,13 @@ public interface IPersonalFacePriceService {
      * @return
      */
     ExternalFacePriceVO externalPersonalPriceByCommunity(PersonalFacePriceQueryDTO facePriceQuery);
+
+    /**
+     * 执行口估
+     * @param facePrice
+     * @return
+     */
+    Boolean doFacePrice(PersonalFacePrice facePrice);
+
+    IPage<PersonalFacePrice> getPage(Page page, PersonalFacePrice facePrice);
 }

+ 22 - 1
service/src/main/java/com/dayou/service/impl/PersonalFacePriceServiceImpl.java

@@ -2,14 +2,19 @@ package com.dayou.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.dto.AddressDTO;
 import com.dayou.dto.PersonalFacePriceQueryDTO;
+import com.dayou.entity.PersonalFacePrice;
 import com.dayou.mapper.PersonalFacePriceMapper;
 import com.dayou.service.IExternalDyDataBaseService;
 import com.dayou.service.IGlobalConfigService;
 import com.dayou.service.IPersonalFacePriceService;
 import com.dayou.utils.AddressUtil;
 import com.dayou.utils.DateUtils;
+import com.dayou.utils.LoginContext;
 import com.dayou.vo.DayouPersonalPriceVO;
 import com.dayou.vo.ExternalFacePriceVO;
 import com.dayou.vo.ExternalPersonalVO;
@@ -18,6 +23,7 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -25,7 +31,7 @@ import static com.dayou.enums.GlobalConfigEnum.SYS;
 import static com.dayou.enums.GlobalConfigEnum.Sys.*;
 
 @Service
-public class PersonalFacePriceServiceImpl implements IPersonalFacePriceService {
+public class PersonalFacePriceServiceImpl extends ServiceImpl<PersonalFacePriceMapper, PersonalFacePrice> implements IPersonalFacePriceService {
 
     @Autowired
     private PersonalFacePriceMapper personalFacePriceMapper;
@@ -132,6 +138,21 @@ public class PersonalFacePriceServiceImpl implements IPersonalFacePriceService {
         return queryExternalDataByCommunityNames(communityNames,startDate);
     }
 
+    @Override
+    public Boolean doFacePrice(PersonalFacePrice facePrice) {
+        Long currentUserId = LoginContext.getCurrentUserId();
+        facePrice.setUserId(currentUserId);
+        facePrice.setValueTiming(LocalDate.now());
+        facePrice.setFaceAmount(facePrice.getFaceAcreage().multiply(facePrice.getFacePrice()));
+        return this.save(facePrice);
+    }
+
+    @Override
+    public IPage<PersonalFacePrice> getPage(Page page, PersonalFacePrice facePrice) {
+        IPage<PersonalFacePrice> result = personalFacePriceMapper.getPage(page,facePrice);
+        return result;
+    }
+
 
     /**
      * 移除路名相同,但行政区域不同的元素

+ 1 - 1
sql/update_sql.sql

@@ -838,7 +838,7 @@ ALTER TABLE assets_evaluation_target ADD KEY `evaluation_purpose_id` (`evaluatio
 ALTER TABLE assets_evaluation_target ADD KEY `statement_no` (`statement_no`) USING BTREE;
 
 /**
-  以上SQL已同步到测试环境
+  以上SQL已同步到测试环境/正式环境
   同步日期:2025-04-25
   操作人:苟耕铨
  */