diff --git a/yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceExportListParam.java b/yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceExportListParam.java
new file mode 100644
index 0000000000000000000000000000000000000000..d01529f846af10e76ee4dbfea3aa204bc472aa83
--- /dev/null
+++ b/yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceExportListParam.java
@@ -0,0 +1,48 @@
+package com.yifu.cloud.plus.v1.yifu.insurances.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author licancan
+ * @description 导出办理请求参数
+ * @date 2022-07-21 14:21:06
+ */
+@Data
+@Schema(description = "导出办理请求参数")
+public class InsuranceExportListParam implements Serializable {
+	private static final long serialVersionUID = 3623027153213352936L;
+
+	/**
+	 * 员工姓名
+	 */
+	@Schema(description = "员工姓名")
+	private String empName;
+
+	/**
+	 * 员工身份证号
+	 */
+	@Schema(description = "员工身份证号")
+	private String empIdcardNo;
+
+	/**
+	 * 项目编码
+	 */
+	@Schema(description = "项目编码")
+	private String deptNo;
+
+	/**
+	 * 保险公司名称
+	 */
+	@Schema(description = "保险公司名称")
+	private String insuranceCompanyName;
+
+	/**
+	 * 商险id集合
+	 */
+	@Schema(description = "商险id集合")
+	private List<String> idList;
+}
diff --git a/yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceExportListVO.java b/yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceExportListVO.java
new file mode 100644
index 0000000000000000000000000000000000000000..f3e2687e0f000b90aa96812fe4bdec739c59d8d9
--- /dev/null
+++ b/yifu-insurances/yifu-insurances-api/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/vo/InsuranceExportListVO.java
@@ -0,0 +1,159 @@
+package com.yifu.cloud.plus.v1.yifu.insurances.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * @author licancan
+ * @description 导出办理VO
+ * @date 2022-07-21 14:21:39
+ */
+@Data
+@Schema(description = "导出办理VO")
+public class InsuranceExportListVO implements Serializable {
+	private static final long serialVersionUID = -8159190612104775933L;
+
+	/**
+	 * 主键
+	 */
+	private String id;
+
+	/**
+	 * 订单编号
+	 */
+	@Schema(description = "订单编号")
+	private String orderNo;
+
+	/**
+	 * 项目名称
+	 */
+	@Schema(description = "项目名称")
+	private String projectName;
+
+	/**
+	 * 项目编码
+	 */
+	@Schema(description = "项目编码")
+	private String deptNo;
+
+	/**
+	 * 员工姓名
+	 */
+	@Schema(description = "员工姓名")
+	private String empName;
+
+	/**
+	 * 员工身份证号
+	 */
+	@Schema(description = "员工身份证号")
+	private String empIdcardNo;
+
+	/**
+	 * 投保类型, 1新增、3批增、4替换
+	 */
+	@Schema(description = " 投保类型, 1新增、3批增、4替换")
+	private Integer buyType;
+
+	/**
+	 * 投保岗位
+	 */
+	@Schema(description = "投保岗位")
+	private String post;
+
+	/**
+	 * 商险购买地省
+	 */
+	@Schema(description = "商险购买地省")
+	private String insuranceProvinceName;
+
+	/**
+	 * 商险购买地市
+	 */
+	@Schema(description = "商险购买地市")
+	private String insuranceCityName;
+
+	/**
+	 * 商险办理省
+	 */
+	@Schema(description = "商险办理省")
+	private String insuranceHandleProvinceName;
+
+	/**
+	 * 商险办理城市
+	 */
+	@Schema(description = "商险办理城市")
+	private String insuranceHandleCityName;
+
+	/**
+	 * 保单开始时间
+	 */
+	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
+	@Schema(description = "保单开始时间")
+	private LocalDate policyStart;
+
+	/**
+	 * 保单结束时间
+	 */
+	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
+	@Schema(description = "保单结束时间")
+	private LocalDate policyEnd;
+
+	/**
+	 * 保险公司名称(冗余字段)
+	 */
+	@Schema(description = "保险公司名称")
+	private String insuranceCompanyName;
+
+	/**
+	 * 险种名称
+	 */
+	@Schema(description = "险种名称")
+	private String insuranceTypeName;
+
+	/**
+	 * 购买标准
+	 */
+	@Schema(description = "购买标准")
+	private String buyStandard;
+
+	/**
+	 * 医疗额度
+	 */
+	@Schema(description = "医疗额度")
+	private String medicalQuota;
+
+	/**
+	 * 身故或残疾额度
+	 */
+	@Schema(description = "身故或残疾额度")
+	private String dieDisableQuota;
+
+	/**
+	 * 结算月
+	 */
+	@Schema(description = "结算月")
+	private String settleMonth;
+
+	/**
+	 * 结算类型 (0、预估 1、实缴)
+	 */
+	@Schema(description = "结算类型 (0、预估 1、实缴)")
+	private Integer settleType;
+
+	/**
+	 * 创建人姓名
+	 */
+	@Schema(description = "创建人(派单人)")
+	private String createName;
+
+	/**
+	 * 备注
+	 */
+	@Schema(description = "备注")
+	private String remark;
+
+}
diff --git a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TInsuranceDetailController.java b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TInsuranceDetailController.java
index 4ab99b845d6f5061262f68ad08a2c983a3db893b..740b76b25dd1858b20c62d55a8facaade8edd4b4 100644
--- a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TInsuranceDetailController.java
+++ b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/controller/TInsuranceDetailController.java
@@ -141,6 +141,19 @@ public class TInsuranceDetailController {
 		return R.ok(tInsuranceDetailService.getInsuranceDetailById(id));
 	}
 
+	/**
+	 * 导出办理
+	 *
+	 * @author licancan
+	 * @param param
+	 * @return {@link R<List<InsuranceExportListVO>>}
+	 */
+	@Operation(summary = "导出办理", description = "导出办理")
+	@PostMapping("/getInsuranceExportList")
+	public R<List<InsuranceExportListVO>> getInsuranceExportList(@RequestBody InsuranceExportListParam param) {
+		return R.ok(tInsuranceDetailService.getInsuranceExportList(param));
+	}
+
 	/***********************减员办理********************************/
 	/**
 	 * 导入减员校验
diff --git a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/mapper/TInsuranceDetailMapper.java b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/mapper/TInsuranceDetailMapper.java
index d512ae9024bf5fb496e286edde2010b605a61244..6bbd3384d5a2d68b9dd1dd2efc306fdb5aa59ced 100644
--- a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/mapper/TInsuranceDetailMapper.java
+++ b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/mapper/TInsuranceDetailMapper.java
@@ -46,6 +46,24 @@ public interface TInsuranceDetailMapper extends BaseMapper<TInsuranceDetail> {
 	 */
 	InsuranceDetailVO getInsuranceDetailById(@Param("id") String id);
 
+	/**
+	 * 导出办理勾选查询结果
+	 *
+	 * @author licancan
+	 * @param idList
+	 * @return {@link List<InsuranceExportListVO>}
+	 */
+	List<InsuranceExportListVO> getInsuranceExportListBySelect(@Param("idList") List<String> idList);
+
+	/**
+	 * 导出办理非勾选查询结果
+	 *
+	 * @author licancan
+	 * @param param
+	 * @return {@link List< InsuranceExportListVO>}
+	 */
+	List<InsuranceExportListVO> getInsuranceExportList(@Param("param") InsuranceExportListParam param);
+
 	/***********************减员办理********************************/
 
 	/**
diff --git a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/TInsuranceDetailService.java b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/TInsuranceDetailService.java
index 64cbbac01e2d8a2b1fa0b90c60de88adcdd3ec87..d9883cd84baafc82b4fa35278911c276b3dd5c96 100644
--- a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/TInsuranceDetailService.java
+++ b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/TInsuranceDetailService.java
@@ -90,6 +90,15 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> {
 	 */
 	InsuranceDetailVO getInsuranceDetailById(String id);
 
+	/**
+	 * 导出办理
+	 *
+	 * @author licancan
+	 * @param param
+	 * @return {@link List<InsuranceExportListVO>}
+	 */
+	List<InsuranceExportListVO> getInsuranceExportList(InsuranceExportListParam param);
+
 	/***********************减员办理********************************/
 	/**
 	 * 减员导入校验
diff --git a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/impl/TInsuranceDetailServiceImpl.java b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/impl/TInsuranceDetailServiceImpl.java
index 5862c877b4f4abd49a19adecb4ba034a8b00f3ae..04220612bec993c645dced8ec50cf8b8a04cd0f7 100644
--- a/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/impl/TInsuranceDetailServiceImpl.java
+++ b/yifu-insurances/yifu-insurances-biz/src/main/java/com/yifu/cloud/plus/v1/yifu/insurances/service/impl/TInsuranceDetailServiceImpl.java
@@ -28,6 +28,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.*;
 
@@ -405,6 +406,58 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
 		return insuranceDetailVO;
 	}
 
+	/**
+	 * 导出办理
+	 *
+	 * @param param
+	 * @return {@link List<InsuranceExportListVO>}
+	 * @author licancan
+	 */
+	@Override
+	public List<InsuranceExportListVO> getInsuranceExportList(InsuranceExportListParam param) {
+		YifuUser user = SecurityUtils.getUser();
+		List<InsuranceExportListVO> insuranceExportList;
+		//todo 根据登录人获取数据权限
+
+		//如勾选项不为空,则导出勾选记录;否则导出当前筛选条件下 && 「待投保」的结果集
+		if (CollectionUtils.isNotEmpty(param.getIdList())){
+			insuranceExportList =  baseMapper.getInsuranceExportListBySelect(param.getIdList());
+		}else {
+			insuranceExportList = baseMapper.getInsuranceExportList(param);
+		}
+		if (CollectionUtils.isNotEmpty(insuranceExportList)){
+			List<TInsuranceDetail> detailList = new ArrayList<>();
+			//根据项目编码获取项目名称
+			List<String> collect = insuranceExportList.stream().map(e -> e.getDeptNo()).distinct().collect(Collectors.toList());
+			R<Map> setInfoByCodes = archivesDaprUtil.getSetInfoByCodes(collect);
+			if (null != setInfoByCodes && setInfoByCodes.getCode() != CommonConstants.SUCCESS && MapUtils.isNotEmpty(setInfoByCodes.getData())) {
+				Map data = setInfoByCodes.getData();
+				for (InsuranceExportListVO record : insuranceExportList) {
+					JSONObject jsonObject = (JSONObject) data.get(record.getDeptNo());
+					if (null != jsonObject){
+						record.setProjectName(Optional.ofNullable(jsonObject.getString("departName")).orElse(""));
+					}
+					TInsuranceDetail detail = new TInsuranceDetail();
+					detail.setId(record.getId());
+					//update状态由「待投保」置为「投保中」
+					detail.setBuyHandleStatus(CommonConstants.TWO_INT);
+					if (record.getBuyType() == CommonConstants.ONE_INT){
+						//  if 投保类型 == 新增,then 更新保单生效日期为:T+1,无需考虑节假日
+						detail.setPolicyEffect(LocalDate.now().plusDays(CommonConstants.ONE_INT));
+					}
+					detail.setUpdateBy(user.getId());
+					detail.setUpdateTime(LocalDateTime.now());
+					detailList.add(detail);
+				}
+			}
+			//批量更新
+			if (CollectionUtils.isNotEmpty(detailList)){
+				this.saveOrUpdateBatch(detailList);
+			}
+		}
+		return insuranceExportList;
+	}
+
 	/**
 	 * 商险新增校验
 	 *
diff --git a/yifu-insurances/yifu-insurances-biz/src/main/resources/mapper/TInsuranceDetailMapper.xml b/yifu-insurances/yifu-insurances-biz/src/main/resources/mapper/TInsuranceDetailMapper.xml
index 338a2aefe635d40cae3ba816b7877c09e54a6c55..54d6a1b82bcfb609f2a1ca70457ebf9780f96e6b 100644
--- a/yifu-insurances/yifu-insurances-biz/src/main/resources/mapper/TInsuranceDetailMapper.xml
+++ b/yifu-insurances/yifu-insurances-biz/src/main/resources/mapper/TInsuranceDetailMapper.xml
@@ -183,6 +183,78 @@
 		where detail.ID = #{id}
 	</select>
 
+	<select id="getInsuranceExportListBySelect" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceExportListVO">
+		select detail.id as id,
+		detail.ORDER_NO as orderNo,
+		detail.DEPT_NO as deptNo,
+		detail.EMP_NAME as empName,
+		detail.EMP_IDCARD_NO as empIdcardNo,
+		detail.BUY_TYPE as buyType,
+		detail.POST as post,
+		detail.INSURANCE_PROVINCE_NAME as insuranceProvinceName,
+		detail.INSURANCE_CITY_NAME as insuranceCityName,
+		detail.INSURANCE_HANDLE_PROVINCE_NAME as insuranceHandleProvinceName,
+		detail.INSURANCE_HANDLE_CITY_NAME as insuranceHandleCityName,
+		detail.POLICY_START as policyStart,
+		detail.POLICY_END as policyEnd,
+		detail.INSURANCE_COMPANY_NAME as insuranceCompanyName,
+		detail.INSURANCE_TYPE_NAME as insuranceTypeName,
+		detail.BUY_STANDARD as buyStandard,
+		detail.MEDICAL_QUOTA as medicalQuota,
+		detail.DIE_DISABLE_QUOTA as dieDisableQuota,
+		detail.SETTLE_MONTH as settleMonth,
+		detail.SETTLE_TYPE as settleType,
+		detail.CREATE_NAME as createName,
+		detail.REMARK as remark
+		from t_insurance_detail detail
+		where detail.id in
+		<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
+			#{item}
+		</foreach>
+		ORDER BY detail.CREATE_TIME DESC
+	</select>
+
+	<select id="getInsuranceExportList" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceExportListVO">
+		select detail.id as id,
+			detail.ORDER_NO as orderNo,
+			detail.DEPT_NO as deptNo,
+			detail.EMP_NAME as empName,
+			detail.EMP_IDCARD_NO as empIdcardNo,
+			detail.BUY_TYPE as buyType,
+			detail.POST as post,
+			detail.INSURANCE_PROVINCE_NAME as insuranceProvinceName,
+			detail.INSURANCE_CITY_NAME as insuranceCityName,
+			detail.INSURANCE_HANDLE_PROVINCE_NAME as insuranceHandleProvinceName,
+			detail.INSURANCE_HANDLE_CITY_NAME as insuranceHandleCityName,
+			detail.POLICY_START as policyStart,
+			detail.POLICY_END as policyEnd,
+			detail.INSURANCE_COMPANY_NAME as insuranceCompanyName,
+			detail.INSURANCE_TYPE_NAME as insuranceTypeName,
+			detail.BUY_STANDARD as buyStandard,
+			detail.MEDICAL_QUOTA as medicalQuota,
+			detail.DIE_DISABLE_QUOTA as dieDisableQuota,
+			detail.SETTLE_MONTH as settleMonth,
+			detail.SETTLE_TYPE as settleType,
+			detail.CREATE_NAME as createName,
+			detail.REMARK as remark
+		from t_insurance_detail detail
+		where detail.DELETE_FLAG = 0 and detail.BUY_HANDLE_STATUS = 1
+		<if test="param.empName != null and param.empName.trim() != ''">
+			and detail.EMP_NAME like concat('%',replace(replace(#{param.empName},'_','\_'),'%','\%'),'%')
+		</if>
+		<if test="param.empIdcardNo != null and param.empIdcardNo.trim() != ''">
+			and detail.EMP_IDCARD_NO like concat('%',replace(replace(#{param.empIdcardNo},'_','\_'),'%','\%'),'%')
+		</if>
+		<if test="param.deptNo != null and param.deptNo.trim() != ''">
+			and detail.DEPT_NO like concat('%',replace(replace(#{deptNo},'_','\_'),'%','\%'),'%')
+		</if>
+		<if test="param.insuranceCompanyName != null and param.insuranceCompanyName.trim() != ''">
+			and detail.INSURANCE_COMPANY_NAME like concat('%',replace(replace(#{param.insuranceCompanyName},'_','\_'),'%','\%'),'%')
+		</if>
+		ORDER BY detail.CREATE_TIME DESC
+	</select>
+
+	<!-- ***********************减员办理******************************** -->
 	<select id="getInsuredListPage" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuredListVo">
 		select
 		detail.id as id,
@@ -220,6 +292,7 @@
 		</if>
 		ORDER BY detail.CREATE_TIME DESC
 	</select>
+
 	<select id="getInsuredList" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuredListVo">
 		select detail.id as id,
 		detail.ORDER_NO as orderNo,
@@ -256,4 +329,5 @@
 		</if>
 		ORDER BY detail.CREATE_TIME DESC
 	</select>
+
 </mapper>