zhoulisky 10 months ago
parent
commit
ec91095b0c
16 changed files with 173 additions and 80 deletions
  1. 7 3
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/AssetEntity.java
  2. 3 1
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/SalaryEntity.java
  3. 1 1
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/XmAssetEntity.java
  4. 13 3
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/YsZjfyycqdtfyEntity.java
  5. 3 3
      kd-service/kd-scientific/src/main/java/org/sky/scientific/controller/AssetController.java
  6. 2 1
      kd-service/kd-scientific/src/main/java/org/sky/scientific/excel/AssetExcel.java
  7. 7 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/AssetMapper.xml
  8. 5 3
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/SalaryMapper.xml
  9. 5 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmAssetMapper.java
  10. 44 12
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmAssetMapper.xml
  11. 8 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/YsZjfyycqdtfyMapper.java
  12. 24 5
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/YsZjfyycqdtfyMapper.xml
  13. 7 15
      kd-service/kd-scientific/src/main/java/org/sky/scientific/service/IAssetService.java
  14. 2 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/service/IXmAssetService.java
  15. 8 23
      kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/AssetServiceImpl.java
  16. 34 8
      kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/XmAssetServiceImpl.java

+ 7 - 3
kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/AssetEntity.java

@@ -11,6 +11,7 @@ import org.sky.core.tool.utils.DateUtil;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serial;
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -58,12 +59,15 @@ public class AssetEntity extends TenantEntity {
 	private Integer ysysm;
 
 	@Schema(description = "资产原值(元)")
-	private Integer zcyz;
+	private BigDecimal zcyz;
 
 	@Schema(description = "净残值(%)")
 	private Double jcz;
-	 
+
 	@Schema(description = "月折旧额/月摊销额(元)")
-	private Integer yzje;
+	private BigDecimal yzje;
+
+	@Schema(description = "状态,0:正常,1:停用,2:已足额折旧'")
+	private Integer status;
 
 }

+ 3 - 1
kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/SalaryEntity.java

@@ -3,6 +3,7 @@ package org.sky.scientific.pojo.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.sky.core.tenant.mp.TenantEntity;
@@ -21,7 +22,8 @@ import java.math.BigDecimal;
 @EqualsAndHashCode(callSuper = true)
 public class SalaryEntity extends TenantEntity {
 
-	@Schema(description = "技术人员id主键")
+	@Schema(description = "技术人员ID")
+	@NotNull(message = "参数technicianId缺失或错误")
 	private Long technicianId;
 
 	@Schema(description = "所属年月,如:202505")

+ 1 - 1
kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/XmAssetEntity.java

@@ -49,7 +49,7 @@ public class XmAssetEntity extends TenantEntity {
 	@Schema(description = "资产ID")
 	private Long assetId;
 
-	@Schema(description = "资产信息")
 	@TableField(exist = false)
+	@Schema(description = "资产信息",hidden = true)
 	private AssetEntity asset;
 }

+ 13 - 3
kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/YsZjfyycqdtfyEntity.java

@@ -1,6 +1,7 @@
 
 package org.sky.scientific.pojo.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
@@ -9,6 +10,7 @@ import lombok.EqualsAndHashCode;
 import org.sky.core.tenant.mp.TenantEntity;
 
 import java.io.Serial;
+import java.math.BigDecimal;
 
 /**
  * 项目预算-折旧费用与长期待摊费用 实体类
@@ -33,9 +35,17 @@ public class YsZjfyycqdtfyEntity extends TenantEntity {
 	@NotNull(message = "请选择资产")
 	private Long assetId;
 
-//	@Schema(description = "资产编码")
-//	@NotBlank(message = "请选择资产")
-//	private String zcbm;
+	@Schema(description = "资产编码")
+	@TableField(exist = false)
+	private String zcbm;
+
+	@Schema(description = "资产名称")
+	@TableField(exist = false)
+	private String zcmc;
+
+	@Schema(description = "月折旧额/月摊销额(元)")
+	@TableField(exist = false)
+	private BigDecimal yzje;
 
 	@Schema(description = "在项目中的工作时长(月)")
 	private Integer zzsc;

+ 3 - 3
kd-service/kd-scientific/src/main/java/org/sky/scientific/controller/AssetController.java

@@ -75,7 +75,7 @@ public class AssetController extends KdController {
 	@ApiOperationSupport(order = 4)
 	@Operation(summary = "新增", description  = "传入zc")
 	public R save(@Valid @RequestBody AssetEntity asset) {
-		return R.status(service.save(asset));
+		return R.status(service.saveAsset(asset));
 	}
 
 	@PostMapping("/update")
@@ -120,7 +120,7 @@ public class AssetController extends KdController {
 	@ApiOperationSupport(order = 20)
 	@Operation(summary = "科研仪器设备明细表-分页")
 	public R<IPage<XmAssetEntity>> pageXm(XmAssetEntity xmAsset, Query query) {
-		IPage<XmAssetEntity> pages = xmAssetService.keyanyiqishebeimingxibiao_fenye(Condition.getPage(query), xmAsset);
+		IPage<XmAssetEntity> pages = xmAssetService.keyanyiqishebeimingxibiao_page(Condition.getPage(query), xmAsset);
 		return R.data(pages);
 	}
 
@@ -128,6 +128,6 @@ public class AssetController extends KdController {
 	@ApiOperationSupport(order = 21)
 	@Operation(summary = "科研仪器设备明细表-直接引用")
 	public R<Boolean> fetchData(String yearAndMonth) {
-		return R.status(service.keyanyiqishebeimingxibiao_zhijieyinyong(yearAndMonth));
+		return R.status(xmAssetService.keyanyiqishebeimingxibiao_zhijieyinyong(yearAndMonth));
 	}
 }

+ 2 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/excel/AssetExcel.java

@@ -14,6 +14,7 @@ import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
 import java.io.Serial;
+import java.math.BigDecimal;
 import java.util.Date;
 
 
@@ -80,6 +81,6 @@ public class AssetExcel implements Serializable {
 
 	@ColumnWidth(20)
 	@ExcelProperty("月折旧额/月摊销额")
-	private Integer yzje;
+	private BigDecimal yzje;
 
 }

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

@@ -27,6 +27,13 @@
         <result column="is_deleted" property="isDeleted"/>
     </resultMap>
 
+    <sql id="basicColumns">
+        asset.id as 'asset.id',
+        asset.ZCBM as 'asset.ZCBM' ,asset.ZCMC as 'asset.ZCMC' ,asset.ZCLB as 'asset.ZCLB',
+        asset.GL as 'asset.GL',asset.YT as 'asset.YT',asset.KSSJ as 'asset.KSSJ',asset.SYSM as 'asset.SYSM',
+        asset.YSYSM as 'asset.YSYSM',asset.ZCYZ as 'asset.ZCYZ',asset.JCZ as 'asset.JCZ',asset.YZJE as 'asset.YZJE',asset.status AS 'asset.status'
+    </sql>
+
     <select id="selectAssetPage" resultMap="ResultMap">
         SELECT t.*
         FROM kd_asset t

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

@@ -67,6 +67,7 @@
 
     <select id="selectSalaryPage" resultMap="ResultVoMap">
         SELECT
+        s.technician_id,
         t.name,
         t.number,
         t.id_card,
@@ -127,9 +128,10 @@
     <select id="fetchLastYearData" resultMap="ResultMap">
         SELECT *
         FROM kd_salary
-        WHERE year_and_month = #{lastYear} and technician_id in (
-        SELECT t.id FROM kd_technician t
-        WHERE LEFT(t.year_and_month, 4) = #{currentYear}
+        WHERE year_and_month = #{lastYear} and technician_id in
+        (
+            SELECT t.id FROM kd_technician t
+            WHERE LEFT(t.year_and_month, 4) = #{currentYear}
         )
     </select>
 

+ 5 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmAssetMapper.java

@@ -2,6 +2,8 @@
 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.scientific.pojo.entity.XmAssetEntity;
 
 import java.util.List;
@@ -21,4 +23,7 @@ public interface XmAssetMapper extends BaseMapper<XmAssetEntity> {
 	 */
 	List<XmAssetEntity> keyanyiqishebeimingxibiao_getLastMonthData(String yearAndMonth);
 
+	List<XmAssetEntity> keyanyiqishebeimingxibiao_monthly(IPage<XmAssetEntity> page, @Param("ew") XmAssetEntity xmAsset);
+
+	List<XmAssetEntity> keyanyiqishebeimingxibiao_year(IPage<XmAssetEntity> page, @Param("ew")XmAssetEntity xmAsset);
 }

+ 44 - 12
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmAssetMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.sky.scientific.mapper.XmAssetMapper">
 
-    <resultMap id="XmAssetResultMap" type="org.sky.scientific.pojo.entity.XmAssetEntity">
+    <resultMap id="ResultMap" type="org.sky.scientific.pojo.entity.XmAssetEntity">
         <id column="id" property="id"/>
         <result column="tenant_id" property="tenantId"/>
         <result column="year_and_month" property="yearAndMonth"/>
@@ -18,20 +18,52 @@
     </resultMap>
 
     <select id="keyanyiqishebeimingxibiao_getLastMonthData"
-            resultMap="XmAssetResultMap">
+            resultMap="ResultMap">
         SELECT xa.*
         FROM kd_xm_asset xa
-                 INNER JOIN
-             (
-                 SELECT
-                     xm.id,
-                     COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMKSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMKSSJ) AS 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
-                 FROM kd_xm xm
-                 WHERE xm.is_deleted = 0
-                   and DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{yearAndMonth}
-             ) xm on xm.id = xa.xm_id
+        INNER JOIN
+        (
+            SELECT
+                xm.id,
+                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMKSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMKSSJ) AS 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
+            FROM kd_xm xm
+            WHERE xm.is_deleted = 0 and DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{yearAndMonth}
+        ) xm on xm.id = xa.xm_id
         WHERE xa.year_and_month = #{yearAndMonth} and #{yearAndMonth} between DATE_FORMAT(xm.XMKSSJ, '%Y%m') and DATE_FORMAT(xm.XMJSSJ,'%Y%m')
     </select>
 
+    <select id="keyanyiqishebeimingxibiao_monthly" resultMap="ResultMap">
+        SELECT xa.*,xm.xmmc, xm.xmbh,<include refid="org.sky.scientific.mapper.AssetMapper.basicColumns"/>
+        FROM kd_xm_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
+            WHERE xm.is_deleted = 0
+        ) xm on xm.id = xa.xm_id
+        WHERE xa.year_and_month = #{ew.yearAndMonth}
+    </select>
+
+    <select id="keyanyiqishebeimingxibiao_year" resultMap="ResultMap">
+        SELECT xa.xm_id, xa.asset_id, <include refid="org.sky.scientific.mapper.AssetMapper.basicColumns"/>
+        FROM kd_xm_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
+            WHERE xm.is_deleted = 0
+        ) xm on xm.id = xa.xm_id
+        WHERE left(xa.year_and_month,4 ) = #{ew.yearAndMonth}
+        GROUP BY asset.ZCBM
+    </select>
+
 </mapper>

+ 8 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/YsZjfyycqdtfyMapper.java

@@ -43,4 +43,12 @@ public interface YsZjfyycqdtfyMapper extends BaseMapper<YsZjfyycqdtfyEntity> {
 	 * @return int
 	 */
     int physicalDeleteByIds(List<Long> ids);
+
+	/**
+	 * 获取指定年月的资产数据
+	 *
+	 * @param yearAndMonth 年月
+	 * @return List<YsZjfyycqdtfyEntity>
+	 */
+	List<YsZjfyycqdtfyEntity> selectByYearAndMonth(String yearAndMonth);
 }

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

@@ -3,13 +3,15 @@
 <mapper namespace="org.sky.scientific.mapper.YsZjfyycqdtfyMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="ysZjfyycqdtfyResultMap" type="org.sky.scientific.pojo.entity.YsZjfyycqdtfyEntity">
+    <resultMap id="ResultMap" type="org.sky.scientific.pojo.entity.YsZjfyycqdtfyEntity">
         <result column="id" property="id"/>
         <result column="tenant_id" property="tenantId"/>
         <result column="XM_ID" property="xmId"/>
         <result column="asset_id" property="assetId"/>
         <result column="ZCBM" property="zcbm"/>
+        <result column="ZCMC" property="zcmc"/>
         <result column="ZZSC" property="zzsc"/>
+        <result column="YZJE" property="yzje"/>
         <result column="CQDTFYMC" property="cqdtfymc"/>
         <result column="CQDTFYYSJE" property="cqdtfyysje"/>
         <result column="create_user" property="createUser"/>
@@ -21,7 +23,7 @@
         <result column="is_deleted" property="isDeleted"/>
     </resultMap>
 
-    <resultMap id="ResultVoMap" type="org.sky.scientific.pojo.vo.YsZjfyycqdtfyVO" extends="ysZjfyycqdtfyResultMap">
+    <resultMap id="ResultVoMap" type="org.sky.scientific.pojo.vo.YsZjfyycqdtfyVO" extends="ResultMap">
         <association property="zcEntity" column="ZCBM" select="org.sky.scientific.mapper.AssetMapper.selectLastOneByZcbm"/>
     </resultMap>
 
@@ -35,8 +37,10 @@
 
 
     <select id="selectList" resultMap="ResultVoMap">
-        select * from kd_ys_zjfyycqdtfy
-        where is_deleted = 0
+        select z.*, s.yzje,s.zcmc
+        from kd_ys_zjfyycqdtfy z
+        Left join kd_asset s on s.id = z.asset_id
+        where z.is_deleted = 0
         <if test="ysZjfyycqdtfy.xmId!=null">and XM_ID = #{ysZjfyycqdtfy.xmId}</if>
     </select>
 
@@ -45,6 +49,21 @@
         FROM kd_ys_zjfyycqdtfy ${ew.customSqlSegment}
     </select>
 
-    <select id="selectByDate" resultMap=""
+    <select id="selectByYearAndMonth" resultMap="ResultMap">
+        SELECT xa.*, s.YZJE
+        FROM kd_ys_zjfyycqdtfy xa
+        INNER JOIN
+        (
+            SELECT
+                xm.id,
+                COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMKSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMKSSJ) AS 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
+                FROM kd_xm xm
+                WHERE xm.is_deleted = 0 and DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{yearAndMonth}
+             ) xm on xm.id = xa.xm_id
+        Left join kd_asset s on s.id = xa.asset_id
+        WHERE #{yearAndMonth} between DATE_FORMAT(xm.XMKSSJ, '%Y%m') and DATE_FORMAT(xm.XMJSSJ,'%Y%m')
+          and s.ZCLB= '仪器设备'
+    </select>
 
 </mapper>

+ 7 - 15
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/IAssetService.java

@@ -7,7 +7,6 @@ import org.sky.core.mp.base.BaseService;
 import org.sky.scientific.excel.AssetExcel;
 import org.sky.scientific.pojo.dto.AssetDTO;
 import org.sky.scientific.pojo.entity.AssetEntity;
-import org.sky.scientific.pojo.entity.XmAssetEntity;
 import org.sky.scientific.pojo.vo.AssetVO;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -29,6 +28,13 @@ public interface IAssetService extends BaseService<AssetEntity> {
 	 */
 	IPage<AssetVO> selectAssetPage(IPage<AssetVO> page, AssetVO asset);
 
+	/**
+	 * 保存资产
+	 *
+	 * @param asset 资产
+	 * @return boolean
+	 */
+	boolean saveAsset(AssetEntity asset);
 
 	/**
 	 * 导入
@@ -60,18 +66,4 @@ public interface IAssetService extends BaseService<AssetEntity> {
 	 */
 	List<AssetExcel> exportAsset(Wrapper<AssetEntity> queryWrapper);
 
-	/**
-	 * 科研仪器设备明细表-分页
-	 * @param page
-	 * @param xmAsset
-	 * @return
-	 */
-	IPage<XmAssetEntity> keyanyiqishebeimingxibiao_fenye(IPage<XmAssetEntity> page, XmAssetEntity xmAsset);
-
-	/**
-	 * 科研仪器设备明细表-直接引用
-	 * @param asset
-	 * @return
-	 */
-	boolean keyanyiqishebeimingxibiao_zhijieyinyong(String yearAndMonth);
 }

+ 2 - 2
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/IXmAssetService.java

@@ -14,12 +14,12 @@ import org.sky.scientific.pojo.entity.XmAssetEntity;
 public interface IXmAssetService extends BaseService<XmAssetEntity> {
 
 	/**
-	 * 科研仪器设备明细表-分页
+	 * 科研仪器设备明细表分页
 	 * @param page
 	 * @param xmAsset
 	 * @return
 	 */
-	IPage<XmAssetEntity> keyanyiqishebeimingxibiao_fenye(IPage<XmAssetEntity> page, XmAssetEntity xmAsset);
+	IPage<XmAssetEntity> keyanyiqishebeimingxibiao_page(IPage<XmAssetEntity> page, XmAssetEntity xmAsset);
 
 	/**
 	 * 科研仪器设备明细表-直接引用

+ 8 - 23
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/AssetServiceImpl.java

@@ -17,14 +17,12 @@ import org.sky.scientific.excel.AssetExcel;
 import org.sky.scientific.mapper.AssetMapper;
 import org.sky.scientific.pojo.dto.AssetDTO;
 import org.sky.scientific.pojo.entity.AssetEntity;
-import org.sky.scientific.pojo.entity.XmAssetEntity;
 import org.sky.scientific.pojo.vo.AssetVO;
 import org.sky.scientific.service.IAssetService;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
@@ -44,6 +42,14 @@ public class AssetServiceImpl extends BaseServiceImpl<AssetMapper, AssetEntity>
 	}
 
 	@Override
+	public boolean saveAsset(AssetEntity asset) {
+		if(StringUtil.isBlank(asset.getYearAndMonth())){
+			throw new ServiceException("参数yearAndMonth不能为空");
+		}
+		return this.save(asset);
+	}
+
+	@Override
 	public void importAsset(MultipartFile file, String yearAndMonth) {
 
 		List<AssetExcel> data = ExcelUtil.read(file, AssetExcel.class);
@@ -113,25 +119,4 @@ public class AssetServiceImpl extends BaseServiceImpl<AssetMapper, AssetEntity>
 		//});
 		return assetList;
 	}
-
-	@Override
-	public IPage<XmAssetEntity> keyanyiqishebeimingxibiao_fenye(IPage<XmAssetEntity> page, XmAssetEntity xmAsset) {
-		if(StringUtil.isBlank(xmAsset.getYearAndMonth())){
-			throw new ServiceException("参数yearAndMonth不能为空");
-		}
-		Date lastDate = DateUtil.minusMonths(DateUtil.parse(xmAsset.getYearAndMonth(), DateUtil.PATTERN_YYYYMM), 1);
-		//获取上个月数据
-		List<XmAssetEntity> lastMonthList = baseMapper.keyanyiqishebeimingxibiao_getLastMonthData(xmAsset.getYearAndMonth());
-		if(!CollectionUtil.isEmpty(lastMonthList)){
-
-		}else {
-			//若无,则获取预算表中的科研仪器设备,研发项目周期(含变更)包含本月的
-		}
-		return null;
-	}
-
-	@Override
-	public boolean keyanyiqishebeimingxibiao_zhijieyinyong(String yearAndMonth) {
-		return false;
-	}
 }

+ 34 - 8
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/XmAssetServiceImpl.java

@@ -2,6 +2,7 @@
 package org.sky.scientific.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.sky.core.log.exception.ServiceException;
 import org.sky.core.mp.base.BaseServiceImpl;
@@ -9,7 +10,9 @@ import org.sky.core.tool.utils.CollectionUtil;
 import org.sky.core.tool.utils.DateUtil;
 import org.sky.core.tool.utils.StringUtil;
 import org.sky.scientific.mapper.XmAssetMapper;
+import org.sky.scientific.mapper.YsZjfyycqdtfyMapper;
 import org.sky.scientific.pojo.entity.XmAssetEntity;
+import org.sky.scientific.pojo.entity.YsZjfyycqdtfyEntity;
 import org.sky.scientific.service.IXmAssetService;
 import org.springframework.stereotype.Service;
 
@@ -27,23 +30,35 @@ import java.util.List;
 @Service
 public class XmAssetServiceImpl extends BaseServiceImpl<XmAssetMapper, XmAssetEntity> implements IXmAssetService {
 
-
+	@Resource
+	private YsZjfyycqdtfyMapper ysZjfyycqdtfyMapper;
 
 	@Override
-	public IPage<XmAssetEntity> keyanyiqishebeimingxibiao_fenye(IPage<XmAssetEntity> page, XmAssetEntity xmAsset) {
+	public IPage<XmAssetEntity> keyanyiqishebeimingxibiao_page(IPage<XmAssetEntity> page, XmAssetEntity xmAsset) {
+		if (StringUtil.isBlank(xmAsset.getYearAndMonth())) {
+			throw new ServiceException("参数yearAndMonth不能为空");
+		}
+		List<XmAssetEntity> list = null;
+		if(xmAsset.getYearAndMonth().length() == 4){
+			//全年
+			list = baseMapper.keyanyiqishebeimingxibiao_year(page, xmAsset);
+		}else {
+			//按月
+			list = baseMapper.keyanyiqishebeimingxibiao_monthly(page, xmAsset);
+		}
 
-		return null;
+		return page.setRecords(list);
 	}
 
 	@Override
 	public boolean keyanyiqishebeimingxibiao_zhijieyinyong(String yearAndMonth) {
-		if(StringUtil.isBlank(yearAndMonth)){
+		if (StringUtil.isBlank(yearAndMonth)) {
 			throw new ServiceException("参数yearAndMonth不能为空");
 		}
 		Date lastDate = DateUtil.minusMonths(DateUtil.parse(yearAndMonth, DateUtil.PATTERN_YYYYMM), 1);
 		//获取上个月数据
 		List<XmAssetEntity> lastMonthList = baseMapper.keyanyiqishebeimingxibiao_getLastMonthData(DateUtil.format(lastDate, DateUtil.PATTERN_YYYYMM));
-		if(!CollectionUtil.isEmpty(lastMonthList)){
+		if (!CollectionUtil.isEmpty(lastMonthList)) {
 			//复制上个月数据到本月
 			List<XmAssetEntity> insertList = new ArrayList<>();
 			for (XmAssetEntity dbAsset : lastMonthList) {
@@ -54,10 +69,21 @@ public class XmAssetServiceImpl extends BaseServiceImpl<XmAssetMapper, XmAssetEn
 				insertList.add(asset);
 			}
 			return this.saveBatch(insertList);
-		}else {
+		} else {
 			//若无,则获取预算表中的科研仪器设备,研发项目周期(含变更)包含本月的
-
+			List<YsZjfyycqdtfyEntity> ysZjfyycqdtfyEntities = ysZjfyycqdtfyMapper.selectByYearAndMonth(yearAndMonth);
+			if (CollectionUtil.isEmpty(ysZjfyycqdtfyEntities)) {
+				throw new ServiceException("未能从项目预算表中读取科研仪器设备");
+			}
+			List<XmAssetEntity> insertList = new ArrayList<>();
+			for (YsZjfyycqdtfyEntity ysZjfyycqdtfyEntity : ysZjfyycqdtfyEntities) {
+				XmAssetEntity asset = new XmAssetEntity();
+				asset.setYearAndMonth(yearAndMonth);
+				asset.setXmId(ysZjfyycqdtfyEntity.getXmId());
+				asset.setAssetId(ysZjfyycqdtfyEntity.getAssetId());
+				insertList.add(asset);
+			}
+			return this.saveBatch(insertList);
 		}
-		return true;
 	}
 }