Browse Source

折旧费用、长期待摊费用、无形资产摊销费用汇总表

zhoulisky 9 months ago
parent
commit
2d696e896f

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

@@ -4,6 +4,7 @@ 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.AssetDTO;
 import org.sky.scientific.pojo.dto.XmAssetCostQueryParam;
 import org.sky.scientific.pojo.entity.AssetEntity;
@@ -41,10 +42,20 @@ public interface AssetMapper extends BaseMapper<AssetEntity> {
 	boolean physicalDeleteByIds(List<Long> ids);
 
 	/**
-	 * 折旧费用、长期待摊费用、无形资产摊销费用汇总表
+	 * 折旧费用、长期待摊费用、无形资产摊销费用汇总表-按年月
 	 * @param page
 	 * @param dto
 	 * @return
 	 */
-	List<XmAssetCostSummary> zjCqdtWxzctxFyHzb(IPage<XmAssetCostSummary> page, @Param("ew") XmAssetCostQueryParam dto);
+	@TenantIgnore
+	List<XmAssetCostSummary> zjCqdtWxzctxFyHzbByYearAndMonth(IPage<XmAssetCostSummary> page, @Param("ew") XmAssetCostQueryParam dto);
+
+	/**
+	 * 折旧费用、长期待摊费用、无形资产摊销费用汇总表-按月
+	 * @param page
+	 * @param dto
+	 * @return
+	 */
+	@TenantIgnore
+	List<XmAssetCostSummary> zjCqdtWxzctxFyHzbByYear(IPage<XmAssetCostSummary> page, @Param("ew") XmAssetCostQueryParam dto);
 }

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

@@ -85,8 +85,61 @@
         </if>
     </select>
 
-    <select id="zjCqdtWxzctxFyHzb" resultType="org.sky.scientific.pojo.vo.XmAssetCostSummary">
-
+    <select id="zjCqdtWxzctxFyHzbByYearAndMonth" resultType="org.sky.scientific.pojo.vo.XmAssetCostSummary">
+        SELECT DISTINCT(xmIds.xm_id) as xm_id,xm.XMBH,xm.XMMC,
+        (SELECT IFNULL(sum(v1.yanfa_tan_xiao),0) FROM yiqishebeiassetcostview v1 WHERE v1.xm_id = xmIds.xm_id and v1.year_and_month = #{ew.yearAndMonth} ) as yqsbzjfy,
+        (SELECT IFNULL(sum(v2.yanfa_fen_tan),0) FROM fangwujianzhuwuAssetCostView v2 WHERE v2.xm_id = xmIds.xm_id and v2.year_and_month =#{ew.yearAndMonth} ) as fwzjfy,
+        (SELECT IFNULL(sum(v3.ytxe*v3.syzb),0) FROM kd_xm_cqdtfy v3 WHERE v3.xm_id = xmIds.xm_id and v3.year_and_month = #{ew.yearAndMonth}) as cqdtfy,
+        (SELECT IFNULL(sum(v4.yanfaTanXiao),0) FROM wuxingAssetCostView v4 WHERE v4.xm_id = xmIds.xm_id and v4.year_and_month = #{ew.yearAndMonth}) as wxzcdtfy
+        FROM
+        (
+            SELECT xm_id FROM kd_xm_cqdtfy WHERE year_and_month = #{ew.yearAndMonth} and tenant_id = #{ew.tenantId}
+            UNION
+            SELECT xm_id FROM kd_xm_fixed_asset WHERE year_and_month = #{ew.yearAndMonth} and tenant_id = #{ew.tenantId}
+            UNION
+            SELECT xm_id FROM kd_xm_intangible_asset WHERE year_and_month = #{ew.yearAndMonth} and tenant_id = #{ew.tenantId}
+        )as xmIds
+        LEFT JOIN
+        (
+            SELECT
+                xm.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%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 = 'XMBH' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMBH) AS XMBH
+            FROM kd_xm xm
+            WHERE xm.is_deleted = 0
+        ) xm on xm.id = xmIds.xm_id
+        <where>
+            <if test="ew.xmmc!=null and ew.xmmc!=''">and xm.XMMC like concat('%',#{ew.xmmc},'%')</if>
+        </where>
+        GROUP BY xmIds.xm_id
     </select>
 
+    <select id="zjCqdtWxzctxFyHzbByYear" resultType="org.sky.scientific.pojo.vo.XmAssetCostSummary">
+        SELECT DISTINCT(xmIds.xm_id) as xm_id,xm.XMBH,xm.XMMC,
+        (SELECT IFNULL(sum(v1.yanfa_tan_xiao),0) FROM yiqishebeiassetcostview v1 WHERE v1.xm_id = xmIds.xm_id and LEFT(v1.year_and_month,4) = #{ew.yearAndMonth} ) as yqsbzjfy,
+        (SELECT IFNULL(sum(v2.yanfa_fen_tan),0) FROM fangwujianzhuwuAssetCostView v2 WHERE v2.xm_id = xmIds.xm_id and LEFT(v2.year_and_month,4) =#{ew.yearAndMonth} ) as fwzjfy,
+        (SELECT IFNULL(sum(v3.ytxe*v3.syzb),0) FROM kd_xm_cqdtfy v3 WHERE v3.xm_id = xmIds.xm_id and LEFT(v3.year_and_month,4) = #{ew.yearAndMonth}) as cqdtfy,
+        (SELECT IFNULL(sum(v4.yanfaTanXiao),0) FROM wuxingAssetCostView v4 WHERE v4.xm_id = xmIds.xm_id and LEFT(v4.year_and_month,4) = #{ew.yearAndMonth}) as wxzcdtfy
+        FROM
+        (
+        SELECT xm_id FROM kd_xm_cqdtfy WHERE LEFT(year_and_month,4) = #{ew.yearAndMonth} and tenant_id = #{ew.tenantId}
+        UNION
+        SELECT xm_id FROM kd_xm_fixed_asset WHERE LEFT(year_and_month,4) = #{ew.yearAndMonth} and tenant_id = #{ew.tenantId}
+        UNION
+        SELECT xm_id FROM kd_xm_intangible_asset WHERE LEFT(year_and_month,4) = #{ew.yearAndMonth} and tenant_id = #{ew.tenantId}
+        )as xmIds
+        LEFT JOIN
+        (
+            SELECT
+                xm.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') <![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 = 'XMBH' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMBH) AS XMBH
+            FROM kd_xm xm
+            WHERE xm.is_deleted = 0
+        ) xm on xm.id = xmIds.xm_id
+        <where>
+            <if test="ew.xmmc!=null and ew.xmmc!=''">and xm.XMMC like concat('%',#{ew.xmmc},'%')</if>
+        </where>
+        GROUP BY xmIds.xm_id
+    </select>
 </mapper>

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

@@ -132,7 +132,7 @@
             v1.ZCBM as 'asset.ZCBM' , v1.ZCMC as 'asset.ZCMC', v1.ZCLB as 'asset.ZCLB' , v1.YT as 'asset.YT',  v1.ZCYZ as 'asset.ZCYZ', v1.JCZ as 'asset.JCZ' , v1.YZJE as 'asset.YZJE', v1.zgs as 'asset.ZGS',
             v1.work_hours,
             v1.yanfa_fen_tan_lv, v1.yanfa_tan_xiao
-        from yisishebeiAssetCostView v1
+        from yiqishebeiAssetCostView v1
         LEFT JOIN
         (
             SELECT

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

@@ -86,16 +86,16 @@
     <resultMap id="XmIntangibleAssetCostVo" type="org.sky.scientific.pojo.vo.XmIntangibleAssetCostVo" extends="ResultMap">
         <result column="attendanceHours" property="attendanceHours"/>
         <result column="workHours" property="workHours"/>
+        <result column="yanfaFenTanLv" property="yanfaFenTanLv"/>
+        <result column="yanfaTanXiao" property="yanfaTanXiao"/>
     </resultMap>
     <select id="keyanwuxingzichantanxiaofeiyongfenpeibiao"
             resultMap="XmIntangibleAssetCostVo">
         SELECT
-            xa.xm_id, xm.xmmc, xm.xmbh,
-            xa.asset_id,asset.id as 'asset.id',asset.ZCBM as 'asset.ZCBM',asset.ZCMC as 'asset.ZCMC', asset.ZCLB as 'asset.ZCLB',asset.YT as 'asset.YT',asset.ZCYZ as 'asset.ZCYZ',asset.JCZ as 'asset.JCZ',asset.YZJE as 'asset.YZJE',
-            kar.total_hours as attendanceHours,
-            kxth.total_hours as workHours
-        FROM kd_xm_intangible_asset xa
-        LEFT JOIN kd_asset asset ON xa.asset_id = asset.id
+            v1.xm_id, xm.xmmc, xm.xmbh,
+            v1.asset_id, ZCBM as 'asset.ZCBM',ZCMC as 'asset.ZCMC', ZCLB as 'asset.ZCLB', GL as 'asset.GL',YT as 'asset.YT',ZCYZ as 'asset.ZCYZ',JCZ as 'asset.JCZ',YZJE as 'asset.YZJE',
+            v1.attendanceHours,v1.workHours,v1.yanfaFenTanLv,v1.yanfaTanXiao
+        FROM wuxingAssetCostView v1
         LEFT JOIN
         (
             SELECT
@@ -103,32 +103,60 @@
                 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 = 'XMBH' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMBH) AS XMBH
             FROM kd_xm xm
-        ) xm ON xm.id = xa.xm_id
-        LEFT JOIN
-        (
-            SELECT
-                unicode,LEFT(work_date, 6) AS year_and_month,IFNULL(SUM(work_hours), 0) AS total_hours
-            FROM kd_attendance_records
-            GROUP BY unicode, LEFT(work_date, 6)
-        ) kar ON kar.unicode = xa.user_unicode AND kar.year_and_month = xa.year_and_month
-        LEFT JOIN
-        (
-            SELECT
-                unicode,xm_id,LEFT(work_date, 6) AS year_and_month,IFNULL(SUM(work_hours), 0) AS total_hours
-            FROM kd_xm_technician_hours
-            GROUP BY unicode, xm_id, LEFT(work_date, 6)
-        ) kxth ON kxth.unicode = xa.user_unicode AND kxth.xm_id = xa.xm_id AND kxth.year_and_month = xa.year_and_month
-        WHERE xa.tenant_id = #{ew.tenantId} AND xa.year_and_month = #{ew.yearAndMonth}
+        ) xm ON xm.id = v1.xm_id
+        WHERE v1.tenant_id = #{ew.tenantId} AND v1.year_and_month = #{ew.yearAndMonth}
         <if test="ew.xmmc!=null and ew.xmmc!=''">and xm.xmmc like concat('%',#{ew.xmmc},'%')</if>
-        <if test="ew.zcmc!=null and ew.zcmc!=''">and asset.zcmc like concat('%',#{ew.zcmc},'%')</if>
-        <if test="ew.zclb!=null and ew.zclb!=''">and asset.zclb like concat('%',#{ew.zclb},'%')</if>
-        <if test="ew.yt!=null and ew.yt!=''">and asset.yt like concat('%',#{ew.yt},'%')</if>
-        <if test="ew.zcyzMin!=null and ew.zcyzMax!=null">and asset.zcyz between #{ew.zcyzMin} and #{ew.zcyzMax}</if>
-        <if test="ew.jczMin!=null and ew.jczMax!=null">and asset.jcz between #{ew.jczMin} and #{ew.jczMax}</if>
-        <if test="ew.yzjeMin!=null and ew.yzjeMax!=null">and asset.jzje between #{ew.yzjeMin} and #{ew.yzjeMax}</if>
-        <if test="ew.attendanceHoursMin!=null and ew.attendanceHoursMax!=null">and kar.total_hours between #{ew.attendanceHoursMin} and #{ew.attendanceHoursMax}</if>
-        <if test="ew.workHoursMin!=null and ew.workHoursMax!=null">and kxth.total_hours between #{ew.workHoursMin} and #{ew.workHoursMax}</if>
-     </select>
+        <if test="ew.zcmc!=null and ew.zcmc!=''">and v1.zcmc like concat('%',#{ew.zcmc},'%')</if>
+        <if test="ew.zclb!=null and ew.zclb!=''">and v1.zclb like concat('%',#{ew.zclb},'%')</if>
+        <if test="ew.yt!=null and ew.yt!=''">and v1.yt like concat('%',#{ew.yt},'%')</if>
+        <if test="ew.zcyzMin!=null and ew.zcyzMax!=null">and v1.zcyz between #{ew.zcyzMin} and #{ew.zcyzMax}</if>
+        <if test="ew.jczMin!=null and ew.jczMax!=null">and v1.jcz between #{ew.jczMin} and #{ew.jczMax}</if>
+        <if test="ew.yzjeMin!=null and ew.yzjeMax!=null">and v1.jzje between #{ew.yzjeMin} and #{ew.yzjeMax}</if>
+        <if test="ew.attendanceHoursMin!=null and ew.attendanceHoursMax!=null">and v1.attendanceHours between #{ew.attendanceHoursMin} and #{ew.attendanceHoursMax}</if>
+        <if test="ew.workHoursMin!=null and ew.workHoursMax!=null">and v1.workHours between #{ew.workHoursMin} and #{ew.workHoursMax}</if>
+    </select>
+<!--    <select id="keyanwuxingzichantanxiaofeiyongfenpeibiao"-->
+<!--            resultMap="XmIntangibleAssetCostVo">-->
+<!--        SELECT-->
+<!--            xa.xm_id, xm.xmmc, xm.xmbh,-->
+<!--            xa.asset_id,asset.id as 'asset.id',asset.ZCBM as 'asset.ZCBM',asset.ZCMC as 'asset.ZCMC', asset.ZCLB as 'asset.ZCLB',asset.YT as 'asset.YT',asset.ZCYZ as 'asset.ZCYZ',asset.JCZ as 'asset.JCZ',asset.YZJE as 'asset.YZJE',-->
+<!--            kar.total_hours as attendanceHours,-->
+<!--            kxth.total_hours as workHours-->
+<!--        FROM kd_xm_intangible_asset xa-->
+<!--        LEFT JOIN kd_asset asset ON xa.asset_id = asset.id-->
+<!--        LEFT JOIN-->
+<!--        (-->
+<!--            SELECT-->
+<!--                xm.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%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 = 'XMBH' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMBH) AS XMBH-->
+<!--            FROM kd_xm xm-->
+<!--        ) xm ON xm.id = xa.xm_id-->
+<!--        LEFT JOIN-->
+<!--        (-->
+<!--            SELECT-->
+<!--                unicode,LEFT(work_date, 6) AS year_and_month,IFNULL(SUM(work_hours), 0) AS total_hours-->
+<!--            FROM kd_attendance_records-->
+<!--            GROUP BY unicode, LEFT(work_date, 6)-->
+<!--        ) kar ON kar.unicode = xa.user_unicode AND kar.year_and_month = xa.year_and_month-->
+<!--        LEFT JOIN-->
+<!--        (-->
+<!--            SELECT-->
+<!--                unicode,xm_id,LEFT(work_date, 6) AS year_and_month,IFNULL(SUM(work_hours), 0) AS total_hours-->
+<!--            FROM kd_xm_technician_hours-->
+<!--            GROUP BY unicode, xm_id, LEFT(work_date, 6)-->
+<!--        ) kxth ON kxth.unicode = xa.user_unicode AND kxth.xm_id = xa.xm_id AND kxth.year_and_month = xa.year_and_month-->
+<!--        WHERE xa.tenant_id = #{ew.tenantId} AND xa.year_and_month = #{ew.yearAndMonth}-->
+<!--        <if test="ew.xmmc!=null and ew.xmmc!=''">and xm.xmmc like concat('%',#{ew.xmmc},'%')</if>-->
+<!--        <if test="ew.zcmc!=null and ew.zcmc!=''">and asset.zcmc like concat('%',#{ew.zcmc},'%')</if>-->
+<!--        <if test="ew.zclb!=null and ew.zclb!=''">and asset.zclb like concat('%',#{ew.zclb},'%')</if>-->
+<!--        <if test="ew.yt!=null and ew.yt!=''">and asset.yt like concat('%',#{ew.yt},'%')</if>-->
+<!--        <if test="ew.zcyzMin!=null and ew.zcyzMax!=null">and asset.zcyz between #{ew.zcyzMin} and #{ew.zcyzMax}</if>-->
+<!--        <if test="ew.jczMin!=null and ew.jczMax!=null">and asset.jcz between #{ew.jczMin} and #{ew.jczMax}</if>-->
+<!--        <if test="ew.yzjeMin!=null and ew.yzjeMax!=null">and asset.jzje between #{ew.yzjeMin} and #{ew.yzjeMax}</if>-->
+<!--        <if test="ew.attendanceHoursMin!=null and ew.attendanceHoursMax!=null">and kar.total_hours between #{ew.attendanceHoursMin} and #{ew.attendanceHoursMax}</if>-->
+<!--        <if test="ew.workHoursMin!=null and ew.workHoursMax!=null">and kxth.total_hours between #{ew.workHoursMin} and #{ew.workHoursMax}</if>-->
+<!--     </select>-->
 
     <delete id="physicalDeleteByIds">
         DELETE FROM kd_xm_intangible_asset

+ 15 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/AssetServiceImpl.java

@@ -18,6 +18,7 @@ import org.sky.core.log.exception.ServiceException;
 import org.sky.core.mp.base.BaseServiceImpl;
 import org.sky.core.mp.support.Condition;
 import org.sky.core.mp.support.Query;
+import org.sky.core.secure.utils.SecureUtil;
 import org.sky.core.tool.utils.*;
 import org.sky.scientific.excel.AssetExcel;
 import org.sky.scientific.mapper.AssetMapper;
@@ -165,8 +166,21 @@ public class AssetServiceImpl extends BaseServiceImpl<AssetMapper, AssetEntity>
 
 	@Override
 	public IPage<XmAssetCostSummary> zjCqdtWxzctxFyHzb(IPage<XmAssetCostSummary> page, XmAssetCostQueryParam dto) {
-		List<XmAssetCostSummary> list = baseMapper.zjCqdtWxzctxFyHzb(page, dto);
+		if(Func.isBlank(dto.getYearAndMonth())){
+			throw new ServiceException("参数yearAndMonth不能为空");
+		}
+		List<XmAssetCostSummary> list = null;
+		dto.setTenantId(SecureUtil.getTenantId());
+		if(dto.getYearAndMonth().length() == 6){
+			list = baseMapper.zjCqdtWxzctxFyHzbByYearAndMonth(page, dto);
+		}else if(dto.getYearAndMonth().length() == 4){
+			list = baseMapper.zjCqdtWxzctxFyHzbByYear(page, dto);
+		}else {
+			throw new ServiceException("参数yearAndMonth格式错误,yyyyMM或yyyy");
+		}
+
 		for (XmAssetCostSummary vo : list) {
+			vo.setTotal(vo.getYqsbzjfy() + vo.getFwzjfy() + vo.getCqdtfy() + vo.getWxzcdtfy());
 		}
 		return page.setRecords(list);
 	}