| | |
| | | <!-- 搜索表单 --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="保单状态" prop="status"> |
| | | <el-select v-model="searchForm.status" placeholder="请选择" @keypress.enter.native="search"> |
| | | <el-select v-model="searchForm.statusCollect" placeholder="请选择" @keypress.enter.native="search"> |
| | | <el-option label="待审批" value="0"></el-option> |
| | | <el-option label="待出单" value="3"></el-option> |
| | | <el-option label="保障中" value="5"></el-option> |
| | | <el-option label="已过期" value="8"></el-option> |
| | | <el-option label="已退回" value="7"></el-option> |
| | | <el-option label="待出单" value="1"></el-option> |
| | | <el-option label="保障中" value="2"></el-option> |
| | | <el-option label="已过期" value="3"></el-option> |
| | | <el-option label="已退回" value="4"></el-option> |
| | | <el-option label="退回申请中" value="5"></el-option> |
| | | <el-option label="已关闭" value="6"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="投保企业" prop="companyId"> |
| | | <el-select v-model="searchForm.companyId" placeholder="请选择" @change="search"> |
| | | <el-option |
| | | v-for="item in options" |
| | | v-for="item in companyList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | |
| | | <el-form-item label="保险方案" prop="solutionId"> |
| | | <el-select v-model="searchForm.solutionId" placeholder="请选择" @change="search"> |
| | | <el-option |
| | | v-for="item in options" |
| | | v-for="item in solutionList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="status" label="投保状态" min-width="100px"> |
| | | <template slot-scope="{row}"> |
| | | <span v-if="row.status === 0">待审核</span> |
| | | <span v-if="row.status === 3">待出单</span> |
| | | <span v-if="row.status === 5">保障中</span> |
| | | <span v-if="row.status === 8">已过期</span> |
| | | <span v-if="row.status === 7">已退回</span> |
| | | <span v-if="row.statusCollect === 0">待审核</span> |
| | | <span v-if="row.statusCollect === 1">待出单</span> |
| | | <span v-if="row.statusCollect === 2">保障中</span> |
| | | <span v-if="row.statusCollect === 3">已过期</span> |
| | | <span v-if="row.statusCollect === 4">已退回</span> |
| | | <span v-if="row.statusCollect === 5">退回申请中</span> |
| | | <span v-if="row.statusCollect === 6">已关闭</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="companyId" label="投保企业" min-width="100px"></el-table-column> |
| | | <el-table-column prop="solutionId" label="保险方案" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="投保人数" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="总费用(元)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="companyName" label="投保企业" min-width="100px"></el-table-column> |
| | | <el-table-column prop="solutionsName" label="保险方案" min-width="100px"></el-table-column> |
| | | <el-table-column prop="insureNum" label="投保人数" min-width="100px"></el-table-column> |
| | | <el-table-column prop="fee" label="总费用(元)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="提交时间" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:insuranceapply:update', 'business:insuranceapply:delete'])" |
| | |
| | | createDate: '', |
| | | solutionId: '', |
| | | companyId: '', |
| | | status: '' |
| | | } |
| | | statusCollect: '' |
| | | }, |
| | | solutionList:[], |
| | | companyList:[] |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | this.loadSelectList() |
| | | }, |
| | | methods (){ |
| | | loadSelectList(){ |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | } |
| | | } |
| | | LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions); |
| | | |
| | | // 验证用户 |
| | | return new SimpleAuthenticationInfo(userInfo, user.getPassword(), this.getName()); |
| | | } |
| | |
| | | } |
| | | |
| | | public enum InsuranceApplyStatus { |
| | | UPLOAD(0, "提交投保",""), |
| | | PLATFORM_RETURN(1, "审核不通过","提交意见:${param}"), |
| | | WAIT_SIGNATURE(2, "已上传代签申请表待企业签章",""), |
| | | SIGNATURE(3, "已签章待上传保险单",""), |
| | | FAIL_RETURN(4, "保单出具失败退回",""), |
| | | UPLOAD_INSURANCE(5, "保单完成","保险生效起期:${param}变更为${param1}"), |
| | | COMPANY_BACK_APPLY_UPLOAD(6, "企业申请退回(提交投保)","提交意见:${param}"), |
| | | COMPANY_BACK_APPLY_WAIT_SIGNATURE(7, "企业申请退回(待签章)","提交意见:${param}"), |
| | | COMPANY_BACK_APPLY_SIGNATURE(8, "企业申请退回(已签章)","提交意见:${param}"), |
| | | CLOSE(9, "订单关闭",""), |
| | | PLATFORM_CHECK_PASS(10,"平台投保审核通过",""), |
| | | UPLOAD(0, "提交投保","",0), |
| | | PLATFORM_RETURN(1, "审核不通过","提交意见:${param}",4), |
| | | WAIT_SIGNATURE(2, "已上传代签申请表待企业签章","",1), |
| | | SIGNATURE(3, "已签章待上传保险单","",1), |
| | | FAIL_RETURN(4, "保单出具失败退回","",0), |
| | | UPLOAD_INSURANCE(5, "保单完成","保险生效起期:${param}变更为${param1}",2), |
| | | COMPANY_BACK_APPLY_UPLOAD(6, "企业申请退回(提交投保)","提交意见:${param}",5), |
| | | COMPANY_BACK_APPLY_WAIT_SIGNATURE(7, "企业申请退回(待签章)","提交意见:${param}",5), |
| | | COMPANY_BACK_APPLY_SIGNATURE(8, "企业申请退回(已签章)","提交意见:${param}",5), |
| | | CLOSE(9, "订单关闭","",6), |
| | | PLATFORM_CHECK_PASS(10,"平台投保审核通过","",1), |
| | | ; |
| | | // 成员变量 |
| | | private String name; |
| | | private String info; |
| | | private int key; |
| | | private int collectStatus; |
| | | |
| | | // 构造方法 |
| | | InsuranceApplyStatus(int key, String name,String info) { |
| | | InsuranceApplyStatus(int key, String name,String info,int collectStatus) { |
| | | this.name = name; |
| | | this.key = key; |
| | | this.info = info; |
| | | this.collectStatus = collectStatus; |
| | | } |
| | | |
| | | // 普通方法 |
| | |
| | | for (InsuranceApplyStatus c : InsuranceApplyStatus.values()) { |
| | | if (c.getKey() == index) { |
| | | return c.name; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | public static List<Integer> getKesByStatus(Integer collectStatus) { |
| | | List<Integer> list = new ArrayList<>(); |
| | | if(collectStatus!=null){ |
| | | for (InsuranceApplyStatus c : InsuranceApplyStatus.values()) { |
| | | if (Constants.equalsInteger(c.getCollectStatus() ,collectStatus)) { |
| | | list.add(c.getKey()); |
| | | } |
| | | } |
| | | } |
| | | return list; |
| | | } |
| | | public static Integer getCollectStatus(Integer index) { |
| | | for (InsuranceApplyStatus c : InsuranceApplyStatus.values()) { |
| | | if (Constants.equalsInteger(c.getKey() , index)) { |
| | | return c.collectStatus; |
| | | } |
| | | } |
| | | return null; |
| | |
| | | public void setInfo(String info) { |
| | | this.info = info; |
| | | } |
| | | |
| | | public int getCollectStatus() { |
| | | return collectStatus; |
| | | } |
| | | |
| | | public void setCollectStatus(int collectStatus) { |
| | | this.collectStatus = collectStatus; |
| | | } |
| | | } |
| | | |
| | | public static BigDecimal countDetailFee(Solutions solutions,Date startDate, Date endDate){ |
| | |
| | | package com.doumee.dao.business.dto; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | |
| | | |
| | | @ApiModelProperty(value = "即将失效订单:0=否;1=是") |
| | | private Integer loseEfficacy; |
| | | |
| | | @ApiModelProperty(value = "状态 0待审批 1待出单 2保障中 3已过期 4已撤回 5退回申请中 6已关闭", example = "1") |
| | | private Integer statusCollect; |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | @Data |
| | | @ApiModel("企业信息表") |
| | | @TableName("`company`") |
| | | public class Company { |
| | | public class Company implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | | @ApiModelProperty(value = "主键", example = "1") |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | @Data |
| | | @ApiModel("企业可用保险方案关联表") |
| | | @TableName("`company_solution`") |
| | | public class CompanySolution { |
| | | public class CompanySolution implements Serializable { |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | | @ApiModelProperty(value = "主键", example = "1") |
| | |
| | | @ApiModelProperty(value = "处理企业申请状态 0同意 1驳回") |
| | | @TableField(exist = false) |
| | | private int dealBackApply; |
| | | @ApiModelProperty(value = "状态 0待审批 1待出单 2保障中 3已过期 4已撤回 5退回申请中 6已关闭", example = "1") |
| | | @TableField(exist = false) |
| | | private Integer statusCollect; |
| | | |
| | | |
| | | |
| | | |
| | | public TaxesInvoicingVO getTaxesInvoicingVO(){ |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | |
| | | @Data |
| | | @ApiModel("附件上传信息表") |
| | | @TableName("`multifile`") |
| | | public class Multifile { |
| | | public class Multifile implements Serializable { |
| | | @TableId(type = IdType.AUTO) |
| | | @ApiModelProperty(value = "主键", example = "1") |
| | | @ExcelColumn(name="主键") |
| | |
| | | IPage<InsuranceApply> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<InsuranceApply> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | List<Integer> statusList = Constants.InsuranceApplyStatus.getKesByStatus(pageWrap.getModel().getStatusCollect()); |
| | | queryWrapper.selectAll(InsuranceApply.class); |
| | | queryWrapper.selectAs(Company::getName,InsuranceApply::getCompanyName); |
| | | queryWrapper.selectAs(Solutions::getName,InsuranceApply::getSolutionsName); |
| | | queryWrapper.select(" DATEDIFF( t.END_TIME ,now() ) AS loseEfficacyDays "); |
| | | queryWrapper.select(" ( select count(1) from apply_detail ad where ad.apply_id = t.id ) as insureNum"); |
| | | queryWrapper.select(" ( select sum(td.fee) from taxes ts inner join tax_detial td on ts.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ) as taxesMoney"); |
| | | queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on ts.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast "); |
| | | queryWrapper.select(" ( select sum(td.fee) from taxes ts inner join tax_detial td on td.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ) as taxesMoney"); |
| | | queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on td.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast "); |
| | | queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId); |
| | | queryWrapper.leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId); |
| | | queryWrapper.eq(InsuranceApply::getIsdeleted,Constants.ZERO); |
| | | queryWrapper.in(statusList.size()>0,InsuranceApply::getStatus,statusList); |
| | | if(Constants.equalsInteger(pageWrap.getModel().getStatusCollect(),Constants.THREE) ){ |
| | | queryWrapper.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()); |
| | | queryWrapper.lt(InsuranceApply::getEndTime, Utils.Date.getStart(new Date())); |
| | | } |
| | | //企业人员查看本企业数据 |
| | | if(loginUserInfo.getType().equals(Constants.ONE)){ |
| | | queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId()); |
| | |
| | | } |
| | | } |
| | | PageData<InsuranceApply> pageData = PageData.from(insuranceApplyJoinMapper.selectJoinPage(page,InsuranceApply.class, queryWrapper)); |
| | | if(pageData.getRecords()!=null){ |
| | | for (InsuranceApply apply : pageData.getRecords()){ |
| | | apply.setStatusCollect(Constants.InsuranceApplyStatus.getCollectStatus(apply.getStatus())); |
| | | if(Constants.equalsInteger(apply.getStatusCollect(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){ |
| | | //如果已完成 |
| | | if(apply.getEndTime()==null || System.currentTimeMillis()>apply.getEndTime().getTime()){ |
| | | apply.setStatusCollect(Constants.THREE);//已过期 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return pageData; |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | PageData<Solutions> pageData = PageData.from(solutionsJoinMapper.selectJoinPage(page,Solutions.class, queryWrapper)); |
| | | |
| | | return pageData; |
| | | } |
| | | @Override |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.apache.shiro.authc.AuthenticationException; |
| | | import org.apache.shiro.authc.UsernamePasswordToken; |
| | | import org.apache.shiro.subject.Subject; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | |
| | | loginLog.setServerIp(Utils.Server.getIP()); |
| | | // 校验验证码 |
| | | try { |
| | | if(debugModel){ |
| | | if(!debugModel){ |
| | | captchaService.check(dto.getUuid(), dto.getCode()); |
| | | } |
| | | } catch (Exception e) { |
| | |
| | | // 校验验证码 |
| | | if(type!= Constants.TWO){ |
| | | try { |
| | | if(debugModel){ |
| | | if(!debugModel){ |
| | | SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,dto.getPhone(), dto.getCode()); |
| | | } |
| | | } catch (Exception e) { |