From bf8602574fb825691147964c1e9436c3df855dc5 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 22 一月 2024 15:17:11 +0800
Subject: [PATCH] 开发业务接口

---
 server/service/src/main/java/com/doumee/service/business/MemberInsuranceService.java          |   97 +++++++
 server/company/src/main/java/com/doumee/api/business/MemberInsuranceController.java           |   90 ++++++
 server/service/src/main/java/com/doumee/core/utils/Constants.java                             |    9 
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java  |   28 ++
 server/platform/src/main/java/com/doumee/api/business/InsuranceApplyController.java           |    6 
 server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java |  182 ++++++++++++++
 db/business.member_insurance.permissions.sql                                                  |    6 
 server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java          |   90 ++++++
 server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java           |    2 
 server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java              |   86 ++++++
 server/service/src/main/java/com/doumee/dao/business/MemberInsuranceMapper.java               |   12 
 server/service/src/main/java/com/doumee/dao/business/model/MemberInsurance.java               |  124 +++++++++
 12 files changed, 731 insertions(+), 1 deletions(-)

diff --git a/db/business.member_insurance.permissions.sql b/db/business.member_insurance.permissions.sql
new file mode 100644
index 0000000..f74a126
--- /dev/null
+++ b/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);
+
diff --git a/server/company/src/main/java/com/doumee/api/business/MemberInsuranceController.java b/server/company/src/main/java/com/doumee/api/business/MemberInsuranceController.java
new file mode 100644
index 0000000..22f6137
--- /dev/null
+++ b/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));
+    }
+}
diff --git a/server/platform/src/main/java/com/doumee/api/business/InsuranceApplyController.java b/server/platform/src/main/java/com/doumee/api/business/InsuranceApplyController.java
index a4505a4..ae33dc8 100644
--- a/server/platform/src/main/java/com/doumee/api/business/InsuranceApplyController.java
+++ b/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}")
diff --git a/server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java b/server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java
new file mode 100644
index 0000000..22f6137
--- /dev/null
+++ b/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));
+    }
+}
diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
index b236b07..b186485 100644
--- a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
+++ b/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 {
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 871280a..3ccb57e 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/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);
diff --git a/server/service/src/main/java/com/doumee/dao/business/MemberInsuranceMapper.java b/server/service/src/main/java/com/doumee/dao/business/MemberInsuranceMapper.java
new file mode 100644
index 0000000..35c6740
--- /dev/null
+++ b/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> {
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/MemberInsurance.java b/server/service/src/main/java/com/doumee/dao/business/model/MemberInsurance.java
new file mode 100644
index 0000000..218436d
--- /dev/null
+++ b/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 = "鎶曚繚鐢宠缂栫爜锛堝叧鑱攊nsurance_apply", example = "1")
+    @ExcelColumn(name="鎶曚繚鐢宠缂栫爜锛堝叧鑱攊nsurance_apply")
+    private Integer applyId;
+
+    @ApiModelProperty(value = "浜哄憳缂栫爜锛堝叧鑱攎emeber锛�", example = "1")
+    @ExcelColumn(name="浜哄憳缂栫爜锛堝叧鑱攎emeber锛�")
+    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 = "娲鹃仯鍗曚綅缂栫爜锛堝叧鑱攄ispatch_unit)", example = "1")
+    @ExcelColumn(name="娲鹃仯鍗曚綅缂栫爜锛堝叧鑱攄ispatch_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;
+
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java b/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
index 37de20a..62cef76 100644
--- a/server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
+++ b/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);
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/MemberInsuranceService.java b/server/service/src/main/java/com/doumee/service/business/MemberInsuranceService.java
new file mode 100644
index 0000000..281c687
--- /dev/null
+++ b/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);
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
index 599e639..a01003d 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
+++ b/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
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/MemberInsuranceServiceImpl.java
new file mode 100644
index 0000000..13e7166
--- /dev/null
+++ b/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);
+    }
+}

--
Gitblit v1.9.3