Prechádzať zdrojové kódy

Merge branch 'feat-20231127-pharmacies'

lixuesong 1 rok pred
rodič
commit
6763d460cd
17 zmenil súbory, kde vykonal 194 pridanie a 47 odobranie
  1. 2 0
      db/v2.0/20231127.sql
  2. 35 0
      hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/constant/UpmsType.java
  3. 32 1
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java
  4. 3 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaAgentController.java
  5. 2 1
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaDrugEntDrugtableController.java
  6. 30 26
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaPharmacyController.java
  7. 18 10
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskTypeController.java
  8. 2 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskTypeEntRefController.java
  9. 7 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmDaPharmacy.java
  10. 6 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/model/excel/BatchPharmacyExcelModel.java
  11. 1 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaAgentServiceImpl.java
  12. 9 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaPharmacyServiceImpl.java
  13. 6 2
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmReportServiceImpl.java
  14. 1 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskTypeSubCate2ServiceImpl.java
  15. 38 6
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmUserSignServiceImpl.java
  16. BIN
      hnqz-upms/hnqz-upms-biz/src/main/resources/excel/batch_create_pharmacy_template.xlsx
  17. 2 1
      hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmTaskMapper.xml

+ 2 - 0
db/v2.0/20231127.sql

@@ -0,0 +1,2 @@
+alter table wm_da_pharmacy
+    add pharmacy_type char(10) default 'ORDINARY' null comment '药店类型';

+ 35 - 0
hnqz-upms/hnqz-upms-api/src/main/java/com/qunzhixinxi/hnqz/admin/api/constant/UpmsType.java

@@ -1,5 +1,6 @@
 package com.qunzhixinxi.hnqz.admin.api.constant;
 
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.annotation.EnumValue;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
@@ -199,4 +200,38 @@ public final class UpmsType {
 		private final String key;
 		private final String description;
 	}
+
+	/**
+	 * 药店类型
+	 *
+	 * @author lixuesong
+	 * @date 2023/11/27
+	 */
+	@Getter
+	@AllArgsConstructor
+	public enum PharmacyType {
+		ORDINARY("ORDINARY", "普通药店"),
+		CHAIN("CHAIN", "连锁药房");
+
+		/**
+		 * 药店类型
+		 */
+		@EnumValue
+		private final String type;
+
+		/**
+		 * 描述
+		 */
+		private final String description;
+
+		public static PharmacyType getByDescription(String description) {
+			for (PharmacyType type : PharmacyType.values()) {
+				if (StrUtil.equals(type.getDescription(), description)) {
+					return type;
+				}
+			}
+
+			return null;
+		}
+	}
 }

+ 32 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -133,6 +133,7 @@ import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
 import com.qunzhixinxi.hnqz.common.core.constant.enums.CommonFlag;
 import com.qunzhixinxi.hnqz.common.core.constant.enums.LoginTypeEnum;
 import com.qunzhixinxi.hnqz.common.core.constant.enums.UpmsState;
+import com.qunzhixinxi.hnqz.common.core.exception.BizException;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import com.qunzhixinxi.hnqz.common.security.annotation.Inner;
@@ -2457,6 +2458,10 @@ public class ApiController {
 
 			}
 
+			if ("33".equals(wmTask.getTaskTypeId()) || "73".equals(wmTask.getTaskTypeId())) {
+				map.put("taskType", "33");
+			}
+
 			if (null != wmTaskType) {
 				wmTask.setTaskTypeId(wmTaskType.getTaskTypeName());
 			}
@@ -2483,7 +2488,7 @@ public class ApiController {
 						List<WmUserSign> wmUserSignList = new ArrayList<>();
 						WmUserSign userSign = wmUserSignService.getById(wmTaskContent.getTemp3());
 						// 如果配置了医院拜访的任务类型模板,则关联查询签到详情
-						if (wmDeptTaskTypeTemplateService.checkDeptIdHospitalTemplate(Integer.valueOf(wmTask.getDeptId()), wmTask.getTaskTypeId())) {
+//						if (wmDeptTaskTypeTemplateService.checkDeptIdHospitalTemplate(Integer.valueOf(wmTask.getDeptId()), wmTask.getTaskTypeId())) {
 							WmUserSignDetail userSignDetail = wmUserSignDetailService.getOne(Wrappers.<WmUserSignDetail>lambdaQuery()
 									.eq(WmUserSignDetail::getSignId, userSign.getId()));
 							if (userSignDetail != null) {
@@ -2537,7 +2542,33 @@ public class ApiController {
 
 								userSign.setUserSignDetail(userSignDetail);
 							}
+//						}
+
+						// 查询适配, 普通药店和连锁药房统一返回33
+						if ("3".equals(userSign.getSignEntType())) {
+							// 根据药店类型 区分任务类型33-普通药店/73-连锁药房
+							WmDaPharmacy daPharmacy = wmDaPharmacyService.getOne(Wrappers.<WmDaPharmacy>lambdaQuery()
+									.eq(WmDaPharmacy::getPharmacyName, userSign.getSignEntName())
+									.eq(WmDaPharmacy::getDelFlag, DelEnum.NOT_DEL.val())
+									.eq(WmDaPharmacy::getEnableFlag, EnableEnum.ENABLE.val()));
+							if (daPharmacy == null) {
+								throw new BizException("药店不存在或已停用");
+							}
+
+							String taskTypeId;
+							switch (daPharmacy.getPharmacyType()) {
+								case ORDINARY:
+									taskTypeId = "33";
+									break;
+								case CHAIN:
+									taskTypeId = "73";
+									break;
+								default:
+									taskTypeId = "33";
+							}
+							wmTask.setTaskTypeId(taskTypeId);
 						}
+
 						wmUserSignList.add(userSign);
 						return R.ok(wmUserSignList);
 					}

+ 3 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaAgentController.java

@@ -34,6 +34,7 @@ import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDateTime;
@@ -188,6 +189,7 @@ public class WmDaAgentController {
 	 */
 	@SysLog("CSO管理-新增")
 	@PostMapping
+	@Transactional(rollbackFor = Exception.class)
 	public R save(@RequestBody WmDaAgent wmDaAgent) {
 		WmDaAgent query = new WmDaAgent();
 		query.setGsmc(wmDaAgent.getGsmc());
@@ -417,6 +419,7 @@ public class WmDaAgentController {
 	 */
 	@SysLog("CSO管理-修改")
 	@PutMapping
+	@Transactional(rollbackFor = Exception.class)
 	public R updateById(@RequestBody WmDaAgent wmDaAgent) {
 		SysDept sysDept1 = new SysDept();
 		sysDept1.setDeptId(Integer.parseInt(wmDaAgent.getDeptId()));

+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaDrugEntDrugtableController.java

@@ -42,6 +42,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDateTime;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -244,7 +245,7 @@ public class WmDaDrugEntDrugtableController {
 			return R.ok(drugEntDrugtables.stream().map(WmDaDrugEntDrugtable::getDrugname).collect(Collectors.toList()));
 		}
 
-		return R.ok();
+		return R.ok(Collections.emptyList());
 	}
 
 	/**

+ 30 - 26
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaPharmacyController.java

@@ -1,7 +1,10 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -15,6 +18,7 @@ import com.qunzhixinxi.hnqz.admin.service.WmTaskContentService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
+import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
@@ -31,6 +35,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -59,18 +64,19 @@ public class WmDaPharmacyController {
 	 *
 	 * @param page         分页对象
 	 * @param wmDaPharmacy 档案-药店
-	 * @return
+	 * @return 分页数据
 	 */
 	@GetMapping("/page")
 	@PreAuthorize("@pms.hasPermission('admin_wmdapharmacy_view')")
-	public R getWmDaPharmacyPage(Page page, WmDaPharmacy wmDaPharmacy) {
+	public R<IPage<WmDaPharmacy>> getWmDaPharmacyPage(Page<WmDaPharmacy> page, WmDaPharmacy wmDaPharmacy) {
 
-		OrderItem orderItem = new OrderItem();
-		orderItem.setColumn("create_time");
-		orderItem.setAsc(false);
-		page.addOrder(orderItem);
+		LambdaQueryWrapper<WmDaPharmacy> queryWrapper = Wrappers.lambdaQuery();
+		if (StrUtil.isNotBlank(wmDaPharmacy.getPharmacyName())) {
+			queryWrapper.like(WmDaPharmacy::getPharmacyName, wmDaPharmacy.getPharmacyName());
+		}
+		queryWrapper.orderByDesc(WmDaPharmacy::getId);
 
-		return R.ok(wmDaPharmacyService.page(page, Wrappers.query(wmDaPharmacy)));
+		return R.ok(wmDaPharmacyService.page(page, queryWrapper));
 	}
 
 
@@ -124,6 +130,16 @@ public class WmDaPharmacyController {
 	@PostMapping
 	@PreAuthorize("@pms.hasPermission('admin_wmdapharmacy_add')")
 	public R save(@RequestBody WmDaPharmacy wmDaPharmacy) {
+		int count = wmDaPharmacyService.count(Wrappers.<WmDaPharmacy>lambdaQuery()
+				.eq(WmDaPharmacy::getPharmacyName, wmDaPharmacy.getPharmacyName()));
+
+		if (count > 0) {
+			return R.failed("药店名称已存在");
+		}
+
+		wmDaPharmacy.setCreateTime(LocalDateTime.now());
+		wmDaPharmacy.setCreateUser(SecurityUtils.getUser().getId());
+
 		return R.ok(wmDaPharmacyService.save(wmDaPharmacy));
 	}
 
@@ -138,32 +154,20 @@ public class WmDaPharmacyController {
 	@PreAuthorize("@pms.hasPermission('admin_wmdapharmacy_edit')")
 	public R updateById(@RequestBody WmDaPharmacy wmDaPharmacy) {
 
+		int count = wmDaPharmacyService.count(Wrappers.<WmDaPharmacy>lambdaQuery()
+				.eq(WmDaPharmacy::getPharmacyName, wmDaPharmacy.getPharmacyName())
+				.ne(WmDaPharmacy::getId, wmDaPharmacy.getId()));
 
-		WmDaPharmacy query = new WmDaPharmacy();
-		query.setPharmacyName(wmDaPharmacy.getPharmacyName());
-		List<WmDaPharmacy> list = wmDaPharmacyService.list(Wrappers.query(query));
-
-		if (list.size() > 0) {
+		if (count > 0) {
 			return R.failed("药店名称已存在");
 		}
 
-
-		Integer hid = wmDaPharmacy.getUpdateUser();
-		wmDaPharmacy.setUpdateUser(0);
 		wmDaPharmacy.setDelFlag("0");
 		wmDaPharmacy.setEnableFlag("0");
-		wmDaPharmacyService.updateById(wmDaPharmacy);
-		if (null != hid && 0 != hid) {
-			WmTask wmTask = wmTaskService.getById(hid);
-			if (null != wmTask) {
-				WmTaskContent wmTaskContent = wmTaskContentService.getById(wmTask.getTaskContentId());
-				wmTask.setPlatAuditStatus("1");
-				wmTaskService.updateById(wmTask);
-			}
-		}
+		wmDaPharmacy.setUpdateUser(SecurityUtils.getUser().getId());
+		wmDaPharmacy.setUpdateTime(LocalDateTime.now());
 
-
-		return R.ok();
+		return R.ok(wmDaPharmacyService.updateById(wmDaPharmacy));
 	}
 
 	/**

+ 18 - 10
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskTypeController.java

@@ -21,6 +21,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaAgent;
@@ -126,19 +127,26 @@ public class WmTaskTypeController {
 	 *
 	 * @param page       分页对象
 	 * @param wmTaskType 任务类型打分表
-	 * @return
+	 * @return 分页数据
 	 */
 	@GetMapping("/page")
-	public R getWmTaskTypePage(Page page, WmTaskType wmTaskType) {
-		LambdaQueryWrapper<WmTaskType> queryWrapper ;
+	public R<IPage<WmTaskTypeVO>> getWmTaskTypePage(Page<WmTaskType> page, WmTaskType wmTaskType) {
+		List<String> noDisplayTaskTypeNameList = Arrays.asList("专家咨询", "受试者管理", "医学撰写", "受试者招募", "数据管理",
+				"统计分析", "临床监察", "通用", "患者教育");
+		LambdaQueryWrapper<WmTaskType> queryWrapper = Wrappers.<WmTaskType>lambdaQuery()
+				.notIn(WmTaskType::getTaskTypeName, noDisplayTaskTypeNameList);
+
+		if (StrUtil.isNotBlank(wmTaskType.getTaskTypeLevel())) {
+			queryWrapper.eq(WmTaskType::getTaskTypeLevel, wmTaskType.getTaskTypeLevel());
+		}
 		if (wmTaskType.getRuleId() != null){
-			List<String> noDisplayTaskTypeNameList = Arrays.asList("专家咨询", "受试者管理", "医学撰写", "受试者招募", "数据管理",
-					"统计分析", "临床监察", "通用", "患者教育");
-			queryWrapper = Wrappers.<WmTaskType>lambdaQuery()
-					.eq(WmTaskType::getRuleId, wmTaskType.getRuleId())
-					.notIn(WmTaskType::getTaskTypeName, noDisplayTaskTypeNameList);
-		} else {
-			queryWrapper = Wrappers.lambdaQuery(wmTaskType);
+			queryWrapper.eq(WmTaskType::getRuleId, wmTaskType.getRuleId());
+		}
+		if (StrUtil.isNotBlank(wmTaskType.getTaskTypeName())) {
+			queryWrapper.eq(WmTaskType::getTaskTypeName, wmTaskType.getTaskTypeName());
+		}
+		if (StrUtil.isNotBlank(wmTaskType.getEnableFlag())) {
+			queryWrapper.eq(WmTaskType::getEnableFlag, wmTaskType.getEnableFlag());
 		}
 
 		Page<WmTaskType> pageResult = wmTaskTypeService.page(page, queryWrapper);

+ 2 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskTypeEntRefController.java

@@ -14,6 +14,7 @@ import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskTypeEntRef;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDateTime;
@@ -165,6 +166,7 @@ public class WmTaskTypeEntRefController {
 	 */
 	@SysLog("新增药企给代理商设定积分规则")
 	@PostMapping("saves")
+	@Transactional(rollbackFor = Exception.class)
 	//@PreAuthorize("@pms.hasPermission('admin_wmtasktypeentref_add')" )
 	public R saves(@RequestBody WmTaskTypeEntRef wmTaskTypeEntRef) {
 

+ 7 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmDaPharmacy.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import java.time.LocalDateTime;
@@ -54,6 +55,12 @@ private static final long serialVersionUID = 1L;
      * 组织机构ID
      */
     private String deptId;
+
+	/**
+	 * 药店类型
+	 */
+	private UpmsType.PharmacyType pharmacyType;
+
     /**
      * 是否删除
      */

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/model/excel/BatchPharmacyExcelModel.java

@@ -32,4 +32,10 @@ public class BatchPharmacyExcelModel implements Serializable {
 	 */
 	@ExcelProperty(index = 2)
 	private String address;
+
+	/**
+	 * 药店类型
+	 */
+	@ExcelProperty(index = 3)
+	private String pharmacyType;
 }

+ 1 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaAgentServiceImpl.java

@@ -299,6 +299,7 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public R insert(WmDaAgent wmDaAgent) {
 		WmDaAgent query = new WmDaAgent();
 		query.setGsmc(wmDaAgent.getGsmc());

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

@@ -24,6 +24,7 @@ import com.alibaba.csp.sentinel.util.StringUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.api.dto.UserDTO;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaPharmacy;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
@@ -497,6 +498,14 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 				pharmacy.setAddress(address);
 			}
 
+			// 药店类型设置默认值
+			if (StrUtil.isNotBlank(excelModel.getPharmacyType())) {
+				UpmsType.PharmacyType pharmacyType = UpmsType.PharmacyType.getByDescription(excelModel.getPharmacyType());
+				pharmacy.setPharmacyType(pharmacyType);
+			} else {
+				pharmacy.setPharmacyType(UpmsType.PharmacyType.ORDINARY);
+			}
+
 			// 重复校验
 			int count = this.count(Wrappers.<WmDaPharmacy>lambdaQuery()
 					.eq(WmDaPharmacy::getPharmacyName, name)

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

@@ -1060,18 +1060,22 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
 				map.put("reportNo",wmReport.getReportNo());
 				map.put("scoreId",wmReport.getScoreId());
 				if("0".equals(scorePackage.getTypeid())){//药企
-					map.put("reportApprovalOpinion",wmtask.getReportDrugApprovalOpinion());
+					map.put("reportApprovalOpinion", wmtask.getReportDrugApprovalOpinion());
+					map.put("reportApprovalInfo", wmtask.getReportDrugApprovalInfo());
 				}else if("1".equals(scorePackage.getTypeid())){//一级代理商类型
 //					map.put("reportApprovalOpinion",wmtask.getReportOneApprovalOpinion());
 					if (StrUtil.isNotBlank(wmtask.getReportDrugApprovalOpinion())) {
 						map.put("reportApprovalOpinion", wmtask.getReportDrugApprovalOpinion());
+						map.put("reportApprovalInfo", wmtask.getReportDrugApprovalInfo());
 					} else {
 						// 解决一级代理商自己给自己发包的情况
 						map.put("reportApprovalOpinion", wmtask.getReportOneApprovalOpinion());
+						map.put("reportApprovalInfo", wmtask.getReportOneApprovalInfo());
 					}
 				}else if("2".equals(scorePackage.getTypeid())){//二级代理商类型
 //					map.put("reportApprovalOpinion",wmtask.getReportSecondApprovalOpinion());
-					map.put("reportApprovalOpinion",wmtask.getReportOneApprovalOpinion());
+					map.put("reportApprovalOpinion", wmtask.getReportOneApprovalOpinion());
+					map.put("reportApprovalInfo", wmtask.getReportOneApprovalInfo());
 				}
 				// 姓名
 				if (StringUtils.isNumeric(wmtask.getTaskUserId())) {

+ 1 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskTypeSubCate2ServiceImpl.java

@@ -85,6 +85,7 @@ public class WmTaskTypeSubCate2ServiceImpl extends ServiceImpl<WmTaskTypeSubCate
 		List<WmTaskType> baseTaskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
 				.eq(WmTaskType::getTaskTypeLevel, "1")
 //				.eq(WmTaskType::getEnableFlag, EnableEnum.ENABLE.val())
+				.eq(WmTaskType::getStatus, "0")
 				.eq(WmTaskType::getDelFlag, DelEnum.NOT_DEL.val()));
 		Map<String, String> baseTaskTypeMap = baseTaskTypeList.stream()
 				.collect(Collectors.toMap(WmTaskType::getTaskTypeName, WmTaskType::getId));

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

@@ -12,6 +12,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
 import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
 import com.qunzhixinxi.hnqz.admin.entity.*;
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.WmUserSignMapper;
 import com.qunzhixinxi.hnqz.admin.service.*;
@@ -61,6 +62,7 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
 	private final WmUserSignDetailService wmUserSignDetailService;
 	private final WmTaskSubmissionPercentRuleService wmTaskSubmissionPercentRuleService;
 	private final WmTaskSubmissionRuleService wmTaskSubmissionRuleService;
+	private final WmDaPharmacyService wmDaPharmacyService;
 	private final Sequence taskSequence;
 
 	/**
@@ -69,24 +71,50 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
 	 * @param wmUserSign 参数
 	 * @return 任务ID
 	 */
-	private String checkBaseInfo(WmUserSign wmUserSign) {
+	private Map<String, String> checkBaseInfo(WmUserSign wmUserSign) {
 
 		if (StringUtils.isEmpty(wmUserSign.getSignEntId()) || StringUtils.isEmpty(wmUserSign.getSignEntName())) {
 			throw new BizException("打卡地址异常,请退出后重试");
 		}
 
 		String taskTypeId;
+		String baseTaskTypeId;
 		if ("1".equals(wmUserSign.getSignEntType())) {
 			taskTypeId = "5";
+			baseTaskTypeId = "5";
 		} else if ("2".equals(wmUserSign.getSignEntType())) {
 			taskTypeId = "6";
+			baseTaskTypeId = "6";
 		} else if ("3".equals(wmUserSign.getSignEntType())) {
-			taskTypeId = "33";
+			baseTaskTypeId = "33";
+			// 根据药店类型 区分任务类型33-普通药店/73-连锁药房
+			WmDaPharmacy daPharmacy = wmDaPharmacyService.getOne(Wrappers.<WmDaPharmacy>lambdaQuery()
+					.eq(WmDaPharmacy::getPharmacyName, wmUserSign.getSignEntName())
+					.eq(WmDaPharmacy::getDelFlag, DelEnum.NOT_DEL.val())
+					.eq(WmDaPharmacy::getEnableFlag, EnableEnum.ENABLE.val()));
+			if (daPharmacy == null) {
+				throw new BizException("药店不存在或已停用");
+			}
+
+			switch (daPharmacy.getPharmacyType()) {
+				case ORDINARY:
+					taskTypeId = "33";
+					break;
+				case CHAIN:
+					taskTypeId = "73";
+					break;
+				default:
+					taskTypeId = "33";
+			}
 		} else {
 			throw new BizException("拜访类型不存在");
 		}
 
-		return taskTypeId;
+		Map<String, String> result = new HashMap<>();
+		result.put("taskTypeId", taskTypeId);
+		result.put("baseTaskTypeId", baseTaskTypeId);
+
+		return result;
 	}
 
 	/**
@@ -172,7 +200,7 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
 	 */
 	private void checkPercentRule(WmScorePackage pkg, Integer entId) {
 		R<?> checkPercentRuleResult =
-				wmTaskSubmissionPercentRuleService.checkPercentRule(pkg, entId, null, Arrays.asList("5", "6", "33"));
+				wmTaskSubmissionPercentRuleService.checkPercentRule(pkg, entId, null, Arrays.asList("5", "6", "33", "73"));
 		if (checkPercentRuleResult.getCode() != 0) {
 			throw new BizException(checkPercentRuleResult.getMsg());
 		}
@@ -593,7 +621,11 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
 	@Transactional(rollbackFor = Exception.class)
 	public R<?> saveWmUserSign(WmUserSign wmUserSign) {
 		// 校验基础参数
-		String taskTypeId = checkBaseInfo(wmUserSign);
+		Map<String, String> taskTypeMap = checkBaseInfo(wmUserSign);
+		// 细分任务类型
+		String taskTypeId = taskTypeMap.get("taskTypeId");
+		// 基础任务类型
+		String baseTaskTypeId = taskTypeMap.get("baseTaskTypeId");
 
 		// 校验积分包
 		WmScorePackage tWmScorePackage = checkPkgInfo(wmUserSign);
@@ -641,7 +673,7 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
 			}
 
 			// 保存签到详情, 获取任务分值
-			int detailScore = saveSignDetail(wmUserSign, sysU.getDeptId(), taskTypeId, score);
+			int detailScore = saveSignDetail(wmUserSign, sysU.getDeptId(), baseTaskTypeId, score);
 			log.info("精细化拜访实际任务分值:{}", detailScore);
 
 			// 保存任务

BIN
hnqz-upms/hnqz-upms-biz/src/main/resources/excel/batch_create_pharmacy_template.xlsx


+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmTaskMapper.xml

@@ -978,7 +978,8 @@
 		t.review_task_count,
 		t.report_drug_id,
 		t.report_one_id,
-		t.report_second_id
+		t.report_second_id,
+		t.task_status_info
 		FROM wm_task t
 		left join sys_user u on  u.user_id=t.task_user_id
 		left join sys_dept d on d.dept_id=t.dept_id