| src/main/java/org/springblade/modules/eCallEventTwo/entity/ECallEventTwoEntity.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/place/controller/PlacePractitionerController.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/place/excel/ImportPractitionerExcel.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/place/excel/PractitionerExcel.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/place/service/IPlacePractitionerService.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/org/springblade/modules/place/service/impl/PlacePractitionerServiceImpl.java | ●●●●● patch | view | raw | blame | history |
src/main/java/org/springblade/modules/eCallEventTwo/entity/ECallEventTwoEntity.java
@@ -261,6 +261,10 @@ @TableField("tag_redo") private String tagRedo; @ApiModelProperty(value = "定位地址", example = "") @TableField("location") private String location; @ApiModelProperty(value = "创建人", example = "") @TableField("create_user_id") private Long createUserId; src/main/java/org/springblade/modules/place/controller/PlacePractitionerController.java
@@ -16,33 +16,36 @@ */ package org.springblade.modules.place.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import lombok.AllArgsConstructor; import javax.validation.Valid; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.log.annotation.ApiLog; import org.springblade.core.log.logger.BladeLogger; import org.springblade.core.secure.BladeUser; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.jackson.JsonUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.modules.place.entity.PlacePractitionerEntity; import org.springblade.modules.place.excel.ImportPractitionerExcel; import org.springblade.modules.place.excel.PractitionerExcel; import org.springblade.modules.place.service.IPlacePractitionerService; import org.springblade.modules.place.vo.PlacePractitionerVO; import org.springblade.modules.place.wrapper.PlacePractitionerWrapper; import org.springblade.modules.place.service.IPlacePractitionerService; import org.springblade.core.boot.ctrl.BladeController; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.Date; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; /** * 场所从业人员 控制器 @@ -55,6 +58,9 @@ @RequestMapping("blade-placePractitioner/placePractitioner") @Api(value = "场所从业人员", tags = "场所从业人员接口") public class PlacePractitionerController { private static Logger logger = LoggerFactory.getLogger(PlacePractitionerController.class); private final IPlacePractitionerService placePractitionerService; private final BladeLogger bladeLogger; @@ -160,5 +166,35 @@ return R.data(placePractitionerService.countByType(placePractitioner)); } /** * 导入场所数据 */ @PostMapping("/import-practitioner") public R importPractitioner(MultipartFile file, @RequestParam(value = "isCovered",defaultValue = "0") Integer isCovered) { bladeLogger.info("从业人员信息批量导入", JsonUtil.toJson(isCovered)); String data = null; try { List<ImportPractitionerExcel> read = ExcelUtil.read(file, ImportPractitionerExcel.class); data = placePractitionerService.importPractitioner(read, isCovered == 1); } catch (Exception e) { logger.error("导入失败!", e); } return R.data(200, data, ""); } /** * 导出模板 */ @GetMapping("export-practitioner-template") @ApiOperationSupport(order = 13) @ApiLog("从业人员导出模板") @ApiOperation(value = "从业人员导出模板", notes = "传入place") public void exportPractitionerTemplate(HttpServletResponse response) { List<PractitionerExcel> list = new ArrayList<>(); PractitionerExcel importPlaceExcel = new PractitionerExcel(); list.add(importPlaceExcel); ExcelUtil.export(response, "从业人员数据" + DateUtil.time(), "从业人员数据表", list, PractitionerExcel.class); } } src/main/java/org/springblade/modules/place/excel/ImportPractitionerExcel.java
New file @@ -0,0 +1,95 @@ package org.springblade.modules.place.excel; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import lombok.Data; import org.springblade.common.excel.ExcelDictConverter; import org.springblade.common.excel.ExcelDictItem; import org.springblade.common.excel.ExcelDictItemLabel; import java.io.Serializable; /** * 场所从业人员 实体类 * * @author BladeX * @since 2023-10-28 */ @Data @ColumnWidth(25) @HeadRowHeight(20) @ContentRowHeight(18) public class ImportPractitionerExcel implements Serializable { private static final long serialVersionUID = 1L; /** * 场所ID */ @ExcelProperty("地址编码") private String houseCode; /** * 姓名 */ @ExcelProperty("姓名") private String name; /** * 电话 */ @ExcelProperty("电话") private String telephone; /** * 暂住地 */ @ExcelProperty("暂住地") private String tempAddress; /** * 身份证 */ @ExcelProperty("身份证") private String idCard; /** * 岗位 */ @ExcelProperty("岗位") private String jobNature; /** * 民族 */ @ColumnWidth(15) @ExcelProperty(value = "民族", converter = ExcelDictConverter.class) @ExcelDictItemLabel(type = "nationType") @ExcelDictItem(type = "nationType") private String ethnicity; /** * 入职时间 */ // @ExcelProperty("入职时间") // @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") // @DateTimeFormat("yyyy-MM-dd") // private String employmentTime; /** * 离职时间 */ // @ExcelProperty("离职时间") // @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") // @DateTimeFormat("yyyy-MM-dd") // private String resignationTime; /** * 是离职 1:否 2:是 */ @ExcelProperty("是离职 1:否 2:是") private String resignationFlag; } src/main/java/org/springblade/modules/place/excel/PractitionerExcel.java
New file @@ -0,0 +1,106 @@ package org.springblade.modules.place.excel; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.format.DateTimeFormat; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import lombok.Data; import org.springblade.common.excel.ExcelDictConverter; import org.springblade.common.excel.ExcelDictItem; import org.springblade.common.excel.ExcelDictItemLabel; import java.io.Serializable; import java.util.Date; /** * 场所从业人员 实体类 * * @author BladeX * @since 2023-10-28 */ @Data @ColumnWidth(25) @HeadRowHeight(20) @ContentRowHeight(18) public class PractitionerExcel implements Serializable { private static final long serialVersionUID = 1L; /** * 场所ID */ @ColumnWidth(15) @ExcelProperty(value = "地址编码") private String houseCode; /** * 姓名 */ @ColumnWidth(15) @ExcelProperty(value = "姓名") private String name; /** * 电话 */ @ColumnWidth(15) @ExcelProperty(value = "电话") private String telephone; /** * 暂住地 */ @ColumnWidth(15) @ExcelProperty(value = "暂住地") private String tempAddress; /** * 身份证 */ @ColumnWidth(15) @ExcelProperty(value = "身份证") private String idCard; /** * 岗位 */ @ExcelProperty(value = "岗位") private String jobNature; /** * 民族 */ @ColumnWidth(15) @ExcelProperty(value = "民族", converter = ExcelDictConverter.class) @ExcelDictItemLabel(type = "nationType") @ExcelDictItem(type = "nationType") private String ethnicity; /** * 入职时间 */ // @ColumnWidth(15) // @ExcelProperty(value = "入职时间") // @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") // @DateTimeFormat("yyyy-MM-dd") // private String employmentTime; /** * 离职时间 */ // @ColumnWidth(15) // @ExcelProperty(value = "离职时间") // @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") // @DateTimeFormat("yyyy-MM-dd") // private String resignationTime; /** * 是离职 1:否 2:是 */ @ColumnWidth(15) @ExcelProperty(value = "是离职 1:否 2:是") private String resignationFlag; } src/main/java/org/springblade/modules/place/service/IPlacePractitionerService.java
@@ -18,9 +18,12 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.modules.place.entity.PlacePractitionerEntity; import org.springblade.modules.place.excel.ImportPractitionerExcel; import org.springblade.modules.place.vo.PlacePractitionerVO; import org.springblade.core.mp.base.BaseService; import com.baomidou.mybatisplus.core.metadata.IPage; import java.util.List; /** * 场所从业人员 服务类 @@ -48,4 +51,6 @@ * @return */ Boolean auditing(PlacePractitionerEntity placePractitioner); String importPractitioner(List<ImportPractitionerExcel> read, boolean b); } src/main/java/org/springblade/modules/place/service/impl/PlacePractitionerServiceImpl.java
@@ -19,19 +19,22 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.logging.log4j.util.Strings; import org.springblade.common.constant.CommonConstant; import org.springblade.common.param.CommonParamSet; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.modules.place.entity.PlaceEntity; import org.springblade.modules.place.entity.PlacePractitionerEntity; import org.springblade.modules.place.excel.ImportPractitionerExcel; import org.springblade.modules.place.mapper.PlacePractitionerMapper; import org.springblade.modules.place.service.IPlacePractitionerService; import org.springblade.modules.place.service.IPlaceService; import org.springblade.modules.place.vo.PlacePractitionerVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; /** * 场所从业人员 服务实现类 @@ -41,6 +44,9 @@ */ @Service public class PlacePractitionerServiceImpl extends ServiceImpl<PlacePractitionerMapper, PlacePractitionerEntity> implements IPlacePractitionerService { @Autowired private IPlaceService placeService; @Override public IPage<PlacePractitionerVO> selectPlacePractitionerPage(IPage<PlacePractitionerVO> page, PlacePractitionerVO placePractitioner) { @@ -84,4 +90,44 @@ .eq(PlacePractitionerEntity::getIsDeleted,0)); return update; } @Override public String importPractitioner(List<ImportPractitionerExcel> data, boolean b) { int totalNum = data.size(); int importNum = 0; int updateNum = 0; int errorNum = 0; for (ImportPractitionerExcel placeExcel : data) { if (Strings.isBlank(placeExcel.getHouseCode()) || Strings.isBlank(placeExcel.getHouseCode())) { errorNum++; continue; } PlacePractitionerEntity placeEntity = Objects.requireNonNull(BeanUtil.copy(placeExcel, PlacePractitionerEntity.class)); // 查询场所是否存在 PlaceEntity placeServiceOne = placeService.getOne(Wrappers.<PlaceEntity>lambdaQuery() .eq(PlaceEntity::getHouseCode, placeExcel.getHouseCode())); if (placeServiceOne != null) { placeEntity.setPlaceId(placeServiceOne.getId()); boolean save = save(placeEntity); if (save) { importNum++; } else { errorNum++; } } else { errorNum++; continue; } } StringBuilder builder = new StringBuilder("导入完成!"); builder.append("其中本次表格共有 ").append(totalNum).append(" 条数据,") .append("成功导入 ").append(importNum).append(" 条数据。"); if (updateNum > 0) { builder.append("其中有 ").append(updateNum).append(" 条数据已存在。"); } if (errorNum > 0) { builder.append("共有 ").append(errorNum).append(" 条数据由于无企业(店铺)名称信息或无地址编号未导入!"); } return builder.toString(); } }