zhoulisky 9 months ago
parent
commit
005f35361f
16 changed files with 285 additions and 52 deletions
  1. BIN
      doc/xls导入模板/长期待摊费用分配表-导入模板.xlsx
  2. 17 0
      kd-common/src/main/java/org/sky/common/utils/CommonUtil.java
  3. 91 0
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/vo/XmAnnualSituationVO.java
  4. 34 0
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/vo/XmCGSummary.java
  5. 2 2
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/vo/XmFixedAssetCostVo.java
  6. 7 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/controller/KYCGController.java
  7. 2 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/controller/XmController.java
  8. 4 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/AssetMapper.xml
  9. 9 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/CgQtMapper.java
  10. 12 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/CgQtMapper.xml
  11. 54 25
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmFixedAssetMapper.xml
  12. 10 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/service/ICgQtService.java
  13. 12 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/CgQtServiceImpl.java
  14. 17 17
      kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/EnterpriseInfoServiceImpl.java
  15. 5 7
      kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/XmFixedAssetServiceImpl.java
  16. 9 1
      kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/XmIntangibleAssetServiceImpl.java

BIN
doc/xls导入模板/长期待摊费用分配表-导入模板.xlsx


+ 17 - 0
kd-common/src/main/java/org/sky/common/utils/CommonUtil.java

@@ -7,4 +7,21 @@ package org.sky.common.utils;
  */
 public class CommonUtil {
 
+	/**
+	 * 两个double类型的数相除后保留两位小数
+	 */
+
+	public static Double divide(Double a, Double b) {
+		if (b == 0) {
+			return 0.0;
+		}
+		return Double.parseDouble(String.format("%.2f", a / b));
+	}
+
+	/**
+	 * 两个double类型的数相乘后保留两位小数
+	 */
+	public static Double multiply(Double a, Double b) {
+		return Double.parseDouble(String.format("%.2f", a * b));
+	}
 }

+ 91 - 0
kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/vo/XmAnnualSituationVO.java

@@ -0,0 +1,91 @@
+
+package org.sky.scientific.pojo.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Data;
+import org.sky.core.tool.utils.DateUtil;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 企业研究开发项目情况 实体类
+ *
+ * @author Kd
+ * @since 2025-06-29
+ */
+@Data
+public class XmAnnualSituationVO implements Serializable {
+
+
+	@Schema(description = "研发项目名称")
+	private String xmmc;
+
+	@Schema(description = "研发项目来源")
+	private String xmly;
+
+	@Schema(description = "项目开展形式")
+	private String xmkzxs;
+
+ 	@Schema(description = "项目当年成果形式")
+	private String yqcgxs;
+
+	@Schema(description = "项目技术经济目标")
+	private String xmjsjjmb;
+
+ 	@Schema(description = "项目起始日期")
+	@DateTimeFormat(pattern = DateUtil.PATTERN_YYYYMM)
+	@JsonFormat(pattern = DateUtil.PATTERN_YYYYMM)
+	private Date xmkssj;
+
+ 	@Schema(description = "项目完成日期")
+	@DateTimeFormat(pattern = DateUtil.PATTERN_YYYYMM)
+	@JsonFormat(pattern = DateUtil.PATTERN_YYYYMM)
+	private Date xmjssj;
+
+
+
+
+	//	@NotNull(message = "请选择项目负责人")
+	@Schema(description = "项目负责人,kd_technician的主键")
+	private Long xmfzr;
+
+	@Schema(description = "项目申请单位id")
+	//	@NotBlank(message = "项目申请单位不能为空")
+	private String xmsqdwid;
+
+	@Schema(description = "项目申请单位")
+	@TableField(exist = false)
+	private String xmsqdw;
+
+	//	@NotBlank(message = "请选择研究类型")
+	@Schema(description = "研究类型")
+	private String yjlx;
+
+
+
+
+
+
+	@Schema(description = "项目预算总额(万元)")
+	private BigDecimal xmysze;
+
+	@Schema(description = "项目预算明细")
+	private String xmyszemx;
+
+	@NotBlank(message = "请上传立项批文")
+	@Schema(description = "立项批文")
+	private String lxpw;
+
+	@NotBlank(message = "请上传立项报告")
+	@Schema(description = "立项报告")
+	private String lxbg;
+
+	@Schema(description = "其他资料")
+	private String qtzl;
+}

+ 34 - 0
kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/vo/XmCGSummary.java

@@ -0,0 +1,34 @@
+package org.sky.scientific.pojo.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.sky.core.tool.utils.DateUtil;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@Schema(description = "研发项目成果")
+public class XmCGSummary {
+
+	@Schema(description = "成果名称")
+	private String cgmc;
+
+	@Schema(description = "成果编号")
+	private String cgbh;
+
+	@Schema(description = "申请日/完成日")
+	@DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
+	@JsonFormat(pattern = DateUtil.PATTERN_DATE)
+	private Date date1;
+
+	@Schema(description = "授权日/生效日")
+	@DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
+	@JsonFormat(pattern = DateUtil.PATTERN_DATE)
+	private Date date2;
+
+	@Schema(description = "成果类型")
+	private String cglx;
+
+}

+ 2 - 2
kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/vo/XmFixedAssetCostVo.java

@@ -7,8 +7,8 @@ import org.sky.scientific.pojo.entity.XmFixedAsset;
 @Data
 public class XmFixedAssetCostVo extends XmFixedAsset {
 
-	@Schema(description = "月使用工时(L),使用人当月考勤总时长")
-	private Double attendanceHours;
+//	@Schema(description = "月使用工时(L),使用人当月考勤总时长")
+//	private Double attendanceHours;
 
 	@Schema(description = "月研发工时(M),使用人当月该项目的研发总工时")
 	private Double workHours;

+ 7 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/controller/KYCGController.java

@@ -322,4 +322,11 @@ public class KYCGController extends KdController {
 		ExcelUtil.export(response, "科研成果-其他成果数据" + DateUtil.time(), "科研成果-其他成果数据表", list, CgQtExcel.class);
 	}
 
+	@GetMapping("/summary")
+	@ApiOperationSupport(order = 80)
+	@Operation(summary = "研发项目成果")
+	public R<IPage<XmCGSummary>>  xmCgSummary(Query query, Long xmId){
+		IPage<XmCGSummary> page =  qtService.xmCgSummary(Condition.getPage(query), xmId);
+		return R.data(page);
+	}
 }

+ 2 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/controller/XmController.java

@@ -153,4 +153,6 @@ public class XmController extends KdController {
 		return R.data(service.selectAnnualSituation(year));
 	}
 
+
+
 }

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

@@ -85,4 +85,8 @@
         </if>
     </select>
 
+    <select id="zjCqdtWxzctxFyHzb" resultType="org.sky.scientific.pojo.vo.XmAssetCostSummary">
+
+    </select>
+
 </mapper>

+ 9 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/CgQtMapper.java

@@ -8,6 +8,8 @@ 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 org.sky.scientific.pojo.vo.XmCGSummary;
+
 import java.util.List;
 
 /**
@@ -38,4 +40,11 @@ public interface CgQtMapper extends BaseMapper<CgQtEntity> {
 
 	boolean physicalDeleteByIds(List<Long> ids);
 
+	/**
+	 * 研发项目成果
+	 * @param page
+	 * @param xmId
+	 * @return
+	 */
+    List<XmCGSummary> xmCgSummary(IPage<XmCGSummary> page, @Param("xmId") Long xmId);
 }

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

@@ -38,6 +38,18 @@
         SELECT * FROM kd_cg_qt ${ew.customSqlSegment}
     </select>
 
+    <select id="xmCgSummary" resultType="org.sky.scientific.pojo.vo.XmCGSummary">
+        SELECT ZBMC as cgmc,ZBH as cgbh,SSRQ as date1,SSRQ as date2, '技术标准' as cglx FROM kd_cg_jsbz WHERE XM_ID = #{xmId}
+        UNION
+        SELECT QKMC as cgmc,KJH as cgbh,FBRQ as date1,FBRQ as date2, '科研论文' as cglx FROM kd_cg_kylw  WHERE XM_ID = #{xmId}
+        UNION
+        SELECT CGMC as cgmc,CGBH as cgbh,SHENQING_RQ as date1,SHOUQUAN_RQ as date2, '其他成果' as cglx FROM kd_cg_qt WHERE XM_ID = #{xmId}
+        UNION
+        SELECT RJMC as cgmc,DJH as cgbh,SCFBRQ as date1,DJPZRQ as date2, '软件著作' as cglx FROM kd_cg_rjzzq WHERE XM_ID = #{xmId}
+        UNION
+        SELECT ZLMC as cgmc,ZLH as cgbh,SHENQING_RQ as date1,SHOUQUAN_RQ as date2, ZLLX as cglx FROM kd_cg_zl WHERE XM_ID = #{xmId}
+    </select>
+
     <delete id="physicalDeleteByIds">
         DELETE FROM kd_cg_qt WHERE id IN
         <foreach item="id" collection="list" separator="," open="(" close=")">

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

@@ -87,24 +87,52 @@
     </select>
 
     <resultMap id="XmFixedAssetCostVo" type="org.sky.scientific.pojo.vo.XmFixedAssetCostVo" extends="ResultMap">
-        <result column="attendanceHours" property="attendanceHours"/>
-        <result column="workHours" property="workHours"/>
-        <result column="yanfaTanXiao" property="yanfaTanXiao"/>
+        <result column="work_hours" property="workHours"/>
+        <result column="yanfa_fen_tan_lv" property="yanfaFenTanLv"/>
+        <result column="yanfa_tan_xiao" property="yanfaTanXiao"/>
     </resultMap>
+<!--    <select id="keyanyiqishebeizhejiufeiyongfenpeibiao"-->
+<!--            resultMap="XmFixedAssetCostVo">-->
+<!--        SELECT xa.xm_id, xa.asset_id, xm.XMBH, xm.XMMC,-->
+<!--               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',ifnull(asset.ZGS,0) as 'asset.ZGS',asset.KSSJ as 'asset.KSSJ',-->
+<!--               ifnull(kxah.work_hours,0) as work_hours-->
+<!--        FROM kd_xm_fixed_asset xa-->
+<!--        LEFT JOIN kd_asset asset ON xa.asset_id = asset.id-->
+<!--        LEFT JOIN-->
+<!--        (-->
+<!--            select xm_id, asset_id, left(work_date, 6) as year_and_month,  sum(work_hours)  as work_hours-->
+<!--            from kd_xm_asset_hours-->
+<!--            group by xm_id, asset_id, left(work_date, 6)-->
+<!--        )as kxah on kxah.xm_id = xa.xm_id and kxah.asset_id = xa.asset_id and kxah.year_and_month= #{ew.yearAndMonth}-->
+<!--        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.tenant_id = #{ew.tenantId} AND xa.year_and_month = #{ew.yearAndMonth} and asset.ZCLB = '仪器设备'-->
+<!--        <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.kssjMin!=null and ew.kssjMax!=''">and asset.kssj between #{ew.kssjMin} and #{ew.jssjEnd}</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>-->
+<!--    </select>-->
+
     <select id="keyanyiqishebeizhejiufeiyongfenpeibiao"
             resultMap="XmFixedAssetCostVo">
-        SELECT xa.xm_id, xa.asset_id, xm.XMBH, xm.XMMC,
-               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',asset.ZGS as 'asset.ZGS',asset.KSSJ as 'asset.KSSJ',
-               kxah.work_hours
-        FROM kd_xm_fixed_asset xa
-        LEFT JOIN kd_asset asset ON xa.asset_id = asset.id
-        LEFT JOIN
-        (
-            select xm_id, asset_id, left(work_date, 6) as year_and_month, ifnull(sum(work_hours),0) as work_hours
-            from kd_xm_asset_hours
-            group by xm_id, asset_id, left(work_date, 6)
-        )as kxah on kxah.xm_id = xa.xm_id and kxah.asset_id = xa.asset_id and kxah.year_and_month= #{ew.yearAndMonth}
+        SELECT xm.XMBH, xm.XMMC,
+            v1.xm_id, v1.asset_id, v1.year_and_month,
+            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
         LEFT JOIN
         (
             SELECT
@@ -113,16 +141,16 @@
                 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.tenant_id = #{ew.tenantId} AND xa.year_and_month = #{ew.yearAndMonth} and asset.ZCLB = '仪器设备'
+        ) 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.kssjMin!=null and ew.kssjMax!=''">and asset.kssj between #{ew.kssjMin} and #{ew.jssjEnd}</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.zcmc!=null and ew.zcmc!=''">and zcmc like concat('%',#{ew.zcmc},'%')</if>
+        <if test="ew.zclb!=null and ew.zclb!=''">and zclb like concat('%',#{ew.zclb},'%')</if>
+        <if test="ew.yt!=null and ew.yt!=''">and yt like concat('%',#{ew.yt},'%')</if>
+        <if test="ew.kssjMin!=null and ew.kssjMax!=''">and kssj between #{ew.kssjMin} and #{ew.jssjEnd}</if>
+        <if test="ew.zcyzMin!=null and ew.zcyzMax!=null">and zcyz between #{ew.zcyzMin} and #{ew.zcyzMax}</if>
+        <if test="ew.jczMin!=null and ew.jczMax!=null">and jcz between #{ew.jczMin} and #{ew.jczMax}</if>
+        <if test="ew.yzjeMin!=null and ew.yzjeMax!=null">and jzje between #{ew.yzjeMin} and #{ew.yzjeMax}</if>
     </select>
 
     <select id="keyanfangwujianzhuwuzhejiufeiyongfenpeibiao"
@@ -131,7 +159,8 @@
             xa.id,xa.xm_id, xa.asset_id, xm.XMBH, xm.XMMC,
             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', asset.KSSJ as 'asset.KSSJ',
-            xa.yfftv,xa.ftvqdyj
+            xa.yfftv as yanfa_fen_tan_lv,
+            xa.ftvqdyj
         FROM kd_xm_fixed_asset xa
         LEFT JOIN kd_asset asset ON xa.asset_id = asset.id
         LEFT JOIN

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

@@ -2,9 +2,11 @@
 package org.sky.scientific.service;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.sky.core.mp.base.BaseService;
 import org.sky.scientific.excel.CgQtExcel;
 import org.sky.scientific.pojo.entity.CgQtEntity;
+import org.sky.scientific.pojo.vo.XmCGSummary;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
@@ -32,4 +34,12 @@ public interface ICgQtService extends BaseService<CgQtEntity> {
 	boolean update(CgQtEntity cgQt);
 
 	boolean physicalDeleteByIds(List<Long> ids);
+
+	/**
+	 * 研发项目成果
+	 * @param page
+	 * @param xmId
+	 * @return
+	 */
+	IPage<XmCGSummary> xmCgSummary(IPage<XmCGSummary> page, Long xmId);
 }

+ 12 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/CgQtServiceImpl.java

@@ -2,6 +2,7 @@
 package org.sky.scientific.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import jakarta.annotation.Resource;
 import org.sky.core.excel.util.ExcelUtil;
@@ -9,6 +10,7 @@ import org.sky.core.log.exception.ServiceException;
 import org.sky.core.mp.base.BaseServiceImpl;
 import org.sky.core.tool.utils.BeanUtil;
 import org.sky.core.tool.utils.CollectionUtil;
+import org.sky.core.tool.utils.Func;
 import org.sky.core.tool.utils.StringUtil;
 import org.sky.scientific.excel.CgQtExcel;
 import org.sky.scientific.mapper.CgQtMapper;
@@ -16,6 +18,7 @@ import org.sky.scientific.mapper.XmMapper;
 import org.sky.scientific.pojo.dto.CgQtDTO;
 import org.sky.scientific.pojo.entity.CgQtEntity;
 import org.sky.scientific.pojo.entity.XmEntity;
+import org.sky.scientific.pojo.vo.XmCGSummary;
 import org.sky.scientific.service.ICgQtService;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -87,4 +90,13 @@ public class CgQtServiceImpl extends BaseServiceImpl<CgQtMapper, CgQtEntity> imp
 		return baseMapper.physicalDeleteByIds(ids);
 	}
 
+    @Override
+    public IPage<XmCGSummary> xmCgSummary(IPage<XmCGSummary> page, Long xmId) {
+		if(Func.isNull(xmId)){
+			throw new ServiceException("参数xmId不能为空");
+		}
+		List<XmCGSummary> list = baseMapper.xmCgSummary(page, xmId);
+        return page.setRecords(list);
+    }
+
 }

+ 17 - 17
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/EnterpriseInfoServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.sky.core.log.exception.ServiceException;
 import org.sky.core.mp.base.BaseServiceImpl;
+import org.sky.core.secure.utils.SecureUtil;
 import org.sky.core.tool.utils.DateUtil;
 import org.sky.core.tool.utils.Func;
 import org.sky.scientific.mapper.EnterpriseInfoMapper;
@@ -35,7 +36,7 @@ public class EnterpriseInfoServiceImpl extends BaseServiceImpl<EnterpriseInfoMap
 		}
 		one.setId(null);
 		one.setYearAndMonth(enterpriseInfo.getYearAndMonth());
-		return this.save(one) ? one : null;
+		return one;
 	}
 
 	@Override
@@ -43,23 +44,22 @@ public class EnterpriseInfoServiceImpl extends BaseServiceImpl<EnterpriseInfoMap
 		if (Func.isBlank(enterpriseInfo.getYearAndMonth())) {
 			throw new ServiceException("参数yearAndMonth不能为空");
 		}
-		boolean result = this.saveOrUpdate(enterpriseInfo);
 
-//		LambdaQueryWrapper<EnterpriseInfoEntity> eq = Wrappers.<EnterpriseInfoEntity>lambdaQuery()
-//			.eq(EnterpriseInfoEntity::getYearAndMonth, enterpriseInfo.getYearAndMonth());
-//		EnterpriseInfoEntity one = this.getOne(eq);
-//
-//		if (Func.isNull(enterpriseInfo.getId())) {
-//			//新增
-//
-//
-//		} else {
-//			//修改
-//			if(Func.equals(enterpriseInfo.getId(), one.getId())){
-//				result = this.updateById(enterpriseInfo);
-//			}
-//
-//		}
+		boolean result = false;
+
+		LambdaQueryWrapper<EnterpriseInfoEntity> eq = Wrappers.<EnterpriseInfoEntity>lambdaQuery()
+			.eq(EnterpriseInfoEntity::getYearAndMonth, enterpriseInfo.getYearAndMonth())
+			.eq(EnterpriseInfoEntity::getTenantId, SecureUtil.getTenantId());
+		EnterpriseInfoEntity one = this.getOne(eq);
+
+		if (Func.isNull(one)) {
+			//新增
+			this.save(enterpriseInfo);
+		} else {
+			//修改
+			enterpriseInfo.setId(one.getId());
+			result = this.updateById(enterpriseInfo);
+		}
 		return result;
 	}
 }

+ 5 - 7
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/XmFixedAssetServiceImpl.java

@@ -207,12 +207,12 @@ public class XmFixedAssetServiceImpl extends BaseServiceImpl<XmFixedAssetMapper,
 		}
 		dto.setTenantId(SecureUtil.getTenantId());
 		List<XmFixedAssetCostVo> list = baseMapper.keyanyiqishebeizhejiufeiyongfenpeibiao(page, dto);
-		for (XmFixedAssetCostVo vo : list) {
+//		for (XmFixedAssetCostVo vo : list) {
 //			//研发分摊率=月研发工时/月总工时
-//			vo.setYanfaFenTanLv(vo.getWorkHours() / vo.getAttendanceHours());
-//			//研发摊销=(月折旧额/月摊销额(元)) * 研发分摊率
-//			vo.setYanfaTanXiao(vo.getAsset().getYzje().doubleValue() * vo.getYanfaFenTanLv());
-		}
+//			vo.setYanfaFenTanLv(CommonUtil.divide(vo.getWorkHours(), vo.getAsset().getZgs()));
+//			//研发摊销=(月折旧额月摊销额(元)) * 研发分摊率
+//			vo.setYanfaTanXiao(CommonUtil.multiply(vo.getWorkHours(), 1.0 / vo.getAsset().getZgs()));
+//		}
 		return page.setRecords(list);
 	}
 
@@ -223,9 +223,7 @@ public class XmFixedAssetServiceImpl extends BaseServiceImpl<XmFixedAssetMapper,
 		}
 		dto.setTenantId(SecureUtil.getTenantId());
 		List<XmFixedAssetCostVo> list = baseMapper.keyanfangwujianzhuwuzhejiufeiyongfenpeibiao(page, dto);
-		for (XmFixedAssetCostVo vo : list) {
 
-		}
 		return page.setRecords(list);
 	}
 

+ 9 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/XmIntangibleAssetServiceImpl.java

@@ -220,10 +220,18 @@ public class XmIntangibleAssetServiceImpl extends BaseServiceImpl<XmIntangibleAs
 		List<XmIntangibleAssetCostVo> list = baseMapper.keyanwuxingzichantanxiaofeiyongfenpeibiao(page,dto);
 		for (XmIntangibleAssetCostVo vo : list) {
 			//研发分摊率=月研发工时/月总工时
-			vo.setYanfaFenTanLv(vo.getWorkHours() / vo.getAttendanceHours());
+			if(vo.getAttendanceHours()==0 || vo.getWorkHours()==0){
+				vo.setYanfaFenTanLv(0);
+			}else {
+				vo.setYanfaFenTanLv(vo.getWorkHours() / vo.getAttendanceHours());
+			}
 			//研发摊销=(月折旧额/月摊销额(元)) * 研发分摊率
 			vo.setYanfaTanXiao(vo.getAsset().getYzje().doubleValue() * vo.getYanfaFenTanLv());
 		}
         return page.setRecords(list);
     }
+
+	public static void main(String[] args) {
+		System.out.println("dd"+(0/1));
+	}
 }