Ver Fonte

init: init project step4: biz code support

shc há 1 ano atrás
pai
commit
703dca2ede

+ 10 - 8
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java

@@ -1258,8 +1258,10 @@ public class WmScorePackageController {
      */
     @SysLog("修改积分包折扣和实际结算金额")
     @PostMapping(value = "/updateByIdWithType")
-    public R<?> updateByIdWithType(@RequestBody @Valid WmScorePackageVO wmScorePackageVO) {
-        return wmScorePackageService.updateByIdWithType(wmScorePackageVO);
+    public R<Boolean> updateByIdWithType(@RequestBody @Valid WmScorePackageVO wmScorePackageVO) {
+
+
+        return R.ok(wmScorePackageService.updateByIdWithType(wmScorePackageVO));
     }
 
 
@@ -2789,14 +2791,14 @@ public class WmScorePackageController {
             Map<String, List<WmScoreTaskType>> taskTypeMap = taskTypeList.stream().collect(Collectors.groupingBy(WmScoreTaskType::getScoreId));
 
             for (int i = 0; i < pageRecords.size(); i++) {
-            	WmScorePackage wmScorePackage = pageRecords.get(i);
+                WmScorePackage wmScorePackage = pageRecords.get(i);
 
-            	List<WmTask> tasks = taskGoupMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
-            	List<WmScorePackageStatus> statuses = packageStatusGroupMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
-            	List<WmScoreTaskType> scoreTaskTypes = taskTypeMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
+                List<WmTask> tasks = taskGoupMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
+                List<WmScorePackageStatus> statuses = packageStatusGroupMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
+                List<WmScoreTaskType> scoreTaskTypes = taskTypeMap.getOrDefault(wmScorePackage.getId(), new ArrayList<>());
 
-            	wmScorePackageService.buildScorePackageSync(wmScorePackage, packageType1, packageType2, tasks, statuses,
-            			packageType1List, packageType2List, parentPackageNameMap, scoreTaskTypes);
+                wmScorePackageService.buildScorePackageSync(wmScorePackage, packageType1, packageType2, tasks, statuses,
+                        packageType1List, packageType2List, parentPackageNameMap, scoreTaskTypes);
 
             }
 

+ 1 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmDaPharmacyMapper.java

@@ -19,12 +19,7 @@ public interface WmDaPharmacyMapper extends BaseMapper<WmDaPharmacy> {
 
 	List<WmDaPharmacy> slectByParam(String pharmacyName);
 
-	/**
-	 * 根据经纬度查询
-	 *
-	 * @param wmDaPharmacy
-	 * @return
-	 */
 	List<WmDaPharmacy> listByPoint(@Param("query") WmDaPharmacy wmDaPharmacy);
+	List<WmDaPharmacy> listByPointForDM(@Param("query") WmDaPharmacy wmDaPharmacy);
 
 }

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmScorePackageMapper.java

@@ -93,7 +93,7 @@ public interface WmScorePackageMapper extends DataScopeMapper<WmScorePackage> {
 
 	List<WmScorePackage> selectWmScorePackageByCode(Map<String, Object> map);
 
-	IPage<WmScorePackage> selectWmScorePackageLists(Page page,@Param("query") WmScorePackage wmScorePackage);
+	Page<WmScorePackage> selectWmScorePackageLists(Page page,@Param("query") WmScorePackage wmScorePackage);
 
 	Page<WmScorePackage> newSelectWmScorePackageLists(Page<WmScorePackage> page,
 													  @Param(value = "sendDeptId") String sendDeptId,

+ 173 - 173
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmScorePackageService.java

@@ -36,226 +36,226 @@ import java.util.concurrent.Future;
  */
 public interface WmScorePackageService extends IService<WmScorePackage> {
 
-	public List<WmScorePackage> listWmScorePackageAndTask(WmScorePackage wmScorePackage);
+    List<WmScorePackage> listWmScorePackageAndTask(WmScorePackage wmScorePackage);
 
-	List<WmScorePackage> listWmScorePackageAndTaskExt(WmScorePackage wmScorePackage);
+    List<WmScorePackage> listWmScorePackageAndTaskExt(WmScorePackage wmScorePackage);
 
-	IPage<WmScorePackage> listWmScorePackageAndTaskExt(Page<WmScorePackage> page, WmScorePackage wmScorePackage);
+    IPage<WmScorePackage> listWmScorePackageAndTaskExt(Page<WmScorePackage> page, WmScorePackage wmScorePackage);
 
-	public List<WmScorePackage> listWmScorePackageAndTaskExtOld(WmScorePackage wmScorePackage);
+    List<WmScorePackage> listWmScorePackageAndTaskExtOld(WmScorePackage wmScorePackage);
 
-	List<WmScorePackage> listWmScorePackageAndTaskExt2(WmScorePackage wmScorePackage);
+    List<WmScorePackage> listWmScorePackageAndTaskExt2(WmScorePackage wmScorePackage);
 
-	IPage<WmScorePackage> listWmScorePackageAndTaskExt2(Page<WmScorePackage> page, WmScorePackage wmScorePackage);
+    IPage<WmScorePackage> listWmScorePackageAndTaskExt2(Page<WmScorePackage> page, WmScorePackage wmScorePackage);
 
-	public List<WmScorePackage> listWmScorePackageAndTaskExt2Old(WmScorePackage wmScorePackage);
+    List<WmScorePackage> listWmScorePackageAndTaskExt2Old(WmScorePackage wmScorePackage);
 
 
-	public List<WmScorePackage> listWmScorePackageAndTaskLevel1(WmScorePackage wmScorePackage);
+    List<WmScorePackage> listWmScorePackageAndTaskLevel1(WmScorePackage wmScorePackage);
 
-	public List<WmScorePackage> listWmScorePackageAndTaskLevel3(WmScorePackage wmScorePackage);
+    List<WmScorePackage> listWmScorePackageAndTaskLevel3(WmScorePackage wmScorePackage);
 
+    List<WmScorePackage> pageList(QueryWrapper<WmScorePackage> wrappers);
 
-	public List<WmScorePackage> pageList(QueryWrapper<WmScorePackage> wrappers);
+    WmScorePackage getPackageScoreByTaskInfo(WmScorePackage wmScorePackage);
 
-	public WmScorePackage getPackageScoreByTaskInfo(WmScorePackage wmScorePackage);
+    String getPackageScoreEntByTaskInfo(WmScorePackage wmScorePackage);
 
-	public String getPackageScoreEntByTaskInfo(WmScorePackage wmScorePackage);
+    List<WmScorePackage> listPage(Page page, WmScorePackage wmScorePackage);
 
-	public List<WmScorePackage> listPage(Page page, WmScorePackage wmScorePackage);
+    IPage<WmScorePackage> getExportPackageTotalList(Page page, WmScorePackage wmScorePackage);
 
-	public IPage<WmScorePackage> getExportPackageTotalList(Page page, WmScorePackage wmScorePackage);
+    IPage<WmScorePackage> getExportPackageTotalList1(Page page, WmScorePackage wmScorePackage);
 
-	IPage<WmScorePackage> getExportPackageTotalList1(Page page, WmScorePackage wmScorePackage);
+    IPage<Map<String, Object>> getPlatTotalData(Page page, WmScorePackage wmScorePackage);
 
-	public IPage<Map<String, Object>> getPlatTotalData(Page page, WmScorePackage wmScorePackage);
+    IPage<Map<String, Object>> selectWmScorePackageList(Page page, WmScorePackage wmScorePackage);
 
-	public IPage<Map<String, Object>> selectWmScorePackageList(Page page, WmScorePackage wmScorePackage);
+    Boolean updateByIdWithType(WmScorePackageVO wmScorePackageVO);
 
-	R updateByIdWithType(WmScorePackageVO wmScorePackageVO);
+    WmScorePackage selectByPackage(String id);
 
-	WmScorePackage selectByPackage(String id);
+    List<WmScorePackage> selectLists(WmScorePackage wmScorePackage);
 
-	public List<WmScorePackage> selectLists(WmScorePackage wmScorePackage);
+    Map<String, Object> selectSettleStatus(WmScorePackage wmScorePackage);
 
-	public Map<String, Object> selectSettleStatus(WmScorePackage wmScorePackage);
+    List<SysDept> selectSendPackageDeptId(WmScorePackage wmScorePackage);
 
-	List<SysDept> selectSendPackageDeptId(WmScorePackage wmScorePackage);
 
+    List<WmScorePackage> selectWmScorePackageByCode(Map<String, Object> map);
 
-	List<WmScorePackage> selectWmScorePackageByCode(Map<String, Object> map);
+    WmScorePackage selectWmScorePackage(WmScorePackage wmScorePackage);
 
-	WmScorePackage selectWmScorePackage(WmScorePackage wmScorePackage);
+    Page<WmScorePackage> selectWmScorePackageLists(Page<WmScorePackage> page, WmScorePackage wmScorePackage);
 
-	IPage<WmScorePackage> selectWmScorePackageLists(Page page, WmScorePackage wmScorePackage);
+    WmScorePackage selectKfpjf(String scoreId);
 
-	WmScorePackage selectKfpjf(String scoreId);
+    WmScorePackage selectKfpjfs(String scoreName);
 
-	WmScorePackage selectKfpjfs(String scoreName);
+    WmScorePackage selectWmScorePackageById(String relationScoreId);
 
-	WmScorePackage selectWmScorePackageById(String relationScoreId);
+    List<WmScorePackage> selectRelationScoreId(String relationScoreId);
 
-	List<WmScorePackage> selectRelationScoreId(String relationScoreId);
+    List<WmScorePackage> selectByReRelatedService(WmScorePackage wmScorePackage);
 
-	List<WmScorePackage> selectByReRelatedService(WmScorePackage wmScorePackage);
+    R getRelationScoreList(WmScorePackage wmScorePackage);
 
-	R getRelationScoreList(WmScorePackage wmScorePackage);
+    R addWmScorePackage(WmScorePackage wmScorePackage);
 
-	R addWmScorePackage(WmScorePackage wmScorePackage);
+    R getScorePackagePage(Page page, WmScorePackage wmScorePackage);
 
-	R getScorePackagePage(Page page, WmScorePackage wmScorePackage);
+    R updateEnable(WmScorePackage wmScorePackage);
 
-	R updateEnable(WmScorePackage wmScorePackage);
+    R getScorePackagePageById(WmScorePackage wmScorePackage);
 
-	R getScorePackagePageById(WmScorePackage wmScorePackage);
+    R updateEasy(WmScorePackage wmScorePackage);
 
-	R updateEasy(WmScorePackage wmScorePackage);
+    R<?> updateWmScorePackage(WmScorePackage wmScorePackage);
 
-	R<?> updateWmScorePackage(WmScorePackage wmScorePackage);
+    WmScorePackage selectRelationScoreIdList(WmScorePackage wmScorePackage);
 
-	WmScorePackage selectRelationScoreIdList(WmScorePackage wmScorePackage);
+    List<WmScorePackage> listWmScorePackages(WmScorePackage wmScorePackage1);
 
-	List<WmScorePackage> listWmScorePackages(WmScorePackage wmScorePackage1);
+    IPage<WmScorePackageApiOutput> getPackageListForReceive(Page page, WmScorePackage wmScorePackage);
 
-	IPage<WmScorePackageApiOutput> getPackageListForReceive(Page page, WmScorePackage wmScorePackage);
+    /**
+     * 积分包结算列表(分页)
+     *
+     * @param page  分页信息
+     * @param input 分页参数
+     * @return 分页结果
+     */
+    Page<WmScorePackageSettleOutput> listPackageSettleList(Page<WmScorePackageSettleOutput> page, WmScorePackageSettleInput input);
 
-	/**
-	 * 积分包结算列表(分页)
-	 *
-	 * @param page 分页信息
-	 * @param input 分页参数
-	 * @return 分页结果
-	 */
-	Page<WmScorePackageSettleOutput> listPackageSettleList(Page<WmScorePackageSettleOutput> page, WmScorePackageSettleInput input);
+    /**
+     * 积分包结算列表
+     *
+     * @param input
+     * @return
+     */
+    List<WmScorePackageSettleOutput> listAllPackageSettle(WmScorePackageSettleInput input);
 
-	/**
-	 * 积分包结算列表
-	 *
-	 * @param input
-	 * @return
-	 */
-	List<WmScorePackageSettleOutput> listAllPackageSettle(WmScorePackageSettleInput input);
+    /**
+     * 获取当前部门的基于所有积分包的相关信息
+     *
+     * @param deptId
+     * @return
+     */
+    Map<String, Object> getDeptScorePackageInfo(Integer deptId);
 
-	/**
-	 * 获取当前部门的基于所有积分包的相关信息
-	 *
-	 * @param deptId
-	 * @return
-	 */
-	Map<String, Object> getDeptScorePackageInfo(Integer deptId);
+    /**
+     * 根据积分包获取推广的药品
+     *
+     * @param page      分页信息
+     * @param packageId 积分包id
+     * @param drugName  药品名称
+     * @return 药品列表
+     */
+    IPage<WmDaDrugEntDrugtable> listDrugsByPackageId(Page page, Integer packageId, String drugName);
 
-	/**
-	 * 根据积分包获取推广的药品
-	 *
-	 * @param page      分页信息
-	 * @param packageId 积分包id
-	 * @param drugName  药品名称
-	 * @return 药品列表
-	 */
-	IPage<WmDaDrugEntDrugtable> listDrugsByPackageId(Page page, Integer packageId, String drugName);
+    Page<WmScorePackage> selectWmScorePackageLists(Page<WmScorePackage> page, Integer deptId, String scorePackageName, String acceptSug,
+                                                   LocalDate allocationDate, LocalDate endLabelDate);
 
-	Page<WmScorePackage> selectWmScorePackageLists(Page<WmScorePackage> page, Integer deptId, String scorePackageName, String acceptSug,
-												   LocalDate allocationDate, LocalDate endLabelDate);
+    Future<WmScorePackage> finishRate(WmScorePackage wmScorePackage);
 
-	Future<WmScorePackage> finishRate(WmScorePackage wmScorePackage);
+    R getScorePackagePage(Page<WmScorePackage> page, Integer packageType1, Integer packageType2,
+                          String scorePackageName, Integer scorePackageStatus, String typeId);
 
-	R getScorePackagePage(Page<WmScorePackage> page, Integer packageType1, Integer packageType2,
-						  String scorePackageName, Integer scorePackageStatus, String typeId);
-
-
-	Future<WmScorePackage> buildScorePackage(WmScorePackage wmScorePackage, Integer packageType1, Integer packageType2);
-
-	/**
-	 * 同步处理积分包详情数据
-	 *
-	 * @param wmScorePackage       积分包信息
-	 * @param packageType1         积分包type1
-	 * @param packageType2         积分包type2
-	 * @param tasks
-	 * @param statuses
-	 * @param packageType1List
-	 * @param packageType2List
-	 * @param parentPackageNameMap
-	 * @param scoreTaskTypes
-	 */
-	void buildScorePackageSync(WmScorePackage wmScorePackage,
-							   Integer packageType1,
-							   Integer packageType2,
-							   List<WmTask> tasks,
-							   List<WmScorePackageStatus> statuses,
-							   List<SysDictItem> packageType1List,
-							   List<SysDictItem> packageType2List,
-							   Map<String, WmScorePackage> parentPackageNameMap,
-							   List<WmScoreTaskType> scoreTaskTypes);
-
-	void getReportOpt(WmScorePackage wmScorePackage);
-
-	/**
-	 * 查询excel报告导出状态
-	 *
-	 * @param wmScorePackage
-	 * @param excelReportCacheKey
-	 */
-	void getExcelReportOpt(WmScorePackage wmScorePackage, String excelReportCacheKey);
-
-	/**
-	 * 查询新版报告导出状态
-	 *
-	 * @param wmScorePackage 积分包
-	 * @param reportCacheKey 缓存key
-	 * @return 状态结果
-	 */
-	WmReportOpt getNewReportOpt(WmScorePackage wmScorePackage, String reportCacheKey);
-
-	/**
-	 * 校验积分包是否可以结算
-	 * @param pkg 基本包
-	 */
-	void checkPkgToSettle(WmScorePackage pkg);
-
-	/**
-	 * 拆包
-	 *
-	 * @param unpackDTO 拆包参数
-	 * @return 是否成功
-	 */
-	Boolean unpack(UnpackDTO unpackDTO);
-
-	/**
-	 * 终止积分包(个人)
-	 *
-	 * @param packageId            积分包id
-	 * @param terminatePackageType 终止积分包类型
-	 * @return {@link Boolean} 结果
-	 */
-	Boolean terminatePackageForPersonal(String packageId, UpmsType.TerminatePackageType terminatePackageType);
-
-	/**
-	 * 终止积分包(企业大包)
-	 *
-	 * @param packageId            积分包id
-	 * @param terminatePackageType 终止积分包类型
-	 * @return {@link Boolean} 结果
-	 */
-	Boolean terminatePackageForDept(String packageId, UpmsType.TerminatePackageType terminatePackageType);
-
-	/**
-	 * 获取指定企业下积分包的可分配积分值
-	 *
-	 * @param superDeptId 上级企业id
-	 * @param deptId      企业id
-	 * @param typeIds     企业类型
-	 * @param packageIds  积分包id
-	 * @return 结果
-	 */
-	List<WmScorePackage> getScorePackagekfpjf(Integer superDeptId, Integer deptId, String[] typeIds, String[] packageIds);
-
-
-	/**
-	 * 查询财务结算复核数据详情
-	 *
-	 * @param query 查询条件
-	 * @return 结果
-	 */
-	IPage<WmScorePackageSettleOutput> pageFinancialReviewDetail(Page<WmScorePackageSettleOutput> page, SettleFinancialReviewVO query);
+
+    Future<WmScorePackage> buildScorePackage(WmScorePackage wmScorePackage, Integer packageType1, Integer packageType2);
+
+    /**
+     * 同步处理积分包详情数据
+     *
+     * @param wmScorePackage       积分包信息
+     * @param packageType1         积分包type1
+     * @param packageType2         积分包type2
+     * @param tasks
+     * @param statuses
+     * @param packageType1List
+     * @param packageType2List
+     * @param parentPackageNameMap
+     * @param scoreTaskTypes
+     */
+    void buildScorePackageSync(WmScorePackage wmScorePackage,
+                               Integer packageType1,
+                               Integer packageType2,
+                               List<WmTask> tasks,
+                               List<WmScorePackageStatus> statuses,
+                               List<SysDictItem> packageType1List,
+                               List<SysDictItem> packageType2List,
+                               Map<String, WmScorePackage> parentPackageNameMap,
+                               List<WmScoreTaskType> scoreTaskTypes);
+
+    void getReportOpt(WmScorePackage wmScorePackage);
+
+    /**
+     * 查询excel报告导出状态
+     *
+     * @param wmScorePackage
+     * @param excelReportCacheKey
+     */
+    void getExcelReportOpt(WmScorePackage wmScorePackage, String excelReportCacheKey);
+
+    /**
+     * 查询新版报告导出状态
+     *
+     * @param wmScorePackage 积分包
+     * @param reportCacheKey 缓存key
+     * @return 状态结果
+     */
+    WmReportOpt getNewReportOpt(WmScorePackage wmScorePackage, String reportCacheKey);
+
+    /**
+     * 校验积分包是否可以结算
+     *
+     * @param pkg 基本包
+     */
+    void checkPkgToSettle(WmScorePackage pkg);
+
+    /**
+     * 拆包
+     *
+     * @param unpackDTO 拆包参数
+     * @return 是否成功
+     */
+    Boolean unpack(UnpackDTO unpackDTO);
+
+    /**
+     * 终止积分包(个人)
+     *
+     * @param packageId            积分包id
+     * @param terminatePackageType 终止积分包类型
+     * @return {@link Boolean} 结果
+     */
+    Boolean terminatePackageForPersonal(String packageId, UpmsType.TerminatePackageType terminatePackageType);
+
+    /**
+     * 终止积分包(企业大包)
+     *
+     * @param packageId            积分包id
+     * @param terminatePackageType 终止积分包类型
+     * @return {@link Boolean} 结果
+     */
+    Boolean terminatePackageForDept(String packageId, UpmsType.TerminatePackageType terminatePackageType);
+
+    /**
+     * 获取指定企业下积分包的可分配积分值
+     *
+     * @param superDeptId 上级企业id
+     * @param deptId      企业id
+     * @param typeIds     企业类型
+     * @param packageIds  积分包id
+     * @return 结果
+     */
+    List<WmScorePackage> getScorePackagekfpjf(Integer superDeptId, Integer deptId, String[] typeIds, String[] packageIds);
+
+
+    /**
+     * 查询财务结算复核数据详情
+     *
+     * @param query 查询条件
+     * @return 结果
+     */
+    IPage<WmScorePackageSettleOutput> pageFinancialReviewDetail(Page<WmScorePackageSettleOutput> page, SettleFinancialReviewVO query);
 }

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

@@ -27,8 +27,9 @@ import com.qunzhixinxi.hnqz.admin.util.MapUtil;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
-import lombok.AllArgsConstructor;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -47,87 +48,92 @@ import java.util.stream.Collectors;
  */
 @Slf4j
 @Service
-@AllArgsConstructor
+@RequiredArgsConstructor
 public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmDaPharmacy> implements WmDaPharmacyService {
 
 
-	private final WmDaPharmacyMapper wmDaPharmacyMapper;
-	private final WmTaskService wmTaskService;
-	private final WmTaskContentMapper wmTaskContentMapper;
-	private final WmScorePackageService wmScorePackageService;
-	private final WmScorePackageStatusService packageStatusService;
-
-	@Override
-	public R approvalPharmacy(String taskId) {
-		WmDaPharmacy wmDaPharmacy=new WmDaPharmacy();
-		//获取任务信息
-		WmTask wmTask=wmTaskService.getById(taskId);
-		if(null==wmTask){
-			return R.failed("未查询到调研信息");
-		}
-		// if("1".equals(wmTask.getPlatAuditStatus())){
-		// 	return R.failed("信息已审核,请重新查询后操作");
-		// }
-		WmTaskContent wmTaskContent = wmTaskContentMapper.selectById(wmTask.getTaskContentId());
-		if(null==wmTaskContent){
-			return R.failed("调研信息为空");
-		}
-		// 根据省市区+详情地址+药店名称查询药店
-		WmDaPharmacy query = new WmDaPharmacy();
-		// 省市区
-		if (StringUtil.isNotBlank(wmTaskContent.getTemp7())) {
-			if (StrUtil.contains(wmTaskContent.getTemp7(), "-")) {
-				String[] citys = wmTaskContent.getTemp7().split("-");
-				query.setProvince(ArrayUtil.get(citys, 0));
-				query.setCity(ArrayUtil.get(citys, 1));
-				query.setArea(ArrayUtil.get(citys, 2));
-			} else if (StrUtil.contains(wmTaskContent.getTemp7(), ",")) {
-				String[] citys = wmTaskContent.getTemp7().split(",");
-				query.setProvince(ArrayUtil.get(citys, 0));
-				query.setCity(ArrayUtil.get(citys, 1));
-				query.setArea(ArrayUtil.get(citys, 2));
-			}
-		}
-		// 详细地址
-		query.setAddress(wmTaskContent.getTemp4());
-		// 药店名称
-		query.setPharmacyName(wmTaskContent.getTemp3());
-		query.setDelFlag("0");
-		List<WmDaPharmacy> wdplist = wmDaPharmacyMapper.selectList(Wrappers.query(query));
-		if(CollectionUtil.isNotEmpty(wdplist)) {
-			wmDaPharmacy = wdplist.get(0);
-			wmTask.setCompareResult("2");//信息不一致
-		} else {
-			wmTask.setCompareResult("1");//新增
-		}
-
-		// 获取经纬度
-		this.convertToLatAndLong(query);
-		wmDaPharmacy.setLatitude(query.getLatitude());
-		wmDaPharmacy.setLongitude(query.getLongitude());
-
-
-		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);
-	}
-
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public R updateByapprovalForManualOperation(Map<String, String> map) {
-		String taskId=map.get("taskId");
-		WmTask wmTask=wmTaskService.getById(taskId);
-		if(wmTask==null){
-			return R.failed("未查询到调查信息");
-		}
-		String approvalInfo=map.get("approvalInfo");
-		String approvalOpinion=map.get("approvalOpinion");
-		String compareResult=map.get("compareResult");
-		//更新时,同一个task_content_id和createtime下的数据,都要更新状态为已审核
+    private final WmDaPharmacyMapper wmDaPharmacyMapper;
+    private final WmTaskService wmTaskService;
+    private final WmTaskContentMapper wmTaskContentMapper;
+    private final WmScorePackageService wmScorePackageService;
+    private final WmScorePackageStatusService packageStatusService;
+
+
+    @Value("${spring.datasource.druid.driver-class-name}")
+    private String driverClassName;
+
+
+    @Override
+    public R approvalPharmacy(String taskId) {
+        WmDaPharmacy wmDaPharmacy = new WmDaPharmacy();
+        //获取任务信息
+        WmTask wmTask = wmTaskService.getById(taskId);
+        if (null == wmTask) {
+            return R.failed("未查询到调研信息");
+        }
+        // if("1".equals(wmTask.getPlatAuditStatus())){
+        // 	return R.failed("信息已审核,请重新查询后操作");
+        // }
+        WmTaskContent wmTaskContent = wmTaskContentMapper.selectById(wmTask.getTaskContentId());
+        if (null == wmTaskContent) {
+            return R.failed("调研信息为空");
+        }
+        // 根据省市区+详情地址+药店名称查询药店
+        WmDaPharmacy query = new WmDaPharmacy();
+        // 省市区
+        if (StringUtil.isNotBlank(wmTaskContent.getTemp7())) {
+            if (StrUtil.contains(wmTaskContent.getTemp7(), "-")) {
+                String[] citys = wmTaskContent.getTemp7().split("-");
+                query.setProvince(ArrayUtil.get(citys, 0));
+                query.setCity(ArrayUtil.get(citys, 1));
+                query.setArea(ArrayUtil.get(citys, 2));
+            } else if (StrUtil.contains(wmTaskContent.getTemp7(), ",")) {
+                String[] citys = wmTaskContent.getTemp7().split(",");
+                query.setProvince(ArrayUtil.get(citys, 0));
+                query.setCity(ArrayUtil.get(citys, 1));
+                query.setArea(ArrayUtil.get(citys, 2));
+            }
+        }
+        // 详细地址
+        query.setAddress(wmTaskContent.getTemp4());
+        // 药店名称
+        query.setPharmacyName(wmTaskContent.getTemp3());
+        query.setDelFlag("0");
+        List<WmDaPharmacy> wdplist = wmDaPharmacyMapper.selectList(Wrappers.query(query));
+        if (CollectionUtil.isNotEmpty(wdplist)) {
+            wmDaPharmacy = wdplist.get(0);
+            wmTask.setCompareResult("2");//信息不一致
+        } else {
+            wmTask.setCompareResult("1");//新增
+        }
+
+        // 获取经纬度
+        this.convertToLatAndLong(query);
+        wmDaPharmacy.setLatitude(query.getLatitude());
+        wmDaPharmacy.setLongitude(query.getLongitude());
+
+
+        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);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R updateByapprovalForManualOperation(Map<String, String> map) {
+        String taskId = map.get("taskId");
+        WmTask wmTask = wmTaskService.getById(taskId);
+        if (wmTask == null) {
+            return R.failed("未查询到调查信息");
+        }
+        String approvalInfo = map.get("approvalInfo");
+        String approvalOpinion = map.get("approvalOpinion");
+        String compareResult = map.get("compareResult");
+        //更新时,同一个task_content_id和createtime下的数据,都要更新状态为已审核
 //		LambdaUpdateWrapper<WmTask> updateWrapper=new LambdaUpdateWrapper<WmTask>();
 //		updateWrapper.set(WmTask::getPlatAuditStatus,"1");
 //		updateWrapper.set(WmTask::getApprovalOpinion,approvalOpinion);
@@ -143,43 +149,43 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 //		updateTask.setCompareResult(compareResult);
 //		updateTask.setApprovalInfo(approvalInfo);
 
-		if("1".equals(approvalOpinion)){//采纳
-			//updateWrapper.set(WmTask::getTaskStatus,"3");//审核通过
-			// TODO 根据任务积分修改积分包状态
+        if ("1".equals(approvalOpinion)) {//采纳
+            //updateWrapper.set(WmTask::getTaskStatus,"3");//审核通过
+            // TODO 根据任务积分修改积分包状态
 //			updateWrapper.set(WmTask::getRealFlag,"0");//0审核通过
 //			updateTask.setRealFlag("0");
 
-			WmDaPharmacy wmDaPharmacy = new WmDaPharmacy();
-			WmTaskContent wmTaskContent = wmTaskContentMapper.selectById(wmTask.getTaskContentId());
-			//更新审核信息
-			LocalDateTime now = LocalDateTime.now();
+            WmDaPharmacy wmDaPharmacy = new WmDaPharmacy();
+            WmTaskContent wmTaskContent = wmTaskContentMapper.selectById(wmTask.getTaskContentId());
+            //更新审核信息
+            LocalDateTime now = LocalDateTime.now();
 //			Integer userId = SecurityUtils.getUser().getId();
-			if("1".equals(compareResult)){//新增
-				//新增
-				wmDaPharmacy.setPharmacyName(wmTaskContent.getTemp3());//名称
-				wmDaPharmacy.setAddress(wmTaskContent.getTemp4());//名称
-				if (!StringUtil.isEmpty(wmTaskContent.getTemp7())) {//省市区
-					String[] citys = wmTaskContent.getTemp7().split("-");
-					if(citys.length==3) {
-						wmDaPharmacy.setProvince(citys[0]);
-						wmDaPharmacy.setCity(citys[1]);
-						wmDaPharmacy.setArea(citys[2]);
-					}else {
-						String[] citys1=wmTaskContent.getTemp7().split(",");
-						if(citys1.length==3) {
-							wmDaPharmacy.setProvince(citys1[0]);
-							wmDaPharmacy.setCity(citys1[1]);
-							wmDaPharmacy.setArea(citys1[2]);
-						}
-					}
-				}
-				wmDaPharmacy.setCreateTime(now);
-				wmDaPharmacy.setCreateUser(0);
-				// 根据地址转换经纬度
-				this.convertToLatAndLong(wmDaPharmacy);
-				this.save(wmDaPharmacy);
-			}else if("2".equals(compareResult)){//信息不一致
-				//对比药店和调研信息,只有所属地区不一样
+            if ("1".equals(compareResult)) {//新增
+                //新增
+                wmDaPharmacy.setPharmacyName(wmTaskContent.getTemp3());//名称
+                wmDaPharmacy.setAddress(wmTaskContent.getTemp4());//名称
+                if (!StringUtil.isEmpty(wmTaskContent.getTemp7())) {//省市区
+                    String[] citys = wmTaskContent.getTemp7().split("-");
+                    if (citys.length == 3) {
+                        wmDaPharmacy.setProvince(citys[0]);
+                        wmDaPharmacy.setCity(citys[1]);
+                        wmDaPharmacy.setArea(citys[2]);
+                    } else {
+                        String[] citys1 = wmTaskContent.getTemp7().split(",");
+                        if (citys1.length == 3) {
+                            wmDaPharmacy.setProvince(citys1[0]);
+                            wmDaPharmacy.setCity(citys1[1]);
+                            wmDaPharmacy.setArea(citys1[2]);
+                        }
+                    }
+                }
+                wmDaPharmacy.setCreateTime(now);
+                wmDaPharmacy.setCreateUser(0);
+                // 根据地址转换经纬度
+                this.convertToLatAndLong(wmDaPharmacy);
+                this.save(wmDaPharmacy);
+            } else if ("2".equals(compareResult)) {//信息不一致
+                //对比药店和调研信息,只有所属地区不一样
 //				List<WmDaPharmacy> wdplist=wmDaPharmacyMapper.slectByParam(wmTaskContent.getTemp3());
 //				if(null!=wdplist&&wdplist.size()>0){
 //					wmDaPharmacy=wdplist.get(0);
@@ -205,21 +211,21 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 //				wmDaPharmacy.setAddress(wmTaskContent.getTemp4());
 //				wmDaPharmacy.setUpdateTime(now);
 //				wmDaPharmacy.setUpdateUser(userId);
-				// 根据地址转换经纬度
+                // 根据地址转换经纬度
 //				this.convertToLatAndLong(wmDaPharmacy);
-				//更新药店信息;
+                //更新药店信息;
 //				this.updateById(wmDaPharmacy);
-			}
+            }
 
-		}else{
-			//updateWrapper.set(WmTask::getTaskStatus,"2");//审核不通过
+        } else {
+            //updateWrapper.set(WmTask::getTaskStatus,"2");//审核不通过
 //			updateWrapper.set(WmTask::getRealFlag,"1");//1不通过
 
 //			updateTask.setRealFlag("1");
-		}
-		//提交
+        }
+        //提交
 //		updateTask.setTaskStatus("2");
-		WmScorePackage wmScorePackage = wmScorePackageService.getById(wmTask.getScorePackageId());
+        WmScorePackage wmScorePackage = wmScorePackageService.getById(wmTask.getScorePackageId());
 // 		if("1".equals(approvalOpinion)){
 // 			if("1".equals(wmScorePackage.getPackageType1())){
 // 				Boolean fullFlag = wmTaskService.checkUserTaskSubScore(wmTask.getTaskUserId());
@@ -237,41 +243,41 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 //
 //		}else {
 
-			/**
-			 * 审核不通过可能需要释放积分
-			 */
-			//更新积分包状态
+        /**
+         * 审核不通过可能需要释放积分
+         */
+        //更新积分包状态
 //			WmScorePackage wmScorePackage = wmScorePackageService.getById(wmTask.getScorePackageId());
-			WmScorePackageStatus query = new WmScorePackageStatus();
-			query.setUserId(wmTask.getTaskUserId());
-			query.setPackageId(wmTask.getScorePackageId());
-			query.setStatus("2");
-			WmScorePackageStatus scorePackageStatus = packageStatusService.getOne(Wrappers.query(query));
-
-			/**
-			 * 不需要释放 直接返回
-			 */
+        WmScorePackageStatus query = new WmScorePackageStatus();
+        query.setUserId(wmTask.getTaskUserId());
+        query.setPackageId(wmTask.getScorePackageId());
+        query.setStatus("2");
+        WmScorePackageStatus scorePackageStatus = packageStatusService.getOne(Wrappers.query(query));
+
+        /**
+         * 不需要释放 直接返回
+         */
 //			if("1".equals(wmScorePackage.getTaskAddFlag()) && "1".equals(scorePackageStatus.getTaskAddFlag())){
 //				return R.ok();
 //			}
 
 //			packageStatusService.updatePackageAndStatus(wmTask, wmScorePackage, scorePackageStatus);
 //		}
-		return R.ok();
-	}
-
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public R updateByapproval(Map<String, String> map) {
-		String taskId=map.get("taskId");
-		WmTask wmTask=wmTaskService.getById(taskId);
-		if(wmTask==null){
-			return R.failed("未查询到调查信息");
-		}
-		String approvalInfo=map.get("approvalInfo");
-		String approvalOpinion=map.get("approvalOpinion");
-		String compareResult=map.get("compareResult");
-		//更新时,同一个task_content_id和createtime下的数据,都要更新状态为已审核
+        return R.ok();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R updateByapproval(Map<String, String> map) {
+        String taskId = map.get("taskId");
+        WmTask wmTask = wmTaskService.getById(taskId);
+        if (wmTask == null) {
+            return R.failed("未查询到调查信息");
+        }
+        String approvalInfo = map.get("approvalInfo");
+        String approvalOpinion = map.get("approvalOpinion");
+        String compareResult = map.get("compareResult");
+        //更新时,同一个task_content_id和createtime下的数据,都要更新状态为已审核
 //		LambdaUpdateWrapper<WmTask> updateWrapper=new LambdaUpdateWrapper<WmTask>();
 //		updateWrapper.set(WmTask::getPlatAuditStatus,"1");
 //		updateWrapper.set(WmTask::getApprovalOpinion,approvalOpinion);
@@ -287,43 +293,43 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 //		updateTask.setCompareResult(compareResult);
 //		updateTask.setApprovalInfo(approvalInfo);
 
-		if("1".equals(approvalOpinion)){//采纳
-			//updateWrapper.set(WmTask::getTaskStatus,"3");//审核通过
-			// TODO 根据任务积分修改积分包状态
+        if ("1".equals(approvalOpinion)) {//采纳
+            //updateWrapper.set(WmTask::getTaskStatus,"3");//审核通过
+            // TODO 根据任务积分修改积分包状态
 //			updateWrapper.set(WmTask::getRealFlag,"0");//0审核通过
 //			updateTask.setRealFlag("0");
 
-			WmDaPharmacy wmDaPharmacy = new WmDaPharmacy();
-			WmTaskContent wmTaskContent = wmTaskContentMapper.selectById(wmTask.getTaskContentId());
-			//更新审核信息
-			LocalDateTime now = LocalDateTime.now();
-			Integer userId = SecurityUtils.getUser().getId();
-			if("1".equals(compareResult)){//新增
-				//新增
-				wmDaPharmacy.setPharmacyName(wmTaskContent.getTemp3());//名称
-				wmDaPharmacy.setAddress(wmTaskContent.getTemp4());//名称
-				if (!StringUtil.isEmpty(wmTaskContent.getTemp7())) {//省市区
-					String[] citys = wmTaskContent.getTemp7().split("-");
-					if(citys.length==3) {
-						wmDaPharmacy.setProvince(citys[0]);
-						wmDaPharmacy.setCity(citys[1]);
-						wmDaPharmacy.setArea(citys[2]);
-					}else {
-						String[] citys1=wmTaskContent.getTemp7().split(",");
-						if(citys1.length==3) {
-							wmDaPharmacy.setProvince(citys1[0]);
-							wmDaPharmacy.setCity(citys1[1]);
-							wmDaPharmacy.setArea(citys1[2]);
-						}
-					}
-				}
-				wmDaPharmacy.setCreateTime(now);
-				wmDaPharmacy.setCreateUser(userId);
-				// 根据地址转换经纬度
-				this.convertToLatAndLong(wmDaPharmacy);
-				this.save(wmDaPharmacy);
-			}else if("2".equals(compareResult)){//信息不一致
-				//对比药店和调研信息,只有所属地区不一样
+            WmDaPharmacy wmDaPharmacy = new WmDaPharmacy();
+            WmTaskContent wmTaskContent = wmTaskContentMapper.selectById(wmTask.getTaskContentId());
+            //更新审核信息
+            LocalDateTime now = LocalDateTime.now();
+            Integer userId = SecurityUtils.getUser().getId();
+            if ("1".equals(compareResult)) {//新增
+                //新增
+                wmDaPharmacy.setPharmacyName(wmTaskContent.getTemp3());//名称
+                wmDaPharmacy.setAddress(wmTaskContent.getTemp4());//名称
+                if (!StringUtil.isEmpty(wmTaskContent.getTemp7())) {//省市区
+                    String[] citys = wmTaskContent.getTemp7().split("-");
+                    if (citys.length == 3) {
+                        wmDaPharmacy.setProvince(citys[0]);
+                        wmDaPharmacy.setCity(citys[1]);
+                        wmDaPharmacy.setArea(citys[2]);
+                    } else {
+                        String[] citys1 = wmTaskContent.getTemp7().split(",");
+                        if (citys1.length == 3) {
+                            wmDaPharmacy.setProvince(citys1[0]);
+                            wmDaPharmacy.setCity(citys1[1]);
+                            wmDaPharmacy.setArea(citys1[2]);
+                        }
+                    }
+                }
+                wmDaPharmacy.setCreateTime(now);
+                wmDaPharmacy.setCreateUser(userId);
+                // 根据地址转换经纬度
+                this.convertToLatAndLong(wmDaPharmacy);
+                this.save(wmDaPharmacy);
+            } else if ("2".equals(compareResult)) {//信息不一致
+                //对比药店和调研信息,只有所属地区不一样
 //				List<WmDaPharmacy> wdplist=wmDaPharmacyMapper.slectByParam(wmTaskContent.getTemp3());
 //				if(null!=wdplist&&wdplist.size()>0){
 //					wmDaPharmacy=wdplist.get(0);
@@ -349,19 +355,19 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 //				wmDaPharmacy.setAddress(wmTaskContent.getTemp4());
 //				wmDaPharmacy.setUpdateTime(now);
 //				wmDaPharmacy.setUpdateUser(userId);
-				// 根据地址转换经纬度
+                // 根据地址转换经纬度
 //				this.convertToLatAndLong(wmDaPharmacy);
-				//更新药店信息;
+                //更新药店信息;
 //				this.updateById(wmDaPharmacy);
-			}
+            }
 
-		}else{
-			//updateWrapper.set(WmTask::getTaskStatus,"2");//审核不通过
+        } else {
+            //updateWrapper.set(WmTask::getTaskStatus,"2");//审核不通过
 //			updateWrapper.set(WmTask::getRealFlag,"1");//1不通过
 
 //			updateTask.setRealFlag("1");
-		}
-		//提交
+        }
+        //提交
 //		updateTask.setTaskStatus("2");
 //		WmScorePackage wmScorePackage = wmScorePackageService.getById(wmTask.getScorePackageId());
 // 		if("1".equals(approvalOpinion)){
@@ -381,10 +387,10 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 //
 //		}else {
 
-			/**
-			 * 审核不通过可能需要释放积分
-			 */
-			//更新积分包状态
+        /**
+         * 审核不通过可能需要释放积分
+         */
+        //更新积分包状态
 //			WmScorePackage wmScorePackage = wmScorePackageService.getById(wmTask.getScorePackageId());
 //			WmScorePackageStatus query = new WmScorePackageStatus();
 //			query.setUserId(wmTask.getTaskUserId());
@@ -392,166 +398,170 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 //			query.setStatus("2");
 //			WmScorePackageStatus scorePackageStatus = packageStatusService.getOne(Wrappers.query(query));
 
-			/**
-			 * 不需要释放 直接返回
-			 */
+        /**
+         * 不需要释放 直接返回
+         */
 //			if("1".equals(wmScorePackage.getTaskAddFlag()) && "1".equals(scorePackageStatus.getTaskAddFlag())){
 //				return R.ok();
 //			}
 
 //			packageStatusService.updatePackageAndStatus(wmTask, wmScorePackage, scorePackageStatus);
 //		}
-		return R.ok();
-	}
-
-	/**
-	 * 根据经纬度查询
-	 *
-	 * @param wmDaPharmacy
-	 * @return
-	 */
-	@Override
-	public List<WmDaPharmacy> listByPoint(WmDaPharmacy wmDaPharmacy) {
-		return wmDaPharmacyMapper.listByPoint(wmDaPharmacy);
-	}
-
-	/**
-	 * 批量转换经纬度
-	 */
-	@Override
-	public void parseAddress() {
-		List<WmDaPharmacy> list = this.list(Wrappers.<WmDaPharmacy>lambdaQuery().isNull(WmDaPharmacy::getLatitude));
-		if (CollectionUtil.isNotEmpty(list)) {
-			list.forEach(wmDaPharmacy -> {
-				this.convertToLatAndLong(wmDaPharmacy);
-				this.saveOrUpdate(wmDaPharmacy);
-			});
-		}
-	}
-
-	/**
-	 * 批量导入
-	 *
-	 * @param excelModelList 药店列表
-	 * @return 结果
-	 */
-	@Override
-	public Map<String, String> batchByExcel(List<BatchPharmacyExcelModel> excelModelList) {
-
-		// 变量
-		Map<String, String> errorMap = new HashMap<>();
-		List<WmDaPharmacy> currentList = new ArrayList<>();
-
-		// 获取操作员
-		HnqzUser creator = SecurityUtils.getUser();
-
-		log.info("开始校验数据:{}", excelModelList);
-		// 业务值校验
-		Map<String, List<BatchPharmacyExcelModel>> nameMap = excelModelList.stream()
-				.filter(excelModel -> StrUtil.isNotBlank(excelModel.getName()))
-				.collect(Collectors.groupingBy(BatchPharmacyExcelModel::getName));
-
-		for (String nameStr : nameMap.keySet()) {
-			List<BatchPharmacyExcelModel> excelModels = nameMap.get(nameStr);
-			if (excelModels.size() > 1) {
-				log.error("名称重复");
-				String idStr = excelModels.stream().map(BatchPharmacyExcelModel::getNumber).collect(Collectors.joining(","));
-				errorMap(errorMap, "名称重复", idStr);
-				continue;
-			}
-
-			BatchPharmacyExcelModel excelModel = excelModels.get(0);
-
-			WmDaPharmacy pharmacy = new WmDaPharmacy();
-			// 校验名称
-			String name = StrUtil.cleanBlank(excelModel.getName());
-			if (StrUtil.isBlank(name)) {
-				log.error("名称为空");
-				errorMap(errorMap, "名称为空", excelModel.getNumber());
-			} else {
-				pharmacy.setPharmacyName(name);
-			}
-
-			// 校验地址
-			String address = StrUtil.cleanBlank(excelModel.getAddress());
-			if (StrUtil.isBlank(address)) {
-				log.error("地址为空");
-				errorMap(errorMap, "地址为空", excelModel.getNumber());
-			} else {
-				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)
-					.eq(WmDaPharmacy::getDelFlag, DelEnum.NOT_DEL.val()));
-			if (count > 0) {
-				log.error("{} 已存在", name);
-				errorMap(errorMap, "名称已存在", excelModel.getNumber());
-			}
-
-			// 记录正确的结果
-			pharmacy.setProvince("");
-			pharmacy.setCity("");
-			pharmacy.setArea("");
-			LocalDateTime now = LocalDateTime.now();
-			pharmacy.setCreateTime(now);
-			pharmacy.setCreateUser(creator.getId());
-			// 根据地址转换经纬度
-			this.convertToLatAndLong(pharmacy);
-			currentList.add(pharmacy);
-		}
-
-		// 上传结果
-		if (CollUtil.isEmpty(errorMap)) {
-			this.saveBatch(currentList);
-		}
-
-		return errorMap;
-	}
-
-	/**
-	 * 根据地址转换经纬度
-	 *
-	 * @param wmDaPharmacy
-	 */
-	private void convertToLatAndLong(WmDaPharmacy wmDaPharmacy) {
-		String fullAddress = wmDaPharmacy.getProvince() + wmDaPharmacy.getCity() + wmDaPharmacy.getArea()
-				+ wmDaPharmacy.getAddress();
-		JSONObject jsonObject = MapUtil.getLatAndLogByName(fullAddress);
-		if (jsonObject != null) {
-			wmDaPharmacy.setProvince(jsonObject.getString("province"));
-			wmDaPharmacy.setCity(jsonObject.getString("city"));
-			wmDaPharmacy.setArea(jsonObject.getString("district"));
-			String location = jsonObject.getString("location");
-			if (null != location && location.split(",").length > 0) {
-				wmDaPharmacy.setLongitude(location.split(",")[0]);
-				wmDaPharmacy.setLatitude(location.split(",")[1]);
-			}
-		}
-	}
-
-	/**
-	 * 封装错误信息
-	 *
-	 * @param errorMap 记录错误信息map
-	 * @param key      原因
-	 * @param idStr    错误id
-	 */
-	private void errorMap(Map<String, String> errorMap, String key, String idStr) {
-		if (errorMap.containsKey(key)) {
-			String val = errorMap.get(key);
-			idStr = String.join(";", val, idStr);
-		}
-		errorMap.put(key, idStr);
-	}
+        return R.ok();
+    }
+
+    /**
+     * 根据经纬度查询
+     *
+     * @param wmDaPharmacy
+     * @return
+     */
+    @Override
+    public List<WmDaPharmacy> listByPoint(WmDaPharmacy wmDaPharmacy) {
+
+
+        return "dm.jdbc.driver.DmDriver".equals(driverClassName) ?
+                wmDaPharmacyMapper.listByPointForDM(wmDaPharmacy) :
+                wmDaPharmacyMapper.listByPoint(wmDaPharmacy);
+    }
+
+    /**
+     * 批量转换经纬度
+     */
+    @Override
+    public void parseAddress() {
+        List<WmDaPharmacy> list = this.list(Wrappers.<WmDaPharmacy>lambdaQuery().isNull(WmDaPharmacy::getLatitude));
+        if (CollectionUtil.isNotEmpty(list)) {
+            list.forEach(wmDaPharmacy -> {
+                this.convertToLatAndLong(wmDaPharmacy);
+                this.saveOrUpdate(wmDaPharmacy);
+            });
+        }
+    }
+
+    /**
+     * 批量导入
+     *
+     * @param excelModelList 药店列表
+     * @return 结果
+     */
+    @Override
+    public Map<String, String> batchByExcel(List<BatchPharmacyExcelModel> excelModelList) {
+
+        // 变量
+        Map<String, String> errorMap = new HashMap<>();
+        List<WmDaPharmacy> currentList = new ArrayList<>();
+
+        // 获取操作员
+        HnqzUser creator = SecurityUtils.getUser();
+
+        log.info("开始校验数据:{}", excelModelList);
+        // 业务值校验
+        Map<String, List<BatchPharmacyExcelModel>> nameMap = excelModelList.stream()
+                .filter(excelModel -> StrUtil.isNotBlank(excelModel.getName()))
+                .collect(Collectors.groupingBy(BatchPharmacyExcelModel::getName));
+
+        for (String nameStr : nameMap.keySet()) {
+            List<BatchPharmacyExcelModel> excelModels = nameMap.get(nameStr);
+            if (excelModels.size() > 1) {
+                log.error("名称重复");
+                String idStr = excelModels.stream().map(BatchPharmacyExcelModel::getNumber).collect(Collectors.joining(","));
+                errorMap(errorMap, "名称重复", idStr);
+                continue;
+            }
+
+            BatchPharmacyExcelModel excelModel = excelModels.get(0);
+
+            WmDaPharmacy pharmacy = new WmDaPharmacy();
+            // 校验名称
+            String name = StrUtil.cleanBlank(excelModel.getName());
+            if (StrUtil.isBlank(name)) {
+                log.error("名称为空");
+                errorMap(errorMap, "名称为空", excelModel.getNumber());
+            } else {
+                pharmacy.setPharmacyName(name);
+            }
+
+            // 校验地址
+            String address = StrUtil.cleanBlank(excelModel.getAddress());
+            if (StrUtil.isBlank(address)) {
+                log.error("地址为空");
+                errorMap(errorMap, "地址为空", excelModel.getNumber());
+            } else {
+                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)
+                    .eq(WmDaPharmacy::getDelFlag, DelEnum.NOT_DEL.val()));
+            if (count > 0) {
+                log.error("{} 已存在", name);
+                errorMap(errorMap, "名称已存在", excelModel.getNumber());
+            }
+
+            // 记录正确的结果
+            pharmacy.setProvince("");
+            pharmacy.setCity("");
+            pharmacy.setArea("");
+            LocalDateTime now = LocalDateTime.now();
+            pharmacy.setCreateTime(now);
+            pharmacy.setCreateUser(creator.getId());
+            // 根据地址转换经纬度
+            this.convertToLatAndLong(pharmacy);
+            currentList.add(pharmacy);
+        }
+
+        // 上传结果
+        if (CollUtil.isEmpty(errorMap)) {
+            this.saveBatch(currentList);
+        }
+
+        return errorMap;
+    }
+
+    /**
+     * 根据地址转换经纬度
+     *
+     * @param wmDaPharmacy
+     */
+    private void convertToLatAndLong(WmDaPharmacy wmDaPharmacy) {
+        String fullAddress = wmDaPharmacy.getProvince() + wmDaPharmacy.getCity() + wmDaPharmacy.getArea()
+                + wmDaPharmacy.getAddress();
+        JSONObject jsonObject = MapUtil.getLatAndLogByName(fullAddress);
+        if (jsonObject != null) {
+            wmDaPharmacy.setProvince(jsonObject.getString("province"));
+            wmDaPharmacy.setCity(jsonObject.getString("city"));
+            wmDaPharmacy.setArea(jsonObject.getString("district"));
+            String location = jsonObject.getString("location");
+            if (null != location && location.split(",").length > 0) {
+                wmDaPharmacy.setLongitude(location.split(",")[0]);
+                wmDaPharmacy.setLatitude(location.split(",")[1]);
+            }
+        }
+    }
+
+    /**
+     * 封装错误信息
+     *
+     * @param errorMap 记录错误信息map
+     * @param key      原因
+     * @param idStr    错误id
+     */
+    private void errorMap(Map<String, String> errorMap, String key, String idStr) {
+        if (errorMap.containsKey(key)) {
+            String val = errorMap.get(key);
+            idStr = String.join(";", val, idStr);
+        }
+        errorMap.put(key, idStr);
+    }
 
 }

+ 73 - 37
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmScorePackageServiceImpl.java

@@ -23,11 +23,22 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRelation;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDaAgent;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEntDrugtable;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmPkgQuizRelation;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmReport;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmReportOpt;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageSettleNote;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScorePackageStatus;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmScoreTaskType;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTask;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskTypeTree;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTeam;
 import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
 import com.qunzhixinxi.hnqz.admin.api.vo.WmScorePackageVO;
-import com.qunzhixinxi.hnqz.admin.api.entity.*;
 import com.qunzhixinxi.hnqz.admin.api.dto.UnpackDTO;
 import com.qunzhixinxi.hnqz.admin.api.model.input.WmScorePackageApiOutput;
 import com.qunzhixinxi.hnqz.admin.api.model.input.WmScorePackageSettleInput;
@@ -42,14 +53,29 @@ import com.qunzhixinxi.hnqz.admin.api.constant.enums.ReportEnum;
 import com.qunzhixinxi.hnqz.admin.api.constant.enums.ScorePackageStatusEnum;
 import com.qunzhixinxi.hnqz.admin.api.constant.enums.SettleStatusEnum;
 import com.qunzhixinxi.hnqz.admin.api.constant.enums.TaskStatusEnum;
-import com.qunzhixinxi.hnqz.admin.mapper.*;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRecharge;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRechargeRecord;
 import com.qunzhixinxi.hnqz.admin.api.constant.enums.RechargeRecordPackageType;
 import com.qunzhixinxi.hnqz.admin.api.constant.enums.RechargeRecordType;
+import com.qunzhixinxi.hnqz.admin.mapper.SysDeptMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRechargeMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRechargeRecordMapper;
-import com.qunzhixinxi.hnqz.admin.service.*;
+import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRelationMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.SysUserMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmReportMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmScoreTaskTypeMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskTypeMapper;
+import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
+import com.qunzhixinxi.hnqz.admin.service.SysDictItemService;
+import com.qunzhixinxi.hnqz.admin.service.WmDaAgentService;
+import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntDrugtableService;
+import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntService;
+import com.qunzhixinxi.hnqz.admin.service.WmPkgQuizRelationService;
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
+import com.qunzhixinxi.hnqz.admin.service.WmTeamService;
 import com.qunzhixinxi.hnqz.common.core.exception.BizException;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.data.datascope.DataScope;
@@ -69,7 +95,15 @@ import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
 import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Function;
@@ -334,26 +368,29 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
     }
 
     @Override
-    public R updateByIdWithType(WmScorePackageVO wmScorePackageVO) {
+    public Boolean updateByIdWithType(WmScorePackageVO wmScorePackageVO) {
         WmScorePackage wmScorePackage = new WmScorePackage();
 
         wmScorePackage.setId(wmScorePackageVO.getId());
         if ("3".equals(wmScorePackageVO.getFormType())) {
+
             wmScorePackage.setInvoiceCategory(wmScorePackageVO.getInvoiceCategory());
+
         } else if ("1".equals(wmScorePackageVO.getFormType())) {
-            BigDecimal settleAmount = wmScorePackageVO.getScore()
-                    .multiply(wmScorePackageVO.getDiscount()).setScale(2, BigDecimal.ROUND_HALF_UP);
+
+            BigDecimal settleAmount = wmScorePackageVO.getScore().multiply(wmScorePackageVO.getDiscount()).setScale(2, RoundingMode.HALF_UP);
             wmScorePackage.setDiscount(wmScorePackageVO.getDiscount());
             wmScorePackage.setSettleAmount(settleAmount);
+
         } else if ("2".equals(wmScorePackageVO.getFormType())) {
-            BigDecimal discount = wmScorePackageVO.getSettleAmount()
-                    .divide(wmScorePackageVO.getScore(), 2, BigDecimal.ROUND_HALF_UP);
+
+            BigDecimal discount = wmScorePackageVO.getSettleAmount().divide(wmScorePackageVO.getScore(), 2, RoundingMode.HALF_UP);
             wmScorePackage.setDiscount(discount);
             wmScorePackage.setSettleAmount(wmScorePackageVO.getSettleAmount());
         }
 
         wmScorePackageMapper.updateById(wmScorePackage);
-        return R.ok();
+        return Boolean.TRUE;
     }
 
     @Override
@@ -363,7 +400,6 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 
     @Override
     public List<WmScorePackage> selectLists(WmScorePackage wmScorePackage) {
-        wmScorePackage.getRelationScoreId();
         return wmScorePackageMapper.selectLists(wmScorePackage);
     }
 
@@ -373,30 +409,30 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
         List<WmScorePackage> wmScorePackageList = wmScorePackageMapper.selectLists(wmScorePackage);
         Map<String, Object> totalMap = new HashMap<>();
         List<Integer> list = new ArrayList<>();
-        if (wmScorePackageList.size() > 0) {
-            List<String> ids2 = wmScorePackageList.stream().map(p -> p.getId()).collect(Collectors.toList());
+        if (CollUtil.isNotEmpty(wmScorePackageList)) {
+            List<String> ids2 = wmScorePackageList.stream().map(WmScorePackage::getId).collect(Collectors.toList());
             for (String id : ids2) {
                 WmScorePackage wmScorePackage2 = new WmScorePackage();
                 wmScorePackage2.setRelationScoreId(id);
                 List<WmScorePackage> wmScorePackageList2 = wmScorePackageMapper.selectLists(wmScorePackage2);
-                List<String> ids4 = wmScorePackageList2.stream().map(p -> p.getId()).collect(Collectors.toList());
-                if (wmScorePackageList2.size() > 0) {
+                List<String> ids4 = wmScorePackageList2.stream().map(WmScorePackage::getId).collect(Collectors.toList());
+                if (CollUtil.isNotEmpty(wmScorePackageList2)) {
                     for (String id2 : ids4) {
                         WmScorePackage wmScorePackage1 = new WmScorePackage();
                         wmScorePackage1.setId(id2);
                         wmScorePackage1.setSettleStatus(1);
                         List<Map<String, Object>> wmScorePackageList1 = wmScorePackageMapper.selectListById(wmScorePackage1);
-                        if (wmScorePackageList1.size() > 0) {
-                            Integer total = 0;
-                            Integer total1 = 0;
+                        if (CollUtil.isNotEmpty(wmScorePackageList1)) {
+                            int total = 0;
+                            int total1 = 0;
                             for (Map<String, Object> map : wmScorePackageList1) {
                                 if (null != map.get("score")) {
-                                    total += Integer.parseInt(map.get("score") + "");
+                                    total += Integer.parseInt(map.get("score").toString());
                                 }
                                 list.add(total);
                             }
-                            for (int i = 0; i < list.size(); i++) {
-                                total1 += list.get(i);
+                            for (Integer integer : list) {
+                                total1 += integer;
                             }
                             totalMap.put("score", total1);
                         }
@@ -406,38 +442,38 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
                 wmScorePackage1.setId(id);
                 wmScorePackage1.setSettleStatus(1);
                 List<Map<String, Object>> wmScorePackageList1 = wmScorePackageMapper.selectListById(wmScorePackage1);
-                if (wmScorePackageList1.size() > 0) {
-                    Integer total = 0;
-                    Integer total1 = 0;
+                if (CollUtil.isNotEmpty(wmScorePackageList1)) {
+                    int total = 0;
+                    int total1 = 0;
                     for (Map<String, Object> map : wmScorePackageList1) {
                         if (null != map.get("score")) {
-                            total += Integer.parseInt(map.get("score") + "");
+                            total += Integer.parseInt(map.get("score").toString());
                         }
                         list.add(total);
                     }
-                    for (int i = 0; i < list.size(); i++) {
-                        total1 += list.get(i);
+                    for (Integer integer : list) {
+                        total1 += integer;
                     }
                     totalMap.put("score", total1);
                 }
             }
-        } else if (wmScorePackageList.size() == 0) {
+        } else if (CollUtil.isEmpty(wmScorePackageList)) {
             WmScorePackage wmScorePackage1 = new WmScorePackage();
             wmScorePackage1.setId(wmScorePackage.getId());
             wmScorePackage1.setSettleStatus(1);
             List<Map<String, Object>> wmScorePackageList1 = wmScorePackageMapper.selectListById(wmScorePackage1);
-            if (wmScorePackageList1.size() > 0) {
-                Integer total = 0;
-                Integer total1 = 0;
+            if (CollUtil.isNotEmpty(wmScorePackageList1)) {
+                int total = 0;
+                int total1 = 0;
 
                 for (Map<String, Object> map : wmScorePackageList1) {
                     if (null != map.get("score")) {
-                        total += Integer.parseInt(map.get("score") + "");
+                        total += Integer.parseInt(map.get("score").toString());
                     }
                     list.add(total);
                 }
-                for (int i = 0; i < list.size(); i++) {
-                    total1 += list.get(i);
+                for (Integer integer : list) {
+                    total1 += integer;
                 }
                 totalMap.put("score", total1);
 
@@ -452,7 +488,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
         SysDeptRelation sysDeptRelation = new SysDeptRelation();
         sysDeptRelation.setDescendant(SecurityUtils.getUser().getDeptId());
         List<SysDeptRelation> sysDeptRelationList = sysDeptRelationMapper.selectByDescendantList(sysDeptRelation);
-        List<Integer> ids = sysDeptRelationList.stream().map(p -> p.getAncestor()).collect(Collectors.toList());
+        List<Integer> ids = sysDeptRelationList.stream().map(SysDeptRelation::getAncestor).collect(Collectors.toList());
         List<SysDept> list = new ArrayList<>();
         for (Integer id : ids) {
             SysDept sysDept = sysDeptService.getById(id);
@@ -502,7 +538,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
     }
 
     @Override
-    public IPage<WmScorePackage> selectWmScorePackageLists(Page page, WmScorePackage wmScorePackage) {
+    public Page<WmScorePackage> selectWmScorePackageLists(Page<WmScorePackage> page, WmScorePackage wmScorePackage) {
         OrderItem orderItem = new OrderItem();
         orderItem.setColumn("create_time");
         orderItem.setAsc(false);
@@ -1564,7 +1600,7 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
                 .equals("-1")) {
             WmScorePackage wmScorePackage1 = new WmScorePackage();
             wmScorePackage1.setId(wmScorePackage.getRelationScoreId());
-            Integer kfpjf = 0;
+            Integer kfpjf;
 
             List<WmScorePackage> scorePackagekfpjf = this.getScorePackagekfpjf(null, null, new String[]{"0", "1", "2"},
                     new String[]{wmScorePackage.getRelationScoreId()});

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

@@ -59,8 +59,8 @@
         (dmgeo.st_distance(dmgeo.st_pointfromtext(CONCAT('point(',s.longitude,' ', s.latitude,')'),0),
         dmgeo.st_pointfromtext('point(#{query.longitude} #{query.latitude})',0)) / 0.0111) AS distance
         FROM wm_da_hospital s
-        WHERE s.longitude IS NOT NULL
-        AND s.latitude IS NOT NULL
+        WHERE (s.longitude IS NOT NULL and TRIM(s.longitude) != '')
+        AND (s.latitude IS NOT NULL and TRIM(s.latitude) != '')
         AND s.del_flag = 0
         AND s.enable_flag = 0) temp
         WHERE distance &lt;= 1

+ 14 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmDaPharmacyMapper.xml

@@ -43,4 +43,18 @@
 		        &lt;= (SELECT value from sys_dict_item WHERE type='point_jwd' limit 1) / 1000
 		ORDER BY distance asc
 	</select>
+
+    <select id="listByPointForDM" resultMap="wmDaPharmacyMap">
+        SELECT * from (
+        SELECT s.*,
+        (dmgeo.st_distance(dmgeo.st_pointfromtext(CONCAT('point(',s.longitude,' ', s.latitude,')'),0),
+        dmgeo.st_pointfromtext('point(#{query.longitude} #{query.latitude})',0)) / 0.0111) AS distance
+        FROM wm_da_pharmacy s
+        WHERE (s.longitude IS NOT NULL and TRIM(s.longitude) != '')
+        AND (s.latitude IS NOT NULL and TRIM(s.latitude) != '')
+        AND s.del_flag = 0
+        AND s.enable_flag = 0) temp
+        WHERE distance &lt;= 1
+        ORDER BY distance ASC;
+    </select>
 </mapper>