Browse Source

fix: 分红查询放开对公司的关联

chenjianhua 7 months ago
parent
commit
4bf14f9a34

+ 12 - 8
service-base/src/main/resources/mapper/DistributionMapper.xml

@@ -67,13 +67,12 @@
             PPW_EMAIL.distribution d
             JOIN PPW_EMAIL.pvn_fund_info info
             ON d.fund_id = info.fund_id
-            JOIN PPW_EMAIL.pvn_company_info c
-            ON info.trust_id = c.company_id
+            left JOIN PPW_EMAIL.pvn_company_info c
+            ON info.trust_id = c.company_id AND c.isvalid = 1
             JOIN PPW_EMAIL.nav n
             ON n.fund_id = d.fund_id and d.distribute_date=n.price_date
         WHERE d.isvalid = 1
             AND info.isvalid = 1
-            AND c.isvalid = 1
             AND n.isvalid = 1
         <if test="companyName != null and companyName !=''">
             and (c.company_name like concat('%',#{companyName},'%') or c.company_short_name like concat('%',#{companyName},'%'))
@@ -95,11 +94,16 @@
     <select id="countDistributionList" resultType="java.lang.Long"
             parameterType="com.simuwang.base.pojo.dto.query.DistributionPageQuery">
         select count(distinct d.id)
-        from PPW_EMAIL.distribution d
-        join PPW_EMAIL.pvn_fund_info info on d.fund_id = info.fund_id
-        join PPW_EMAIL.pvn_company_info c on info.trust_id = c.company_id
-        join PPW_EMAIL.nav n on n.fund_id = d.fund_id  and d.distribute_date=n.price_date
-        where d.isvalid=1 and info.isvalid =1 and c.isvalid =1 and n.isvalid=1
+        FROM
+        PPW_EMAIL.distribution d
+        JOIN PPW_EMAIL.pvn_fund_info info
+        ON d.fund_id = info.fund_id
+        left JOIN PPW_EMAIL.pvn_company_info c
+        ON info.trust_id = c.company_id AND c.isvalid = 1
+        JOIN PPW_EMAIL.nav n
+        ON n.fund_id = d.fund_id and d.distribute_date=n.price_date
+        WHERE d.isvalid = 1 AND info.isvalid = 1
+        AND n.isvalid = 1
         <if test="companyName != null and companyName !=''">
             and (c.company_name like concat('%',#{companyName},'%') or c.company_short_name like concat('%',#{companyName},'%'))
         </if>

+ 14 - 5
service-manage/src/main/java/com/simuwang/manage/service/impl/DistributionServiceImpl.java

@@ -75,6 +75,20 @@ public class DistributionServiceImpl implements DistributionService {
     @Override
     public ResultVo saveDistribution(DistributionVO distributionVO) {
         ResultVo vo = new ResultVo(true);
+        //判断是否存在当天净值
+        NavDO navDO = new NavDO();
+        navDO.setFundId(distributionVO.getFundId());
+        navDO.setNav(distributionVO.getNav());
+        navDO.setCumulativeNavWithdrawal(distributionVO.getCumulativeNavWithdrawal());
+        navDO.setPriceDate(DateUtils.parse(distributionVO.getDistributeDate(),DateUtils.YYYY_MM_DD));
+        if(StringUtil.isNull(distributionVO.getNav()) || StringUtil.isNull(distributionVO.getCumulativeNavWithdrawal())){
+            NavDO oldNav = navMapper.queryFundNav(navDO);
+            if(StringUtil.isNull(oldNav)){
+                vo.setData(false);
+                vo.setMsg("当天不存在净值数据,请补充");
+                return vo;
+            }
+        }
         DistributionDO distributionDO = new DistributionDO();
         distributionDO.setFundId(distributionVO.getFundId());
         distributionDO.setDistribution(distributionVO.getDistribution());
@@ -99,11 +113,6 @@ public class DistributionServiceImpl implements DistributionService {
             return vo;
         }
         //保存净值
-        NavDO navDO = new NavDO();
-        navDO.setFundId(distributionVO.getFundId());
-        navDO.setNav(distributionVO.getNav());
-        navDO.setCumulativeNavWithdrawal(distributionVO.getCumulativeNavWithdrawal());
-        navDO.setPriceDate(DateUtils.parse(distributionVO.getDistributeDate(),DateUtils.YYYY_MM_DD));
         NavDO oldNav = navMapper.queryFundNav(navDO);
         if(StringUtil.isNull(oldNav)){
             navDO.setUpdateTime(DateUtils.getNowDate());