Browse Source

22222222222

zhoulisky 9 months ago
parent
commit
2faf4b325a
32 changed files with 265 additions and 214 deletions
  1. BIN
      doc/xls导入模板/2-技术人员花名册 -2025-06.xls
  2. 30 0
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/dto/XmUpdateDto.java
  3. 3 2
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/AssetEntity.java
  4. 10 1
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/CgZlEntity.java
  5. 3 3
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/TechnicianEntity.java
  6. 1 1
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/XmTechnicianEntity.java
  7. 21 4
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/vo/XmSummary.java
  8. 3 3
      kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/vo/XmTechnicianVO.java
  9. 1 1
      kd-service/kd-scientific/src/main/java/org/sky/scientific/controller/EnterpriseController.java
  10. 8 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/controller/XmController.java
  11. 4 4
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/AssetMapper.xml
  12. 3 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/DepartmentMapper.java
  13. 5 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/DepartmentMapper.xml
  14. 2 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/TechnicianMapper.java
  15. 7 7
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/TechnicianMapper.xml
  16. 1 1
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmAssetHoursMapper.xml
  17. 2 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmCqdtfyMapper.xml
  18. 4 4
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmDesignCostMapper.xml
  19. 2 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmDirectCostMapper.xml
  20. 2 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmFinanceMapper.xml
  21. 13 50
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmFixedAssetMapper.xml
  22. 11 57
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmIntangibleAssetMapper.xml
  23. 3 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmMapper.java
  24. 38 17
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmMapper.xml
  25. 3 4
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmTechnicianMapper.xml
  26. 8 7
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmWwxmCostMapper.xml
  27. 6 10
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/YsWxzctxfyMapper.xml
  28. 6 10
      kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/YsZjfyycqdtfyMapper.xml
  29. 3 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/service/IXmService.java
  30. 14 2
      kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/SettingServiceImpl.java
  31. 24 0
      kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/TechnicianServiceImpl.java
  32. 24 18
      kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/XmServiceImpl.java

BIN
doc/xls导入模板/2-技术人员花名册 -2025-06.xls


+ 30 - 0
kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/dto/XmUpdateDto.java

@@ -0,0 +1,30 @@
+package org.sky.scientific.pojo.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+@Data
+@Schema(description = "修改立项信息")
+public class XmUpdateDto {
+
+	@Schema(description = "项目id")
+	@NotNull(message = "项目id不能为空")
+	private Long xmId;
+
+	@Schema(description = "研究类型")
+	private String yjlx;
+
+	@Schema(description = "项目来源")
+	private String xmly;
+
+ 	@Schema(description = "项目开展形式")
+	private String xmkzxs;
+
+ 	@Schema(description = "预期成果形式")
+	private String yqcgxs;
+
+ 	@Schema(description = "项目技术经济目标")
+	private String xmjsjjmb;
+
+}

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

@@ -1,10 +1,10 @@
 
 package org.sky.scientific.pojo.entity;
 
+import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
 import io.swagger.v3.oas.annotations.media.Schema;
-import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.sky.core.tenant.mp.TenantEntity;
 import org.sky.core.tool.utils.DateUtil;
@@ -62,6 +62,7 @@ public class AssetEntity extends TenantEntity {
 	private BigDecimal zcyz;
 
 	@Schema(description = "净残值(%)")
+
 	private Double jcz;
 
 	@Schema(description = "月折旧额/月摊销额(元)")

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

@@ -2,6 +2,8 @@
 package org.sky.scientific.pojo.entity;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import io.swagger.v3.oas.annotations.media.Schema;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -28,33 +30,40 @@ public class CgZlEntity extends TenantEntity {
 	@Serial
 	private static final long serialVersionUID = 1L;
 
-
 	@Schema(description = "专利号")
+	@NotBlank(message = "请填写专利号")
 	private String zlh;
 
 	@Schema(description = "专利名称")
+	@NotBlank(message = "请填写专利名称")
 	private String zlmc;
 
 	@Schema(description = "专利类型")
+	@NotBlank(message = "请选择专利类型")
 	private String zllx;
 
 	@Schema(description = "是否国防专利,是,否")
+	@NotBlank(message = "请选择是否国防专利")
 	private String sfgfzl;
 
 	@Schema(description = "国别")
+	@NotBlank(message = "请选择国别")
 	private String gb;
 
 	@Schema(description = "申请号/专利号")
+	@NotBlank(message = "请填写申请号/专利号")
 	private String sqhZlh;
 
 	@Schema(description = "申请日")
 	@DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
 	@JsonFormat(pattern = DateUtil.PATTERN_DATE)
+	@NotNull(message = "请选择申请日")
 	private Date shenqingRq;
 
 	@Schema(description = "授权日")
 	@DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
 	@JsonFormat(pattern = DateUtil.PATTERN_DATE)
+	@NotNull(message = "请选择授权日")
 	private Date shouquanRq;
 
 	@Schema(description = "申请单位")

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

@@ -70,10 +70,10 @@ public class TechnicianEntity extends TenantEntity {
 	@Schema(description = "民族")
 	private String ethnic;
 
-	@Schema(description = "所属二级单位")
-	private String secondaryUnit;
+	@Schema(description = "所属二级单位id")
+	private Long departmentId;
 
-	@Schema(description = "部门/科室/项目部")
+	@Schema(description = "所属二级单位/部门/科室/项目部")
 	private String department;
 
 	@Schema(description = "岗位职务")

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

@@ -63,7 +63,7 @@ public class XmTechnicianEntity extends TenantEntity {
 
 	@Schema(description = "所属二级单位")
 	@TableField(exist = false)
-	private String secondaryUnit;
+	private Long departmentId;
 
 	@Schema(description = "部门/科室/项目部")
 	@TableField(exist = false)

+ 21 - 4
kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/vo/XmSummary.java

@@ -2,6 +2,7 @@
 package org.sky.scientific.pojo.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import org.sky.core.tool.utils.DateUtil;
@@ -37,7 +38,6 @@ public class XmSummary {
 	@Schema(description = "项目负责人姓名")
 	private String xmfzrxm;
 
-
 	@Schema(description = "项目申请单位id")
 	private String xmsqdwid;
 
@@ -47,13 +47,27 @@ public class XmSummary {
 	@Schema(description = "项目状态")
 	private Integer status;
 
-	@Schema(description = "立项报告")
+	@Schema(description = "预算明细", hidden = true)
+	@JsonIgnore
+	private String xmyszemx;
+
+	@Schema(description = "预算总额")
+	private Double xmysze;
+
+	@Schema(description = "本年度预算")
+	private Double xmyszeCurrentYear;
+
+	@Schema(description = "立项报告", hidden = true)
+	@JsonIgnore
+	private String lxbg;
+
+	@Schema(description = "立项报告数量")
 	private int lxbgCount;
 
-	@Schema(description = "阶段性报告")
+	@Schema(description = "阶段性报告数量")
 	private int jdxbgCount;
 
-	@Schema(description = "验收报告")
+	@Schema(description = "验收报告数量")
 	private int ysbgCount;
 
 	@Schema(description = "发明专利")
@@ -73,4 +87,7 @@ public class XmSummary {
 
 	@Schema(description = "其他")
 	private int qtCount;
+
+	@Schema(description = "委外支出金额")
+	private Double wwAmount;
 }

+ 3 - 3
kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/vo/XmTechnicianVO.java

@@ -27,10 +27,10 @@ public class XmTechnicianVO implements Serializable {
 	@Schema(description = "身份证号")
  	private String idCard;
 
-	@Schema(description = "所属二级单位")
- 	private String secondaryUnit;
+	@Schema(description = "所属二级单位id")
+ 	private Long departmentId;
 
-	@Schema(description = "部门/科室/项目部")
+	@Schema(description = "所属二级单位/部门/科室/项目部")
  	private String department;
 
 	@Schema(description = "岗位职务")

+ 1 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/controller/EnterpriseController.java

@@ -78,7 +78,7 @@ public class EnterpriseController extends KdController {
 
 	@GetMapping("/fetchLastYearData")
 	@ApiOperationSupport(order = 14)
-	@Operation(summary = "二级单位/部门-删除-读取上年度数据")
+	@Operation(summary = "二级单位/部门-读取上年度数据")
 	public R<Boolean> fetchLastYearData(DepartmentEntity department) {
 		return R.status(departmentService.fetchLastYearData(department));
 	}

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

@@ -22,6 +22,7 @@ import org.sky.core.tool.utils.DateUtil;
 import org.sky.core.tool.utils.Func;
 import org.sky.scientific.excel.XmExcel;
 import org.sky.scientific.pojo.dto.XmDTO;
+import org.sky.scientific.pojo.dto.XmUpdateDto;
 import org.sky.scientific.pojo.entity.XmEntity;
 import org.sky.scientific.pojo.entity.XmFinanceEntity;
 import org.sky.scientific.pojo.vo.XmSummary;
@@ -99,6 +100,13 @@ public class XmController extends KdController {
 		return R.data(result);
 	}
 
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@Operation(summary = "项目立项-修改", description  = "传入xm")
+	public R<Boolean> update(@Valid @RequestBody XmUpdateDto xm) {
+		return R.status(service.updateXm(xm));
+	}
+
 	@IsAdmin
 	@GetMapping("/export-xm")
 	@ApiOperationSupport(order = 9)
@@ -154,6 +162,4 @@ public class XmController extends KdController {
 		return R.data(service.selectAnnualSituation(year));
 	}
 
-
-
 }

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

@@ -103,8 +103,8 @@
         (
             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
+                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
             WHERE xm.is_deleted = 0
         ) xm on xm.id = xmIds.xm_id
@@ -132,8 +132,8 @@
         (
             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
+                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
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = xmIds.xm_id

+ 3 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/DepartmentMapper.java

@@ -21,4 +21,7 @@ public interface DepartmentMapper extends BaseMapper<DepartmentEntity> {
 	@TenantIgnore
 	int deleteByYearAndTenantId(@Param("year") String year, @Param("tenantId") String tenantId);
 
+	@TenantIgnore
+	String getFullNameById(@Param("id") Long id);
+
 }

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

@@ -28,4 +28,9 @@
     <select id="getNameById" parameterType="java.lang.Long" resultType="java.lang.String">
         select name from kd_department where id = #{id}
     </select>
+
+    <select id="getFullNameById" resultType="java.lang.String">
+        SELECT CONCAT_WS('/',(SELECT name FROM kd_department d2 WHERE d2.id = d1.parent_id), d1.`name`) as departmentName FROM kd_department d1
+        WHERE d1.id = #{id}
+    </select>
 </mapper>

+ 2 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/TechnicianMapper.java

@@ -36,6 +36,8 @@ public interface TechnicianMapper extends BaseMapper<TechnicianEntity> {
 
 	List<TechnicianEntity> selectByDateInterval(IPage page, @Param("param") HashMap<String,String> param);
 
+	String getNameById(@Param("technicianId") Long technicianId);
+
 	/**
 	 * 批量删除
 	 * @param list

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

@@ -13,7 +13,7 @@
         <result column="gender" property="gender"/>
         <result column="birthday" property="birthday"/>
         <result column="ethnic" property="ethnic"/>
-        <result column="secondary_unit" property="secondaryUnit"/>
+        <result column="department_id" property="departmentId"/>
         <result column="department" property="department"/>
         <result column="post" property="post"/>
         <result column="post_location" property="postLocation"/>
@@ -62,8 +62,6 @@
         </if>
         <if test="technician.idCard!=null and technician.idCard!=''">and id_card like concat(concat('%', #{technician.idCard}), '%')
         </if>
-        <if test="technician.secondaryUnit!=null and technician.secondaryUnit!=''">and secondary_unit like concat(concat('%', #{technician.secondaryUnit}), '%')
-        </if>
         <if test="technician.department!=null and technician.department!=''">and department like concat(concat('%',#{technician.department}), '%')
         </if>
         <if test="technician.post!=null and technician.post!=''">and post like concat(concat('%', #{technician.post}),'%')</if>
@@ -93,7 +91,6 @@
         <if test="technician.name!=null and technician.name!=''">and name like concat(concat('%', #{technician.name}),'%')</if>
         <if test="technician.number!=null and technician.number!=''">and number like concat(concat('%',#{technician.number}), '%')</if>
         <if test="technician.idCard!=null and technician.idCard!=''">and id_card like concat(concat('%', #{technician.idCard}), '%')</if>
-        <if test="technician.secondaryUnit!=null and technician.secondaryUnit!=''">and secondary_unit like concat(concat('%', #{technician.secondaryUnit}), '%')</if>
         <if test="technician.department!=null and technician.department!=''">and department like concat(concat('%',#{technician.department}), '%')</if>
         <if test="technician.post!=null and technician.post!=''">and post like concat(concat('%', #{technician.post}),'%')</if>
         <if test="technician.postLocation!=null and technician.postLocation!=''">and post_location like concat(concat('%', #{technician.postLocation}), '%')</if>
@@ -108,7 +105,7 @@
     </select>
 
     <select id="selectByDateInterval" resultMap="ResultMap" parameterType="java.util.Map">
-        select t1.id, t1.unicode, t1.name, t1.number, t1.id_card, year_and_month ,gender, birthday,ethnic,secondary_unit,department,post,post_location,nature,hire_date,education,degree,school_name,major,rank,practicing_requirement,situation,personnel_type
+        select t1.id, t1.unicode, t1.name, t1.number, t1.id_card, year_and_month ,gender, birthday,ethnic,departmentId,department,post,post_location,nature,hire_date,education,degree,school_name,major,rank,practicing_requirement,situation,personnel_type
         from kd_technician t1
         JOIN
         (
@@ -150,8 +147,7 @@
         <if test="ew.name!=null and ew.name!=''">and t.name like concat('%', #{ew.name},'%')</if>
         <if test="ew.number!=null and ew.number!=''">and t.number like concat('%',#{ew.number}, '%')</if>
         <if test="ew.idCard!=null and ew.idCard!=''">and t.id_card like concat('%', #{ew.idCard}, '%')</if>
-        <if test="ew.secondaryUnit!=null and ew.secondaryUnit!=''">and t.secondary_unit like concat('%', #{ew.secondaryUnit}, '%')</if>
-        <if test="ew.department!=null and ew.department!=''">and t.department like concat('%',#{ew.department}, '%')</if>
+         <if test="ew.department!=null and ew.department!=''">and t.department like concat('%',#{ew.department}, '%')</if>
         <if test="ew.post!=null and ew.post!=''">and t.post like concat('%', #{ew.post},'%')</if>
         <if test="ew.nature!=null and ew.nature!=''">and t.nature = #{ew.nature}</if>
         <if test="ew.personnelType!=null and ew.personnelType!=''">and t.personnel_type = #{ew.personnelType}</if>
@@ -165,4 +161,8 @@
         HAVING workDaysByYear > 18
     </select>
 
+    <select id="getNameById" resultType="java.lang.String">
+        select name from kd_technician where id = #{technicianId}
+    </select>
+
 </mapper>

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

@@ -51,7 +51,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( (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[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMKSSJ) AS XMKSSJ,
+            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
             FROM kd_xm xm
             WHERE xm.is_deleted = 0 and DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth}

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

@@ -49,8 +49,8 @@
         (
             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
+                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
             WHERE xm.is_deleted = 0
         ) xm on xm.id = c.xm_id

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

@@ -25,16 +25,16 @@
 
 
     <select id="selectXmDesignCostPage" resultMap="ResultMap" resultType="org.sky.scientific.pojo.dto.XmDesignCostQuery">
-        select dc,*, xm.XMMC, xm.XMBH
+        select
+            dc.*, xm.XMMC, xm.XMBH
         from kd_xm_design_cost dc
         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
+                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
-            WHERE xm.is_deleted = 0
         ) xm on xm.id = dc.xm_id
         <where>
             <if test="ew.xmmc != null and ew.xmmc!=''">

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

@@ -55,7 +55,7 @@
         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( (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,
+        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,
         (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,
@@ -75,7 +75,7 @@
         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( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMKSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMKSSJ) AS XMKSSJ,
+        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,
         (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,

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

@@ -33,9 +33,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((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,
-              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') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMKSSJ) AS XMKSSJ,
+              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
            FROM kd_xm xm
         ) xm ON xm.id = kxf.xm_id

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

@@ -31,7 +31,7 @@
         (
             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,
+                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
             FROM kd_xm xm
             WHERE xm.is_deleted = 0 and DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{yearAndMonth}
@@ -47,16 +47,12 @@
         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
+            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
+            WHERE xm.is_deleted = 0
         ) xm on xm.id = xa.xm_id
         WHERE xa.year_and_month = #{ew.yearAndMonth} and asset.ZCLB = #{zclb}
         <if test="ew.xmmc!=null and ew.xmmc!=''">and xm.xmmc like concat('%',#{ew.xmmc},'%')</if>
@@ -77,8 +73,8 @@
         (
             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
+                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
             WHERE xm.is_deleted = 0
         ) xm on xm.id = xa.xm_id
@@ -91,39 +87,6 @@
         <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">
@@ -137,8 +100,8 @@
         (
             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
+                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
             WHERE xm.is_deleted = 0
         ) xm on xm.id = v1.xm_id
@@ -167,8 +130,8 @@
         (
             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
+                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
             WHERE xm.is_deleted = 0
         ) xm on xm.id = xa.xm_id

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

@@ -29,7 +29,7 @@
         (
             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,
+                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
             FROM kd_xm xm
             WHERE xm.is_deleted = 0 and DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{yearAndMonth}
@@ -44,16 +44,12 @@
         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
+            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
+            WHERE xm.is_deleted = 0
         ) xm on xm.id = xa.xm_id
         WHERE xa.year_and_month = #{ew.yearAndMonth}
         <if test="ew.xmmc!=null and ew.xmmc!=''">and xm.xmmc like concat('%',#{ew.xmmc},'%')</if>
@@ -74,8 +70,8 @@
         (
             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
+                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
             WHERE xm.is_deleted = 0
         ) xm on xm.id = xa.xm_id
@@ -100,8 +96,8 @@
         (
             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
+                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 = v1.xm_id
         WHERE v1.tenant_id = #{ew.tenantId} AND v1.year_and_month = #{ew.yearAndMonth}
@@ -115,48 +111,6 @@
         <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

+ 3 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/XmMapper.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 import org.sky.scientific.excel.XmExcel;
 import org.sky.scientific.pojo.dto.XmDTO;
+import org.sky.scientific.pojo.dto.XmUpdateDto;
 import org.sky.scientific.pojo.entity.XmEntity;
 import org.sky.scientific.pojo.vo.XmSummary;
 import org.sky.scientific.pojo.vo.XmVO;
@@ -85,4 +86,6 @@ public interface XmMapper extends BaseMapper<XmEntity> {
     List<XmEntity> listByYearAndMonth(String yearAndMonth);
 
 	List<JSONObject> selectAssistList(IPage<JSONObject> page, @Param("ew") XmDTO xm);
+
+	boolean updateXm(XmUpdateDto dto);
 }

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

@@ -36,12 +36,24 @@
         <association property="technicianEntity" column="XMFZR" select="org.sky.scientific.mapper.TechnicianMapper.selectById"/>
     </resultMap>
 
+    <update id="updateXm" parameterType="org.sky.scientific.pojo.dto.XmUpdateDto">
+        update kd_xm
+        <trim prefix="set" suffixOverrides=",">
+            <if test="yjlx != null and yjlx!=''">yjlx = #{yjlx},</if>
+            <if test="xmly != null and xmly!=''">xmly = #{xmly},</if>
+            <if test="xmkzxs != null and xmkzxs!=''">xmkzxs = #{xmkzxs},</if>
+            <if test="yqcgxs != null and yqcgxs!=''">yqcgxs = #{yqcgxs},</if>
+            <if test="yqcgxs != null and yqcgxs!=''">yqcgxs = #{yqcgxs},</if>
+        </trim>
+        where id = #{xmId}
+    </update>
+
     <select id="selectXmPage" resultMap="ResultMap">
         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 = 'XMKSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMKSSJ) AS XMKSSJ,
+            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
         FROM kd_xm xm
         WHERE DATE_FORMAT(XMKSSJ, '%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth}
@@ -52,7 +64,7 @@
             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( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMKSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{year} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMKSSJ) AS XMKSSJ,
+            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
         FROM kd_xm xm
         WHERE #{year} between DATE_FORMAT(XMKSSJ, '%Y') and DATE_FORMAT(XMJSSJ, '%Y')
@@ -63,16 +75,25 @@
     </select>
 
     <select id="summaryPage" resultType="org.sky.scientific.pojo.vo.XmSummary">
-        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), xm.XMMC ) AS XMMC,
-        COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMFZR' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMFZR) AS XMFZR,
-        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[<=]]> #{ew.yearAndMonth} 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 = 'XMSQDW' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMSQDW) AS XMSQDW,
-        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[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.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[<=]]> #{ew.yearAndMonth} 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 = 'XMYSZE' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMYSZE) AS XMYSZE,
-        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),xm.status) AS status,
-        LXBG
+        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), xm.XMMC ) AS XMMC,
+            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMFZR' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMFZR) AS XMFZR,
+            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[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMSQDWID) AS XMSQDWID,
+            (SELECT CONCAT_WS('/',(SELECT name FROM kd_department d2 WHERE d2.id = d1.parent_id), d1.`name`) as departmentName FROM kd_department d1 WHERE d1.id = XMSQDWID) AS XMSQDW,
+            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),xm.XMJSSJ) AS XMJSSJ,
+            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMYSZEMX' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMYSZEMX) AS XMYSZEMX,
+            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),xm.status) AS status,
+            LXBG as lxbg,
+            (select count(*) from kd_xm_jdxbg jdxbg where jdxbg.xm_id = xm.id and date_format(jdxbg.fill_date,'%Y%m') between concat(left(#{ew.yearAndMonth},4),'01') and #{ew.yearAndMonth}) as jdxbgCount,
+            (select count(*) from kd_xm_jtb jtb where jtb.xm_id = xm.id and ysbg!=null and date_format(jtb.tbsj,'%Y%m') between concat(left(#{ew.yearAndMonth},4),'01') and #{ew.yearAndMonth}) as ysbgCount,
+            (select count(*) from kd_cg_zl zl where zl.xm_id = xm.id and zl.ZLLX = '发明专利' and date_format(zl.SHOUQUAN_RQ,'%Y%m') between concat(left(#{ew.yearAndMonth},4),'01') and #{ew.yearAndMonth}) as fmzlCount,
+            (select count(*) from kd_cg_zl zl where zl.xm_id = xm.id and zl.ZLLX = '实用新型专利' and date_format(zl.SHOUQUAN_RQ,'%Y%m') between concat(left(#{ew.yearAndMonth},4),'01') and #{ew.yearAndMonth}) as syxxzlCount,
+            (select count(*) from kd_cg_rjzzq rjzzq where rjzzq.xm_id = xm.id and date_format(rjzzq.DJPZRQ,'%Y%m') between concat(left(#{ew.yearAndMonth},4),'01') and #{ew.yearAndMonth}) as rzCount,
+            (select count(*) from kd_cg_jsbz jsbz where jsbz.xm_id = xm.id  and date_format(jsbz.SSRQ,'%Y%m') between concat(left(#{ew.yearAndMonth},4),'01') and #{ew.yearAndMonth}) as bzCount,
+            (select count(*) from kd_cg_kylw kylw where kylw.xm_id = xm.id  and date_format(kylw.FBRQ,'%Y%m') between concat(left(#{ew.yearAndMonth},4),'01') and #{ew.yearAndMonth}) as lwCount,
+            (select count(*) from kd_cg_qt qt where qt.xm_id = xm.id  and date_format(qt.SHOUQUAN_RQ,'%Y%m') between concat(left(#{ew.yearAndMonth},4),'01') and #{ew.yearAndMonth}) as qtCount
         FROM kd_xm xm
         WHERE xm.is_deleted = 0
             and DATE_FORMAT(xm.XMKSSJ, '%Y%m') <![CDATA[<=]]> #{ew.yearAndMonth}
@@ -87,7 +108,7 @@
         SELECT xm.id as xmId,
             COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'xmmc' 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 = 'XMSQDW' ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMSQDW) AS xmsqdw,
-            COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMKSSJ' ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMKSSJ) AS xmkssj,
+            xm.XMKSSJ,
             COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' 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 = 'XMYSZE' ORDER BY bgrz.BGSXSJ DESC LIMIT 1),xm.XMYSZE) AS xmysze,
             (select sum(ZZSC*PJRGFY) from kd_ys_ryrgfy where XM_ID = #{xmId}) as ryrgfy,
@@ -107,7 +128,7 @@
             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,
             XMBH,
             COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMSQDW' AND DATE_FORMAT(bgrz.BGSXSJ, '%Y%m') <![CDATA[<=]]> #{param2} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMSQDW) AS XMSQDW,
-            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[<=]]> #{param2} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMKSSJ) AS XMKSSJ,
+            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,
             XMLY,
@@ -127,7 +148,7 @@
             COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = id AND bgrz.ZDMC = 'XMFZR' 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 = 'XMSQDW' ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMSQDW) AS XMSQDW,
             COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMSQDWID' 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 = 'XMKSSJ' ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMKSSJ) AS XMKSSJ,
+            xm.XMKSSJ,
             COALESCE( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMJSSJ' ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMJSSJ) AS XMJSSJ,
             YJLX,
             XMLY,
@@ -155,7 +176,7 @@
             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( (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,
+            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
         FROM kd_xm xm
         where #{yearAndMonth} between DATE_FORMAT(XMKSSJ, '%Y%m') and DATE_FORMAT(XMJSSJ,'%Y%m')
@@ -166,7 +187,7 @@
                 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( (SELECT bgrz.BGHDZ FROM kd_xm_bgrz bgrz WHERE bgrz.XM_ID = xm.id AND bgrz.ZDMC = 'XMKSSJ' AND DATE_FORMAT(bgrz.BGSXSJ,'%Y') <![CDATA[<=]]> #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMKSSJ) AS XMKSSJ,
+                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
             FROM kd_xm xm
             WHERE #{ew.yearAndMonth} between DATE_FORMAT(XMKSSJ, '%Y') and DATE_FORMAT(XMJSSJ,'%Y')

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

@@ -14,7 +14,7 @@
         <result column="name" property="name"/>
         <result column="number" property="number"/>
         <result column="id_card" property="idCard"/>
-        <result column="secondary_unit" property="secondaryUnit"/>
+        <result column="department_id" property="departmentId"/>
         <result column="department" property="department"/>
         <result column="nature" property="nature"/>
         <result column="situation" property="situation"/>
@@ -33,7 +33,7 @@
         <result column="name" property="name"/>
         <result column="number" property="number"/>
         <result column="id_card" property="idCard"/>
-        <result column="secondary_unit" property="secondaryUnit"/>
+        <result column="department_id" property="departmentId"/>
         <result column="department" property="department"/>
         <result column="post_location" property="postLocation"/>
         <result column="post" property="post"/>
@@ -84,7 +84,7 @@
             <result column="name" property="name"/>
             <result column="number" property="number"/>
             <result column="id_card" property="idCard"/>
-            <result column="secondary_unit" property="secondaryUnit"/>
+            <result column="department_id" property="departmentId"/>
             <result column="department" property="department"/>
             <result column="post_location" property="postLocation"/>
             <result column="post" property="post"/>
@@ -147,7 +147,6 @@
         <if test="ew.name!=null and ew.name!=''">and t.name like concat('%', #{ew.name},'%')</if>
         <if test="ew.number!=null and ew.number!=''">and t.number like concat('%',#{ew.number}, '%')</if>
         <if test="ew.idCard!=null and ew.idCard!=''">and t.id_card like concat('%', #{ew.idCard}, '%')</if>
-        <if test="ew.secondaryUnit!=null and ew.secondaryUnit!=''">and t.secondary_unit like concat('%', #{ew.secondaryUnit}, '%')</if>
         <if test="ew.department!=null and ew.department!=''">and t.department like concat('%',#{ew.department}, '%')</if>
         <if test="ew.post!=null and ew.post!=''">and t.post like concat('%', #{ew.post},'%')</if>
         <if test="ew.nature!=null and ew.nature!=''">and t.nature = #{ew.nature}</if>

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

@@ -31,17 +31,18 @@
     </resultMap>
 
     <select id="selectPageByYearAndMonth" resultMap="ResultVoMap">
-        SELECT xa.*,
-               m.xm_id, m.STFQC, m.STFLX,m.HTMC,m.SFWCJSHTDJ,m.JSHTDJLX,m.JSHTDJJE,
-               xm.xmmc, xm.xmbh
+        SELECT
+            xa.*,
+            m.xm_id, m.STFQC, m.STFLX,m.HTMC,m.SFWCJSHTDJ,m.JSHTDJLX,m.JSHTDJJE,
+            xm.xmmc, xm.xmbh
         FROM kd_xm_wwxm_cost xa
         LEFT JOIN kd_xm_wwxm m on m.id = xa.ww_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
+                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
             WHERE xm.is_deleted = 0
         ) xm on xm.id = m.xm_id
@@ -61,8 +62,8 @@
         (
             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') = #{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') = #{ew.yearAndMonth} ORDER BY bgrz.BGSXSJ DESC LIMIT 1),XMBH) AS XMBH
+                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
             FROM kd_xm xm
             WHERE xm.is_deleted = 0
         ) xm on xm.id = m.xm_id

+ 6 - 10
kd-service/kd-scientific/src/main/java/org/sky/scientific/mapper/YsWxzctxfyMapper.xml

@@ -49,16 +49,12 @@
         inner join kd_asset s on s.ZCBM = XA.ZCBM and s.year_and_month = #{yearAndMonth}
         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}
+            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
+            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 #{yearAndMonth} between DATE_FORMAT(xm.XMKSSJ, '%Y%m') and DATE_FORMAT(xm.XMJSSJ,'%Y%m')
     </select>

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

@@ -55,16 +55,12 @@
         inner join kd_asset s on s.id = xa.asset_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}
+            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
+            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 #{yearAndMonth} between DATE_FORMAT(xm.XMKSSJ, '%Y%m') and DATE_FORMAT(xm.XMJSSJ,'%Y%m')
         <if test="zclb!=null and zclb!=''">and s.ZCLB= #{zclb}</if>

+ 3 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/IXmService.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.sky.core.mp.base.BaseService;
 import org.sky.scientific.excel.XmExcel;
 import org.sky.scientific.pojo.dto.XmDTO;
+import org.sky.scientific.pojo.dto.XmUpdateDto;
 import org.sky.scientific.pojo.entity.XmEntity;
 import org.sky.scientific.pojo.vo.XmSummary;
 import org.sky.scientific.pojo.vo.XmVO;
@@ -52,6 +53,8 @@ public interface IXmService extends BaseService<XmEntity> {
 	 */
     Long approval(XmDTO xm);
 
+	boolean updateXm(XmUpdateDto dto);
+
 	/**
 	 * 项目汇总表
 	 * @param page

+ 14 - 2
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/SettingServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
 import org.sky.core.log.exception.ServiceException;
+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.SettingMapper;
@@ -69,8 +70,19 @@ public class SettingServiceImpl implements SettingService {
 			.eq(SettingEntity::getYearAndMonth, settingEntity.getYearAndMonth()));
 		if(Func.isNull(dbEntity)){
 			//新增
-			one.setId(null);
-			return mapper.insert(one) == 1;
+			SettingEntity insertObj = new SettingEntity();
+			insertObj.setYearAndMonth(settingEntity.getYearAndMonth());
+			insertObj.setTenantId(SecureUtil.getTenantId());
+ 			if(Func.equals(settingEntity.getType(), 1)){
+				//出勤时长
+				insertObj.setWorkHours(one.getWorkHours());
+			}else if(Func.equals(settingEntity.getType(), 2)){
+				//高企证书
+				insertObj.setHighTechUrl(one.getHighTechUrl());
+			}else {
+				throw new ServiceException("参数type错误");
+			}
+			return mapper.insert(insertObj) == 1;
 		}else {
 			//修改
 			if(Func.equals(settingEntity.getType(), 1)){

+ 24 - 0
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/TechnicianServiceImpl.java

@@ -24,6 +24,7 @@ import org.sky.scientific.mapper.*;
 import org.sky.scientific.pojo.dto.TechnicianDTO;
 import org.sky.scientific.pojo.dto.XmSalaryDto;
 import org.sky.scientific.pojo.dto.XmTechnicianDto;
+import org.sky.scientific.pojo.entity.DepartmentEntity;
 import org.sky.scientific.pojo.entity.TechnicianEntity;
 import org.sky.scientific.pojo.entity.XmEntity;
 import org.sky.scientific.pojo.entity.XmTechnicianEntity;
@@ -54,6 +55,7 @@ public class TechnicianServiceImpl extends BaseServiceImpl<TechnicianMapper, Tec
 	private final XmTechnicianMapper xmTechnicianMapper;
 	private final XmMapper xmMapper;
 	private final XmTechnicianHoursMapper xmTechnicianHoursMapper;
+	private final DepartmentMapper departmentMapper;
 
 	@Override
 	public boolean saveOrUpdateTechnician(TechnicianEntity technician) {
@@ -140,6 +142,28 @@ public class TechnicianServiceImpl extends BaseServiceImpl<TechnicianMapper, Tec
 			//转换 性别字典
 			technician.setGender(Integer.valueOf(DictCache.getKey(DictEnum.SEX, excel.getGenderName())));
 			technician.setYearAndMonth(yearAndMonth);
+
+ 			if(Func.isNotBlank(excel.getDepartment())){
+				LambdaQueryWrapper<DepartmentEntity> eq = Wrappers.<DepartmentEntity>lambdaQuery()
+					.eq(DepartmentEntity::getName, excel.getDepartment())
+					.eq(DepartmentEntity::getYearAndMonth, StringUtil.sub(yearAndMonth, 0, 4));
+				DepartmentEntity dbDepartment = departmentMapper.selectOne(eq);
+				if(Func.isNull(dbDepartment)){
+					throw new ServiceException("序号为["+excel.getXh()+"]的部门/科室/项目部["+excel.getDepartment()+"]不存在");
+				}
+				technician.setDepartment(departmentMapper.getFullNameById(dbDepartment.getId()));
+				technician.setDepartmentId(dbDepartment.getId());
+			}else if(Func.isNotBlank(excel.getSecondaryUnit())){
+				LambdaQueryWrapper<DepartmentEntity> eq = Wrappers.<DepartmentEntity>lambdaQuery()
+					.eq(DepartmentEntity::getName, excel.getSecondaryUnit())
+					.eq(DepartmentEntity::getYearAndMonth, StringUtil.sub(yearAndMonth, 0, 4));
+				DepartmentEntity dbDepartment = departmentMapper.selectOne(eq);
+				if(Func.isNull(dbDepartment)){
+					throw new ServiceException("序号为["+excel.getXh()+"]的所属二级单位["+excel.getDepartment()+"]不存在");
+				}
+				technician.setDepartment(departmentMapper.getFullNameById(dbDepartment.getId()));
+				technician.setDepartmentId(dbDepartment.getId());
+			}
 			this.saveOrUpdateTechnician(technician);
 		}
 	}

+ 24 - 18
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/XmServiceImpl.java

@@ -1,6 +1,7 @@
 
 package org.sky.scientific.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -16,6 +17,7 @@ import org.sky.core.tool.utils.StringUtil;
 import org.sky.scientific.excel.XmExcel;
 import org.sky.scientific.mapper.*;
 import org.sky.scientific.pojo.dto.XmDTO;
+import org.sky.scientific.pojo.dto.XmUpdateDto;
 import org.sky.scientific.pojo.entity.XmEntity;
 import org.sky.scientific.pojo.vo.XmSummary;
 import org.sky.scientific.pojo.vo.XmVO;
@@ -110,29 +112,33 @@ public class XmServiceImpl extends BaseServiceImpl<XmMapper, XmEntity> implement
 	}
 
 	@Override
+	public boolean updateXm(XmUpdateDto dto) {
+		return baseMapper.updateXm(dto);
+	}
+
+	@Override
 	public IPage<XmSummary> summaryPage(IPage<XmSummary> page, XmDTO xm) {
 		List<XmSummary> xmList = baseMapper.summaryPage(page, xm);
+
+		int year = Integer.parseInt(xm.getYearAndMonth().substring(0, 4));
 		for (XmSummary xmVO : xmList) {
 			if (xmVO.getXmfzr() != null) {
-				xmVO.setXmfzrxm(technicianMapper.selectById(xmVO.getXmfzr()).getName());
+				xmVO.setXmfzrxm(technicianMapper.getNameById(xmVO.getXmfzr()));
+			}
+			//立项报告数量
+			xmVO.setLxbgCount(JSON.parseArray(xmVO.getLxbg()).size());
+
+			List<JSONObject> xmysmx = JSON.parseArray(xmVO.getXmyszemx(), JSONObject.class);
+			//预算总额
+ 			xmVO.setXmysze(xmysmx.stream().mapToDouble(item -> JSONObject.parseObject(item.toString()).getDoubleValue("amount")).sum());
+
+			//本年度预算
+			for (JSONObject o : xmysmx) {
+				if(o.getInteger("year") == year){
+					xmVO.setXmyszeCurrentYear(o.getDouble("amount"));
+					break;
+				}
 			}
-			//立项报告
-			//阶段性报告
-//			xmVO.setJdxbgList(jdxbgMapper.selectList(Wrappers.<XmJdxbgEntity>lambdaQuery().eq(XmJdxbgEntity::getXmId, xmVO.getId())));
-//			//验收报告
-//			xmVO.setYsbgList(jtbMapper.selectList(Wrappers.<XmJtbEntity>lambdaQuery().eq(XmJtbEntity::getXmId, xmVO.getId()).isNotNull(XmJtbEntity::getYsbg)));
-//			//发明专利
-//			xmVO.setFmzlList(cgZlMapper.selectList(Wrappers.<CgZlEntity>lambdaQuery().eq(CgZlEntity::getXmbh, xmVO.getXmbh()).eq(CgZlEntity::getZllx, "发明专利")));
-//			//实用新型专利
-//			xmVO.setSyxxzlList(cgZlMapper.selectList(Wrappers.<CgZlEntity>lambdaQuery().eq(CgZlEntity::getXmbh, xmVO.getXmbh()).eq(CgZlEntity::getZllx, "实用新型专利")));
-//			//软著
-//			xmVO.setRzList(cgRjzzqMapper.selectList(Wrappers.<CgRjzzqEntity>lambdaQuery().eq(CgRjzzqEntity::getXmbh, xmVO.getXmbh())));
-//			//标准
-//			xmVO.setBzList(cgJsbzMapper.selectList(Wrappers.<CgJsbzEntity>lambdaQuery().eq(CgJsbzEntity::getXmbh, xmVO.getXmbh())));
-//			//论文
-//			xmVO.setLwList(cgKylwMapper.selectList(Wrappers.<CgKylwEntity>lambdaQuery().eq(CgKylwEntity::getXmbh, xmVO.getXmbh())));
-//			//其他
-//			xmVO.setQtList(cgQtMapper.selectList(Wrappers.<CgQtEntity>lambdaQuery().eq(CgQtEntity::getXmbh, xmVO.getXmbh())));
 		}
 		return page.setRecords(xmList);
 	}