Browse Source

3333333333

zhouli 7 months ago
parent
commit
2697081d76
31 changed files with 156 additions and 239 deletions
  1. 0 31
      doc/New 2.txt
  2. 2 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/A107_1Mapper.xml
  3. 2 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/AssetMapper.xml
  4. 1 1
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/CgJsbzMapper.xml
  5. 1 1
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/CgKylwMapper.xml
  6. 2 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/CgQtMapper.xml
  7. 1 1
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/CgRjzzqMapper.xml
  8. 1 1
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/CgZlMapper.xml
  9. 2 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmAssetHoursMapper.xml
  10. 12 16
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmBgrzMapper.xml
  11. 10 13
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmCostDetailsMapper.xml
  12. 1 1
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmCqdtfyMapper.xml
  13. 4 13
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmDesignCostMapper.java
  14. 2 38
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmDesignCostMapper.xml
  15. 13 7
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmDirectCostMapper.xml
  16. 2 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmFinanceMapper.xml
  17. 5 5
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmFixedAssetMapper.xml
  18. 8 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmGoodsMapper.xml
  19. 4 4
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmIntangibleAssetMapper.xml
  20. 8 8
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmJdxbgMapper.xml
  21. 4 4
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmJtbMapper.xml
  22. 2 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmLeaseMapper.xml
  23. 38 40
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmMapper.xml
  24. 0 10
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmOtherCostMapper.java
  25. 4 9
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmOtherCostMapper.xml
  26. 10 4
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmTechnicianHoursMapper.xml
  27. 11 11
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmTechnicianMapper.xml
  28. 2 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmWwxmCostMapper.xml
  29. 1 1
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmWwxmMapper.xml
  30. 2 3
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/YsWxzctxfyMapper.xml
  31. 1 1
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/YsZjfyycqdtfyMapper.xml

+ 0 - 31
doc/New 2.txt

@@ -1,31 +0,0 @@
-set @yearAndMonth='2025';
-set @tenantId = '882990';
-
-SELECT
-        xm.*, tmp.xm_stage,tmp.gov_bonus,
-				IFNULL((SELECT COUNT(DISTINCT unicode) FROM kd_xm_technician xt where xt.xm_id = xm.xm_id GROUP BY xt.year_and_month ORDER BY xt.year_and_month desc  limit 1),0) as technicianCount
-FROM 
-(
-    SELECT
-        xm.id as xm_id,xm.tenant_id, 
-        COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <= @yearAndMonth ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC,
-				xm.XMLY,xm.XMKZXS as kzxs,xm.YQCGXS as cgxs,xm.XMJSJJMB as jsjjmb,
-				xm.XMKSSJ as kssj,
-        COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <=  @yearAndMonth ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS jssj
-    FROM kd_xm xm
-) xm
-LEFT JOIN kd_107_1 tmp on tmp.xm_id = xm.xm_id and tmp.year_and_month = @yearAndMonth
-WHERE xm.tenant_id = @tenantId and left(xm.jssj,4) >= @yearAndMonth 
-
-
-
-
-
-
-				
-				
-				
-				
-				
-
-        

+ 2 - 2
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/A107_1Mapper.xml

@@ -11,10 +11,10 @@
             SELECT
                 xm.id as xm_id,xm.tenant_id,
                 xm.yjlx,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{year} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC,
+                COALESCE(get_xm_info(xm.id,'XMMC', #{year}),XMMC) AS XMMC,
                 xm.XMLY,xm.XMKZXS as kzxs,xm.YQCGXS as cgxs,xm.XMJSJJMB as jsjjmb,
                 xm.XMKSSJ as kssj,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]>  #{year} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS jssj
+                COALESCE(get_xm_info(xm.id,'XMJSSJ', #{year}) ,XMJSSJ) AS jssj
             FROM kd_xm xm
         ) xm
         LEFT JOIN kd_107_1 tmp on tmp.xm_id = xm.xm_id and tmp.year_and_month = #{year}

+ 2 - 2
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/AssetMapper.xml

@@ -127,7 +127,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = xmIds.xm_id
@@ -156,7 +156,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = xmIds.xm_id

+ 1 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/CgJsbzMapper.xml

@@ -36,7 +36,7 @@
         (
             select
                 m.id,
-                COALESCE(( select bgrz.BGHDZ from kd_xm_bgrz bgrz where bgrz.XM_ID = m.id and bgrz.ZDMC = 'XMMC' and bgrz.BGSXSJ <![CDATA[<=]]> NOW() order by bgrz.BGSXSJ desc limit 1 ), XMMC) as XMMC
+                COALESCE(get_xm_info(m.id,'XMMC', null), XMMC) as XMMC
             from kd_xm m
         ) xm on xm.id = z.xm_id
         where z.tenant_id = #{ew.tenantId}

+ 1 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/CgKylwMapper.xml

@@ -37,7 +37,7 @@
         (
             select
                 m.id,
-                COALESCE(( select bgrz.BGHDZ from kd_xm_bgrz bgrz where bgrz.XM_ID = m.id and bgrz.ZDMC = 'XMMC' and bgrz.BGSXSJ <![CDATA[<=]]> NOW() order by bgrz.BGSXSJ desc limit 1 ), XMMC) as XMMC
+                COALESCE(get_xm_info(m.id,'XMMC',null), XMMC) as XMMC
             from kd_xm m
         ) xm on xm.id = k.xm_id
         where k.tenant_id = #{ew.tenantId}

+ 2 - 2
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/CgQtMapper.xml

@@ -38,7 +38,7 @@
         (
             select
                 m.id,
-                COALESCE(( select bgrz.BGHDZ from kd_xm_bgrz bgrz where bgrz.XM_ID = m.id and bgrz.ZDMC = 'XMMC' and bgrz.BGSXSJ <![CDATA[<=]]> NOW() order by bgrz.BGSXSJ desc limit 1 ), XMMC) as XMMC
+                COALESCE(get_xm_info(m.id,'XMMC',null), XMMC) as XMMC
             from kd_xm m
         ) xm on xm.id = q.xm_id
         where q.tenant_id = #{ew.tenantId}
@@ -73,7 +73,7 @@
         (
             SELECT
                 xm.id as xm_id,xmbh,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS xmmc
+                COALESCE(get_xm_info(xm.id,'XMMC',null),XMMC) AS xmmc
             FROM kd_xm xm
         )xm on cg.xm_id = xm.xm_id
         WHERE cg.tenant_id=#{tenantId}

+ 1 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/CgRjzzqMapper.xml

@@ -36,7 +36,7 @@
         (
             select
                 m.id,
-                COALESCE(( select bgrz.BGHDZ from kd_xm_bgrz bgrz where bgrz.XM_ID = m.id and bgrz.ZDMC = 'XMMC' and bgrz.BGSXSJ <![CDATA[<=]]> NOW() order by bgrz.BGSXSJ desc limit 1 ), XMMC) as XMMC
+                COALESCE(get_xm_info(m.id,'XMMC',null), XMMC) as XMMC
             from kd_xm m
         ) xm on xm.id = r.xm_id
         where r.tenant_id = #{ew.tenantId}

+ 1 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/CgZlMapper.xml

@@ -42,7 +42,7 @@
         (
             select
                 m.id,
-                COALESCE(( select bgrz.BGHDZ from kd_xm_bgrz bgrz where bgrz.XM_ID = m.id and bgrz.ZDMC = 'XMMC' and bgrz.BGSXSJ <![CDATA[<=]]> NOW() order by bgrz.BGSXSJ desc limit 1 ), XMMC) as XMMC
+                COALESCE(get_xm_info(m.id,'XMMC',null), XMMC) as XMMC
             from kd_xm m
         ) xm on xm.id = z.xm_id
         where z.tenant_id = #{ew.tenantId}

+ 2 - 2
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmAssetHoursMapper.xml

@@ -50,9 +50,9 @@
 
             SELECT
             xm.id,xm.xmbh,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND (DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<]]> #{ew.yearAndMonth} or (DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') = #{ew.yearAndMonth} and bgrz.BGSXSJ <![CDATA[<=]]> now())) ORDER BY bgrz.BGSXSJ DESC,bgrz.create_time desc LIMIT 1),XMMC) AS XMMC,
+            COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC,
             xm.XMKSSJ,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND (DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<]]> #{ew.yearAndMonth} or (DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') = #{ew.yearAndMonth} and bgrz.BGSXSJ <![CDATA[<=]]> now())) ORDER BY bgrz.BGSXSJ DESC,bgrz.create_time desc LIMIT 1),XMJSSJ) AS XMJSSJ
+            COALESCE(get_xm_info(xm.id,'XMJSSJ',#{ew.yearAndMonth}),XMJSSJ) AS XMJSSJ
             FROM kd_xm xm
             WHERE xm.is_deleted = 0 and DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth}
         ) xm on xm.id = xa.xm_id

+ 12 - 16
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmBgrzMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="org.sky.scientific.mapper.XmBgrzMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="xmBgrzResultMap" type="org.sky.scientific.pojo.entity.XmBgrzEntity">
+    <resultMap id="ResultMap" type="org.sky.scientific.pojo.entity.XmBgrzEntity">
         <result column="id" property="id"/>
         <result column="tenant_id" property="tenantId"/>
         <result column="XM_ID" property="xmId"/>
@@ -22,7 +22,7 @@
         <result column="is_deleted" property="isDeleted"/>
     </resultMap>
 
-    <resultMap id="ResultVoMap" type="org.sky.scientific.pojo.vo.XmBgrzVO" extends="xmBgrzResultMap">
+    <resultMap id="ResultVoMap" type="org.sky.scientific.pojo.vo.XmBgrzVO" extends="ResultMap">
         <result column="xmbh" property="xmbh"/>
         <result column="xmmc" property="xmmc"/>
         <result column="xmsqdwid" property="xmsqdwid"/>
@@ -30,27 +30,23 @@
         <result column="attachment" property="attachment"/>
     </resultMap>
 
-    <sql id="sql_getXmmc">
-        select xm_id, bgrz.BGHDZ from kd_xm_bgrz bgrz where bgrz.ZDMC = "XMMC" and (DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<]]> ${yearAndMonth} or (DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') =${yearAndMonth} and bgrz.BGSXSJ <![CDATA[<=]]> now())) order by bgrz.BGSXSJ desc limit 1
-    </sql>
-
     <select id="selectBgrzPage" resultMap="ResultVoMap">
         SELECT
-        XM_ID,
-        xmbh,
-        xmmc,
-        xmsqdwid,
-        xmfzr,
-        rz.ZDMC,BGQDZ,BGHDZ,BGSXSJ,BGYY,rz.attachment
+            XM_ID,
+            xmbh,
+            xmmc,
+            xmsqdwid,
+            xmfzr,
+            rz.ZDMC,BGQDZ,BGHDZ,BGSXSJ,BGYY,rz.attachment
         FROM kd_xm_bgrz rz
         left join
         (
             SELECT
                 id, xmbh, xmkssj,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = m.id AND bgrz.ZDMC = 'XMMC' AND bgrz.BGSXSJ <![CDATA[<=]]> NOW() ORDER BY bgrz.BGSXSJ DESC LIMIT 1), m.XMMC ) as xmmc,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = m.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = m.id AND bgrz.ZDMC = 'XMFZR' AND bgrz.BGSXSJ <![CDATA[<=]]> NOW() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),m.XMFZR) as xmfzr,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = m.id AND bgrz.ZDMC = 'XMSQDWID' AND bgrz.BGSXSJ <![CDATA[<=]]> NOW() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),m.XMSQDWID) as xmsqdwid
+                COALESCE(get_xm_info(m.id, 'XMMC', null),m.XMMC) as xmmc,
+                COALESCE(get_xm_info(m.id, 'XMJSSJ', null),m.XMJSSJ) AS XMJSSJ,
+                COALESCE(get_xm_info(m.id, 'XMFZR', null),m.XMFZR) as xmfzr,
+                COALESCE(get_xm_info(m.id, 'XMSQDWID', null),m.XMSQDWID) as xmsqdwid
             FROM kd_xm m
         )xm on rz.xm_id = xm.id
         WHERE rz.is_deleted = 0

+ 10 - 13
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmCostDetailsMapper.xml

@@ -44,8 +44,7 @@
         (
         SELECT
         xm.id, xm.XMBH,
-        COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND
-        DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS
+        COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS
         XMMC
         FROM kd_xm xm
         WHERE xm.is_deleted = 0
@@ -64,8 +63,7 @@
         (
         SELECT
         xm.id, xm.XMBH,
-        COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND
-        DATE_FORMAT(bgrz.BGSXSJ,'%Y') = #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+        COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
         FROM kd_xm xm
         WHERE xm.is_deleted = 0
         ) xm on xm.id = d.xm_id
@@ -111,8 +109,7 @@
         (
         SELECT
         xm.id, xm.XMBH,
-        COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND
-        DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+        COALESCE(get_xm_info(xm.id,'XMMC',#{yearAndMonth}),XMMC) AS XMMC
         FROM kd_xm xm
         WHERE xm.is_deleted = 0
         ) xm on xm.id = kxcd.xm_id
@@ -157,7 +154,7 @@
         (
             SELECT
                 xm.id, xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC',#{yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = kxcd.xm_id
@@ -207,8 +204,8 @@
         (
             SELECT
                 xm.id, xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ
+                COALESCE(get_xm_info(xm.id,'XMMC',#{yearAndMonth}),XMMC) AS XMMC,
+                COALESCE(get_xm_info(xm.id,'XMJSSJ',#{yearAndMonth}),XMJSSJ) AS XMJSSJ
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = kxcd.xm_id
@@ -236,7 +233,7 @@
         (
             SELECT
                 xm.id, xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = p.xm_id
@@ -295,11 +292,11 @@
     <select id="xmysygjqst" resultType="com.alibaba.fastjson.JSONObject">
         SELECT
             id,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND bgrz.BGSXSJ <![CDATA[<=]]> NOW() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC,
+            COALESCE(get_xm_info(xm.id,'XMMC',null),XMMC) AS XMMC,
             (SELECT IFNULL(sum(amount), 0) FROM kd_xm_cost_details kxcd WHERE kxcd.xm_id = xm.id <if test="currentYear==1">and DATE_FORMAT(record_date,'%Y') = #{year}</if> and kxcd.tenant_id = #{tenantId}) as cost,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMYSZEMX' AND bgrz.BGSXSJ <![CDATA[<=]]> NOW() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMYSZEMX) AS XMYSZEMX
+            COALESCE(get_xm_info(xm.id,'XMYSZEMX', null),XMYSZEMX) AS XMYSZEMX
         FROM kd_xm xm
         WHERE xm.tenant_id = #{tenantId}
-        and #{year} between DATE_FORMAT(XMKSSJ, '%Y') and DATE_FORMAT(COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND bgrz.BGSXSJ <![CDATA[<=]]> NOW() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ), '%Y')
+        and #{year} between DATE_FORMAT(XMKSSJ, '%Y') and DATE_FORMAT(COALESCE(get_xm_info(xm.id,'XMJSSJ',null),XMJSSJ), '%Y')
     </select>
 </mapper>

+ 1 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmCqdtfyMapper.xml

@@ -50,7 +50,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id, 'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = c.xm_id

+ 4 - 13
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmDesignCostMapper.java

@@ -1,15 +1,14 @@
 
 package org.sky.scientific.mapper;
 
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
 import org.sky.core.tenant.annotation.TenantIgnore;
 import org.sky.scientific.pojo.dto.XmDesignCostQuery;
 import org.sky.scientific.pojo.entity.XmDesignCostEntity;
 import org.sky.scientific.pojo.vo.XmDesignCostVO;
-import org.sky.scientific.excel.XmDesignCostExcel;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.apache.ibatis.annotations.Param;
+
 import java.util.List;
 
 /**
@@ -42,14 +41,6 @@ public interface XmDesignCostMapper extends BaseMapper<XmDesignCostEntity> {
 
 
 	/**
-	 * 获取导出数据
-	 *
-	 * @param queryWrapper 查询条件
-	 * @return List<XmDesignCostExcel>
-	 */
-	List<XmDesignCostExcel> exportXmDesignCost(@Param("ew") Wrapper<XmDesignCostEntity> queryWrapper);
-
-	/**
 	 * 批量逻辑删除
 	 * @param ids
 	 * @return

+ 2 - 38
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmDesignCostMapper.xml

@@ -43,7 +43,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
         ) xm on xm.id = dc.xm_id
         WHERE dc.tenant_id = #{ew.tenantId} and date_format(dc.record_date, '%Y%m') = #{ew.yearAndMonth}
@@ -73,7 +73,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
         ) xm on xm.id = dc.xm_id
         WHERE
@@ -96,40 +96,4 @@
         </if>
     </select>
 
-<!--    <select id="selectXmDesignCostPageByYear" resultMap="ResultVoMap" parameterType="org.sky.scientific.pojo.dto.XmDesignCostQuery">-->
-<!--        select-->
-<!--        dc.*, xm.XMMC, xm.XMBH-->
-<!--        from kd_xm_design_cost dc-->
-<!--        LEFT JOIN-->
-<!--        (-->
-<!--            SELECT-->
-<!--                xm.id,-->
-<!--                xm.XMBH,-->
-<!--                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC-->
-<!--            FROM kd_xm xm-->
-<!--        ) xm on xm.id = dc.xm_id-->
-<!--        <where>-->
-<!--            <if test="ew.xmmc != null and ew.xmmc!=''">-->
-<!--                and xm.XMMC like concat('%',#{ew.xmmc},'%')-->
-<!--            </if>-->
-<!--            <if test="ew.contractName!=null and ew.contractName!=''">-->
-<!--                and dc.contract_name like concat('%',#{ew.contractName},'%')-->
-<!--            </if>-->
-<!--            <if test="ew.costType!=null and ew.costType!=''">-->
-<!--                and dc.cost_type = #{ew.costType}-->
-<!--            </if>-->
-<!--            <if test="ew.amountMin!=null and ew.amountMax!=null">-->
-<!--                and dc.amount between #{ew.amountMin} and #{ew.amountMax}-->
-<!--            </if>-->
-<!--            <if test="ew.recordDateMin!=null and ew.recordDateMax!=null">-->
-<!--                and date_format(dc.record_date,'%Y-%m-%d') between #{ew.recordDateMin} and #{ew.recordDateMax}-->
-<!--            </if>-->
-<!--        </where>-->
-<!--    </select>-->
-
-
-    <select id="exportXmDesignCost" resultType="org.sky.scientific.excel.XmDesignCostExcel">
-        SELECT * FROM kd_xm_design_cost ${ew.customSqlSegment}
-    </select>
-
 </mapper>

+ 13 - 7
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmDirectCostMapper.xml

@@ -33,7 +33,13 @@
     <select id="selectXmDirectCostPage" resultMap="ResultMap">
         select kxl.*, xm.xmmc, xm.xmbh
         from kd_xm_direct_cost kxl
-        left join kd_xm xm on xm.id = kxl.xm_id
+        left join
+        (
+            SELECT
+                m.id, m.xmbh,
+                COALESCE(get_xm_info(m.id, 'XMMC', #{ew.yearAndMonth}),XMMC) AS XMMC
+            FROM kd_xm m
+        ) xm on xm.id = kxl.xm_id
         where kxl.is_deleted = 0 and kxl.year_and_month = #{ew.yearAndMonth}
         <if test="ew.xmmc!=null and ew.xmbh!=''">and xm.xmmc like concat('%',#{ew.xmmc},'%')</if>
         <if test="ew.xmbh!=null and ew.xmbh!=''">and xm.xmbh like concat('%',#{ew.xmbh},'%')</if>
@@ -44,9 +50,9 @@
         SELECT
         id,
         XMBH,
-        COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC,
+        COALESCE(get_xm_info(xm.id, 'XMMC', #{yearAndMonth}),XMMC) AS XMMC,
         xm.XMKSSJ,
-        COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ,
+        COALESCE(get_xm_info(xm.id, 'XMJSSJ', #{yearAndMonth}),XMJSSJ) AS XMJSSJ,
         (SELECT IFNULL(sum(unit_price*use_quantity),0) FROM kd_xm_goods g WHERE xm_id=xm.id and g.year_and_month=#{yearAndMonth} and g.type ='材料') as cailiaofy,
         (SELECT IFNULL(sum(unit_price*use_quantity),0) FROM kd_xm_goods g WHERE xm_id=xm.id and g.year_and_month=#{yearAndMonth} and g.type ='燃料') as ranliaofy,
         (SELECT IFNULL(sum(unit_price*use_quantity),0) FROM kd_xm_goods g WHERE xm_id=xm.id and g.year_and_month=#{yearAndMonth} and g.type ='动力') as donglify,
@@ -56,7 +62,7 @@
         (SELECT IFNULL(sum(amount),0) FROM kd_xm_direct_cost xdc WHERE xm_id=xm.id and xdc.year_and_month=#{yearAndMonth} and xdc.type ='2') as fy7,
         (SELECT IFNULL(sum(amount),0) FROM kd_xm_direct_cost xdc WHERE xm_id=xm.id and xdc.year_and_month=#{yearAndMonth} and xdc.type ='3') as fy8
         FROM kd_xm xm
-        where #{yearAndMonth} between DATE_FORMAT(XMKSSJ, '%Y%m') and DATE_FORMAT(XMJSSJ,'%Y%m')
+        where #{yearAndMonth} between DATE_FORMAT(XMKSSJ, '%Y%m') and DATE_FORMAT(COALESCE(get_xm_info(xm.id, 'XMJSSJ', #{yearAndMonth}),XMJSSJ),'%Y%m')
         <if test="xmmc!=null">and xm.XMMC like concat('%',#{xmmc},'%')</if>
     </select>
 
@@ -64,9 +70,9 @@
         SELECT
         id,
         XMBH,
-        COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC,
+        COALESCE(get_xm_info(xm.id, 'XMMC', #{yearAndMonth}),XMMC) AS XMMC,
         xm.XMKSSJ,
-        COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ,
+        COALESCE(get_xm_info(xm.id, 'XMJSSJ', #{yearAndMonth}),XMJSSJ) AS XMJSSJ,
         (SELECT IFNULL(sum(unit_price*use_quantity),0) FROM kd_xm_goods g WHERE xm_id=xm.id and left(g.year_and_month,4)=#{yearAndMonth} and g.type ='材料') as cailiaofy,
         (SELECT IFNULL(sum(unit_price*use_quantity),0) FROM kd_xm_goods g WHERE xm_id=xm.id and left(g.year_and_month,4)=#{yearAndMonth} and g.type ='燃料') as ranliaofy,
         (SELECT IFNULL(sum(unit_price*use_quantity),0) FROM kd_xm_goods g WHERE xm_id=xm.id and left(g.year_and_month,4)=#{yearAndMonth} and g.type ='动力') as donglify,
@@ -76,7 +82,7 @@
         (SELECT IFNULL(sum(amount),0) FROM kd_xm_direct_cost xdc WHERE xm_id=xm.id and left(xdc.year_and_month,4)=#{yearAndMonth} and xdc.type ='2') as fy7,
         (SELECT IFNULL(sum(amount),0) FROM kd_xm_direct_cost xdc WHERE xm_id=xm.id and left(xdc.year_and_month,4)=#{yearAndMonth} and xdc.type ='3') as fy8
         FROM kd_xm xm
-        where #{yearAndMonth} between DATE_FORMAT(XMKSSJ, '%Y') and DATE_FORMAT(XMJSSJ,'%Y')
+        where #{yearAndMonth} between DATE_FORMAT(XMKSSJ, '%Y') and DATE_FORMAT(COALESCE(get_xm_info(xm.id, 'XMJSSJ', #{yearAndMonth}),XMJSSJ),'%Y')
         <if test="xmmc!=null">and XMMC like concat('%',#{xmmc},'%')</if>
     </select>
 

+ 2 - 2
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmFinanceMapper.xml

@@ -37,9 +37,9 @@
            SELECT
               xm.id,
               xm.XMBH,
-              COALESCE((SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC,
+              COALESCE(get_xm_info(xm.id, 'XMMC', #{ew.yearAndMonth}),XMMC) AS XMMC,
               xm.XMKSSJ,
-              COALESCE((SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ,
+              COALESCE(get_xm_info(xm.id, 'XMJSSJ', #{ew.yearAndMonth}),XMJSSJ) AS XMJSSJ,
               xm.lxpw,
               xm.lxbg,
               xm.qtzl

+ 5 - 5
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmFixedAssetMapper.xml

@@ -31,7 +31,7 @@
             SELECT
                 xm.id,
                 xm.XMKSSJ,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ
+                COALESCE(get_xm_info(xm.id,'XMJSSJ',#{yearAndMonth}),XMJSSJ) AS XMJSSJ
             FROM kd_xm xm
             WHERE xm.is_deleted = 0 and DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{yearAndMonth}
         ) xm on xm.id = xa.xm_id
@@ -49,7 +49,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = xa.xm_id
@@ -73,7 +73,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
         ) xm on xm.id = xa.xm_id
         WHERE left(xa.year_and_month,4 ) = #{ew.yearAndMonth} and asset.ZCLB = #{zclb}
@@ -100,7 +100,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = v1.xm_id
@@ -134,7 +134,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
         ) xm on xm.id = xa.xm_id
         WHERE xa.tenant_id = #{ew.tenantId} AND xa.year_and_month = #{ew.yearAndMonth} and asset.ZCLB = '房屋建筑物'

+ 8 - 2
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmGoodsMapper.xml

@@ -44,7 +44,13 @@
     <select id="selectXmGoodsPage" resultMap="ResultVoMap">
         select kxg.*, xm.xmmc, xm.xmbh
         from kd_xm_goods kxg
-        left join kd_xm xm on xm.id = kxg.xm_id
+        left join
+        (
+            SELECT
+                m.id, m.xmbh, m.XMKSSJ,
+                COALESCE(get_xm_info(m.id, 'XMMC', #{ew.yearAndMonth}),XMMC) AS XMMC
+            FROM kd_xm m
+        ) xm on xm.id = kxg.xm_id
         where kxg.is_deleted = 0 and kxg.year_and_month = #{ew.yearAndMonth}
         <if test="ew.xmmc!=null and ew.xmbh!=''">and xm.xmmc like concat('%',#{ew.xmmc},'%')</if>
         <if test="ew.xmbh!=null and ew.xmbh!=''">and xm.xmbh like concat('%',#{ew.xmbh},'%')</if>
@@ -62,7 +68,7 @@
         (
             SELECT
                 temp.id,xmbh,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS xmmc
+                COALESCE(get_xm_info(temp.id,'XMMC',#{yearAndMonth}),XMMC) AS xmmc
             FROM kd_xm temp
         ) xm on xm.id = xg.xm_id
         WHERE xg.type = #{type} and xg.year_and_month = #{yearAndMonth}

+ 4 - 4
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmIntangibleAssetMapper.xml

@@ -32,7 +32,7 @@
             SELECT
                 xm.id,
                 xm.XMKSSJ,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ
+                COALESCE(get_xm_info(xm.id,'XMJSSJ',#{yearAndMonth}),XMJSSJ) AS XMJSSJ
             FROM kd_xm xm
             WHERE xm.is_deleted = 0 and DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{yearAndMonth}
         ) xm on xm.id = xa.xm_id
@@ -50,7 +50,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = xa.xm_id
@@ -75,7 +75,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = xa.xm_id
@@ -102,7 +102,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE((SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC',#{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
         ) xm ON xm.id = v1.xm_id
         WHERE v1.tenant_id = #{ew.tenantId} AND v1.year_and_month = #{ew.yearAndMonth}

+ 8 - 8
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmJdxbgMapper.xml

@@ -51,10 +51,10 @@
         (
             SELECT
                 id, xmbh, xmkssj,yjlx,xmly,xmkzxs,yqcgxs,xmjsjjmb,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = m.id AND bgrz.ZDMC = 'XMMC' AND bgrz.BGSXSJ <![CDATA[<=]]> NOW() ORDER BY bgrz.BGSXSJ DESC LIMIT 1), m.XMMC ) as xmmc,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = m.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = m.id AND bgrz.ZDMC = 'XMFZR' AND bgrz.BGSXSJ <![CDATA[<=]]> NOW() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),m.XMFZR) as xmfzr,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = m.id AND bgrz.ZDMC = 'XMSQDWID' AND bgrz.BGSXSJ <![CDATA[<=]]> NOW() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),m.XMSQDWID) as xmsqdwid
+                COALESCE(get_xm_info(m.id, 'XMMC', null), m.XMMC) as xmmc,
+                COALESCE(get_xm_info(m.id, 'XMJSSJ', null),XMJSSJ) AS XMJSSJ,
+                COALESCE(get_xm_info(m.id, 'XMFZR', null),m.XMFZR) as xmfzr,
+                COALESCE(get_xm_info(m.id, 'XMSQDWID', null),m.XMSQDWID) as xmsqdwid
             FROM kd_xm m
         )xm on kxj.xm_id = xm.id
         left join kd_technician t on t.id = xm.xmfzr
@@ -68,11 +68,11 @@
         SELECT
             kxj.id, kxj.XM_ID,kxj.type,kxj.fill_date, kxj.attachment,
             xm.xmbh as 'xmEntity.xmbh',
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = kxj.XM_ID AND bgrz.ZDMC = 'XMMC' AND bgrz.BGSXSJ <![CDATA[<=]]> kxj.fill_date ORDER BY bgrz.BGSXSJ DESC LIMIT 1), xm.XMMC ) AS 'xmEntity.xmmc',
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMFZR' AND bgrz.BGSXSJ <![CDATA[<=]]> kxj.fill_date ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMFZR) AS 'xmEntity.xmfzr',
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMSQDWID' AND bgrz.BGSXSJ <![CDATA[<=]]> kxj.fill_date ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMSQDWID) AS 'xmEntity.xmsqdwid',
+            COALESCE(get_xm_info(kxj.XM_ID, 'XMMC', date_format(kxj.fill_date, '%Y%m%d')), xm.XMMC ) AS 'xmEntity.xmmc',
+            COALESCE(get_xm_info(kxj.XM_ID, 'XMFZR', date_format(kxj.fill_date, '%Y%m%d')),xm.XMFZR) AS 'xmEntity.xmfzr',
+            COALESCE(get_xm_info(kxj.XM_ID, 'XMSQDWID', date_format(kxj.fill_date, '%Y%m%d')),xm.XMSQDWID) AS 'xmEntity.xmsqdwid',
             xm.XMKSSJ as 'xmEntity.xmkssj',
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND bgrz.BGSXSJ <![CDATA[<=]]> kxj.fill_date ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS 'xmEntity.xmjssj',
+            COALESCE(get_xm_info(kxj.XM_ID, 'XMJSSJ', date_format(kxj.fill_date, '%Y%m%d')),XMJSSJ) AS 'xmEntity.xmjssj',
             xm.YJLX as 'xmEntity.yjlx',
             xm.XMLY as 'xmEntity.xmly',
             xm.XMKZXS as 'xmEntity.xmkzxs',

+ 4 - 4
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmJtbMapper.xml

@@ -30,11 +30,11 @@
         SELECT
             kxj.id, kxj.XM_ID, kxj.tbsj, kxj.ysbg,kxj.jsbg,kxj.cgbg,kxj.xybg,kxj.yspw,
             xm.xmbh as 'xmEntity.xmbh',
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = kxj.XM_ID AND bgrz.ZDMC = 'XMMC' AND bgrz.BGSXSJ <![CDATA[<=]]> kxj.tbsj ORDER BY bgrz.BGSXSJ DESC LIMIT 1), xm.XMMC ) AS 'xmEntity.xmmc',
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMFZR' AND bgrz.BGSXSJ <![CDATA[<=]]> kxj.tbsj ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMFZR) AS 'xmEntity.xmfzr',
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMSQDWID' AND bgrz.BGSXSJ <![CDATA[<=]]> kxj.tbsj ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMSQDWID) AS 'xmEntity.xmsqdwid',
+            COALESCE(get_xm_info(kxj.XM_ID,'XMMC',date_format(kxj.tbsj,'%Y%m%d')), xm.XMMC ) AS 'xmEntity.xmmc',
+            COALESCE(get_xm_info(kxj.XM_ID,'XMFZR',date_format(kxj.tbsj,'%Y%m%d')),xm.XMFZR) AS 'xmEntity.xmfzr',
+            COALESCE(get_xm_info(kxj.XM_ID,'XMSQDWID',date_format(kxj.tbsj,'%Y%m%d')),xm.XMSQDWID) AS 'xmEntity.xmsqdwid',
             xm.XMKSSJ as 'xmEntity.xmkssj',
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND bgrz.BGSXSJ <![CDATA[<=]]> kxj.tbsj ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMJSSJ) AS 'xmEntity.xmjssj',
+            COALESCE(get_xm_info(kxj.XM_ID,'XMJSSJ',date_format(kxj.tbsj,'%Y%m%d')),xm.XMJSSJ) AS 'xmEntity.xmjssj',
             xm.YJLX as 'xmEntity.yjlx',
             xm.XMLY as 'xmEntity.xmly',
             xm.XMKZXS as 'xmEntity.xmkzxs',

+ 2 - 2
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmLeaseMapper.xml

@@ -41,7 +41,7 @@
         left join (
             SELECT
                 temp.id,xmbh,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS xmmc
+                COALESCE(get_xm_info(temp.id,'XMMC', #{ew.yearAndMonth}),XMMC) AS xmmc
             FROM kd_xm temp
         ) xm on xm.id = kxl.xm_id
         where kxl.is_deleted = 0 and kxl.year_and_month = #{ew.yearAndMonth}
@@ -72,7 +72,7 @@
         (
             SELECT
                 temp.id,xmbh,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS xmmc
+                COALESCE(get_xm_info(temp.id,'XMMC', #{yearAndMonth}),XMMC) AS xmmc
             FROM kd_xm temp
         ) xm on xm.id = xl.xm_id
         WHERE  xl.year_and_month = #{yearAndMonth}

+ 38 - 40
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmMapper.xml

@@ -55,10 +55,10 @@
         SELECT
             xm.id,
             xm.XMBH,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'STATUS' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),status) AS status,
+            COALESCE(get_xm_info(xm.id,'XMMC', #{ew.yearAndMonth}),XMMC) AS XMMC,
+            COALESCE(get_xm_info(xm.id,'STATUS', #{ew.yearAndMonth}),status) AS status,
             xm.XMKSSJ,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ
+            COALESCE(get_xm_info(xm.id,'XMJSSJ', #{ew.yearAndMonth}),XMJSSJ) AS XMJSSJ
         FROM kd_xm xm
         WHERE DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth}
     </select>
@@ -67,12 +67,12 @@
         SELECT
             xm.id,
             xm.XMBH,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{year} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC,
+            COALESCE(get_xm_info(xm.id,'XMMC', #{year}),XMMC) AS XMMC,
             xm.XMKSSJ,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{year} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'STATUS' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{year} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),STATUS) AS status
+            COALESCE(get_xm_info(xm.id,'XMJSSJ', #{year}),XMJSSJ) AS XMJSSJ,
+            COALESCE(get_xm_info(xm.id,'STATUS', #{year}),STATUS) AS status
         FROM kd_xm xm
-        WHERE #{year} between DATE_FORMAT(XMKSSJ, '%Y') and DATE_FORMAT(XMJSSJ, '%Y')
+        WHERE #{year} between DATE_FORMAT(XMKSSJ, '%Y') and DATE_FORMAT(COALESCE(get_xm_info(xm.id,'XMJSSJ', #{year}),XMJSSJ), '%Y')
     </select>
 
 <!--    <select id="summaryPage" resultType="org.sky.scientific.pojo.vo.XmSummary">-->
@@ -142,12 +142,11 @@
     </select>
 
     <select id="selectYszb" resultType="org.sky.scientific.pojo.vo.XmYszbVO">
-        SELECT xm.id as xmId,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'xmmc' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1), xm.XMMC ) AS xmmc,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMSQDWID' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMSQDWID) AS xmsqdwid,
-            xm.XMKSSJ,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMJSSJ) AS xmjssj,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMYSZEMX' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMYSZEMX) AS XMYSZEMX,
+        SELECT xm.id as xmId,xm.XMKSSJ,
+            COALESCE(get_xm_info(xm.id, 'XMMC', null), xm.XMMC) AS xmmc,
+            COALESCE(get_xm_info(xm.id, 'XMSQDWID', null),xm.XMSQDWID) AS xmsqdwid,
+            COALESCE(get_xm_info(xm.id, 'XMJSSJ', null),xm.XMJSSJ) AS xmjssj,
+            COALESCE(get_xm_info(xm.id, 'XMYSZEMX', null),xm.XMYSZEMX) AS XMYSZEMX,
             (select ifnull(sum(ZZSC*PJRGFY),0) from kd_ys_ryrgfy where XM_ID = #{xmId}) as ryrgfy,
             (select ifnull(sum(yong_liang*dan_jia+YSJE+ZLFYYS),0) from kd_ys_zjtrfy where XM_ID = #{xmId}) as zjtrfy,
             (select ifnull(sum(ZZSC*(select ifnull(YZJE,0) from kd_asset where id = asset_id)+CQDTFYYSJE),0) from kd_ys_zjfyycqdtfy t where XM_ID = #{xmId}) as zjfyycqdtfy,
@@ -162,12 +161,12 @@
 
     <select id="selectByXmIdAndYearMonth" resultMap="ResultVoMap" parameterType="java.util.Map">
         SELECT
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'xmmc' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<=]]> #{param2} ORDER BY bgrz.BGSXSJ DESC LIMIT 1), XMMC ) AS XMMC,
+            COALESCE(get_xm_info(xm.id,'XMMC', #{param2}), XMMC) AS XMMC,
             XMBH,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMSQDWID' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<=]]> #{param2} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMSQDWID) AS XMSQDWID,
+            COALESCE(get_xm_info(xm.id,'XMSQDWID', #{param2}),XMSQDWID) AS XMSQDWID,
             xm.XMKSSJ,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<=]]> #{param2} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = id AND bgrz.ZDMC = 'XMFZR' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<=]]> #{param2} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMFZR) AS XMFZR,
+            COALESCE(get_xm_info(xm.id,'XMJSSJ', #{param2}),XMJSSJ) AS XMJSSJ,
+            COALESCE(get_xm_info(xm.id,'XMFZR', #{param2}),XMFZR) AS XMFZR,
             XMLY,
             XMKZXS,
             YQCGXS,
@@ -179,14 +178,13 @@
 
     <select id="selectByXmId" resultMap="ResultVoMap" parameterType="java.lang.Long">
         SELECT
-            id,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'xmmc' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1), XMMC ) AS XMMC,
-            XMBH,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMFZR' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMFZR) AS XMFZR,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMSQDWID' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMSQDWID) AS XMSQDWID,
-            xm.XMKSSJ,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'STATUS' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),STATUS) AS STATUS,
+            id, XMBH,xm.XMKSSJ,
+            COALESCE(get_xm_info(xm.id,'XMMC', null), XMMC) AS XMMC,
+            COALESCE(get_xm_info(xm.id,'XMFZR', null),XMFZR) AS XMFZR,
+            COALESCE(get_xm_info(xm.id,'XMSQDWID', null),xm.XMSQDWID) AS XMSQDWID,
+
+            COALESCE(get_xm_info(xm.id,'XMJSSJ', null),XMJSSJ) AS XMJSSJ,
+            COALESCE(get_xm_info(xm.id,'STATUS', null),STATUS) AS STATUS,
             YJLX,
             XMLY,
             XMKZXS,
@@ -204,11 +202,11 @@
     <select id="selectByXmIdList" resultMap="ResultVoMap">
         SELECT
             id, XMBH,XMKSSJ,create_time,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'xmmc' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1), XMMC ) AS XMMC,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMFZR' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMFZR) AS XMFZR,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMSQDWID' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMSQDWID) AS XMSQDWID,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'STATUS' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),STATUS) AS STATUS
+            COALESCE(get_xm_info(xm.id,'XMMC', null), XMMC ) AS XMMC,
+            COALESCE(get_xm_info(xm.id,'XMFZR', null),XMFZR) AS XMFZR,
+            COALESCE(get_xm_info(xm.id,'XMSQDWID', null),xm.XMSQDWID) AS XMSQDWID,
+            COALESCE(get_xm_info(xm.id,'XMJSSJ', null),XMJSSJ) AS XMJSSJ,
+            COALESCE(get_xm_info(xm.id,'STATUS', null),STATUS) AS STATUS
         FROM kd_xm xm
         where id in <foreach item="xmId" collection="xmIdList" separator="," open="(" close=")" index="index">#{xmId}</foreach>
     </select>
@@ -220,10 +218,10 @@
         where xm.is_deleted = 0
         <if test="xmmc!=null and xmmc!='' ">
           <if test="yearAndMonth!=null and yearAndMonth!=''">
-              and COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) = #{xmmc}
+              and COALESCE(get_xm_info(xm.id,'XMMC', #{yearAndMonth}),XMMC) = #{xmmc}
           </if>
             <if test="yearAndMonth==null or yearAndMonth!=''">
-                and COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) = #{xmmc}
+                and COALESCE(get_xm_info(xm.id,'XMMC', #{yearAndMonth}),XMMC) = #{xmmc}
             </if>
         </if>
         <if test="xmbh!=null and xmbh!=''">and xmbh = #{xmbh}</if>
@@ -233,30 +231,30 @@
         SELECT
             id,
             XMBH,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC,
+            COALESCE(get_xm_info(xm.id,'XMMC', #{yearAndMonth}),XMMC) AS XMMC,
             xm.XMKSSJ,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ
+            COALESCE(get_xm_info(xm.id,'XMJSSJ', #{yearAndMonth}),XMJSSJ) AS XMJSSJ
         FROM kd_xm xm
-        where #{yearAndMonth} between DATE_FORMAT(XMKSSJ, '%Y%m') and DATE_FORMAT(XMJSSJ,'%Y%m')
+        where #{yearAndMonth} between DATE_FORMAT(XMKSSJ, '%Y%m') and DATE_FORMAT(COALESCE(get_xm_info(xm.id,'XMJSSJ', #{yearAndMonth}),XMJSSJ),'%Y%m')
     </select>
 
     <select id="selectAssistList" resultType="com.alibaba.fastjson.JSONObject">
              SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC,
+                COALESCE(get_xm_info(xm.id,'XMMC', #{ew.yearAndMonth}),XMMC) AS XMMC,
                 xm.XMKSSJ,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ
+                COALESCE(get_xm_info(xm.id,'XMJSSJ', #{yearAndMonth}),XMJSSJ) AS XMJSSJ
             FROM kd_xm xm
-            WHERE #{ew.yearAndMonth} between DATE_FORMAT(XMKSSJ, '%Y') and DATE_FORMAT(XMJSSJ,'%Y')
-            <if test="ew.xmmc != null and ew.xmmc != ''">and xm.xmmc like concat('%',#{ew.xmmc},'%')</if>
+            WHERE #{ew.yearAndMonth} between DATE_FORMAT(XMKSSJ, '%Y') and DATE_FORMAT(COALESCE(get_xm_info(xm.id,'XMJSSJ', #{yearAndMonth}),XMJSSJ),'%Y')
+            <if test="ew.xmmc != null and ew.xmmc != ''">and COALESCE(get_xm_info(xm.id,'XMMC', #{ew.yearAndMonth}),XMMC) like concat('%',#{ew.xmmc},'%')</if>
             <if test="ew.xmbh!=null and ew.xmbh!=''">and xm.xmbh like concat('%',#{ew.xmbh},'%')</if>
      </select>
 
     <select id="getXmmcAndXmbhByXmId" resultType="com.alibaba.fastjson.JSONObject">
         SELECT
             id as xmId,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'xmmc' and bgrz.BGSXSJ <![CDATA[<=]]> now() ORDER BY bgrz.BGSXSJ DESC LIMIT 1), XMMC ) AS xmmc,
+            COALESCE(get_xm_info(xm.id,'XMMC',null), XMMC ) AS xmmc,
             xmbh
         FROM kd_xm xm
         where id = #{xmId}

+ 0 - 10
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmOtherCostMapper.java

@@ -1,12 +1,10 @@
 
 package org.sky.scientific.mapper;
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 import org.sky.core.tenant.annotation.TenantIgnore;
-import org.sky.scientific.excel.XmOtherCostExcel;
 import org.sky.scientific.pojo.dto.XmOtherCostQuery;
 import org.sky.scientific.pojo.entity.XmOtherCostEntity;
 
@@ -40,13 +38,5 @@ public interface XmOtherCostMapper extends BaseMapper<XmOtherCostEntity> {
 	@TenantIgnore
 	List<XmOtherCostEntity> selectXmOtherCostPageByYear(IPage<XmOtherCostEntity> page, @Param("ew") XmOtherCostQuery param);
 
-	/**
-	 * 获取导出数据
-	 *
-	 * @param queryWrapper 查询条件
-	 * @return List<XmOtherCostExcel>
-	 */
-	List<XmOtherCostExcel> exportXmOtherCost(@Param("ew") Wrapper<XmOtherCostEntity> queryWrapper);
-
 	boolean physicalDeleteByIds(List<Long> ids);
 }

+ 4 - 9
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmOtherCostMapper.xml

@@ -39,13 +39,13 @@
         (
             SELECT
                 xm.id,xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC', #{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
          ) xm on xm.id = xoc.xm_id
         where
         xoc.tenant_id = #{ew.tenantId}
         and date_format(record_date, '%Y%m') = #{ew.yearAndMonth}
-        <if test="ew.xmmc != null and ew.xmmc!=''">and xm.XMMC like concat('%',#{ew.xmmc},'%')</if>
+        <if test="ew.xmmc != null and ew.xmmc!=''">and XMMC like concat('%',#{ew.xmmc},'%')</if>
         <if test="ew.subjectId!=null">and xoc.subject_id = #{ew.subjectId}</if>
         <if test="ew.recordDateMin!=null and ew.recordDateMax!=null">and date_format(xoc.record_date,'%Y-%m-%d') between #{ew.recordDateMin} and #{ew.recordDateMax}</if>
     </select>
@@ -57,20 +57,15 @@
         (
             SELECT
                 xm.id,xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC', #{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
         ) xm on xm.id = xoc.xm_id
         where
         xoc.tenant_id = #{ew.tenantId}
         and date_format(record_date, '%Y%m') between concat(#{ew.yearAndMonth},'01') and concat(#{ew.yearAndMonth},'12')
-        <if test="ew.xmmc != null and ew.xmmc!=''">and xm.XMMC like concat('%',#{ew.xmmc},'%')</if>
+        <if test="ew.xmmc != null and ew.xmmc!=''">and XMMC like concat('%',#{ew.xmmc},'%')</if>
         <if test="ew.subjectId!=null">and xoc.subject_id = #{ew.subjectId}</if>
         <if test="ew.recordDateMin!=null and ew.recordDateMax!=null">and date_format(xoc.record_date,'%Y-%m-%d') between #{ew.recordDateMin} and #{ew.recordDateMax}</if>
         order by xoc.create_time desc
     </select>
-
-    <select id="exportXmOtherCost" resultType="org.sky.scientific.excel.XmOtherCostExcel">
-        SELECT * FROM kd_xm_other_cost ${ew.customSqlSegment}
-    </select>
-
 </mapper>

+ 10 - 4
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmTechnicianHoursMapper.xml

@@ -44,12 +44,12 @@
         LEFT JOIN (
             SELECT
                 temp.id as xm_id, XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'xmmc' AND (DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<]]> #{ew.yearAndMonth} or (DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') = #{ew.yearAndMonth} and bgrz.BGSXSJ <![CDATA[<=]]> now())) ORDER BY bgrz.BGSXSJ DESC,bgrz.create_time desc LIMIT 1), temp.XMMC ) AS XMMC
+                COALESCE(get_xm_info(temp.id,'XMMC', #{ew.yearAndMonth}), temp.XMMC ) AS XMMC
             FROM kd_xm temp
         ) xm ON xt.xm_id = xm.xm_id
         WHERE xt.year_and_month = #{ew.yearAndMonth}
         <if test="ew.xmId!=null">and xm.xm_id = #{ew.xmId}</if>
-        <if test="ew.xmmc!=null and ew.xmmc!=''">and xm.xmmc like concat(concat('%', #{ew.xmmc}), '%')</if>
+        <if test="ew.xmmc!=null and ew.xmmc!=''">and xm.XMMC like concat(concat('%', #{ew.xmmc}), '%')</if>
         <if test="ew.name!=null and ew.name!=''">and t.name like concat(concat('%', #{ew.name}), '%')</if>
         <if test="ew.number!=null and ew.number!=''">and t.number like concat(concat('%', #{ew.number}), '%')</if>
         <if test="ew.idCard!=null and ew.idCard!=''">and t.id_card like concat(concat('%', #{ew.idCard}), '%')</if>
@@ -152,8 +152,14 @@
         SELECT
             h.tenant_id as tenantId, xm.id as xmId, xm.XMBH as xmbh,h.unicode, h.work_date as workDate , h.work_hours as workHours
         FROM kd_xm_technician_hours h
-        LEFT JOIN kd_xm xm on xm.id = h.xm_id
-        WHERE LEFT(h.work_date, 6) = #{yearAndMonth}
+        left join
+        (
+            SELECT m.id, m.XMKSSJ,
+                COALESCE(get_xm_info(m.id, 'XMJSSJ', #{yearAndMonth}),XMJSSJ) AS XMJSSJ
+            FROM kd_xm m
+            WHERE m.is_deleted = 0 and DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{yearAndMonth}
+        ) xm on xm.id = h.xm_id
+         WHERE LEFT(h.work_date, 6) = #{yearAndMonth}
     </select>
 
     <delete id="clear">

+ 11 - 11
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmTechnicianMapper.xml

@@ -67,7 +67,7 @@
         LEFT JOIN kd_technician t on xt.unicode = t.unicode and t.year_and_month = #{ew.yearAndMonth}
         LEFT JOIN (
             SELECT temp.id as xm_id, XMBH,
-                   COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'xmmc' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') >= #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1), temp.XMMC ) AS XMMC
+                    COALESCE(get_xm_info(temp.id,'XMMC', #{ew.yearAndMonth}), temp.XMMC ) AS XMMC
             FROM kd_xm temp
         ) xm ON xt.xm_id = xm.xm_id
         WHERE xt.year_and_month = #{ew.yearAndMonth}
@@ -109,7 +109,7 @@
         LEFT JOIN kd_technician t on t.unicode = m.unicode and t.year_and_month = #{ew.yearAndMonth}
         LEFT JOIN (
             SELECT temp.id as xm_id, XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'xmmc' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') >= #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1), temp.XMMC ) AS XMMC
+                COALESCE(get_xm_info(temp.id,'XMMC', #{ew.yearAndMonth}),temp.XMMC ) AS XMMC
             FROM kd_xm temp
         ) xm ON m.xm_id = xm.xm_id
         WHERE m.year_and_month = #{ew.yearAndMonth}
@@ -137,8 +137,7 @@
         LEFT JOIN kd_technician t on t.unicode = m.unicode and left(t.year_and_month,4) = #{ew.yearAndMonth}
         LEFT JOIN (
             SELECT temp.id as xm_id, XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'xmmc' AND
-                DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') >= #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1), temp.XMMC ) AS XMMC
+                COALESCE(get_xm_info(temp.id,'XMMC', #{ew.yearAndMonth}), temp.XMMC ) AS XMMC
             FROM kd_xm temp
         ) xm ON m.xm_id = xm.xm_id
         WHERE LEFT(m.year_and_month,4) = #{ew.yearAndMonth}
@@ -195,7 +194,7 @@
         LEFT JOIN (
             SELECT
                 id,XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'xmmc' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y') >= #{year} ORDER BY bgrz.BGSXSJ DESC LIMIT 1), temp.XMMC ) AS XMMC
+                COALESCE(get_xm_info(temp.id,'XMMC', #{year}),temp.XMMC ) AS XMMC
             FROM kd_xm temp
         ) xm ON xt.xm_id = xm.id
         WHERE xt.unicode = #{unicode} and LEFT(xt.year_and_month, 4) = #{year}
@@ -248,7 +247,7 @@
         LEFT JOIN kd_salary s on s.unicode = m.unicode and s.year_and_month = #{ew.yearAndMonth}
         LEFT JOIN (
             SELECT temp.id, XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') >= #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1), temp.XMMC ) AS XMMC
+                COALESCE(get_xm_info(temp.id, 'XMMC', #{ew.yearAndMonth}), temp.XMMC ) AS XMMC
             FROM kd_xm as  temp
         ) xm ON m.xm_id = xm.id
         WHERE m.tenant_id = #{ew.tenantId} and m.year_and_month = #{ew.yearAndMonth}
@@ -288,7 +287,7 @@
         ) as t on t.unicode = m.unicode
         LEFT JOIN (
             SELECT temp.id, XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y') >= #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1), temp.XMMC ) AS XMMC
+                COALESCE(get_xm_info(temp.id, 'XMMC', #{ew.yearAndMonth}), temp.XMMC ) AS XMMC
             FROM kd_xm temp
         ) xm ON m.xm_id = xm.id
         WHERE m.tenant_id = #{ew.tenantId} and LEFT(m.year_and_month,4) = #{ew.yearAndMonth}
@@ -321,7 +320,7 @@
         FROM kd_xm_technician xm
         LEFT JOIN (
             SELECT temp.id, XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') >= #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1), temp.XMMC ) AS XMMC
+                COALESCE(get_xm_info(temp.id, 'XMMC', #{ew.yearAndMonth}), temp.XMMC ) AS XMMC
             FROM kd_xm as  temp
         ) m ON m.id = xm.xm_id
         WHERE xm.tenant_id = #{ew.tenantId} and xm.year_and_month = #{ew.yearAndMonth}
@@ -352,9 +351,10 @@
         (SELECT IFNULL(sum(s.medical_insurance_bc),0) FROM kd_salary s WHERE s.unicode in (select distinct (tmp.unicode) from kd_xm_technician tmp WHERE tmp.xm_id = xm.xm_id and left(tmp.year_and_month,4) = #{ew.yearAndMonth}) AND left(s.year_and_month,4) = #{ew.yearAndMonth}) AS medical_insurance_bc
         FROM kd_xm_technician xm
         LEFT JOIN (
-        SELECT temp.id, XMBH,
-        COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y') >= #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1), temp.XMMC ) AS XMMC
-        FROM kd_xm as  temp
+            SELECT
+                temp.id, XMBH,
+                COALESCE(get_xm_info(temp.id, 'XMMC', #{ew.yearAndMonth}), temp.XMMC ) AS XMMC
+            FROM kd_xm as  temp
         ) m ON m.id = xm.xm_id
         WHERE xm.tenant_id = #{ew.tenantId} and LEFT(xm.year_and_month,4) = #{ew.yearAndMonth}
         <if test="ew.xmmc!=null and ew.xmmc!=''">and m.XMMC like concat('%',#{ew.xmmc},'%')</if>

+ 2 - 2
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmWwxmCostMapper.xml

@@ -42,7 +42,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id, 'XMMC', #{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = m.xm_id
@@ -63,7 +63,7 @@
             SELECT
                 xm.id,
                 xm.XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMMC' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') = #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMMC) AS XMMC
+                COALESCE(get_xm_info(xm.id,'XMMC', #{ew.yearAndMonth}),XMMC) AS XMMC
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = m.xm_id

+ 1 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmWwxmMapper.xml

@@ -53,7 +53,7 @@
         LEFT JOIN (
             SELECT
                 temp.id as xm_id, XMBH,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = temp.id AND bgrz.ZDMC = 'xmmc' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') >= #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1), temp.XMMC ) AS XMMC
+                COALESCE(get_xm_info(temp.id, 'XMMC', #{yearAndMonth}), temp.XMMC ) AS XMMC
             FROM kd_xm temp
         ) xm ON w.xm_id = xm.xm_id
         WHERE w.year_and_month = LEFT(#{yearAndMonth},4)

+ 2 - 3
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/YsWxzctxfyMapper.xml

@@ -47,10 +47,9 @@
             SELECT
                 xm.id,
                 xm.XMKSSJ,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ
+                COALESCE(get_xm_info(xm.id, 'XMJSSJ', #{yearAndMonth}),XMJSSJ) AS XMJSSJ
             FROM kd_xm xm
-            WHERE xm.is_deleted = 0 and DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{yearAndMonth}
-        ) xm on xm.id = xa.xm_id
+         ) xm on xm.id = xa.xm_id
         WHERE #{yearAndMonth} between DATE_FORMAT(xm.XMKSSJ, '%Y%m') and DATE_FORMAT(xm.XMJSSJ,'%Y%m')
     </select>
 

+ 1 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/YsZjfyycqdtfyMapper.xml

@@ -55,7 +55,7 @@
             SELECT
                 xm.id,
                 xm.XMKSSJ,
-                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ
+                COALESCE(get_xm_info(xm.id,'XMJSSJ',#{yearAndMonth}),XMJSSJ) AS XMJSSJ
             FROM kd_xm xm
             WHERE xm.is_deleted = 0 and DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{yearAndMonth}
         ) xm on xm.id = xa.xm_id