zhuwei hai 1 ano
pai
achega
f38a060443

+ 13 - 0
src/main/java/org/springblade/modules/project/controller/WorkFocusController.java

@@ -43,6 +43,7 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.project.pojo.entity.WorkFocusProgressEntity;
 import org.springblade.modules.project.pojo.excel.WorkFocusExcel;
 import org.springblade.modules.project.pojo.excel.WorkFocusImporter;
+import org.springblade.modules.project.pojo.vo.WorkFocusDataInfoVO;
 import org.springblade.modules.project.pojo.vo.WorkFocusListVO;
 import org.springblade.modules.project.pojo.vo.WorkFocusProgressVO;
 import org.springblade.modules.project.service.IWorkFocusProgressService;
@@ -188,6 +189,7 @@ public class WorkFocusController extends BladeController {
 				Integer endYear = workFocusEntity.getEndYear();
 				for(int i = startYear ; i <= endYear ; i++){
 					List<WorkFocusProgressEntity> list = new ArrayList<>();
+
 					for(int j=1 ; j <=16 ; j++){
 						WorkFocusProgressEntity workFocusProgress = new WorkFocusProgressVO();
 						workFocusProgress.setYear(i);
@@ -237,4 +239,15 @@ public class WorkFocusController extends BladeController {
 		ExcelUtil.save(file, userImporter, WorkFocusExcel.class);
 		return R.success("操作成功");
 	}
+
+	/**
+	 * 工作要点表 数据看板
+	 */
+	@GetMapping("/queryWorkFocusDataInfo")
+	@ApiOperationSupport(order = 3)
+	@Operation(summary = "数据看板", description  = "数据看板")
+	public R<WorkFocusDataInfoVO> queryWorkFocusDataInfo(WorkFocusVO workfocus, Query query) {
+		WorkFocusDataInfoVO pages = workfocusService.queryWorkFocusDataInfo(workfocus);
+		return R.data(pages);
+	}
 }

+ 4 - 0
src/main/java/org/springblade/modules/project/mapper/WorkFocusMapper.java

@@ -27,6 +27,7 @@ package org.springblade.modules.project.mapper;
 
 import org.springblade.modules.project.pojo.excel.WorkFocusExcel;
 import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
+import org.springblade.modules.project.pojo.vo.WorkFocusProgressDataInfoVO;
 import org.springblade.modules.project.pojo.vo.WorkFocusVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
@@ -60,4 +61,7 @@ public interface WorkFocusMapper extends BaseMapper<WorkFocusEntity> {
 	 */
 	List<WorkFocusExcel> exportWorkFocus(@Param("ew") Wrapper<WorkFocusEntity> queryWrapper);
 
+
+	List<WorkFocusProgressDataInfoVO> queryWorkFocusDataInfo(@Param("workfocus") WorkFocusVO workfocus);
+
 }

+ 35 - 2
src/main/java/org/springblade/modules/project/mapper/WorkFocusMapper.xml

@@ -20,9 +20,31 @@
         <result column="create_dept" property="createDept"/>
     </resultMap>
 
+    <!-- 通用查询映射结果 -->
+    <resultMap id="workFocusVOResultMap" type="org.springblade.modules.project.pojo.vo.WorkFocusVO">
+        <result column="id" property="id"/>
+        <result column="work_focus_stage" property="workFocusStage"/>
+        <result column="target_plan" property="targetPlan"/>
+        <result column="start_year" property="startYear"/>
+        <result column="end_year" property="endYear"/>
+        <result column="work_plan" property="workPlan"/>
+        <result column="duty_unit" property="dutyUnit"/>
+        <result column="create_time" property="createTime"/>
+        <result column="create_user" property="createUser"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="status" property="status"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="workFocusStageName" property="workFocusStageName"/>
+        <result column="comRate" property="comRate"/>
+    </resultMap>
 
-    <select id="selectWorkFocusPage" resultMap="workfocusResultMap">
-        select * from d_work_focus where is_deleted = 0
+    <select id="selectWorkFocusPage" resultMap="workFocusVOResultMap">
+        select * ,(SELECT dict_value from blade_dict_biz where code='workFocusStage' and is_deleted=0 and dict_key=b.work_focus_stage) as workFocusStageName,
+        FLOOR((SELECT sum(a.schedule is not null and schedule!='' and month &lt;=12) + sum(a.progress is not null and progress!='') from d_work_focus_progress a where work_focus_id=b.id and is_deleted=0)/
+        ((end_year-start_year+1)*28)*100) as comRate
+        from d_work_focus b where is_deleted = 0
         <if test="param2.startYear!=null and param2.startYear != ''">
             and start_year &lt;= #{param2.startYear}
         </if>
@@ -36,6 +58,7 @@
         <if test="param2.workFocusStage!=null and param2.workFocusStage != '' ">
             and work_focus_stage = #{param2.workFocusStage}
         </if>
+         order by target_plan
     </select>
 
 
@@ -43,4 +66,14 @@
         SELECT * FROM d_work_focus ${ew.customSqlSegment}
     </select>
 
+    <select id="queryWorkFocusDataInfo" resultType="org.springblade.modules.project.pojo.vo.WorkFocusProgressDataInfoVO">
+        SELECT id,
+               (SELECT dict_value from blade_dict_biz where code='workFocusStage' and is_deleted=0 and dict_key=b.work_focus_stage) as workFocusStageName,
+               target_plan,work_plan,duty_unit,
+               a.month1,a.month2,a.month3,a.month4,a.month5,a.month6,a.month7,a.month8,a.month9,a.month10,a.month11,a.month12
+        from d_work_focus b,d_work_focus_view a where is_deleted=0 and b.id=a.work_focus_id
+        <if test="workfocus.year!=null and workfocus.year != '' ">
+            and a.year = #{workfocus.year}
+        </if>
+    </select>
 </mapper>

+ 71 - 0
src/main/java/org/springblade/modules/project/pojo/vo/WorkFocusDataInfoVO.java

@@ -0,0 +1,71 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ * <p>
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ * <p>
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ * <p>
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ * <p>
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ * <p>
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ * <p>
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ * <p>
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.modules.project.pojo.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
+
+import java.io.Serial;
+import java.util.List;
+
+/**
+ * 工作重点 数据视图
+ *
+ * @author BladeX
+ * @since 2024-04-09
+ */
+@Data
+public class WorkFocusDataInfoVO {
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 方面个数
+	 */
+	@Schema(description = "方面个数")
+	private Integer stagesCount;
+
+	/**
+	 * 任务个数
+	 */
+	@Schema(description = "任务个数")
+	private Integer taskCount;
+
+	/**
+	 * 截止时间
+	 */
+	@Schema(description = "截止时间")
+	private String lastDate;
+
+	/**
+	 * 数据集合
+	 */
+	@Schema(description = "数据集合")
+	private List<WorkFocusProgressDataInfoVO> tabList;
+
+}

+ 143 - 0
src/main/java/org/springblade/modules/project/pojo/vo/WorkFocusProgressDataInfoVO.java

@@ -0,0 +1,143 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ * <p>
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ * <p>
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ * <p>
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ * <p>
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ * <p>
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ * <p>
+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
+ * not liable for any claims arising from secondary or illegal development.
+ * <p>
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.modules.project.pojo.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
+
+import java.io.Serial;
+import java.util.List;
+
+/**
+ * 附件表 视图实体类
+ *
+ * @author BladeX
+ * @since 2024-04-09
+ */
+@Data
+public class WorkFocusProgressDataInfoVO {
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 项目阶段
+	 */
+	@Schema(description = "项目阶段")
+	private String workFocusStageName;
+
+	/**
+	 * 目标任务
+	 */
+	@Schema(description = "目标任务")
+	private String targetPlan;
+
+
+	/**
+	 * 工作内容
+	 */
+	@Schema(description = "工作内容")
+	private String workPlan;
+
+	/**
+	 * 责任单位
+	 */
+	@Schema(description = "责任单位")
+	private String dutyUnit;
+
+
+	/**
+	 * 一月
+	 */
+	@Schema(description = "一月")
+	private String month1;
+
+	/**
+	 * 二月
+	 */
+	@Schema(description = "二月")
+	private String month2;
+
+	/**
+	 * 三月
+	 */
+	@Schema(description = "三月")
+	private String month3;
+
+	/**
+	 * 四月
+	 */
+	@Schema(description = "四月")
+	private String month4;
+
+	/**
+	 * 五月
+	 */
+	@Schema(description = "五月")
+	private String month5;
+
+	/**
+	 * 六月
+	 */
+	@Schema(description = "六月")
+	private String month6;
+
+	/**
+	 * 七月
+	 */
+	@Schema(description = "七月")
+	private String month7;
+
+	/**
+	 * 八月
+	 */
+	@Schema(description = "八月")
+	private String month8;
+
+	/**
+	 * 九月
+	 */
+	@Schema(description = "九月")
+	private String month9;
+
+	/**
+	 * 十月
+	 */
+	@Schema(description = "十月")
+	private String month10;
+
+	/**
+	 * 十一月
+	 */
+	@Schema(description = "十一月")
+	private String month11;
+
+	/**
+	 * 十二月
+	 */
+	@Schema(description = "十二月")
+	private String month12;
+}

+ 0 - 1
src/main/java/org/springblade/modules/project/pojo/vo/WorkFocusProgressVO.java

@@ -26,7 +26,6 @@
 package org.springblade.modules.project.pojo.vo;
 
 import org.springblade.modules.project.pojo.entity.WorkFocusProgressEntity;
-import org.springblade.core.tool.node.INode;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import java.io.Serial;

+ 26 - 0
src/main/java/org/springblade/modules/project/pojo/vo/WorkFocusVO.java

@@ -25,6 +25,7 @@
  */
 package org.springblade.modules.project.pojo.vo;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
 import org.springblade.core.tool.node.INode;
 import lombok.Data;
@@ -43,4 +44,29 @@ public class WorkFocusVO extends WorkFocusEntity {
 	@Serial
 	private static final long serialVersionUID = 1L;
 
+	/**
+	 * 工作要点阶段名称
+	 */
+	@Schema(description = "工作要点阶段名称")
+	private String workFocusStageName;
+
+	/**
+	 * 填报率
+	 */
+	@Schema(description = "填报率")
+	private Integer comRate;
+
+
+	/**
+	 * 年
+	 */
+	@Schema(description = "年")
+	private Integer year;
+
+	/**
+	 * 年
+	 */
+	@Schema(description = "季度")
+	private Integer quarter;
+
 }

+ 4 - 1
src/main/java/org/springblade/modules/project/service/IWorkFocusService.java

@@ -27,6 +27,7 @@ package org.springblade.modules.project.service;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import org.springblade.modules.project.pojo.excel.WorkFocusExcel;
 import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
+import org.springblade.modules.project.pojo.vo.WorkFocusDataInfoVO;
 import org.springblade.modules.project.pojo.vo.WorkFocusVO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseService;
@@ -48,7 +49,6 @@ public interface IWorkFocusService extends BaseService<WorkFocusEntity> {
 	 */
 	IPage<WorkFocusVO> selectWorkFocusPage(IPage<WorkFocusVO> page, WorkFocusVO workfocus);
 
-
 	/**
 	 * 导出数据
 	 *
@@ -58,4 +58,7 @@ public interface IWorkFocusService extends BaseService<WorkFocusEntity> {
 	List<WorkFocusExcel> exportWorkFocus(Wrapper<WorkFocusEntity> queryWrapper);
 
 	void importWorkFocus(List<WorkFocusExcel> data,Boolean isCovered);
+
+	//工作重点查询
+	WorkFocusDataInfoVO queryWorkFocusDataInfo(WorkFocusVO workfocus);
 }

+ 27 - 1
src/main/java/org/springblade/modules/project/service/impl/WorkFocusServiceImpl.java

@@ -25,19 +25,29 @@
  */
 package org.springblade.modules.project.service.impl;
 
+import org.springblade.common.cache.DictCache;
+import org.springblade.common.enums.DictEnum;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.project.pojo.excel.WorkFocusExcel;
 import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
+import org.springblade.modules.project.pojo.vo.WorkFocusDataInfoVO;
+import org.springblade.modules.project.pojo.vo.WorkFocusProgressDataInfoVO;
 import org.springblade.modules.project.pojo.vo.WorkFocusVO;
 import org.springblade.modules.project.mapper.WorkFocusMapper;
 import org.springblade.modules.project.service.IWorkFocusService;
+import org.springblade.modules.project.wrapper.WorkFocusWrapper;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseServiceImpl;
 
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
+import java.util.TreeSet;
+import java.util.stream.Collectors;
 
 /**
  * 附件表 服务实现类
@@ -50,7 +60,8 @@ public class WorkFocusServiceImpl extends BaseServiceImpl<WorkFocusMapper, WorkF
 
 	@Override
 	public IPage<WorkFocusVO> selectWorkFocusPage(IPage<WorkFocusVO> page, WorkFocusVO workfocus) {
-		return page.setRecords(baseMapper.selectWorkFocusPage(page, workfocus));
+		List<WorkFocusVO> workFocusEntities = baseMapper.selectWorkFocusPage(page, workfocus);
+		return page.setRecords(workFocusEntities);
 	}
 
 
@@ -78,4 +89,19 @@ public class WorkFocusServiceImpl extends BaseServiceImpl<WorkFocusMapper, WorkF
 		}
 	}
 
+	@Override
+	public WorkFocusDataInfoVO queryWorkFocusDataInfo(WorkFocusVO workfocus) {
+		WorkFocusDataInfoVO focusDataInfoVO = new WorkFocusDataInfoVO();
+		List<WorkFocusProgressDataInfoVO> data = baseMapper.queryWorkFocusDataInfo(workfocus);
+		focusDataInfoVO.setTabList(data);
+		focusDataInfoVO.setLastDate(DateUtil.time());
+		focusDataInfoVO.setTaskCount(data.size());
+
+		List<WorkFocusProgressDataInfoVO> data2 = data.stream().filter(o -> o.getWorkFocusStageName() != null).collect(
+				Collectors.collectingAndThen(Collectors.toCollection(
+						() -> new TreeSet<>(Comparator.comparing(o -> o.getWorkFocusStageName()))), ArrayList<WorkFocusProgressDataInfoVO>::new));
+		focusDataInfoVO.setStagesCount(data2.size());
+		return focusDataInfoVO;
+	}
+
 }

+ 3 - 0
src/main/java/org/springblade/modules/project/wrapper/WorkFocusWrapper.java

@@ -25,6 +25,7 @@
  */
 package org.springblade.modules.project.wrapper;
 
+import org.springblade.common.cache.DictCache;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.modules.project.pojo.entity.WorkFocusEntity;
@@ -52,6 +53,8 @@ public class WorkFocusWrapper extends BaseEntityWrapper<WorkFocusEntity, WorkFoc
 		//workfocusVO.setCreateUserName(createUser.getName());
 		//workfocusVO.setUpdateUserName(updateUser.getName());
 
+		//String value = DictCache.getValue("workFocusStage", workfocus.getWorkFocusStage());
+	//	workfocusVO.setWorkFocusStageName(value);
 		return workfocusVO;
 	}
 

+ 1 - 3
src/main/java/org/springblade/modules/system/controller/DictBizController.java

@@ -224,12 +224,10 @@ public class DictBizController extends BladeController {
 	@ApiOperationSupport(order = 12)
 	@Operation(summary = "系统设置-项目相关类型保存", description = "传入type,和字典数组")
 	public R saveDict(@RequestBody DictBizDTO dto) {
+		CacheUtil.clear(DICT_CACHE);
 		dictService.saveDict(dto);
 		return R.success("保存成功");
 	}
 
 
-
-
-
 }

+ 6 - 1
src/main/java/org/springblade/modules/system/pojo/entity/User.java

@@ -104,8 +104,13 @@ public class User extends TenantEntity {
 	private String postId;
 
 	/**
-	 * 岗位id
+	 * 密码明文
 	 */
 	private String passText;
 
+	/**
+	 * 是否阅读
+	 */
+	private Integer isRead;
+
 }

+ 1 - 0
src/main/java/org/springblade/modules/system/service/impl/DictBizServiceImpl.java

@@ -154,6 +154,7 @@ public class DictBizServiceImpl extends ServiceImpl<DictBizMapper, DictBiz> impl
 			biz.setSort(i++);
 			adds.add(biz);
 		}
+		CacheUtil.clear(DICT_CACHE);
 		this.saveBatch(adds);
 	}
 }

+ 2 - 3
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java

@@ -104,10 +104,9 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
 				throw new ServiceException("当前租户已到最大账号额度!");
 			}
 		}
-		user.setPassText(user.getPassword());
 		user.setDeptId("1123598813738675202");
-		if (Func.isNotEmpty(user.getPassword())) {
-			user.setPassword(DigestUtil.encrypt(user.getPassword()));
+		if (Func.isNotEmpty(user.getPassText())) {
+			user.setPassword(DigestUtil.encrypt(user.getPassText()));
 		}
 		Long userCount = baseMapper.selectCount(Wrappers.<User>query().lambda().eq(User::getTenantId, tenantId).eq(User::getAccount, user.getAccount()));
 		if (userCount > 0L && Func.isEmpty(user.getId())) {