소스 검색

导入验证追加、配置追加

zdm 6 년 전
부모
커밋
1a0c59a7f5

+ 9 - 0
common/common-util/src/main/java/com/yihu/jw/util/excel/ExcelUtil.java

@ -36,4 +36,13 @@ public abstract class ExcelUtil implements Serializable {
    public boolean equals(Object obj) {
        return getExcelSeq() == ((ExcelUtil) obj).getExcelSeq();
    }
    public String getAllErrorMsg(int seq){
        StringBuffer stringBuffer=new StringBuffer();
        stringBuffer.append("第"+seq+"行:");
        for(String str:errorMsg.keySet()){
            stringBuffer.append(errorMsg.get(str)+";");
        }
        return stringBuffer.toString();
    };
}

+ 10 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/common/populationBatchImport/PopulationMsg.java

@ -1,12 +1,14 @@
package com.yihu.jw.base.endpoint.common.populationBatchImport;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.excel.ExcelUtil;
import com.yihu.jw.util.excel.Validation;
import com.yihu.jw.util.excel.annotation.Location;
import com.yihu.jw.util.excel.annotation.Row;
import com.yihu.jw.util.excel.annotation.Title;
import com.yihu.jw.util.excel.annotation.ValidRepeat;
import org.apache.commons.lang3.StringUtils;
import javax.persistence.Column;
import java.util.Date;
@ -62,7 +64,7 @@ public class PopulationMsg extends ExcelUtil implements Validation {
    private String  districtName;
    //慢病人数
    private Integer ncdNum;
    int yearNow = DateUtil.getNowYear();
    @Override
    public int validate(Map<String, Set> repeatMap) {
@ -71,6 +73,13 @@ public class PopulationMsg extends ExcelUtil implements Validation {
            rs = 0;
            addErrorMsg("saasName", "已添加"+year+saasName+"的基础人口信息,请直接修改即可");
        }
        if(StringUtils.isBlank(year)){
            rs = 0;
            addErrorMsg("year", "年份不能为空!");
        }else if(year.compareTo(String.valueOf(yearNow))>0){
            rs = 0;
            addErrorMsg("year", "年份不能大于当前年份!");
        }
        if(populationNum<0){
            rs = 0;
            addErrorMsg("populationNum", "常住人口数不能小于0!");

+ 1 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/common/populationBatchImport/PopulationMsgReader.java

@ -43,6 +43,7 @@ public class PopulationMsgReader extends AExcelReader {
                    populationMsg.setDmNum(null == getCellCont(sheet, i, 4) ? 0 : Integer.valueOf(getCellCont(sheet, i, 4).trim()));
                    populationMsg.setHbpNum(null == getCellCont(sheet, i, 5) ? 0 : Integer.valueOf(getCellCont(sheet, i, 5).trim()));
                    populationMsg.setTaskNum(null == getCellCont(sheet, i, 6) ? 0 : Integer.valueOf(getCellCont(sheet, i, 6).trim()));
                    populationMsg.setExcelSeq(i);
                    int rs = populationMsg.validate(repeat);
                    if (rs == 0) {
                        errorLs.add(populationMsg);

+ 12 - 5
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/population/BasePopulationEndpoint.java

@ -211,6 +211,9 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint {
        }
        basePopulation.setDmNum(null == basePopulation.getDmNum() ? 0 : basePopulation.getDmNum());
        basePopulation.setHbpNum(null == basePopulation.getHbpNum() ? 0 : basePopulation.getHbpNum());
        basePopulation.setPopulationNum(null == basePopulation.getPopulationNum() ? 0 : basePopulation.getPopulationNum());
        basePopulation.setRegisPopulationNum(null == basePopulation.getRegisPopulationNum() ? 0 : basePopulation.getRegisPopulationNum());
        basePopulation.setTaskNum(null == basePopulation.getTaskNum() ? 0 : basePopulation.getTaskNum());
        //更新慢病总人数
        basePopulation.setNcdNum(basePopulation.getHbpNum() + basePopulation.getDmNum());
        return basePopulation;
@ -261,7 +264,7 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint {
        return (null != basePopulationDOList && basePopulationDOList.size() > 0) ? true : false;
    }
    @PostMapping(value = BaseRequestMapping.BasePopulation.POPULATION_BATCH_IMPORT)
    @PostMapping(value = BaseRequestMapping.BasePopulation.POPULATION_BODY_BATCH_IMPORT)
    @Transactional(rollbackFor = Exception.class)
    @ApiOperation(value = "基础人口信息列表导入")
    public Envelop importData(
@ -275,8 +278,12 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint {
            //验证未通过
            List<PopulationMsg> errorLs = excelReader.getErrorLs();
            List<PopulationMsg> correctLs = excelReader.getCorrectLs();
            if(errorLs.size()>0){
                return failed("格式有误,导入失败!");
            if (errorLs.size() > 0) {
               /* StringBuffer str = new StringBuffer();
                errorLs.forEach(item -> {
                    str.append(item.getAllErrorMsg(item.getExcelSeq()));
                });*/
                return failed("未通过数据验证(年份+租户名称不能重复;统计数不能小于0),导入失败!" /*+ str.toString()*/);
            }
            //获取所有租户+年份的基础人口信息
            Set<String> populationNameAndYear = new HashSet<String>(basePopulationService.getFacilityCodeByServerType());
@ -287,8 +294,8 @@ public class BasePopulationEndpoint extends EnvelopRestEndpoint {
                    model = correctLs.get(i);
                    Map<Boolean, PopulationMsg> map = validate(model, populationNameAndYear);
                    if (null == map.get(true)) {
//                        errorLs.add(model);
                        return failed("格式有误,导入失败!");
                        /*PopulationMsg populationMsg=map.get(false);*/
                        return failed("未通过数据验证(年份+租户名称不能重复;统计数不能小于0),导入失败!"/*+populationMsg.getAllErrorMsg(populationMsg.getExcelSeq())*/);
                    } else {
                        saveLs.add(model);
                    }

+ 3 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/service/population/BasePopulationService.java

@ -61,13 +61,13 @@ public class BasePopulationService extends BaseJpaService<BasePopulationDO, Base
            basePopulationDO.setCityName(populationMsg.getCityName());
            basePopulationDO.setDistrictCode(populationMsg.getDistrictCode());
            basePopulationDO.setDistrictName(populationMsg.getDistrictName());
            basePopulationDO.setRegisPopulationNum(populationMsg.getRegisPopulationNum());
            basePopulationDO.setPopulationNum(populationMsg.getPopulationNum());
            basePopulationDO.setRegisPopulationNum(null == populationMsg.getRegisPopulationNum() ? 0 : populationMsg.getRegisPopulationNum());
            basePopulationDO.setPopulationNum(null == populationMsg.getPopulationNum() ? 0 : populationMsg.getPopulationNum());
            //糖尿病人数
            basePopulationDO.setDmNum(null == populationMsg.getDmNum() ? 0 : populationMsg.getDmNum());
            //高血压人数
            basePopulationDO.setHbpNum(null == populationMsg.getHbpNum() ? 0 : populationMsg.getHbpNum());
            basePopulationDO.setTaskNum(populationMsg.getTaskNum());
            basePopulationDO.setTaskNum(null == populationMsg.getTaskNum() ? 0 : populationMsg.getTaskNum());
            //慢病人数
            basePopulationDO.setNcdNum(basePopulationDO.getHbpNum() + basePopulationDO.getDmNum());
            corrects.add(basePopulationDO);

+ 28 - 0
svr/svr-base/src/main/resources/application.yml

@ -123,6 +123,20 @@ spring:
#    password: jkzl_ehr
#  zipkin:
#    base-url: http://localhost:9411 #日志追踪的地址
  mail:
    default-encoding: UTF-8
    host: smtp.163.com
#发送者的邮箱密码
    password: xmijk181016jkzl
#端口
    port: 25
#协议
    protocol: smtp
#发送者的邮箱账号
    username: i_jiankang@163.com
    properties.mail.smtp.auth: true
    properties.mail.smtp.starttls.enable: true
    properties.mail.smtp.starttls.required: true
fastDFS:
  fastdfs_file_url: http://172.19.103.54:80/
@ -151,5 +165,19 @@ spring:
#    password: jkzl_ehr
#  zipkin:
#    base-url: http://localhost:9411 #日志追踪的地址
  mail:
    default-encoding: UTF-8
    host: smtp.163.com
#发送者的邮箱密码
    password: xmijk181016jkzl
#端口
    port: 25
#协议
    protocol: smtp
#发送者的邮箱账号
    username: i_jiankang@163.com
    properties.mail.smtp.auth: true
    properties.mail.smtp.starttls.enable: true
    properties.mail.smtp.starttls.required: true
fastDFS:
  fastdfs_file_url: http://172.19.103.54:80/