一企一档

main
liuyiliang 4 months ago
parent 342bb58548
commit 3986555366
  1. 3
      ccic-exam/src/main/java/com/ccic/safeliab/dao/ExamScouresMapper.java
  2. 27
      ccic-exam/src/main/java/com/ccic/safeliab/dao/ServiceStatMapper.java
  3. 13
      ccic-exam/src/main/java/com/ccic/safeliab/service/ExamScouresService.java
  4. 16
      ccic-exam/src/main/java/com/ccic/safeliab/service/ExamScouresServiceImpl.java
  5. 15
      ccic-exam/src/main/java/com/ccic/safeliab/service/ExamServiceImpl.java
  6. 9
      ccic-exam/src/main/java/com/ccic/safeliab/service/StatisticsService.java
  7. 88
      ccic-exam/src/main/java/com/ccic/safeliab/service/StatisticsServiceImpl.java
  8. 2
      ccic-exam/src/main/java/com/ccic/safeliab/support/BaseService.java
  9. 44
      ccic-exam/src/main/java/com/ccic/safeliab/support/BaseServiceImpl.java
  10. 20
      ccic-exam/src/main/java/com/ccic/safeliab/vo/AccidentPreventionVO.java
  11. 3
      ccic-exam/src/main/java/com/ccic/safeliab/vo/CustomerVO.java
  12. 31
      ccic-exam/src/main/java/com/ccic/safeliab/vo/EnterpriseArchivesVO.java
  13. 18
      ccic-exam/src/main/java/com/ccic/safeliab/vo/HazardInvestigationVO.java
  14. 15
      ccic-exam/src/main/java/com/ccic/safeliab/vo/HiveClaimStatisticsVO.java
  15. 19
      ccic-exam/src/main/java/com/ccic/safeliab/vo/PolicyStatisticsVO.java
  16. 22
      ccic-exam/src/main/java/com/ccic/safeliab/vo/ServiceStatisticsVO.java
  17. 2
      ccic-exam/src/main/java/com/ccic/safeliab/vo/UserAnswersVO.java
  18. 31
      ccic-exam/src/main/java/com/ccic/safeliab/web/StatisticsController.java
  19. 17
      ccic-exam/src/main/resources/mappers/ExamScouresMapper.xml
  20. 219
      ccic-exam/src/main/resources/mappers/ServiceStatMapper.xml

@ -18,6 +18,7 @@ package com.ccic.safeliab.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ccic.safeliab.entity.ExExamScoures; import com.ccic.safeliab.entity.ExExamScoures;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/** /**
* Mapper 接口 * Mapper 接口
@ -27,4 +28,6 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface ExamScouresMapper extends BaseMapper<ExExamScoures> { public interface ExamScouresMapper extends BaseMapper<ExExamScoures> {
Integer getLeadValue(@Param("examId") Long examId, @Param("paperId") Long paperId, @Param("totalScore") Integer totalScore);
} }

@ -16,12 +16,14 @@
package com.ccic.safeliab.dao; package com.ccic.safeliab.dao;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ccic.safeliab.entity.*;
import com.ccic.safeliab.excel.ServiceStatExcel; import com.ccic.safeliab.excel.ServiceStatExcel;
import com.ccic.safeliab.vo.ServiceStatVO; import com.ccic.safeliab.vo.*;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* Mapper 接口 * Mapper 接口
@ -31,7 +33,30 @@ import java.util.List;
@Mapper @Mapper
public interface ServiceStatMapper { public interface ServiceStatMapper {
List<Customer> selectServiceCustomerPage(IPage page, @Param("customer") CustomerVO customerVO);
List<ServiceStatVO> selectPage(IPage page, @Param("policy") ServiceStatVO serviceStatVO); List<ServiceStatVO> selectPage(IPage page, @Param("policy") ServiceStatVO serviceStatVO);
List<ServiceStatExcel> selectExport(@Param("policy") ServiceStatVO serviceStatVO); List<ServiceStatExcel> selectExport(@Param("policy") ServiceStatVO serviceStatVO);
List<Organ> getOrganByParam(@Param("map") Map<String, Object> map);
EnterpriseArchivesVO getCustomerStatistics(@Param("customerId") Long customerId);
List<PolicyStatisticsVO> getPolicyStatistics(@Param("customerId") Long customerId);
List<HivePolicyCoverage> getHivePolicyCoverageStatistics(@Param("policyNumber") String policyNumber);
List<HivePolicyInnerCoInsurer> getHivePolicyInnerCoInsurerStatistics(@Param("policyNumber") String policyNumber);
List<HiveClaimStatisticsVO> getHiveClaimStatistics(@Param("customerId") Long customerId);
List<ServiceStatisticsVO> selectPolicyByService(@Param("customerId") Long customerId);
List<AccidentPreventionVO> getAccidentPreventionStatistics(@Param("customerId") Long customerId, @Param("policyNumber") String policyNumber);
List<Risk> getRiskStatistics(@Param("customerId") Long customerId, @Param("policyNumber") String policyNumber);
List<HazardInvestigationVO> getHazardInvestigationStatistics(@Param("customerId") Long customerId, @Param("policyNumber") String policyNumber);
} }

@ -0,0 +1,13 @@
package com.ccic.safeliab.service;
import com.ccic.safeliab.entity.ExExamScoures;
import com.ccic.safeliab.support.BaseService;
/**
* 服务类
*
* @author edwong
*/
public interface ExamScouresService extends BaseService<ExExamScoures> {
}

@ -0,0 +1,16 @@
package com.ccic.safeliab.service;
import com.ccic.safeliab.dao.ExamScouresMapper;
import com.ccic.safeliab.entity.ExExamScoures;
import com.ccic.safeliab.support.BaseServiceImpl;
import org.springframework.stereotype.Service;
/**
* 服务实现类
*
* @author edwong
*/
@Service
public class ExamScouresServiceImpl extends BaseServiceImpl<ExamScouresMapper, ExExamScoures> implements ExamScouresService {
}

@ -53,6 +53,9 @@ public class ExamServiceImpl implements ExamService {
@Autowired @Autowired
private AnswersService answersService; private AnswersService answersService;
@Autowired
private ExamScouresService examScouresService;
@Autowired @Autowired
private ExamScouresMapper examScouresMapper; private ExamScouresMapper examScouresMapper;
@ -90,12 +93,14 @@ public class ExamServiceImpl implements ExamService {
examPageDataVO.setTotalScore(examPapers.getTotalScore()); examPageDataVO.setTotalScore(examPapers.getTotalScore());
examPageDataVO.setExamDuration(examPapers.getExamDuration()); examPageDataVO.setExamDuration(examPapers.getExamDuration());
examPageDataVO.setPaperContent(examPapers.getPaperContent()); examPageDataVO.setPaperContent(examPapers.getPaperContent());
examPageDataVO.setQuestionCount(examPapers.getQuestionCount());
examPageDataVO.setQuestionCategoriesList(pageQuestionCategoriesList); examPageDataVO.setQuestionCategoriesList(pageQuestionCategoriesList);
return R.ok().data(examPageDataVO); return R.ok().data(examPageDataVO);
} }
@Override @Override
public R saveUserAnswers(UserAnswersVO userAnswersVO) { public R saveUserAnswers(UserAnswersVO userAnswersVO) {
userAnswersVO.setUserId(Long.parseLong("1"));
QueryWrapper<ExAnswers> answersQueryWrapper = new QueryWrapper<>(); QueryWrapper<ExAnswers> answersQueryWrapper = new QueryWrapper<>();
answersQueryWrapper.lambda().eq(ExAnswers::getUserId, userAnswersVO.getUserId()); answersQueryWrapper.lambda().eq(ExAnswers::getUserId, userAnswersVO.getUserId());
answersQueryWrapper.lambda().eq(ExAnswers::getExamId, userAnswersVO.getExamId()); answersQueryWrapper.lambda().eq(ExAnswers::getExamId, userAnswersVO.getExamId());
@ -112,6 +117,7 @@ public class ExamServiceImpl implements ExamService {
} }
exAnswers.setUserId(userAnswersVO.getUserId()); exAnswers.setUserId(userAnswersVO.getUserId());
exAnswers.setExamId(userAnswersVO.getExamId()); exAnswers.setExamId(userAnswersVO.getExamId());
exAnswers.setPaperId(userAnswersVO.getPaperId());
} }
} }
answersService.saveBatch(answersList); answersService.saveBatch(answersList);
@ -119,9 +125,9 @@ public class ExamServiceImpl implements ExamService {
examScouresQueryWrapper.lambda().eq(ExExamScoures::getUserId, userAnswersVO.getUserId()); examScouresQueryWrapper.lambda().eq(ExExamScoures::getUserId, userAnswersVO.getUserId());
examScouresQueryWrapper.lambda().eq(ExExamScoures::getExamId, userAnswersVO.getExamId()); examScouresQueryWrapper.lambda().eq(ExExamScoures::getExamId, userAnswersVO.getExamId());
examScouresQueryWrapper.lambda().eq(ExExamScoures::getPaperId, userAnswersVO.getPaperId()); examScouresQueryWrapper.lambda().eq(ExExamScoures::getPaperId, userAnswersVO.getPaperId());
Integer examScouresCount = examScouresMapper.selectCount(examScouresQueryWrapper); Integer examScouresCount = examScouresService.count(examScouresQueryWrapper);
if (examScouresCount > 0) { if (examScouresCount > 0) {
examScouresMapper.delete(examScouresQueryWrapper);// 清空历史记录 examScouresService.remove(examScouresQueryWrapper);// 清空历史记录
} }
ExExamScoures examScoures = new ExExamScoures(); ExExamScoures examScoures = new ExExamScoures();
examScoures.setUserId(userAnswersVO.getUserId()); examScoures.setUserId(userAnswersVO.getUserId());
@ -129,8 +135,9 @@ public class ExamServiceImpl implements ExamService {
examScoures.setExamId(userAnswersVO.getExamId()); examScoures.setExamId(userAnswersVO.getExamId());
examScoures.setTotalScore(totalScore); examScoures.setTotalScore(totalScore);
examScoures.setExamTimeSpent(userAnswersVO.getExamTimeSpent()); examScoures.setExamTimeSpent(userAnswersVO.getExamTimeSpent());
examScouresMapper.insert(examScoures); examScouresService.save(examScoures);
return R.ok().data(true); Integer leadValue = examScouresMapper.getLeadValue(userAnswersVO.getExamId(), userAnswersVO.getPaperId(), totalScore);
return R.ok().data(leadValue);
} }
} }

@ -18,11 +18,14 @@ package com.ccic.safeliab.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ccic.safeliab.entity.Customer; import com.ccic.safeliab.entity.Customer;
import com.ccic.safeliab.entity.Organ;
import com.ccic.safeliab.excel.ServiceStatExcel; import com.ccic.safeliab.excel.ServiceStatExcel;
import com.ccic.safeliab.vo.CustomerVO; import com.ccic.safeliab.vo.CustomerVO;
import com.ccic.safeliab.vo.EnterpriseArchivesVO;
import com.ccic.safeliab.vo.ServiceStatVO; import com.ccic.safeliab.vo.ServiceStatVO;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
@ -37,4 +40,10 @@ public interface StatisticsService {
IPage<ServiceStatVO> findServiceStatPage(ServiceStatVO serviceStatVO, int page, int num); IPage<ServiceStatVO> findServiceStatPage(ServiceStatVO serviceStatVO, int page, int num);
List<ServiceStatExcel> findServiceStatAll(ServiceStatVO serviceStatVO); List<ServiceStatExcel> findServiceStatAll(ServiceStatVO serviceStatVO);
List<Organ> getOrganByParam(Map<String, Object> param);
EnterpriseArchivesVO getEnterpriseArchives(Long customerId );
} }

@ -15,23 +15,19 @@
*/ */
package com.ccic.safeliab.service; package com.ccic.safeliab.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ccic.safeliab.dao.ServiceStatMapper; import com.ccic.safeliab.dao.ServiceStatMapper;
import com.ccic.safeliab.entity.Customer; import com.ccic.safeliab.entity.*;
import com.ccic.safeliab.entity.Device;
import com.ccic.safeliab.entity.User;
import com.ccic.safeliab.excel.ServiceStatExcel; import com.ccic.safeliab.excel.ServiceStatExcel;
import com.ccic.safeliab.support.Condition; import com.ccic.safeliab.exceptionhandler.CcicException;
import com.ccic.safeliab.util.CcicUtill; import com.ccic.safeliab.util.CcicUtill;
import com.ccic.safeliab.vo.CustomerRetentionVO; import com.ccic.safeliab.vo.*;
import com.ccic.safeliab.vo.CustomerVO;
import com.ccic.safeliab.vo.ServiceStatVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -44,33 +40,13 @@ import java.util.Map;
@Service @Service
public class StatisticsServiceImpl implements StatisticsService { public class StatisticsServiceImpl implements StatisticsService {
@Autowired
private ICustomerService customerService;
@Autowired @Autowired
private ServiceStatMapper serviceStatMapper; private ServiceStatMapper serviceStatMapper;
@Override @Override
public Page<Customer> findPage(CustomerVO customer, int page, int num) { public Page<Customer> findPage(CustomerVO customer, int page, int num) {
Page<Customer> iPage = new Page(customer.getPage(), customer.getNum()); Page<Customer> iPage = new Page(page, num);
QueryWrapper<Customer> wrapper = Condition.getQueryWrapper(customer); iPage.setRecords(serviceStatMapper.selectServiceCustomerPage(iPage, customer));
if (!StringUtils.isEmpty(customer.getKeyword())) {
// 客户名称与编号过滤
wrapper.lambda().like(Customer::getCustomerName, customer.getKeyword())
.or()
.like(Customer::getCustomerNo, customer.getKeyword());
}
if (!StringUtils.isEmpty(customer.getTypePid())) {
// 归属机构
wrapper.lambda().eq(Customer::getTypePid, customer.getTypePid());
}
if (!StringUtils.isEmpty(customer.getTypePid())) {
// 管理分类
wrapper.lambda().eq(Customer::getTypePid, customer.getTypePid());
}
wrapper.orderByDesc("changed_at");
wrapper.orderByDesc("customer_id");
customerService.page(iPage,wrapper);
return iPage; return iPage;
} }
@ -86,4 +62,56 @@ public class StatisticsServiceImpl implements StatisticsService {
return serviceStatMapper.selectExport(serviceStatVO); return serviceStatMapper.selectExport(serviceStatVO);
} }
@Override
public List<Organ> getOrganByParam(Map<String, Object> param) {
String organId = CcicUtill.checkStr(param.get("organId"));
if (StringUtils.isEmpty(organId)) {
throw new CcicException(500, "organId不能为空");
}
return serviceStatMapper.getOrganByParam(param);
}
@Override
public EnterpriseArchivesVO getEnterpriseArchives(Long customerId) {
// 获取企业档案
EnterpriseArchivesVO archives = serviceStatMapper.getCustomerStatistics(customerId);
// 保单记录
List<PolicyStatisticsVO> policyStatisticsList = serviceStatMapper.getPolicyStatistics(customerId);
if (policyStatisticsList != null && policyStatisticsList.size() > 0) {
for (PolicyStatisticsVO policyStatistics : policyStatisticsList) {
// 保单号
String policyNo = policyStatistics.getPolicyNumber();
// 责任条款
List<HivePolicyCoverage> hivePolicyCoverageList = serviceStatMapper.getHivePolicyCoverageStatistics(policyNo);
policyStatistics.setPolicyCoverageList(hivePolicyCoverageList);
// 联保信息
List<HivePolicyInnerCoInsurer> hivePolicyInnerCoInsurerList = serviceStatMapper.getHivePolicyInnerCoInsurerStatistics(policyNo);
policyStatistics.setHivePolicyInnerCoInsurerList(hivePolicyInnerCoInsurerList);
}
}
archives.setPolicyList(policyStatisticsList);
// 理赔记录
List<HiveClaimStatisticsVO> hiveClaimStatisticsList = serviceStatMapper.getHiveClaimStatistics(customerId);
archives.setHiveClaimStatisticsList(hiveClaimStatisticsList);
// 服务记录
List<ServiceStatisticsVO> serviceList = serviceStatMapper.selectPolicyByService(customerId);
if (serviceList != null && serviceList.size() > 0) {
for (ServiceStatisticsVO serviceStat : serviceList) {
// 事故预防服务
List<AccidentPreventionVO> accidentPreventionList = serviceStatMapper.getAccidentPreventionStatistics(customerId, serviceStat.getPolicyNumber());
serviceStat.setAccidentPreventionList(accidentPreventionList);
// 风险辨识
List<Risk> riskList = serviceStatMapper.getRiskStatistics(customerId, serviceStat.getPolicyNumber());
serviceStat.setRiskList(riskList);
// 隐患排查
List<HazardInvestigationVO> hazardInvestigationList = serviceStatMapper.getHazardInvestigationStatistics(customerId, serviceStat.getPolicyNumber());
serviceStat.setHazardInvestigationList(hazardInvestigationList);
}
}
archives.setServiceStatisticsList(serviceList);
return archives;
}
} }

@ -6,4 +6,6 @@ import java.util.List;
public interface BaseService<T> extends IService<T> { public interface BaseService<T> extends IService<T> {
boolean deleteLogic(List<Long> ids); boolean deleteLogic(List<Long> ids);
boolean saveBatch(List<T> list);
} }

@ -1,28 +1,33 @@
package com.ccic.safeliab.support; package com.ccic.safeliab.support;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ccic.safeliab.entity.BaseEntity; import com.ccic.safeliab.entity.BaseEntity;
import com.ccic.safeliab.entity.Customer; import com.ccic.safeliab.entity.Customer;
import com.ccic.safeliab.util.JwtUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.util.Collection; import javax.servlet.http.HttpServletRequest;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@Validated @Validated
public class BaseServiceImpl<M extends BaseMapper<T>, T extends BaseEntity> extends ServiceImpl<M, T> implements BaseService<T> { public class BaseServiceImpl<M extends BaseMapper<T>, T extends BaseEntity> extends ServiceImpl<M, T> implements BaseService<T> {
@Autowired
public HttpServletRequest request;
public BaseServiceImpl() { public BaseServiceImpl() {
} }
public boolean save(T entity) { public boolean save(T entity) {
Customer user = new Customer();
user.setCustomerId(Long.parseLong("3009473735814009")); String id = JwtUtils.getMemberIdByJwtToken(request, "id");
if (user != null) { if (StringUtils.isNotEmpty(id)) {
entity.setCreatedBy(user.getCustomerId()); entity.setCreatedBy(Long.parseLong(id));
entity.setUpdatedBy(user.getCustomerId()); entity.setUpdatedBy(Long.parseLong(id));
} }
Date now = new Date(); Date now = new Date();
@ -50,4 +55,27 @@ public class BaseServiceImpl<M extends BaseMapper<T>, T extends BaseEntity> exte
return baseMapper.deleteBatchIds(ids) > 0; return baseMapper.deleteBatchIds(ids) > 0;
} }
@Override
public boolean saveBatch(List<T> list) {
if (list == null || list.isEmpty()) {
return false;
}
String id = JwtUtils.getMemberIdByJwtToken(request, "id");
Date now = new Date();
for (T entity : list) {
if (entity != null) {
entity.setCreatedBy(Long.parseLong(id));
entity.setUpdatedBy(Long.parseLong(id));
entity.setCreatedAt(now);
entity.setUpdatedAt(now);
if (entity.getStatus() == null) {
entity.setStatus(1);
}
entity.setIsDeleted(0);
}
}
return super.saveBatch(list);
}
} }

@ -0,0 +1,20 @@
package com.ccic.safeliab.vo;
import lombok.Data;
@Data
public class AccidentPreventionVO {
private String completedAt;
private String serviceName;
private String serviceObjectName;
private String serviceRange;
private String executedOrganName;
private String uploadStatus;
}

@ -8,7 +8,6 @@ public class CustomerVO extends Customer {
private String keyword; private String keyword;
private Integer page; private String insuranceId;
private Integer num;
} }

@ -0,0 +1,31 @@
package com.ccic.safeliab.vo;
import lombok.Data;
import java.util.List;
@Data
public class EnterpriseArchivesVO {
// 企业基本信息
private String customerNo;
private String typeName;
private String socialCreditCode;
private String legalPerson;
private String contacts;
private String email;
private String contactsPhone;
private String typePname;
private String businessScope;
private String orgRegistrationAddress;
// 保单记录
private List<PolicyStatisticsVO> policyList;
// 理赔记录
private List<HiveClaimStatisticsVO> hiveClaimStatisticsList;
// 服务记录
private List<ServiceStatisticsVO> serviceStatisticsList;
}

@ -0,0 +1,18 @@
package com.ccic.safeliab.vo;
import lombok.Data;
@Data
public class HazardInvestigationVO {
private String hiddenNumber;
private String description;
// 隐患类型
private String hiddenDangerType;
private String dangerTypeName;
private String riskGrade;
private String discoveredAt;
// 整改状态
private String correctionStatus;
}

@ -0,0 +1,15 @@
package com.ccic.safeliab.vo;
import com.ccic.safeliab.entity.HiveClaim;
import lombok.Data;
@Data
public class HiveClaimStatisticsVO extends HiveClaim {
// // 定损信息
// private List<HiveClaim> lossAssessmentList;
//
// // 陪付信息
// private List<HiveClaim> accompanyPaymentList;
}

@ -0,0 +1,19 @@
package com.ccic.safeliab.vo;
import com.ccic.safeliab.entity.HivePolicyCoverage;
import com.ccic.safeliab.entity.HivePolicyInnerCoInsurer;
import com.ccic.safeliab.entity.Policy;
import lombok.Data;
import java.util.List;
@Data
public class PolicyStatisticsVO extends Policy {
// 责任条款
private List<HivePolicyCoverage> policyCoverageList;
// 联保信息
private List<HivePolicyInnerCoInsurer> hivePolicyInnerCoInsurerList;
}

@ -0,0 +1,22 @@
package com.ccic.safeliab.vo;
import com.ccic.safeliab.entity.Risk;
import lombok.Data;
import java.util.List;
@Data
public class ServiceStatisticsVO {
private String policyNumber;
// 事故预防服务
private List<AccidentPreventionVO> accidentPreventionList;
// 风险辨识
private List<Risk> riskList;
// 隐患排查
private List<HazardInvestigationVO> hazardInvestigationList;
}

@ -16,7 +16,7 @@ public class UserAnswersVO {
private Long userId; private Long userId;
/** /**
* 试卷id * 考試id
*/ */
@JsonFormat(shape = JsonFormat.Shape.STRING) @JsonFormat(shape = JsonFormat.Shape.STRING)
private Long examId; private Long examId;

@ -2,9 +2,11 @@ package com.ccic.safeliab.web;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.ccic.safeliab.entity.ExCustomerRetention; import com.ccic.safeliab.entity.ExCustomerRetention;
import com.ccic.safeliab.entity.Organ;
import com.ccic.safeliab.excel.ServiceStatExcel; import com.ccic.safeliab.excel.ServiceStatExcel;
import com.ccic.safeliab.service.CustomerRetService; import com.ccic.safeliab.service.CustomerRetService;
import com.ccic.safeliab.service.StatisticsService; import com.ccic.safeliab.service.StatisticsService;
import com.ccic.safeliab.util.CcicUtill;
import com.ccic.safeliab.util.R; import com.ccic.safeliab.util.R;
import com.ccic.safeliab.vo.CustomerRetentionVO; import com.ccic.safeliab.vo.CustomerRetentionVO;
import com.ccic.safeliab.vo.CustomerVO; import com.ccic.safeliab.vo.CustomerVO;
@ -12,6 +14,7 @@ import com.ccic.safeliab.vo.ServiceStatVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.Charsets; import org.apache.commons.codec.Charsets;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -19,6 +22,7 @@ import java.io.IOException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 客户统计控制器 * 客户统计控制器
@ -28,7 +32,7 @@ import java.util.List;
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping("/ex/statistics") @RequestMapping("/ex/statistics")
public class StatisticsController { public class StatisticsController extends BaseController{
@Autowired @Autowired
private StatisticsService statisticsService; private StatisticsService statisticsService;
@ -96,4 +100,29 @@ public class StatisticsController {
log.error("exportServiceStatList, error message:" + e.getMessage()); log.error("exportServiceStatList, error message:" + e.getMessage());
} }
} }
@GetMapping("/getOrganByOrganId")
public R getOrganByParam(@RequestParam Map<String, Object> param) {
String organId = CcicUtill.checkStr(param.get("organId"));
if (StringUtils.isEmpty(organId)) {
param.put("organId", getUserMsg().getOrganId());
}
List<Organ> list = statisticsService.getOrganByParam(param);
if (list == null || list.size() <= 0) {
return R.ok().message("没有数据");
}
return R.ok().data(list);
}
/**
* 一企一档
* @param customerId
* @return
*/
@GetMapping("/enterpriseArchives")
public R enterpriseArchives(@RequestParam Long customerId) {
return R.ok().data(statisticsService.getEnterpriseArchives(customerId));
}
} }

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ccic.safeliab.dao.ExamScouresMapper">
<select id="getLeadValue" resultType="Integer">
SELECT
FLOOR(
(SELECT COUNT(id)
FROM ex_exam_scores
WHERE total_score &lt; ${totalScore} AND exam_id = #{examId} AND paper_id = #{paperId} AND is_deleted = 0) * 100.0 / COUNT(id)) AS percentage_ahead
FROM
ex_exam_scores
WHERE
exam_id = #{examId} AND paper_id = #{paperId} AND is_deleted = 0
</select>
</mapper>

@ -3,6 +3,14 @@
<mapper namespace="com.ccic.safeliab.dao.ServiceStatMapper"> <mapper namespace="com.ccic.safeliab.dao.ServiceStatMapper">
<!-- 通用查询映射结果 --> <!-- 通用查询映射结果 -->
<resultMap id="customerMap" type="com.ccic.safeliab.entity.Customer">
<id column="customer_id" property="customerId"/>
<result column="customer_no" property="customerNo"/>
<result column="customer_name" property="customerName"/>
<result column="type_pname" property="typePname"/>
<result column="contacts" property="contacts"/>
<result column="contacts_phone" property="contactsPhone"/>
</resultMap>
<resultMap id="statResultMap" type="com.ccic.safeliab.vo.ServiceStatVO"> <resultMap id="statResultMap" type="com.ccic.safeliab.vo.ServiceStatVO">
<id column="policy_id" property="policyId"/> <id column="policy_id" property="policyId"/>
<result column="policy_number" property="policyNumber"/> <result column="policy_number" property="policyNumber"/>
@ -18,6 +26,10 @@
<result column="service_status_name" property="serviceStatusName"/> <result column="service_status_name" property="serviceStatusName"/>
</resultMap> </resultMap>
<resultMap id="PolicyServiceResultMap" type="com.ccic.safeliab.vo.ServiceStatisticsVO">
<result property="policy_number" column="policyNumber"/>
</resultMap>
<sql id="selectPageColumn"> <sql id="selectPageColumn">
SELECT SELECT
p.policy_id, p.policy_id,
@ -99,6 +111,33 @@
</where> </where>
</sql> </sql>
<select id="selectServiceCustomerPage" resultMap="customerMap">
SELECT DISTINCT
a.customer_id,
a.customer_no,
a.customer_name,
a.type_pname,
a.contacts,
a.contacts_phone,
a.changed_at
FROM
tbl_customer a
LEFT JOIN tbl_service b ON b.customer_id = a.customer_id
WHERE
1 = 1
<if test="customer.typePid != null and customer.typePid != ''">
AND a.type_pid = #{customer.typePid}
</if>
<if test="customer.keyword != null and customer.keyword != ''">
AND (a.customer_name LIKE '%'||#{customer.keyword}||'%' OR a.customer_no LIKE '%'||#{customer.keyword}||'%')
</if>
<if test="customer.insuranceId != null and customer.insuranceId != ''">
AND b.insurance_id = #{customer.insuranceId}
</if>
AND A.customer_no is not null
order by a.changed_at desc, a.customer_id desc
</select>
<select id="selectPage" resultMap="statResultMap"> <select id="selectPage" resultMap="statResultMap">
<include refid="selectPageColumn" /> <include refid="selectPageColumn" />
<include refid="baseQuery" /> <include refid="baseQuery" />
@ -109,4 +148,184 @@
<include refid="baseQuery" /> <include refid="baseQuery" />
</select> </select>
<select id="getOrganByParam" resultType="com.ccic.safeliab.entity.Organ">
select organ_id,organ_name,parent_id,feature,is_sup from tbl_organ
where status=1 and organ_type=3
<if test="map.organId!=null and map.organId!=''">
and parent_id = #{map.organId}
</if>
<if test="map.organName!=null and map.organName!=''">
and organ_name like concat('%',#{map.organName},'%')
</if>
<if test="map.oneOrganId!=null and map.oneOrganId!=''">
and organ_id = #{map.oneOrganId}
</if>
order by changed_at desc limit 20
</select>
<select id="getCustomerStatistics" resultType="com.ccic.safeliab.vo.EnterpriseArchivesVO">
SELECT
a.customer_no customerNo,
a.type_name typeName,
b.social_credit_code socialCreditCode,
b.legal_person legalPerson,
a.contacts contacts,
a.email,
a.contacts_phone contactsPhone,
a.type_pname typePname,
a.business_scope businessScope,
a.org_registration_address orgRegistrationAddress
FROM
tbl_customer a
LEFT JOIN tbl_customer_addon b on a.customer_id = b.customer_id
where a.customer_id = #{customerId}
</select>
<select id="getPolicyStatistics" resultType="com.ccic.safeliab.vo.PolicyStatisticsVO">
SELECT
policy_number policyNumber,
insur_customer_name insurCustomerName,
customer_name customerName,
due_premium duePremium,
start_date startDate,
done_date doneDate,
policy_status_name policyStatusName,
premium_rate premiumRate,
sum_insured sumInsured
from tbl_policy
where customer_id = #{customerId}
</select>
<select id="getHivePolicyCoverageStatistics" resultType="com.ccic.safeliab.entity.HivePolicyCoverage">
SELECT
clausecode,
coverage_type coverageType,
product_element_name productElementName,
sum_insured sumInsured
FROM
hive_policy_coverage
where policy_no = #{policyNumber}
</select>
<select id="getHivePolicyInnerCoInsurerStatistics" resultType="com.ccic.safeliab.entity.HivePolicyInnerCoInsurer">
SELECT
inner_co_org_code innerCoOrgCode,
share_rate shareRate
FROM
hive_policy_inner_co_insurer
where policy_no = #{policyNumber}
</select>
<select id="getHiveClaimStatistics" resultType="com.ccic.safeliab.vo.HiveClaimStatisticsVO">
SELECT
PolicyNo policyno,
REPORTTIME reporttime,
CLAIMTIME claimtime,
TASKTYPE tasktype,
CLAIMLOSS claimloss,
sumLossApproval sumlossapproval,
peopleLossApproval peoplelossapproval,
medicSumApprv medicsumapprv,
OSSAPPROVAL ossapproval,
accidentSumAPRV accidentsumaprv,
LOSSAPPROVAL lossapproval,
lawSumApprv lawsumapprv,
accidentRSSumApprv accidentrssumapprv,
otherSumApprv othersumapprv,
TotalAmtCharg totalamtcharg,
bankPayTime bankpaytime,
ENDCASEDATE endcasedate,
peopleMdieSumCharg peoplemdiesumcharg,
medicSumCharg medicsumcharg,
'' lossinjurycharg,
accidentRSSumCharg accidentrssumcharg,
LOSSCharg losscharg,
lawSumCharg lawsumcharg,
hive_claim hiveClaim,
otherSumCharg othersumcharg
FROM
hive_claim
where customer_id = #{customerId}
order by PolicyNo asc
</select>
<select id="selectPolicyByService" resultMap="PolicyServiceResultMap">
SELECT
policy_number
FROM
tbl_service
WHERE
customer_id = #{customerId}
GROUP BY
policy_number
</select>
<select id="getAccidentPreventionStatistics" resultType="com.ccic.safeliab.vo.AccidentPreventionVO">
SELECT
a.completed_at completedAt,
a.service_name serviceName,
b.service_object_name serviceObjectName,
a.service_range serviceRange,
a.executed_organ_name executedOrganName,
CASE
WHEN a.service_report_url IS NOT NULL THEN '已上传'
ELSE '未上传'
END AS uploadStatus
FROM
tbl_service a
LEFT JOIN tbl_service_relation b on b.service_id = a.service_id
where a.customer_id = #{customerId}
and a.policy_number = #{policyNumber}
</select>
<select id="getRiskStatistics" resultType="com.ccic.safeliab.entity.Risk">
SELECT
risk_number riskNumber,
risk_name riskName,
risk_content riskontent,
discovered_address discoveredAddress,
risk_grade riskGrade,
status,
discovered_at discoveredAt
FROM
tbl_risk a
where a.service_id in (SELECT service_id
FROM
tbl_service
WHERE
customer_id = #{customerId} and policy_number = #{policyNumber})
and a.policy_number = #{policyNumber}
</select>
<select id="getHazardInvestigationStatistics" resultType="com.ccic.safeliab.vo.HazardInvestigationVO">
SELECT
a.hidden_number hiddenNumber,
d.description,
a.classify_name hiddenDangerType,
c.danger_type_name dangerTypeName,
d.risk_grade riskGrade,
a.discovered_at discoveredAt,
CASE
WHEN a.examine_status = 1 THEN '待审核'
WHEN a.examine_status = 2 THEN '审核中(上级审核)'
WHEN a.examine_status = 3 THEN '审核成功'
WHEN a.examine_status = 4 THEN '审核失败'
END AS correctionStatus
FROM
tbl_hidden_danger a
LEFT JOIN tbl_service b on b.service_id = a.service_id
LEFT JOIN tbl_service_item c on c.service_id = a.service_id
LEFT JOIN tbl_danger_check_record d on d.service_item_id = c.service_item_id
WHERE
a.service_id in (SELECT service_id
FROM
tbl_service
WHERE
customer_id = #{customerId} and policy_number = #{policyNumber})
and a.policy_number = #{policyNumber}
</select>
</mapper> </mapper>

Loading…
Cancel
Save