Преглед на файлове

Merge branch 'dev' of wangzhinan/wlyy2.0 into dev

huangwenjie преди 6 години
родител
ревизия
c99c14eec9

+ 1 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/specialist/SpecialistServiceItemDO.java

@ -73,6 +73,7 @@ public class SpecialistServiceItemDO extends UuidIdentityEntityWithOperator impl
    @Column(name = "status")
    private Integer status; //删除状态
    @Transient
    public Integer flag;

+ 7 - 0
svr/svr-wlyy-specialist/pom.xml

@ -114,6 +114,13 @@
            <artifactId>fastdfs-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.jexcelapi</groupId>
            <artifactId>jxl</artifactId>
            <version>2.6</version>
        </dependency>
    </dependencies>
    <build>

+ 19 - 0
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/controller/SpecialistServiceItemController.java

@ -12,6 +12,7 @@ import com.yihu.jw.service.SpecialistServiceItemService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import jxl.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.web.bind.annotation.*;
@ -148,4 +149,22 @@ public class SpecialistServiceItemController extends EnvelopRestEndpoint {
            return MixEnvelop.getError(e.getMessage());
        }
    }
    /**
     * 导数据
     *
     * @return
     */
    @RequestMapping(value = "importData")
    @ResponseBody
    public MixEnvelop<Boolean,Boolean> importData(@RequestBody Workbook workbook) {
        try {
            return specialistServiceItemService.importData(workbook);
        } catch (Exception e) {
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return MixEnvelop.getError(e.getMessage());
        }
    }
}

+ 6 - 0
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/dao/SpecialistServiceItemDao.java

@ -4,8 +4,11 @@ package com.yihu.jw.dao;/**
import com.yihu.jw.entity.specialist.SpecialistServiceItemDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * @author wangzhinan
 * @create 2018-08-16 10:58
@ -13,4 +16,7 @@ import org.springframework.data.repository.PagingAndSortingRepository;
 **/
public interface SpecialistServiceItemDao extends PagingAndSortingRepository<SpecialistServiceItemDO, String>,
        JpaSpecificationExecutor<SpecialistServiceItemDO> {
    @Query("select p from SpecialistServiceItemDO p where p.title =?1")
    public List<SpecialistServiceItemDO> findByTitle(String title);
}

+ 192 - 4
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/service/SpecialistServiceItemService.java

@ -12,7 +12,11 @@ import com.yihu.jw.entity.specialist.SpecialistServiceItemDO;
import com.yihu.jw.entity.specialist.SpecialistServiceItemOperateLogDO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.health.bank.HealthBankMapping;
import com.yihu.jw.util.ExcelData;
import com.yihu.jw.util.ISqlUtils;
import com.yihu.jw.util.ReadExcelUtil;
import jxl.Sheet;
import jxl.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
@ -23,9 +27,7 @@ import javax.persistence.Column;
import javax.persistence.Table;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * @author wangzhinan
@ -169,7 +171,7 @@ public class SpecialistServiceItemService {
        String sql = "select * from wlyy_service_item where status = 1";
        List<SpecialistServiceItemDO> specialistServiceItemDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(SpecialistServiceItemDO.class));
        for (SpecialistServiceItemDO specialistServiceItemDO:specialistServiceItemDOS){
            String sql1 = "select * from wlyy_hospital_service_item where hospital = '"+hospital+"' and serviceItemId = '"+specialistServiceItemDO.getId()+"'";
            String sql1 = "select * from wlyy_hospital_service_item where hospital = '"+hospital+"' and service_item_id = '"+specialistServiceItemDO.getId()+"'";
            List<HospitalServiceItemDO> hospitalServiceItemDOS = jdbcTemplate.query(sql1,new BeanPropertyRowMapper(HospitalServiceItemDO.class));
            if (hospitalServiceItemDOS.size() == 0 || hospitalServiceItemDOS == null){
                specialistServiceItemDO.setFlag(1);
@ -180,4 +182,190 @@ public class SpecialistServiceItemService {
        envelop.setDetailModelList(specialistServiceItemDOS);
        return envelop;
    }
    /**
     * 导数据
     *
     * @param workbook
     * @return
     */
    public MixEnvelop<Boolean,Boolean> importData(Workbook workbook) {
        MixEnvelop<Boolean,Boolean> envelop = new MixEnvelop<>();
        Sheet[] sheets = workbook.getSheets();
        Sheet sheet = sheets[0];
        int rows = ReadExcelUtil.getRightRows(sheet);
        for (int row = 1; row < rows; row++) {  //索引从0开始,第一行为标题
            SpecialistServiceItemDO itemDO = new SpecialistServiceItemDO();
            Map<Integer, ExcelData> mapping = mapping(itemDO);
            int finalRow = row;
            mapping.forEach((index, excelData) -> {
                String value = sheet.getCell(index, finalRow).getContents().trim();
                excelData.transform(value);
            });
            //Additional Handel
            List<SpecialistServiceItemDO> specialistServiceItemDOS = specialistServiceItemDao.findByTitle(itemDO.getTitle());
           if (specialistServiceItemDOS == null && specialistServiceItemDOS.size() ==0){
               continue;
           }else {
                itemDO.setStatus(1);
                specialistServiceItemDao.save(itemDO);
           }
        }
        envelop.setObj(true);
        return envelop;
    }
    /**
     * 表格数据转为对象
     *
     * @param specialistServiceItemDO
     * @return
     */
    private Map<Integer, ExcelData> mapping(SpecialistServiceItemDO specialistServiceItemDO) {
        Map<Integer, ExcelData> dataMap = new HashMap<>();
        //项目名称
        dataMap.put(1, new ExcelData() {
            @Override
            public void transform(String data) {
                specialistServiceItemDO.setTitle(data);
            }
        });
        //项目内涵
        dataMap.put(2, new ExcelData() {
            @Override
            public void transform(String data) {
                specialistServiceItemDO.setContent(data);
            }
        });
        //除去内容
        dataMap.put(3, new ExcelData() {
            @Override
            public void transform(String data) {
                specialistServiceItemDO.setExcludeContent(data);
            }
        });
        //项目类型
        dataMap.put(4, new ExcelData() {
            @Override
            public void transform(String data) {
                Map<String, String> centerSite = new HashMap<>();
                centerSite.put("康复服务", "1");
                centerSite.put("健康服务", "2");
                specialistServiceItemDO.setItemType(Integer.parseInt(centerSite.get(data)));
            }
        });
        //医院等级
        dataMap.put(5, new ExcelData() {
            @Override
            public void transform(String data) {
                Map<String,Integer> grade = new HashMap<>();
                grade.put("所有",0);
                grade.put("一级及一级以下医疗机构",1);
                grade.put("二级医院",2);
                grade.put("三级医院",3);
                specialistServiceItemDO.setHospitalGrade(grade.get(data));
            }
        });
        //三级医院收费
        dataMap.put(6, new ExcelData() {
            @Override
            public void transform(String data) {
                specialistServiceItemDO.setThreeHospitals(Integer.parseInt(data));
            }
        });
        //二级医院收费
        dataMap.put(7, new ExcelData() {
            @Override
            public void transform(String data) {
                specialistServiceItemDO.setTwoHospitals(Integer.parseInt(data));
            }
        });
        //一级及下收费
        dataMap.put(8, new ExcelData() {
            @Override
            public void transform(String data) {
                specialistServiceItemDO.setOneHospitals(Integer.parseInt(data));
            }
        });
        //计价单位
        dataMap.put(9, new ExcelData() {
            @Override
            public void transform(String data) {
                    specialistServiceItemDO.setUnit(Integer.parseInt(data));
            }
        });
        //加收项目
        dataMap.put(10, new ExcelData() {
            @Override
            public void transform(String data) {
                specialistServiceItemDO.setAddItem(data);
            }
        });
        //病案项目
        dataMap.put(11, new ExcelData() {
            @Override
            public void transform(String data) {
                specialistServiceItemDO.setDiseaseItem(data);
            }
        });
        //是否预约
        dataMap.put(12, new ExcelData() {
            @Override
            public void transform(String data) {
                Map<String,Integer> reserve = new HashMap<>();
                reserve.put("是",1);
                reserve.put("否",0);
                specialistServiceItemDO.setReserve(reserve.get(data));
            }
        });
        //完成方式
        dataMap.put(13, new ExcelData() {
            @Override
            public void transform(String data) {
                Map<String,Integer> type = new HashMap<>();
                type.put("扫码",1);
                type.put("上传附件",0);
                type.put("健康教育",2);
                type.put("健康指导",3);
                type.put("随访",4);
                specialistServiceItemDO.setType(type.get(data));
            }
        });
        //是否评价
        dataMap.put(14, new ExcelData() {
            @Override
            public void transform(String data) {
                Map<String,Integer> evaluate = new HashMap<>();
                evaluate.put("是",1);
                evaluate.put("否",0);
                specialistServiceItemDO.setEvaluation(evaluate.get(data));
            }
        });
        //是否生效
        dataMap.put(15, new ExcelData() {
            @Override
            public void transform(String data) {
                Map<String,Integer> imediate = new HashMap<>();
                imediate.put("是",1);
                imediate.put("否",0);
                specialistServiceItemDO.setEvaluation(imediate.get(data));
            }
        });
        specialistServiceItemDO.setId(UUID.randomUUID().toString());
        return dataMap;
    }
}

+ 9 - 0
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/util/ExcelData.java

@ -0,0 +1,9 @@
package com.yihu.jw.util;
/**
 * @author Airhead
 * @since 2017/3/27.
 */
public interface ExcelData {
    void transform(String data);
}

+ 30 - 0
svr/svr-wlyy-specialist/src/main/java/com/yihu/jw/util/ReadExcelUtil.java

@ -0,0 +1,30 @@
package com.yihu.jw.util;
import jxl.Sheet;
import org.apache.commons.lang3.StringUtils;
/**
 * Created by Administrator on 2017/4/13 0013.
 */
public class ReadExcelUtil {
    // 返回去掉空行的记录数
    public static int getRightRows(Sheet sheet) {
        int rsCols = sheet.getColumns(); // 列数
        int rsRows = sheet.getRows(); // 行数
        int nullCellNum;
        int afterRows = rsRows;
        for (int i = 0; i < rsRows; i++) { // 统计行中为空的单元格数
            nullCellNum = 0;
            for (int j = 0; j < rsCols; j++) {
                String val = sheet.getCell(j, i).getContents();
                val = StringUtils.trimToEmpty(val);
                if (StringUtils.isBlank(val))
                    nullCellNum++;
            }
            if (nullCellNum >= rsCols) { // 如果nullCellNum大于或等于总的列数
                afterRows--;// 行数减一
            }
        }
        return afterRows;
    }
}