linwe
2024-05-24 2a934daeb805d64a60100eb6697c32cb7a50aedb
src/main/java/org/springblade/modules/place/service/impl/PlacePractitionerServiceImpl.java
@@ -16,14 +16,25 @@
 */
package org.springblade.modules.place.service.impl;
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.vo.PlacePractitionerVO;
import org.springblade.modules.place.excel.ImportPractitionerExcel;
import org.springblade.modules.place.mapper.PlacePractitionerMapper;
import org.springblade.modules.place.service.IPlacePractitionerService;
import org.springblade.core.mp.base.BaseServiceImpl;
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 com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.*;
/**
 * 场所从业人员 服务实现类
@@ -34,10 +45,89 @@
@Service
public class PlacePractitionerServiceImpl extends ServiceImpl<PlacePractitionerMapper, PlacePractitionerEntity> implements IPlacePractitionerService {
   @Autowired
   private IPlaceService placeService;
   @Override
   public IPage<PlacePractitionerVO> selectPlacePractitionerPage(IPage<PlacePractitionerVO> page, PlacePractitionerVO placePractitioner) {
      return page.setRecords(baseMapper.selectPlacePractitionerPage(page, placePractitioner));
      CommonParamSet commonParamSet = new CommonParamSet().invoke(PlacePractitionerVO.class, placePractitioner);
      List<PlacePractitionerVO> placePractitionerVOS = baseMapper.selectPlacePractitionerPage(page, placePractitioner, commonParamSet.getGridCodeList(),
         commonParamSet.getRegionChildCodesList(),
         commonParamSet.getIsAdministrator());
      return page.setRecords(placePractitionerVOS);
   }
   /**
    * 统计少数民族和未成年数量
    *
    * @return
    */
   @Override
   public Object countByType(PlacePractitionerVO placePractitioner) {
      // 未成年数量
      placePractitioner.setType(CommonConstant.NUMBER_ONE);
      Integer minors = baseMapper.selectPlaceCountByType(placePractitioner);
      // 少数民族
      placePractitioner.setType(CommonConstant.NUMBER_TWO);
      Integer nationalMinority = baseMapper.selectPlaceCountByType(placePractitioner);
      Map<String, Integer> resultMap = new HashMap<>();
      resultMap.put("minors", minors);
      resultMap.put("nationalMinority", nationalMinority);
      return resultMap;
   }
   @Override
   public Boolean auditing(PlacePractitionerEntity placePractitioner) {
      placePractitioner.setConfirmUserId(AuthUtil.getUserId());
      placePractitioner.setConfirmTime(new Date());
      boolean update = update(Wrappers.<PlacePractitionerEntity>lambdaUpdate()
         .set(PlacePractitionerEntity::getConfirmFlag, placePractitioner.getConfirmFlag())
         .set(PlacePractitionerEntity::getConfirmNotion, placePractitioner.getConfirmNotion())
         .set(PlacePractitionerEntity::getConfirmUserId, placePractitioner.getConfirmUserId())
         .eq(PlacePractitionerEntity::getPlaceId, placePractitioner.getPlaceId())
         .eq(PlacePractitionerEntity::getResignationFlag, 1)
         .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();
   }
}