Просмотр исходного кода

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

liubing 3 лет назад
Родитель
Сommit
b4b11ed790
34 измененных файлов с 3519 добавлено и 285 удалено
  1. 24 0
      business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseDictIcd10Dao.java
  2. 14 0
      business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseDrugDictDao.java
  3. 24 0
      business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseDrugUseDictDao.java
  4. 22 0
      business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseFrequencyDictDao.java
  5. 6 0
      business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseTemplateDictDao.java
  6. 13 0
      business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseTemplateOrgDao.java
  7. 0 109
      business/base-service/src/main/java/com/yihu/jw/dict/service/BaseDrugDictService.java
  8. 0 113
      business/base-service/src/main/java/com/yihu/jw/dict/service/TemplateManageService.java
  9. 57 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseDrugDictDO.java
  10. 111 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseDrugUseDictDO.java
  11. 93 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseFrequencyDictDO.java
  12. 19 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseTemplateOrgDO.java
  13. 65 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/DictIcd10DO.java
  14. 8 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/dict/DictIcd10Dao.java
  15. 86 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/dict/BaseDrugUseEndpoint.java
  16. 84 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/dict/BaseFrequencyEndpoint.java
  17. 27 25
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/dict/DictDrugEndpoint.java
  18. 43 32
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/dict/DictIcd10Endpoint.java
  19. 430 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/dict/TemplateManageEndpoint.java
  20. 183 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/BaseDrugDictService.java
  21. 145 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/BaseDrugUseService.java
  22. 137 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/BaseFrequencyService.java
  23. 122 3
      svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/DictIcd10Service.java
  24. 682 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/TemplateManageService.java
  25. 304 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BasDrugExcelDO.java
  26. 142 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BasDrugUseExcelDO.java
  27. 119 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BasFrequencyExcelDO.java
  28. 127 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BasIcd10ExcelDO.java
  29. 136 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BaseDrugExcelDOReader.java
  30. 101 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BaseDrugUseExcelDOReader.java
  31. 96 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BaseFrequencyExcelDOReader.java
  32. 98 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BaseIcd10ExcelDOReader.java
  33. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java
  34. 0 2
      svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/SyncWlyyHospitalService.java

+ 24 - 0
business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseDictIcd10Dao.java

@ -0,0 +1,24 @@
package com.yihu.jw.dict.dao;
import com.yihu.jw.entity.base.dict.BaseDrugDictDO;
import com.yihu.jw.entity.base.dict.BaseFrequencyDictDO;
import com.yihu.jw.entity.base.dict.DictIcd10DO;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseDictIcd10Dao extends PagingAndSortingRepository<DictIcd10DO, Integer>, JpaSpecificationExecutor<DictIcd10DO> {
    List<DictIcd10DO>  findByCodeAndName(String code, String name);
    @Query("from DictIcd10DO t where t.is_del='1' and t.status ='1' order by t.createTime desc")
    List<DictIcd10DO> findByDel(Pageable pageRequest);
    @Query("select  count(1) from DictIcd10DO t where t.is_del='1' and t.status='1'")
    Integer getconuntByDel();
    @Query("from DictIcd10DO t where t.is_del='1' and t.status ='1' and t.name like %?1% order by t.createTime desc")
    List<DictIcd10DO> findByNameDel(String name,Pageable pageRequest);
}

+ 14 - 0
business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseDrugDictDao.java

@ -1,10 +1,24 @@
package com.yihu.jw.dict.dao;
import com.yihu.jw.entity.base.dict.BaseDrugDictDO;
import com.yihu.jw.entity.base.dict.BaseFrequencyDictDO;
import com.yihu.jw.entity.base.dict.DictJobTitleDO;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseDrugDictDao  extends PagingAndSortingRepository<BaseDrugDictDO, String>, JpaSpecificationExecutor<BaseDrugDictDO> {
    @Query("from BaseDrugDictDO t where t.charge_code=?1 and t.drugname=?2 and t.dosage=?3")
    List<BaseDrugDictDO>  findByCodeAndNameAndDosage(String code,String name,String dosage);
    @Query("from BaseDrugDictDO t where t.is_del='1' and t.status='1' order by  t.create_time desc")
    List<BaseDrugDictDO> findByDel(Pageable pageRequest);
    @Query("select  count(1) from BaseDrugDictDO t where t.is_del='1' and t.status='1'")
    Integer getconuntByDel();
    @Query("from BaseDrugDictDO t where t.is_del='1' and t.status='1' and t.drugname like %?1% order by  t.create_time desc")
    List<BaseDrugDictDO> findByNameDel(String name,Pageable pageRequest);
}

+ 24 - 0
business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseDrugUseDictDao.java

@ -0,0 +1,24 @@
package com.yihu.jw.dict.dao;
import com.yihu.jw.entity.base.dict.BaseDrugDictDO;
import com.yihu.jw.entity.base.dict.BaseDrugUseDictDO;
import com.yihu.jw.entity.base.dict.DictIcd10DO;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseDrugUseDictDao extends PagingAndSortingRepository<BaseDrugUseDictDO, String>, JpaSpecificationExecutor<BaseDrugUseDictDO> {
    @Query("from BaseDrugUseDictDO t where t.supply_code=?1 and t.supply_name=?2")
    List<BaseDrugUseDictDO>  findByCodeAndName(String code, String name);
    @Query("from BaseDrugUseDictDO t where t.del_flag='1' and t.status ='1' order by t.createTime desc")
    List<BaseDrugUseDictDO> findByDel(Pageable pageRequest);
    @Query("select  count(1) from BaseDrugUseDictDO t where t.del_flag='1' and t.status='1'")
    Integer getconuntByDel();
    @Query("from BaseDrugUseDictDO t where t.del_flag='1' and t.status ='1' and t.supply_name like %?1% order by t.createTime desc")
    List<BaseDrugUseDictDO> findByNameDel(String name,Pageable pageRequest);
}

+ 22 - 0
business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseFrequencyDictDao.java

@ -0,0 +1,22 @@
package com.yihu.jw.dict.dao;
import com.yihu.jw.entity.base.dict.BaseDrugUseDictDO;
import com.yihu.jw.entity.base.dict.BaseFrequencyDictDO;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseFrequencyDictDao extends PagingAndSortingRepository<BaseFrequencyDictDO, String>, JpaSpecificationExecutor<BaseFrequencyDictDO> {
    @Query("from BaseFrequencyDictDO t where  t.freq_code=?1 and t.freq_name=?2")
    List<BaseFrequencyDictDO>  findByCodeAndIdName(String code, String name);
    @Query("from BaseFrequencyDictDO t where t.is_del='1' and t.status ='1' order by t.createTime desc")
    List<BaseFrequencyDictDO> findByDel(Pageable pageRequest);
    @Query("select  count(1) from BaseFrequencyDictDO t where t.is_del='1' and t.status='1'")
    Integer getconuntByDel();
    @Query("from BaseFrequencyDictDO t where t.is_del='1' and t.status ='1' and t.freq_name like %?1% order by t.createTime desc")
    List<BaseFrequencyDictDO> findByNameDel(String name ,Pageable pageRequest);
}

+ 6 - 0
business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseTemplateDictDao.java

@ -6,9 +6,15 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseTemplateDictDao extends PagingAndSortingRepository<BaseTemplateDictDO, String>, JpaSpecificationExecutor<BaseTemplateDictDO> {
    @Query("select  count(1) from BaseTemplateDictDO t where t.isDel = '1' and t.templateId=?1")
    Integer getCountByTemplateId(String templateId);
    @Query("from BaseTemplateDictDO t where t.dictId=?1 and t.templateId=?2")
    BaseTemplateDictDO findByDictIdAndTemplateId(String dictId,String templateId);
    @Query("from BaseTemplateDictDO t where t.templateId=?1 and t.isDel='1'")
    List<BaseTemplateDictDO> findByTemplateId(String templateId);
}

+ 13 - 0
business/base-service/src/main/java/com/yihu/jw/dict/dao/BaseTemplateOrgDao.java

@ -3,7 +3,20 @@ package com.yihu.jw.dict.dao;
import com.yihu.jw.entity.base.dict.BaseDrugDictDO;
import com.yihu.jw.entity.base.dict.BaseTemplateOrgDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
public interface BaseTemplateOrgDao extends PagingAndSortingRepository<BaseTemplateOrgDO, String>, JpaSpecificationExecutor<BaseTemplateOrgDO> {
    @Query("from BaseTemplateOrgDO t where  t.orgCode =?1 and t.templateType=?2 ")
    BaseTemplateOrgDO findByOrgCodeAndtemplateType(String orgCode,String templateType);
    @Query("from BaseTemplateOrgDO t where  t.orgCode =?1 and t.isDel='1' ")
    List<BaseTemplateOrgDO> findByOrgCode(String saasId);
    @Query("from BaseTemplateOrgDO t where  t.templateId =?1 and t.isDel='1' ")
    List<BaseTemplateOrgDO> findByTemplateId(String templateId);
}

+ 0 - 109
business/base-service/src/main/java/com/yihu/jw/dict/service/BaseDrugDictService.java

@ -1,109 +0,0 @@
package com.yihu.jw.dict.service;
import com.sun.jndi.toolkit.dir.SearchFilter;
import com.yihu.jw.dict.dao.BaseDrugDictDao;
import com.yihu.jw.entity.base.dict.BaseDrugDictDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.hospital.prescription.BaseNationalDrugDictDO;
import com.yihu.jw.hospital.prescription.dao.BaseNationalDrugDictDao;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.util.common.ConvertToSpellUtils;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.yihu.jw.util.common.BeanUtils.getNullPropertyNames;
@Service
public class BaseDrugDictService extends BaseJpaService<BaseDrugDictDO, BaseDrugDictDao> {
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private BaseDrugDictDao baseDrugDictDao;
    public BaseDrugDictDO saveNationalDrug(BaseDrugDictDO nationalDrugDictDO) {
        //判断新增或编辑
        if (nationalDrugDictDO.getId() == null) {
            nationalDrugDictDO.setCreate_time(new Date());
            nationalDrugDictDO.setUpdate_time(new Date());
            return baseDrugDictDao.save(nationalDrugDictDO);
        }else {
            BaseDrugDictDO oldDurgDictDO =  baseDrugDictDao.findOne(nationalDrugDictDO.getId());
            BeanUtils.copyProperties(nationalDrugDictDO, oldDurgDictDO, getNullPropertyNames(nationalDrugDictDO));
            oldDurgDictDO.setUpdate_time(new Date());
            return baseDrugDictDao.save(oldDurgDictDO);
        }
    }
    public MixEnvelop  findDrugDict(String name,String status,Integer page,Integer pageSize){
        String sql = "select t.id as \"id\"," +
                " t.charge_code as \"charge_code\"," +
                " t.drugname as \"drugname\"," +
                " t.specification as \"specification\"," +
                " t.py_code as \"py_code\"," +
                " t.supply_code as \"supply_code\"," +
                " t.supply_name as \"supply_name\"," +
                " t.retprice as \"retprice\"," +
                " t.manu_name as \"manu_name\"," +
                " t.weigh_unit as \"weigh_unit\"," +
                " t.mini_unit_name as \"mini_unit_name\"," +
                " t.pack_unit_name as \"pack_unit_name\"," +
                " t.weigh_unit_name as \"weigh_unit_name\"," +
                " t.vol_unit_name as \"vol_unit_name\"," +
                " t.win_no as \"win_no\"," +
                " t.pack_retprice as \"pack_retprice\"," +
                " t.mini_unit as \"mini_unit\"," +
                " t.pack_size as \"pack_size\"," +
                " t.action as \"action\"," +
                " t.serial as \"serial\"," +
                " t.group_no as \"group_no\"," +
                " t.stock_amount as \"stock_amount\"," +
                " t.visible_flag as \"visible_flag\"," +
                " t.drug_flag as \"drug_flag\"," +
                " t.create_time as \"create_time\"," +
                " t.update_time as \"update_time\"," +
                " t.status as \"status\"," +
                " t.is_del as \"is_del\"" +
                " from base_drug_dict t " +
                " where t.is_del='1' ";
        String sqlCount = "select count(1) as \"count\" from base_drug_dict t where t.is_del='1' ";
        if (StringUtils.isNoneBlank(name)){
            sql+=" and t.drugname like '%"+name+"%'";
            sqlCount+=" and t.drugname like '%"+name+"%'";
        }
        if (StringUtils.isNoneBlank(status)){
            sql+=" and t.status = '"+status+"'";
            sqlCount+=" and t.status = '"+status+"'";
        }
        List<Map<String,Object>> coutList=hibenateUtils.createSQLQuery(sqlCount);
        Integer count=0 ;
        if (coutList!=null&&coutList.size()>0){
            count=Integer.valueOf(coutList.get(0).get("count").toString());
        }
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
        MixEnvelop mixEnvelop = new MixEnvelop();
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setTotalCount(count);
        return mixEnvelop;
    }
    public BaseDrugDictDO findOneDrug(String id){
        return baseDrugDictDao.findOne(id);
    }
}

+ 0 - 113
business/base-service/src/main/java/com/yihu/jw/dict/service/TemplateManageService.java

@ -1,113 +0,0 @@
package com.yihu.jw.dict.service;
import com.yihu.jw.dict.dao.BaseDrugDictDao;
import com.yihu.jw.dict.dao.BaseTemplateDao;
import com.yihu.jw.dict.dao.BaseTemplateDictDao;
import com.yihu.jw.dict.dao.BaseTemplateOrgDao;
import com.yihu.jw.entity.base.dict.BaseTemplateDO;
import com.yihu.jw.entity.base.dict.BaseTemplateDictDO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import jdk.nashorn.internal.ir.IfNode;
import jdk.nashorn.internal.runtime.ListAdapter;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
public class TemplateManageService {
    @Autowired
    private BaseDrugDictDao baseDrugDictDao;
    @Autowired
    private BaseTemplateDao baseTemplateDao;
    @Autowired
    private BaseTemplateDictDao baseTemplateDictDao;
    @Autowired
    private BaseTemplateOrgDao baseTemplateOrgDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    public MixEnvelop findTempalte(String templateType,Integer page ,Integer pageSize){
        String sql =" select t.id as \"id\" ," +
                " t.name as \"name\"," +
                " t.code as \"code\"," +
                " t.children_count as \"childrenCount\"," +
                " t.update_user as \"updateUser\"," +
                " t.update_user_name as \"updateUserName\"," +
                " t.update_time as \"updateTime\"," +
                " t.template_type as \"templateType\"," +
                " t.is_del as \"isDel\" " +
                " from base_template t " +
                " where t.is_del='1' ";
        String sqlCount=" select count(1) as \"count\" from base_template t where t.is_del='1'";
        if (StringUtils.isNotBlank(templateType)){
            sql+= " and t.template_type='"+templateType+"'";
            sqlCount+= " and t.template_type='"+templateType+"'";
        }
        sql+=" order by t.update_time desc";
        Integer count=0;
        List<Map<String,Object>> countList=hibenateUtils.createSQLQuery(sql);
        if (countList!=null&&countList.size()>0){
            count = Integer.parseInt(countList.get(0).get("count").toString());
        }
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
        MixEnvelop mixEnvelop = new MixEnvelop();
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setTotalCount(count);
        return mixEnvelop;
    }
   public void addOrRemoveChildrenDict(String templateId,String dictId,String isDel){
       BaseTemplateDictDO baseTemplateDictDO = baseTemplateDictDao.findByDictIdAndTemplateId(dictId,templateId);
       if ("1".equalsIgnoreCase(isDel)){
           if (baseTemplateDictDO!=null){
               baseTemplateDictDO.setIsDel("1");
           }else {
               baseTemplateDictDO = new BaseTemplateDictDO();
               baseTemplateDictDO.setTemplateId(templateId);
               baseTemplateDictDO.setDictId(dictId);
               baseTemplateDictDO.setCreateTime(new Date());
               baseTemplateDictDO.setIsDel("1");
           }
       }else {
           if (baseTemplateDictDO!=null){
               baseTemplateDictDO.setIsDel("0");
           }
       }
       baseTemplateDictDao.save(baseTemplateDictDO);
       BaseTemplateDO baseTemplateDO = baseTemplateDao.findOne(templateId);
       Integer chuildrenCount =  baseTemplateDictDao.getCountByTemplateId(templateId);
       if (baseTemplateDO !=null ){
           baseTemplateDO.setChildrenCount(chuildrenCount.toString());
       }
       baseTemplateDao.save(baseTemplateDO);
   }
   public void saveOrUpdateTemplate(String templateId,String code,String name,String user,String userName,String templateType){
       BaseTemplateDO baseTemplateDO = baseTemplateDao.findOne(templateId);
       if (baseTemplateDO!=null){
           baseTemplateDO.setCode(code);
           baseTemplateDO.setName(name);
           baseTemplateDO.setUpdateTime(new Date());
           baseTemplateDO.setUpdateUser(user);
           baseTemplateDO.setUpdateUserName(userName);
           baseTemplateDO.setTemplateType(templateType);
       }else {
           baseTemplateDO = new BaseTemplateDO();
           baseTemplateDO.setCode(code);
           baseTemplateDO.setName(name);
           baseTemplateDO.setCreateTime(new Date());
           baseTemplateDO.setCreateUser(user);
           baseTemplateDO.setCreateUserName(userName);
           baseTemplateDO.setTemplateType(templateType);
           baseTemplateDO.setIsDel("1");
       }
       baseTemplateDao.save(baseTemplateDO);
   }
}

+ 57 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseDrugDictDO.java

@ -39,6 +39,63 @@ public class BaseDrugDictDO extends UuidIdentityEntity {
    private String status;
    private Date update_time;
    private String is_del;
    private String dosage;
    private String mini_stock_amount;
    private String max_stock_amount;
    private String pack_unit;
    private String vol_unit;
    private String manufactory;
    @Column(name = "vol_unit")
    public String getVol_unit() {
        return vol_unit;
    }
    public void setVol_unit(String vol_unit) {
        this.vol_unit = vol_unit;
    }
    @Column(name = "manufactory")
    public String getManufactory() {
        return manufactory;
    }
    public void setManufactory(String manufactory) {
        this.manufactory = manufactory;
    }
    @Column(name = "pack_unit")
    public String getPack_unit() {
        return pack_unit;
    }
    public void setPack_unit(String pack_unit) {
        this.pack_unit = pack_unit;
    }
    @Column(name = "dosage")
    public String getDosage() {
        return dosage;
    }
    public void setDosage(String dosage) {
        this.dosage = dosage;
    }
    @Column(name = "mini_stock_amount")
    public String getMini_stock_amount() {
        return mini_stock_amount;
    }
    public void setMini_stock_amount(String mini_stock_amount) {
        this.mini_stock_amount = mini_stock_amount;
    }
    @Column(name = "max_stock_amount")
    public String getMax_stock_amount() {
        return max_stock_amount;
    }
    public void setMax_stock_amount(String max_stock_amount) {
        this.max_stock_amount = max_stock_amount;
    }
    @Column(name = "is_del")
    public String getIs_del() {
        return is_del;

+ 111 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseDrugUseDictDO.java

@ -0,0 +1,111 @@
package com.yihu.jw.entity.base.dict;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name = "base_drug_use_dict")
public class BaseDrugUseDictDO extends UuidIdentityEntityWithCreateTime {
    private String supply_code;
    private String supply_name;
    private String supply_occ;
    private String del_flag;
    private String sort_code;
    private String print_name;
    private String py_code;
    private String d_code;
    private String yb_name;
    private String yb_code;
    private String status;
    @Column(name = "supply_code")
    public String getSupply_code() {
        return supply_code;
    }
    public void setSupply_code(String supply_code) {
        this.supply_code = supply_code;
    }
    @Column(name = "supply_name")
    public String getSupply_name() {
        return supply_name;
    }
    public void setSupply_name(String supply_name) {
        this.supply_name = supply_name;
    }
    @Column(name = "supply_occ")
    public String getSupply_occ() {
        return supply_occ;
    }
    public void setSupply_occ(String supply_occ) {
        this.supply_occ = supply_occ;
    }
    @Column(name = "del_flag")
    public String getDel_flag() {
        return del_flag;
    }
    public void setDel_flag(String del_flag) {
        this.del_flag = del_flag;
    }
    @Column(name = "sort_code")
    public String getSort_code() {
        return sort_code;
    }
    public void setSort_code(String sort_code) {
        this.sort_code = sort_code;
    }
    @Column(name = "print_name")
    public String getPrint_name() {
        return print_name;
    }
    public void setPrint_name(String print_name) {
        this.print_name = print_name;
    }
    @Column(name = "py_code")
    public String getPy_code() {
        return py_code;
    }
    public void setPy_code(String py_code) {
        this.py_code = py_code;
    }
    @Column(name = "d_code")
    public String getD_code() {
        return d_code;
    }
    public void setD_code(String d_code) {
        this.d_code = d_code;
    }
    @Column(name = "yb_name")
    public String getYb_name() {
        return yb_name;
    }
    public void setYb_name(String yb_name) {
        this.yb_name = yb_name;
    }
    @Column(name = "yb_code")
    public String getYb_code() {
        return yb_code;
    }
    public void setYb_code(String yb_code) {
        this.yb_code = yb_code;
    }
    @Column(name = "status")
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
}

+ 93 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseFrequencyDictDO.java

@ -0,0 +1,93 @@
package com.yihu.jw.entity.base.dict;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name = "base_frequency_dict")
public class BaseFrequencyDictDO extends UuidIdentityEntityWithCreateTime {
    private String freq_code;
    private String freq_name;
    private String freq_sp;
    private String daily_times;
    private String weekly_times;
    private String hosp_code;
    private String is_op_ip;
    private String is_del;
    private String status;
    @Column(name = "freq_code")
    public String getFreq_code() {
        return freq_code;
    }
    public void setFreq_code(String freq_code) {
        this.freq_code = freq_code;
    }
    @Column(name = "freq_name")
    public String getFreq_name() {
        return freq_name;
    }
    public void setFreq_name(String freq_name) {
        this.freq_name = freq_name;
    }
    @Column(name = "freq_sp")
    public String getFreq_sp() {
        return freq_sp;
    }
    public void setFreq_sp(String freq_sp) {
        this.freq_sp = freq_sp;
    }
    @Column(name = "daily_times")
    public String getDaily_times() {
        return daily_times;
    }
    public void setDaily_times(String daily_times) {
        this.daily_times = daily_times;
    }
    @Column(name = "weekly_times")
    public String getWeekly_times() {
        return weekly_times;
    }
    public void setWeekly_times(String weekly_times) {
        this.weekly_times = weekly_times;
    }
    @Column(name = "hosp_code")
    public String getHosp_code() {
        return hosp_code;
    }
    public void setHosp_code(String hosp_code) {
        this.hosp_code = hosp_code;
    }
    @Column(name = "is_op_ip")
    public String getIs_op_ip() {
        return is_op_ip;
    }
    public void setIs_op_ip(String is_op_ip) {
        this.is_op_ip = is_op_ip;
    }
    @Column(name = "is_del")
    public String getIs_del() {
        return is_del;
    }
    public void setIs_del(String is_del) {
        this.is_del = is_del;
    }
    @Column(name = "status")
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
}

+ 19 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/BaseTemplateOrgDO.java

@ -14,6 +14,25 @@ public class BaseTemplateOrgDO extends UuidIdentityEntityWithCreateTime {
    private String orgCode;
    private String isDel;
    private String orgName;
    private String templateType;
    private String saasId;
    @Column(name = "template_type")
    public String getTemplateType() {
        return templateType;
    }
    public void setTemplateType(String templateType) {
        this.templateType = templateType;
    }
    @Column(name = "saas_id")
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    @Column(name = "template_id")
    public String getTemplateId() {
        return templateId;

+ 65 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/dict/DictIcd10DO.java

@ -40,6 +40,71 @@ public class DictIcd10DO extends IntegerIdentityEntity {
	 */
	private String description;
	private String disea_reason;
	private String death_reason;
	private String py_code;
    private String flag;
    private String d_code;
    private String is_del;
    private String status;
    @Column(name = "is_del")
    public String getIs_del() {
        return is_del;
    }
    public void setIs_del(String is_del) {
        this.is_del = is_del;
    }
    @Column(name = "status")
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    @Column(name = "disea_reason")
    public String getDisea_reason() {
        return disea_reason;
    }
    public void setDisea_reason(String disea_reason) {
        this.disea_reason = disea_reason;
    }
    @Column(name = "death_reason")
    public String getDeath_reason() {
        return death_reason;
    }
    public void setDeath_reason(String death_reason) {
        this.death_reason = death_reason;
    }
    @Column(name = "py_code")
    public String getPy_code() {
        return py_code;
    }
    public void setPy_code(String py_code) {
        this.py_code = py_code;
    }
    @Column(name = "flag")
    public String getFlag() {
        return flag;
    }
    public void setFlag(String flag) {
        this.flag = flag;
    }
    @Column(name = "d_code")
    public String getD_code() {
        return d_code;
    }
    public void setD_code(String d_code) {
        this.d_code = d_code;
    }
    /**
	 * 创建时间
	 */

+ 8 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/dict/DictIcd10Dao.java

@ -33,4 +33,12 @@ public interface DictIcd10Dao extends PagingAndSortingRepository<DictIcd10DO, In
    List<DictIcd10DO> findBySaasId(String saasId);
    Long countBySaasId(String saasId);
    List<DictIcd10DO>  findByCodeAndName(String code, String name);
    @Query("from DictIcd10DO t where t.is_del='1' and t.status ='1' order by t.createTime desc")
    List<DictIcd10DO> findByDel(Pageable pageRequest);
    @Query("select  count(1) from DictIcd10DO t where t.is_del='1' and t.status='1'")
    Integer getconuntByDel();
}

+ 86 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/dict/BaseDrugUseEndpoint.java

@ -0,0 +1,86 @@
package com.yihu.jw.base.endpoint.dict;
import com.yihu.jw.base.service.dict.BaseDrugDictService;
import com.yihu.jw.base.service.dict.BaseDrugUseService;
import com.yihu.jw.entity.base.dict.BaseDrugDictDO;
import com.yihu.jw.entity.base.dict.BaseDrugUseDictDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = "/baseDrugUse")
@Api(value = "药品使用方式字典", description = "药品使用方式字典", tags = {"药品使用方式字典"})
public class BaseDrugUseEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private BaseDrugUseService baseDrugUseService;
    @PostMapping("/saveDrugUse")
    @ApiOperation(value = "保存")
    public Envelop saveDrugUse(@ApiParam(name = "jsonData", value = "药品json串")
                                       @RequestParam(name = "jsonData", required = true) String jsonData) throws Exception {
        try {
            BaseDrugUseDictDO baseDrugUseDictDO = objectMapper.readValue(jsonData, BaseDrugUseDictDO.class);
            baseDrugUseService.saveBaseDrugUse(baseDrugUseDictDO);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findDrugUseList")
    @ApiOperation(value = "列表")
    public MixEnvelop findDrugDict(@ApiParam(name = "name", value = "药品名称")
                                   @RequestParam(name = "name", required = false) String name,
                                   @ApiParam(name = "status", value = "状态")
                                   @RequestParam(name = "status", required = false) String status,
                                   @ApiParam(name = "page", value = "当前页")
                                   @RequestParam(name = "page", required = false) Integer page,
                                   @ApiParam(name = "pageSize", value = "页面大小")
                                   @RequestParam(name = "pageSize", required = false) Integer pageSize) throws Exception {
        try {
            return baseDrugUseService.findDrugUseList(name,status, page, pageSize);
        }catch (Exception e) {
            return failedMixEnvelopException(e);
        }
    }
    @GetMapping("/findOneDrug")
    @ApiOperation(value = "根据id查询")
    public Envelop findOneDrug(@ApiParam(name = "id", value = "药品id")
                               @RequestParam(name = "id", required = true) String id){
        try {
            return success(baseDrugUseService.findOneUseDict(id));
        }catch (Exception e) {
            return failedException(e);
        }
    }
    @GetMapping("/updateDruguseStatus")
    @ApiOperation(value = "修改状态")
    public Envelop updateDruguseStatus(@ApiParam(name = "id", value = "id")
                               @RequestParam(name = "id", required = true) String id,
                               @ApiParam(name = "status", value = "状态1使用0作废")
                               @RequestParam(name = "status", required = false) String status,
                               @ApiParam(name = "del", value = "0删除")
                               @RequestParam(name = "del", required = false) String del){
        try {
            baseDrugUseService.updateDrugUseStatus(id,status,del);
            return success("操作成功");
        }catch (Exception e) {
            return failedException(e);
        }
    }
}

+ 84 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/dict/BaseFrequencyEndpoint.java

@ -0,0 +1,84 @@
package com.yihu.jw.base.endpoint.dict;
import com.yihu.jw.base.service.dict.BaseDrugUseService;
import com.yihu.jw.base.service.dict.BaseFrequencyService;
import com.yihu.jw.entity.base.dict.BaseDrugUseDictDO;
import com.yihu.jw.entity.base.dict.BaseFrequencyDictDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = "/baseFrequency")
@Api(value = "药品使用方式字典", description = "药品使用方式字典", tags = {"药品使用方式字典"})
public class BaseFrequencyEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private BaseFrequencyService baseFrequencyService;
    @PostMapping("/saveFrequency")
    @ApiOperation(value = "保存")
    public Envelop saveDrugUse(@ApiParam(name = "jsonData", value = "药品json串")
                                       @RequestParam(name = "jsonData", required = true) String jsonData) throws Exception {
        try {
            BaseFrequencyDictDO baseFrequencyDictDO = objectMapper.readValue(jsonData, BaseFrequencyDictDO.class);
            baseFrequencyService.saveFrequency(baseFrequencyDictDO);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
        }
    }
    @GetMapping("/findFrequencyList")
    @ApiOperation(value = "获取列表接口")
    public MixEnvelop findDrugDict(@ApiParam(name = "name", value = "药品名称")
                                   @RequestParam(name = "name", required = false) String name,
                                   @ApiParam(name = "status", value = "状态")
                                   @RequestParam(name = "status", required = false) String status,
                                   @ApiParam(name = "page", value = "当前页")
                                   @RequestParam(name = "page", required = false) Integer page,
                                   @ApiParam(name = "pageSize", value = "页面大小")
                                   @RequestParam(name = "pageSize", required = false) Integer pageSize) throws Exception {
        try {
            return baseFrequencyService.findFrequencyList(name,status, page, pageSize);
        }catch (Exception e) {
            return failedMixEnvelopException(e);
        }
    }
    @GetMapping("/findOneFrequency")
    @ApiOperation(value = "根据id查询")
    public Envelop findOneDrug(@ApiParam(name = "id", value = "药品id")
                               @RequestParam(name = "id", required = true) String id){
        try {
            return success(baseFrequencyService.findOneFrequency(id));
        }catch (Exception e) {
            return failedException(e);
        }
    }
    @GetMapping("/updateFrequencyStatus")
    @ApiOperation(value = "修改状态")
    public Envelop updateFrequencyStatus(@ApiParam(name = "id", value = "id")
                               @RequestParam(name = "id", required = true) String id,
                               @ApiParam(name = "status", value = "状态1使用0作废")
                               @RequestParam(name = "status", required = false) String status,
                               @ApiParam(name = "del", value = "0删除")
                                   @RequestParam(name = "del", required = false) String del){
        try {
            baseFrequencyService.updateFrequencyStatus(id,status,del);
            return success("操作成功");
        }catch (Exception e) {
            return failedException(e);
        }
    }
}

+ 27 - 25
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/dict/DictDrugEndpoint.java

@ -1,6 +1,8 @@
package com.yihu.jw.base.endpoint.dict;
import com.yihu.jw.base.service.dict.BaseDrugDictService;
import com.yihu.jw.entity.base.dict.BaseDrugDictDO;
import com.yihu.jw.entity.hospital.prescription.BaseNationalDrugDictDO;
import com.yihu.jw.hospital.prescription.service.NationalDrugDictService;
import com.yihu.jw.restmodel.web.Envelop;
@ -19,15 +21,15 @@ import org.springframework.web.bind.annotation.*;
@Api(value = "药品字典维护", description = "药品字典维护", tags = {"药品字典维护"})
public class DictDrugEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private NationalDrugDictService nationalDrugDictService;
    private BaseDrugDictService nationalDrugDictService;
    @PostMapping(value = BaseHospitalRequestMapping.Prescription.saveNationalDrug)
    @PostMapping("/saveNationalDrug")
    @ApiOperation(value = "保存药品字典接口")
    public ObjEnvelop saveNationalDrug(@ApiParam(name = "jsonData", value = "药品json串")
                                       @RequestParam(name = "jsonData", required = true) String jsonData) throws Exception {
        try {
            BaseNationalDrugDictDO nationalDrugDictDO = objectMapper.readValue(jsonData, BaseNationalDrugDictDO.class);
            BaseDrugDictDO nationalDrugDictDO = objectMapper.readValue(jsonData, BaseDrugDictDO.class);
            return success(nationalDrugDictService.saveNationalDrug(nationalDrugDictDO));
        }catch (Exception e) {
            return failedObjEnvelopException(e);
@ -35,52 +37,52 @@ public class DictDrugEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.getNationalDrugList)
    @GetMapping("/findDrugDictList")
    @ApiOperation(value = "获取药品字典接口")
    public MixEnvelop getNationalDrugList(@ApiParam(name = "name", value = "药品名称")
    public MixEnvelop findDrugDict(@ApiParam(name = "name", value = "药品名称")
                                          @RequestParam(name = "name", required = false) String name,
                                          @ApiParam(name = "number", value = "药品编码")
                                          @RequestParam(name = "number", required = false) String number,
                                          @ApiParam(name = "hospital", value = "所属机构")
                                          @RequestParam(name = "hospital", required = false) String hospital,
                                          @ApiParam(name = "status", value = "状态")
                                          @RequestParam(name = "status", required = false) Integer status,
                                          @RequestParam(name = "status", required = false) String status,
                                          @ApiParam(name = "page", value = "当前页")
                                          @RequestParam(name = "page", required = false) Integer page,
                                          @ApiParam(name = "pageSize", value = "页面大小")
                                          @RequestParam(name = "pageSize", required = false) Integer pageSize) throws Exception {
        try {
            return nationalDrugDictService.getNationalDrugList(name, number, hospital, status, page, pageSize);
            return nationalDrugDictService.findDrugDict(name,status, page, pageSize);
        }catch (Exception e) {
            return failedMixEnvelopException(e);
        }
    }
    @PostMapping(value = BaseHospitalRequestMapping.Prescription.updateNationalDrugStatus)
    @ApiOperation(value = "更新药品字典状态")
    public Envelop updateNationalDrugStatus(@ApiParam(name = "id", value = "药品id")
                                            @RequestParam(name = "id", required = true) Integer id,
                                            @ApiParam(name = "status", value = "状态", required = true)
                                            @RequestParam(name = "status") Integer status){
    @GetMapping("/findOneDrug")
    @ApiOperation(value = "根据药品id查询")
    public Envelop findOneDrug(@ApiParam(name = "id", value = "药品id")
                                            @RequestParam(name = "id", required = true) String id){
        try {
            nationalDrugDictService.updateNationalDrugStatus(id,status);
            return success();
            return success(nationalDrugDictService.findOneDrug(id));
        }catch (Exception e) {
            return failedException(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.getNationalDrugById)
    @ApiOperation(value = "根据id获取药品字典")
    public ObjEnvelop getNationalDrugById(@ApiParam(name = "id", value = "药品id")
                                          @RequestParam(name = "id", required = true) Integer id) {
    @GetMapping("/updateDrugStatus")
    @ApiOperation(value = "修改状态")
    public Envelop updateDruguseStatus(@ApiParam(name = "id", value = "id")
                                       @RequestParam(name = "id", required = true) String id,
                                       @ApiParam(name = "status", value = "状态1使用0作废")
                                       @RequestParam(name = "status", required = false) String status,
                                       @ApiParam(name = "del", value = "0删除")
                                       @RequestParam(name = "del", required = false) String del){
        try {
            return success(nationalDrugDictService.getNationalDrugById(id));
            nationalDrugDictService.updateDrugStatus(id,status,del);
            return success("操作成功");
        }catch (Exception e) {
            return failedObjEnvelopException(e);
            return failedException(e);
        }
    }
}

+ 43 - 32
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/dict/DictIcd10Endpoint.java

@ -2,10 +2,7 @@ package com.yihu.jw.base.endpoint.dict;
import com.yihu.jw.base.service.dict.DictIcd10Service;
import com.yihu.jw.restmodel.base.dict.DictIcd10VO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.*;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import io.swagger.annotations.Api;
@ -37,13 +34,14 @@ public class DictIcd10Endpoint extends EnvelopRestEndpoint {
    @Autowired
    private DictIcd10Service dictIcd10Service;
    @PostMapping(value = BaseRequestMapping.DictIcd10.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @PostMapping("/icd1oCreateUpdate")
    @ApiOperation(value = "创建")
    public ObjEnvelop<DictIcd10VO> create(
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
    public ObjEnvelop<DictIcd10VO> createOrupdate(
            @ApiParam(name = "jsonData", value = "Json数据", required = true)
            @RequestParam(value = "jsonData") String jsonData) throws Exception {
        System.out.println(jsonData);
        DictIcd10DO dictIcd10 = toEntity(jsonData, DictIcd10DO.class);
        dictIcd10 = dictIcd10Service.save(dictIcd10);
        dictIcd10Service.saveIcd10(dictIcd10);
        return success(dictIcd10, DictIcd10VO.class);
    }
@ -56,19 +54,6 @@ public class DictIcd10Endpoint extends EnvelopRestEndpoint {
        return success("删除成功");
    }
    @PostMapping(value = BaseRequestMapping.DictIcd10.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "更新")
    public ObjEnvelop<DictIcd10VO> update(
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
        DictIcd10DO dictIcd10 = toEntity(jsonData, DictIcd10DO.class);
        if (null == dictIcd10.getId()) {
            return failed("ID不能为空", ObjEnvelop.class);
        }
        dictIcd10 = dictIcd10Service.save(dictIcd10);
        return success(dictIcd10, DictIcd10VO.class);
    }
    @GetMapping(value = BaseRequestMapping.DictIcd10.PAGE)
    @ApiOperation(value = "获取分页")
    public PageEnvelop<DictIcd10VO> page(
@ -87,17 +72,43 @@ public class DictIcd10Endpoint extends EnvelopRestEndpoint {
        return success(dictIcd10s, count, page, size, DictIcd10VO.class);
    }
    @GetMapping(value = BaseRequestMapping.DictIcd10.LIST)
    @GetMapping("/findIcd10List")
    @ApiOperation(value = "获取列表")
    public ListEnvelop<DictIcd10VO> list(
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts) throws Exception {
        List<DictIcd10DO> dictIcd10s = dictIcd10Service.search(fields, filters, sorts);
        return success(dictIcd10s, DictIcd10VO.class);
    public MixEnvelop list(
            @ApiParam(name = "name", value = "")
            @RequestParam(value = "name", required = false) String name,
            @ApiParam(name = "status", value = "")
            @RequestParam(value = "status", required = false) String status,
            @ApiParam(name = "page", value = "")
            @RequestParam(value = "page", required = false) Integer page,
            @ApiParam(name = "pageSize", value = "")
            @RequestParam(value = "pageSize", required = false) Integer pageSize) throws Exception {
        return dictIcd10Service.findIcd10List(name, status, page,pageSize);
    }
    @GetMapping("/findIcd10One")
    @ApiOperation(value = "获取单条")
    public Envelop findIcd10One(
            @ApiParam(name = "id", value = "")
            @RequestParam(value = "id", required = false) Integer id) throws Exception {
        return success(dictIcd10Service.findOneIcd10(id));
    }
    @GetMapping("/updateIcd10Status")
    @ApiOperation(value = "修改状态")
    public Envelop updateIcd10Status(@ApiParam(name = "id", value = "id")
                                       @RequestParam(name = "id", required = true) Integer id,
                                       @ApiParam(name = "status", value = "状态1使用0作废")
                                       @RequestParam(name = "status", required = false) String status,
                                       @ApiParam(name = "del", value = "0删除")
                                       @RequestParam(name = "del", required = false) String del){
        try {
            dictIcd10Service.updateIcd10Status(id,status,del);
            return success("操作成功");
        }catch (Exception e) {
            return failedException(e);
        }
    }
}

+ 430 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/dict/TemplateManageEndpoint.java

@ -0,0 +1,430 @@
package com.yihu.jw.base.endpoint.dict;
import com.yihu.jw.base.service.dict.*;
import com.yihu.jw.base.service.dict.importManage.*;
import com.yihu.jw.base.service.doctor.excelImport.BaseDoctorExcelDO;
import com.yihu.jw.base.service.doctor.excelImport.BaseDoctorExcelDOReader;
import com.yihu.jw.entity.base.dict.DictDiseaseDO;
import com.yihu.jw.entity.base.dict.DiseaseManageDO;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.restmodel.base.dict.DictDiseaseVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/templateManage")
@Api(value = "字典模板维护", description = "字典模板维护", tags = {"字典模板维护"})
public class TemplateManageEndpoint  extends EnvelopRestEndpoint {
    @Autowired
    private TemplateManageService templateManageService;
    @Autowired
    private BaseDrugDictService baseDrugDictService;
    @Autowired
    private BaseDrugExcelDOReader baseDrugExcelDOReader;
    @Autowired
    private BaseDrugUseExcelDOReader baseDrugUseExcelDOReader;
    @Autowired
    private BaseDrugUseService baseDrugUseService;
    @Autowired
    private BaseFrequencyExcelDOReader baseFrequencyExcelDOReader;
    @Autowired
    private BaseFrequencyService baseFrequencyService;
    @Autowired
    private BaseIcd10ExcelDOReader icd10ExcelDOReader;
    @Autowired
    private DictIcd10Service dictIcd10Service;
    @PostMapping("/excelControl/importDrug")
    @Transactional(rollbackFor = Exception.class)
    @ApiOperation(value = "基础药品字典信息列表导入")
    public Envelop importData(
            @ApiParam(name = "file", value = "文件", required = true)
            @RequestPart(value = "file") MultipartFile file,
            @ApiParam(name = "templateId", value = "templateId", required = false)
            @RequestPart(value = "templateId" ,required = false) String  templateId,
            HttpServletRequest request) throws IOException, ManageException {
        try {
            request.setCharacterEncoding("UTF-8");
//            AExcelReader excelReader = new BaseDoctorExcelDOReader();
            InputStream inputStream = file.getInputStream();
            Workbook workbook = getWorkbook(inputStream,file.getOriginalFilename());
            baseDrugExcelDOReader.read(workbook);
            //验证未通过(暂无验证)
            List<BasDrugExcelDO> errorLs = baseDrugExcelDOReader.getErrorLs();
            List<BasDrugExcelDO> correctLs = baseDrugExcelDOReader.getCorrectLs();
            Map<String, Object> result =new HashMap<>();
            String msg ="";
            if(correctLs.size()>0){
                result = baseDrugDictService.batchInsertDrugs(correctLs,templateId);
                result.put("errorLs", errorLs);
                int errors = errorLs.size();
                int corrects = correctLs.size();
                msg = "当前导入成功"+corrects+"条数据"+";失败"+errors+"条数据";
            }
            return success(msg, result);
        }catch (Exception e){
            e.printStackTrace();
            return failed("导入异常,请检查导入文件格式" + e.getMessage());
        }
    }
    /**
     * 判断文件格式
     * @param in
     * @param fileName
     * @return
     */
    private static Workbook getWorkbook(InputStream in, String fileName) throws Exception {
        Workbook book = null;
        String filetype = fileName.substring(fileName.lastIndexOf("."));
        if(".xls".equals(filetype)) {
            book = new HSSFWorkbook(in);
        } else if (".xlsx".equals(filetype)) {
            book = new XSSFWorkbook(in);
        } else {
            throw new Exception("请上传excel文件!");
        }
        return book;
    }
    @GetMapping("/getTemplateList")
    @ApiOperation(value = "获取列表")
    public MixEnvelop list (
            @ApiParam(name = "templateType", value = "模板类型")
            @RequestParam(value = "templateType", required = false) String templateType,
            @ApiParam(name = "code", value = "")
            @RequestParam(value = "code", required = false) String code,
            @ApiParam(name = "name", value = "")
            @RequestParam(value = "name", required = false) String name,
            @ApiParam(name = "page", value = "")
            @RequestParam(value = "page", required = false) Integer page,
            @ApiParam(name = "pageSize", value = "")
            @RequestParam(value = "pageSize", required = false) Integer pageSize) throws Exception {
        try {
            return templateManageService.findTempalte(templateType,code,name,page,pageSize);
        }catch (Exception e){
            e.printStackTrace();
            return failedMixEnvelopException(e);
        }
    }
    @GetMapping("/addOrRemoveChild")
    @ApiOperation(value = "")
    public Envelop addOrRemoveChild (
            @ApiParam(name = "templateId", value = "模板id")
            @RequestParam(value = "templateId", required = false) String templateId,
            @ApiParam(name = "dictId", value = "")
            @RequestParam(value = "dictId", required = false) String  dictId,
            @ApiParam(name = "del", value = "")
            @RequestParam(value = "del", required = false) String  del) throws Exception {
        try {
            templateManageService.addOrRemoveChildrenDict(templateId,dictId,del);
            return success("操作成功");
        }catch (Exception e){
            e.printStackTrace();
            return failedException(e);
        }
    }
    @GetMapping("/saveOrUpdateTemplate")
    @ApiOperation(value = "")
    public Envelop saveOrUpdateTemplate (
            @ApiParam(name = "templateId", value = "模板id")
            @RequestParam(value = "templateId", required = false) String templateId,
            @ApiParam(name = "code", value = "")
            @RequestParam(value = "code", required = false) String  code,
            @ApiParam(name = "name", value = "")
            @RequestParam(value = "name", required = false) String  name,
            @ApiParam(name = "templateType", value = "")
            @RequestParam(value = "templateType", required = false) String  templateType) throws Exception {
        try {
            if (!StringUtils.isNoneBlank(templateId)){
                templateId="1";
            }
            templateManageService.saveOrUpdateTemplate(templateId,code,name,getUID(),getUNAME(),templateType);
            return success("操作成功");
        }catch (Exception e){
            e.printStackTrace();
            return failedException(e);
        }
    }
    @GetMapping("/getTemplateChildList")
    @ApiOperation(value = "获取列表")
    public MixEnvelop getTemplateChildList (
            @ApiParam(name = "templateId", value = "模板id")
            @RequestParam(value = "templateId", required = false) String templateId,
            @ApiParam(name = "name", value = "模板id")
            @RequestParam(value = "name", required = false) String name,
            @ApiParam(name = "isSelectUse", value = "1查询已添加的2查询未添加")
            @RequestParam(value = "isSelectUse", required = false) String isSelectUse,
            @ApiParam(name = "page", value = "")
            @RequestParam(value = "page", required = false) Integer page,
            @ApiParam(name = "pageSize", value = "")
            @RequestParam(value = "pageSize", required = false) Integer pageSize) throws Exception {
        try {
            if(StringUtils.isNoneBlank(isSelectUse)&&"1".equalsIgnoreCase(isSelectUse)){
                return templateManageService.findTemlateAddChildList(templateId,page,pageSize);
            }else if(StringUtils.isNoneBlank(isSelectUse)&&"2".equalsIgnoreCase(isSelectUse)){
                return templateManageService.findTemlateNotAddChildList(templateId,page,pageSize);
            } else {
                return templateManageService.findTemlateChildList(templateId,name,page,pageSize);
            }
        }catch (Exception e){
            e.printStackTrace();
            return failedMixEnvelopException(e);
        }
    }
    @GetMapping("/saveOrgTemplate")
    @ApiOperation(value = "保存租户模板")
    public Envelop saveSaasTemplate (
            @ApiParam(name = "orgCode", value = "orgCode")
            @RequestParam(value = "orgCode", required = false) String orgCode,
            @ApiParam(name = "templateIds", value = "")
            @RequestParam(value = "templateIds", required = false) String templateIds) throws Exception {
        try {
            templateManageService.saveUserTemplateRelation(orgCode,templateIds);
            return success("保存成功");
        }catch (Exception e){
            e.printStackTrace();
            return failedMixEnvelopException(e);
        }
    }
    @GetMapping("/findOrgTemplate")
    @ApiOperation(value = "保存租户模板")
    public Envelop saveSaasTemplate (
            @ApiParam(name = "orgCode", value = "orgCode")
            @RequestParam(value = "orgCode", required = false) String orgCode) throws Exception {
        try {
            return success(templateManageService.findUseTemplate(orgCode));
        }catch (Exception e){
            e.printStackTrace();
            return failedMixEnvelopException(e);
        }
    }
    @PostMapping("/excelControl/importDrugUse")
    @Transactional(rollbackFor = Exception.class)
    @ApiOperation(value = "基础药品用法列表导入")
    public Envelop importDrugUse(
            @ApiParam(name = "file", value = "文件", required = true)
            @RequestPart(value = "file") MultipartFile file,
            @ApiParam(name = "templateId", value = "templateId", required = false)
            @RequestPart(value = "templateId" ,required = false) String  templateId,
            HttpServletRequest request) throws IOException, ManageException {
        try {
            request.setCharacterEncoding("UTF-8");
//            AExcelReader excelReader = new BaseDoctorExcelDOReader();
            InputStream inputStream = file.getInputStream();
            Workbook workbook = getWorkbook(inputStream,file.getOriginalFilename());
            baseDrugUseExcelDOReader.read(workbook);
            //验证未通过(暂无验证)
            List<BasDrugUseExcelDO> errorLs = baseDrugUseExcelDOReader.getErrorLs();
            List<BasDrugUseExcelDO> correctLs = baseDrugUseExcelDOReader.getCorrectLs();
            Map<String, Object> result =new HashMap<>();
            String msg ="";
            if(correctLs.size()>0){
                result = baseDrugUseService.batchInsertDrugs(correctLs,templateId);
                result.put("errorLs", errorLs);
                int errors = errorLs.size();
                int corrects = correctLs.size();
                msg = "当前导入成功"+corrects+"条数据"+";失败"+errors+"条数据";
                return success(msg, result);
            }
            return success(msg, result);
        }catch (Exception e){
            e.printStackTrace();
            return failed("导入异常,请检查导入文件格式" + e.getMessage());
        }
    }
    @PostMapping("/excelControl/importfrequency")
    @Transactional(rollbackFor = Exception.class)
    @ApiOperation(value = "基础药品频次信息列表导入")
    public Envelop importfrequency(
            @ApiParam(name = "file", value = "文件", required = true)
            @RequestPart(value = "file") MultipartFile file,
            @ApiParam(name = "templateId", value = "templateId", required = false)
            @RequestPart(value = "templateId" ,required = false) String  templateId,
            HttpServletRequest request) throws IOException, ManageException {
        try {
            request.setCharacterEncoding("UTF-8");
//            AExcelReader excelReader = new BaseDoctorExcelDOReader();
            InputStream inputStream = file.getInputStream();
            Workbook workbook = getWorkbook(inputStream,file.getOriginalFilename());
            baseFrequencyExcelDOReader.read(workbook);
            //验证未通过(暂无验证)
            List<BasFrequencyExcelDO> errorLs = baseFrequencyExcelDOReader.getErrorLs();
            List<BasFrequencyExcelDO> correctLs = baseFrequencyExcelDOReader.getCorrectLs();
            Map<String, Object> result =new HashMap<>();
            String msg ="";
            if(correctLs.size()>0){
                 result = baseFrequencyService.batchInsertDrugs(correctLs,templateId);
                result.put("errorLs", errorLs);
                int errors = errorLs.size();
                int corrects = correctLs.size();
                msg = "当前导入成功"+corrects+"条数据"+";失败"+errors+"条数据";
            }
            return success(msg, result);
        }catch (Exception e){
            e.printStackTrace();
            return failed("导入异常,请检查导入文件格式" + e.getMessage());
        }
    }
    @PostMapping("/excelControl/importIcd10")
    @Transactional(rollbackFor = Exception.class)
    @ApiOperation(value = "基础诊断信息列表导入")
    public Envelop importIcd10(
            @ApiParam(name = "file", value = "文件", required = true)
            @RequestPart(value = "file") MultipartFile file,
            @ApiParam(name = "templateId", value = "templateId", required = false)
            @RequestPart(value = "templateId" ,required = false) String  templateId,
            HttpServletRequest request) throws IOException, ManageException {
        try {
            request.setCharacterEncoding("UTF-8");
//            AExcelReader excelReader = new BaseDoctorExcelDOReader();
            InputStream inputStream = file.getInputStream();
            Workbook workbook = getWorkbook(inputStream,file.getOriginalFilename());
            icd10ExcelDOReader.read(workbook);
            //验证未通过(暂无验证)
            List<BasIcd10ExcelDO> errorLs = icd10ExcelDOReader.getErrorLs();
            List<BasIcd10ExcelDO> correctLs = icd10ExcelDOReader.getCorrectLs();
            Map<String, Object> result =new HashMap<>();
            String msg ="";
            if(correctLs.size()>0){
                result = dictIcd10Service.batchInsertDrugs(correctLs,templateId);
                result.put("errorLs", errorLs);
                int errors = errorLs.size();
                int corrects = correctLs.size();
                msg = "当前导入成功"+corrects+"条数据"+";失败"+errors+"条数据";
            }
            return success(msg, result);
        }catch (Exception e){
            e.printStackTrace();
            return failed("导入异常,请检查导入文件格式" + e.getMessage());
        }
    }
    @GetMapping("/excelControl/exportExcel")
    public void exportExcel(HttpServletRequest request, HttpServletResponse response,@ApiParam(name = "templateId", value = "templateId", required = true)
    @RequestPart(value = "templateType") String  templateType) {
        try {
            String filePath="";
            if ("frequencyDict".equalsIgnoreCase(templateType)){
                filePath="/home/频次模板.xls";
            }else if ("drugUseDict".equalsIgnoreCase(templateType)){
                filePath="/home/用药类型模板.xls";
            }else if ("drugListDict".equalsIgnoreCase(templateType)){
                filePath="/home/药品字典模板.xls";
            }else if ("icd10ListDict".equalsIgnoreCase(templateType)){
                filePath="/home/诊断模板.xls";
            }
            HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(filePath));
// 根据页面index 获取sheet页
            HSSFSheet sheet = wb.getSheet("Sheet1");
            /*for (int i = 0; i < 2; i++) {
// 创建HSSFRow对象
                HSSFRow row = sheet.createRow(i + 1);
// 创建HSSFCell对象 设置单元格的值
                row.createCell(0).setCellValue("张三" + i);
                row.createCell(1).setCellValue("1");
                row.createCell(2).setCellValue("1");
                row.createCell(3).setCellValue("210503199507250333");
                row.createCell(4).setCellValue("18841409773");
                row.createCell(5).setCellValue("350211A1002/0000001/1303");
                row.createCell(6).setCellValue("1302");
                row.createCell(7).setCellValue("admin");
                row.createCell(8).setCellValue("1");
            }*/
// 输出Excel文件
            OutputStream output = new BufferedOutputStream(response.getOutputStream());
            response.reset();
// 设置文件头
            /*response.setHeader("Content-Disposition",
                    "attchement;filename=" + new String("人员信息.xls".getBytes("gb2312"), "ISO8859-1"));
            response.setContentType("application/msexcel");*/
            response.setCharacterEncoding("UTF-8");
            response.setContentType("application/x-msdownload");
            /*response.setHeader("Content-Disposition", "attachment; filename="
                    + new String( "医生模板信息".getBytes("gb2312"), "ISO8859-1" )+".xls");*/
            response.setHeader("Content-Disposition", "attachment; filename="
                    + URLEncoder.encode("医生模板信息.xls","UTF-8"));
            wb.write(output);
            wb.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @GetMapping("/findOneTemplate")
    @ApiOperation(value = "根据药品id查询")
    public Envelop findOneTemplate(@ApiParam(name = "id", value = "药品id")
                               @RequestParam(name = "id", required = true) String id){
        try {
            return success(templateManageService.findOneTemplateById(id));
        }catch (Exception e) {
            return failedException(e);
        }
    }
}

+ 183 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/BaseDrugDictService.java

@ -0,0 +1,183 @@
package com.yihu.jw.base.service.dict;
import com.yihu.jw.base.service.dict.importManage.BasDrugExcelDO;
import com.yihu.jw.base.service.doctor.excelImport.BaseDoctorExcelDO;
import com.yihu.jw.dict.dao.BaseDrugDictDao;
import com.yihu.jw.dict.dao.BaseTemplateDictDao;
import com.yihu.jw.entity.base.dict.*;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.entity.base.org.BaseOrgDO;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.utils.security.MD5;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import static com.yihu.jw.util.common.BeanUtils.getNullPropertyNames;
@Service
public class BaseDrugDictService extends BaseJpaService<BaseDrugDictDO, BaseDrugDictDao> {
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private BaseDrugDictDao baseDrugDictDao;
    @Autowired
    private BaseTemplateDictDao baseTemplateDictDao;
    public BaseDrugDictDO saveNationalDrug(BaseDrugDictDO nationalDrugDictDO) {
        //判断新增或编辑
        if (!StringUtils.isNoneBlank(nationalDrugDictDO.getId())) {
            nationalDrugDictDO.setCreate_time(new Date());
            nationalDrugDictDO.setUpdate_time(new Date());
            nationalDrugDictDO.setIs_del("1");
            return baseDrugDictDao.save(nationalDrugDictDO);
        }else {
            System.out.println("===="+nationalDrugDictDO.getId());
            BaseDrugDictDO oldDurgDictDO =  baseDrugDictDao.findOne(nationalDrugDictDO.getId());
            BeanUtils.copyProperties(nationalDrugDictDO, oldDurgDictDO, getNullPropertyNames(nationalDrugDictDO));
            oldDurgDictDO.setUpdate_time(new Date());
            return baseDrugDictDao.save(oldDurgDictDO);
        }
    }
    public MixEnvelop  findDrugDict(String name,String status,Integer page,Integer pageSize){
        String sql = "select t.id as \"id\"," +
                " t.charge_code as \"charge_code\"," +
                " t.drugname as \"drugname\"," +
                " t.specification as \"specification\"," +
                " t.py_code as \"py_code\"," +
                " t.supply_code as \"supply_code\"," +
                " t.supply_name as \"supply_name\"," +
                " t.retprice as \"retprice\"," +
                " t.manu_name as \"manu_name\"," +
                " t.weigh_unit as \"weigh_unit\"," +
                " t.mini_unit_name as \"mini_unit_name\"," +
                " t.pack_unit_name as \"pack_unit_name\"," +
                " t.weigh_unit_name as \"weigh_unit_name\"," +
                " t.vol_unit_name as \"vol_unit_name\"," +
                " t.win_no as \"win_no\"," +
                " t.pack_retprice as \"pack_retprice\"," +
                " t.mini_unit as \"mini_unit\"," +
                " t.pack_size as \"pack_size\"," +
                " t.action as \"action\"," +
                " t.serial as \"serial\"," +
                " t.group_no as \"group_no\"," +
                " t.stock_amount as \"stock_amount\"," +
                " t.visible_flag as \"visible_flag\"," +
                " t.drug_flag as \"drug_flag\"," +
                " t.create_time as \"create_time\"," +
                " t.update_time as \"update_time\"," +
                " t.status as \"status\"," +
                " t.mini_stock_amount as \"mini_stock_amount\"," +
                " t.dosage as \"dosage\"," +
                " t.max_stock_amount as \"max_stock_amount\"," +
                " t.pack_unit as \"pack_unit\"," +
                " t.manufactory as \"manufactory\"," +
                " t.vol_unit as \"vol_unit\"," +
                " t.is_del as \"is_del\"" +
                " from base_drug_dict t " +
                " where t.is_del='1' ";
        String sqlCount = "select count(1) as \"count\" from base_drug_dict t where t.is_del='1' ";
        if (StringUtils.isNoneBlank(name)){
            sql+=" and t.drugname like '%"+name+"%'";
            sqlCount+=" and t.drugname like '%"+name+"%'";
        }
        if (StringUtils.isNoneBlank(status)){
            sql+=" and t.status = '"+status+"'";
            sqlCount+=" and t.status = '"+status+"'";
        }
        List<Map<String,Object>> coutList=hibenateUtils.createSQLQuery(sqlCount);
        Integer count=0 ;
        if (coutList!=null&&coutList.size()>0){
            count=Integer.valueOf(coutList.get(0).get("count").toString());
        }
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
        for (Map<String,Object> map:list){
            if (map.get("status")!=null&&"1".equalsIgnoreCase(map.get("status").toString())){
                map.put("statusName","生效中");
            }else {
                map.put("statusName","已失效");
            }
        }
        MixEnvelop mixEnvelop = new MixEnvelop();
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setTotalCount(count);
        return mixEnvelop;
    }
    public BaseDrugDictDO findOneDrug(String id){
        return baseDrugDictDao.findOne(id);
    }
    public Map<String, Object> batchInsertDrugs(List<BasDrugExcelDO> drugs,String templateId) throws ManageException {
        Map<String, Object> result = new HashMap<>();
        //批量存储的集合
//        int correctCount = 0;
//        List<BasDrugExcelDO> corrects = new ArrayList<>();
        BaseDrugDictDO baseDrugDictDO;
        //批量存储
        for(BasDrugExcelDO one:drugs) {
            baseDrugDictDO = new BaseDrugDictDO();
            baseDrugDictDO.setCreate_time(new Date());
            baseDrugDictDO.setIs_del("1");
            baseDrugDictDO.setCharge_code(one.getCharge_code());
            baseDrugDictDO.setDosage(one.getDosage());
            baseDrugDictDO.setDrug_flag(one.getDrug_flag());
            baseDrugDictDO.setDrugname(one.getDrugname());
            baseDrugDictDO.setPack_retprice(one.getPack_retprice());
            baseDrugDictDO.setPack_size(one.getPack_size());
            baseDrugDictDO.setPack_unit_name(one.getPack_unit_name());
            baseDrugDictDO.setPack_unit(one.getPack_unit());
            baseDrugDictDO.setWin_no(one.getWin_no());
            baseDrugDictDO.setRetprice(one.getRetprice());
            baseDrugDictDO.setGroup_no(one.getGroup_no());
            baseDrugDictDO.setSerial(one.getSerial());
            baseDrugDictDO.setManu_name(one.getManu_name());
            baseDrugDictDO.setMax_stock_amount(one.getMax_stock_amount());
            baseDrugDictDO.setMini_stock_amount(one.getMini_stock_amount());
            baseDrugDictDO.setMini_unit(one.getMini_unit());
            baseDrugDictDO.setMini_unit_name(one.getMini_unit_name());
            baseDrugDictDO.setPy_code(one.getPy_code());
            baseDrugDictDO.setStock_amount(one.getStock_amount());
            baseDrugDictDO.setVisible_flag(one.getVisible_flag());
            baseDrugDictDO.setSpecification(one.getSpecification());
            baseDrugDictDO.setVol_unit_name(one.getVol_unit_name());
            baseDrugDictDO.setWeigh_unit(one.getWeigh_unit());
            baseDrugDictDO.setWeigh_unit_name(one.getWeigh_unit_name());
            baseDrugDictDO=baseDrugDictDao.save(baseDrugDictDO);
            if (StringUtils.isNoneBlank(templateId)){
                BaseTemplateDictDO baseTemplateDictDO = new BaseTemplateDictDO();
                baseTemplateDictDO.setTemplateId(templateId);
                baseTemplateDictDO.setIsDel("1");
                baseTemplateDictDO.setDictId(baseDrugDictDO.getId());
                baseTemplateDictDO.setCreateTime(new Date());
                baseTemplateDictDao.save(baseTemplateDictDO);
            }
        }
        result.put("correctCount", drugs.size());
        return result;
    }
    public void updateDrugStatus(String id,String status,String del){
        BaseDrugDictDO baseDrugDictDO = baseDrugDictDao.findOne(id);
        if (baseDrugDictDO!=null){
            if (StringUtils.isNoneBlank(status)){
                baseDrugDictDO.setStatus(status);
            }
            if (StringUtils.isNoneBlank(del)){
                baseDrugDictDO.setIs_del(del);
            }
            baseDrugDictDao.save(baseDrugDictDO);
        }
    }
}

+ 145 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/BaseDrugUseService.java

@ -0,0 +1,145 @@
package com.yihu.jw.base.service.dict;
import com.yihu.jw.base.service.dict.importManage.BasDrugExcelDO;
import com.yihu.jw.base.service.dict.importManage.BasDrugUseExcelDO;
import com.yihu.jw.dict.dao.BaseDrugDictDao;
import com.yihu.jw.dict.dao.BaseDrugUseDictDao;
import com.yihu.jw.dict.dao.BaseTemplateDictDao;
import com.yihu.jw.entity.base.dict.BaseDrugDictDO;
import com.yihu.jw.entity.base.dict.BaseDrugUseDictDO;
import com.yihu.jw.entity.base.dict.BaseTemplateDictDO;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.yihu.jw.util.common.BeanUtils.getNullPropertyNames;
@Service
public class BaseDrugUseService extends BaseJpaService<BaseDrugUseDictDO, BaseDrugUseDictDao> {
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private BaseDrugUseDictDao baseDrugUseDictDao;
    @Autowired
    private BaseTemplateDictDao baseTemplateDictDao;
    public void saveBaseDrugUse(BaseDrugUseDictDO baseDrugUseDictDO){
        if (StringUtils.isNotBlank(baseDrugUseDictDO.getId())){
            BaseDrugUseDictDO oldDurgDictDO= baseDrugUseDictDao.findOne(baseDrugUseDictDO.getId());
            BeanUtils.copyProperties(baseDrugUseDictDO, oldDurgDictDO, getNullPropertyNames(baseDrugUseDictDO));
            baseDrugUseDictDao.save(oldDurgDictDO);
        }else {
            baseDrugUseDictDO.setCreateTime(new Date());
            baseDrugUseDictDO.setDel_flag("1");
            baseDrugUseDictDao.save(baseDrugUseDictDO);
        }
    }
    public MixEnvelop findDrugUseList(String name,String status,Integer page ,Integer pageSize){
        String sql="select t.id as \"id\"," +
                " t.supply_code as \"supply_code\"," +
                " t.supply_name as \"supply_name\"," +
                " t.supply_occ as \"supply_occ\"," +
                " t.del_flag as \"del_flag\"," +
                " t.sort_code as \"sort_code\"," +
                " t.print_name as \"print_name\"," +
                " t.py_code as \"py_code\"," +
                " t.d_code as \"d_code\"," +
                " t.yb_name as \"yb_name\"," +
                " t.yb_code as \"yb_code\"," +
                " t.status as \"status\"," +
                " t.create_time as \"create_time\" " +
                "from base_drug_use_dict t " +
                " where t.del_flag='1'";
        String sqlCount =" select count(1) as \"count\" from base_drug_use_dict t where t.del_flag='1'";
        if (StringUtils.isNoneBlank(name)){
            sql+=" and t.supply_name like '%"+name+"%'";
            sqlCount+=" and t.supply_name like '%"+name+"%'";
        }
        if (StringUtils.isNoneBlank(status)){
            sql+=" and t.status ='"+status+"'";
            sqlCount+=" and t.status ='"+status+"'";
        }
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
        for (Map<String,Object> map:list){
            if (map.get("status")!=null&&"1".equalsIgnoreCase(map.get("status").toString())){
                map.put("statusName","生效中");
            }else {
                map.put("statusName","已失效");
            }
        }
        List<Map<String,Object>> countList=hibenateUtils.createSQLQuery(sqlCount);
        Integer count=0;
        if (countList!=null&&countList.size()>0) {
            count = Integer.valueOf(countList.get(0).get("count").toString());
        }
        MixEnvelop mixEnvelop = new MixEnvelop();
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setTotalCount(count);
        return mixEnvelop;
    }
    public BaseDrugUseDictDO findOneUseDict(String dictId){
        return baseDrugUseDictDao.findOne(dictId);
    }
    public Map<String, Object> batchInsertDrugs(List<BasDrugUseExcelDO> drugs, String templateId) throws ManageException {
        Map<String, Object> result = new HashMap<>();
        //批量存储的集合
//        int correctCount = 0;
//        List<BasDrugExcelDO> corrects = new ArrayList<>();
        BaseDrugUseDictDO baseDrugUseDictDO;
        //批量存储
        for(BasDrugUseExcelDO one:drugs) {
            baseDrugUseDictDO = new BaseDrugUseDictDO();
            baseDrugUseDictDO.setCreateTime(new Date());
            baseDrugUseDictDO.setStatus("1");
            baseDrugUseDictDO.setDel_flag(one.getDel_flag());
            baseDrugUseDictDO.setD_code(one.getD_code());
            baseDrugUseDictDO.setPrint_name(one.getPrint_name());
            baseDrugUseDictDO.setPy_code(one.getPy_code());
            baseDrugUseDictDO.setSort_code(one.getSort_code());
            baseDrugUseDictDO.setSupply_code(one.getSupply_code());
            baseDrugUseDictDO.setSupply_name(one.getSupply_name());
            baseDrugUseDictDO.setSupply_occ(one.getSupply_occ());
            baseDrugUseDictDO.setYb_code(one.getYb_code());
            baseDrugUseDictDO.setYb_name(one.getYb_name());
            baseDrugUseDictDO=baseDrugUseDictDao.save(baseDrugUseDictDO);
            if (StringUtils.isNoneBlank(templateId)){
                BaseTemplateDictDO baseTemplateDictDO = new BaseTemplateDictDO();
                baseTemplateDictDO.setTemplateId(templateId);
                baseTemplateDictDO.setIsDel("1");
                baseTemplateDictDO.setDictId(baseDrugUseDictDO.getId());
                baseTemplateDictDO.setCreateTime(new Date());
                baseTemplateDictDao.save(baseTemplateDictDO);
            }
        }
        result.put("correctCount", drugs.size());
        return result;
    }
    public void updateDrugUseStatus(String id,String status,String del){
        BaseDrugUseDictDO baseDrugUseDictDO = baseDrugUseDictDao.findOne(id);
        if (baseDrugUseDictDO!=null){
            if (StringUtils.isNoneBlank(status)){
                baseDrugUseDictDO.setStatus(status);
            }
            if (StringUtils.isNoneBlank(del)){
                baseDrugUseDictDO.setDel_flag(del);
            }
            baseDrugUseDictDao.save(baseDrugUseDictDO);
        }
    }
}

+ 137 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/BaseFrequencyService.java

@ -0,0 +1,137 @@
package com.yihu.jw.base.service.dict;
import com.yihu.jw.base.service.dict.importManage.BasDrugUseExcelDO;
import com.yihu.jw.base.service.dict.importManage.BasFrequencyExcelDO;
import com.yihu.jw.dict.dao.BaseDrugUseDictDao;
import com.yihu.jw.dict.dao.BaseFrequencyDictDao;
import com.yihu.jw.dict.dao.BaseTemplateDictDao;
import com.yihu.jw.entity.base.dict.BaseDrugUseDictDO;
import com.yihu.jw.entity.base.dict.BaseFrequencyDictDO;
import com.yihu.jw.entity.base.dict.BaseTemplateDictDO;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.yihu.jw.util.common.BeanUtils.getNullPropertyNames;
@Service
public class BaseFrequencyService extends BaseJpaService<BaseFrequencyDictDO, BaseFrequencyDictDao> {
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private BaseFrequencyDictDao baseFrequencyDictDao;
    @Autowired
    private BaseTemplateDictDao baseTemplateDictDao;
    public void saveFrequency(BaseFrequencyDictDO baseFrequencyDictDO){
        if (StringUtils.isNotBlank(baseFrequencyDictDO.getId())){
            BaseFrequencyDictDO oldFrequency= baseFrequencyDictDao.findOne(baseFrequencyDictDO.getId());
            BeanUtils.copyProperties(baseFrequencyDictDO, oldFrequency, getNullPropertyNames(baseFrequencyDictDO));
            baseFrequencyDictDao.save(oldFrequency);
        }else {
            baseFrequencyDictDO.setCreateTime(new Date());
            baseFrequencyDictDO.setIs_del("1");
            baseFrequencyDictDao.save(baseFrequencyDictDO);
        }
    }
    public MixEnvelop findFrequencyList(String name, String status, Integer page , Integer pageSize){
        String sql="select t.id as \"id\"," +
                " t.freq_code as \"freq_code\"," +
                " t.freq_name as \"freq_name\"," +
                " t.freq_sp as \"freq_sp\"," +
                " t.daily_times as \"daily_times\"," +
                " t.weekly_times as \"weekly_times\"," +
                " t.hosp_code as \"hosp_code\"," +
                " t.is_del as \"is_del\"," +
                " t.is_op_ip as \"is_op_ip\"," +
                " t.status as \"status\"," +
                " t.create_time as \"create_time\"" +
                "from base_frequency_dict t " +
                " where t.is_del='1'";
        String sqlCount =" select count(1) as \"count\" from base_frequency_dict t where t.is_del='1'";
        if (StringUtils.isNoneBlank(name)){
            sql+=" and (t.freq_code like '%"+name+"%' or t.freq_name like '%"+name+"%')";
            sqlCount+=" and (t.freq_code like '%"+name+"%' or t.freq_name like '%"+name+"%')";
        }
        if (StringUtils.isNoneBlank(status)){
            sql+=" and t.status ='"+status+"'";
            sqlCount+=" and t.status ='"+status+"'";
        }
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
        for (Map<String,Object> map:list){
            if (map.get("status")!=null&&"1".equalsIgnoreCase(map.get("status").toString())){
                map.put("statusName","生效中");
            }else {
                map.put("statusName","已失效");
            }
        }
        List<Map<String,Object>> countList=hibenateUtils.createSQLQuery(sqlCount);
        Integer count=0;
        if (countList!=null&&countList.size()>0) {
            count = Integer.valueOf(countList.get(0).get("count").toString());
        }
        MixEnvelop mixEnvelop = new MixEnvelop();
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setTotalCount(count);
        return mixEnvelop;
    }
    public BaseFrequencyDictDO findOneFrequency(String id){
        return baseFrequencyDictDao.findOne(id);
    }
    public Map<String, Object> batchInsertDrugs(List<BasFrequencyExcelDO> drugs, String templateId) throws ManageException {
        Map<String, Object> result = new HashMap<>();
        //批量存储的集合
//        int correctCount = 0;
//        List<BasDrugExcelDO> corrects = new ArrayList<>();
        BaseFrequencyDictDO baseFrequencyDictDO;
        //批量存储
        for(BasFrequencyExcelDO one:drugs) {
            baseFrequencyDictDO = new BaseFrequencyDictDO();
            baseFrequencyDictDO.setCreateTime(new Date());
            baseFrequencyDictDO.setIs_del("1");
            baseFrequencyDictDO.setDaily_times(one.getDaily_times());
            baseFrequencyDictDO.setFreq_code(one.getFreq_code());
            baseFrequencyDictDO.setFreq_name(one.getFreq_name());
            baseFrequencyDictDO.setFreq_sp(one.getFreq_sp());
            baseFrequencyDictDO.setHosp_code(one.getHosp_code());
            baseFrequencyDictDO.setIs_op_ip(one.getIs_op_ip());
            baseFrequencyDictDO.setStatus(one.getStatus());
            baseFrequencyDictDO.setWeekly_times(one.getWeekly_times());
            baseFrequencyDictDO=baseFrequencyDictDao.save(baseFrequencyDictDO);
            if (StringUtils.isNoneBlank(templateId)){
                BaseTemplateDictDO baseTemplateDictDO = new BaseTemplateDictDO();
                baseTemplateDictDO.setTemplateId(templateId);
                baseTemplateDictDO.setIsDel("1");
                baseTemplateDictDO.setDictId(baseFrequencyDictDO.getId());
                baseTemplateDictDO.setCreateTime(new Date());
                baseTemplateDictDao.save(baseTemplateDictDO);
            }
        }
        result.put("correctCount", drugs.size());
        return result;
    }
    public void updateFrequencyStatus(String id,String status,String del){
        BaseFrequencyDictDO baseFrequencyDictDO = baseFrequencyDictDao.findOne(id);
        if (baseFrequencyDictDO!=null){
            if (StringUtils.isNotBlank(status)){
                baseFrequencyDictDO.setStatus(status);
            }
            if (StringUtils.isNotBlank(del)){
                baseFrequencyDictDO.setIs_del(del);
            }
            baseFrequencyDictDao.save(baseFrequencyDictDO);
        }
    }
}

+ 122 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/DictIcd10Service.java

@ -3,16 +3,25 @@ package com.yihu.jw.base.service.dict;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.base.dao.dict.DictIcd10Dao;
import com.yihu.jw.base.enums.SystemDictEnum;
import com.yihu.jw.base.service.dict.importManage.BasDrugUseExcelDO;
import com.yihu.jw.base.service.dict.importManage.BasIcd10ExcelDO;
import com.yihu.jw.dict.dao.BaseTemplateDictDao;
import com.yihu.jw.entity.base.dict.BaseDrugUseDictDO;
import com.yihu.jw.entity.base.dict.BaseTemplateDictDO;
import com.yihu.jw.exception.business.ManageException;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import com.yihu.jw.entity.base.dict.DictIcd10DO;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
import static com.yihu.jw.util.common.BeanUtils.getNullPropertyNames;
/**
 * 
@ -31,6 +40,10 @@ public class DictIcd10Service extends BaseJpaService<DictIcd10DO, DictIcd10Dao>
    @Autowired
    private DictIcd10Dao dictIcd10Dao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private BaseTemplateDictDao baseTemplateDictDao;
    /**
     * 查询某一租户下的Icd10字典信息,如果saadId为空表示当前用户角色为超级管理员,超级管理员可以看到所有数据
@ -56,4 +69,110 @@ public class DictIcd10Service extends BaseJpaService<DictIcd10DO, DictIcd10Dao>
        dictIcd10Dao.delete(id);
    }
    public MixEnvelop findIcd10List(String name,String status,Integer page ,Integer pageSize){
        String sql="select t.id as \"id\"," +
                " t.code as \"code\"," +
                " t.name as \"name\"," +
                " t.description as \"description\"," +
                " t.create_time as \"create_time\"," +
                " t.disea_reason as \"disea_reason\"," +
                " t.death_reason as \"death_reason\"," +
                " t.py_code as \"py_code\"," +
                " t.d_code as \"d_code\"," +
                " t.flag as \"flag\"," +
                " t.is_del as \"is_del\"," +
                " t.status as \"status\" " +
                "from dict_icd10 t " +
                " where t.is_del='1'";
        String sqlCount =" select count(1) as \"count\" from dict_icd10 t where t.is_del='1'";
        if (StringUtils.isNoneBlank(name)){
            sql+=" and t.name like '%"+name+"%'";
            sqlCount+=" and t.name like '%"+name+"%'";
        }
        if (StringUtils.isNoneBlank(status)){
            sql+=" and t.status ='"+status+"'";
            sqlCount+=" and t.status ='"+status+"'";
        }
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
        for (Map<String,Object> map:list){
            if (map.get("status")!=null&&"1".equalsIgnoreCase(map.get("status").toString())){
                map.put("statusName","生效中");
            }else {
                map.put("statusName","已失效");
            }
        }
        List<Map<String,Object>> countList=hibenateUtils.createSQLQuery(sqlCount);
        Integer count=0;
        if (countList!=null&&countList.size()>0) {
            count = Integer.valueOf(countList.get(0).get("count").toString());
        }
        MixEnvelop mixEnvelop = new MixEnvelop();
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setTotalCount(count);
        return mixEnvelop;
    }
    public void saveIcd10(DictIcd10DO icd10DO){
        if (icd10DO.getId()!=null){
            DictIcd10DO icd10DO1= dictIcd10Dao.findOne(icd10DO.getId());
            BeanUtils.copyProperties(icd10DO, icd10DO1, getNullPropertyNames(icd10DO));
            dictIcd10Dao.save(icd10DO1);
        }else {
            icd10DO.setCreateTime(new Date());
            icd10DO.setIs_del("1");
            dictIcd10Dao.save(icd10DO);
        }
    }
    public DictIcd10DO findOneIcd10(Integer id){
        return dictIcd10Dao.findOne(id);
    }
    public Map<String, Object> batchInsertDrugs(List<BasIcd10ExcelDO> drugs, String templateId) throws ManageException {
        Map<String, Object> result = new HashMap<>();
        //批量存储的集合
//        int correctCount = 0;
//        List<BasDrugExcelDO> corrects = new ArrayList<>();
        DictIcd10DO dictIcd10DO;
        //批量存储
        for(BasIcd10ExcelDO one:drugs) {
            dictIcd10DO = new DictIcd10DO();
            dictIcd10DO.setCreateTime(new Date());
            dictIcd10DO.setIs_del("1");
            dictIcd10DO.setCode(one.getCode());
            dictIcd10DO.setD_code(one.getD_code());
            dictIcd10DO.setName(one.getName());
            dictIcd10DO.setPy_code(one.getPy_code());
            dictIcd10DO.setDeath_reason(one.getDeath_reason());
            dictIcd10DO.setDescription(one.getDescription());
            dictIcd10DO.setDisea_reason(one.getDisea_reason());
            dictIcd10DO.setFlag(one.getFlag());
            dictIcd10DO.setStatus(one.getStatus());
            dictIcd10DO=dictIcd10Dao.save(dictIcd10DO);
            if (StringUtils.isNoneBlank(templateId)){
                BaseTemplateDictDO baseTemplateDictDO = new BaseTemplateDictDO();
                baseTemplateDictDO.setTemplateId(templateId);
                baseTemplateDictDO.setIsDel("1");
                baseTemplateDictDO.setDictId(dictIcd10DO.getId().toString());
                baseTemplateDictDO.setCreateTime(new Date());
                baseTemplateDictDao.save(baseTemplateDictDO);
            }
        }
        result.put("correctCount", drugs.size());
        return result;
    }
    public void updateIcd10Status(Integer id,String status,String del){
        DictIcd10DO dictIcd10DO = dictIcd10Dao.findOne(id);
        if (dictIcd10DO!=null){
            if (StringUtils.isNoneBlank(status)){
                dictIcd10DO.setStatus(status);
            }
            if (StringUtils.isNoneBlank(del)){
                dictIcd10DO.setIs_del(del);
            }
            dictIcd10Dao.save(dictIcd10DO);
        }
    }
}

+ 682 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/TemplateManageService.java

@ -0,0 +1,682 @@
package com.yihu.jw.base.service.dict;
import com.yihu.jw.base.dao.saas.SaasDao;
import com.yihu.jw.dict.dao.*;
import com.yihu.jw.entity.base.dict.*;
import com.yihu.jw.entity.base.org.BaseOrgDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.org.dao.BaseOrgDao;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.xerces.dom.PSVIAttrNSImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import java.util.*;
@Service
public class TemplateManageService {
    @Autowired
    private BaseDrugDictDao baseDrugDictDao;
    @Autowired
    private BaseTemplateDao baseTemplateDao;
    @Autowired
    private BaseTemplateDictDao baseTemplateDictDao;
    @Autowired
    private BaseTemplateOrgDao baseTemplateOrgDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private BaseDrugUseDictDao baseDrugUseDictDao;
    @Autowired
    private BaseFrequencyDictDao baseFrequencyDictDao;
    @Autowired
    private BaseDictIcd10Dao baseDictIcd10Dao;
    @Autowired
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    @Autowired
    private SaasDao saasDao;
    @Autowired
    private BaseOrgDao baseOrgDao;
    public MixEnvelop findTempalte(String templateType,String code,String name,Integer page ,Integer pageSize){
        String sql =" select t.id as \"id\" ," +
                " t.name as \"name\"," +
                " t.code as \"code\"," +
                " t.children_count as \"childrenCount\"," +
                " t.update_user as \"updateUser\"," +
                " t.update_user_name as \"updateUserName\"," +
                " t.update_time as \"updateTime\"," +
                " t.template_type as \"templateType\"," +
                " t.is_del as \"isDel\" " +
                " from base_template t " +
                " where t.is_del='1' ";
        String sqlCount=" select count(1) as \"count\" from base_template t where t.is_del='1'";
        if (StringUtils.isNotBlank(templateType)){
            sql+= " and t.template_type='"+templateType+"'";
            sqlCount+= " and t.template_type='"+templateType+"'";
        }
        if (StringUtils.isNotBlank(code)){
            sql+= " and t.code like '%"+code+"%'";
            sqlCount+= " and t.code like '%"+code+"%'";
        }
        if (StringUtils.isNotBlank(name)){
            sql+= " and t.name like '%"+name+"%'";
            sqlCount+= " and t.name like '%"+name+"%'";
        }
        sql+=" order by t.update_time desc";
        Integer count=0;
        List<Map<String,Object>> countList=hibenateUtils.createSQLQuery(sqlCount);
        if (countList!=null&&countList.size()>0){
            count = Integer.parseInt(countList.get(0).get("count").toString());
        }
        List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
        for (Map<String,Object> map:list){
            List<BaseTemplateOrgDO> orgTemplate=baseTemplateOrgDao.findByTemplateId(map.get("id").toString());
            List<String> orgNames= new ArrayList<>();
            int i=0;
            for (BaseTemplateOrgDO baseTemplateOrgDO :orgTemplate){
                orgNames.add(baseTemplateOrgDO.getOrgName());
            }
            map.put("orgNames",orgNames.toString());
        }
        MixEnvelop mixEnvelop = new MixEnvelop();
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        mixEnvelop.setTotalCount(count);
        return mixEnvelop;
    }
   public void addOrRemoveChildrenDict(String templateId,String dictId,String isDel){
       BaseTemplateDictDO baseTemplateDictDO = baseTemplateDictDao.findByDictIdAndTemplateId(dictId,templateId);
       if ("1".equalsIgnoreCase(isDel)){
           if (baseTemplateDictDO!=null){
               baseTemplateDictDO.setIsDel("1");
           }else {
               baseTemplateDictDO = new BaseTemplateDictDO();
               baseTemplateDictDO.setTemplateId(templateId);
               baseTemplateDictDO.setDictId(dictId);
               baseTemplateDictDO.setCreateTime(new Date());
               baseTemplateDictDO.setIsDel("1");
           }
       }else {
           if (baseTemplateDictDO!=null){
               baseTemplateDictDO.setIsDel("0");
           }else {
               return;
           }
       }
       baseTemplateDictDao.save(baseTemplateDictDO);
       BaseTemplateDO baseTemplateDO = baseTemplateDao.findOne(templateId);
       Integer chuildrenCount =  baseTemplateDictDao.getCountByTemplateId(templateId);
       if (baseTemplateDO !=null ){
           baseTemplateDO.setChildrenCount(chuildrenCount.toString());
       }
       baseTemplateDao.save(baseTemplateDO);
   }
   public void saveOrUpdateTemplate(String templateId,String code,String name,String user,String userName,String templateType){
       BaseTemplateDO baseTemplateDO = baseTemplateDao.findOne(templateId);
       String localCode="MD"+new Date().getTime();
       System.out.println("templatType"+templateType);
       if (baseTemplateDO!=null){
           baseTemplateDO.setCode(localCode);
           baseTemplateDO.setName(name);
           baseTemplateDO.setUpdateTime(new Date());
           baseTemplateDO.setUpdateUser(user);
           baseTemplateDO.setUpdateUserName(userName);
           baseTemplateDO.setTemplateType(templateType);
       }else {
           baseTemplateDO = new BaseTemplateDO();
           baseTemplateDO.setCode(localCode);
           baseTemplateDO.setName(name);
           baseTemplateDO.setCreateTime(new Date());
           baseTemplateDO.setCreateUser(user);
           baseTemplateDO.setCreateUserName(userName);
           baseTemplateDO.setTemplateType(templateType);
           baseTemplateDO.setIsDel("1");
       }
       baseTemplateDao.save(baseTemplateDO);
   }
   public MixEnvelop findTemlateChildList(String templateId,String name,Integer page,Integer pageSize){
        BaseTemplateDO baseTemplateDictDO = baseTemplateDao.findOne(templateId);
        PageRequest pageRequest = new PageRequest(page-1, pageSize);
        List<Map<String,Object>> returnList= new ArrayList<>();
        MixEnvelop mixEnvelop = new MixEnvelop();
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        if (baseTemplateDictDO!=null){
            if ("frequencyDict".equalsIgnoreCase(baseTemplateDictDO.getTemplateType())){
                List<BaseFrequencyDictDO> list= new ArrayList<>();
                if (StringUtils.isNoneBlank(name)){
                    list= baseFrequencyDictDao.findByNameDel(name,pageRequest);
                }else {
                    list= baseFrequencyDictDao.findByDel(pageRequest);
                }
                Integer count = baseFrequencyDictDao.getconuntByDel();
                for (BaseFrequencyDictDO baseFrequencyDictDO:list){
                    Map<String,Object> map = new HashMap<>();
                    map.put("templateDetail",baseTemplateDictDO);
                    map.put("id",baseFrequencyDictDO.getId());
                    map.put("code",baseFrequencyDictDO.getFreq_code());
                    map.put("name",baseFrequencyDictDO.getFreq_name());
                    map.put("py_code",baseFrequencyDictDO.getFreq_sp());
                    map.put("daily_times",baseFrequencyDictDO.getDaily_times());
                    map.put("weekly_times",baseFrequencyDictDO.getWeekly_times());
                    BaseTemplateDictDO baseTemplateDictDO1= baseTemplateDictDao.findByDictIdAndTemplateId(baseFrequencyDictDO.getId(),templateId);
                    if (baseTemplateDictDO1!=null){
                        map.put("isAdd",1);
                    }else {
                        map.put("isAdd",0);
                    }
                    returnList.add(map);
                }
                mixEnvelop.setDetailModelList(returnList);
                mixEnvelop.setTotalCount(count);
                return mixEnvelop;
            }else if ("drugUseDict".equalsIgnoreCase(baseTemplateDictDO.getTemplateType())){
                List<BaseDrugUseDictDO> list= new ArrayList<>();
                if (StringUtils.isNoneBlank(name)){
                    list= baseDrugUseDictDao.findByNameDel(name,pageRequest);
                }else {
                    list= baseDrugUseDictDao.findByDel(pageRequest);
                }
                Integer count = baseDrugUseDictDao.getconuntByDel();
                for (BaseDrugUseDictDO baseDrugUseDictDO:list){
                    Map<String,Object> map = new HashMap<>();
                    map.put("id",baseDrugUseDictDO.getId());
                    map.put("templateDetail",baseTemplateDictDO);
                    map.put("code",baseDrugUseDictDO.getSupply_code());
                    map.put("name",baseDrugUseDictDO.getSupply_name());
                    map.put("py_code",baseDrugUseDictDO.getPy_code());
                    BaseTemplateDictDO baseTemplateDictDO1= baseTemplateDictDao.findByDictIdAndTemplateId(baseDrugUseDictDO.getId(),templateId);
                    if (baseTemplateDictDO1!=null){
                        map.put("isAdd",1);
                    }else {
                        map.put("isAdd",0);
                    }
                    returnList.add(map);
                }
                mixEnvelop.setDetailModelList(returnList);
                mixEnvelop.setTotalCount(count);
                return mixEnvelop;
            }else if ("drugListDict".equalsIgnoreCase(baseTemplateDictDO.getTemplateType())){
                List<BaseDrugDictDO> list= new ArrayList<>();
                if (StringUtils.isNoneBlank(name)){
                    list= baseDrugDictDao.findByNameDel(name,pageRequest);
                }else {
                    list= baseDrugDictDao.findByDel(pageRequest);
                }
                Integer count = baseDrugDictDao.getconuntByDel();
                for (BaseDrugDictDO baseDrugDictDO:list){
                    Map<String,Object> map = new HashMap<>();
                    map.put("id",baseDrugDictDO.getId());
                    map.put("templateDetail",baseTemplateDictDO);
                    map.put("code",baseDrugDictDO.getCharge_code());
                    map.put("name",baseDrugDictDO.getDrugname());
                    map.put("dosage",baseDrugDictDO.getDosage());
                    map.put("specification",baseDrugDictDO.getSpecification());
                    map.put("stock_amount",baseDrugDictDO.getStock_amount());
                    map.put("manu_name",baseDrugDictDO.getManu_name());
                    BaseTemplateDictDO baseTemplateDictDO1= baseTemplateDictDao.findByDictIdAndTemplateId(baseDrugDictDO.getId(),templateId);
                    if (baseTemplateDictDO1!=null){
                        map.put("isAdd",1);
                    }else {
                        map.put("isAdd",0);
                    }
                    returnList.add(map);
                }
                mixEnvelop.setDetailModelList(returnList);
                mixEnvelop.setTotalCount(count);
                return mixEnvelop;
            }else if ("icd10ListDict".equalsIgnoreCase(baseTemplateDictDO.getTemplateType())){
                List<DictIcd10DO> list= new ArrayList<>();
                if (StringUtils.isNoneBlank(name)){
                    list= baseDictIcd10Dao.findByNameDel(name,pageRequest);
                }else {
                    list= baseDictIcd10Dao.findByDel(pageRequest);
                }
                Integer count = baseDrugDictDao.getconuntByDel();
                for (DictIcd10DO dictIcd10DO:list){
                    Map<String,Object> map = new HashMap<>();
                    map.put("templateDetail",baseTemplateDictDO);
                    map.put("id",dictIcd10DO.getId());
                    map.put("code",dictIcd10DO.getCode());
                    map.put("name",dictIcd10DO.getName());
                    map.put("disea_reason",dictIcd10DO.getDisea_reason());
                    map.put("death_reason",dictIcd10DO.getDeath_reason());
                    map.put("py_code",dictIcd10DO.getPy_code());
                    map.put("d_code",dictIcd10DO.getD_code());
                    map.put("flag",dictIcd10DO.getFlag());
                    BaseTemplateDictDO baseTemplateDictDO1= baseTemplateDictDao.findByDictIdAndTemplateId(dictIcd10DO.getId().toString(),templateId);
                    if (baseTemplateDictDO1!=null){
                        map.put("isAdd",1);
                    }else {
                        map.put("isAdd",0);
                    }
                    returnList.add(map);
                }
                mixEnvelop.setDetailModelList(returnList);
                mixEnvelop.setTotalCount(count);
                return mixEnvelop;
            }else {
                return null;
            }
        }else {
            return null;
        }
   }
   public  BaseTemplateDO findOneTemplateById(String id){
        return baseTemplateDao.findOne(id);
   }
    public void saveUserTemplateRelation(String orgCode,String templateIds){
        String[] templateArray = templateIds.split(",");
        BaseOrgDO baseOrgDO= baseOrgDao.findByCode(orgCode);
        String orgName="";
        if (baseOrgDO!=null){
            orgName=baseOrgDO.getName();
        }
        for (int i=0;i<templateArray.length;i++){
            String templateId=templateArray[i];
            BaseTemplateDO baseTemplateDO = baseTemplateDao.findOne(templateId);
            if (baseTemplateDO!=null){
                String templateType = baseTemplateDO.getTemplateType();
                BaseTemplateOrgDO baseTemplateOrgDO=baseTemplateOrgDao.findByOrgCodeAndtemplateType(orgCode,templateType);
                if (baseTemplateOrgDO!=null){
                    if (baseTemplateOrgDO.getTemplateId().equalsIgnoreCase(templateId)){
                        baseTemplateOrgDO.setIsDel("1");
                        baseTemplateOrgDao.save(baseTemplateOrgDO);
                    }else {
                        baseTemplateOrgDO.setIsDel("0");
                        BaseTemplateOrgDO baseTemplateOrgNew=new BaseTemplateOrgDO();
                        baseTemplateOrgNew.setOrgCode(orgCode);
                        baseTemplateOrgNew.setOrgName(orgName);
                        baseTemplateOrgNew.setIsDel("1");
                        baseTemplateOrgNew.setTemplateId(templateId);
                        baseTemplateOrgNew.setTemplateType(templateType);
                        baseTemplateOrgDao.save(baseTemplateOrgDO);
                        baseTemplateOrgDao.save(baseTemplateOrgNew);
                    }
                }else {
                    baseTemplateOrgDO = new BaseTemplateOrgDO();
                    baseTemplateOrgDO.setOrgCode(orgCode);
                    baseTemplateOrgDO.setOrgName(orgName);
                    baseTemplateOrgDO.setIsDel("1");
                    baseTemplateOrgDO.setTemplateId(templateId);
                    baseTemplateOrgDO.setTemplateType(templateType);
                }
                baseTemplateOrgDao.save(baseTemplateOrgDO);
            }
        }
    }
    public Map<String,Object> findUseTemplate(String orgCode){
        List<BaseTemplateOrgDO> list = baseTemplateOrgDao.findByOrgCode(orgCode);
        List<WlyyHospitalSysDictDO> wlyyHospitalSysDictDOS = wlyyHospitalSysDictDao.findByDictName("dictManageList");
        Map map = new HashMap();
        for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:wlyyHospitalSysDictDOS){
            for (BaseTemplateOrgDO baseTemplateOrgDO:list){
                if (wlyyHospitalSysDictDO.getDictCode().equalsIgnoreCase(baseTemplateOrgDO.getTemplateType())){
                    map.put(wlyyHospitalSysDictDO.getDictCode(),baseTemplateOrgDO);
                }
            }
        }
        return  map;
    }
    public MixEnvelop findTemlateAddChildList(String templateId,Integer page,Integer pageSize){
        BaseTemplateDO baseTemplateDictDO = baseTemplateDao.findOne(templateId);
        MixEnvelop mixEnvelop = new MixEnvelop();
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        if (baseTemplateDictDO!=null){
            if ("frequencyDict".equalsIgnoreCase(baseTemplateDictDO.getTemplateType())){
                String sql="select t.id as \"id\"," +
                        " t.freq_code as \"freq_code\"," +
                        " t.freq_name as \"freq_name\"," +
                        " t.freq_sp as \"freq_sp\"," +
                        " t.daily_times as \"daily_times\"," +
                        " t.weekly_times as \"weekly_times\"," +
                        " t.hosp_code as \"hosp_code\"," +
                        " t.is_del as \"is_del\"," +
                        " t.is_op_ip as \"is_op_ip\"," +
                        " t.status as \"status\"," +
                        " t.create_time as \"create_time\"" +
                        "from base_template_dict b left join  base_frequency_dict t on b.dict_id=t.id" +
                        " where t.is_del='1' and b.is_del='1' ";
                String sqlCount =" select count(1) as \"count\" from base_template_dict b left join  base_frequency_dict t on b.dict_id=t.id" +
                        "  where t.is_del='1 and b.is_del='1'";
                sql+=" and b.template_id = '"+baseTemplateDictDO.getId()+"'";
                sqlCount+=" and b.template_id = '"+baseTemplateDictDO.getId()+"'";
                List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
                for (Map<String,Object> map:list){
                    if (map.get("status")!=null&&"1".equalsIgnoreCase(map.get("status").toString())){
                        map.put("statusName","生效中");
                    }else {
                        map.put("statusName","已失效");
                    }
                }
                List<Map<String,Object>> countList=hibenateUtils.createSQLQuery(sqlCount);
                Integer count=0;
                if (countList!=null&&countList.size()>0) {
                    count = Integer.valueOf(countList.get(0).get("count").toString());
                }
                mixEnvelop.setDetailModelList(list);
                mixEnvelop.setTotalCount(count);
                return mixEnvelop;
            }else if ("drugUseDict".equalsIgnoreCase(baseTemplateDictDO.getTemplateType())){
                String sql="select t.id as \"id\"," +
                        " t.supply_code as \"supply_code\"," +
                        " t.supply_name as \"supply_name\"," +
                        " t.supply_occ as \"supply_occ\"," +
                        " t.del_flag as \"del_flag\"," +
                        " t.sort_code as \"sort_code\"," +
                        " t.print_name as \"print_name\"," +
                        " t.py_code as \"py_code\"," +
                        " t.d_code as \"d_code\"," +
                        " t.yb_name as \"yb_name\"," +
                        " t.yb_code as \"yb_code\"," +
                        " t.status as \"status\"," +
                        " t.create_time as \"create_time\" " +
                        "from  base_template_dict b left join base_drug_use_dict t on b.dict_id=t.id" +
                        " where t.del_flag='1' and b.is_del='1'";
                String sqlCount =" select count(1) as \"count\" from  base_template_dict b left join base_drug_use_dict t on b.dict_id=t.id" +
                        " where t.del_flag='1 and b.is_del='1'";
                sql+=" and b.template_id = '"+baseTemplateDictDO.getId()+"'";
                sqlCount+=" and b.template_id = '"+baseTemplateDictDO.getId()+"'";
                List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
                for (Map<String,Object> map:list){
                    if (map.get("status")!=null&&"1".equalsIgnoreCase(map.get("status").toString())){
                        map.put("statusName","生效中");
                    }else {
                        map.put("statusName","已失效");
                    }
                }
                List<Map<String,Object>> countList=hibenateUtils.createSQLQuery(sqlCount);
                Integer count=0;
                if (countList!=null&&countList.size()>0) {
                    count = Integer.valueOf(countList.get(0).get("count").toString());
                }
                mixEnvelop.setDetailModelList(list);
                mixEnvelop.setTotalCount(count);
                return mixEnvelop;
            }else if ("drugListDict".equalsIgnoreCase(baseTemplateDictDO.getTemplateType())){
                String sql = "select t.id as \"id\"," +
                        " t.charge_code as \"charge_code\"," +
                        " t.drugname as \"drugname\"," +
                        " t.specification as \"specification\"," +
                        " t.py_code as \"py_code\"," +
                        " t.supply_code as \"supply_code\"," +
                        " t.supply_name as \"supply_name\"," +
                        " t.retprice as \"retprice\"," +
                        " t.manu_name as \"manu_name\"," +
                        " t.weigh_unit as \"weigh_unit\"," +
                        " t.mini_unit_name as \"mini_unit_name\"," +
                        " t.pack_unit_name as \"pack_unit_name\"," +
                        " t.weigh_unit_name as \"weigh_unit_name\"," +
                        " t.vol_unit_name as \"vol_unit_name\"," +
                        " t.win_no as \"win_no\"," +
                        " t.pack_retprice as \"pack_retprice\"," +
                        " t.mini_unit as \"mini_unit\"," +
                        " t.pack_size as \"pack_size\"," +
                        " t.action as \"action\"," +
                        " t.serial as \"serial\"," +
                        " t.group_no as \"group_no\"," +
                        " t.stock_amount as \"stock_amount\"," +
                        " t.visible_flag as \"visible_flag\"," +
                        " t.drug_flag as \"drug_flag\"," +
                        " t.create_time as \"create_time\"," +
                        " t.update_time as \"update_time\"," +
                        " t.status as \"status\"," +
                        " t.mini_stock_amount as \"mini_stock_amount\"," +
                        " t.dosage as \"dosage\"," +
                        " t.max_stock_amount as \"max_stock_amount\"," +
                        " t.pack_unit as \"pack_unit\"," +
                        " t.is_del as \"is_del\"" +
                        " from base_template_dict b left join base_drug_dict t on b.dict_id = t.id " +
                        " where t.is_del='1' and b.is_del='1'";
                String sqlCount = "select count(1) as \"count\" from base_template_dict b left join base_drug_dict t on b.dict_id = t.id " +
                        " where t.is_del='1'and b.is_del='1' ";
                sql+=" and b.template_id = '"+baseTemplateDictDO.getId()+"'";
                sqlCount+=" and b.template_id = '"+baseTemplateDictDO.getId()+"'";
                List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
                for (Map<String,Object> map:list){
                    if (map.get("status")!=null&&"1".equalsIgnoreCase(map.get("status").toString())){
                        map.put("statusName","生效中");
                    }else {
                        map.put("statusName","已失效");
                    }
                }
                List<Map<String,Object>> countList=hibenateUtils.createSQLQuery(sqlCount);
                Integer count=0;
                if (countList!=null&&countList.size()>0) {
                    count = Integer.valueOf(countList.get(0).get("count").toString());
                }
                mixEnvelop.setDetailModelList(list);
                mixEnvelop.setTotalCount(count);
                return mixEnvelop;
            }else if ("icd10ListDict".equalsIgnoreCase(baseTemplateDictDO.getTemplateType())){
                String sql="select t.id as \"id\"," +
                        " t.code as \"code\"," +
                        " t.name as \"name\"," +
                        " t.description as \"description\"," +
                        " t.create_time as \"create_time\"," +
                        " t.disea_reason as \"disea_reason\"," +
                        " t.death_reason as \"death_reason\"," +
                        " t.py_code as \"py_code\"," +
                        " t.d_code as \"d_code\"," +
                        " t.flag as \"flag\"," +
                        " t.is_del as \"is_del\"," +
                        " t.status as \"status\" " +
                        " from base_template_dict b left join dict_icd10 t on b.dict_id=t.id" +
                        " where t.is_del='1' and b.is_del='1'";
                String sqlCount =" select count(1) as \"count\" from base_template_dict b left join dict_icd10 t on b.dict_id=t.id" +
                        " where t.is_del='1' and b.is_del='1'";
                sql+=" and b.template_id = '"+baseTemplateDictDO.getId()+"'";
                sqlCount+=" and b.template_id = '"+baseTemplateDictDO.getId()+"'";
                List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
                for (Map<String,Object> map:list){
                    if (map.get("status")!=null&&"1".equalsIgnoreCase(map.get("status").toString())){
                        map.put("statusName","生效中");
                    }else {
                        map.put("statusName","已失效");
                    }
                }
                List<Map<String,Object>> countList=hibenateUtils.createSQLQuery(sqlCount);
                Integer count=0;
                if (countList!=null&&countList.size()>0) {
                    count = Integer.valueOf(countList.get(0).get("count").toString());
                }
                mixEnvelop.setDetailModelList(list);
                mixEnvelop.setTotalCount(count);
                return mixEnvelop;
            }else {
                return null;
            }
        }else {
            return null;
        }
    }
    public MixEnvelop findTemlateNotAddChildList(String templateId,Integer page,Integer pageSize){
        BaseTemplateDO baseTemplateDictDO = baseTemplateDao.findOne(templateId);
        MixEnvelop mixEnvelop = new MixEnvelop();
        mixEnvelop.setPageSize(pageSize);
        mixEnvelop.setCurrPage(page);
        if (baseTemplateDictDO!=null){
            if ("frequencyDict".equalsIgnoreCase(baseTemplateDictDO.getTemplateType())){
                String sql="select DISTINCT t.id as \"id\"," +
                        " t.freq_code as \"freq_code\"," +
                        " t.freq_name as \"freq_name\"," +
                        " t.freq_sp as \"freq_sp\"," +
                        " t.daily_times as \"daily_times\"," +
                        " t.weekly_times as \"weekly_times\"," +
                        " t.hosp_code as \"hosp_code\"," +
                        " t.is_del as \"is_del\"," +
                        " t.is_op_ip as \"is_op_ip\"," +
                        " t.status as \"status\"," +
                        " t.create_time as \"create_time\"" +
                        " from  base_frequency_dict t where t.id not in ( SELECT DISTINCT g.id from base_frequency_dict g left join base_template_dict " +
                        "m on g.id = m.dict_id " +
                        "where m.template_id ='"+templateId+"')";
                String sqlCount =" select count(1) as \"count\" from  base_frequency_dict t where t.id not in ( SELECT DISTINCT g.id from base_frequency_dict g left join base_template_dict " +
                        "m on g.id = m.dict_id " +
                        "where m.template_id ='"+templateId+"')";
                List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
                for (Map<String,Object> map:list){
                    if (map.get("status")!=null&&"1".equalsIgnoreCase(map.get("status").toString())){
                        map.put("statusName","生效中");
                    }else {
                        map.put("statusName","已失效");
                    }
                }
                List<Map<String,Object>> countList=hibenateUtils.createSQLQuery(sqlCount);
                Integer count=0;
                if (countList!=null&&countList.size()>0) {
                    count = Integer.valueOf(countList.get(0).get("count").toString());
                }
                mixEnvelop.setDetailModelList(list);
                mixEnvelop.setTotalCount(count);
                return mixEnvelop;
            }else if ("drugUseDict".equalsIgnoreCase(baseTemplateDictDO.getTemplateType())){
                String sql="select DISTINCT t.id as \"id\"," +
                        " t.supply_code as \"supply_code\"," +
                        " t.supply_name as \"supply_name\"," +
                        " t.supply_occ as \"supply_occ\"," +
                        " t.del_flag as \"del_flag\"," +
                        " t.sort_code as \"sort_code\"," +
                        " t.print_name as \"print_name\"," +
                        " t.py_code as \"py_code\"," +
                        " t.d_code as \"d_code\"," +
                        " t.yb_name as \"yb_name\"," +
                        " t.yb_code as \"yb_code\"," +
                        " t.status as \"status\"," +
                        " t.create_time as \"create_time\" " +
                        " from  base_drug_use_dict t where t.id not in ( SELECT DISTINCT g.id from base_drug_use_dict g left join base_template_dict " +
                        "m on g.id = m.dict_id " +
                        "where m.template_id ='"+templateId+"')";
                String sqlCount =" select count(1) as \"count\" from  base_drug_use_dict t where t.id not in ( SELECT DISTINCT g.id from base_drug_use_dict g left join base_template_dict " +
                        "m on g.id = m.dict_id " +
                        "where m.template_id ='"+templateId+"')";
                List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
                for (Map<String,Object> map:list){
                    if (map.get("status")!=null&&"1".equalsIgnoreCase(map.get("status").toString())){
                        map.put("statusName","生效中");
                    }else {
                        map.put("statusName","已失效");
                    }
                }
                List<Map<String,Object>> countList=hibenateUtils.createSQLQuery(sqlCount);
                Integer count=0;
                if (countList!=null&&countList.size()>0) {
                    count = Integer.valueOf(countList.get(0).get("count").toString());
                }
                mixEnvelop.setDetailModelList(list);
                mixEnvelop.setTotalCount(count);
                return mixEnvelop;
            }else if ("drugListDict".equalsIgnoreCase(baseTemplateDictDO.getTemplateType())){
                String sql = "select DISTINCT t.id as \"id\"," +
                        " t.charge_code as \"charge_code\"," +
                        " t.drugname as \"drugname\"," +
                        " t.specification as \"specification\"," +
                        " t.py_code as \"py_code\"," +
                        " t.supply_code as \"supply_code\"," +
                        " t.supply_name as \"supply_name\"," +
                        " t.retprice as \"retprice\"," +
                        " t.manu_name as \"manu_name\"," +
                        " t.weigh_unit as \"weigh_unit\"," +
                        " t.mini_unit_name as \"mini_unit_name\"," +
                        " t.pack_unit_name as \"pack_unit_name\"," +
                        " t.weigh_unit_name as \"weigh_unit_name\"," +
                        " t.vol_unit_name as \"vol_unit_name\"," +
                        " t.win_no as \"win_no\"," +
                        " t.pack_retprice as \"pack_retprice\"," +
                        " t.mini_unit as \"mini_unit\"," +
                        " t.pack_size as \"pack_size\"," +
                        " t.action as \"action\"," +
                        " t.serial as \"serial\"," +
                        " t.group_no as \"group_no\"," +
                        " t.stock_amount as \"stock_amount\"," +
                        " t.visible_flag as \"visible_flag\"," +
                        " t.drug_flag as \"drug_flag\"," +
                        " t.create_time as \"create_time\"," +
                        " t.update_time as \"update_time\"," +
                        " t.status as \"status\"," +
                        " t.mini_stock_amount as \"mini_stock_amount\"," +
                        " t.dosage as \"dosage\"," +
                        " t.max_stock_amount as \"max_stock_amount\"," +
                        " t.pack_unit as \"pack_unit\"," +
                        " t.is_del as \"is_del\"" +
                        " from  base_drug_dict t where t.id not in ( SELECT DISTINCT g.id from base_drug_dict g left join base_template_dict " +
                        " m on g.id = m.dict_id " +
                        "where m.template_id ='"+templateId+"')";
                String sqlCount = "select count(1) as \"count\"  from  base_drug_dict t where t.id not in ( SELECT DISTINCT g.id from base_drug_dict g left join base_template_dict " +
                        "m on g.id = m.dict_id " +
                        "where m.template_id ='"+templateId+"')";
                List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
                for (Map<String,Object> map:list){
                    if (map.get("status")!=null&&"1".equalsIgnoreCase(map.get("status").toString())){
                        map.put("statusName","生效中");
                    }else {
                        map.put("statusName","已失效");
                    }
                }
                List<Map<String,Object>> countList=hibenateUtils.createSQLQuery(sqlCount);
                Integer count=0;
                if (countList!=null&&countList.size()>0) {
                    count = Integer.valueOf(countList.get(0).get("count").toString());
                }
                mixEnvelop.setDetailModelList(list);
                mixEnvelop.setTotalCount(count);
                return mixEnvelop;
            }else if ("icd10ListDict".equalsIgnoreCase(baseTemplateDictDO.getTemplateType())){
                String sql="select DISTINCT t.id as \"id\"," +
                        " t.code as \"code\"," +
                        " t.name as \"name\"," +
                        " t.description as \"description\"," +
                        " t.create_time as \"create_time\"," +
                        " t.disea_reason as \"disea_reason\"," +
                        " t.death_reason as \"death_reason\"," +
                        " t.py_code as \"py_code\"," +
                        " t.d_code as \"d_code\"," +
                        " t.flag as \"flag\"," +
                        " t.is_del as \"is_del\"," +
                        " t.status as \"status\" " +
                        " from  dict_icd10 t where t.id not in ( SELECT DISTINCT g.id from dict_icd10 g left join base_template_dict " +
                        "m on g.id = m.dict_id " +
                        "where m.template_id ='"+templateId+"')";
                String sqlCount =" select count(1) as \"count\" from  dict_icd10 t where t.id not in ( SELECT DISTINCT g.id from dict_icd10 g left join base_template_dict " +
                        "m on g.id = m.dict_id " +
                        "where m.template_id ='"+templateId+"')";
                List<Map<String,Object>> list=hibenateUtils.createSQLQuery(sql,page,pageSize);
                for (Map<String,Object> map:list){
                    if (map.get("status")!=null&&"1".equalsIgnoreCase(map.get("status").toString())){
                        map.put("statusName","生效中");
                    }else {
                        map.put("statusName","已失效");
                    }
                }
                List<Map<String,Object>> countList=hibenateUtils.createSQLQuery(sqlCount);
                Integer count=0;
                if (countList!=null&&countList.size()>0) {
                    count = Integer.valueOf(countList.get(0).get("count").toString());
                }
                mixEnvelop.setDetailModelList(list);
                mixEnvelop.setTotalCount(count);
                return mixEnvelop;
            }else {
                return null;
            }
        }else {
            return null;
        }
    }
}

+ 304 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BasDrugExcelDO.java

@ -0,0 +1,304 @@
package com.yihu.jw.base.service.dict.importManage;
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 java.util.Date;
import java.util.Map;
import java.util.Set;
/**
 *  医生信息列表-excel实体类
 * @author lith
 * Created at 2018/10/22.
 */
@Row(start = 1)
//@Title(names= "{'姓名', '状态(1生效,0失效)','性别(1男2女)', '身份证号', '联系方式', '机构/部门/职务', '职称','归属业务模块角色','是否名医','专长','简介'}")
public class BasDrugExcelDO extends ExcelUtil implements Validation {
    @Location(x=0)
    @ValidRepeat
    String charge_code;
    @Location(x=1)
    @ValidRepeat
    String serial;
    @Location(x=2)
    @ValidRepeat
    String  group_no;//
    @Location(x=3)
    @ValidRepeat
    String drugname;
    @Location(x=4)
    @ValidRepeat
    String dosage;//
    @Location(x=5)
    @ValidRepeat
    String mini_unit;
    @Location(x=6)
    @ValidRepeat
    String pack_size;
    @Location(x=7)
    @ValidRepeat
    String specification;//
    @Location(x=8)
    @ValidRepeat
    String retprice;
    @Location(x=9)
    @ValidRepeat
    String pack_retprice;
    @Location(x=10)
    @ValidRepeat
    String stock_amount;
    @Location(x=11)
    @ValidRepeat
    String  visible_flag;
    @Location(x=12)
    @ValidRepeat
    String  drug_flag;
    @Location(x=13)
    @ValidRepeat
    String  py_code;
    @Location(x=14)
    @ValidRepeat
    String  pack_unit;
    @Location(x=15)
    @ValidRepeat
    String  manu_name;
    @Location(x=16)
    @ValidRepeat
    String  weigh_unit;
    @Location(x=17)
    @ValidRepeat
    String  vol_unit;
    @Location(x=18)
    @ValidRepeat
    String  mini_unit_name;
    @Location(x=19)
    @ValidRepeat
    String  pack_unit_name;
    @Location(x=20)
    @ValidRepeat
    String  weigh_unit_name;
    @Location(x=21)
    @ValidRepeat
    String  vol_unit_name;
    @Location(x=22)
    @ValidRepeat
    String  win_no;
    @Location(x=23)
    @ValidRepeat
    String  max_stock_amount;
    @Location(x=24)
    @ValidRepeat
    String  mini_stock_amount;
    @Override
    public int validate(Map<String, Set> repeatMap) {
        int rs = 1;
        return rs;
    }
    public String getCharge_code() {
        return charge_code;
    }
    public void setCharge_code(String charge_code) {
        this.charge_code = charge_code;
    }
    public String getSerial() {
        return serial;
    }
    public void setSerial(String serial) {
        this.serial = serial;
    }
    public String getGroup_no() {
        return group_no;
    }
    public void setGroup_no(String group_no) {
        this.group_no = group_no;
    }
    public String getDrugname() {
        return drugname;
    }
    public void setDrugname(String drugname) {
        this.drugname = drugname;
    }
    public String getDosage() {
        return dosage;
    }
    public void setDosage(String dosage) {
        this.dosage = dosage;
    }
    public String getMini_unit() {
        return mini_unit;
    }
    public void setMini_unit(String mini_unit) {
        this.mini_unit = mini_unit;
    }
    public String getPack_size() {
        return pack_size;
    }
    public void setPack_size(String pack_size) {
        this.pack_size = pack_size;
    }
    public String getSpecification() {
        return specification;
    }
    public void setSpecification(String specification) {
        this.specification = specification;
    }
    public String getRetprice() {
        return retprice;
    }
    public void setRetprice(String retprice) {
        this.retprice = retprice;
    }
    public String getPack_retprice() {
        return pack_retprice;
    }
    public void setPack_retprice(String pack_retprice) {
        this.pack_retprice = pack_retprice;
    }
    public String getStock_amount() {
        return stock_amount;
    }
    public void setStock_amount(String stock_amount) {
        this.stock_amount = stock_amount;
    }
    public String getVisible_flag() {
        return visible_flag;
    }
    public void setVisible_flag(String visible_flag) {
        this.visible_flag = visible_flag;
    }
    public String getDrug_flag() {
        return drug_flag;
    }
    public void setDrug_flag(String drug_flag) {
        this.drug_flag = drug_flag;
    }
    public String getPy_code() {
        return py_code;
    }
    public void setPy_code(String py_code) {
        this.py_code = py_code;
    }
    public String getPack_unit() {
        return pack_unit;
    }
    public void setPack_unit(String pack_unit) {
        this.pack_unit = pack_unit;
    }
    public String getManu_name() {
        return manu_name;
    }
    public void setManu_name(String manu_name) {
        this.manu_name = manu_name;
    }
    public String getWeigh_unit() {
        return weigh_unit;
    }
    public void setWeigh_unit(String weigh_unit) {
        this.weigh_unit = weigh_unit;
    }
    public String getVol_unit() {
        return vol_unit;
    }
    public void setVol_unit(String vol_unit) {
        this.vol_unit = vol_unit;
    }
    public String getMini_unit_name() {
        return mini_unit_name;
    }
    public void setMini_unit_name(String mini_unit_name) {
        this.mini_unit_name = mini_unit_name;
    }
    public String getPack_unit_name() {
        return pack_unit_name;
    }
    public void setPack_unit_name(String pack_unit_name) {
        this.pack_unit_name = pack_unit_name;
    }
    public String getWeigh_unit_name() {
        return weigh_unit_name;
    }
    public void setWeigh_unit_name(String weigh_unit_name) {
        this.weigh_unit_name = weigh_unit_name;
    }
    public String getVol_unit_name() {
        return vol_unit_name;
    }
    public void setVol_unit_name(String vol_unit_name) {
        this.vol_unit_name = vol_unit_name;
    }
    public String getWin_no() {
        return win_no;
    }
    public void setWin_no(String win_no) {
        this.win_no = win_no;
    }
    public String getMax_stock_amount() {
        return max_stock_amount;
    }
    public void setMax_stock_amount(String max_stock_amount) {
        this.max_stock_amount = max_stock_amount;
    }
    public String getMini_stock_amount() {
        return mini_stock_amount;
    }
    public void setMini_stock_amount(String mini_stock_amount) {
        this.mini_stock_amount = mini_stock_amount;
    }
}

+ 142 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BasDrugUseExcelDO.java

@ -0,0 +1,142 @@
package com.yihu.jw.base.service.dict.importManage;
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 java.util.Map;
import java.util.Set;
/**
 *  医生信息列表-excel实体类
 * @author lith
 * Created at 2018/10/22.
 */
@Row(start = 1)
//@Title(names= "{'姓名', '状态(1生效,0失效)','性别(1男2女)', '身份证号', '联系方式', '机构/部门/职务', '职称','归属业务模块角色','是否名医','专长','简介'}")
public class BasDrugUseExcelDO extends ExcelUtil implements Validation {
    @Location(x=0)
    @ValidRepeat
    String supply_code;
    @Location(x=1)
    @ValidRepeat
    String supply_name;
    @Location(x=2)
    @ValidRepeat
    String  supply_occ;//
    @Location(x=3)
    @ValidRepeat
    String del_flag;
    @Location(x=4)
    @ValidRepeat
    String sort_code;//
    @Location(x=5)
    @ValidRepeat
    String print_name;
    @Location(x=6)
    @ValidRepeat
    String py_code;
    @Location(x=7)
    @ValidRepeat
    String d_code;//
    @Location(x=8)
    @ValidRepeat
    String yb_name;
    @Location(x=9)
    @ValidRepeat
    String yb_code;
    public String getSupply_code() {
        return supply_code;
    }
    public void setSupply_code(String supply_code) {
        this.supply_code = supply_code;
    }
    public String getSupply_name() {
        return supply_name;
    }
    public void setSupply_name(String supply_name) {
        this.supply_name = supply_name;
    }
    public String getSupply_occ() {
        return supply_occ;
    }
    public void setSupply_occ(String supply_occ) {
        this.supply_occ = supply_occ;
    }
    public String getDel_flag() {
        return del_flag;
    }
    public void setDel_flag(String del_flag) {
        this.del_flag = del_flag;
    }
    public String getSort_code() {
        return sort_code;
    }
    public void setSort_code(String sort_code) {
        this.sort_code = sort_code;
    }
    public String getPrint_name() {
        return print_name;
    }
    public void setPrint_name(String print_name) {
        this.print_name = print_name;
    }
    public String getPy_code() {
        return py_code;
    }
    public void setPy_code(String py_code) {
        this.py_code = py_code;
    }
    public String getD_code() {
        return d_code;
    }
    public void setD_code(String d_code) {
        this.d_code = d_code;
    }
    public String getYb_name() {
        return yb_name;
    }
    public void setYb_name(String yb_name) {
        this.yb_name = yb_name;
    }
    public String getYb_code() {
        return yb_code;
    }
    public void setYb_code(String yb_code) {
        this.yb_code = yb_code;
    }
    @Override
    public int validate(Map<String, Set> repeatMap) {
        int rs = 1;
        return rs;
    }
}

+ 119 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BasFrequencyExcelDO.java

@ -0,0 +1,119 @@
package com.yihu.jw.base.service.dict.importManage;
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 java.util.Map;
import java.util.Set;
/**
 *  医生信息列表-excel实体类
 * @author lith
 * Created at 2018/10/22.
 */
@Row(start = 1)
//@Title(names= "{'姓名', '状态(1生效,0失效)','性别(1男2女)', '身份证号', '联系方式', '机构/部门/职务', '职称','归属业务模块角色','是否名医','专长','简介'}")
public class BasFrequencyExcelDO extends ExcelUtil implements Validation {
    @Location(x=0)
    @ValidRepeat
    String freq_code;
    @Location(x=1)
    @ValidRepeat
    String freq_name;
    @Location(x=2)
    @ValidRepeat
    String  freq_sp;//
    @Location(x=3)
    @ValidRepeat
    String daily_times;
    @Location(x=4)
    @ValidRepeat
    String weekly_times;//
    @Location(x=5)
    @ValidRepeat
    String hosp_code;
    @Location(x=6)
    @ValidRepeat
    String is_op_ip;
    @Location(x=7)
    @ValidRepeat
    String status;
    public String getFreq_code() {
        return freq_code;
    }
    public void setFreq_code(String freq_code) {
        this.freq_code = freq_code;
    }
    public String getFreq_name() {
        return freq_name;
    }
    public void setFreq_name(String freq_name) {
        this.freq_name = freq_name;
    }
    public String getFreq_sp() {
        return freq_sp;
    }
    public void setFreq_sp(String freq_sp) {
        this.freq_sp = freq_sp;
    }
    public String getDaily_times() {
        return daily_times;
    }
    public void setDaily_times(String daily_times) {
        this.daily_times = daily_times;
    }
    public String getWeekly_times() {
        return weekly_times;
    }
    public void setWeekly_times(String weekly_times) {
        this.weekly_times = weekly_times;
    }
    public String getHosp_code() {
        return hosp_code;
    }
    public void setHosp_code(String hosp_code) {
        this.hosp_code = hosp_code;
    }
    public String getIs_op_ip() {
        return is_op_ip;
    }
    public void setIs_op_ip(String is_op_ip) {
        this.is_op_ip = is_op_ip;
    }
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    @Override
    public int validate(Map<String, Set> repeatMap) {
        int rs = 1;
        return rs;
    }
}

+ 127 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BasIcd10ExcelDO.java

@ -0,0 +1,127 @@
package com.yihu.jw.base.service.dict.importManage;
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.ValidRepeat;
import java.util.Map;
import java.util.Set;
/**
 *  医生信息列表-excel实体类
 * @author lith
 * Created at 2018/10/22.
 */
@Row(start = 1)
//@Title(names= "{'姓名', '状态(1生效,0失效)','性别(1男2女)', '身份证号', '联系方式', '机构/部门/职务', '职称','归属业务模块角色','是否名医','专长','简介'}")
public class BasIcd10ExcelDO extends ExcelUtil implements Validation {
    @Location(x=0)
    @ValidRepeat
    String code;
    @Location(x=1)
    @ValidRepeat
    String name;
    @Location(x=2)
    @ValidRepeat
    String  description;//
    @Location(x=3)
    @ValidRepeat
    String disea_reason;
    @Location(x=4)
    @ValidRepeat
    String death_reason;//
    @Location(x=5)
    @ValidRepeat
    String py_code;
    @Location(x=6)
    @ValidRepeat
    String d_code;
    @Location(x=7)
    @ValidRepeat
    String flag;//
    @Location(x=8)
    @ValidRepeat
    String status;
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public String getDisea_reason() {
        return disea_reason;
    }
    public void setDisea_reason(String disea_reason) {
        this.disea_reason = disea_reason;
    }
    public String getDeath_reason() {
        return death_reason;
    }
    public void setDeath_reason(String death_reason) {
        this.death_reason = death_reason;
    }
    public String getPy_code() {
        return py_code;
    }
    public void setPy_code(String py_code) {
        this.py_code = py_code;
    }
    public String getD_code() {
        return d_code;
    }
    public void setD_code(String d_code) {
        this.d_code = d_code;
    }
    public String getFlag() {
        return flag;
    }
    public void setFlag(String flag) {
        this.flag = flag;
    }
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    @Override
    public int validate(Map<String, Set> repeatMap) {
        int rs = 1;
        return rs;
    }
}

+ 136 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BaseDrugExcelDOReader.java

@ -0,0 +1,136 @@
package com.yihu.jw.base.service.dict.importManage;
import com.yihu.jw.base.dao.dict.DictJobTitleDao;
import com.yihu.jw.base.dao.doctor.BaseDoctorRoleDictDao;
import com.yihu.jw.base.dao.doctor.BaseDoctorRoleInfoDao;
import com.yihu.jw.base.endpoint.common.excel.AExcelReader;
import com.yihu.jw.dict.dao.BaseDrugDictDao;
import com.yihu.jw.dict.dao.BaseTemplateDictDao;
import com.yihu.jw.dict.dao.DictDoctorDutyDao;
import com.yihu.jw.dict.dao.DictHospitalDeptDao;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.dict.BaseDrugDictDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.org.dao.BaseOrgDao;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
/**
 * 医生信息列表-excel解析类
 * Created by 刘文彬 on 2018/10/24.
 */
@Component
public class BaseDrugExcelDOReader extends AExcelReader {
    @Autowired
    private BaseDrugDictDao baseDrugDictDao;
    @Autowired
    private BaseTemplateDictDao baseTemplateDictDao;
    @Override
    public void read(Workbook rwb) throws Exception {
        try{
            Iterator<Sheet> sheets = rwb.sheetIterator();
            int j = 0, rows;
            BasDrugExcelDO basDrugExcelDO;
            getRepeat().put("charge_code", new HashSet<>());
            getRepeat().put("serial", new HashSet<>());
            getRepeat().put("group_no", new HashSet<>());
            getRepeat().put("drugname", new HashSet<>());
            getRepeat().put("dosage", new HashSet<>());
            getRepeat().put("mini_unit", new HashSet<>());
            getRepeat().put("pack_size", new HashSet<>());
            getRepeat().put("specification", new HashSet<>());
            getRepeat().put("retprice", new HashSet<>());
            getRepeat().put("pack_retprice", new HashSet<>());
            getRepeat().put("stock_amount", new HashSet<>());
            getRepeat().put("visible_flag", new HashSet<>());
            getRepeat().put("drug_flag", new HashSet<>());
            getRepeat().put("py_code", new HashSet<>());
            getRepeat().put("pack_unit", new HashSet<>());
            getRepeat().put("manu_name", new HashSet<>());
            getRepeat().put("weigh_unit", new HashSet<>());
            getRepeat().put("vol_unit", new HashSet<>());
            getRepeat().put("mini_unit_name", new HashSet<>());
            getRepeat().put("pack_unit_name", new HashSet<>());
            getRepeat().put("weigh_unit_name", new HashSet<>());
            getRepeat().put("vol_unit_name", new HashSet<>());
            getRepeat().put("win_no", new HashSet<>());
            getRepeat().put("max_stock_amount", new HashSet<>());
            getRepeat().put("mini_stock_amount", new HashSet<>());
            errorLs.clear();
            correctLs.clear();
            while (sheets.hasNext()){
                Sheet sheet = sheets.next();
                if ((rows = sheet.getLastRowNum()) == 0) {
                    continue;
                }
                for (int i = 1; i <= rows; i++) {
                    basDrugExcelDO = new BasDrugExcelDO();
                    basDrugExcelDO.setCharge_code(replaceBlank(getCellCont(sheet, i, 0)));
                    basDrugExcelDO.setSerial(replaceBlank(getCellCont(sheet, i, 1)));
                    basDrugExcelDO.setGroup_no(getCellCont(sheet, i, 2));
                    basDrugExcelDO.setDrugname(replaceBlank(getCellCont(sheet, i, 3)));
                    basDrugExcelDO.setDosage(replaceBlank(getCellCont(sheet, i, 4)));
                    basDrugExcelDO.setMini_unit(replaceBlank(getCellCont(sheet, i, 5)));
                    basDrugExcelDO.setPack_size(replaceBlank(getCellCont(sheet, i, 6)));
                    basDrugExcelDO.setSpecification(replaceBlank(getCellCont(sheet, i, 7)));
                    basDrugExcelDO.setRetprice(getCellCont(sheet, i, 8));
                    basDrugExcelDO.setPack_retprice(replaceBlank(getCellCont(sheet, i, 9)));
                    basDrugExcelDO.setStock_amount(replaceBlank(getCellCont(sheet, i, 10)));
                    basDrugExcelDO.setVisible_flag(replaceBlank(getCellCont(sheet, i, 11)));
                    basDrugExcelDO.setDrug_flag(replaceBlank(getCellCont(sheet, i, 12)));
                    basDrugExcelDO.setPy_code(replaceBlank(getCellCont(sheet, i, 13)));
                    basDrugExcelDO.setPack_unit(replaceBlank(getCellCont(sheet, i, 14)));
                    basDrugExcelDO.setManu_name(replaceBlank(getCellCont(sheet, i, 15)));
                    basDrugExcelDO.setWeigh_unit(replaceBlank(getCellCont(sheet, i, 16)));
                    basDrugExcelDO.setVol_unit(replaceBlank(getCellCont(sheet, i, 17)));
                    basDrugExcelDO.setMini_unit_name(replaceBlank(getCellCont(sheet, i, 18)));
                    basDrugExcelDO.setPack_unit_name(replaceBlank(getCellCont(sheet, i, 19)));
                    basDrugExcelDO.setWeigh_unit_name(replaceBlank(getCellCont(sheet, i, 20)));
                    basDrugExcelDO.setVol_unit_name(replaceBlank(getCellCont(sheet, i, 21)));
                    basDrugExcelDO.setWin_no(replaceBlank(getCellCont(sheet, i, 22)));
                    basDrugExcelDO.setMax_stock_amount(replaceBlank(getCellCont(sheet, i, 23)));
                    basDrugExcelDO.setMini_stock_amount(replaceBlank(getCellCont(sheet, i, 24)));
                    basDrugExcelDO.setExcelSeq(i);
                    int rs = basDrugExcelDO.validate(repeat);
                    if (validate(basDrugExcelDO)== 0||rs == 0) {
                        errorLs.add(basDrugExcelDO);
                    } else if (rs == 1) {
                        correctLs.add(basDrugExcelDO);
                    }
                }
                j++;
            }
        }catch (Exception e){
            e.printStackTrace();
            throw e;
        }finally {
            if (rwb != null) {
                rwb.close();
            }
        }
    }
    public int validate(BasDrugExcelDO basDrugExcelDO) {
        int rs = 1;
        if (StringUtils.isNoneBlank(basDrugExcelDO.getDosage())){
            List<BaseDrugDictDO> list  = baseDrugDictDao.findByCodeAndNameAndDosage(basDrugExcelDO.getCharge_code(),basDrugExcelDO.getDrugname(),basDrugExcelDO.getDosage());
            System.out.println("当前导入数据:"+ basDrugExcelDO.getCharge_code());
            if (list!=null&&list.size()>0){
                System.out.println("进验证有重复数据"+list.get(0).getCharge_code());
                return 0;
            }
        }
        return rs;
    }
}

+ 101 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BaseDrugUseExcelDOReader.java

@ -0,0 +1,101 @@
package com.yihu.jw.base.service.dict.importManage;
import com.yihu.jw.base.endpoint.common.excel.AExcelReader;
import com.yihu.jw.dict.dao.BaseDrugDictDao;
import com.yihu.jw.dict.dao.BaseDrugUseDictDao;
import com.yihu.jw.dict.dao.BaseTemplateDictDao;
import com.yihu.jw.entity.base.dict.BaseDrugDictDO;
import com.yihu.jw.entity.base.dict.BaseDrugUseDictDO;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
/**
 * 医生信息列表-excel解析类
 * Created by 刘文彬 on 2018/10/24.
 */
@Component
public class BaseDrugUseExcelDOReader extends AExcelReader {
    @Autowired
    private BaseDrugUseDictDao baseDrugUseDictDao;
    @Autowired
    private BaseTemplateDictDao baseTemplateDictDao;
    @Override
    public void read(Workbook rwb) throws Exception {
        try{
            Iterator<Sheet> sheets = rwb.sheetIterator();
            int j = 0, rows;
            BasDrugUseExcelDO basDrugUseExcelDO;
            getRepeat().put("supply_code", new HashSet<>());
            getRepeat().put("supply_name", new HashSet<>());
            getRepeat().put("supply_occ", new HashSet<>());
            getRepeat().put("del_flag", new HashSet<>());
            getRepeat().put("sort_code", new HashSet<>());
            getRepeat().put("print_name", new HashSet<>());
            getRepeat().put("py_code", new HashSet<>());
            getRepeat().put("d_code", new HashSet<>());
            getRepeat().put("yb_name", new HashSet<>());
            getRepeat().put("yb_code", new HashSet<>());
            getRepeat().put("status", new HashSet<>());
            errorLs.clear();
            correctLs.clear();
            while (sheets.hasNext()){
                Sheet sheet = sheets.next();
                if ((rows = sheet.getLastRowNum()) == 0) {
                    continue;
                }
                for (int i = 1; i <= rows; i++) {
                    basDrugUseExcelDO = new BasDrugUseExcelDO();
                    basDrugUseExcelDO.setSupply_code(replaceBlank(getCellCont(sheet, i, 0)));
                    basDrugUseExcelDO.setSupply_name(replaceBlank(getCellCont(sheet, i, 1)));
                    basDrugUseExcelDO.setSupply_occ(getCellCont(sheet, i, 2));
                    basDrugUseExcelDO.setDel_flag(replaceBlank(getCellCont(sheet, i, 3)));
                    basDrugUseExcelDO.setSort_code(replaceBlank(getCellCont(sheet, i, 4)));
                    basDrugUseExcelDO.setPrint_name(replaceBlank(getCellCont(sheet, i, 5)));
                    basDrugUseExcelDO.setPy_code(replaceBlank(getCellCont(sheet, i, 6)));
                    basDrugUseExcelDO.setD_code(replaceBlank(getCellCont(sheet, i, 7)));
                    basDrugUseExcelDO.setYb_name(getCellCont(sheet, i, 8));
                    basDrugUseExcelDO.setYb_code(replaceBlank(getCellCont(sheet, i, 9)));
                    basDrugUseExcelDO.setExcelSeq(i);
                    int rs = basDrugUseExcelDO.validate(repeat);
                    if (validate(basDrugUseExcelDO)== 0||rs == 0) {
                        errorLs.add(basDrugUseExcelDO);
                    } else if (rs == 1) {
                        correctLs.add(basDrugUseExcelDO);
                    }
                }
                j++;
            }
        }catch (Exception e){
            e.printStackTrace();
            throw e;
        }finally {
            if (rwb != null) {
                rwb.close();
            }
        }
    }
    public int validate(BasDrugUseExcelDO basDrugUseExcelDO) {
        int rs = 1;
        if (StringUtils.isNoneBlank(basDrugUseExcelDO.getSupply_code())){
            List<BaseDrugUseDictDO> list  = baseDrugUseDictDao.findByCodeAndName(basDrugUseExcelDO.getSupply_code(),basDrugUseExcelDO.getSupply_name());
            System.out.println("当前导入数据:"+ basDrugUseExcelDO.getSupply_code());
            if (list!=null&&list.size()>0){
                System.out.println("进验证有重复数据"+list.get(0).getSupply_code());
                return 0;
            }
        }
        return rs;
    }
}

+ 96 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BaseFrequencyExcelDOReader.java

@ -0,0 +1,96 @@
package com.yihu.jw.base.service.dict.importManage;
import com.yihu.jw.base.endpoint.common.excel.AExcelReader;
import com.yihu.jw.dict.dao.BaseDrugUseDictDao;
import com.yihu.jw.dict.dao.BaseFrequencyDictDao;
import com.yihu.jw.dict.dao.BaseTemplateDictDao;
import com.yihu.jw.entity.base.dict.BaseDrugUseDictDO;
import com.yihu.jw.entity.base.dict.BaseFrequencyDictDO;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
/**
 * 医生信息列表-excel解析类
 * Created by 刘文彬 on 2018/10/24.
 */
@Component
public class BaseFrequencyExcelDOReader extends AExcelReader {
    @Autowired
    private BaseFrequencyDictDao baseFrequencyDictDao;
    @Autowired
    private BaseTemplateDictDao baseTemplateDictDao;
    @Override
    public void read(Workbook rwb) throws Exception {
        try{
            Iterator<Sheet> sheets = rwb.sheetIterator();
            int j = 0, rows;
            BasFrequencyExcelDO basFrequencyExcelDO;
            getRepeat().put("freq_code", new HashSet<>());
            getRepeat().put("freq_name", new HashSet<>());
            getRepeat().put("freq_sp", new HashSet<>());
            getRepeat().put("daily_times", new HashSet<>());
            getRepeat().put("weekly_times", new HashSet<>());
            getRepeat().put("hosp_code", new HashSet<>());
            getRepeat().put("is_op_ip", new HashSet<>());
            getRepeat().put("status", new HashSet<>());
            errorLs.clear();
            correctLs.clear();
            while (sheets.hasNext()){
                Sheet sheet = sheets.next();
                if ((rows = sheet.getLastRowNum()) == 0) {
                    continue;
                }
                for (int i = 1; i <= rows; i++) {
                    basFrequencyExcelDO = new BasFrequencyExcelDO();
                    basFrequencyExcelDO.setFreq_code(replaceBlank(getCellCont(sheet, i, 0)));
                    basFrequencyExcelDO.setFreq_name(replaceBlank(getCellCont(sheet, i, 1)));
                    basFrequencyExcelDO.setFreq_sp(getCellCont(sheet, i, 2));
                    basFrequencyExcelDO.setDaily_times(replaceBlank(getCellCont(sheet, i, 3)));
                    basFrequencyExcelDO.setWeekly_times(replaceBlank(getCellCont(sheet, i, 4)));
                    basFrequencyExcelDO.setHosp_code(replaceBlank(getCellCont(sheet, i, 5)));
                    basFrequencyExcelDO.setIs_op_ip(replaceBlank(getCellCont(sheet, i, 6)));
                    basFrequencyExcelDO.setStatus(replaceBlank(getCellCont(sheet, i, 7)));
                    basFrequencyExcelDO.setExcelSeq(i);
                    int rs = basFrequencyExcelDO.validate(repeat);
                    if (validate(basFrequencyExcelDO)== 0||rs == 0) {
                        errorLs.add(basFrequencyExcelDO);
                    } else if (rs == 1) {
                        correctLs.add(basFrequencyExcelDO);
                    }
                }
                j++;
            }
        }catch (Exception e){
            e.printStackTrace();
            throw e;
        }finally {
            if (rwb != null) {
                rwb.close();
            }
        }
    }
    public int validate(BasFrequencyExcelDO basFrequencyExcelDO) {
        int rs = 1;
        if (StringUtils.isNoneBlank(basFrequencyExcelDO.getFreq_code())){
            List<BaseFrequencyDictDO> list  = baseFrequencyDictDao.findByCodeAndIdName(basFrequencyExcelDO.getFreq_code(),basFrequencyExcelDO.getFreq_name());
            System.out.println("当前导入数据:"+ basFrequencyExcelDO.getFreq_code());
            if (list!=null&&list.size()>0){
                System.out.println("进验证有重复数据"+list.get(0).getFreq_code());
                return 0;
            }
        }
        return rs;
    }
}

+ 98 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/dict/importManage/BaseIcd10ExcelDOReader.java

@ -0,0 +1,98 @@
package com.yihu.jw.base.service.dict.importManage;
import com.yihu.jw.base.dao.dict.DictIcd10Dao;
import com.yihu.jw.base.endpoint.common.excel.AExcelReader;
import com.yihu.jw.dict.dao.BaseDrugDictDao;
import com.yihu.jw.dict.dao.BaseTemplateDictDao;
import com.yihu.jw.entity.base.dict.BaseDrugDictDO;
import com.yihu.jw.entity.base.dict.DictIcd10DO;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
/**
 * 医生信息列表-excel解析类
 * Created by 刘文彬 on 2018/10/24.
 */
@Component
public class BaseIcd10ExcelDOReader extends AExcelReader {
    @Autowired
    private DictIcd10Dao dictIcd10Dao;
    @Autowired
    private BaseTemplateDictDao baseTemplateDictDao;
    @Override
    public void read(Workbook rwb) throws Exception {
        try{
            Iterator<Sheet> sheets = rwb.sheetIterator();
            int j = 0, rows;
            BasIcd10ExcelDO basIcd10ExcelDO;
            getRepeat().put("code", new HashSet<>());
            getRepeat().put("name", new HashSet<>());
            getRepeat().put("description", new HashSet<>());
            getRepeat().put("disea_reason", new HashSet<>());
            getRepeat().put("death_reason", new HashSet<>());
            getRepeat().put("py_code", new HashSet<>());
            getRepeat().put("d_code", new HashSet<>());
            getRepeat().put("flag", new HashSet<>());
            getRepeat().put("status", new HashSet<>());
            errorLs.clear();
            correctLs.clear();
            while (sheets.hasNext()){
                Sheet sheet = sheets.next();
                if ((rows = sheet.getLastRowNum()) == 0) {
                    continue;
                }
                for (int i = 1; i <= rows; i++) {
                    basIcd10ExcelDO = new BasIcd10ExcelDO();
                    basIcd10ExcelDO.setCode(replaceBlank(getCellCont(sheet, i, 0)));
                    basIcd10ExcelDO.setName(replaceBlank(getCellCont(sheet, i, 1)));
                    basIcd10ExcelDO.setDescription(getCellCont(sheet, i, 2));
                    basIcd10ExcelDO.setDisea_reason(replaceBlank(getCellCont(sheet, i, 3)));
                    basIcd10ExcelDO.setDeath_reason(replaceBlank(getCellCont(sheet, i, 4)));
                    basIcd10ExcelDO.setPy_code(replaceBlank(getCellCont(sheet, i, 5)));
                    basIcd10ExcelDO.setD_code(replaceBlank(getCellCont(sheet, i, 6)));
                    basIcd10ExcelDO.setFlag(replaceBlank(getCellCont(sheet, i, 7)));
                    basIcd10ExcelDO.setStatus(getCellCont(sheet, i, 8));
                    basIcd10ExcelDO.setExcelSeq(i);
                    int rs = basIcd10ExcelDO.validate(repeat);
                    if (validate(basIcd10ExcelDO)== 0||rs == 0) {
                        errorLs.add(basIcd10ExcelDO);
                    } else if (rs == 1) {
                        correctLs.add(basIcd10ExcelDO);
                    }
                }
                j++;
            }
        }catch (Exception e){
            e.printStackTrace();
            throw e;
        }finally {
            if (rwb != null) {
                rwb.close();
            }
        }
    }
    public int validate(BasIcd10ExcelDO basIcd10ExcelDO) {
        int rs = 1;
        if (StringUtils.isNoneBlank(basIcd10ExcelDO.getCode())){
            List<DictIcd10DO> list  = dictIcd10Dao.findByCodeAndName(basIcd10ExcelDO.getCode(),basIcd10ExcelDO.getName());
            System.out.println("当前导入数据:"+ basIcd10ExcelDO.getCode());
            if (list!=null&&list.size()>0){
                System.out.println("进验证有重复数据"+list.get(0).getCode());
                return 0;
            }
        }
        return rs;
    }
}

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java

@ -1000,7 +1000,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
        Map<String, Object> result = new HashMap<>();
        //批量存储的集合
//        int correctCount = 0;
//        List<BaseDoctorExcelDO> corrects = new ArrayList<>();
//        List<BasDrugExcelDO> corrects = new ArrayList<>();
        BaseDoctorDO baseDoctorDO;
        //批量存储
        for(BaseDoctorExcelDO one:doctors){

+ 0 - 2
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/service/channel/SyncWlyyHospitalService.java

@ -204,10 +204,8 @@ public class SyncWlyyHospitalService {
                    }
                    WlyyAdminTeamMemberDO wlyyAdminTeamMemberDO=wlyyAdminTeamMemberDao.findOne(wlyyAdminTeamMember.getId());
                    if(wlyyAdminTeamMemberDO==null){
                        wlyyAdminTeamMemberDO.setLastModified(new Date());
                        addCount++;
                    }else{
                        wlyyAdminTeamMemberDO.setLastModified(new Date());
                        updateCount++;
                    }
                    wlyyAdminTeamMemberDao.save(wlyyAdminTeamMember);