jiangping
2024-01-22 bf8602574fb825691147964c1e9436c3df855dc5
开发业务接口
已添加7个文件
已修改5个文件
732 ■■■■■ 文件已修改
db/business.member_insurance.permissions.sql 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/MemberInsuranceController.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/InsuranceApplyController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/core/utils/Constants.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/MemberInsuranceMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/MemberInsurance.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/MemberInsuranceService.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/business.member_insurance.permissions.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:memberinsurance:create', '新建员工投保明细记录', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:memberinsurance:delete', '删除员工投保明细记录', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:memberinsurance:update', '修改员工投保明细记录', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:memberinsurance:query', '查询员工投保明细记录', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:memberinsurance:exportExcel', '导出员工投保明细记录(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
server/company/src/main/java/com/doumee/api/business/MemberInsuranceController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.doumee.api.business;
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.model.MemberInsurance;
import com.doumee.service.business.MemberInsuranceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/01/22 11:55
 */
@Api(tags = "员工投保明细记录")
@RestController
@RequestMapping("/business/memberInsurance")
public class MemberInsuranceController extends BaseController {
    @Autowired
    private MemberInsuranceService memberInsuranceService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:memberinsurance:create")
    public ApiResponse create(@RequestBody MemberInsurance memberInsurance) {
        return ApiResponse.success(memberInsuranceService.create(memberInsurance));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:memberinsurance:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        memberInsuranceService.deleteById(id);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @RequiresPermissions("business:memberinsurance:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        memberInsuranceService.deleteByIdInBatch(idList);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @RequiresPermissions("business:memberinsurance:update")
    public ApiResponse updateById(@RequestBody MemberInsurance memberInsurance) {
        memberInsuranceService.updateById(memberInsurance);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:memberinsurance:query")
    public ApiResponse<PageData<MemberInsurance>> findPage (@RequestBody PageWrap<MemberInsurance> pageWrap) {
        return ApiResponse.success(memberInsuranceService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:memberinsurance:exportExcel")
    public void exportExcel (@RequestBody PageWrap<MemberInsurance> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(MemberInsurance.class).export(memberInsuranceService.findPage(pageWrap).getRecords(), "员工投保明细记录", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:memberinsurance:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(memberInsuranceService.findById(id));
    }
}
server/platform/src/main/java/com/doumee/api/business/InsuranceApplyController.java
@@ -112,6 +112,12 @@
    public void exportExcel (@RequestBody PageWrap<InsuranceApplyQueryDTO> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(InsuranceApply.class).export(insuranceApplyService.findPage(pageWrap).getRecords(), "投保申请信息表", response);
    }
    @ApiOperation("导出投保详情单")
    @PostMapping("/exportDetailExcel")
    @RequiresPermissions("business:insuranceapply:exportExcel")
    public void exportExcel (@RequestBody  InsuranceApply model, HttpServletResponse response) {
        ExcelExporter.build(InsuranceApply.class).exportApplyDetail(insuranceApplyService.findDetailForExport(model),  response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.doumee.api.business;
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.model.MemberInsurance;
import com.doumee.service.business.MemberInsuranceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/01/22 11:55
 */
@Api(tags = "员工投保明细记录")
@RestController
@RequestMapping("/business/memberInsurance")
public class MemberInsuranceController extends BaseController {
    @Autowired
    private MemberInsuranceService memberInsuranceService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:memberinsurance:create")
    public ApiResponse create(@RequestBody MemberInsurance memberInsurance) {
        return ApiResponse.success(memberInsuranceService.create(memberInsurance));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @RequiresPermissions("business:memberinsurance:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        memberInsuranceService.deleteById(id);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @RequiresPermissions("business:memberinsurance:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        memberInsuranceService.deleteByIdInBatch(idList);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @RequiresPermissions("business:memberinsurance:update")
    public ApiResponse updateById(@RequestBody MemberInsurance memberInsurance) {
        memberInsuranceService.updateById(memberInsurance);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:memberinsurance:query")
    public ApiResponse<PageData<MemberInsurance>> findPage (@RequestBody PageWrap<MemberInsurance> pageWrap) {
        return ApiResponse.success(memberInsuranceService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:memberinsurance:exportExcel")
    public void exportExcel (@RequestBody PageWrap<MemberInsurance> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(MemberInsurance.class).export(memberInsuranceService.findPage(pageWrap).getRecords(), "员工投保明细记录", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:memberinsurance:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(memberInsuranceService.findById(id));
    }
}
server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -2,6 +2,9 @@
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.ApplyDetail;
import com.doumee.dao.business.model.InsuranceApply;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
@@ -397,6 +400,89 @@
        return stringValue;
    }
    public void exportApplyDetail(InsuranceApply 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.exportApplyDetailDo(model,"投保申请表", response.getOutputStream());
        } catch (IOException e) {
            throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
        }
    }
    /**
     * å¯¼å‡ºåˆ°æŒ‡å®šè¾“出流
     * @param data æ•°æ®
     * @param sheetName Sheet名称
     * @param os è¾“出流
     */
    public void exportApplyDetailDo (InsuranceApply 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,6));
            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(2).setCellValue("保险生效起期");
            header1.createCell(3).setCellValue("保险生效止期");
            header1.createCell(4).setCellValue("投保人数");
            header1.createCell(5).setCellValue("总费用(元)");
            Row header2 = sheet.createRow(2);
            header2.createCell(0).setCellValue(data.getCompanyName());
            header2.createCell(1).setCellValue(data.getSolutionsName());
            header2.createCell(2).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getStartTime()));
            header2.createCell(3).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getEndTime()));
            header2.createCell(4).setCellValue(data.getInsureNum());
            header2.createCell(5).setCellValue(Constants.formatBigdecimal2Float(data.getFee()).toString());
            //空白行
            Row header3 = sheet.createRow(3);
            sheet.addMergedRegion(new CellRangeAddress(3  ,3,0,6));
            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("所属工种");
            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(),""));
            }
            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/core/utils/Constants.java
@@ -97,6 +97,15 @@
//        d = d.setScale(2, BigDecimal.ROUND_HALF_UP);
        return  d;
    }
    public static BigDecimal formatBigdecimal2Float(BigDecimal d) {
        if (d == null) {
            d = new BigDecimal(0.0);
        }
        //保留两位小数且四舍五入
        d = d.setScale(2, BigDecimal.ROUND_HALF_UP);
        return  d;
    }
    public static BigDecimal formatBigdecimal4Float(BigDecimal d) {
        if (d == null) {
            d = new BigDecimal(0.0);
server/service/src/main/java/com/doumee/dao/business/MemberInsuranceMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.MemberInsurance;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/01/22 11:55
 */
public interface MemberInsuranceMapper extends BaseMapper<MemberInsurance> {
}
server/service/src/main/java/com/doumee/dao/business/model/MemberInsurance.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,124 @@
package com.doumee.dao.business.model;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import java.math.BigDecimal;
/**
 * å‘˜å·¥æŠ•保明细记录
 * @author æ±Ÿè¹„蹄
 * @date 2024/01/22 11:55
 */
@Data
@ApiModel("员工投保明细记录")
@TableName("`member_insurance`")
public class MemberInsurance {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "排序码", example = "1")
    @ExcelColumn(name="排序码")
    private Integer sortnum;
    @ApiModelProperty(value = "投保申请编码(关联insurance_apply", example = "1")
    @ExcelColumn(name="投保申请编码(关联insurance_apply")
    private Integer applyId;
    @ApiModelProperty(value = "人员编码(关联memeber)", example = "1")
    @ExcelColumn(name="人员编码(关联memeber)")
    private Integer memberId;
    @ApiModelProperty(value = "实际保险生效止期")
    @ExcelColumn(name="实际保险生效止期")
    private String endTime;
    @ApiModelProperty(value = "实际保险生效起期")
    @ExcelColumn(name="实际保险生效起期")
    private String startTime;
    @ApiModelProperty(value = "最近操作时间")
    @ExcelColumn(name="最近操作时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date idcardNo;
    @ApiModelProperty(value = "派遣单位编码(关联dispatch_unit)", example = "1")
    @ExcelColumn(name="派遣单位编码(关联dispatch_unit)")
    private Integer duId;
    @ApiModelProperty(value = "工种编码(关联worktype)", example = "1")
    @ExcelColumn(name="工种编码(关联worktype)")
    private Integer worktypeId;
    @ApiModelProperty(value = "当前产生费用", example = "1")
    @ExcelColumn(name="当前产生费用")
    private BigDecimal currentFee;
    @ApiModelProperty(value = "费用", example = "1")
    @ExcelColumn(name="费用")
    private BigDecimal fee;
    @ApiModelProperty(value = "性别 0男 1女", example = "1")
    @ExcelColumn(name="性别 0男 1女")
    private Integer sex;
    @ApiModelProperty(value = "保单号")
    @ExcelColumn(name="保单号")
    private String bdCode;
    @ApiModelProperty(value = "批单号")
    @ExcelColumn(name="批单号")
    private String pdCode;
    @ApiModelProperty(value = "保险方案名称")
    @ExcelColumn(name="保险方案名称")
    private String solutionName;
    @ApiModelProperty(value = "批单申请编码", example = "1")
    @ExcelColumn(name="批单申请编码")
    private Integer applyChangeId;
    @ApiModelProperty(value = "工种名称")
    @ExcelColumn(name="工种名称")
    private String worktypeName;
    @ApiModelProperty(value = "派遣单位名称")
    @ExcelColumn(name="派遣单位名称")
    private String duName;
}
server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
@@ -110,4 +110,6 @@
    Integer   dealBackApply(InsuranceApply insuranceApply);
    Integer check(InsuranceApply insuranceApply);
     InsuranceApply  findDetailForExport(InsuranceApply model);
}
server/service/src/main/java/com/doumee/service/business/MemberInsuranceService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.doumee.service.business;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.MemberInsurance;
import java.util.List;
/**
 * å‘˜å·¥æŠ•保明细记录Service定义
 * @author æ±Ÿè¹„蹄
 * @date 2024/01/22 11:55
 */
public interface MemberInsuranceService {
    /**
     * åˆ›å»º
     *
     * @param memberInsurance å®žä½“对象
     * @return Integer
     */
    Integer create(MemberInsurance memberInsurance);
    /**
     * ä¸»é”®åˆ é™¤
     *
     * @param id ä¸»é”®
     */
    void deleteById(Integer id);
    /**
     * åˆ é™¤
     *
     * @param memberInsurance å®žä½“对象
     */
    void delete(MemberInsurance memberInsurance);
    /**
     * æ‰¹é‡ä¸»é”®åˆ é™¤
     *
     * @param ids ä¸»é”®é›†
     */
    void deleteByIdInBatch(List<Integer> ids);
    /**
     * ä¸»é”®æ›´æ–°
     *
     * @param memberInsurance å®žä½“对象
     */
    void updateById(MemberInsurance memberInsurance);
    /**
     * æ‰¹é‡ä¸»é”®æ›´æ–°
     *
     * @param memberInsurances å®žä½“集
     */
    void updateByIdInBatch(List<MemberInsurance> memberInsurances);
    /**
     * ä¸»é”®æŸ¥è¯¢
     *
     * @param id ä¸»é”®
     * @return MemberInsurance
     */
    MemberInsurance findById(Integer id);
    /**
     * æ¡ä»¶æŸ¥è¯¢å•条记录
     *
     * @param memberInsurance å®žä½“对象
     * @return MemberInsurance
     */
    MemberInsurance findOne(MemberInsurance memberInsurance);
    /**
     * æ¡ä»¶æŸ¥è¯¢
     *
     * @param memberInsurance å®žä½“对象
     * @return List<MemberInsurance>
     */
    List<MemberInsurance> findList(MemberInsurance memberInsurance);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param pageWrap åˆ†é¡µå¯¹è±¡
     * @return PageData<MemberInsurance>
     */
    PageData<MemberInsurance> findPage(PageWrap<MemberInsurance> pageWrap);
    /**
     * æ¡ä»¶ç»Ÿè®¡
     *
     * @param memberInsurance å®žä½“对象
     * @return long
     */
    long count(MemberInsurance memberInsurance);
}
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -80,7 +80,7 @@
        if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.UPLOAD.getKey())){
        if(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~");
        }
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
@@ -572,6 +572,32 @@
        insuranceApply.setApplyLogList(applyLogList);
        return insuranceApply;
    }
    @Override
    public  InsuranceApply  findDetailForExport(InsuranceApply model){
        MPJLambdaWrapper wrapper=  new MPJLambdaWrapper<InsuranceApply>()
                .selectAll(InsuranceApply.class)
                .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
                .selectAs(Company::getName,ApplyLog::getCompanyName)
                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
                .eq(InsuranceApply::getId,model.getId())
                .last("limit 1");
        InsuranceApply insuranceApply = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,wrapper);
        if(Objects.isNull(insuranceApply)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        //查询明细
        List<ApplyDetail> detailList =applyDetailMapper.selectList(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getApplyId,insuranceApply.getId())
                .eq(ApplyDetail::getIsdeleted,Constants.ZERO));
        if(detailList!=null){
            insuranceApply.setInsureNum(detailList.size());
            insuranceApply.setApplyDetailList(detailList);
        }
        insuranceApply.setRemark(model.getRemark());
        return insuranceApply;
    }
    @Override
server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,182 @@
package com.doumee.service.business.impl;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.MemberInsuranceMapper;
import com.doumee.dao.business.model.MemberInsurance;
import com.doumee.service.business.MemberInsuranceService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
 * å‘˜å·¥æŠ•保明细记录Service实现
 * @author æ±Ÿè¹„蹄
 * @date 2024/01/22 11:55
 */
@Service
public class MemberInsuranceServiceImpl implements MemberInsuranceService {
    @Autowired
    private MemberInsuranceMapper memberInsuranceMapper;
    @Override
    public Integer create(MemberInsurance memberInsurance) {
        memberInsuranceMapper.insert(memberInsurance);
        return memberInsurance.getId();
    }
    @Override
    public void deleteById(Integer id) {
        memberInsuranceMapper.deleteById(id);
    }
    @Override
    public void delete(MemberInsurance memberInsurance) {
        UpdateWrapper<MemberInsurance> deleteWrapper = new UpdateWrapper<>(memberInsurance);
        memberInsuranceMapper.delete(deleteWrapper);
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        memberInsuranceMapper.deleteBatchIds(ids);
    }
    @Override
    public void updateById(MemberInsurance memberInsurance) {
        memberInsuranceMapper.updateById(memberInsurance);
    }
    @Override
    public void updateByIdInBatch(List<MemberInsurance> memberInsurances) {
        if (CollectionUtils.isEmpty(memberInsurances)) {
            return;
        }
        for (MemberInsurance memberInsurance: memberInsurances) {
            this.updateById(memberInsurance);
        }
    }
    @Override
    public MemberInsurance findById(Integer id) {
        return memberInsuranceMapper.selectById(id);
    }
    @Override
    public MemberInsurance findOne(MemberInsurance memberInsurance) {
        QueryWrapper<MemberInsurance> wrapper = new QueryWrapper<>(memberInsurance);
        return memberInsuranceMapper.selectOne(wrapper);
    }
    @Override
    public List<MemberInsurance> findList(MemberInsurance memberInsurance) {
        QueryWrapper<MemberInsurance> wrapper = new QueryWrapper<>(memberInsurance);
        return memberInsuranceMapper.selectList(wrapper);
    }
    @Override
    public PageData<MemberInsurance> findPage(PageWrap<MemberInsurance> pageWrap) {
        IPage<MemberInsurance> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<MemberInsurance> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(MemberInsurance::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(MemberInsurance::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(MemberInsurance::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(MemberInsurance::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getSortnum() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getSortnum, pageWrap.getModel().getSortnum());
        }
        if (pageWrap.getModel().getApplyId() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getApplyId, pageWrap.getModel().getApplyId());
        }
        if (pageWrap.getModel().getMemberId() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getMemberId, pageWrap.getModel().getMemberId());
        }
        if (pageWrap.getModel().getEndTime() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getEndTime, pageWrap.getModel().getEndTime());
        }
        if (pageWrap.getModel().getStartTime() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getStartTime, pageWrap.getModel().getStartTime());
        }
        if (pageWrap.getModel().getIdcardNo() != null) {
            queryWrapper.lambda().ge(MemberInsurance::getIdcardNo, Utils.Date.getStart(pageWrap.getModel().getIdcardNo()));
            queryWrapper.lambda().le(MemberInsurance::getIdcardNo, Utils.Date.getEnd(pageWrap.getModel().getIdcardNo()));
        }
        if (pageWrap.getModel().getDuId() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getDuId, pageWrap.getModel().getDuId());
        }
        if (pageWrap.getModel().getWorktypeId() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getWorktypeId, pageWrap.getModel().getWorktypeId());
        }
        if (pageWrap.getModel().getCurrentFee() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getCurrentFee, pageWrap.getModel().getCurrentFee());
        }
        if (pageWrap.getModel().getFee() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getFee, pageWrap.getModel().getFee());
        }
        if (pageWrap.getModel().getSex() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getSex, pageWrap.getModel().getSex());
        }
        if (pageWrap.getModel().getBdCode() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getBdCode, pageWrap.getModel().getBdCode());
        }
        if (pageWrap.getModel().getPdCode() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getPdCode, pageWrap.getModel().getPdCode());
        }
        if (pageWrap.getModel().getSolutionName() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getSolutionName, pageWrap.getModel().getSolutionName());
        }
        if (pageWrap.getModel().getApplyChangeId() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getApplyChangeId, pageWrap.getModel().getApplyChangeId());
        }
        if (pageWrap.getModel().getWorktypeName() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getWorktypeName, pageWrap.getModel().getWorktypeName());
        }
        if (pageWrap.getModel().getDuName() != null) {
            queryWrapper.lambda().eq(MemberInsurance::getDuName, pageWrap.getModel().getDuName());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(memberInsuranceMapper.selectPage(page, queryWrapper));
    }
    @Override
    public long count(MemberInsurance memberInsurance) {
        QueryWrapper<MemberInsurance> wrapper = new QueryWrapper<>(memberInsurance);
        return memberInsuranceMapper.selectCount(wrapper);
    }
}