Эх сурвалжийг харах

feat: 商业公司批量导入TODO

lixuesong 1 жил өмнө
parent
commit
3ff2e5e9a0

+ 43 - 6
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaDistributionController.java

@@ -17,26 +17,27 @@
 
 package com.qunzhixinxi.hnqz.admin.controller;
 
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.pig4cloud.plugin.excel.annotation.RequestExcel;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDistribution;
 import com.qunzhixinxi.hnqz.admin.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
+import com.qunzhixinxi.hnqz.admin.entity.model.excel.BatchDistributionExcelModel;
 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.WmTaskContentService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
-import com.qunzhixinxi.hnqz.admin.util.MapUtil;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -50,6 +51,7 @@ 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;
 
@@ -60,6 +62,7 @@ import java.util.Map;
  * @author gaoyanng
  * @date 2020-06-25 23:35:42
  */
+@Slf4j
 @RestController
 @AllArgsConstructor
 @RequestMapping("/wmdadistribution")
@@ -68,8 +71,6 @@ public class WmDaDistributionController {
 
 	private final WmDaDistributionService wmDaDistributionService;
 
-	private final WmDaHospitalService wmDaHospitalService;
-
 	private final WmTaskService wmTaskService;
 
 	private final WmTaskContentService wmTaskContentService;
@@ -326,4 +327,40 @@ public class WmDaDistributionController {
 		return wmDaDistributionService.updateByApproval(map);
 
 	}
+
+	/**
+	 * 商业公司批量导入 TODO
+	 *
+	 * @param excelModelList 药店列表
+	 * @return {@link R}<{@link ?}> 结果
+	 */
+	@SysLog("商业公司批量导入")
+	@PostMapping(value = "/batch")
+	public R<?> batchImport(@RequestExcel List<BatchDistributionExcelModel> excelModelList) {
+		// 参数校验
+		if (CollectionUtils.isEmpty(excelModelList)) {
+			log.error("空报表,不能上传");
+			return R.failed("空报表,不能上传");
+		}
+
+//		// 实际的处理业务
+//		Map<String, String> errorMap = wmDaDistributionService.batchByExcel(excelModelList);
+//
+//		// 返回上传结果
+//		Map<String, Object> result = new HashMap<>(3);
+//		if (CollectionUtil.isEmpty(errorMap)) {
+//			result.put("code", "SUCCESS");
+//			result.put("message", "上传成功");
+//			result.put("data", null);
+//			return R.ok(result);
+//		} else {
+//			log.error("上传数据错误,{}", JSONUtil.toJsonStr(errorMap));
+//			result.put("code", "FAILURE");
+//			result.put("message", "上传数据错误");
+//			result.put("data", errorMap);
+//			return R.failed(result);
+//		}
+
+		return R.ok();
+	}
 }

+ 8 - 5
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaHospitalController.java

@@ -19,8 +19,6 @@ package com.qunzhixinxi.hnqz.admin.controller;
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.json.JSONUtil;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -29,11 +27,9 @@ import com.qunzhixinxi.hnqz.admin.entity.WmDaHospital;
 import com.qunzhixinxi.hnqz.admin.entity.WmTask;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
 import com.qunzhixinxi.hnqz.admin.entity.model.excel.BatchHospitalExcelModel;
-import com.qunzhixinxi.hnqz.admin.entity.model.excel.BatchPharmacyExcelModel;
 import com.qunzhixinxi.hnqz.admin.service.WmDaHospitalService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskContentService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
-import com.qunzhixinxi.hnqz.admin.util.MapUtil;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import io.swagger.annotations.Api;
@@ -43,7 +39,14 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+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;

+ 15 - 10
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaPharmacyController.java

@@ -17,35 +17,40 @@
 
 package com.qunzhixinxi.hnqz.admin.controller;
 
-import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.pig4cloud.plugin.excel.annotation.RequestExcel;
-import com.qunzhixinxi.hnqz.admin.entity.*;
-import com.qunzhixinxi.hnqz.admin.entity.dto.CommonUserDTO;
+import com.qunzhixinxi.hnqz.admin.entity.WmDaPharmacy;
+import com.qunzhixinxi.hnqz.admin.entity.WmTask;
+import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
 import com.qunzhixinxi.hnqz.admin.entity.model.excel.BatchPharmacyExcelModel;
-import com.qunzhixinxi.hnqz.admin.entity.model.excel.CommonUserExcelModel;
+import com.qunzhixinxi.hnqz.admin.service.WmDaPharmacyService;
 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.admin.service.WmDaPharmacyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
 
 
 /**

+ 2 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmDaDistribution.java

@@ -19,6 +19,7 @@ package com.qunzhixinxi.hnqz.admin.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 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 io.swagger.annotations.ApiModel;
@@ -175,6 +176,7 @@ public class WmDaDistribution extends Model<WmDaDistribution> {
 	/**
 	 * 是否删除
 	 */
+	@TableLogic
 	@ApiModelProperty(value = "是否删除")
 	private Integer delFlag;
 	/**

+ 2 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmDaHospital.java

@@ -18,6 +18,7 @@
 package com.qunzhixinxi.hnqz.admin.entity;
 
 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 io.swagger.annotations.ApiModel;
@@ -188,6 +189,7 @@ private static final long serialVersionUID = 1L;
     /**
      * 是否删除
      */
+	@TableLogic
     @ApiModelProperty(value="是否删除")
     private String delFlag;
     /**

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

@@ -18,6 +18,7 @@
 package com.qunzhixinxi.hnqz.admin.entity;
 
 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 io.swagger.annotations.ApiModel;
@@ -89,6 +90,7 @@ private static final long serialVersionUID = 1L;
     /**
      * 是否删除
      */
+	@TableLogic
     @ApiModelProperty(value="是否删除")
     private String delFlag;
     /**

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

@@ -0,0 +1,35 @@
+package com.qunzhixinxi.hnqz.admin.entity.model.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 商业公司excel批量导入model
+ *
+ * @author lixuesong
+ * @date 2023/11/01
+ */
+@Data
+public class BatchDistributionExcelModel implements Serializable {
+	private static final long serialVersionUID = 7791901612996151931L;
+
+	/**
+	 * 行编号
+	 */
+	@ExcelProperty(index = 0)
+	private String number;
+
+	/**
+     * 名称
+	 */
+	@ExcelProperty(index = 1)
+	private String name;
+
+    /**
+     * 地址
+	 */
+	@ExcelProperty(index = 2)
+	private String address;
+}

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

@@ -53,6 +53,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 档案-药店
@@ -462,6 +463,20 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 
 		log.info("开始校验数据:{}", excelModelList);
 		// 业务值校验
+//		Map<String, List<BatchPharmacyExcelModel>> nameMap = excelModelList.stream()
+//				.filter(excelModel -> StrUtil.isNotBlank(excelModel.getName()))
+//				.collect(Collectors.groupingBy(BatchPharmacyExcelModel::getName));
+//		if (CollUtil.isEmpty(nameMap)) {
+//			log.error("数据为空");
+//			errorMap(errorMap, "数据为空", "");
+//			return errorMap;
+//		}
+//		if (nameMap.values().stream().anyMatch(modelList -> modelList.size() > 1)) {
+//			log.error("数据重复");
+//			errorMap(errorMap, "数据重复", "");
+//			return errorMap;
+//		}
+
 		for (BatchPharmacyExcelModel excelModel : excelModelList) {
 			WmDaPharmacy pharmacy = new WmDaPharmacy();
 			// 校验名称
@@ -506,7 +521,7 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 
 		// 上传结果
 		if (CollUtil.isEmpty(errorMap)) {
-			currentList.forEach(this::save);
+			this.saveBatch(currentList);
 		}
 
 		return errorMap;