jiangping
2024-01-24 8527f5df4edffd94230a8c7f8016beecfb011585
开发业务接口
已修改19个文件
511 ■■■■ 文件已修改
server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/ApplyDetailController.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/InsuranceApplyController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/InsuranceController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/SolutionsController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/WorktypeController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/Solutions.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/ApplyDetailController.java
@@ -75,11 +75,12 @@
        return ApiResponse.success(applyDetailService.findPageForCompany(pageWrap));
    }
    @ApiOperation("导出Excel")
    @ApiOperation("导出在保人员详单Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:applydetail:exportExcel")
    public void exportExcel (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(ApplyDetail.class).export(applyDetailService.findPageForCompany(pageWrap).getRecords(), "投保申请明细信息表", response);
        //List<T> data, String fileName,String first,String end, HttpServletResponse response
        ExcelExporter.build(ApplyDetail.class).exportWithFirstAndEnd(applyDetailService.findPageForCompany(pageWrap).getRecords(), pageWrap.getModel().getCompanyName()+"_"+pageWrap.getModel().getSolutionName()+".xlsx","在保人员名单",null, response);
    }
    @ApiOperation("根据ID查询")
server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java
@@ -7,6 +7,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.model.ApplyChange;
import com.doumee.dao.business.model.InsuranceApply;
import com.doumee.service.business.ApplyChangeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -109,6 +110,20 @@
        ExcelExporter.build(ApplyChange.class).export(applyChangeService.findPage(pageWrap).getRecords(), "加减保换厂申请信息表", response);
    }
    @ApiOperation("导出加减保详情单")
    @PostMapping("/exportJiajianBaoExcel")
    @RequiresPermissions("business:insuranceapply:exportExcel")
    public void exportJiajianBaoExcel (@RequestBody ApplyChange model, HttpServletResponse response) {
        ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcel(applyChangeService.exportJiajianBaoExcel(model),   response);
    }
    @ApiOperation("导出加减保详情单")
    @PostMapping("/exportChangeUnitExcel")
    @RequiresPermissions("business:insuranceapply:exportExcel")
    public void exportChangeUnitExcel (@RequestBody ApplyChange model, HttpServletResponse response) {
        ExcelExporter.build(ApplyChange.class).exportChangeUnitExcel(applyChangeService.exportChangeUnitExcel(model),   response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:applychange:query")
server/platform/src/main/java/com/doumee/api/business/ApplyDetailController.java
@@ -6,6 +6,7 @@
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.dto.ApplyDetailPageDTO;
import com.doumee.dao.business.model.ApplyDetail;
import com.doumee.service.business.ApplyDetailService;
import io.swagger.annotations.Api;
@@ -66,20 +67,18 @@
        applyDetailService.updateById(applyDetail);
        return ApiResponse.success(null);
    }
   /* @ApiOperation("分页查询")
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:applydetail:query")
    public ApiResponse<PageData<ApplyDetail>> findPage (@RequestBody PageWrap<ApplyDetail> pageWrap) {
        return ApiResponse.success(applyDetailService.findPage(pageWrap));
    public ApiResponse<PageData<ApplyDetail>> findPage (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap) {
        return ApiResponse.success(applyDetailService.findPageForCompany(pageWrap));
    }
    @ApiOperation("导出Excel")
    @ApiOperation("导出在保人员详单Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:applydetail:exportExcel")
    public void exportExcel (@RequestBody PageWrap<ApplyDetail> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(ApplyDetail.class).export(applyDetailService.findPage(pageWrap).getRecords(), "投保申请明细信息表", response);
    }*/
    public void exportExcel (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(ApplyDetail.class).exportWithFirstAndEnd(applyDetailService.findPageForCompany(pageWrap).getRecords(), pageWrap.getModel().getCompanyName()+"_"+pageWrap.getModel().getSolutionName()+".xlsx","在保人员名单",null, response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
server/platform/src/main/java/com/doumee/api/business/InsuranceApplyController.java
@@ -121,7 +121,7 @@
    @ApiOperation("导出投保详情单")
    @PostMapping("/exportDetailExcel")
    @RequiresPermissions("business:insuranceapply:exportExcel")
    public void exportExcel (@RequestBody  InsuranceApply model, HttpServletResponse response) {
    public void exportDetailExcel (@RequestBody  InsuranceApply model, HttpServletResponse response) {
        ExcelExporter.build(InsuranceApply.class).exportApplyDetail(insuranceApplyService.findDetailForExport(model),  response);
    }
server/platform/src/main/java/com/doumee/api/business/InsuranceController.java
@@ -7,6 +7,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.model.Insurance;
import com.doumee.dao.business.model.Solutions;
import com.doumee.service.business.InsuranceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -66,6 +67,14 @@
        insuranceService.updateById(insurance);
        return ApiResponse.success(null);
    }
    @ApiOperation("禁用启用")
    @PostMapping("/updateStatus")
    @RequiresPermissions("business:insurance:update")
    public ApiResponse updateStatus(@RequestBody Insurance solutions) {
        insuranceService.updateStatus(solutions);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
@@ -73,6 +82,12 @@
    public ApiResponse<PageData<Insurance>> findPage (@RequestBody PageWrap<Insurance> pageWrap) {
        return ApiResponse.success(insuranceService.findPage(pageWrap));
    }
    @ApiOperation("查询全部")
    @PostMapping("/list")
    @RequiresPermissions("business:insurance:query")
    public ApiResponse<List<Insurance>> findList (@RequestBody  Insurance pageWrap) {
        return ApiResponse.success(insuranceService.findList(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
server/platform/src/main/java/com/doumee/api/business/SolutionsController.java
@@ -81,6 +81,12 @@
    public ApiResponse<PageData<Solutions>> findPage (@RequestBody PageWrap<Solutions> pageWrap) {
        return ApiResponse.success(solutionsService.findPage(pageWrap));
    }
    @ApiOperation("查询全部")
    @PostMapping("/list")
    @RequiresPermissions("business:solutions:query")
    public ApiResponse<List<Solutions>> findList (@RequestBody  Solutions  pageWrap) {
        return ApiResponse.success(solutionsService.findList(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
server/platform/src/main/java/com/doumee/api/business/WorktypeController.java
@@ -75,6 +75,12 @@
    public ApiResponse<PageData<Worktype>> findPage (@RequestBody PageWrap<Worktype> pageWrap) {
        return ApiResponse.success(worktypeService.findPage(pageWrap));
    }
    @ApiOperation("查询全部")
    @PostMapping("/list")
    @RequiresPermissions("business:worktype:query")
    public ApiResponse<List<Worktype>> findList (@RequestBody Worktype pageWrap) {
        return ApiResponse.success(worktypeService.findList(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -3,6 +3,8 @@
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.ApplyChagneDetail;
import com.doumee.dao.business.model.ApplyChange;
import com.doumee.dao.business.model.ApplyDetail;
import com.doumee.dao.business.model.InsuranceApply;
import lombok.AllArgsConstructor;
@@ -456,17 +458,18 @@
            header4.createCell(3).setCellValue("身份证号");
            header4.createCell(4).setCellValue("派遣单位");
            header4.createCell(5).setCellValue("所属工种");
            if(data.getApplyDetailList()!=null)
            if(data.getApplyDetailList()!=null){
            // 创建数据记录
            for (int rowIndex = 0; rowIndex < data.getApplyDetailList().size(); rowIndex++) {
                ApplyDetail d = data.getApplyDetailList().get(rowIndex);
                Row header5 = sheet.createRow(rowIndex + 4);
                header5.createCell(0).setCellValue(rowIndex+1);
                header5.createCell(1).setCellValue(StringUtils.defaultString(d.getMemberName(),""));
                header5.createCell(2).setCellValue(Constants.equalsInteger(d.getSex(),0)?"男":(Constants.equalsInteger(d.getSex(),1)?"女":"-"));
                header5.createCell(3).setCellValue(StringUtils.defaultString(d.getIdcardNo(),""));
                header5.createCell(4).setCellValue(StringUtils.defaultString(d.getDuName(),""));
                header5.createCell(5).setCellValue(StringUtils.defaultString(d.getWorkTypeName(),""));
                for (int rowIndex = 0; rowIndex < data.getApplyDetailList().size(); rowIndex++) {
                    ApplyDetail d = data.getApplyDetailList().get(rowIndex);
                    Row header5 = sheet.createRow(rowIndex + 4);
                    header5.createCell(0).setCellValue(rowIndex+1);
                    header5.createCell(1).setCellValue(StringUtils.defaultString(d.getMemberName(),""));
                    header5.createCell(2).setCellValue(Constants.equalsInteger(d.getSex(),0)?"男":(Constants.equalsInteger(d.getSex(),1)?"女":"-"));
                    header5.createCell(3).setCellValue(StringUtils.defaultString(d.getIdcardNo(),""));
                    header5.createCell(4).setCellValue(StringUtils.defaultString(d.getDuName(),""));
                    header5.createCell(5).setCellValue(StringUtils.defaultString(d.getWorkTypeName(),""));
                }
            }
            sxssfWorkbook.write(os);
            os.close();
@@ -483,6 +486,218 @@
        }
    }
    /**
     * 换厂申请表导出
     * @param model
     * @param response
     */
    public void exportChangeUnitExcel(ApplyChange model, HttpServletResponse response) {
        try {
            String encodeFileName = URLEncoder.encode("换厂申请表_"+model.getCompanyName()+"_"+model.getSolutionsName(), Charset.forName("UTF-8").toString()) + ".xlsx";
            response.setHeader("Content-Disposition","attachment;filename=" + encodeFileName);
            response.setContentType("application/octet-stream");
            response.setHeader("eva-opera-type", "download");
            response.setHeader("eva-download-filename", encodeFileName);
            this.exportChangeUnitExcelDo(model,"换厂申请表", response.getOutputStream());
        } catch (IOException e) {
            throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
        }
    }
    /**
     * 加减申请表导出
     * @param model
     * @param response
     */
    public void exportJiajianBaoExcel(ApplyChange model, HttpServletResponse response) {
        try {
            String encodeFileName = URLEncoder.encode("加减保申请表_"+model.getCompanyName()+"_"+model.getSolutionsName(), Charset.forName("UTF-8").toString()) + ".xlsx";
            response.setHeader("Content-Disposition","attachment;filename=" + encodeFileName);
            response.setContentType("application/octet-stream");
            response.setHeader("eva-opera-type", "download");
            response.setHeader("eva-download-filename", encodeFileName);
            this.exportJiajianBaoExcelDo(model,"加减保申请表_", response.getOutputStream());
        } catch (IOException e) {
            throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
        }
    }
    /**
     * 导出加减保申请详单
     * @param data 数据
     * @param sheetName Sheet名称
     * @param os 输出流
     */
    public void exportJiajianBaoExcelDo (ApplyChange data, String sheetName, OutputStream os) {
        SXSSFWorkbook sxssfWorkbook;
        try {
            sxssfWorkbook = new SXSSFWorkbook();
            Sheet sheet = sxssfWorkbook.createSheet(sheetName);
            sheet.createFreezePane(0, 1);
            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,8));
            Row title = sheet.createRow(0);
            title.setHeight((short) 1000);
            Cell c = title.createCell(0);
            c.setCellValue(sheetName);
            configFirstCell(sxssfWorkbook,c);
            Row header1 = sheet.createRow(1);
            header1.createCell(0).setCellValue("投保企业");
            header1.createCell(3).setCellValue("保险方案");
            header1.createCell(4).setCellValue("保单号");
            header1.createCell(5).setCellValue("保险生效起期");
            header1.createCell(6).setCellValue("保险生效止期");
            header1.createCell(9).setCellValue("加保人数");
            header1.createCell(10).setCellValue("减保人数");
            header1.createCell(11).setCellValue("期望批单生效期");
            sheet.addMergedRegion(new CellRangeAddress(1  ,1,0,2));
            sheet.addMergedRegion(new CellRangeAddress(1  ,1,6,8));
            Row header2 = sheet.createRow(2);
            header2.createCell(0).setCellValue(data.getCompanyName());
            header2.createCell(3).setCellValue(data.getSolutionsName());
            header2.createCell(4).setCellValue(data.getApplyCode());
            header2.createCell(5).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getStartTime()));
            header2.createCell(6).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getEndTime()));
            header2.createCell(9).setCellValue(data.getAddNum());
            header2.createCell(10).setCellValue(data.getDelNum());
            header2.createCell(11).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getValidTime()));
            sheet.addMergedRegion(new CellRangeAddress(2 ,2,0,2));
            sheet.addMergedRegion(new CellRangeAddress(2  ,2,6,8));
            //空白行
            Row header3 = sheet.createRow(3);
            header2.createCell(0).setCellValue("加保人员");
            header2.createCell(6).setCellValue("减保人员");
            sheet.addMergedRegion(new CellRangeAddress(3  ,3,0,5));
            sheet.addMergedRegion(new CellRangeAddress(3  ,3,6,11));
            Row header4 = sheet.createRow(4);
            header4.createCell(0).setCellValue("序号");
            header4.createCell(1).setCellValue("员工姓名");
            header4.createCell(2).setCellValue("性别");
            header4.createCell(3).setCellValue("身份证号");
            header4.createCell(4).setCellValue("派遣单位");
            header4.createCell(5).setCellValue("所属工种");
            header4.createCell(6).setCellValue("序号");
            header4.createCell(7).setCellValue("员工姓名");
            header4.createCell(8).setCellValue("性别");
            header4.createCell(9).setCellValue("身份证号");
            header4.createCell(10).setCellValue("派遣单位");
            header4.createCell(11).setCellValue("所属工种");
            int maxNum = data.getAddNum()>data.getDelNum()?data.getAddNum():data.getDelNum();
            // 创建数据记录
            for (int rowIndex = 0; rowIndex <maxNum; rowIndex++) {
                ApplyChagneDetail addModel =  data.getAddDetailList().size()> rowIndex?data.getAddDetailList().get(rowIndex):null;
                ApplyChagneDetail delModel =  data.getDelDetailList().size()> rowIndex?data.getDelDetailList().get(rowIndex):null;
                Row header5 = sheet.createRow(rowIndex + 5);
                if(addModel!=null){
                    header5.createCell(0).setCellValue(rowIndex+1);
                    header5.createCell(1).setCellValue(StringUtils.defaultString(addModel.getMemberName(),""));
                    header5.createCell(2).setCellValue(Constants.equalsInteger(addModel.getSex(),0)?"男":(Constants.equalsInteger(addModel.getSex(),1)?"女":"-"));
                    header5.createCell(3).setCellValue(StringUtils.defaultString(addModel.getIdcardNo(),""));
                    header5.createCell(4).setCellValue(StringUtils.defaultString(addModel.getDuName(),""));
                    header5.createCell(5).setCellValue(StringUtils.defaultString(addModel.getWorkTypeName(),""));
                }
                if(delModel!=null){
                    header5.createCell(6).setCellValue(rowIndex+1);
                    header5.createCell(7).setCellValue(StringUtils.defaultString(delModel.getMemberName(),""));
                    header5.createCell(8).setCellValue(Constants.equalsInteger(delModel.getSex(),0)?"男":(Constants.equalsInteger(delModel.getSex(),1)?"女":"-"));
                    header5.createCell(9).setCellValue(StringUtils.defaultString(delModel.getIdcardNo(),""));
                    header5.createCell(10).setCellValue(StringUtils.defaultString(delModel.getDuName(),""));
                    header5.createCell(11).setCellValue(StringUtils.defaultString(delModel.getWorkTypeName(),""));
                }
            }
            sxssfWorkbook.write(os);
            os.close();
        } catch (Exception e) {
            throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
        } finally {
            if (os != null) {
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    /**
     * 导出加减保申请详单
     * @param data 数据
     * @param sheetName Sheet名称
     * @param os 输出流
     */
    public void exportChangeUnitExcelDo (ApplyChange data, String sheetName, OutputStream os) {
        SXSSFWorkbook sxssfWorkbook;
        try {
            sxssfWorkbook = new SXSSFWorkbook();
            Sheet sheet = sxssfWorkbook.createSheet(sheetName);
            sheet.createFreezePane(0, 1);
            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,8));
            Row title = sheet.createRow(0);
            title.setHeight((short) 1000);
            Cell c = title.createCell(0);
            c.setCellValue(sheetName);
            configFirstCell(sxssfWorkbook,c);
            Row header1 = sheet.createRow(1);
            header1.createCell(0).setCellValue("投保企业");
            header1.createCell(1).setCellValue("保险方案");
            header1.createCell(3).setCellValue("保单号");
            header1.createCell(4).setCellValue("保险生效起期");
            header1.createCell(5).setCellValue("保险生效止期");
            header1.createCell(6).setCellValue("换厂人数");
            header1.createCell(7).setCellValue("期望批单生效期");
            sheet.addMergedRegion(new CellRangeAddress(1  ,1,1,2));
            Row header2 = sheet.createRow(2);
            header2.createCell(0).setCellValue(data.getCompanyName());
            header2.createCell(1).setCellValue(data.getSolutionsName());
            header2.createCell(3).setCellValue(data.getApplyCode());
            header2.createCell(4).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getStartTime()));
            header2.createCell(5).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getEndTime()));
            header2.createCell(6).setCellValue(data.getChangeNum());
            header2.createCell(7).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getValidTime()));
            sheet.addMergedRegion(new CellRangeAddress(2  ,2,1,2));
            Row header4 = sheet.createRow(3);
            header4.createCell(0).setCellValue("序号");
            header4.createCell(1).setCellValue("员工姓名");
            header4.createCell(2).setCellValue("性别");
            header4.createCell(3).setCellValue("身份证号");
            header4.createCell(4).setCellValue("原派遣单位");
            header4.createCell(5).setCellValue("原所所属工种");
            header4.createCell(6).setCellValue("更改后派遣单位");
            header4.createCell(7).setCellValue("更改后所属工种");
            // 创建数据记录
            for (int rowIndex = 0; rowIndex <data.getChangeDetailList().size(); rowIndex++) {
                ApplyChagneDetail addModel = data.getChangeDetailList().get(rowIndex);
                Row header5 = sheet.createRow(rowIndex + 4);
                header5.createCell(0).setCellValue(rowIndex+1);
                header5.createCell(1).setCellValue(StringUtils.defaultString(addModel.getMemberName(),""));
                header5.createCell(2).setCellValue(Constants.equalsInteger(addModel.getSex(),0)?"男":(Constants.equalsInteger(addModel.getSex(),1)?"女":"-"));
                header5.createCell(3).setCellValue(StringUtils.defaultString(addModel.getIdcardNo(),""));
                header5.createCell(4).setCellValue(StringUtils.defaultString(addModel.getOldDuName(),""));
                header5.createCell(5).setCellValue(StringUtils.defaultString(addModel.getOldWorkTypeName(),""));
                header5.createCell(6).setCellValue(StringUtils.defaultString(addModel.getDuName(),""));
                header5.createCell(7).setCellValue(StringUtils.defaultString(addModel.getWorkTypeName(),""));
            }
            sxssfWorkbook.write(os);
            os.close();
        } catch (Exception e) {
            throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
        } finally {
            if (os != null) {
                try {
                    os.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    @Data
    @AllArgsConstructor
    private static class ColumnInfo {
server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java
@@ -24,6 +24,10 @@
    @ApiModelProperty(value = "员工姓名")
    private String memberName;
    @ApiModelProperty(value = "员工姓名",hidden = true)
    private String companyName;
    @ApiModelProperty(value = "方案名称",hidden = true)
    private String solutionName;
    @ApiModelProperty(value = "生效起期 yyyy-MM-dd 开始")
    private String startTimeS;
server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
@@ -73,9 +73,6 @@
    @ExcelColumn(name="实际保险生效起期")
    private Date startTime;
    @ApiModelProperty(value = "最近操作时间")
    @ExcelColumn(name="最近操作时间")
    private Date idcardNo;
    @ApiModelProperty(value = "派遣单位编码(关联dispatch_unit)")
    @ExcelColumn(name="派遣单位编码(关联dispatch_unit)")
@@ -104,6 +101,9 @@
    @ApiModelProperty(value = "员工名称")
    @TableField(exist = false)
    private String memberName;
    @ApiModelProperty(value = "性别 0男 1女")
    @TableField(exist = false)
    private Integer sex;
    @ApiModelProperty(value = "派遣单位名称")
    @TableField(exist = false)
@@ -112,8 +112,17 @@
    @ApiModelProperty(value = "工种名称")
    @TableField(exist = false)
    private String workTypeName;
    @ApiModelProperty(value = "派遣单位名称")
    @TableField(exist = false)
    private String oldDuName;
    @ApiModelProperty(value = "工种名称")
    @TableField(exist = false)
    private String oldWorkTypeName;
    @ApiModelProperty(value = "身份证号")
    @TableField(exist = false)
    private String idcardNo;
    @ApiModelProperty(value = "保险费用(人/天)", example = "1")
    @TableField(exist = false)
    private BigDecimal solutionPrice;
@@ -123,4 +132,5 @@
    private Integer solutionTimeUnit;
}
server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
@@ -81,7 +81,6 @@
    @ApiModelProperty(value = "批单生效时间")
    @ExcelColumn(name="批单生效时间")
    private Date applyStartTime;
    @ApiModelProperty(value = "状态 0待签署 1已签章 2已上传批单 3退回申请 4平台同意 5平台驳回")
@@ -169,4 +168,12 @@
    @TableField(exist = false)
    private int dealBackApply;
    @ApiModelProperty(value = "保险生效起期")
    @TableField(exist = false)
    private Date startTime;
    @ApiModelProperty(value = "保险生效止期")
    @TableField(exist = false)
    private Date endTime;
}
server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java
@@ -24,81 +24,81 @@
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
//    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
//    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
//    @ExcelColumn(name="创建时间")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
//    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
//    @ExcelColumn(name="更新时间")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
//    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
//    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "排序码", example = "1")
    @ExcelColumn(name="排序码")
    @ExcelColumn(name="序号",index = 1)
    private Integer sortnum;
    @ApiModelProperty(value = "投保申请编码(关联insurance_apply", example = "1")
    @ExcelColumn(name="投保申请编码(关联insurance_apply")
//    @ExcelColumn(name="投保申请编码(关联insurance_apply")
    private Integer applyId;
    @ApiModelProperty(value = "人员编码(关联memeber)", example = "1")
    @ExcelColumn(name="人员编码(关联memeber)")
//    @ExcelColumn(name="人员编码(关联memeber)")
    private Integer memberId;
    @ApiModelProperty(value = "实际保险生效止期")
    @ExcelColumn(name="实际保险生效止期")
    @ExcelColumn(name="保险生效止期",index = 9)
    private Date endTime;
    @ApiModelProperty(value = "实际保险生效起期")
    @ExcelColumn(name="实际保险生效起期")
    @ExcelColumn(name="保险生效起期",index =8)
    private Date startTime;
    @ApiModelProperty(value = "身份证号码")
    @ExcelColumn(name="身份证号码")
    @ExcelColumn(name="身份证号码",index = 5)
    private String idcardNo;
    @ApiModelProperty(value = "派遣单位编码(关联dispatch_unit)", example = "1")
    @ExcelColumn(name="派遣单位编码(关联dispatch_unit)")
//    @ExcelColumn(name="派遣单位编码(关联dispatch_unit)")
    private Integer duId;
    @ApiModelProperty(value = "工种编码(关联worktype)", example = "1")
    @ExcelColumn(name="工种编码(关联worktype)")
//    @ExcelColumn(name="工种编码(关联worktype)")
    private Integer worktypeId;
    @ApiModelProperty(value = "费用", example = "1")
    @ExcelColumn(name="费用")
    @ExcelColumn(name="费用",index = 10)
    private BigDecimal fee;
    @ApiModelProperty(value = "性别 0男 1女", example = "1")
    @ExcelColumn(name="性别 0男 1女")
    @ExcelColumn(name="性别",index =4,valueMapping = "0=男;1=女;")
    private Integer sex;
    @ApiModelProperty(value = "当前费用")
    @ExcelColumn(name="当前费用")
//    @ExcelColumn(name="当前费用")
    private BigDecimal currentFee;
    @ApiModelProperty(value = "来源主键(apply_chagne_detail)加减保生成存在", example = "1")
    @ExcelColumn(name="来源主键(apply_chagne_detail)加减保生成存在")
//    @ExcelColumn(name="来源主键(apply_chagne_detail)加减保生成存在")
    private Integer fromId;
    @ApiModelProperty(value = "保单号")
@@ -107,6 +107,7 @@
    @ApiModelProperty(value = "方案名称")
    @TableField(exist = false)
    @ExcelColumn(name="保险方案",index =2)
    private String solutionName;
    @ApiModelProperty(value = "批单号")
@@ -115,17 +116,17 @@
    @ApiModelProperty(value = "派遣单位名称")
    @TableField(exist = false)
    @ExcelColumn(name="派遣单位",index = 6)
    private String duName;
    @ApiModelProperty(value = "员工名称")
    @TableField(exist = false)
    @ExcelColumn(name="员工姓名",index =3)
    private String memberName;
    @ApiModelProperty(value = "工种名称")
    @ExcelColumn(name="所属工种",index = 7)
    @TableField(exist = false)
    private String workTypeName;
}
server/service/src/main/java/com/doumee/dao/business/model/Solutions.java
@@ -128,6 +128,9 @@
    @ApiModelProperty(value = "其他说明")
    @ExcelColumn(name="其他说明")
    private String ortherInfo;
    @ApiModelProperty(value = "签章关键字,多个用英文逗号隔开")
    @ExcelColumn(name="签章关键字,多个用英文逗号隔开")
    private String signKeyword;
    @ApiModelProperty(value = "所属方案基表编码(solution_base_id)", example = "1")
    @ExcelColumn(name="所属方案基表编码(solution_base_id)")
@@ -136,9 +139,6 @@
    @ApiModelProperty(value = "版本号")
    @ExcelColumn(name="版本号")
    private String version;
    @ApiModelProperty(value = "签字位置关键字,多个英文逗号隔开")
    @ExcelColumn(name="签字位置关键字,多个英文逗号隔开")
    private String signKeyword;
    @ApiModelProperty(value = "记录类型 0基表数据 1历史版本数据", example = "1")
    @ExcelColumn(name="记录类型 0基表数据 1历史版本数据")
server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java
@@ -108,4 +108,8 @@
    ApplyChange findDetail(Integer id);
    Integer editPidan(ApplyChange applyChange);
    ApplyChange exportJiajianBaoExcel(ApplyChange model);
    ApplyChange exportChangeUnitExcel(ApplyChange model);
}
server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java
@@ -139,10 +139,6 @@
        if (pageWrap.getModel().getStartTime() != null) {
            queryWrapper.lambda().eq(ApplyChagneDetail::getStartTime, pageWrap.getModel().getStartTime());
        }
        if (pageWrap.getModel().getIdcardNo() != null) {
            queryWrapper.lambda().ge(ApplyChagneDetail::getIdcardNo, Utils.Date.getStart(pageWrap.getModel().getIdcardNo()));
            queryWrapper.lambda().le(ApplyChagneDetail::getIdcardNo, Utils.Date.getEnd(pageWrap.getModel().getIdcardNo()));
        }
        if (pageWrap.getModel().getDuId() != null) {
            queryWrapper.lambda().eq(ApplyChagneDetail::getDuId, pageWrap.getModel().getDuId());
        }
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -910,8 +910,112 @@
        ApplyChange applyChange =  applyChangeJoinMapper.selectOne(queryWrapper);
        return applyChange;
    }
    /**
     * 导出换厂申请表
     * @param param
     * @return
     */
    @Override
    public  ApplyChange  exportChangeUnitExcel(ApplyChange param){
        ApplyChange model = findJoinDetail(param);
        if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getType())){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        //查询明细
        List<ApplyChagneDetail> detailList =findJoinChangeDetailList(model);
        model.setChangeDetailList(detailList!=null?detailList:new ArrayList<>());
        model.setChangeNum(model.getChangeDetailList().size());
        return model;
    }
    /**
     * 导出加减保申请表
     * @param param
     * @return
     */
    @Override
    public  ApplyChange  exportJiajianBaoExcel(ApplyChange param){
        ApplyChange model = findJoinDetail(param);
        if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getType())){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        //查询明细
        List<ApplyChagneDetail> detailList =findJoinDetailList(model);
        model.setAddDetailList(new ArrayList<>());
        model.setDelDetailList(new ArrayList<>());
        if(detailList!=null){
            for(ApplyChagneDetail ad :detailList){
                if(Constants.equalsInteger(ad.getType(),Constants.ZERO)){
                    model.getAddDetailList().add(ad);
                }else{
                    model.getDelDetailList().add(ad);
                }
            }
        }
        model.setDelNum(model.getDelDetailList().size());
        model.setAddNum(model.getAddDetailList().size());
        return model;
    }
    private ApplyChange findJoinDetail(ApplyChange param) {
        MPJLambdaWrapper wrapper=  new MPJLambdaWrapper<ApplyChange>()
                .selectAll(ApplyChange.class)
                .selectAs(Solutions::getName,ApplyChange::getSolutionsName)
                .selectAs(Company::getName,ApplyChange::getCompanyName)
                .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode)
                .selectAs(InsuranceApply::getStartTime,ApplyChange::getStartTime)
                .selectAs(InsuranceApply::getStartTime,ApplyChange::getEndTime)
                .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                .leftJoin(Company.class,Company::getId,ApplyChange::getCompanyId)
                .eq(ApplyChange::getId,param.getId())
                .last("limit 1");
        ApplyChange model = applyChangeJoinMapper.selectJoinOne(ApplyChange.class,wrapper);
        return  model;
    }
    private List<ApplyChagneDetail> findJoinDetailList(ApplyChange model) {
        MPJLambdaWrapper wrapper1=  new MPJLambdaWrapper<ApplyChagneDetail>()
                .selectAll(ApplyChagneDetail.class)
                .selectAs(Member::getName,ApplyChagneDetail::getMemberName)
                .selectAs(Member::getSex,ApplyChagneDetail::getSex)
                .selectAs(Member::getIdcardNo,ApplyChagneDetail::getIdcardNo)
                .selectAs(Worktype::getName,ApplyChagneDetail::getWorkTypeName)
                .selectAs(DispatchUnit::getName,ApplyChagneDetail::getDuName)
                .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId)
                .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId)
                .leftJoin(Member.class,Member::getId,ApplyChagneDetail::getMemberId)
                .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO)
                .eq(ApplyChagneDetail::getApplyChangeId,model.getId());
        //查询明细
        List<ApplyChagneDetail> detailList =applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class,wrapper1);
        return  detailList;
    }
    private List<ApplyChagneDetail> findJoinChangeDetailList(ApplyChange model) {
        MPJLambdaWrapper wrapper1=  new MPJLambdaWrapper<ApplyChagneDetail>()
                .selectAll(ApplyChagneDetail.class)
                .selectAs(Member::getName,ApplyChagneDetail::getMemberName)
                .selectAs(Member::getSex,ApplyChagneDetail::getSex)
                .select("t1.name as worktypeName")
                .select("t2.name as duName")
                .select("t3.name as oldWorktypeName")
                .select("t4.name as oldDuName")
                .selectAs(Member::getSex,ApplyChagneDetail::getSex)
                .selectAs(Member::getIdcardNo,ApplyChagneDetail::getIdcardNo)
                .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId)
                .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId)
                .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getOldWorktypeId)
                .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getOldDuId)
                .leftJoin(Member.class,Member::getId,ApplyChagneDetail::getMemberId)
                .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO)
                .eq(ApplyChagneDetail::getApplyChangeId,model.getId());
        //查询明细
        List<ApplyChagneDetail> detailList =applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class,wrapper1);
        return  detailList;
    }
}
server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
@@ -1,5 +1,7 @@
package com.doumee.service.business.impl;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
@@ -167,6 +169,9 @@
    @Override
    public PageData<ApplyDetail> findPageForCompany(PageWrap<ApplyDetailPageDTO> pageWrap) {
        IPage<ApplyDetail> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        if(pageWrap.getModel().getApplyId() == null){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        MPJLambdaWrapper<ApplyDetail> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.selectAll(ApplyDetail.class);
@@ -176,15 +181,11 @@
        queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId);
        queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId);
        queryWrapper.leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId);
        ApplyDetailPageDTO applyDetailPageDTO = pageWrap.getModel();
        queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getApplyId()),ApplyDetail::getApplyId,applyDetailPageDTO.getApplyId());
        queryWrapper.ge(!Objects.isNull(applyDetailPageDTO.getApplyStatus())
                        &&!applyDetailPageDTO.getApplyStatus().equals(Constants.ZERO),
                ApplyDetail::getStartTime, DateUtil.getDate(new Date(),"yyyy-MM-dd")+" 00:00:00");
        //在保
        queryWrapper.le(!Objects.isNull(applyDetailPageDTO.getApplyStatus())
                &&applyDetailPageDTO.getApplyStatus().equals(Constants.ONE),
@@ -209,6 +210,12 @@
            }
        }
        PageData<ApplyDetail> pageData = PageData.from(applyDetailJoinMapper.selectJoinPage(page,ApplyDetail.class, queryWrapper));
        if(pageData.getRecords()!=null){
            int num = 1;
            for (ApplyDetail d : pageData.getRecords()){
                d.setSortnum(num++);
            }
        }
        return pageData;
    }
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -746,7 +746,7 @@
        MPJLambdaWrapper wrapper=  new MPJLambdaWrapper<InsuranceApply>()
                .selectAll(InsuranceApply.class)
                .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
                .selectAs(Company::getName,ApplyLog::getCompanyName)
                .selectAs(Company::getName,InsuranceApply::getCompanyName)
                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
                .eq(InsuranceApply::getId,model.getId())
server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java
@@ -254,6 +254,7 @@
    @Override
    public List<Solutions> findList(Solutions solutions) {
        solutions.setIsdeleted(Constants.ZERO);
        solutions.setDataType(Constants.TWO);
        QueryWrapper<Solutions> wrapper = new QueryWrapper<>(solutions);
        return solutionsMapper.selectList(wrapper);
    }