Qutong 3 жил өмнө
parent
commit
5e3150ef6d

+ 96 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -26,6 +26,7 @@ import com.qunzhixinxi.hnqz.admin.entity.input.NoticeApiInput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageApiInput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageApiOutput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmWkAlbumApiInput;
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.DisplayStatusEnum;
 import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
@@ -1204,12 +1205,25 @@ public class ApiController {
 	public R getUserScorePackageList2(Page page, int selType, String packageName, String selDate, String activeId) {
 
 		UserVO userVO = sysUserService.selectUserVoById(SecurityUtils.getUser().getId());
+//		Page scorePage = null;
 
-		List<WmScorePackageApiOutput> scorePackageList;
+		List<WmScorePackageApiOutput> scorePackageList = new ArrayList<>();
 		if (1 == selType && isZbRole(userVO.getRoleList(), 5)) {
 			return R.ok();
 		}
 
+
+//		LambdaQueryWrapper<WmScorePackage> scoreQuery = Wrappers.lambdaQuery(query);
+//		Boolean inFlag = false;
+
+
+		List<Map<String, Object>> resultList = new ArrayList<>();
+
+//		String packageType2 = "1";
+//		if("1".equals(userVO.getUserType())){
+//			packageType2 = "2";
+//		}
+
 		IPage<WmScorePackageApiOutput> scorePage;
 		// 小程序角色:5-全职学术信息沟通专员, 6-兼职学术信息沟通专员, 10-兼职CRC, 13-HCP
 		if (1 == selType && (isZbRole(userVO.getRoleList(), 6) || isZbRole(userVO.getRoleList(), 10)
@@ -1220,13 +1234,19 @@ public class ApiController {
 			query.setScorePackageName(packageName);
 			query.setBelongDate(selDate);
 			query.setZbId(userVO.getUserId() + "");
-			// 0: 平台手动,1:系统对接
-			query.setSourceType("0");
+//			query.setPackageType2(packageType2);
+
+//			scorePage = wmScorePackageService.page(page, scoreQuery);
 			scorePage = wmScorePackageService.getPackageListForReceive(page, query);
 			scorePackageList = scorePage.getRecords();
 
 			for (WmScorePackageApiOutput item : scorePackageList) {
-
+//				Map<String, Object> map = new HashMap<>();
+//				map.put("id", item.getId());
+//				map.put("packageName", item.getScorePackageName());
+//				map.put("score", item.getScore());
+//				map.put("packageEntName", item.getPackageEntName());
+//				map.put("userNum", item.getUserNum());
 				WmScorePackageStatus queryGetUser = new WmScorePackageStatus();
 				queryGetUser.setPackageId(item.getId());
 				queryGetUser.setStatus("2");
@@ -1239,16 +1259,35 @@ public class ApiController {
 					item.setScore(String.format("%.2f", Integer.parseInt(item.getScore()) / 100.0));
 				}
 
+//				map.put("taskNum", item.getTaskNum());
+//				map.put("createTime", item.getCreateTime());
+//				map.put("description", item.getDescription());
+//				map.put("packageType1", item.getPackageType1());
+//				if ("1".equals(item.getPackageType1())) {
+//					map.put("type1", "定额");
+//				} else if ("2".equals(item.getPackageType1())) {
+//					map.put("type1", "定量");
+//				} else if ("3".equals(item.getPackageType1())) {
+//					map.put("type1", "通用");
+//				}
+
+//				resultList.add(map);
 			}
+//			scorePage.setRecords(resultList);
 			return R.ok(scorePage);
 		}
 
+//		WmScorePackageStatus status = new WmScorePackageStatus();
+//		status.setDeptId(userVO.getDeptId() + "");
+//		status.setUserId(userVO.getUserId() + "");
+//		LambdaQueryWrapper<WmScorePackageStatus> statusQuery = Wrappers.lambdaQuery(status);
 
 		if (2 == selType) {
 			WmScorePackageApiInput input = new WmScorePackageApiInput();
 			input.setScorePackageName(packageName);
 			input.setSelDate(selDate);
 			input.setUserId(userVO.getUserId() + "");
+//			input.setPackageType2(packageType2);
 			if (isZbRole(userVO.getRoleList(), 5)) {
 				input.setTypeid("3");
 
@@ -1279,14 +1318,47 @@ public class ApiController {
 			} else {
 				return R.ok();
 			}
+//			if(inFlag){
+//				List<WmScorePackage> inList =  wmScorePackageService.list(scoreQuery);
+//				List<String> ids = inList.stream().map(WmScorePackage::getId).collect(Collectors.toList());
+//				System.err.println("-----"+inList.size());
+//				if (CollectionUtils.isNotEmpty(ids)) {
+//					statusQuery.in(WmScorePackageStatus::getPackageId,ids);
+//				}else {
+//					statusQuery.eq(WmScorePackageStatus::getPackageId,"-1");
+//				}
+//			}
 
 
 			scorePage = wmScorePackageStatusService.getReceivedPackageList(page, input);
 
 			scorePackageList = scorePage.getRecords();
 			if (CollectionUtils.isNotEmpty(scorePackageList)) {
+//				Map<String, Object> map = new HashMap<>();
 				for (WmScorePackageApiOutput item : scorePackageList) {
-
+//					WmScorePackage item = wmScorePackageService.getById(status1.getPackageId());
+//					map.put("id", item.getId());
+//					map.put("packageName", item.getScorePackageName());
+//					map.put("score", item.getScore());
+////					map.put("packageEntName", sysDeptService.getById(item.getSendPackageDeptId()).getName());
+//					map.put("packageEntName", item.getPackageEntName());
+//					map.put("userNum", item.getUserNum());
+//					map.put("taskNum", item.getTaskNum());
+//					map.put("createTime", item.getCreateTime());
+//					map.put("description", item.getDescription());
+//					map.put("packageType1", item.getPackageType1());
+
+//					if ("1".equals(item.getStatus())) {
+//						item.setStatusLabel("审核中");
+//					} else if ("2".equals(item.getStatus())) {
+//						item.setStatusLabel("审核通过");
+//					} else if ("3".equals(item.getStatus())) {
+//						item.setStatusLabel("审核不通过");
+//					}
+//					if (!"0".equals(item.getEnableType())) {
+//						item.setStatusLabel("已终止");
+//					}
+//					map.put("taskAddFlag", item.getTaskAddFlag());
 
 					WmScorePackageStatus queryGetUser = new WmScorePackageStatus();
 					queryGetUser.setPackageId(item.getId());
@@ -1306,7 +1378,14 @@ public class ApiController {
 					wmTask.setTaskUserId(userVO.getUserId() + "");
 					wmTask.setRealFlag("0");
 					List<WmTask> wmTaskList = wmTaskService.list(Wrappers.query(wmTask)
-							.lambda().ne(WmTask::getTaskStatus, "4"));
+							.lambda()
+							.eq(WmTask::getRealFlag, "0")
+							.eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
+							.ne(WmTask::getTaskStatus, "4"));
+//							.ne(WmTask::getRealFlag, "1").ne(WmTask::getTaskStatus, "4"));
+
+//					map.put("taskFinishNum", wmTaskList.size());
+//					map.put("speedProgress", "0");
 					item.setTaskFinishNum(wmTaskList.size());
 					item.setSpeedProgress(0);
 					item.setFinishScore(0);
@@ -1333,9 +1412,11 @@ public class ApiController {
 							if (d > 100) {
 								d = 100;
 							}
+//							map.put("speedProgress", new Double(d).intValue());
 							item.setSpeedProgress(new Double(d).intValue());
 						}
 					} else {
+//					} else if ("2".equals(item.getPackageType1())) {
 						Integer waitApprovalTaskNum = 0;
 						double d = Math.ceil(wmTaskList.size() * 100 / item.getTaskNum());
 						if (d > 100) {
@@ -1347,12 +1428,19 @@ public class ApiController {
 							}
 						}
 						item.setWaitApprovalTaskNum(waitApprovalTaskNum);
+//						map.put("speedProgress", new Double(d).intValue());
 						item.setSpeedProgress(new Double(d).intValue());
 					}
+
+//					resultList.add(map);
+
 				}
 			}
+//			scorePage.setRecords(resultList);
 			return R.ok(scorePage);
+
 		}
+
 		return R.ok();
 
 	}
@@ -1961,6 +2049,8 @@ public class ApiController {
 
 		Page<WmTask> taskPage = wmTaskService.page(page, Wrappers.query(wmTask)
 				.lambda()
+				.eq(WmTask::getRealFlag, "0")
+				.eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
 				.orderByDesc(WmTask::getCreateTime));
 		List<WmTask> wmTaskList = taskPage.getRecords();
 

+ 11 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskController.java

@@ -47,7 +47,6 @@ import com.qunzhixinxi.hnqz.admin.entity.XlsPackageInfo;
 import com.qunzhixinxi.hnqz.admin.entity.XlsTask;
 import com.qunzhixinxi.hnqz.admin.entity.dto.CommonEvidenceDTO;
 import com.qunzhixinxi.hnqz.admin.entity.model.excel.CommonTaskExcelModel;
-import com.qunzhixinxi.hnqz.admin.mapper.SysDeptEncryptorMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
 import com.qunzhixinxi.hnqz.admin.service.ReportExportService;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
@@ -61,7 +60,6 @@ import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskContentService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskRuleService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
-import com.qunzhixinxi.hnqz.admin.service.WmTaskSettleNoteService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
@@ -73,7 +71,6 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.util.ResourceUtils;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -1247,6 +1244,17 @@ public class WmTaskController {
 		return wmTaskService.getTaskInfo(taskId);
 	}
 
+	/**
+	 * 查询调查信息审核数据
+	 *
+	 * @param taskId 任务id
+	 * @return
+	 */
+	@GetMapping("/survey-task-info/{taskId}")
+	public R<?> getSurveyTaskInfo(@PathVariable("taskId") String taskId) {
+		return wmTaskService.getSurveryTaskInfo(taskId);
+	}
+
 	/**
 	 * 患者教育-处方列表
 	 *

+ 20 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmTaskMapper.java

@@ -162,4 +162,24 @@ public interface WmTaskMapper extends DataScopeMapper<WmTask> {
 	 * @return
 	 */
 	IPage<WmTask> listInfoAudit(Page page, @Param("query") WmTask wmTask, @Param("startDate") LocalDateTime startDate, @Param("endDate") LocalDateTime endDate);
+
+	/**
+	 * 查询同一家医院一个月做的任务
+	 *
+	 * @param hospitalId
+	 * @return
+	 */
+	List<WmTask> listCurrentMonthHospitalTask(@Param("hospitalId") String hospitalId);
+
+	/**
+	 * 查询会议任务个数
+	 *
+	 * @param taskTypeList 任务类型列表
+	 * @param taskUserId 用户id
+	 * @param startTime 会议时间范围-开始
+	 * @param endTime 会议时间范围-结束
+	 * @return 会议任务个数
+	 */
+	Long countMeetingTask(@Param("taskTypeList") List<String> taskTypeList, @Param("taskUserId") String taskUserId,
+						  @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
 }

+ 27 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmTaskService.java

@@ -145,6 +145,14 @@ public interface WmTaskService extends IService<WmTask> {
 
 	R getTaskInfo(String taskId);
 
+	/**
+	 * 查询调查信息审核数据
+	 *
+	 * @param taskId 任务id
+	 * @return
+	 */
+	R<?> getSurveryTaskInfo(String taskId);
+
 	/**
 	 * 患者教育-处方删除
 	 *
@@ -172,4 +180,23 @@ public interface WmTaskService extends IService<WmTask> {
 	 * @return
 	 */
 	IPage<WmTask> listInfoAudit(Page page, WmTask wmTask, LocalDateTime startDate, LocalDateTime endDate);
+
+	/**
+	 * 查询同一家医院一个月做的任务
+	 *
+	 * @param hospitalId 医院id
+	 * @return
+	 */
+	List<WmTask> listCurrentMonthHospitalTask(String hospitalId);
+
+	/**
+	 * 查询会议任务个数
+	 *
+	 * @param taskTypeList 任务类型列表
+	 * @param taskUserId 用户id
+	 * @param startTime 会议时间范围-开始
+	 * @param endTime 会议时间范围-结束
+	 * @return 会议任务个数
+	 */
+	Long countMeetingTask(List<String> taskTypeList, String taskUserId, LocalDateTime startTime, LocalDateTime endTime);
 }

+ 7 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaDistributionServiceImpl.java

@@ -27,12 +27,12 @@ import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageStatus;
 import com.qunzhixinxi.hnqz.admin.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
 import com.qunzhixinxi.hnqz.admin.mapper.WmDaDistributionMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskContentMapper;
 import com.qunzhixinxi.hnqz.admin.service.SysDictItemService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaDistributionService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaHospitalService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
-import com.qunzhixinxi.hnqz.admin.service.WmTaskContentService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import lombok.AllArgsConstructor;
@@ -58,7 +58,7 @@ import java.util.stream.Collectors;
 @AllArgsConstructor
 public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMapper, WmDaDistribution> implements WmDaDistributionService {
 
-	private final WmTaskContentService wmTaskContentService;
+	private final WmTaskContentMapper wmTaskContentMapper;
 	private final WmDaDistributionMapper wmDaDistributionMapper;
 	private final WmTaskService wmTaskService;
 	private final SysDictItemService sysDictItemService;
@@ -69,7 +69,7 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 
 	@Override
 	public boolean saveOrUpdateDistributionlByTask(WmTask wmTask) {
-		WmTaskContent wmTaskContent = wmTaskContentService.getById(wmTask);
+		WmTaskContent wmTaskContent = wmTaskContentMapper.selectById(wmTask);
 		WmDaDistribution wmDaDistribution = new WmDaDistribution();
 		wmDaDistribution.setShyshxydm(wmTaskContent.getTemp6());
 		List<WmDaDistribution> list = this.list(Wrappers.query(wmDaDistribution));
@@ -121,7 +121,7 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 		if("1".equals(wmTask.getPlatAuditStatus())){
 			return R.failed("信息已审核,请重新查询后操作");
 		}
-		WmTaskContent wmTaskContent=wmTaskContentService.getById(wmTask.getTaskContentId());
+		WmTaskContent wmTaskContent=wmTaskContentMapper.selectById(wmTask.getTaskContentId());
 		if(null==wmTaskContent){
 			return R.failed("调研信息为空");
 		}
@@ -216,6 +216,7 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 		result.put("info",wmDaDistribution);//数据
 		result.put("newinfo",newinfo);//数据
 		result.put("wmTask",wmTask);
+		result.put("wmTaskContent",wmTaskContent);
 
 		return R.ok(result);
 	}
@@ -420,10 +421,10 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 				}
 			}
 			//更新任务内容表
-			WmTaskContent wmTaskContent=wmTaskContentService.getById(wmTask.getTaskContentId());
+			WmTaskContent wmTaskContent=wmTaskContentMapper.selectById(wmTask.getTaskContentId());
 			String infoId=map.get("infoId");
 			wmTaskContent.setTemp29(infoId);
-			wmTaskContentService.updateById(wmTaskContent);
+			wmTaskContentMapper.updateById(wmTaskContent);
 		}else{
 			//updateWrapper.set(WmTask::getTaskStatus,"2");//审核不通过
 //			updateWrapper.set(WmTask::getRealFlag,"1");//1不通过

+ 18 - 11
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaHospitalServiceImpl.java

@@ -18,16 +18,22 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
 
 import com.alibaba.csp.sentinel.util.StringUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qunzhixinxi.hnqz.admin.api.dto.UserDTO;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
-import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
-import com.qunzhixinxi.hnqz.admin.entity.*;
+import com.qunzhixinxi.hnqz.admin.entity.WmDaHospital;
+import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageStatus;
+import com.qunzhixinxi.hnqz.admin.entity.WmTask;
+import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
 import com.qunzhixinxi.hnqz.admin.mapper.WmDaHospitalMapper;
-import com.qunzhixinxi.hnqz.admin.service.*;
-import com.qunzhixinxi.hnqz.admin.util.HnqzUtils;
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskContentMapper;
+import com.qunzhixinxi.hnqz.admin.service.SysDictItemService;
+import com.qunzhixinxi.hnqz.admin.service.SysUserService;
+import com.qunzhixinxi.hnqz.admin.service.WmDaHospitalService;
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
+import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import lombok.AllArgsConstructor;
 import org.apache.commons.collections4.CollectionUtils;
@@ -52,7 +58,7 @@ import java.util.stream.Collectors;
 @AllArgsConstructor
 public class WmDaHospitalServiceImpl extends ServiceImpl<WmDaHospitalMapper, WmDaHospital> implements WmDaHospitalService {
 
-	private final WmTaskContentService wmTaskContentService;
+	private final WmTaskContentMapper wmTaskContentMapper;
 
 	private final WmDaHospitalMapper wmDaHospitalMapper;
 
@@ -66,7 +72,7 @@ public class WmDaHospitalServiceImpl extends ServiceImpl<WmDaHospitalMapper, WmD
 
 	@Override
 	public boolean saveOrUpdateHospitalByTask(WmTask wmTask) {
-		WmTaskContent wmTaskContent = wmTaskContentService.getById(wmTask);
+		WmTaskContent wmTaskContent = wmTaskContentMapper.selectById(wmTask);
 		WmDaHospital wmDaHospital = new WmDaHospital();
 		wmDaHospital.setYymc(wmTaskContent.getTemp3());
 		List<WmDaHospital> list = this.list(Wrappers.query(wmDaHospital));
@@ -120,7 +126,7 @@ public class WmDaHospitalServiceImpl extends ServiceImpl<WmDaHospitalMapper, WmD
 		if ("1".equals(wmTask.getPlatAuditStatus())) {
 			return R.failed("信息已审核,请重新查询后操作");
 		}
-		WmTaskContent wmTaskContent = wmTaskContentService.getById(wmTask.getTaskContentId());
+		WmTaskContent wmTaskContent = wmTaskContentMapper.selectById(wmTask.getTaskContentId());
 		if (null == wmTaskContent) {
 			return R.failed("调研信息为空");
 		}
@@ -231,6 +237,7 @@ public class WmDaHospitalServiceImpl extends ServiceImpl<WmDaHospitalMapper, WmD
 		result.put("info", wmDaHospital);//数据
 		result.put("newinfo", newinfo);//数据
 		result.put("wmTask", wmTask);
+		result.put("wmTaskContent", wmTaskContent);
 
 		return R.ok(result);
 	}
@@ -470,10 +477,10 @@ public class WmDaHospitalServiceImpl extends ServiceImpl<WmDaHospitalMapper, WmD
 
 
 			//更新任务内容表
-			WmTaskContent wmTaskContent = wmTaskContentService.getById(wmTask.getTaskContentId());
+			WmTaskContent wmTaskContent = wmTaskContentMapper.selectById(wmTask.getTaskContentId());
 			String infoId = map.get("infoId");
 			wmTaskContent.setTemp29(infoId);
-			wmTaskContentService.updateById(wmTaskContent);
+			wmTaskContentMapper.updateById(wmTaskContent);
 		} else {
 			//updateWrapper.set(WmTask::getTaskStatus,"2");//审核不通过
 //			updateWrapper.set(WmTask::getRealFlag,"1");//1bu通过

+ 20 - 12
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaPharmacyServiceImpl.java

@@ -17,12 +17,19 @@
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
 import com.alibaba.csp.sentinel.util.StringUtil;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qunzhixinxi.hnqz.admin.entity.*;
+import com.qunzhixinxi.hnqz.admin.entity.WmDaPharmacy;
+import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageStatus;
+import com.qunzhixinxi.hnqz.admin.entity.WmTask;
+import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
 import com.qunzhixinxi.hnqz.admin.mapper.WmDaPharmacyMapper;
-import com.qunzhixinxi.hnqz.admin.service.*;
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskContentMapper;
+import com.qunzhixinxi.hnqz.admin.service.WmDaPharmacyService;
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
+import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -46,8 +53,7 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 
 	private final WmDaPharmacyMapper wmDaPharmacyMapper;
 	private final WmTaskService wmTaskService;
-	private final WmTaskContentService wmTaskContentService;
-	private final WmDaHospitalService wmDaHospitalService;
+	private final WmTaskContentMapper wmTaskContentMapper;
 	private final WmScorePackageService wmScorePackageService;
 	private final WmScorePackageStatusService packageStatusService;
 
@@ -62,7 +68,7 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 		if("1".equals(wmTask.getPlatAuditStatus())){
 			return R.failed("信息已审核,请重新查询后操作");
 		}
-		WmTaskContent wmTaskContent=wmTaskContentService.getById(wmTask.getTaskContentId());
+		WmTaskContent wmTaskContent = wmTaskContentMapper.selectById(wmTask.getTaskContentId());
 		if(null==wmTaskContent){
 			return R.failed("调研信息为空");
 		}
@@ -79,10 +85,12 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 		}else {
 			wmTask.setCompareResult("1");//新增
 		}
-		Map<String,Object> result=new HashMap();
-		result.put("info",wmDaPharmacy);//数据
-		result.put("wmTask",wmTaskContent);
-		result.put("compareResult",wmTask.getCompareResult());//数据
+		Map<String,Object> result = new HashMap();
+		result.put("info", wmDaPharmacy);//数据
+		result.put("_wmTask", wmTask);
+		result.put("wmTask", wmTaskContent);
+		result.put("wmTaskContent", wmTaskContent);
+		result.put("compareResult", wmTask.getCompareResult());//数据
 		return R.ok(result);
 	}
 
@@ -119,8 +127,8 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 //			updateWrapper.set(WmTask::getRealFlag,"0");//0审核通过
 			updateTask.setRealFlag("0");
 
-			WmDaPharmacy wmDaPharmacy=new WmDaPharmacy();
-			WmTaskContent wmTaskContent=wmTaskContentService.getById(wmTask.getTaskContentId());
+			WmDaPharmacy wmDaPharmacy = new WmDaPharmacy();
+			WmTaskContent wmTaskContent = wmTaskContentMapper.selectById(wmTask.getTaskContentId());
 			//更新审核信息
 			if("1".equals(compareResult)){//新增
 				//新增

+ 47 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmReportServiceImpl.java

@@ -16,6 +16,8 @@
  */
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.map.MapUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -33,8 +35,10 @@ import com.qunzhixinxi.hnqz.admin.enums.ReportEnum;
 import com.qunzhixinxi.hnqz.admin.enums.ScorePackageStatusEnum;
 import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.WmReportMapper;
-import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
+import com.qunzhixinxi.hnqz.admin.service.WmDaDistributionService;
+import com.qunzhixinxi.hnqz.admin.service.WmDaHospitalService;
+import com.qunzhixinxi.hnqz.admin.service.WmDaPharmacyService;
 import com.qunzhixinxi.hnqz.admin.service.WmReportService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
@@ -67,8 +71,10 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 	private final WmScorePackageStatusService wmScorePackageStatusService;
 	private final WmTaskService wmTaskService;
 	private final WmReportMapper wmReportMapper;
-	private final SysDeptService sysDeptService;
 	private final SysUserService sysUserService;
+	private final WmDaDistributionService wmDaDistributionService;
+	private final WmDaPharmacyService wmDaPharmacyService;
+	private final WmDaHospitalService wmDaHospitalService;
 
 	@Override
 	public IPage<WmReport> getReportListPage(Page page, WmReport wmReport, String scoreId, String name){
@@ -169,8 +175,45 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 	@Transactional(rollbackFor = Exception.class)
 	public R approvalReport(WmReport wmReport, List<String> taskIds, String approvalOpinion, String approvalInfo) {
 		List<WmTask> taskList=new ArrayList<>();//该报告关联的所有未提交的任务
-		//更新任务表审批意见,查询所有未审核的任务,判断报告关联任务是否全部审核
+
 		WmScorePackage scorePackage = wmScorePackageService.getById(wmReport.getScoreId());
+		// 如果是源头积分包,则判断是否审核入库调查信息
+		if (StringUtils.isBlank(scorePackage.getRelationScoreId())) {
+			List<WmTask> tasks = wmTaskService.list(Wrappers.<WmTask>lambdaQuery().in(WmTask::getId, taskIds));
+			// 调查信息审核(15、30-医院 16-商业公司 18-药店)
+			tasks.forEach(task -> {
+				if ("15".equals(task.getTaskTypeId()) || "30".equals(task.getTaskTypeId())) {
+					Map<String, Object> data = (Map<String, Object>) wmDaHospitalService.approvalHospital(task.getId()).getData();
+					WmTask _wmTask = (WmTask) data.get("wmTask");
+					Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
+					paramMap.put("approvalInfo", approvalInfo);
+					paramMap.put("approvalOpinion", approvalOpinion);
+					paramMap.put("compareResult", _wmTask.getCompareResult());
+					paramMap.put("taskId", task.getId());
+					wmDaHospitalService.updateByApproval(paramMap);
+				} else if ("16".equals(task.getTaskTypeId())) {
+					Map<String, Object> data = (Map<String, Object>) wmDaDistributionService.approvalDistribution(task.getId()).getData();
+					WmTask _wmTask = (WmTask) data.get("wmTask");
+					Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
+					paramMap.put("approvalInfo", approvalInfo);
+					paramMap.put("approvalOpinion", approvalOpinion);
+					paramMap.put("compareResult", _wmTask.getCompareResult());
+					paramMap.put("taskId", task.getId());
+					wmDaDistributionService.updateByApproval(paramMap);
+				} else if ("18".equals(task.getTaskTypeId())) {
+					Map<String, Object> data = (Map<String, Object>) wmDaPharmacyService.approvalPharmacy(task.getId()).getData();
+					WmTask _wmTask = (WmTask) data.get("_wmTask");
+					Map<String, String> paramMap = MapUtil.newHashMap(4);
+					paramMap.put("approvalInfo", approvalInfo);
+					paramMap.put("approvalOpinion", approvalOpinion);
+					paramMap.put("compareResult", _wmTask.getCompareResult());
+					paramMap.put("taskId", task.getId());
+					wmDaPharmacyService.updateByapproval(paramMap);
+				}
+			});
+		}
+
+		//更新任务表审批意见,查询所有未审核的任务,判断报告关联任务是否全部审核
 		LambdaUpdateWrapper<WmTask> updateTaskWrapper=new LambdaUpdateWrapper<>();
 		WmTask wmTask=new WmTask();
 		if(SecurityUtils.getRoles().contains(3)){//药企
@@ -212,6 +255,7 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 			// 审核不通过,则设置TaskStatus为不通过
 			updateTaskWrapper.set(WmTask::getTaskStatus, TaskStatusEnum.FAIL_APPROVED.val());
 		}
+		updateTaskWrapper.set(WmTask::getRealFlag, "0");
 		wmTaskService.update(updateTaskWrapper);
 		taskList = wmTaskService.list(Wrappers.query(wmTask));
 		//更新报告状态

+ 83 - 48
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskContentServiceImpl.java

@@ -16,9 +16,9 @@
  */
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -30,10 +30,10 @@ import com.qunzhixinxi.hnqz.admin.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.entity.WmUserSign;
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.WmDaHospitalMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmTaskContentMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmUserSignMapper;
-import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysPublicParamService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
@@ -55,6 +55,7 @@ import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -73,7 +74,6 @@ import java.util.stream.Collectors;
 public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, WmTaskContent> implements WmTaskContentService {
 	private final WmTaskService wmTaskService;
 	private final SysUserService sysUserService;
-	private final SysDeptService sysDeptService;
 	private final WmTaskTypeService wmTaskTypeService;
 	private final WmScorePackageService wmScorePackageService;
 	private final WmScorePackageStatusService wmScorePackageStatusService;
@@ -81,9 +81,9 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 	private final WmDaHospitalMapper wmDaHospitalMapper;
 	private final SysPublicParamService sysPublicParamService;
 
-
+	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public R saveTaskContent(WmTaskContent wmTaskContent) {
+	public R<?> saveTaskContent(WmTaskContent wmTaskContent) {
 		if (StringUtils.isEmpty(wmTaskContent.getTemp30())) {
 			return R.failed("任务类型不能为空");
 		}
@@ -130,14 +130,14 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 		if ("1".equals(wmTaskContent.getTemp30())) {
 			// 会议举办
 			// 限制每天两次
-			LambdaQueryWrapper<WmTask> wrappers = Wrappers.lambdaQuery();
-			wrappers.eq(WmTask::getTaskUserId, sysU.getUserId() + "");
-			wrappers.in(WmTask::getTaskTypeId, 1, 2, 3, 4);
-			wrappers.le(WmTask::getLookintoDate, LocalDateTime.of(LocalDate.now(), LocalTime.MAX));
-			wrappers.ge(WmTask::getLookintoDate, LocalDateTime.of(LocalDate.now(), LocalTime.MIN));
-
-			int total = wmTaskService.count(wrappers);
-			if (total >= 2) {
+			LocalDate currentLookintoDate =
+					LocalDate.parse(wmTaskContent.getTemp4(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
+			LocalDateTime start = LocalDateTime.of(currentLookintoDate,LocalTime.MIN);
+			LocalDateTime end = LocalDateTime.of(currentLookintoDate,LocalTime.MAX);
+			long meetingTaskCount = wmTaskService.countMeetingTask(CollectionUtil.toList("1", "2", "3", "4"),
+							String.valueOf(sysU.getUserId()), start, end);
+			log.info("会议举办次数:{}", meetingTaskCount);
+			if (meetingTaskCount >= 2L) {
 				return R.failed(1, "每天最多举办两场会议");
 			}
 
@@ -156,14 +156,14 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 		} else if ("19".equals(wmTaskContent.getTemp30())) {
 			// 一对一专访
 			// 限制每天两次
-			LambdaQueryWrapper<WmTask> interviewQuery = Wrappers.lambdaQuery();
-			interviewQuery.eq(WmTask::getTaskUserId, sysU.getUserId() + "");
-			interviewQuery.eq(WmTask::getTaskTypeId, 19);
-			interviewQuery.le(WmTask::getLookintoDate, LocalDateTime.of(LocalDate.now(), LocalTime.MAX));
-			interviewQuery.ge(WmTask::getLookintoDate, LocalDateTime.of(LocalDate.now(), LocalTime.MIN));
-
-			int interviewTotal = wmTaskService.count(interviewQuery);
-			if (interviewTotal >= 2) {
+			LocalDate currentLookintoDate =
+					LocalDate.parse(wmTaskContent.getTemp4(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
+			LocalDateTime start = LocalDateTime.of(currentLookintoDate,LocalTime.MIN);
+			LocalDateTime end = LocalDateTime.of(currentLookintoDate,LocalTime.MAX);
+			long meetingTaskCount = wmTaskService.countMeetingTask(CollectionUtil.toList("19"),
+					String.valueOf(sysU.getUserId()), start, end);
+			log.info("一对一专访次数:{}", meetingTaskCount);
+			if (meetingTaskCount >= 2L) {
 				return R.failed(1, "每天最多举办两场一对一专访");
 			}
 
@@ -246,6 +246,40 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 			}
 		}
 
+		// 医院信息收集、医院信息修改两类任务做的任务总积分不得大于积分包值的60%(积分包值小于5000不做限制)
+		if ("15".equals(wmTaskContent.getTemp30()) || "30".equals(wmTaskContent.getTemp30())) {
+			if (tWmScorePackage.getScore() > 5000) {
+				List<WmTask> wmTaskList = wmTaskService.list(Wrappers.<WmTask>lambdaQuery()
+						.eq(WmTask::getRealFlag, "0")
+						.eq(WmTask::getDelFlag, DelEnum.NOT_DEL.val())
+						.in(WmTask::getScorePackageId, tWmScorePackage.getId())
+						.in(WmTask::getTaskTypeId, "15", "30")
+						.ne(WmTask::getTaskStatus, "4"));
+				if (CollectionUtil.isNotEmpty(wmTaskList)) {
+					int totalScore = tWmScorePackage.getScore();
+					int partScore = wmTaskList.stream().mapToInt(WmTask::getScore).sum();
+					if (partScore * 1.0 / totalScore > 0.6) {
+						return R.failed("医院信息收集、医院信息修改两类任务总积分不得大于积分包值的60%");
+					}
+				}
+			}
+		}
+
+		// 校验医院信息修改的任务(同一家医院,同一个人一个月只能修改一次,该医院一个月最多可修改3次)
+		if ("30".equals(wmTaskContent.getTemp30())) {
+			List<WmTask> taskList = wmTaskService.listCurrentMonthHospitalTask(wmTaskContent.getTemp29());
+			if (CollectionUtil.isNotEmpty(taskList)) {
+				boolean anyMatch = taskList.stream()
+						.anyMatch(wmTask -> String.valueOf(sysU.getUserId()).equals(wmTask.getTaskUserId()));
+				if (anyMatch) {
+					return R.failed("该医院同一个人一个月只能修改一次");
+				}
+				if (taskList.size() > 3) {
+					return R.failed("该医院一个月最多只能修改3次");
+				}
+			}
+		}
+
 		// 校验首次库存调查
 		if ("31".equals(wmTaskContent.getTemp30())) {
 			// 获取调查类别:0:首次
@@ -354,23 +388,6 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 				 * 2021-06-11 库存调查分成,首次调查和常规调查,常规调查走之前的逻辑 end
 				 */
 
-				/**
-				 * 2020-12-21
-				 * 15、30-医院 16-商业  18-药店
-				 * 三类修改为平台管理员审核后才能在任务中心查出来
-				 * realFlag  0-真实  1-非真实  9-审核中
-				 */
-				Boolean realFlag = false;
-				if ("15".equals(wmTaskContent.getTemp30())
-						|| "16".equals(wmTaskContent.getTemp30())
-						|| "30".equals(wmTaskContent.getTemp30())
-						|| "18".equals(wmTaskContent.getTemp30())) {
-					realFlag = true;
-				}
-				/**
-				 * 2020-12-21 end
-				 */
-
 				System.out.println("获取任务得分:" + score);
 				if (score < 0) {
 					return R.failed("获取任务积分失败");
@@ -402,21 +419,39 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 				 * 不需要平台管理员审核的直接提交上级审核  taskStatus = 2 已提交
 				 * 否则 taskStatus = 1 待提交
 				 */
-				if (realFlag) {
-					wmTask.setRealFlag("9");
-					wmTask.setTaskStatus("1");//任务状态
-				} else {
-					wmTask.setRealFlag("0");
-					wmTask.setTaskStatus("2");
-				}
+				wmTask.setRealFlag("0");
+				wmTask.setTaskStatus("2");
 
 				//保存任务
 				boolean isSave = wmTaskService.save(wmTask);
-				if (realFlag) {
+				/**
+				 * 2020-12-21
+				 * 15、30-医院 16-商业  18-药店
+				 * 三类修改为平台管理员审核后才能在任务中心查出来
+				 * realFlag  0-真实  1-非真实  9-审核中
+				 *
+				 * 2021-9-2 by lixuesong
+				 * 去掉平台管理员审核,调整到个人任务审核
+				 */
+				if ("15".equals(wmTaskContent.getTemp30())
+						|| "16".equals(wmTaskContent.getTemp30())
+						|| "30".equals(wmTaskContent.getTemp30())
+						|| "18".equals(wmTaskContent.getTemp30())) {
+					// 校验调查信息审核,对比信息无改动则不可保存(15、30-医院 16-商业  18-药店)
+					R taskResult = wmTaskService.getSurveryTaskInfo(wmTask.getId());
+					Map<String, Object> data = (Map<String, Object>) taskResult.getData();
+					WmTask task = (WmTask) data.get("wmTask");
+					if ("3".equals(task.getCompareResult())) {
+						// 3-信息无变化,删除这条任务
+						wmTaskService.removeById(wmTask.getId());
+						this.removeById(wmTask.getTaskContentId());
+						return R.failed("信息无变化,不可提交");
+					}
 					resultMap.put("type", "3");
-					resultMap.put("score", score + "");
-					return R.ok(resultMap);
 				}
+				/**
+				 * 2020-12-21 end
+				 */
 
 				//判断任务是否完成
 				if (isSave) {

+ 172 - 10
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskServiceImpl.java

@@ -16,8 +16,10 @@
  */
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.lang.Assert;
+import cn.hutool.core.map.MapUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -33,26 +35,56 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
-import com.qunzhixinxi.hnqz.admin.entity.*;
+import com.qunzhixinxi.hnqz.admin.entity.MonitoringIndicator;
+import com.qunzhixinxi.hnqz.admin.entity.SysDeptSub;
+import com.qunzhixinxi.hnqz.admin.entity.WmReport;
+import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageSettleNote;
+import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageStatus;
+import com.qunzhixinxi.hnqz.admin.entity.WmScoreTaskType;
+import com.qunzhixinxi.hnqz.admin.entity.WmTask;
+import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
 import com.qunzhixinxi.hnqz.admin.entity.dto.CommonEvidenceDTO;
 import com.qunzhixinxi.hnqz.admin.entity.input.SettleAmountMonitorInput;
 import com.qunzhixinxi.hnqz.admin.entity.output.SettleAmountMonitorOutput;
-import com.qunzhixinxi.hnqz.admin.enums.*;
+import com.qunzhixinxi.hnqz.admin.enums.ChannelEnum;
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
+import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
+import com.qunzhixinxi.hnqz.admin.enums.LockEnum;
+import com.qunzhixinxi.hnqz.admin.enums.PackageFinishStatusEnum;
+import com.qunzhixinxi.hnqz.admin.enums.PackageStatusEnum;
+import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
+import com.qunzhixinxi.hnqz.admin.enums.ScorePackageStatusEnum;
+import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
+import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.WmReportMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmTaskContentMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
-import com.qunzhixinxi.hnqz.admin.service.*;
+import com.qunzhixinxi.hnqz.admin.service.MonitoringIndicatorService;
+import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
+import com.qunzhixinxi.hnqz.admin.service.SysDeptSubService;
+import com.qunzhixinxi.hnqz.admin.service.SysPublicParamService;
+import com.qunzhixinxi.hnqz.admin.service.SysUserService;
+import com.qunzhixinxi.hnqz.admin.service.WmDaDistributionService;
+import com.qunzhixinxi.hnqz.admin.service.WmDaHospitalService;
+import com.qunzhixinxi.hnqz.admin.service.WmDaPharmacyService;
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageSettleNoteService;
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
+import com.qunzhixinxi.hnqz.admin.service.WmScoreTaskTypeService;
+import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
 import com.qunzhixinxi.hnqz.admin.util.RegUtils;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.data.datascope.DataScope;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import com.qunzhixinxi.hnqz.common.taxhelper.enums.InvoiceInfo;
-import lombok.AllArgsConstructor;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -64,10 +96,15 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 /**
@@ -77,7 +114,7 @@ import java.util.stream.Collectors;
  * @date 2020-06-25 23:35:25
  */
 @Service
-@AllArgsConstructor
+@RequiredArgsConstructor
 @Slf4j
 public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> implements WmTaskService {
 
@@ -94,6 +131,24 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 	private final WmScoreTaskTypeService wmScoreTaskTypeService;
 	private final SysUserService userService;
 	private final WmScorePackageSettleNoteService wmScorePackageSettleNoteService;
+	private WmDaHospitalService wmDaHospitalService;
+	private WmDaPharmacyService wmDaPharmacyService;
+	private WmDaDistributionService wmDaDistributionService;
+
+	@Autowired
+	public void setWmDaHospitalService(WmDaHospitalService wmDaHospitalService) {
+		this.wmDaHospitalService = wmDaHospitalService;
+	}
+
+	@Autowired
+	public void setWmDaPharmacyService(WmDaPharmacyService wmDaPharmacyService) {
+		this.wmDaPharmacyService = wmDaPharmacyService;
+	}
+
+	@Autowired
+	public void setWmDaDistributionService(WmDaDistributionService wmDaDistributionService) {
+		this.wmDaDistributionService = wmDaDistributionService;
+	}
 
 	@Override
 	public List<WmTask> listTask(QueryWrapper wrappers) {
@@ -1404,6 +1459,45 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 		updateWrapper.in(WmTask::getId, ids);
 		List<WmTask> wmTaskList = list(updateWrapper);
 
+		String scorePackageId = wmTaskList.get(0).getScorePackageId();
+		WmScorePackage wmScorePackage = wmScorePackageService.getById(scorePackageId);
+
+		// 如果是源头积分包,则判断是否审核入库调查信息
+		if (StringUtils.isBlank(wmScorePackage.getRelationScoreId())) {
+			// 调查信息审核(15、30-医院 16-商业公司 18-药店)
+			wmTaskList.forEach(task -> {
+				String approvalOpinion = wmTask.getTaskStatus().equals(TaskStatusEnum.APPROVED.val()) ? "1" : "2";
+				if ("15".equals(task.getTaskTypeId()) || "30".equals(task.getTaskTypeId())) {
+					Map<String, Object> data = (Map<String, Object>) wmDaHospitalService.approvalHospital(task.getId()).getData();
+					WmTask _wmTask = (WmTask) data.get("wmTask");
+					Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
+					paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
+					paramMap.put("approvalOpinion", approvalOpinion);
+					paramMap.put("compareResult", _wmTask.getCompareResult());
+					paramMap.put("taskId", task.getId());
+					wmDaHospitalService.updateByApproval(paramMap);
+				} else if ("16".equals(task.getTaskTypeId())) {
+					Map<String, Object> data = (Map<String, Object>) wmDaDistributionService.approvalDistribution(task.getId()).getData();
+					WmTask _wmTask = (WmTask) data.get("wmTask");
+					Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
+					paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
+					paramMap.put("approvalOpinion", approvalOpinion);
+					paramMap.put("compareResult", _wmTask.getCompareResult());
+					paramMap.put("taskId", task.getId());
+					wmDaDistributionService.updateByApproval(paramMap);
+				} else if ("18".equals(task.getTaskTypeId())) {
+					Map<String, Object> data = (Map<String, Object>) wmDaPharmacyService.approvalPharmacy(task.getId()).getData();
+					WmTask _wmTask = (WmTask) data.get("wmTask");
+					Map<String, String> paramMap = MapUtil.newHashMap(4);
+					paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
+					paramMap.put("approvalOpinion", approvalOpinion);
+					paramMap.put("compareResult", _wmTask.getCompareResult());
+					paramMap.put("taskId", task.getId());
+					wmDaPharmacyService.updateByapproval(paramMap);
+				}
+			});
+		}
+
 		switch (wmTask.getTaskStatus()){
 			case "3": // 审核通过
 
@@ -1434,6 +1528,7 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 									flag = true;
 								}
 								t.setTaskStatus("3");
+								t.setRealFlag("0");
 								t.setUpdateTime(LocalDateTime.now());
 							}
 							bathList.addAll(taskList);
@@ -1445,12 +1540,11 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 				break;
 			case "4": // 审核不通过
 				updateWrapper.set(WmTask::getTaskStatus, wmTask.getTaskStatus());
+				updateWrapper.set(WmTask::getRealFlag, "0");
 				this.update(updateWrapper);
 				break;
 		}
 
-		String scorePackageId = wmTaskList.get(0).getScorePackageId();
-		WmScorePackage wmScorePackage = wmScorePackageService.getById(scorePackageId);
 		wmTaskList.forEach(task -> {
 			WmScorePackageStatus scorePackageStatus = new WmScorePackageStatus();
 			scorePackageStatus.setPackageId(wmScorePackage.getId());
@@ -1653,6 +1747,49 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 		return R.ok(task);
 	}
 
+	/**
+	 * 查询调查信息审核数据
+	 *
+	 * @param taskId 任务id
+	 * @return
+	 */
+	@Override
+	public R<?> getSurveryTaskInfo(String taskId) {
+		WmTask task = this.getById(taskId);
+		R<?> result = null;
+		// 15、30-医院 16-商业公司 18-药店
+		if ("15".equals(task.getTaskTypeId()) || "30".equals(task.getTaskTypeId())) {
+			result = wmDaHospitalService.approvalHospital(taskId);
+			if (result.getCode() == 0) {
+				Map<String, Object> data = (Map<String, Object>) result.getData();
+				data.remove("info");
+				data.remove("newinfo");
+			}
+		} else if ("16".equals(task.getTaskTypeId())) {
+			result = wmDaDistributionService.approvalDistribution(taskId);
+			if (result.getCode() == 0) {
+				Map<String, Object> data = (Map<String, Object>) result.getData();
+				data.remove("info");
+				data.remove("newinfo");
+			}
+		} else if ("18".equals(task.getTaskTypeId())) {
+			result = wmDaPharmacyService.approvalPharmacy(taskId);
+			if (result.getCode() == 0) {
+				Map<String, Object> data = (Map<String, Object>) result.getData();
+				data.put("wmTask", data.get("_wmTask"));
+				data.put("compareList", new ArrayList<>());
+				data.remove("_wmTask");
+				data.remove("info");
+				data.remove("newinfo");
+				data.remove("compareResult");
+			}
+		} else {
+			result = R.failed("未查询到任务信息");
+		}
+
+		return result;
+	}
+
 	/**
 	 * 患者教育-处方列表
 	 *
@@ -2169,4 +2306,29 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
 	public IPage<WmTask> listInfoAudit(Page page, WmTask wmTask, LocalDateTime startDate, LocalDateTime endDate) {
 		return wmTaskMapper.listInfoAudit(page, wmTask, startDate, endDate);
 	}
+
+	/**
+	 * 查询同一家医院一个月做的任务次数
+	 *
+	 * @param hospitalId 医院id
+	 * @return
+	 */
+	@Override
+	public List<WmTask> listCurrentMonthHospitalTask(String hospitalId) {
+		return wmTaskMapper.listCurrentMonthHospitalTask(hospitalId);
+	}
+
+	/**
+	 * 查询会议任务个数
+	 *
+	 * @param taskTypeList 任务类型列表
+	 * @param taskUserId 用户id
+	 * @param startTime 会议时间范围-开始
+	 * @param endTime 会议时间范围-结束
+	 * @return 会议任务个数
+	 */
+	@Override
+	public Long countMeetingTask(List<String> taskTypeList, String taskUserId, LocalDateTime startTime, LocalDateTime endTime) {
+		return wmTaskMapper.countMeetingTask(taskTypeList, taskUserId, startTime, endTime);
+	}
 }

+ 25 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmTaskMapper.xml

@@ -1213,4 +1213,29 @@ FROM
 		LEFT JOIN sys_user u ON u.user_id = temp.task_user_id
 		ORDER BY temp.create_time DESC
 	</select>
+
+	<!-- 查询同一家医院一个月做的任务 -->
+	<select id="listCurrentMonthHospitalTask" resultMap="wmTaskMap">
+		SELECT t.*
+		FROM wm_task t
+				 LEFT JOIN wm_task_content tc ON tc.id = t.task_content_id
+		WHERE t.task_status in (1, 2, 3)
+		  AND t.enable_flag = 0
+		  AND t.del_flag = 0
+		  AND MONTH(t.create_time) = MONTH(CURDATE())
+		  AND tc.temp29 = #{hospitalId}
+	</select>
+
+	<!-- 查询会议任务个数 -->
+	<select id="countMeetingTask" resultType="java.lang.Long">
+		SELECT COUNT(*)
+		FROM wm_task
+				 LEFT JOIN wm_task_content ON wm_task.task_content_id = wm_task_content.id
+		WHERE wm_task.task_type_id IN
+		<foreach collection="taskTypeList" item="item" index="index" separator="," open="(" close=")">
+			#{item}
+		</foreach>
+		AND wm_task.task_user_id = #{taskUserId}
+	  	AND wm_task_content.temp4 BETWEEN #{startTime} AND #{endTime}
+	</select>
 </mapper>