Преглед изворни кода

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

# Conflicts:
#	business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
wangzhinan пре 4 година
родитељ
комит
6044e5715d

+ 1 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/doctor/dao/DoctorWorkTimeDao.java

@ -16,7 +16,7 @@ public interface DoctorWorkTimeDao extends PagingAndSortingRepository<WlyyDoctor
    @Query("from WlyyDoctorWorkTimeDO a where a.doctor = ?1 and a.endTime > ?2 and a.endTime < ?3 order by a.startTime asc")
    List<WlyyDoctorWorkTimeDO> findDoctorWorkTime(String doctor, Date startTime, Date endTime);
    @Query("from WlyyDoctorWorkTimeDO a where a.doctor = ?1 and a.date like ?2 order by a.startTime asc")
    @Query("from WlyyDoctorWorkTimeDO a where a.doctor = ?1 and a.c and a.date like ?2 order by a.startTime asc")
    List<WlyyDoctorWorkTimeDO> findDoctorWorkTimeByMonth(String doctor, String date);
    @Query("from WlyyDoctorWorkTimeDO a where a.doctor = ?1 and a.startTime >= ?2 and a.startTime <= ?3 order by a.startTime asc")

+ 136 - 6
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -3162,13 +3162,22 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            //机构科室信息
            List<BaseDoctorHospitalDO> hospitalDOs =  baseDoctorHospitalDao.findByDoctorCode(doctorDO.getId());
            if(hospitalDOs!=null&&hospitalDOs.size()>0){
                rs.put("hospital",hospitalDOs.get(0));
                BaseOrgDO org = baseOrgDao.findByCode(hospitalDOs.get(0).getOrgCode());
            List<BaseDoctorHospitalDO> hospitalDOList = new ArrayList<>();
            for (BaseDoctorHospitalDO doctorHospitalDO:hospitalDOs){
                String orgCode = doctorHospitalDO.getOrgCode();
                BaseOrgDO org = baseOrgDao.findByCode(orgCode);
                if (org!=null){
                    doctorHospitalDO.setWinNo(org.getWinNo());
                    hospitalDOList.add(doctorHospitalDO);
                }
            }
            if(hospitalDOList!=null&&hospitalDOList.size()>0){
                rs.put("hospital",hospitalDOList.get(0));
                BaseOrgDO org = baseOrgDao.findByCode(hospitalDOList.get(0).getOrgCode());
                if(org!=null){
                    rs.put("winNo",org.getWinNo());
                    rs.put("deptName",hospitalDOs.get(0).getDeptName());
                    rs.put("deptCode",hospitalDOs.get(0).getDeptCode());
                    rs.put("deptName",hospitalDOList.get(0).getDeptName());
                    rs.put("deptCode",hospitalDOList.get(0).getDeptCode());
                }
            }else{
                rs.put("hospital",null);
@ -3177,8 +3186,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                rs.put("deptCode",null);
            }
            //多科室兼容
            rs.put("hospitalList",hospitalDOs);
            rs.put("hospitalList",hospitalDOList);
            //医生角色
@ -4079,6 +4089,102 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        return true;
    }
    /**
     * 医生自主保存排班
     * @param codes
     * @param workTimeJson
     * @return
     * @throws Exception
     */
    public Boolean doctorSaveWorkTimeJson(String codes,String workTimeJson,String date)throws Exception{
        com.alibaba.fastjson.JSONArray works = JSON.parseArray(workTimeJson);
        List<WlyyDoctorWorkTimeDO> wlyyDoctorWorkTimeDOs = new ArrayList<>();
        for(int i=0;i<works.size();i++){
            com.alibaba.fastjson.JSONObject work = (com.alibaba.fastjson.JSONObject)works.get(i);
            WlyyDoctorWorkTimeDO timeDO = objectMapper.readValue(work.toJSONString(),WlyyDoctorWorkTimeDO.class);
            wlyyDoctorWorkTimeDOs.add(timeDO);
        }
        //医生自主排班
        String sql ="SELECT " +
                " DISTINCT " +
                " d.id AS \"id\", " +
                " d.name AS \"name\", " +
                " h.org_code AS \"org_code\", " +
                " h.org_name AS \"org_name\"" +
                " FROM " +
                " base_doctor d " +
                " JOIN base_doctor_hospital h ON d.id= h.doctor_code " +
                " WHERE  " +
                " d.id in ("+sqlCode(codes)+")";
        List<Map<String,Object>> doctors = jdbcTemplate.queryForList(sql);
        List<WlyyDoctorWorkTimeDO> workTimeDOs =makeDoctorWorkTimeDOList(doctors,wlyyDoctorWorkTimeDOs);
        doctorSaveWorkTime(workTimeDOs,date,doctors);
        return true;
    }
    /**
     * 医生自主编辑排班
     *
     * @param workTimeJson
     * @param codes
     * @return
     * @throws Exception
     */
    public Boolean doctorUpdateWorkTimeJson(String workTimeJson,String codes)throws Exception{
        com.alibaba.fastjson.JSONArray works = JSON.parseArray(workTimeJson);
        List<WlyyDoctorWorkTimeDO> wlyyDoctorWorkTimeDOs = new ArrayList<>();
        for(int i=0;i<works.size();i++){
            com.alibaba.fastjson.JSONObject work = (com.alibaba.fastjson.JSONObject)works.get(i);
            WlyyDoctorWorkTimeDO timeDO = objectMapper.readValue(work.toJSONString(),WlyyDoctorWorkTimeDO.class);
            wlyyDoctorWorkTimeDOs.add(timeDO);
        }
        //医生自主排班
        String sql ="SELECT " +
                " DISTINCT " +
                " d.id AS \"id\", " +
                " d.name AS \"name\", " +
                " h.org_code AS \"org_code\", " +
                " h.org_name AS \"org_name\"" +
                " FROM " +
                " base_doctor d " +
                " JOIN base_doctor_hospital h ON d.id= h.doctor_code " +
                " WHERE  " +
                " d.id in ("+sqlCode(codes)+")";
        List<Map<String,Object>> doctors = jdbcTemplate.queryForList(sql);
        List<WlyyDoctorWorkTimeDO> workTimeDOs =makeDoctorWorkTimeDOList(doctors,wlyyDoctorWorkTimeDOs);
        for (WlyyDoctorWorkTimeDO workTimeDO:workTimeDOs){
            List<WlyyDoctorWorkTimeDO> workTimeDOList = doctorWorkTimeDao.findDoctorWorkTime(workTimeDO.getDoctor(),workTimeDO.getStartTime(),workTimeDO.getEndTime());
            if (workTimeDOList!=null&&workTimeDOList.size()!=0){
                try {
                    throw new Exception("当前已排过班");
                } catch (Exception e) {
                    e.printStackTrace();
                    return false;
                }
            }else {
                doctorWorkTimeDao.save(workTimeDO);
            }
        }
        return true;
    }
    /**
     * 医生自主删除排班
     *
     * @param code
     * @return
     * @throws Exception
     */
    public Boolean deleteWorkTime(String code)throws Exception{
        doctorWorkTimeDao.delete(code);
        return true;
    }
    public String sqlCode(String codes){
        String code[] = codes.split(",");
        String rs = "";
@ -4113,6 +4219,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                    t.setSourceNumber(time.getSourceNumber());
                    t.setCreateUser(time.getCreateUser());
                    t.setCreateUserType(time.getCreateUserType());
                    t.setId(time.getId());
                    rs.add(t);
                }
                logger.info(rs.size()+"");
@ -4158,6 +4265,29 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        return true;
    }
    /**
     * 更新医生
     * @param workTimeDOs
     * @return
     */
    public boolean doctorSaveWorkTime(List<WlyyDoctorWorkTimeDO> workTimeDOs,String date,List<Map<String,Object>> doctors){
        for (WlyyDoctorWorkTimeDO workTimeDO:workTimeDOs){
            List<WlyyDoctorWorkTimeDO> workTimeDOList = doctorWorkTimeDao.findDoctorWorkTime(workTimeDO.getDoctor(),workTimeDO.getStartTime(),workTimeDO.getEndTime());
            if (workTimeDOList!=null&&workTimeDOList.size()!=0){
                try {
                    throw new Exception("当前已排过班");
                } catch (Exception e) {
                    e.printStackTrace();
                    return false;
                }
            }else {
                doctorWorkTimeDao.save(workTimeDO);
            }
        }
        return true;
    }
    /**
     * 查询某个医生某个月份排班记录
     * @param doctor

+ 16 - 4
common/common-entity/src/main/java/com/yihu/jw/entity/base/doctor/BaseDoctorHospitalDO.java

@ -1,10 +1,8 @@
package com.yihu.jw.entity.base.doctor;
import com.yihu.jw.entity.IntegerIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.*;
/**
@ -53,6 +51,12 @@ public class BaseDoctorHospitalDO extends IntegerIdentityEntity {
     */
    private String doctorDutyName;
    /**
     * 所在院部机构分部号,每个机构都不一样,例如中山医院:6总部7金榜8夏禾,眼科(0思北1五缘湾)
     */
    @Transient
    private String winNo;
    /**
	 * 作废标识,1正常,0作废
	 */
@ -132,4 +136,12 @@ public class BaseDoctorHospitalDO extends IntegerIdentityEntity {
    public void setDoctorDutyName(String doctorDutyName) {
        this.doctorDutyName = doctorDutyName;
    }
    public String getWinNo() {
        return winNo;
    }
    public void setWinNo(String winNo) {
        this.winNo = winNo;
    }
}

+ 15 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -249,6 +249,21 @@ public class BaseHospitalRequestMapping {
         */
        public static final String saveDoctorWorkTimeJson="/saveDoctorWorkTimeJson";
        /**
         * 医生自主排班
         */
        public static final String doctorSaveWorkTimeJson="/doctorSaveWorkTimeJson";
        /**
         * 医生自主删除排班
         */
        public static final String deleteWorkTime="/deleteWorkTime";
        /**
         * 医生自主编辑排班
         */
        public static final String updateWorkTime="/updateWorkTime";
        /**
         * 获取居民基础信息
         */

+ 28 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java

@ -624,7 +624,34 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
                                             @RequestParam(value = "date", required = false)String date)throws Exception {
        return success(prescriptionService.saveDoctorWorkTimeJson(type,codes,workTimeJson,date));
    }
    
    @PostMapping(value = BaseHospitalRequestMapping.Prescription.doctorSaveWorkTimeJson)
    @ApiOperation(value = "医生自主排班保存接口", notes = "医生自主排班保存接口")
    public ObjEnvelop doctorSaveWorkTimeJson(@ApiParam(name = "codes", value = "医生code,‘,’分割")
                                             @RequestParam(value = "codes", required = true)String codes,
                                             @ApiParam(name = "workTimeJson", value = "排班列表json")
                                             @RequestParam(value = "workTimeJson", required = true)String workTimeJson,
                                             @ApiParam(name = "date", value = "yyyy-MM,支持‘,’分割")
                                             @RequestParam(value = "date", required = false)String date)throws Exception {
        return success(prescriptionService.doctorSaveWorkTimeJson(codes,workTimeJson,date));
    }
    @PostMapping(value = BaseHospitalRequestMapping.Prescription.updateWorkTime)
    @ApiOperation(value = "医生自主排班编辑接口", notes = "医生自主排班编辑接口")
    public ObjEnvelop doctorSaveWorkTimeJson(@ApiParam(name = "workTimeJson", value = "排班列表json")
                                             @RequestParam(value = "workTimeJson", required = true)String workTimeJson,
                                             @ApiParam(name = "codes", value = "医生code,‘,’分割")
                                             @RequestParam(value = "codes", required = true)String codes)throws Exception {
        return success(prescriptionService.doctorUpdateWorkTimeJson(workTimeJson,codes));
    }
    @PostMapping(value = BaseHospitalRequestMapping.Prescription.deleteWorkTime)
    @ApiOperation(value = "医生自主排班删除接口", notes = "医生自主排班删除接口")
    public ObjEnvelop deleteWorkTime(@ApiParam(name = "code", value = "排班id")
                                             @RequestParam(value = "code", required = true)String code)throws Exception {
        return success(prescriptionService.deleteWorkTime(code));
    }
    @PostMapping(value = "test")
    @ApiOperation(value = "test", notes = "test")
    public Envelop test()throws Exception {