zhouli 10 months ago
parent
commit
3dd653e4ca

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

@@ -1,6 +1,7 @@
 
 
 package org.sky.scientific.pojo.vo;
 package org.sky.scientific.pojo.vo;
 
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.EqualsAndHashCode;
 import org.sky.scientific.pojo.entity.TechnicianEntity;
 import org.sky.scientific.pojo.entity.TechnicianEntity;
@@ -23,4 +24,7 @@ public class TechnicianVO extends TechnicianEntity {
 
 
 	private String genderName;
 	private String genderName;
 
 
+	@Schema(description = "本年度从事研发工作天数")
+	private double workDaysByYear;
+
 }
 }

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

@@ -151,7 +151,17 @@ public class TechnicianController extends KdController {
 	@GetMapping("xmcyryhzb")
 	@GetMapping("xmcyryhzb")
 	@ApiOperationSupport(order = 26)
 	@ApiOperationSupport(order = 26)
 	@Operation(summary = "项目参研人员汇总表")
 	@Operation(summary = "项目参研人员汇总表")
-	public R<IPage<XmTechnicianSummary>> xmTechnicianSummary(XmTechnicianEntity entity, Query query){
+	public R<IPage<XmTechnicianSummary>> xiangmucanyanrenyuanhuizongbiao(XmTechnicianEntity entity, Query query){
 		return R.data(technicianService.xiangmucanyanrenyuanhuizongbiao(Condition.getPage(query), entity));
 		return R.data(technicianService.xiangmucanyanrenyuanhuizongbiao(Condition.getPage(query), entity));
 	}
 	}
+
+	@GetMapping("ndgkjryhzb")
+	@ApiOperationSupport(order = 26)
+	@Operation(summary = "年度高新科技人员汇总表")
+	public R<IPage<TechnicianVO>> niandugaokejirenyuanhuizongbiao(TechnicianDTO dto, Query query){
+		return R.data(technicianService.niandugaokejirenyuanhuizongbiao(Condition.getPage(query), dto));
+	}
+
+
+
 }
 }

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

@@ -4,9 +4,7 @@ package org.sky.scientific.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
-import org.sky.core.mp.support.Query;
 import org.sky.scientific.pojo.dto.TechnicianDTO;
 import org.sky.scientific.pojo.dto.TechnicianDTO;
-import org.sky.scientific.pojo.dto.XmTechnicianDto;
 import org.sky.scientific.pojo.entity.TechnicianEntity;
 import org.sky.scientific.pojo.entity.TechnicianEntity;
 import org.sky.scientific.pojo.vo.TechnicianVO;
 import org.sky.scientific.pojo.vo.TechnicianVO;
 
 
@@ -46,10 +44,7 @@ public interface TechnicianMapper extends BaseMapper<TechnicianEntity> {
 	int batchDelete(List<Long> list);
 	int batchDelete(List<Long> list);
 
 
 	/**
 	/**
-	 * 参研人员花名册
-	 * @param entity
-	 * @param query
-	 * @return
+	 * 年度科技人员汇总表
 	 */
 	 */
-    List<TechnicianVO> canyanrenyuanhuamingce(XmTechnicianDto entity, Query query);
+	List<TechnicianVO> niandugaokejirenyuanhuizongbiao(@Param("page") IPage<TechnicianVO> page, @Param("ew") TechnicianDTO dto);
 }
 }

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

@@ -134,7 +134,35 @@
         where number = #{number} and id_card = #{idCard}
         where number = #{number} and id_card = #{idCard}
     </select>
     </select>
 
 
-    <select id="canyanrenyuanhuamingce" resultMap="ResultVoMap">
-
+    <select id="niandugaokejirenyuanhuizongbiao" resultMap="ResultVoMap" parameterType="org.sky.scientific.pojo.dto.TechnicianDTO">
+        SELECT COUNT(DISTINCT h.work_date) as workDaysByYear,t.*
+        FROM kd_xm_technician_hours h
+        LEFT JOIN
+        (
+            SELECT
+                t.unicode,t.`name`,t.gender,t.number, t.id_card,t.birthday, t.ethnic, t.secondary_unit, t.department,t.post,t.post_location,t.nature, t.hire_date, t.education, t.degree, t.school_name, t.major, t.rank, t.practicing_requirement,t.situation,t.personnel_type, t.remark
+            FROM kd_technician t
+            WHERE LEFT(t.year_and_month, 4) = #{ew.yearAndMonth}
+            GROUP BY unicode
+            ORDER BY t.year_and_month desc
+        )t on t.unicode = h.unicode
+        WHERE LEFT(work_date, 4) = #{ew.yearAndMonth}
+        <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>
+        <if test="ew.personnelType!=null and ew.personnelType!=''">and t.personnel_type = #{ew.personnelType}</if>
+        <if test="ew.situation !=null and ew.situation!=''">and t.situation = #{ew.situation}</if>
+        <if test="ew.education !=null and ew.education!=''">and t.education = #{ew.education}</if>
+        <if test="ew.degree !=null and ew.degree!=''">and t.degree = #{ew.degree}</if>
+        <if test="ew.rank !=null and ew.rank!=''">and t.rank like concat('%',#{ew.rank}, '%')</if>
+        <if test="ew.practicingRequirement !=null and ew.practicingRequirement!=''">and t.practicing_requirement like concat('%',#{ew.practicingRequirement}, '%')</if>
+        <if test="ew.hireStartDate!=null and ew.hireEndDate!=''">and hire_Date between #{ew.hireStartDate} and #{ew.hireEndDate}</if>
+        GROUP BY h.unicode
+        HAVING workDaysByYear > 18
     </select>
     </select>
+
 </mapper>
 </mapper>

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

@@ -172,5 +172,6 @@
             FROM kd_xm temp
             FROM kd_xm temp
         ) xm ON xt.xm_id = xm.id
         ) xm ON xt.xm_id = xm.id
         WHERE xt.unicode = #{unicode} and LEFT(xt.year_and_month, 4) = #{year}
         WHERE xt.unicode = #{unicode} and LEFT(xt.year_and_month, 4) = #{year}
+        GROUP BY xt.xm_id
     </select>
     </select>
 </mapper>
 </mapper>

+ 6 - 7
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/ITechnicianService.java

@@ -30,13 +30,6 @@ public interface ITechnicianService extends BaseService<TechnicianEntity> {
 	 */
 	 */
 	boolean saveOrUpdateTechnician(TechnicianEntity technician);
 	boolean saveOrUpdateTechnician(TechnicianEntity technician);
 
 
-//	/**
-//	 * 修改
-//	 * @param technician
-//	 * @return
-//	 */
-//	boolean updateTechnician(TechnicianEntity technician);
-
 	/**
 	/**
 	 * 自定义分页
 	 * 自定义分页
 	 *
 	 *
@@ -134,4 +127,10 @@ public interface ITechnicianService extends BaseService<TechnicianEntity> {
 	 * @return
 	 * @return
 	 */
 	 */
 	IPage<XmTechnicianVO> canyanrenyuanhuamingce(IPage<XmTechnicianVO> page, XmTechnicianDto entity);
 	IPage<XmTechnicianVO> canyanrenyuanhuamingce(IPage<XmTechnicianVO> page, XmTechnicianDto entity);
+
+	/**
+	 * 年度科技人员汇总表
+	 */
+	IPage<TechnicianVO> niandugaokejirenyuanhuizongbiao(IPage<TechnicianVO> page, TechnicianDTO dto);
+
 }
 }

+ 11 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/TechnicianServiceImpl.java

@@ -9,7 +9,7 @@ import com.alibaba.excel.write.metadata.fill.FillWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -316,4 +316,14 @@ public class TechnicianServiceImpl extends BaseServiceImpl<TechnicianMapper, Tec
 		return page.setRecords(list);
 		return page.setRecords(list);
 	}
 	}
 
 
+    @Override
+    public IPage<TechnicianVO> niandugaokejirenyuanhuizongbiao(IPage<TechnicianVO> page, TechnicianDTO dto) {
+		//TODO 目前因测试数据不多,需求是 年度天数大于183的才显示,这里先用18代替,后期要改回来
+		List<TechnicianVO> list = baseMapper.niandugaokejirenyuanhuizongbiao(page, dto);
+		for (TechnicianVO vo : list) {
+			vo.setGenderName(DictCache.getValue(DictEnum.SEX, vo.getGender()));
+ 		}
+		return page.setRecords(list);
+    }
+
 }
 }