Browse Source

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

# Conflicts:
#	common/common-entity/src/main/java/com/yihu/jw/entity/iot/product/IotProductBaseInfoDO.java
humingfen 5 years ago
parent
commit
e8b90a16f9
34 changed files with 1194 additions and 79 deletions
  1. 3 0
      business/base-service/src/main/java/com/yihu/jw/doctor/dao/BaseDoctorDao.java
  2. 10 3
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
  3. 1 0
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/YkyyPrescriptionService.java
  4. 151 37
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/YkyyEntranceService.java
  5. 26 0
      business/base-service/src/main/java/com/yihu/jw/hospital/ykyy/service/YkyyService.java
  6. 12 2
      business/base-service/src/main/java/com/yihu/jw/order/BusinessOrderService.java
  7. 1 5
      business/base-service/src/main/java/com/yihu/jw/utils/hibernate/HibenateUtils.java
  8. 4 0
      business/base-service/src/main/java/com/yihu/jw/wechat/service/WxTemplateService.java
  9. 1 1
      business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java
  10. 2 2
      business/im-service/src/main/java/com/yihu/jw/im/util/ImUtil.java
  11. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/HlwCf01DO.java
  12. 1 3
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/HlwCf02DO.java
  13. 15 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyPrescriptionInfoDO.java
  14. 247 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/platform/IotInterfaceLogDO.java
  15. 10 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/product/IotProductBaseInfoDO.java
  16. 63 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/workType/IotWorkTypeDO.java
  17. 10 0
      common/common-entity/src/main/java/com/yihu/jw/entity/order/BusinessOrderDO.java
  18. 20 1
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/iot/IotRequestMapping.java
  19. 11 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyPrescriptionInfoVO.java
  20. 121 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/platform/IotInterfaceLogVO.java
  21. 36 8
      svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/YkyyController.java
  22. 7 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/base/BaseInfoEndpoint.java
  23. 1 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/PatientConsultEndpoint.java
  24. 3 5
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/patient/PatientNoLoginEndPoint.java
  25. 22 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/ykyy/YkyyController.java
  26. 74 8
      svr/svr-iot/src/main/java/com/yihu/iot/controller/platform/IotInterfaceController.java
  27. 88 0
      svr/svr-iot/src/main/java/com/yihu/iot/controller/workType/IotWorkTypeController.java
  28. 13 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/IotInterfaceLogDao.java
  29. 3 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/IotShareInterfaceDao.java
  30. 19 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/workType/IotWorkTypeDao.java
  31. 131 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/platform/IotInterfaceLogService.java
  32. 13 3
      svr/svr-iot/src/main/java/com/yihu/iot/service/platform/IotShareInterfaceService.java
  33. 1 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/product/IotProductBaseInfoService.java
  34. 73 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/workType/IotWorkTypeService.java

+ 3 - 0
business/base-service/src/main/java/com/yihu/jw/doctor/dao/BaseDoctorDao.java

@ -27,6 +27,9 @@ public interface BaseDoctorDao extends PagingAndSortingRepository<BaseDoctorDO,
    @Query("from BaseDoctorDO d where d.id = ?1 AND d.del ='1'")
    BaseDoctorDO findById(String id);
    @Query("from BaseDoctorDO d where  d.del ='1'")
    List<BaseDoctorDO> findByDel();
    @Modifying
    @Query("update BaseDoctorDO p set p.introduce = ?2,p.expertise = ?3,p.photo = ?4,p.outpatientType = ?5 where p.id = ?1")
    void update(String doctorId,String introduce,String expertise,String photo,String outpatientType);

File diff suppressed because it is too large
+ 10 - 3
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java


+ 1 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/YkyyPrescriptionService.java

@ -140,6 +140,7 @@ public class YkyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
        businessOrderDO.setRelationCode(outpatient.getId());
        businessOrderDO.setRelationName("复诊-诊查费");
        businessOrderDO.setDescription("复诊-诊查费");
        businessOrderDO.setRematk(outpatient.getDescription());
        businessOrderDO.setPatient(outpatient.getPatient());
        businessOrderDO.setPatientName(outpatient.getPatientName());
        businessOrderDO.setDoctor(outpatient.getDoctor());

+ 151 - 37
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/YkyyEntranceService.java

@ -34,10 +34,12 @@ import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.hospital.prescription.WlyyOutpatientVO;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionInfoVO;
import com.yihu.jw.restmodel.hospital.prescription.WlyyPrescriptionVO;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.rm.iot.IotRequestMapping;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.utils.StringUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.utils.network.HttpResponse;
@ -49,6 +51,7 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
@ -70,6 +73,12 @@ public class YkyyEntranceService {
    private final static String saveUrl="http://192.168.20.55:10023/ykyy/save";
    private final static String updateUrl="http://192.168.20.55:10023/ykyy/updateBySql";
    private final static String updateEntityUrl="http://192.168.20.55:10023/ykyy/update";
    private final static String jdbcUrl="http://192.168.20.55:10023/ykyy/jdbcSQLQuery";
    private final static String orgCode ="350211A5004";
    private final static String orgName ="厦门大学附属厦门眼科中心";
@ -101,9 +110,6 @@ public class YkyyEntranceService {
    @Autowired
    private PrescriptionDao prescriptionDao;
    @Autowired
    private PrescriptionInfoDao prescriptionInfoDao;
    @Autowired
    private BaseEvaluateScoreDao baseEvaluateScoreDao;
@ -114,23 +120,32 @@ public class YkyyEntranceService {
    private HibenateUtils hibenateUtils;
    @Autowired
    private ObjectMapper objectMapper;
    private HttpClientUtil httpClientUtil;
    @Autowired
    private YkDictIcd10Dao ykDictIcd10Dao;
    @Autowired
    private PrescriptionInfoDao prescriptionInfoDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    public List<Map<String, Object>> createSQLQuery(String sql, Map<String, Object> params, Integer page, Integer size){
        return hibenateUtils.createSQLQuery(sql,params,page,size);
    }
    public List<Map<String, Object>> jdbcSQLQuery(String sql){
        return jdbcTemplate.queryForList(sql);
    }
    public void save(Object object){
        hibenateUtils.save(object);
    }
    public void update(String id,Integer status){
        hibenateUtils.update(id,status);
    public void update(Object object){
        hibenateUtils.update(object);
    }
    public void updateBySql(String sql){
@ -215,9 +230,6 @@ public class YkyyEntranceService {
        if (jsonArray.size() == 0) {
            return null;
        }
//        String tmp = "{\"JZXH\":2395594,\"SFZH\":\"350203201411221635\",\"ZDMC\":\"结膜炎\",\"YSDM\":\"1785\",\"BRXZ\":\"医保\",\"JZKH\":\"DA6736810\",\"KDYS\":\"况坤\",\"KSDM\":112,\"BRID\":1175116,\"BRXM\":\"王竣皓\",\"SJHM\":null,\"KSSJ\":\"2020/04/28 20:56:34\",\"KSMC\":\"眼整形专科\"}";
//        JSONArray jsonArray = new JSONArray();
//        jsonArray.add(JSONObject.parse(tmp));
        List<WlyyOutpatientVO> wlyyOutpatientVOS = new ArrayList<>();
        WlyyOutpatientVO wlyyOutpatientVO;
@ -270,10 +282,13 @@ public class YkyyEntranceService {
     * @throws Exception
     */
    public JSONArray getUnsettledPrescription() throws Exception{
        String sql = "SELECT h.BRID,h.CFSB from HLW_CF01 h WHERE h.SPZT = 1 and h.FKZT = 0";
        String sql = "SELECT h.BRID,h.CFSB,h.SJLY from v_ms_dd01 h WHERE h.SPZT = 1 and h.FKZT = 0 order by h.KFRQ desc ";
        Map<String,Object> params = new HashedMap();
        params.put("sql",sql);
        HttpResponse response = HttpUtils.doGet(url,params);
        params.put("page","1");
        params.put("size","60");
        HttpResponse response = HttpUtils.doGet(jdbcUrl,params);
        String content = response.getContent();
        logger.info("response:"+content);
        JSONObject rs = JSON.parseObject(content);
@ -437,6 +452,37 @@ public class YkyyEntranceService {
        return "success";
    }
    public String updateYkTDoctor()throws Exception{
        List<BaseDoctorDO> baseDoctorDOS = baseDoctorDao.findByDel();
        for (BaseDoctorDO baseDoctorDO:baseDoctorDOS){
            String response="";
            String url = "http://www.yanketong.com:133/api/doc_jkzl/doctor_list_had_bind_account?hospital_code=sb&page=1&id_card="+baseDoctorDO.getIdcard();
            response = httpClientUtil.get(url,"GBK");
            logger.info("response:"+response);
            JSONObject rs = JSON.parseObject(response);
            Integer status = rs.getInteger("code");
            if(status!=null&&status == 200){
                JSONObject object = rs.getJSONObject("data");
                JSONArray array = object.getJSONArray("list");
                if (array!=null&&array.size()!=0){
                    JSONObject jsonObject = array.getJSONObject(0);
                    DoctorMappingDO doctorMappingDO = doctorMappingDao.findByDoctor(baseDoctorDO.getId());
                    String mappingCode = jsonObject.getString("DOCTORCODE");
                    doctorMappingDO.setMappingCode(mappingCode);
                    doctorMappingDao.save(doctorMappingDO);
                }else {
                    baseDoctorDO.setDel("0");
                    baseDoctorDao.save(baseDoctorDO);
                }
            }
        }
        return "success";
    }
    public String randomString(int length) {
        String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        StringBuffer buffer = new StringBuffer();
@ -1035,7 +1081,7 @@ public class YkyyEntranceService {
                hlwCf01DO.setZJFLAG(0);
                hlwCf01DO.setLSCFBZ(0);
                hlwCf01DO.setZJFLAG(0);
                hlwCf01DO.setFKZT(1);
                hlwCf01DO.setFKZT(0);
                hlwCf01DO.setSCDDH(wlyyPrescriptionVO.getOrderNo());
                String patient = wlyyPrescriptionVO.getPatientCode();
                PatientMappingDO patientMappingDO = patientMappingDao.findByPatient(patient);
@ -1048,38 +1094,66 @@ public class YkyyEntranceService {
                hlwCf01DO.setJZKH(wlyyPrescriptionVO.getSsc());
                hlwCf01DO.setGUID(getCode());
                hlwCf01DO.setSJLY(1);
                hlwCf01DO.setJZXH(Integer.parseInt(wlyyPrescriptionVO.getAdmNo()));
                if (StringUtils.isNoneBlank(wlyyPrescriptionVO.getAdmNo())){
                    hlwCf01DO.setJZXH(Integer.parseInt(wlyyPrescriptionVO.getAdmNo()));
                }
               /* hibenateUtils.save(hlwCf01DO);*/
                if (StringUtils.isNoneBlank(wlyyPrescriptionVO.getRealOrder())){
                    hlwCf01DO.setCFSB(Integer.parseInt(wlyyPrescriptionVO.getRealOrder()));
                }
                if (StringUtils.isNoneBlank(wlyyPrescriptionVO.getOriginRealOrder())){
                    hlwCf01DO.setCFHM(wlyyPrescriptionVO.getOriginRealOrder());
                }
                String jsonString = JSONObject.toJSONString(hlwCf01DO);
                Map<String,Object> params = new HashedMap();
                params.put("json",jsonString);
                params.put("table","HLW_CF01");
                logger.info("HLW_CF01:"+jsonString);
                HttpResponse response = HttpUtils.doGet(saveUrl,params);
                String cfsb = "";
                if (response.getStatus()==200){
                    logger.info("content"+response.getContent());
                    String content = response.getContent();
                    JSONObject jsonObject = JSONObject.parseObject(content);
                    JSONObject object = jsonObject.getJSONObject("obj");
                    if (object!=null){
                        cfsb = object.getString("cfsb");
                        List<WlyyPrescriptionDO> wlyyPrescriptionDOS = prescriptionDao.findById(code);
                        if (wlyyPrescriptionDOS!=null&&wlyyPrescriptionDOS.size()!=0){
                            WlyyPrescriptionDO wlyyPrescriptionDO = wlyyPrescriptionDOS.get(0);
                            wlyyPrescriptionDO.setRealOrder(cfsb);
                            wlyyPrescriptionVO.setRealOrder(cfsb);
                            prescriptionDao.save(wlyyPrescriptionDO);
                /**
                 {"message":null,"status":200,"obj":{"cfhm":1898356,"cfsb":5390518}}
                 */
                String cfsb = null;
                String cfhm = null;
                if (!StringUtils.isNoneBlank(wlyyPrescriptionVO.getRealOrder())){
                    HttpResponse response = HttpUtils.doGet(saveUrl,params);
                    if (response.getStatus()==200){
                        logger.info("content"+response.getContent());
                        String content = response.getContent();
                        JSONObject jsonObject = JSONObject.parseObject(content);
                        JSONObject object = jsonObject.getJSONObject("obj");
                        if (object!=null){
                            cfsb = object.getString("cfsb");
                            cfhm = object.getString("cfhm");
                            logger.info("kaishi=========="+cfsb);
                            List<WlyyPrescriptionDO> wlyyPrescriptionDOS = prescriptionDao.findById(code);
                            if (wlyyPrescriptionDOS!=null&&wlyyPrescriptionDOS.size()!=0){
                                WlyyPrescriptionDO wlyyPrescriptionDO = wlyyPrescriptionDOS.get(0);
                                wlyyPrescriptionDO.setRealOrder(cfsb);
                                wlyyPrescriptionDO.setOriginRealOrder(cfhm);
                                prescriptionDao.save(wlyyPrescriptionDO);
                            }
                        }
                    }
                    logger.info("表HLW_CF01同步成功!");
                        logger.info("表HLW_CF01同步成功!");
                    }else {
                        logger.info("表HLW_CF01同步失败!"+response.getErrorMsg());
                    }
                }else {
                    logger.info("表HLW_CF01同步失败!"+response.getErrorMsg());
                    cfsb = wlyyPrescriptionVO.getRealOrder();
                    HttpResponse response = HttpUtils.doGet(updateEntityUrl,params);
                    if (response.getStatus()==200){
                        logger.info("content"+response.getContent());
                        logger.info("表HLW_CF01更新成功!");
                    }else {
                        logger.info("表HLW_CF01更新失败!"+response.getErrorMsg());
                    }
                }
                logger.info("处方:"+wlyyPrescriptionVO);
                if (!StringUtils.isNoneBlank(cfsb)){
                logger.info("处方:"+cfsb);
                if (StringUtils.isEmpty(cfsb)){
                    throw new Exception("添加失败");
                }
                List<WlyyPrescriptionInfoVO> wlyyPrescriptionInfoVOS =wlyyPrescriptionVO.getInfoVOs();
@ -1107,6 +1181,9 @@ public class YkyyEntranceService {
                    hlwCf02DO.setGYTJ(wlyyPrescriptionInfoVO.getYpyf());
                    hlwCf02DO.setPSPB(0);
                    hlwCf02DO.setYYTS(1);
                    if (wlyyPrescriptionInfoVO.getHisCode()!=null){
                        hlwCf02DO.setSBXH(wlyyPrescriptionInfoVO.getHisCode());
                    }
                    /*hlwCf02DO.setYPZH(Integer.parseInt(wlyyPrescriptionInfoVO.getFrequency()));*/
                    hlwCf02DO.setYFGG(wlyyPrescriptionInfoVO.getSpecification());
                  /*  hibenateUtils.save(hlwCf02DO);*/
@ -1116,12 +1193,37 @@ public class YkyyEntranceService {
                    params1.put("json",jsonString1);
                    params1.put("table","HLW_CF02");
                    logger.info("HLW_CF02:"+jsonString1);
                    HttpResponse response1 = HttpUtils.doGet(saveUrl,params1);
                    if (response1.getStatus()==200){
                        logger.info("表HLW_CF02同步成功!");
                    if (wlyyPrescriptionInfoVO.getHisCode()==null){
                        HttpResponse response1 = HttpUtils.doGet(saveUrl,params1);
                        Integer sbxh = null;
                        if (response1.getStatus()==200){
                            logger.info("content"+response1.getContent());
                            String content = response1.getContent();
                            JSONObject jsonObject = JSONObject.parseObject(content);
                            JSONObject object = jsonObject.getJSONObject("obj");
                            if (object!=null){
                                sbxh = object.getInteger("sbxh");
                                logger.info("kaishi=========="+cfsb);
                                WlyyPrescriptionInfoDO wlyyPrescriptionInfoDO = prescriptionInfoDao.findOne(wlyyPrescriptionInfoVO.getId());
                                if (wlyyPrescriptionInfoDO!=null){
                                    wlyyPrescriptionInfoDO.setHisCode(sbxh);
                                    prescriptionInfoDao.save(wlyyPrescriptionInfoDO);
                                }
                            }
                            logger.info("表HLW_CF02同步成功!");
                        }else {
                            logger.info("表HLW_CF02同步失败!"+response1.getErrorMsg());
                        }
                    }else {
                        logger.info("表HLW_CF02同步失败!"+response1.getErrorMsg());
                        HttpResponse response1 = HttpUtils.doGet(updateEntityUrl,params1);
                        if (response1.getStatus()==200){
                            logger.info("content"+response1.getContent());
                            logger.info("表HLW_CF02更新成功!");
                        }else {
                            logger.info("表HLW_CF02更新失败!"+response1.getErrorMsg());
                        }
                    }
                    }catch (Exception e){
                        e.printStackTrace();
                        e.getMessage();
@ -1139,6 +1241,18 @@ public class YkyyEntranceService {
    public String updateHisStatus(String sql) throws Exception {
        Map<String,Object> params1 = new HashedMap();
        params1.put("sql",sql);
        HttpResponse response1 = HttpUtils.doGet(updateUrl,params1);
        logger.info(response1.getContent());
        if (response1.getStatus()==200){
            logger.info("更新his支付状态!");
        }else {
            logger.info("更新his支付状态!"+response1.getErrorMsg());
        }
        return response1.getContent();
    }

+ 26 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/ykyy/service/YkyyService.java

@ -283,6 +283,30 @@ public class YkyyService {
    }
    /**
     * 眼科通登录接口
     * @param tel
     * @param password
     * @return
     */
    public String yktLogin(String tel,String password){
        String response="";
        String url = yktUrl+"user_center/patient_login?patient_account="+tel+"&patient_pwd="+password;
        response = httpClientUtil.get(url,"GBK");
        logger.info("获取眼科通登录信息:"+response);
        return response;
    }
  /*  public String forgetPassword(String tel,String password){
        String response="";
        String url = "http://www.yanketong.com:90/api/Patient/ForgotPassword";
        response = httpClientUtil.httpPost(url,"GBK");
        logger.info("获取眼科通登录信息:"+response);
        return response;
    }*/
    /**
     * 同步眼科通数据
     * @param patient
@ -417,4 +441,6 @@ public class YkyyService {
}

+ 12 - 2
business/base-service/src/main/java/com/yihu/jw/order/BusinessOrderService.java

@ -18,6 +18,7 @@ import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.mapping.dao.DoctorMappingDao;
import com.yihu.jw.hospital.prescription.dao.OutpatientDao;
import com.yihu.jw.hospital.prescription.dao.PrescriptionDao;
import com.yihu.jw.hospital.prescription.service.entrance.YkyyEntranceService;
import com.yihu.jw.hospital.ykyy.service.YkyyService;
import com.yihu.jw.order.dao.BusinessOrderDao;
import com.yihu.jw.order.dao.BusinessOrderRefundDao;
@ -76,6 +77,8 @@ public class BusinessOrderService {
    private OutpatientDao outpatientDao;
    @Autowired
    private PrescriptionDao prescriptionDao;
    @Autowired
    private YkyyEntranceService ykyyEntranceService;
@ -133,8 +136,8 @@ public class BusinessOrderService {
        }else {
            throw new Exception("医生映射表不存在!");
        }
        String response=ykyyService.addYktOrder(orderNo,patientId,orderAmout,description,state,orderType,yktDoctor,payType,null,patientTel,orderCatagrate,pcCallBack,appCallBack);
        String remark = businessOrderDO.getRematk();
        String response=ykyyService.addYktOrder(orderNo,patientId,orderAmout,remark,state,orderType,yktDoctor,payType,null,patientTel,orderCatagrate,pcCallBack,appCallBack);
        JSONObject object = JSONObject.parseObject(response);
        if (object.getInteger("code")==200){
            businessOrderDO.setUploadStatus(1);
@ -488,8 +491,15 @@ public class BusinessOrderService {
                    List<WlyyPrescriptionDO> wlyyPrescriptionDOS = prescriptionDao.findById(businessOrderDO.getRelationCode());
                    if (wlyyPrescriptionDOS!=null&&wlyyPrescriptionDOS.size()!=0){
                        WlyyPrescriptionDO wlyyPrescriptionDO = wlyyPrescriptionDOS.get(0);
                        wlyyPrescriptionDO.setStatus(30);
                        wlyyPrescriptionDO.setPayStatus(1);
                        prescriptionDao.save(wlyyPrescriptionDO);
                        String sql = " update v_ms_dd01 SET FKZT=1 where CFSB = '"+wlyyPrescriptionDO.getRealOrder()+"'";
                        try {
                            ykyyEntranceService.updateHisStatus(sql);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            }

+ 1 - 5
business/base-service/src/main/java/com/yihu/jw/utils/hibernate/HibenateUtils.java

@ -166,11 +166,7 @@ public class HibenateUtils {
    public void save(Object object) {
        Session session = (Session) entityManager.getDelegate();
        Transaction transaction = session.beginTransaction();
        transaction.begin();
        session.save(object);
        transaction.commit();
        entityManager.persist(object);
    }
    /**

+ 4 - 0
business/base-service/src/main/java/com/yihu/jw/wechat/service/WxTemplateService.java

@ -163,6 +163,10 @@ public class WxTemplateService {
                                if(ps.isEmpty()){
                                    logger.info("该用户"+patientDO.getName()+"没有openid,无法推送模版消息,用户ID:"+patientDO.getId()+"wechatId:"+wechatId);
                                }else{
                                    //修改处方状态
                                    String updateSql = "update WLYY_PRESCRIPTION set status = 20 where id = '"+prescriptionId+"' and status = 10";
                                    hibenateUtils.updateBySql(updateSql);
                                    ps.stream().forEach(one->{
                                        WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId,"template_unsettled_notice","djsxxtz",1);
                                        WxTemplateConfigDO newConfig = new WxTemplateConfigDO();

+ 1 - 1
business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java

@ -1640,7 +1640,7 @@ public class ImService {
	 * @param type
	 * @return
	 */
	public Integer SessionsUnreadMessageCount(String userid,Integer type){
	public Integer SessionsUnreadMessageCount(String userid,String type){
		return imUtil.SessionsUnreadMessageCount(userid,type);
	}
	

+ 2 - 2
business/im-service/src/main/java/com/yihu/jw/im/util/ImUtil.java

@ -712,8 +712,8 @@ public class ImUtil {
	 * @param type
	 * @return
	 */
	public Integer SessionsUnreadMessageCount(String userid,Integer type){
		String url = im_host + "api/v2/sessions/unread_message_count?user_id="+userid;
	public Integer SessionsUnreadMessageCount(String userid,String type){
		String url = im_host + "api/v2/sessions/unread_message_count?user_id="+userid+"&type="+type;
		String ret = HttpClientUtil.get(url,"utf-8");
		JSONObject obj = JSON.parseObject(ret);
//		if(obj.getInteger("count") ==200){

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/HlwCf01DO.java

@ -12,7 +12,7 @@ import java.util.Date;
 * */
//@ApiModel(value = "HlwCf01VO", description = "眼科处方表1数据")
@Entity
@Table(name = "HLW_CF01",  catalog = "model")
@Table(name = "v_ms_dd01")
public class HlwCf01DO {
    private Integer cFSB;//	NUMBER(18)	N			处方识别
    private String cFHM;//	VARCHAR2(10)	Y			处方号码

+ 1 - 3
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/HlwCf02DO.java

@ -10,8 +10,7 @@ import java.util.Date;
 *
 * */
@Entity
@Table(name = "HLW_CF02")
@SequenceGenerator(name="id_generated", sequenceName="SEQ_HLW_CF02")
@Table(name = "v_ms_dd02")
public class HlwCf02DO {
    private Integer sBXH;//NUMBER(18)   N注释
    private Integer cFSB;//NUMBER(18)   N识别序号
@ -58,7 +57,6 @@ public class HlwCf02DO {
    private String tHYY;//VARCHAR2(200) Y退回原因
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="id_generated")
    @Id
    @Column(name = "SBXH")
    public Integer getSBXH() {

+ 15 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyPrescriptionInfoDO.java

@ -153,6 +153,12 @@ public class WlyyPrescriptionInfoDO extends UuidIdentityEntity {
    private Integer ypyf;
    /**
     * 眼科hiscode
     */
    private Integer HisCode;
    @Column(name = "prescription_id")
    public String getPrescriptionId() {
        return prescriptionId;
@ -384,4 +390,13 @@ public class WlyyPrescriptionInfoDO extends UuidIdentityEntity {
    public void setYpyf(Integer ypyf) {
        this.ypyf = ypyf;
    }
    @Column(name = "his_code")
    public Integer getHisCode() {
        return HisCode;
    }
    public void setHisCode(Integer hisCode) {
        HisCode = hisCode;
    }
}

+ 247 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/platform/IotInterfaceLogDO.java

@ -0,0 +1,247 @@
package com.yihu.jw.entity.iot.platform;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import org.hibernate.boot.model.relational.Namespace;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.Date;
/**接口日志
 * @author HZY
 * @vsrsion 1.0
 * Created at 2020/4/28
 */
@Entity
@Table(name = "iot_interface_log")
public class IotInterfaceLogDO extends UuidIdentityEntityWithOperator implements Serializable {
    @Column(name="company_id")
    private String companyId;//公司ID
    @Column(name="company_name")
    private String companyName;//公司名称
    @Column(name="app_id")
    private String appId;//应用ID
    @Column(name="app_name")
    private String  appName;//应用名称
    @Column(name="work_type_id")
    private String workTypeId;//业务类型ID
    @Column(name="work_type")
    private String workType;//业务类型
    @Column(name="explanation")
    private String explanation;//接口说明
    @Column(name="user_id")
    private String userId;//用户id
    @Column(name="user_name")
    private String userName;//用户名称
    @Column(name="address_ip")
    private String addressIp;//访问ip地址
    @Column(name="source")
    private String source;//请求来源 1:卫健委 2:单位 3:系统管理员
    @Column(name="head")
    private String head;//请求头
    @Column(name="request")
    private String request;//请求参数
    @Column(name="interface_name")
    private String interfaceName;//请求接口名称
    @Column(name="method")
    private String method;//方法名
    @Column(name="type")
    private int type;//请求方式 1:get请求  2:post请求
    @Column(name="url")
    private String url;//请求URL
    @Column(name="response")
    private String  response;//响应参数
    @Column(name="time")
    private Date time;//调用时间
    @Column(name="state")
    private int  state;//调用状态 1:成功   0:失败
    @Transient
    private String count;//调用次数
    @Transient
    private String failureRate;//失败率
    public String getCompanyId() {
        return companyId;
    }
    public void setCompanyId(String companyId) {
        this.companyId = companyId;
    }
    public String getCompanyName() {
        return companyName;
    }
    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }
    public String getAppId() {
        return appId;
    }
    public void setAppId(String appId) {
        this.appId = appId;
    }
    public String getAppName() {
        return appName;
    }
    public void setAppName(String appName) {
        this.appName = appName;
    }
    public String getWorkTypeId() {
        return workTypeId;
    }
    public void setWorkTypeId(String workTypeId) {
        this.workTypeId = workTypeId;
    }
    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getAddressIp() {
        return addressIp;
    }
    public void setAddressIp(String addressIp) {
        this.addressIp = addressIp;
    }
    public String getSource() {
        return source;
    }
    public void setSource(String source) {
        this.source = source;
    }
    public String getHead() {
        return head;
    }
    public void setHead(String head) {
        this.head = head;
    }
    public String getRequest() {
        return request;
    }
    public void setRequest(String request) {
        this.request = request;
    }
    public String getInterfaceName() {
        return interfaceName;
    }
    public void setInterfaceName(String interfaceName) {
        this.interfaceName = interfaceName;
    }
    public String getMethod() {
        return method;
    }
    public void setMethod(String method) {
        this.method = method;
    }
    public int getType() {
        return type;
    }
    public void setType(int type) {
        this.type = type;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getResponse() {
        return response;
    }
    public void setResponse(String response) {
        this.response = response;
    }
    public Date getTime() {
        return time;
    }
    public void setTime(Date time) {
        this.time = time;
    }
    public int getState() {
        return state;
    }
    public void setState(int state) {
        this.state = state;
    }
    public String getWorkType() {
        return workType;
    }
    public void setWorkType(String workType) {
        this.workType = workType;
    }
    public String getExplanation() {
        return explanation;
    }
    public void setExplanation(String explanation) {
        this.explanation = explanation;
    }
    @Transient
    public String getCount() {
        return count;
    }
    public void setCount(String count) {
        this.count = count;
    }
    @Transient
    public String getFailureRate() {
        return failureRate;
    }
    public void setFailureRate(String failureRate) {
        this.failureRate = failureRate;
    }
}

+ 10 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/product/IotProductBaseInfoDO.java

@ -73,6 +73,8 @@ public class IotProductBaseInfoDO extends UuidIdentityEntityWithOperator impleme
    private Double purchasePrice;//进货价
    @Column(name = "retail_price")
    private Double retailPrice;//零售价格
    @Column(name = "category_name")
    private String categoryName;//设备类型标识
    @Column(name = "category_code")
    private String categoryCode;//设备类型标识
    @Column(name = "inventory_upper")
@ -312,6 +314,14 @@ public class IotProductBaseInfoDO extends UuidIdentityEntityWithOperator impleme
        this.categoryCode = categoryCode;
    }
    public String getCategoryName() {
        return categoryName;
    }
    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }
    public Integer getInventoryUpper() {
        return inventoryUpper;
    }

+ 63 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/workType/IotWorkTypeDO.java

@ -0,0 +1,63 @@
package com.yihu.jw.entity.iot.workType;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
/**
 * @author HZY 业务类型表
 * @vsrsion 1.0
 * Created at 2020/4/29
 */
@Entity
@Table(name = "iot_work_type")
public class IotWorkTypeDO extends UuidIdentityEntityWithOperator implements Serializable {
    @Column(name = "saas_id")
    private String saasId;
    @Column(name = "name")
    private String name;//业务类型名称
    @Column(name = "explanation")
    private String explanation;//说明
    @Column(name = "del")
    private String del;//删除标识: 1:删除  0:不删除
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getExplanation() {
        return explanation;
    }
    public void setExplanation(String explanation) {
        this.explanation = explanation;
    }
    public String getDel() {
        return del;
    }
    public void setDel(String del) {
        this.del = del;
    }
}

+ 10 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/order/BusinessOrderDO.java

@ -28,6 +28,7 @@ public class BusinessOrderDO extends IntegerIdentityEntity {
    private String relationCode;//业务关联code
    private String relationName;//业务关联名称
    private String description;//支付备注
    private String rematk;//病人描述
    private Integer payType;//支付类型1微信2支付宝
    private Double payPrice;//支付金额
    private Date payTime;//支付时间
@ -246,4 +247,13 @@ public class BusinessOrderDO extends IntegerIdentityEntity {
    public void setUploadStatus(Integer uploadStatus) {
        this.uploadStatus = uploadStatus;
    }
    @Column(name = "remark")
    public String getRematk() {
        return rematk;
    }
    public void setRematk(String rematk) {
        this.rematk = rematk;
    }
}

+ 20 - 1
common/common-request-mapping/src/main/java/com/yihu/jw/rm/iot/IotRequestMapping.java

@ -23,6 +23,7 @@ public class IotRequestMapping {
        public static final String wlyy = api_iot_common + "/wlyy";
        public static final String figereLabel = api_iot_common + "/figereLabel";
        public static final String platform = api_iot_common + "/platform";
        public static final String workType = api_iot_common + "/workType";
        public static final String hospital = api_iot_common + "/hospital";
@ -294,20 +295,38 @@ public class IotRequestMapping {
    }
    /**
     * 居民标签信息模块常量
     * 平台接口信息模块常量
     */
    public static class  Platform{
        public static final String addInterface ="addInterface";
        public static final String editInterface ="editInterface";
        public static final String findInterfaceById ="findInterfaceById";
        public static final String findAll ="findAll";
        public static final String findAllLog ="findAllLog";
        public static final String conditionQueryPage ="conditionQueryPage";
        public static final String delete ="delete";
        public static final String dataConsumption ="dataConsumption";
        public static final String message_success_add = "add success";
        public static final String message_success_edit = "edit success";
        public static final String message_success_find = "find success";
        public static final String message_success_delete = "delete success";
    }
    /**
     * 业务类型信息模块常量
     */
    public static class WorkType{
        public static final  String addType="addType";
        public static final  String editType="editType";
        public static final  String deleteType="deleteType";
        public static final  String findType="findType";
        public static final String message_success_add = "workType add success";
        public static final String message_success_edit = "workType edit success";
        public static final String message_success_delete = "workType delete success";
        public static final String message_success_find = "workType find success";
    }
    /**
     * 单位模块常量

+ 11 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyPrescriptionInfoVO.java

@ -152,6 +152,9 @@ public class WlyyPrescriptionInfoVO extends UuidIdentityVOWithOperator {
    @ApiModelProperty(value = "给药途径", example = "给药途径")
    private Integer ypyf;
    @ApiModelProperty(value = "眼科hisCode", example = "眼科hisCode")
    private Integer HisCode;
    private String comm;
@ -360,4 +363,12 @@ public class WlyyPrescriptionInfoVO extends UuidIdentityVOWithOperator {
    public void setYpyf(Integer ypyf) {
        this.ypyf = ypyf;
    }
    public Integer getHisCode() {
        return HisCode;
    }
    public void setHisCode(Integer hisCode) {
        HisCode = hisCode;
    }
}

+ 121 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/iot/platform/IotInterfaceLogVO.java

@ -0,0 +1,121 @@
package com.yihu.jw.restmodel.iot.platform;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.yihu.jw.restmodel.iot.common.BaseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
/**
 * @author 接口日志表
 * @vsrsion 1.0
 * Created at 2020/4/29
 */
@JsonInclude(JsonInclude.Include.ALWAYS)
@ApiModel(value = "接口日志表", description = "接口日志表")
public class IotInterfaceLogVO extends BaseVO implements Serializable {
    @ApiModelProperty("请求接口名称")
    private String interfaceName;//
    @ApiModelProperty("方法名")
    private String method;//方法名
    @ApiModelProperty("业务类型")
    private String workType;//业务类型
    @ApiModelProperty("接口说明")
    private String explanation;//接口说明
    @ApiModelProperty("访问ip地址")
    private String addressIp;//访问ip地址
    @ApiModelProperty("调用状态 1:成功   0:失败")
    private int  state;//调用状态 1:成功   0:失败
    @ApiModelProperty("调用时间")
    private Date time;//调用时间
    @ApiModelProperty("应用名称")
    private String  appName;//应用名称
    @ApiModelProperty("调用次数")
    private String count;//调用次数
    @ApiModelProperty("失败率")
    private String failureRate;//失败率
    public String getInterfaceName() {
        return interfaceName;
    }
    public void setInterfaceName(String interfaceName) {
        this.interfaceName = interfaceName;
    }
    public String getMethod() {
        return method;
    }
    public void setMethod(String method) {
        this.method = method;
    }
    public String getWorkType() {
        return workType;
    }
    public void setWorkType(String workType) {
        this.workType = workType;
    }
    public String getExplanation() {
        return explanation;
    }
    public void setExplanation(String explanation) {
        this.explanation = explanation;
    }
    public String getAddressIp() {
        return addressIp;
    }
    public void setAddressIp(String addressIp) {
        this.addressIp = addressIp;
    }
    public int getState() {
        return state;
    }
    public void setState(int state) {
        this.state = state;
    }
    public Date getTime() {
        return time;
    }
    public void setTime(Date time) {
        this.time = time;
    }
    public String getAppName() {
        return appName;
    }
    public void setAppName(String appName) {
        this.appName = appName;
    }
    public String getCount() {
        return count;
    }
    public void setCount(String count) {
        this.count = count;
    }
    public String getFailureRate() {
        return failureRate;
    }
    public void setFailureRate(String failureRate) {
        this.failureRate = failureRate;
    }
}

+ 36 - 8
svr/svr-internet-hospital-entrance/src/main/java/com/yihu/jw/entrance/controller/YkyyController.java

@ -14,10 +14,12 @@ import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.StringUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.axis.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -65,15 +67,31 @@ public class YkyyController extends EnvelopRestEndpoint {
        return success(ykyyEntranceService.createSQLQuery(sql,params,page,size));
    }
    @GetMapping(value = "/jdbcSQLQuery")
    @ApiOperation(value = "视图统一查询")
    public ListEnvelop jdbcSQLQuery(@ApiParam(name = "sql", value = "sql语句", required = true)
                                      @RequestParam(value = "sql",required = true)String sql){
        return success(ykyyEntranceService.jdbcSQLQuery(sql));
    }
    @GetMapping(value = "/update")
    @ApiOperation(value = "更新支付")
    public ObjEnvelop udapte(@ApiParam(name = "id", value = "sql语句", required = true)
                                      @RequestParam(value = "id",required = true)String id,
                                      @ApiParam(name = "status", value = "状态", required = true)
                                      @RequestParam(value = "status",required = false)Integer status){
    public ObjEnvelop udapte(@ApiParam(name = "json", value = "json", required = true)
                                 @RequestParam(value = "json",required = true)String json,
                             @ApiParam(name = "table", value = "table", required = true)
                                 @RequestParam(value = "table",required = true)String table){
        ObjEnvelop envelop = new ObjEnvelop();
        ykyyEntranceService.update(id,status);
        JSONObject object = JSONObject.parseObject(json);
        if (table.equalsIgnoreCase("HLW_CF01")){
            HlwCf01DO hlwCf01VO =  JSONObject.toJavaObject(object,HlwCf01DO.class);
            ykyyEntranceService.update(hlwCf01VO);
            envelop.setObj(hlwCf01VO);
        } else if (table.equalsIgnoreCase("HLW_CF02")) {
            HlwCf02DO hlwCf02VO =  JSONObject.toJavaObject(object,HlwCf02DO.class);
            ykyyEntranceService.update(hlwCf02VO);
            envelop.setObj(hlwCf02VO);
        }
        return success(envelop);
    }
@ -122,11 +140,21 @@ public class YkyyController extends EnvelopRestEndpoint {
            ykyyEntranceService.save(hlwCf01VO);
            envelop.setObj(object1);
        }else if (table.equalsIgnoreCase("HLW_CF02")){
            HlwCf02DO hlwCf01VO =  JSONObject.toJavaObject(object,HlwCf02DO.class);
            ykyyEntranceService.save(hlwCf01VO);
            HlwCf02DO hlwCf02VO =  JSONObject.toJavaObject(object,HlwCf02DO.class);
            String sbxhSql =" select dqz + 1 as \"total\"  from portal_his.gy_identity_ms@xec_link where bmc = 'MS_CF02'";
            List<Map<String,Object>> sbxhList = hibenateUtils.createSQLQuery(sbxhSql);
            Long sbxh = 0L;
            if (sbxhList!=null&&sbxhList.size()!=0){
                sbxh = Long.parseLong(sbxhList.get(0).get("total").toString());
            }
            JSONObject object1 = new JSONObject();
            object1.put("sbxh",sbxh);
            envelop.setObj(object1);
            hlwCf02VO.setSBXH(sbxh.intValue());
            ykyyEntranceService.save(hlwCf02VO);
        }
        return success(envelop);
        return envelop;
    }
    
    @GetMapping(value = "/getUpcomingByDoctor")

+ 7 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/base/BaseInfoEndpoint.java

@ -206,6 +206,13 @@ public class BaseInfoEndpoint extends EnvelopRestEndpoint {
    public Envelop findPatientByMapingCode(String code) throws Exception {
        return success(ykyyEntranceService.findPatientByMapingCode(code));
    }
    @GetMapping(value = "/updateYkTDoctor")
    @ApiOperation(value = "同步眼科通医生信息", notes = "同步眼科通医生信息")
    public Envelop updateYkTDoctor() throws Exception {
        return success(ykyyEntranceService.updateYkTDoctor());
    }
//    @GetMapping(value = "/test")
//    @ApiOperation(value = "test", notes = "test")
//    public Envelop test() throws Exception {

+ 1 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/PatientConsultEndpoint.java

@ -427,6 +427,7 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
				if (wxId.equalsIgnoreCase("xm_ykyy_wx")){
					BusinessOrderDO businessOrderDO = new BusinessOrderDO();
					businessOrderDO.setDoctor(doctor);
					businessOrderDO.setRematk(symptoms);
					businessOrderDO.setPatient(patient);
					businessOrderDO.setPatientName(re.getString("patientName"));
					businessOrderDO.setDescription("专家咨询费");

+ 3 - 5
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/patient/PatientNoLoginEndPoint.java

@ -221,7 +221,7 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
            Integer zjqzCount = imService.sessionCountByType(doctor.getId(),15,0);
    
            //专家咨询
            Integer unreadMessageCount = imService.SessionsUnreadMessageCount(doctor.getId(),1);
            Integer unreadMessageCount = imService.SessionsUnreadMessageCount(doctor.getId(),"1");
            result.put("zjCount",zjCount+zjqzCount);//专家咨询数量
            result.put("zjUnreadMessageCount",unreadMessageCount);//专家咨询未读数
        }else{
@ -246,10 +246,8 @@ public class PatientNoLoginEndPoint extends EnvelopRestEndpoint {
        }
    
        //医生咨询
        Integer unreadMessageCount = imService.SessionsUnreadMessageCount(doctor.getId(),1);
        result.put("zxCount",unreadMessageCount);//咨询数量
        result.put("fzCount",prescriptionService.getWaitVideoCount(doctor.getId(),"1","1"));//图文复诊数量
        result.put("zxCount",imService.SessionsUnreadMessageCount(doctor.getId(),"1"));//专家咨询咨询数量
        result.put("fzCount",imService.SessionsUnreadMessageCount(doctor.getId(),"9"));//图文复诊数量
        return success("请求成功",result);
    }

+ 22 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/ykyy/YkyyController.java

@ -76,6 +76,28 @@ public class YkyyController extends EnvelopRestEndpoint {
    }
    /**
     * 眼科通登录接口
     *
     * @param tel
     * @param password
     * @return
     */
    @GetMapping(value = "/yktLogin")
    @ApiOperation(value = "眼科通登录接口")
    public ObjEnvelop yktLogin(@ApiParam(name = "tel", value = "电话号码", required = true)
                                @RequestParam(value = "tel",required = true)String tel,
                                @ApiParam(name = "password", value = "", required = true)
                                @RequestParam(value = "password",required = false)String password){
        try {
            return ObjEnvelop.getSuccess("ok",ykyyService.yktLogin(tel,password));
        } catch (Exception e) {
            return ObjEnvelop.getError(e.getMessage());
        }
    }
    /**
     * 创建订单
     * @param json

+ 74 - 8
svr/svr-iot/src/main/java/com/yihu/iot/controller/platform/IotInterfaceController.java

@ -1,9 +1,9 @@
package com.yihu.iot.controller.platform;
import com.alibaba.fastjson.JSONObject;
import com.yihu.iot.service.platform.IotInterfaceLogService;
import com.yihu.iot.service.platform.IotShareInterfaceService;
import com.yihu.jw.entity.iot.platform.IotShareInterfaceDO;
import com.yihu.jw.restmodel.iot.company.IotCompanyVO;
import com.yihu.jw.restmodel.iot.platform.IotInterfaceLogVO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.iot.IotRequestMapping;
@ -11,12 +11,7 @@ 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.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import org.springframework.web.bind.annotation.*;
/**
 * @author HZY
@ -31,6 +26,10 @@ public class IotInterfaceController extends EnvelopRestEndpoint {
    @Autowired
    private IotShareInterfaceService iotShareInterfaceService;
    @Autowired
    private IotInterfaceLogService iotInterfaceLogService;
    @PostMapping(value = IotRequestMapping.Platform.addInterface)
    @ApiOperation(value = "新增共享接口",notes = "新增共享接口")
    public MixEnvelop<IotShareInterfaceDO,IotShareInterfaceDO> addInterface(@ApiParam(name = "JSON",value = "接口JSON串") @RequestParam(value = "JSON",required = true)String json){
@ -97,6 +96,24 @@ public class IotInterfaceController extends EnvelopRestEndpoint {
    }
    @GetMapping(value = IotRequestMapping.Platform.delete)
    @ApiOperation(value = "根据ID删除共享接口",notes = "根据ID删除共享接口")
    public MixEnvelop<IotShareInterfaceDO,IotShareInterfaceDO> deleteById(@ApiParam(name = "id", value = "ID", defaultValue = "")
                                                                       @RequestParam(value = "id", required = false) String id){
        try {
            iotShareInterfaceService.deleteById(id);
            return MixEnvelop.getSuccess(IotRequestMapping.Platform.message_success_delete);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.Platform.conditionQueryPage)
    @ApiOperation(value = "条件查询分页",notes = "条件查询分页")
    public MixEnvelop<IotShareInterfaceDO,IotShareInterfaceDO> conditionQueryPage(@ApiParam(name = "type", value = "业务类型", defaultValue = "")
@ -123,4 +140,53 @@ public class IotInterfaceController extends EnvelopRestEndpoint {
    }
    @GetMapping(value = IotRequestMapping.Platform.findAllLog)
    @ApiOperation(value = "分页查询所有接口日志信息",notes = "分页查询所有接口日志信息")
    public MixEnvelop<IotInterfaceLogVO,IotInterfaceLogVO> findAllLog(@ApiParam(name = "page", value = "第几页", defaultValue = "")
                                                                       @RequestParam(value = "page", required = false) Integer page,
                                                                        @ApiParam(name = "size", value = "每页记录数", defaultValue = "")
                                                                       @RequestParam(value = "size", required = false) Integer size){
        try {
            if(page == null|| page < 0){
                page = 1;
            }
            if(size == null){
                size = 10;
            }
            return iotInterfaceLogService.findAll(page,size);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.Platform.dataConsumption)
    @ApiOperation(value = "接口数据消费分页查询",notes = "接口数据消费分页查询")
    public MixEnvelop<IotInterfaceLogVO,IotInterfaceLogVO> dataConsumption(@ApiParam(name = "page", value = "第几页", defaultValue = "")
                                                                      @RequestParam(value = "page", required = false) Integer page,
                                                                      @ApiParam(name = "size", value = "每页记录数", defaultValue = "")
                                                                      @RequestParam(value = "size", required = false) Integer size){
        try {
            if(page == null|| page < 0){
                page = 1;
            }
            if(size == null){
                size = 10;
            }
            return iotInterfaceLogService.dataConsumption(page,size);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
}

+ 88 - 0
svr/svr-iot/src/main/java/com/yihu/iot/controller/workType/IotWorkTypeController.java

@ -0,0 +1,88 @@
package com.yihu.iot.controller.workType;
import com.yihu.iot.service.workType.IotWorkTypeService;
import com.yihu.jw.entity.iot.workType.IotWorkTypeDO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.iot.IotRequestMapping;
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.*;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2020/4/29
 */
@RestController
@RequestMapping(IotRequestMapping.Common.workType)
@Api(tags = "业务类型管理相关操作", description = "业务类型管理相关操作")
public class IotWorkTypeController extends EnvelopRestEndpoint {
    @Autowired
    private IotWorkTypeService iotWorkTypeService;
    @PostMapping(value = IotRequestMapping.WorkType.addType)
    @ApiOperation(value = "添加业务类型",notes = "添加业务类型")
    public MixEnvelop<IotWorkTypeDO,IotWorkTypeDO> addType(@ApiParam(name = "JSON",value = "JSON串")
                                                           @RequestParam(value = "JSON",required = true)String json){
        try {
            iotWorkTypeService.addType(json);
            return MixEnvelop.getSuccess(IotRequestMapping.WorkType.message_success_add);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = IotRequestMapping.WorkType.editType)
    @ApiOperation(value = "编辑业务类型",notes = "编辑业务类型")
    public MixEnvelop<IotWorkTypeDO,IotWorkTypeDO> editType(@ApiParam(name = "JSON",value = "JSON串")
                                                            @RequestParam(value = "JSON",required = true)String json){
        try {
            iotWorkTypeService.editType(json);
            return MixEnvelop.getSuccess(IotRequestMapping.WorkType.message_success_edit);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.WorkType.deleteType)
    @ApiOperation(value = "根据ID删除业务类型",notes = "根据ID删除业务类型")
    public MixEnvelop<IotWorkTypeDO,IotWorkTypeDO> deleteType(@ApiParam(name = "id",value = "ID")
                                                              @RequestParam(value = "id",required = true)String id){
        try {
            iotWorkTypeService.deleteType(id);
            return MixEnvelop.getSuccess(IotRequestMapping.WorkType.message_success_delete);
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @GetMapping(value = IotRequestMapping.WorkType.findType)
    @ApiOperation(value = "根据ID查找业务类型",notes = "根据ID查找业务类型")
    public MixEnvelop<IotWorkTypeDO,IotWorkTypeDO> findType(@ApiParam(name = "id",value = "ID")
                                                            @RequestParam(value = "id",required = true)String id){
        try {
            return MixEnvelop.getSuccess(IotRequestMapping.WorkType.message_success_find, iotWorkTypeService.findType(id));
        } catch (Exception e) {
            e.printStackTrace();
            return MixEnvelop.getError(e.getMessage());
        }
    }
}

+ 13 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/IotInterfaceLogDao.java

@ -0,0 +1,13 @@
package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.platform.IotInterfaceLogDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2020/4/28
 */
public interface IotInterfaceLogDao extends PagingAndSortingRepository<IotInterfaceLogDO,String>, JpaSpecificationExecutor<IotInterfaceLogDO> {
}

+ 3 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/IotShareInterfaceDao.java

@ -2,6 +2,7 @@ package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.platform.IotShareInterfaceDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
@ -11,4 +12,6 @@ import org.springframework.data.repository.PagingAndSortingRepository;
 */
public interface IotShareInterfaceDao extends PagingAndSortingRepository<IotShareInterfaceDO,String>, JpaSpecificationExecutor<IotShareInterfaceDO> {
    @Query("from IotShareInterfaceDO w where w.id =?1 and w.del=0")
    IotShareInterfaceDO findById(String id);
}

+ 19 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/workType/IotWorkTypeDao.java

@ -0,0 +1,19 @@
package com.yihu.iot.dao.workType;
import com.yihu.jw.entity.iot.platform.IotInterfaceLogDO;
import com.yihu.jw.entity.iot.workType.IotWorkTypeDO;
import org.springframework.data.jpa.mapping.JpaPersistentEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2020/4/29
 */
public interface IotWorkTypeDao extends PagingAndSortingRepository<IotWorkTypeDO,String>, JpaSpecificationExecutor<IotWorkTypeDO> {
    @Query("from IotWorkTypeDO w where w.id=?1 and w.del=0")
    IotWorkTypeDO findById(String id);
}

+ 131 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/platform/IotInterfaceLogService.java

@ -0,0 +1,131 @@
package com.yihu.iot.service.platform;
import com.sun.org.apache.bcel.internal.generic.NEW;
import com.yihu.iot.dao.platform.IotInterfaceLogDao;
import com.yihu.iot.service.useragent.UserAgent;
import com.yihu.jw.entity.iot.company.IotCompanyDO;
import com.yihu.jw.entity.iot.platform.IotInterfaceLogDO;
import com.yihu.jw.restmodel.iot.platform.IotInterfaceLogVO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.iot.IotRequestMapping;
import com.yihu.mysql.query.BaseJpaService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import javax.swing.plaf.PanelUI;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2020/4/28
 */
@Service
public class IotInterfaceLogService extends BaseJpaService<IotInterfaceLogDO,IotInterfaceLogDao> {
    private static final Logger logger = LoggerFactory.getLogger(IotInterfaceLogService.class);
    @Autowired
    private IotInterfaceLogDao iotInterfaceLogDao;
    @Autowired
    private UserAgent userAgent;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    /**
     * 分页查询日志信息
     * @param page
     * @param size
     * @return
     * @throws ParseException
     */
    public MixEnvelop<IotInterfaceLogVO,IotInterfaceLogVO> findAll(Integer page, Integer size) throws ParseException {
        String sql = "select * from iot_interface_log where 1=1;";
        String sorts = "-updateTime";//按更新时间降序
//        List<IotInterfaceLogDO> list = search(null, filters, sorts, page, size);
        List<IotInterfaceLogDO> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper(IotInterfaceLogDO.class));
        ArrayList<IotInterfaceLogVO> resultList = new ArrayList<>();
        list.forEach(one->{
            IotInterfaceLogVO target = new IotInterfaceLogVO();
            BeanUtils.copyProperties(one,target);
            resultList.add(target);
        });
        long count =list.size();
        return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Platform.message_success_find,resultList,page, size,count);
    }
    /**
     * 分页查询接口调用信息
     * @param page
     * @param size
     * @return
     */
    public MixEnvelop<IotInterfaceLogVO,IotInterfaceLogVO> dataConsumption(Integer page,Integer size){
        String sqlTotal="SELECT COUNT(id) num,app_name,interface_name,work_type FROM iot_interface_log GROUP BY app_name,interface_name;";
        String sql="SELECT COUNT(id) num,app_name,interface_name,work_type FROM iot_interface_log  WHERE state=0 GROUP BY app_name,interface_name;";
        List<IotInterfaceLogVO> list = new ArrayList<>();
        List<Map<String, Object>> total = jdbcTemplate.queryForList(sqlTotal);
        List<Map<String, Object>> failCount = jdbcTemplate.queryForList(sql);
        total.forEach(one->{
            IotInterfaceLogVO iotInterfaceLogVO = new IotInterfaceLogVO();
            iotInterfaceLogVO.setAppName(one.get("app_name").toString());
            iotInterfaceLogVO.setInterfaceName(one.get("interface_name").toString());
            iotInterfaceLogVO.setWorkType(one.get("work_type").toString());
            iotInterfaceLogVO.setCount(one.get("num").toString());
            list.add(iotInterfaceLogVO);
        });
        Long totalCount = (long) list.size();
        if (failCount==null){
            list.forEach(one->{
                one.setFailureRate("0.00");
            });
            return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Platform.message_success_find,list,page, size,totalCount);
        }
        list.forEach(iotInterfaceLogVO->{
            failCount.forEach(one->{
                if(iotInterfaceLogVO.getAppName().equalsIgnoreCase(one.get("app_name").toString())
                        && iotInterfaceLogVO.getInterfaceName().equalsIgnoreCase(one.get("interface_name").toString()) ){
                    String num = one.get("num").toString();
                    Double value = Double.valueOf(num);
                    String count = iotInterfaceLogVO.getCount();
                    Double all = Double.valueOf(count);
                    DecimalFormat df=new DecimalFormat("0.00");//设置保留位数
                    String format = df.format(value / all);
                    iotInterfaceLogVO.setFailureRate(format);
                }
            });
        });
        return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Platform.message_success_find,list,page, size,totalCount);
    }
}

+ 13 - 3
svr/svr-iot/src/main/java/com/yihu/iot/service/platform/IotShareInterfaceService.java

@ -69,9 +69,9 @@ public class IotShareInterfaceService extends BaseJpaService<IotShareInterfaceDO
     * @param id
     * @return
     */
    public IotShareInterfaceDO findInterfaceById(String id) throws ParseException {
    public IotShareInterfaceDO findInterfaceById(String id) {
        IotShareInterfaceDO iotShareInterfaceDO = iotShareInterfaceDao.findOne(id);
        IotShareInterfaceDO iotShareInterfaceDO = iotShareInterfaceDao.findById(id);
        return iotShareInterfaceDO;
    }
@ -95,7 +95,7 @@ public class IotShareInterfaceService extends BaseJpaService<IotShareInterfaceDO
    }
    /**
     * 分页查询所有
     * 条件分页查询所有
     * @param page
     * @param size
     * @param type
@ -125,4 +125,14 @@ public class IotShareInterfaceService extends BaseJpaService<IotShareInterfaceDO
        return MixEnvelop.getSuccessListWithPage(IotRequestMapping.Company.message_success_find_functions,list, page, size,count);
    }
    /**
     * 根据ID删除共享接口
     * @param id
     * @return
     */
    public void deleteById(String id) {
        IotShareInterfaceDO shareInterfaceDO = iotShareInterfaceDao.findById(id);
        shareInterfaceDO.setDel("1");
        iotShareInterfaceDao.save(shareInterfaceDO);
    }
}

+ 1 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/product/IotProductBaseInfoService.java

@ -176,6 +176,7 @@ public class IotProductBaseInfoService extends BaseJpaService<IotProductBaseInfo
        baseInfoDOOld.setUnit(baseInfoDO.getUnit());
        baseInfoDOOld.setPurchasePrice(baseInfoDO.getPurchasePrice());
        baseInfoDOOld.setRetailPrice(baseInfoDO.getRetailPrice());
        baseInfoDOOld.setCategoryName(baseInfoDO.getCategoryName());
        baseInfoDOOld.setCategoryCode(baseInfoDO.getCategoryCode());
        baseInfoDOOld.setSaasId(getCode());
        baseInfoDOOld.setId(baseInfoDO.getId());

+ 73 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/workType/IotWorkTypeService.java

@ -0,0 +1,73 @@
package com.yihu.iot.service.workType;
import com.alibaba.fastjson.JSONObject;
import com.yihu.iot.dao.workType.IotWorkTypeDao;
import com.yihu.jw.entity.iot.workType.IotWorkTypeDO;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * @author HZY
 * @vsrsion 1.0
 * Created at 2020/4/29
 */
@Service
@Transactional(rollbackFor = Exception.class)
public class IotWorkTypeService extends BaseJpaService<IotWorkTypeDO, IotWorkTypeDao> {
    
    @Autowired
    private IotWorkTypeDao iotWorkTypeDao;
    /**
     * 增加业务类型
     * @param json
     */
    public void addType(String json) {
        IotWorkTypeDO iotWorkTypeDO = JSONObject.parseObject(json, IotWorkTypeDO.class);
        iotWorkTypeDO.setDel("0");
        iotWorkTypeDao.save(iotWorkTypeDO);
    }
    /**
     * 编辑业务类型
     * @param json
     */
    public void editType(String json) {
        IotWorkTypeDO newType = JSONObject.parseObject(json, IotWorkTypeDO.class);
        IotWorkTypeDO old = iotWorkTypeDao.findOne(newType.getId());
        old.setName(newType.getName());
        old.setExplanation(newType.getExplanation());
        old.setDel("0");
        old.setId(old.getId());
        iotWorkTypeDao.save(old);
    }
    /**
     * 根据ID删除业务类型
     * @param id
     */
    public void deleteType(String id) {
        IotWorkTypeDO type = iotWorkTypeDao.findOne(id);
        if(type.getDel().equalsIgnoreCase("1")){
            throw new RuntimeException("改类型已删除,请勿重复操作");
        }
        type.setDel("1");
        iotWorkTypeDao.save(type);
    }
    /**
     * 根据ID查找业务类型
     * @param id
     */
    public IotWorkTypeDO findType(String id) {
        IotWorkTypeDO type = iotWorkTypeDao.findById(id);
        if(type==null){
            throw  new RuntimeException("无该类型");
        }
        return type;
    }
}