Browse Source

20250403_sun

15143018065 1 week ago
parent
commit
705ea2670a

+ 10 - 0
ruoyi-modules/mz-gljt/src/main/java/com/ruoyi/gljt/controller/GljtSqLrController.java

@@ -14,6 +14,7 @@ import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.ruoyi.gljt.domain.GljtLscx;
 import com.ruoyi.gljt.domain.GljtSqLr;
 import com.ruoyi.gljt.domain.GljtSqLrExport;
+import com.ruoyi.gljt.domain.GljtSqLrImport;
 import com.ruoyi.gljt.mapper.GljtLscxMapper;
 import com.ruoyi.gljt.service.IGljtSqLrService;
 import com.ruoyi.system.validate.group.AddGroup;
@@ -21,6 +22,7 @@ import io.seata.common.util.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
@@ -190,4 +192,12 @@ public class GljtSqLrController extends BaseController
     {
         return toAjax(gljtSqLrService.deleteGljtSqLrByIds(ids));
     }
+
+    @PostMapping("/importData")
+    public AjaxResult importData(MultipartFile file, String xzqh) throws Exception{
+        ExcelUtil<GljtSqLrImport> util = new ExcelUtil<>(GljtSqLrImport.class);
+        List<GljtSqLrImport> list = util.importExcel(file.getInputStream());
+        String message = gljtSqLrService.importGljtLr(list, xzqh);
+        return AjaxResult.success(message);
+    }
 }

+ 5 - 0
ruoyi-modules/mz-gljt/src/main/java/com/ruoyi/gljt/domain/GljtJkzk.java

@@ -162,4 +162,9 @@ public class GljtJkzk extends BaseEntity
     private String fj;
 
     private String state;
+
+    private String jcsd;
+
+    @TableField(exist = false)
+    private String nd;
 }

+ 88 - 0
ruoyi-modules/mz-gljt/src/main/java/com/ruoyi/gljt/domain/GljtSqLrImport.java

@@ -0,0 +1,88 @@
+package com.ruoyi.gljt.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+import com.ruoyi.system.validate.EncryptionV;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+/**
+ * 高龄津贴申请老人信息对象 gljt_sq_lr
+ *
+ * @author sun
+ * @date 2024-12-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@NoArgsConstructor
+@TableName("gljt_sq_lr")
+@ApiModel("高龄津贴申请老人信息")
+public class GljtSqLrImport extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键标识 */
+    @Excel(name = "主键标识")
+    @TableId(value = "id",type = IdType.ASSIGN_UUID)
+    @ApiModelProperty(value = "主键标识")
+    private String id;
+    @Excel(name = "姓名")
+    @ApiModelProperty(value = "申请人姓名", required = true)
+    @EncryptionV
+    private String sqrXm;
+    @Excel(name = "身份证号")
+    @ApiModelProperty(value = "申请人身份证号", required = true)
+    @EncryptionV
+    private String sqrZjhm;
+    @Excel(name = "民族")
+    @ApiModelProperty(value = "民族", required = true)
+    private String mz;
+    @Excel(name = "健康状况")
+    private String sndj;
+    @Excel(name = "享受补贴标段")
+    private String pc;
+    @Excel(name = "是否低保")
+    private String isdb;
+    @Excel(name = "低保证号")
+    private String dbzh;
+    @Excel(name = "联系电话")
+    private String sqrLxdh;
+    @Excel(name = "联系电话2")
+    private String sqrLxdh2;
+    @Excel(name = "邮政编码")
+    private String yb;
+    @Excel(name = "户籍地址(身份证地址)")
+    private String hjdz;
+    @Excel(name = "实际居住地址")
+    private String jzdz;
+    @Excel(name = "现户籍归属街道")
+    private String jd;
+    @Excel(name = "现户籍归属社区")
+    private String sq;
+    @Excel(name = "监护人姓名")
+    private String jhrXm;
+    @Excel(name = "监护人身份证号")
+    private String jhrZjhm;
+    @Excel(name = "监护人电话")
+    private String jhrLxdh;
+    @Excel(name = "监护人住址")
+    private String jhrJzdz;
+    @Excel(name = "监护人与老人关系")
+    private String jhrGx;
+    @Excel(name = "开户行")
+    private String khyh;
+    @Excel(name = "开户账号")
+    private String yhzh;
+    @Excel(name = "开户名")
+    private String khmc;
+    @Excel(name = "申请日期")
+    private String sqrq;
+    @Excel(name = "行政区划")
+    private String xzqh;
+}

+ 3 - 0
ruoyi-modules/mz-gljt/src/main/java/com/ruoyi/gljt/domain/GljtUserLr.java

@@ -126,4 +126,7 @@ public class GljtUserLr extends BaseEntity
 
     @TableField(exist = false)
     private String jkzkCo;
+
+    @TableField(exist = false)
+    private String nd;
 }

+ 2 - 0
ruoyi-modules/mz-gljt/src/main/java/com/ruoyi/gljt/service/IGljtSqLrService.java

@@ -2,6 +2,7 @@ package com.ruoyi.gljt.service;
 
 import com.ruoyi.gljt.domain.GljtSqLr;
 import com.ruoyi.gljt.domain.GljtSqLrExport;
+import com.ruoyi.gljt.domain.GljtSqLrImport;
 
 import java.util.List;
 import java.util.Map;
@@ -68,4 +69,5 @@ public interface IGljtSqLrService
      */
     public int deleteGljtSqLrByIds(String[] ids);
 
+    public String importGljtLr(List<GljtSqLrImport> lrImport, String xzqh);
 }

+ 45 - 3
ruoyi-modules/mz-gljt/src/main/java/com/ruoyi/gljt/service/impl/GljtJkzkServiceImpl.java

@@ -12,7 +12,10 @@ import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.security.utils.EncryptionUtils;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.common.security.utils.SysDeptJlUtils;
-import com.ruoyi.gljt.domain.*;
+import com.ruoyi.gljt.domain.GljtJkzk;
+import com.ruoyi.gljt.domain.GljtQxpz;
+import com.ruoyi.gljt.domain.GljtSqLr;
+import com.ruoyi.gljt.domain.GljtUserLr;
 import com.ruoyi.gljt.mapper.*;
 import com.ruoyi.gljt.service.IGljtJkzkService;
 import com.ruoyi.gljt.utils.BaiduUtils;
@@ -95,6 +98,7 @@ public class GljtJkzkServiceImpl implements IGljtJkzkService
     @Override
     public List<GljtJkzk> selectGljtJkzkList(GljtJkzk gljtJkzk) {
         EncryptionUtils.encryptionForPlaintext(gljtJkzk);
+        boolean isWx = StringUtils.equals("99", SecurityUtils.getLoginUser().getSysUser().getUserType());
         String filter = StringUtils.isEmpty(gljtJkzk.getXzqh()) ? SecurityUtils.getAreaCode() : gljtJkzk.getXzqh();
         gljtJkzk.setXzqh(null);
         List<GljtJkzk> res = gljtJkzkMapper.selectList(new LambdaQueryWrapper<>(gljtJkzk)
@@ -102,6 +106,7 @@ public class GljtJkzkServiceImpl implements IGljtJkzkService
         res.forEach(r -> {
             EncryptionUtils.decryptForPlaintext(r);
             r.setXzqhName(SysDeptJlUtils.getDeptCache(r.getXzqh()));
+            r.setNd(r.getDjsj().substring(0, 4) + "年" + r.getJcsd());
         });
         return res;
     }
@@ -133,6 +138,9 @@ public class GljtJkzkServiceImpl implements IGljtJkzkService
         } else if (StringUtils.equals(checkRg, "1")) {
             lqw.ne(GljtJkzk::getKz8, "系统判定通过");
         }
+        if (StringUtils.isNotEmpty(gljtJkzk.getNd())) {
+            lqw.likeRight(GljtJkzk::getDjsj, gljtJkzk.getNd());
+        }
         lqw.orderByDesc(GljtJkzk::getDjsj);
         List<GljtJkzk> res = gljtJkzkMapper.selectList(lqw);
         res.forEach(r -> {
@@ -191,6 +199,12 @@ public class GljtJkzkServiceImpl implements IGljtJkzkService
         }
         GljtSqLr lr = gljtSqLrMapper.selectById(gljtJkzk.getLrId());
         if (ObjectUtils.isEmpty(lr)) throw new ServiceException("未查询到该老人");
+        GljtQxpz pz = gljtQxpzMapper.selectOne(new LambdaQueryWrapper<GljtQxpz>()
+                .likeRight(GljtQxpz::getXzqh, lr.getXzqh().substring(0, 6)));
+        if (ObjectUtils.isEmpty(pz)) throw new ServiceException("该区县尚未配置高龄津贴");
+        if (StringUtils.isNotEmpty(pz.getKz4())) {
+            kz4(pz.getKz4(), gljtJkzk);
+        }
         if (StringUtils.equals("99", SecurityUtils.getLoginUser().getSysUser().getUserType())) {
             gljtJkzk.setDjsj(DateUtils.dateTimeNow());
             gljtJkzk.setXzqh(lr.getXzqh());
@@ -308,6 +322,29 @@ public class GljtJkzkServiceImpl implements IGljtJkzkService
         return gljtJkzkMapper.deleteBatchIds(Arrays.asList(ids));
     }
 
+    private void kz4(String kz4Str, GljtJkzk gljtJkzk) {
+        String today = DateUtils.dateTime();
+        List<String> kz4List = new ArrayList<>();
+        if (kz4Str.contains(",")) {
+            kz4List = Stream.of(kz4Str.split(",")).collect(Collectors.toList());
+        } else {
+            kz4List.add(kz4Str);
+        }
+        for (String kz4: kz4List) {
+            String date = kz4.contains("&") ? kz4.substring(0, kz4.indexOf("&")) : kz4;
+            if (date.contains("-")) {
+                String startDate = today.substring(0, 4) + date.substring(0, date.indexOf("-"));
+                String endDate = today.substring(0, 4) + date.substring(date.indexOf("-") + 1);
+                if (DateUtils.isBetween(today, startDate, endDate) || StringUtils.equals(today, endDate)
+                    || StringUtils.equals(today, startDate)) {
+                    String jc = kz4.contains("&") ? kz4.substring(kz4.indexOf("&") + 1) : kz4;
+                    gljtJkzk.setJcsd(jc);
+                    gljtJkzk.setNd(today.substring(0, 4) + "年" + jc);
+                }
+            }
+        }
+    }
+
     @Override
     public void generateJkzk() {
         String today = DateUtils.dateTime();
@@ -317,9 +354,14 @@ public class GljtJkzkServiceImpl implements IGljtJkzkService
                 List<String> dateList = new ArrayList<>();
                 String xzqh = pz.getXzqh().substring(0, 6);
                 if (pz.getKz4().contains(",")) {
-                    dateList = Stream.of(pz.getKz4().split(",")).collect(Collectors.toList());
+                    List<String> kz4List = Stream.of(pz.getKz4().split(",")).collect(Collectors.toList());
+                    for (String kz4: kz4List) {
+                        String date = kz4.contains("&") ? kz4.substring(0, kz4.indexOf("&")) : kz4;
+                        dateList.add(date);
+                    }
                 } else {
-                    dateList.add(pz.getKz4());
+                    String date = pz.getKz4().contains("&") ? pz.getKz4().substring(0, pz.getKz4().indexOf("&")) : pz.getKz4();
+                    dateList.add(date);
                 }
                 for (String date: dateList) {
                     if (date.contains("-")) {

+ 121 - 4
ruoyi-modules/mz-gljt/src/main/java/com/ruoyi/gljt/service/impl/GljtSqLrServiceImpl.java

@@ -6,21 +6,21 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
 import com.ruoyi.common.security.utils.DictUtils;
 import com.ruoyi.common.security.utils.EncryptionUtils;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.common.security.utils.SysDeptJlUtils;
 import com.ruoyi.gljt.domain.*;
-import com.ruoyi.gljt.mapper.GljtJfxxMapper;
-import com.ruoyi.gljt.mapper.GljtJkzkMapper;
-import com.ruoyi.gljt.mapper.GljtSqLrExportMapper;
-import com.ruoyi.gljt.mapper.GljtSqLrMapper;
+import com.ruoyi.gljt.mapper.*;
 import com.ruoyi.gljt.service.IGljtSqLrService;
 import com.ruoyi.gljt.utils.ExcelTemplateUtils;
 import com.ruoyi.gljt.utils.GljtSqUtils;
 import com.ruoyi.system.api.domain.SysDictData;
 import com.ruoyi.system.api.enums.GljtLrStatus;
+import com.ruoyi.system.domain.SysDeptJl;
 import com.ruoyi.system.mapper.SysDeptJlMapper;
+import com.ruoyi.system.utils.IDCardUtil;
 import com.ruoyi.system.utils.SubCodeUtil;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.ObjectUtils;
@@ -57,6 +57,12 @@ public class GljtSqLrServiceImpl implements IGljtSqLrService
     @Autowired
     private GljtSqUtils gljtSqUtils;
 
+    @Autowired
+    private GljtQxpzMapper gljtQxpzMapper;
+
+    @Autowired
+    private GljtXmpzMapper gljtXmpzMapper;
+
     @Autowired
     private SysDeptJlMapper sysDeptJlMapper;
 
@@ -460,4 +466,115 @@ public class GljtSqLrServiceImpl implements IGljtSqLrService
         return gljtSqLrMapper.deleteBatchIds(Arrays.asList(ids));
     }
 
+    @Override
+    public String importGljtLr(List<GljtSqLrImport> list, String xzqh) {
+        StringBuilder res = new StringBuilder();
+        res.append("导入成功<br />");
+        if (CollectionUtils.isEmpty(list)) throw new ServiceException("不能导入空数据");
+        GljtQxpz qxpz = gljtQxpzMapper.selectOne(new LambdaQueryWrapper<GljtQxpz>().likeRight(GljtQxpz::getXzqh, xzqh.substring(0, 6)));
+        GljtXmpz xmpz = gljtXmpzMapper.selectOne(new LambdaQueryWrapper<GljtXmpz>().likeRight(GljtXmpz::getXzqh, xzqh.substring(0, 6)));
+        if (ObjectUtils.isEmpty(qxpz) || ObjectUtils.isEmpty(xmpz)) throw new ServiceException("区县配置及项目配置不能为空");
+        List<SysDeptJl> deptList = sysDeptJlMapper.selectList(new LambdaQueryWrapper<SysDeptJl>()
+                .likeRight(SysDeptJl::getCode, xzqh.substring(0, 6)));
+        if (CollectionUtils.isEmpty(deptList)) throw new ServiceException("输入行政区划有误");
+        SysDeptJl top = deptList.stream().filter(d -> StringUtils.equals(d.getLevel(), "3")).findFirst().orElse(null);
+        try {
+            List<SysDictData> mzList = DictUtils.getDictCache("C0009");
+            List<SysDictData> snList = DictUtils.getDictCache("GL021");
+            List<SysDictData> pcList = DictUtils.getDictCache("GL013");
+            List<SysDictData> isList = DictUtils.getDictCache("CZ035");
+            List<SysDictData> gxList = DictUtils.getDictCache("XZ061");
+            List<SysDictData> yhList = DictUtils.getDictCache("C0044");
+            for (GljtSqLrImport lr: list) {
+                StringBuilder stringBuilder = new StringBuilder();
+                lr.setSqrZjhm(lr.getSqrZjhm().trim());
+                if (!IDCardUtil.idCardValidate(lr.getSqrZjhm())) stringBuilder.append("[").append(lr.getSqrXm()).append("]老人,证件号码[").append(lr.getSqrZjhm()).append("]未通过检测!<br />");
+                SysDeptJl jd = deptList.stream().filter(d -> StringUtils.equals(d.getName(), lr.getJd())).findFirst().orElse(new SysDeptJl());
+                if (StringUtils.isEmpty(jd.getCode())) stringBuilder.append("[").append(lr.getSqrXm()).append("]老人,街道[").append(lr.getJd()).append("]未通过检测!<br />");
+                SysDeptJl sq = deptList.stream().filter(d -> StringUtils.equals(d.getParentId(), jd.getId()) && StringUtils.equals(d.getName(), lr.getSq())).findFirst().orElse(new SysDeptJl());
+                if (StringUtils.isEmpty(sq.getCode())) stringBuilder.append("[").append(lr.getSqrXm()).append("]老人,社区[").append(lr.getSq()).append("]未通过检测!<br />");
+                String mz = mzList.stream().filter(m -> m.getDictLabel().contains(lr.getMz())).findFirst().orElse(new SysDictData()).getDictValue();
+                if (StringUtils.isEmpty(mz)) stringBuilder.append("[").append(lr.getSqrXm()).append("]老人,民族[").append(lr.getMz()).append("]未通过检测!<br />");
+                String sn = snList.stream().filter(s -> StringUtils.equals(s.getDictLabel(), lr.getSndj())).findFirst().orElse(new SysDictData()).getDictValue();
+                if (StringUtils.isEmpty(sn)) stringBuilder.append("[").append(lr.getSqrXm()).append("]老人,健康状况[").append(lr.getSndj()).append("]未通过检测!<br />");
+                String db = isList.stream().filter(s -> StringUtils.equals(s.getDictLabel(), lr.getIsdb())).findFirst().orElse(new SysDictData()).getDictValue();
+                if (StringUtils.isEmpty(db)) stringBuilder.append("[").append(lr.getSqrXm()).append("]老人,是否低保[").append(lr.getIsdb()).append("]未通过检测!<br />");
+                String gx = gxList.stream().filter(s -> StringUtils.equals(s.getDictLabel(), lr.getJhrGx())).findFirst().orElse(new SysDictData()).getDictValue();
+                String yh = yhList.stream().filter(s -> StringUtils.equals(s.getDictLabel(), lr.getKhyh())).findFirst().orElse(new SysDictData()).getDictValue();
+                if (!checkDate(lr.getSqrq())) stringBuilder.append("[").append(lr.getSqrXm()).append("]老人,申请日期[").append(lr.getSqrq()).append("]未通过检测!<br />");
+                if (StringUtils.isEmpty(yh)) yh = "9999";
+                if (StringUtils.isEmpty(stringBuilder)) {
+                    GljtSqLr in = new GljtSqLr();
+                    String csrq = lr.getSqrZjhm().substring(6, 14);
+                    String genderCode = lr.getSqrZjhm().substring(16, 17);
+                    String xb = Integer.parseInt(genderCode) % 2 == 0 ? "2" : "1";
+                    String pc = GljtSqUtils.getBtbzByCsrq(csrq, db, xmpz);
+                    BeanUtil.copyProperties(lr, in, new CopyOptions().ignoreNullValue());
+                    in.setId(IdUtils.simpleUUID());
+                    in.setCsrq(csrq);
+                    in.setXb(xb);
+                    in.setPc(pc);
+                    in.setKhyh(yh);
+                    in.setIsdb(db);
+                    in.setMz(mz);
+                    in.setSndj(sn);
+                    in.setJhrGx(gx);
+                    in.setXzqh(sq.getCode());
+                    in.setFfyf(lr.getSqrq().substring(0, 6));
+                    in.setJkzkDjzt("0");
+                    in.setStatus("1");
+                    in.setCreateTimeStr(lr.getSqrq());
+                    in.setSqShjg("01");
+                    in.setJdShjg("01");
+                    in.setMzShjg("01");
+                    in.setSqShyj("通过");
+                    in.setJdShyj("通过");
+                    in.setMzShyj("通过");
+                    in.setSqShsj(lr.getSqrq());
+                    in.setJdShsj(lr.getSqrq());
+                    in.setMzShsj(lr.getSqrq());
+                    in.setSqShrxm("系统");
+                    in.setJdShrxm("系统");
+                    in.setMzShrxm("系统");
+                    in.setSqbfys("0");
+                    in.setSqbfje("0");
+                    in.setFzjg(top.getName() + "公安局");
+                    in.setIsImport("1");
+                    in.setIsgs("0");
+                    gljtSqLrMapper.delete(new LambdaQueryWrapper<GljtSqLr>().eq(GljtSqLr::getSqrZjhm, SecurityUtils.sm4encrypt_ECB(EncryptionUtils.key, lr.getSqrZjhm())));
+                    gljtSqLrMapper.insert(in);
+                } else {
+                    res.append(stringBuilder);
+                }
+            }
+        } catch (Exception e) {
+            throw new ServiceException(e.getMessage());
+        }
+        return res.toString();
+    }
+
+    private String cleanIdCard(String sfzh) {
+        if (StringUtils.isEmpty(sfzh)) {
+            return sfzh;
+        }
+        // 去除所有空格(包括中间、前后的空格)
+        return sfzh.replaceAll("\\s+", "");
+    }
+
+    private boolean checkDate(String date) {
+        if (date.length() != 6 && date.length() != 8) return false;
+        try {
+            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMM");
+            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMdd");
+            if (date.length() == 6) {
+                Date date1 = sdf1.parse(date);
+            }
+            if (date.length() == 8) {
+                Date date2 = sdf2.parse(date);
+            }
+            return true;
+        } catch (Exception e) {
+            return false;
+        }
+    }
 }

+ 29 - 0
ruoyi-modules/mz-gljt/src/main/java/com/ruoyi/gljt/service/impl/GljtSqSqServiceImpl.java

@@ -765,6 +765,13 @@ public class GljtSqSqServiceImpl implements IGljtSqSqService
                     if (StringUtils.equals(lr.getJkzkDjzt(), "0")) {
                         sbJkzk.append("已验证健康状况 ");
                     } else if (StringUtils.equals(lr.getJkzkDjzt(), "1")) {
+                        GljtQxpz pz = gljtQxpzMapper.selectOne(new LambdaQueryWrapper<GljtQxpz>()
+                                .likeRight(GljtQxpz::getXzqh, lr.getXzqh().substring(0, 6)));
+                        if (ObjectUtils.isNotEmpty(pz)) {
+                            if (StringUtils.isNotEmpty(pz.getKz4())) {
+                                kz4(pz.getKz4(), r);
+                            }
+                        }
                         sbJkzk.append("待登记健康状况 ");
                         if (ObjectUtils.isNotEmpty(jkzk)) {
                             r.setJkzkId(jkzk.getId());
@@ -1119,4 +1126,26 @@ public class GljtSqSqServiceImpl implements IGljtSqSqService
         }
         return res;
     }
+
+    private void kz4(String kz4Str, GljtUserLr gljtUserLr) {
+        String today = DateUtils.dateTime();
+        List<String> kz4List = new ArrayList<>();
+        if (kz4Str.contains(",")) {
+            kz4List = Stream.of(kz4Str.split(",")).collect(Collectors.toList());
+        } else {
+            kz4List.add(kz4Str);
+        }
+        for (String kz4: kz4List) {
+            String date = kz4.contains("&") ? kz4.substring(0, kz4.indexOf("&")) : kz4;
+            if (date.contains("-")) {
+                String startDate = today.substring(0, 4) + date.substring(0, date.indexOf("-"));
+                String endDate = today.substring(0, 4) + date.substring(date.indexOf("-") + 1);
+                if (DateUtils.isBetween(today, startDate, endDate) || StringUtils.equals(today, endDate)
+                        || StringUtils.equals(today, startDate)) {
+                    String jc = kz4.contains("&") ? kz4.substring(kz4.indexOf("&") + 1) : kz4;
+                    gljtUserLr.setNd(today.substring(0, 4) + "年" + jc);
+                }
+            }
+        }
+    }
 }

+ 99 - 0
ruoyi-ui-gljt/src/views/gljt/gljtLr/index.vue

@@ -145,6 +145,11 @@
             >台卡导出
             </el-button>
           </el-col>
+          <el-col :span="1.5">
+            <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleImport"
+                       v-hasPermi="['gljt:admin:import']">导入
+            </el-button>
+          </el-col>
           <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
         </el-row>
 
@@ -462,6 +467,57 @@
         @pagination="getListBg"
       />
     </el-dialog>
+
+    <!-- 用户导入对话框 -->
+    <el-dialog v-dialog-drag title="导入老人信息" :visible.sync="upload.open" width="400px" append-to-body>
+      <el-form ref="uploadForm" :model="upload.form" label-width="100px">
+
+<!--        <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url"-->
+<!--                   :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess"-->
+<!--                   :auto-upload="false" drag>-->
+<!--          <i class="el-icon-upload"></i>-->
+<!--          <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>-->
+<!--          <div class="el-upload__tip text-center" slot="tip">-->
+<!--            <span>仅允许导入xls、xlsx格式文件。</span>-->
+<!--            &lt;!&ndash;          <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;"&ndash;&gt;-->
+<!--            &lt;!&ndash;                   @click="importTemplate">下载模板&ndash;&gt;-->
+<!--            &lt;!&ndash;          </el-link>&ndash;&gt;-->
+<!--          </div>-->
+<!--        </el-upload>-->
+
+        <el-upload
+          ref="upload"
+          :limit="1"
+          accept=".xlsx, .xls"
+          :headers="upload.headers"
+          :action="upload.url"
+          :data="upload.form"
+          :disabled="upload.isUploading"
+          :on-progress="handleFileUploadProgress"
+          :on-success="handleFileSuccess"
+          :auto-upload="false"
+          drag
+        >
+          <i class="el-icon-upload"></i>
+          <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+          <div class="el-upload__tip text-center" slot="tip">
+            <span>仅允许导入xls、xlsx格式文件。</span>
+          </div>
+        </el-upload>
+
+        <el-form-item label="行政区划" prop="xzqh">
+          <el-input
+            v-model="upload.form.xzqh"
+            placeholder="请输入行政区划编码"
+            clearable
+          />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFileForm" :loading="upload.submitLoading">确 定</el-button>
+        <el-button @click="upload.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -475,6 +531,7 @@
   import {decrypt_ECB, encrypt_ECB, encrypt_ECBdef} from "@/api/tool/sm4";
   import {Constant} from '@/utils/constant';
   import {delSwzm} from "@/api/gljt/swzm";
+  import {getToken} from "@/utils/auth";
   const axios = require('axios');
   export default {
     name: "GljtLr",
@@ -515,6 +572,21 @@
           }]
         },
         btbzId: '',
+        // 用户导入参数
+        upload: {
+          // 是否显示弹出层
+          open: false,
+          // 是否禁用上传
+          isUploading: false,
+          submitLoading: false,
+          // 设置上传的请求头部
+          headers: {Authorization: 'Bearer ' + getToken()},
+          form: {
+            xzqh: '', // 行政区划编码
+          },
+          // 上传的地址
+          url: process.env.VUE_APP_BASE_API + '/gljt/gljtLr/importData'
+        },
         // 补贴标准
         parmarBtbz: {
           dictType: 'btbz',
@@ -620,6 +692,33 @@
       this.getList();
     },
     methods: {
+      handleImport() {
+        this.upload.form.xzqh = '';
+        this.upload.submitLoading = false;
+        this.upload.open = true;
+      },
+      handleFileUploadProgress(event, file, fileList) {
+        this.upload.isUploading = true;
+      },
+      // 文件上传成功处理
+      handleFileSuccess(response, file, fileList) {
+        this.upload.open = false;
+        this.upload.isUploading = false;
+        this.upload.submitLoading = false;
+        this.$refs.upload.clearFiles();
+        this.upload.form.xzqh = ''; // 重置表单
+        this.$alert('<div style=\'overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;\'>' + response.msg + '</div>', '导入结果', {dangerouslyUseHTMLString: true});
+        this.getList();
+      },
+      // 提交上传文件
+      submitFileForm() {
+        if (!this.upload.form.xzqh) {
+          this.$message.warning('请输入行政区划编码');
+          return;
+        }
+        this.upload.submitLoading = true;
+        this.$refs.upload.submit();
+      },
       // 节点单击事件
       handleNodeClick(data) {
         if (data && data.code) {