zhangxin 3 өдөр өмнө
parent
commit
f44c78bf2d
13 өөрчлөгдсөн 281 нэмэгдсэн , 17 устгасан
  1. 14 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/GameServiceImpl.java
  2. 24 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/vo/game/PriceData.java
  3. 4 5
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/InsureOrderInfoController.java
  4. 1 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/separateAccounts/MerchantController.java
  5. 1 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/merchant/AddMerchantRequestDTO.java
  6. 8 4
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/AppInsure.java
  7. 4 1
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/FamilyMembersMapper.java
  8. 4 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/InsureOrderInfoMapper.java
  9. 35 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/InsureOrderInfoMapper.xml
  10. 5 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/IInsureOrderInfoService.java
  11. 12 2
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/FamilyMembersServiceImpl.java
  12. 167 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/InsureOrderInfoServiceImpl.java
  13. 2 2
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java

+ 14 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/service/impl/GameServiceImpl.java

@@ -3,6 +3,8 @@ package org.jeecg.modules.app.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.api.vo.Result;
@@ -15,7 +17,7 @@ import org.jeecg.modules.system.app.mapper.AppGamePriceRulesMapper;
 import org.jeecg.modules.system.app.mapper.AppInsureMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-
+import com.fasterxml.jackson.core.type.TypeReference;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -106,6 +108,15 @@ public class GameServiceImpl  implements IGameService {
                     .eq(AppInsure::getDelFlag,0);  // 方法引用 + 集合
             List<AppInsure> appInsureList = appInsureMapper.selectList(wrapper);
             DictAnnotationUtil.translateDictList(appInsureList);
+            ObjectMapper objectMapper = new ObjectMapper();
+            for (AppInsure appInsure : appInsureList) {
+                try {
+                    List<PriceData> priceData = objectMapper.readValue(appInsure.getPrice(), new TypeReference<List<PriceData>>() {});
+                    appInsure.setPriceDataList(priceData);
+                } catch (JsonProcessingException e) {
+                    return Result.error("保险金额转换失败");
+                }
+            }
             findByGameIdPriceVo.setInsureIdList(appInsureList);
         }
 
@@ -130,4 +141,6 @@ public class GameServiceImpl  implements IGameService {
         return Result.OK(findByGameIdPriceVo);
     }
 
+
+
 }

+ 24 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/app/vo/game/PriceData.java

@@ -0,0 +1,24 @@
+package org.jeecg.modules.app.vo.game;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import java.math.BigDecimal;
+
+public class PriceData {
+    private final int day;
+    private final BigDecimal price;
+
+
+    @JsonCreator
+    public PriceData(@JsonProperty("day") int day,
+                     @JsonProperty("price") BigDecimal price) {
+        this.day = day;
+        this.price = price;
+    }
+
+    // 只提供getter方法,确保不可变性
+    public int getDay() { return day; }
+    public BigDecimal getPrice() { return price; }
+
+}

+ 4 - 5
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/InsureOrderInfoController.java

@@ -14,7 +14,6 @@ import org.jeecg.modules.system.app.entity.InsureOrderInfo;
 import org.jeecg.modules.system.app.service.IInsureOrderInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -128,12 +127,12 @@ public class InsureOrderInfoController extends JeecgController<InsureOrderInfo,
     * 导出excel
     *
     * @param request
-    * @param insureOrderInfo
+    * @param findInsureOrderPageRequestDTO
     */
-    @RequiresPermissions("insureOrderInfo:nm_insure_order_info:exportXls")
+	@Operation(summary="保险订单-导出")
     @RequestMapping(value = "/exportXls")
-    public ModelAndView exportXls(HttpServletRequest request, InsureOrderInfo insureOrderInfo) {
-        return super.exportXls(request, insureOrderInfo, InsureOrderInfo.class, "保险订单");
+    public void exportXls(HttpServletRequest request,HttpServletResponse response, FindInsureOrderPageRequestDTO findInsureOrderPageRequestDTO) {
+		insureOrderInfoService.exportXls(request,response, findInsureOrderPageRequestDTO,findInsureOrderPageRequestDTO.getInsureCompany_dictText() +"保险订单");
     }
 
     /**

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/separateAccounts/MerchantController.java

@@ -95,7 +95,7 @@ public class MerchantController {
     /**
      * 重置密码
      * 重置密码
-     * @param addMerchantRequestDTO
+     * @param id
      * @return
      */
     @Operation(summary="商户管理-重置密码")

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/merchant/AddMerchantRequestDTO.java

@@ -31,7 +31,7 @@ public class AddMerchantRequestDTO {
     /**管理员名称*/
     @NotNull(message = "管理员名称不允许为空")
     @Schema(description = "管理员名称")
-    private String realName;
+    private String realname;
 
     /**管理员手机号*/
     @NotNull(message = "管理员手机号不允许为空")

+ 8 - 4
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/entity/AppInsure.java

@@ -7,12 +7,13 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecg.modules.app.vo.game.PriceData;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
-import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @Description: 保险表
@@ -42,7 +43,7 @@ public class AppInsure implements Serializable {
     private String tenantId;
 
     @Schema(description = "价格")
-    private BigDecimal price;
+    private String price;
     @Dict(dicCode = "insurance_name")
     @Schema(description = "保险公司")
     private Integer insuranceName;
@@ -55,8 +56,6 @@ public class AppInsure implements Serializable {
     @TableField(exist = false)
     @Schema(description = "保险类型名称,暂时为0 意外险")
     private String insuranceType_dictText;
-    @Schema(description = "保障期限使用,进行分割")
-    private String guaranteeTerm;
     @Schema(description = "保险责任与保额使用json存储key为保险责任,value为保额")
     private String insuranceObvious;
 	/**险种*/
@@ -92,4 +91,9 @@ public class AppInsure implements Serializable {
     @Schema(description = "删除标志;删除状态(0-正常,1-已删除)")
     @TableLogic
     private Integer delFlag;
+
+
+    @TableField(exist = false)
+    @Schema(description = "保险期限")
+    private List<PriceData> priceDataList;
 }

+ 4 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/FamilyMembersMapper.java

@@ -18,9 +18,12 @@ import java.util.List;
  */
 public interface FamilyMembersMapper extends BaseMapper<FamilyMembers> {
 
-    @Select("select  * from nm_family_members where  user_id = #{userId} order by user_type asc,create_time desc")
+    @Select("select  * from nm_family_members where  user_id = #{userId} and real_name_status =1 order by user_type asc,create_time desc")
     List<FamilyMembers> findByUserId(@Param("userId") String userId);
 
     @Select("select  * from nm_family_members where  user_id = #{userId} order by user_type asc,create_time desc")
    IPage<FamilyMembers> findByPage(@Param("page") Page<FindResponseDTO> page, @Param("userId") String userId);
+
+    @Select("select  * from nm_family_members where  user_id = #{userId} and phone =#{phone} limit 1")
+    FamilyMembers findByUserIdAndPhone(String userId, String phone);
 }

+ 4 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/InsureOrderInfoMapper.java

@@ -8,6 +8,8 @@ import org.jeecg.modules.system.app.dto.insureOrder.FindInsureOrderPageRequestDT
 import org.jeecg.modules.system.app.dto.insureOrder.FindInsureOrderPageResponseDTO;
 import org.jeecg.modules.system.app.entity.InsureOrderInfo;
 
+import java.util.List;
+
 /**
  * @Description: 保险订单
  * @Author: jeecg-boot
@@ -19,4 +21,6 @@ public interface InsureOrderInfoMapper extends BaseMapper<InsureOrderInfo> {
     IPage<FindInsureOrderPageResponseDTO> findPage(@Param("page") Page<FindInsureOrderPageResponseDTO> page,@Param("findInsureOrderPageRequestDTO")  FindInsureOrderPageRequestDTO findInsureOrderPageRequestDTO);
 
     void updateBatch(FindInsureOrderPageRequestDTO findInsureOrderPageRequestDTO);
+
+    List<FindInsureOrderPageResponseDTO> findByList(@Param("findInsureOrderPageRequestDTO")  FindInsureOrderPageRequestDTO findInsureOrderPageRequestDTO);
 }

+ 35 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/InsureOrderInfoMapper.xml

@@ -63,6 +63,41 @@
             AND a.is_enter_system = #{findInsureOrderPageRequestDTO.isEnterSystem}
         </if>
 
+        <if test="findInsureOrderPageRequestDTO.endTime!=null  and findInsureOrderPageRequestDTO.endTime!=''">
+            <![CDATA[   AND DATE_FORMAT(b.pay_time, '%Y-%m-%d')<=  DATE_FORMAT(#{findInsureOrderPageRequestDTO.endTime}, '%Y-%m-%d') ]]>
+        </if>
+        <if test="findInsureOrderPageRequestDTO.startTime!=null  and findInsureOrderPageRequestDTO.startTime!=''">
+            <![CDATA[   AND DATE_FORMAT(b.pay_time, '%Y-%m-%d')>=  DATE_FORMAT(#{findInsureOrderPageRequestDTO.startTime}, '%Y-%m-%d') ]]>
+        </if>
+    </select>
+    <select id="findByList"
+            resultType="org.jeecg.modules.system.app.dto.insureOrder.FindInsureOrderPageResponseDTO">
+        select  a.id,a.bd_order_no,a.insure_name,a.insure_company,a.is_enter_system ,
+        a.assert_start_time,a.assert_end_time,c.full_name,c.identity_card,c.phone,b.pay_time
+        from
+        nm_insure_order_info a
+        left join  nm_order b  on a.order_id =b.id and b.pay_time is not null
+        left join  nm_family_members c on  a.family_members_id = c.id
+        where 1=1
+        <if test="findInsureOrderPageRequestDTO.bdOrderNo != null and findInsureOrderPageRequestDTO.bdOrderNo != ''">
+            AND a.bd_order_no = #{findInsureOrderPageRequestDTO.bdOrderNo}
+        </if>
+        <if test="findInsureOrderPageRequestDTO.insureName != null and findInsureOrderPageRequestDTO.insureName != ''">
+            AND a.insure_name = #{findInsureOrderPageRequestDTO.insureName}
+        </if>
+        <if test="findInsureOrderPageRequestDTO.fullName != null and findInsureOrderPageRequestDTO.fullName != ''">
+            AND c.full_name = #{findInsureOrderPageRequestDTO.fullName}
+        </if>
+        <if test="findInsureOrderPageRequestDTO.identityCard != null and findInsureOrderPageRequestDTO.identityCard != ''">
+            AND c.identity_card = #{findInsureOrderPageRequestDTO.identityCard}
+        </if>
+        <if test="findInsureOrderPageRequestDTO.phone != null and findInsureOrderPageRequestDTO.phone != ''">
+            AND c.phone = #{findInsureOrderPageRequestDTO.phone}
+        </if>
+        <if test="findInsureOrderPageRequestDTO.isEnterSystem != null">
+            AND a.is_enter_system = #{findInsureOrderPageRequestDTO.isEnterSystem}
+        </if>
+
         <if test="findInsureOrderPageRequestDTO.endTime!=null  and findInsureOrderPageRequestDTO.endTime!=''">
             <![CDATA[   AND DATE_FORMAT(b.pay_time, '%Y-%m-%d')<=  DATE_FORMAT(#{findInsureOrderPageRequestDTO.endTime}, '%Y-%m-%d') ]]>
         </if>

+ 5 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/IInsureOrderInfoService.java

@@ -7,6 +7,9 @@ import org.jeecg.modules.system.app.dto.insureOrder.FindInsureOrderPageRequestDT
 import org.jeecg.modules.system.app.dto.insureOrder.FindInsureOrderPageResponseDTO;
 import org.jeecg.modules.system.app.entity.InsureOrderInfo;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 /**
  * @Description: 保险订单
  * @Author: jeecg-boot
@@ -18,4 +21,6 @@ public interface IInsureOrderInfoService extends IService<InsureOrderInfo> {
     Result<IPage<FindInsureOrderPageResponseDTO>> findPage(FindInsureOrderPageRequestDTO findInsureOrderPageRequestDTO);
 
     Result<String> updateBatch(FindInsureOrderPageRequestDTO findInsureOrderPageRequestDTO);
+
+    void exportXls(HttpServletRequest request, HttpServletResponse response, FindInsureOrderPageRequestDTO findInsureOrderPageRequestDTO, String fileName);
 }

+ 12 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/FamilyMembersServiceImpl.java

@@ -60,9 +60,19 @@ public class FamilyMembersServiceImpl extends ServiceImpl<FamilyMembersMapper, F
 
     @Override
     public Result<String> addFamilyMembers(AddFamilyMembersDTO addFamilyMembersDTO) {
-        FamilyMembers familyMembers = new FamilyMembers();
+
+        if (StringUtils.isEmpty(addFamilyMembersDTO.getPhone())){
+            return Result.error("添加家庭成员失败,手机号不允许为空");
+        }
+        FamilyMembers familyMembers = familyMembersMapper.findByUserIdAndPhone(addFamilyMembersDTO.getUserId(),addFamilyMembersDTO.getPhone());
+        if (familyMembers==null){
+            familyMembers = new FamilyMembers();
+            familyMembers.setId(UuidUtils.getUUID());
+        }else {
+            addFamilyMembersDTO.setId(familyMembers.getId());
+        }
         BeanUtils.copyProperties(addFamilyMembersDTO,familyMembers);
-        familyMembers.setId(UuidUtils.getUUID());
+
         familyMembers.setCreateTime(new Date());
         if (familyMembersMapper.insert(familyMembers)<1){
             return Result.error("添加家庭成员失败,请联系管理员");

+ 167 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/InsureOrderInfoServiceImpl.java

@@ -5,8 +5,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.*;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.util.idCard.ChineseIdCard18Utils;
+import org.jeecg.common.util.idCard.Gender;
 import org.jeecg.modules.system.app.dto.insureOrder.FindInsureOrderPageRequestDTO;
 import org.jeecg.modules.system.app.dto.insureOrder.FindInsureOrderPageResponseDTO;
 import org.jeecg.modules.system.app.entity.AppInsure;
@@ -18,6 +22,13 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.FileInputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.util.List;
+
 /**
  * @Description: 保险订单
  * @Author: jeecg-boot
@@ -27,6 +38,7 @@ import org.springframework.transaction.annotation.Transactional;
 @Service
 public class InsureOrderInfoServiceImpl extends ServiceImpl<InsureOrderInfoMapper, InsureOrderInfo> implements IInsureOrderInfoService {
 
+
     @Autowired
     InsureOrderInfoMapper insureOrderInfoMapper;
 
@@ -61,6 +73,15 @@ public class InsureOrderInfoServiceImpl extends ServiceImpl<InsureOrderInfoMappe
         return Result.ok("批量修改录入系统成功");
     }
 
+    @Override
+    public void exportXls(HttpServletRequest request, HttpServletResponse response, FindInsureOrderPageRequestDTO findInsureOrderPageRequestDTO, String fileName) {
+        String timestamp = String.valueOf(System.currentTimeMillis());
+        String outputFilename = "被保险人清单_" + timestamp ;
+        List<FindInsureOrderPageResponseDTO> byList = insureOrderInfoMapper.findByList(findInsureOrderPageRequestDTO);
+        writeToExcel(byList,response,outputFilename);
+    }
+
+
     private void getFindInsureOrderPageRequestDTO(FindInsureOrderPageRequestDTO findInsureOrderPageRequestDTO){
         if (StringUtils.isNotEmpty(findInsureOrderPageRequestDTO.getInsureId())){
             AppInsure appInsure = appInsureMapper.selectById(findInsureOrderPageRequestDTO.getInsureId());
@@ -69,4 +90,150 @@ public class InsureOrderInfoServiceImpl extends ServiceImpl<InsureOrderInfoMappe
             }
         }
     }
+
+    public void writeToExcel(List<FindInsureOrderPageResponseDTO> persons,HttpServletResponse response, String outputFilename ) throws JeecgBootException {
+
+        setResponseHeaders(response, outputFilename);
+        // 参数校验
+        if (persons == null || persons.isEmpty()) {
+            throw new JeecgBootException("被保险人列表不能为空");
+        }
+        String fileName="D:\\test/好运保体育意外险被保险人清单.xls";
+        try (FileInputStream fis = new FileInputStream(fileName);
+             Workbook workbook = new HSSFWorkbook(fis);
+             OutputStream out = response.getOutputStream()) {
+
+            Sheet sheet = validateTemplate(workbook);
+            int startRowNum = 4; // 从第5行开始写入(0-based)
+            Row styleRow = sheet.getRow(startRowNum+1);
+            CellStyle[] cellStyles = getTemplateStyles(styleRow);
+            // 写入数据
+            for (int i = 0; i < persons.size(); i++) {
+                FindInsureOrderPageResponseDTO person = persons.get(i);
+                validatePersonData(person);
+                Row row = sheet.createRow( startRowNum+ i);
+                writePersonRow(row, person, i + 1,cellStyles); // 序号从1开始
+            }
+            workbook.write(out);
+            out.flush();
+        } catch (Exception e) {
+            throw new JeecgBootException("Excel操作失败: " + e.getMessage(), e);
+        }
+    }
+    private CellStyle[] getTemplateStyles(Row templateRow) {
+        if (templateRow == null) {
+            return new CellStyle[0];
+        }
+
+        int cellCount = templateRow.getLastCellNum();
+        CellStyle[] styles = new CellStyle[cellCount];
+
+        for (int i = 0; i < cellCount; i++) {
+            Cell cell = templateRow.getCell(i);
+            if (cell != null) {
+                styles[i] = cell.getCellStyle();
+            }
+        }
+        return styles;
+    }
+    private void setResponseHeaders(HttpServletResponse response, String fileName) {
+        try {
+            String encodedFileName = URLEncoder.encode(fileName, "UTF-8")
+                    .replaceAll("\\+", "%20");
+
+            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+            response.setHeader("Content-Disposition",
+                    "attachment; filename=\"" + encodedFileName + ".xlsx\"");
+            response.setCharacterEncoding("UTF-8");
+
+            // 禁用缓存确保每次下载都是最新数据
+            response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
+            response.setHeader("Pragma", "no-cache");
+            response.setHeader("Expires", "0");
+
+        } catch (Exception e) {
+            throw new RuntimeException("设置响应头失败", e);
+        }
+    }
+
+    private Sheet validateTemplate(Workbook workbook) throws JeecgBootException {
+        if (workbook.getNumberOfSheets() == 0) {
+            throw new JeecgBootException("模板文件中没有工作表");
+        }
+
+        Sheet sheet = workbook.getSheetAt(0);
+        if (sheet.getPhysicalNumberOfRows() < 4) {
+            throw new JeecgBootException("模板文件格式不正确,缺少表头行");
+        }
+
+        return sheet;
+    }
+
+    private void validatePersonData(FindInsureOrderPageResponseDTO person) throws JeecgBootException {
+        if (person == null) {
+            throw new JeecgBootException("被保险人信息不能为null");
+        }
+
+        if (person.getIdentityCard() == null || person.getIdentityCard().length() != 18) {
+            throw new JeecgBootException("身份证号必须为18位");
+        }
+    }
+
+    private  void writePersonRow(Row row, FindInsureOrderPageResponseDTO person, int serialNumber, CellStyle[] styles) {
+        // Excel日期转换(1900年基准)
+        String  birthday= ChineseIdCard18Utils.extractBirthDate(person.getIdentityCard());
+        Gender sex = ChineseIdCard18Utils.extractGender(person.getIdentityCard());
+
+        // 按模板顺序写入数据
+        createCell(row, 0, serialNumber,styles); // 序号
+        createCell(row, 1, person.getFullName(),styles);
+        createCell(row, 2, "",styles);
+        createCell(row, 3, "身份证",styles);
+        createCell(row, 4, person.getIdentityCard(),styles);
+        createCell(row, 5, "",styles);
+        createCell(row, 6, "",styles);
+        createCell(row, 7, sex.getDisplayName(),styles);
+        createCell(row, 8, birthday,styles);
+        createCell(row, 9, "其他",styles); // 运动类别
+        createCell(row, 10, "其他",styles); // 人员类别
+        createCell(row, 11, person.getPhone(),styles); // 手机号
+        if (StringUtils.isNotEmpty( person.getPhone())){
+            createCell(row, 12, "是",styles); // 手机号
+        }else {
+            createCell(row, 12, "否",styles); // 手机号
+        }
+        createCell(row, 13, "",styles);
+        createCell(row, 14,"其他",styles);
+        createCell(row, 15, "法定受益人",styles);
+        createCell(row, 16, "",styles);
+        createCell(row, 17, "",styles);
+        createCell(row, 18, "",styles);
+        createCell(row, 19, "",styles);
+        createCell(row, 20, "",styles);
+        createCell(row, 21, "",styles);
+        createCell(row, 22, "",styles);
+        createCell(row, 23, "",styles);
+        createCell(row, 24, "",styles);
+        createCell(row, 25, "",styles);
+        createCell(row, 26, "",styles);
+
+
+    }
+
+    private  void createCell(Row row, int columnIndex, Object value, CellStyle[] styles) {
+        Cell cell = row.createCell(columnIndex);
+
+        if (value instanceof String) {
+            cell.setCellValue((String) value);
+        } else if (value instanceof Number) {
+            cell.setCellValue(((Number) value).doubleValue());
+        }
+        // 应用样式(如果存在)
+        if (styles != null && columnIndex < styles.length && styles[columnIndex] != null) {
+            cell.setCellStyle(styles[columnIndex]);
+            if (columnIndex==7||columnIndex==8){
+                cell.setCellStyle(styles[5]);
+            }
+        }
+    }
 }

+ 2 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java

@@ -1570,7 +1570,7 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
         sysUser.setPhone(addMerchantRequestDTO.getPhone());
         sysUser.setStatus(1);
         sysUser.setUsername(addMerchantRequestDTO.getPhone());
-        sysUser.setRealname(addMerchantRequestDTO.getRealName());
+        sysUser.setRealname(addMerchantRequestDTO.getRealname());
         sysUser.setWorkNo(addMerchantRequestDTO.getPhone());
         sysUser.setUserIdentity(CommonConstant.USER_IDENTITY_2);
         sysUser.setDelFlag(CommonConstant.DEL_FLAG_0);
@@ -1617,7 +1617,7 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
         if (sysUser == null) {
             return Result.error("修改商户信息失败,未查询到商户管理员信息");
         }
-        sysUser.setRealname(addMerchantRequestDTO.getRealName());
+        sysUser.setRealname(addMerchantRequestDTO.getRealname());
         sysUser.setPhone(addMerchantRequestDTO.getPhone());
         sysUser.setUsername(addMerchantRequestDTO.getPhone());
         if (sysUserMapper.updateById(sysUser) < 1) {