Bladeren bron

Merge branch 'dev' of wujunjie/patient-co-management into dev

huangwenjie 7 jaren geleden
bovenliggende
commit
db6173cc70
15 gewijzigde bestanden met toevoegingen van 552 en 229 verwijderingen
  1. 211 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/user/ManageRangeController.java
  2. 11 7
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/repository/DoctorDao.java
  3. 42 40
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/user/ManageRangeService.java
  4. 13 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/basedata/basedata_list.jsp
  5. 40 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/basedata/basedata_list_js.jsp
  6. 3 0
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/main.jsp
  7. 2 2
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/range/user_role_add.jsp
  8. 107 19
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/range/user_role_add_js.jsp
  9. 1 1
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/range/user_role_list.jsp
  10. 21 20
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/range/user_role_list_js.jsp
  11. 20 15
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/range/user_role_modify.jsp
  12. 72 108
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/range/user_role_modify_js.jsp
  13. 0 1
      patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/user_modify_js.jsp
  14. 1 0
      patient-co-manage/wlyy-manage/src/main/webapp/static/js/menu.js
  15. 8 16
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/template/DoctorFeldsherTemplateService.java

+ 211 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/user/ManageRangeController.java

@ -0,0 +1,211 @@
package com.yihu.wlyy.controller.manager.user;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.wlyy.controller.BaseController;
import com.yihu.wlyy.entity.Doctor;
import com.yihu.wlyy.entity.User;
import com.yihu.wlyy.entity.WlyyRole;
import com.yihu.wlyy.service.manager.user.ManageRangeService;
import com.yihu.wlyy.service.manager.user.UserService;
import com.yihu.wlyy.util.MD5;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * Created by Reece on 2018/1/16.
 */
@Controller
@RequestMapping(value = "admin/range")
@Api(description = "管理端医生管理")
public class ManageRangeController extends BaseController {
    @Autowired
    private ManageRangeService rangeService;
    /**
     * 初始化及关键字搜索列表页
     * @return 返回列表页路径
     */
    @RequestMapping(value = "initial", method = RequestMethod.GET)
    public String listPageInit(){
        return "user/range/user_role_list";
    }
    /**
     *新增时跳转到新增页面
     * @return 编辑页面路径
     */
    @RequestMapping(value = "infoInit",method = RequestMethod.GET)
    public String addPageInit(){
        return "user/range/user_role_add";
    }
    /**
     * 查看和编辑时带参页面跳转
     * @param doc 医生code
     * @param mode
     * @return
     */
    @RequestMapping(value = "editInit",method = RequestMethod.GET)
    public String editPageInit(String doc,String hospital,String mode){
        request.setAttribute("doc",doc);
        request.setAttribute("hospital",hospital);
        request.setAttribute("mode",mode);
        return "user/range/user_role_modify";
    }
    /**
     * wlyy_user_role 列表展示及页面搜索医生信息
     * @param name
     * @param idcard
     * @param page
     * @param pageSize
     * @return
     */
    @RequestMapping(value = "userRoleList")
    @ResponseBody
    public String searchList(
            @RequestParam(value = "name",required = false) String name,
            @RequestParam(value = "mobile",required = false) String idcard,
            @RequestParam(value= "page",required = false) Integer page,
            @RequestParam(value = "rows",required = false) Integer pageSize){
        try{
            Page<Doctor> userRoleList = rangeService.searchList(name, idcard, page, pageSize);
//            List<Doctor> countRoleList = rangeService.searchList(name, idcard);
            return write(200,"操作成功",page,pageSize,userRoleList);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    /**
     * 搜索新增的医生信息
     * @return
     */
    @RequestMapping(value = "doctorList")
    @ResponseBody
    public String getDoctorList(
            @RequestParam(value = "name",required = false) String name,
            @RequestParam(value = "mobile",required = false) String idcard,
            @RequestParam(value= "page",required = false) Integer page,
            @RequestParam(value = "rows",required = false) Integer pageSize){
        try{
            Page<Doctor> doctorList = rangeService.getDoctorList(name, idcard,page,pageSize);
            return write(200,"操作成功",page,pageSize,doctorList);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    /**
     * 查询所有的医院信息
     * @return
     */
    @RequestMapping(value = "hostpitalList")
    @ResponseBody
    public String getHostpitalList( ){
        try{
            List<WlyyRole> roles = rangeService.getHostpitalList();
            return write(200,"操作成功","data",roles);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    /**
     * 列表页根据医生code查询医生详情
     * @param doc 医生code
     * @param hospital 医院code
     * @return
     */
    @RequestMapping(value = "userRoleDetail")
    @ResponseBody
    public String getUserRole(
            @ApiParam(name = "doc", defaultValue = "2")
            @RequestParam(name = "doc", required = true) String doc,
            @ApiParam(name = "hospital", defaultValue = "350001")
            @RequestParam(name = "hospital", required = true) String hospital) {
        try{
            List<Doctor> doctor = rangeService.getUser(doc,hospital);
            return write(200,"操作成功","data",doctor);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    //删除医生在wlyy_user_role表的信息
    @RequestMapping(value = "delete")
    @ResponseBody
    public String deleteUserRole(String doc,String hospital){
        try{
            if (StringUtils.isEmpty(doc) || StringUtils.isEmpty(hospital)){
                return error(-1,"参数错误!");
            }
            rangeService.deleteUserRole(doc,hospital);
            return write(200,"操作成功!");
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    /**
     * 新增医生信息到wlyy_user_role
     * @param info 新增医生及医院 信息 {["doc": "新增医生code(批量添加逗号分隔)","hospital" : "新增医生权限code(批量添加逗号分隔)"],[]}
     * @return
     */
    @RequestMapping(value = "create")
    @ResponseBody
    public String createUserRole(String info){
        try{
            String result = rangeService.saveUserRole(info);
            return write(200,result);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    /**
     * 编辑医生相关信息
     * @param doc 编辑医生code(批量添加逗号分隔)
     * @param oldHospital 修改前的医生权限code
     * @param hospital 修改后的医生权限code
     * @return
     */
    @RequestMapping(value = "update")
    @ResponseBody
    public String updateUserRole(String doc,String oldHospital,String hospital){
        try{
            //先删除原信息在
            rangeService.updateUserRole(doc,oldHospital,hospital);
            return write(200,"操作成功!");
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
}

+ 11 - 7
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/repository/DoctorDao.java

@ -65,36 +65,40 @@ public interface DoctorDao extends PagingAndSortingRepository<Doctor, Long>, Jpa
    //搜索及列表查询
    @Query("SELECT p  FROM Doctor p, WlyyUserRole r, WlyyRole ro " +
            " WHERE r.user = p.code AND p.hospital = ro.code AND p.status = 1 AND p.name = ?1 AND p.idCard = ?2")
            " WHERE r.user = p.code AND r.role = ro.code AND p.status = 1 AND p.name = ?1 AND p.idCard = ?2")
    Page<Doctor> findByFilter(String name, String  idcard, Pageable pageable);
    //搜索及列表查询
    @Query("SELECT p  FROM Doctor p, WlyyUserRole r, WlyyRole ro " +
            " WHERE r.user = p.code AND p.hospital = ro.code AND p.status = 1 AND p.name = ?1 ")
            " WHERE r.user = p.code AND r.role = ro.code AND p.status = 1 AND p.name = ?1 ")
    Page<Doctor> findByName(String name, Pageable pageable);
    //搜索及列表查询
    @Query("SELECT p  FROM Doctor p, WlyyUserRole r, WlyyRole ro " +
            " WHERE r.user = p.code AND p.hospital = ro.code AND p.status = 1 AND p.idCard = ?1 ")
            " WHERE r.user = p.code AND r.role = ro.code AND p.status = 1 AND p.idCard = ?1 ")
    Page<Doctor> findByIdcard(String  idcard, Pageable pageable);
    //搜索及列表查询
    @Query("SELECT p  FROM Doctor p, WlyyUserRole r, WlyyRole ro " +
            " WHERE r.user = p.code AND p.hospital = ro.code AND p.status = 1 ")
            " WHERE r.user = p.code AND r.role = ro.code AND p.status = 1 ")
    Page<Doctor> findByAllFilter(Pageable pageable);
    //搜索及列表查询
    @Query("SELECT p FROM Doctor p where p.status= 1 ")
    Page<Doctor> findByFilterAll(Pageable pageable);
    //搜索及列表查询不在wlyy_user_role表的医生
    @Query(value = "SELECT p FROM Doctor p where p.status= 1 AND p.name = ?1 AND p.idCard = ?2 ")
    List<Doctor> findDoctorByFilter(String name, String  idcard);
    Page<Doctor> findDoctorByFilter(String name, String  idcard,Pageable pageable);
    //搜索及列表查询不在wlyy_user_role表的医生
    @Query(value = "SELECT p FROM Doctor p where p.status= 1 AND p.name = ?1 ")
    List<Doctor> findDoctorByName(String name);
    Page<Doctor> findDoctorByName(String name,Pageable pageable);
    //搜索及列表查询不在wlyy_user_role表的医生
    @Query(value = "SELECT p FROM Doctor p where p.status= 1 AND p.idCard = ?1 ")
    List<Doctor> findDoctorByIdcard(String  idcard);
    Page<Doctor> findDoctorByIdcard(String  idcard,Pageable pageable);
    //搜索及列表查询
    @Query("SELECT p  FROM Doctor p, WlyyUserRole r, WlyyRole ro " +

+ 42 - 40
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/user/ManageRangeService.java

@ -1,5 +1,8 @@
package com.yihu.wlyy.service.manager.user;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.wlyy.entity.*;
import com.yihu.wlyy.repository.*;
import com.yihu.wlyy.util.Envelop;
@ -47,7 +50,7 @@ public class ManageRangeService extends BaseJpaService<Doctor, DoctorDao> {
     * @return
     * @throws Exception
     */
    public List<Doctor> searchList(String name, String idcard, Integer page, Integer pageSize) throws Exception {
    public Page<Doctor> searchList(String name, String idcard, Integer page, Integer pageSize) throws Exception {
        if (page == null) {
            page = 1;
        }
@ -57,29 +60,17 @@ public class ManageRangeService extends BaseJpaService<Doctor, DoctorDao> {
        // 展示状态排序
        Sort sort = new Sort(Sort.Direction.ASC, "id");
        PageRequest pageRequest = new PageRequest(page - 1, pageSize, sort);
        List<Doctor> userList = null;
        Page<Doctor> userList = null;
        /*if (StringUtils.isNotEmpty(name) && StringUtils.isNotEmpty(idcard)) {
        if (StringUtils.isNotEmpty(name) && StringUtils.isNotEmpty(idcard)) {
            userList = doctorDao.findByFilter(name, idcard, pageRequest);
        } else if (StringUtils.isEmpty(name) && StringUtils.isNotEmpty(idcard)) {
            userList = doctorDao.findByIdcard(idcard, pageRequest);
        } else if (StringUtils.isNotEmpty(name) && StringUtils.isEmpty(idcard)) {
            userList = doctorDao.findByName(name, pageRequest);
        } else {
            userList = doctorDao.findByFilterAll(pageRequest);
        }*/
        String sql = "SELECT p.code,p.name,p.sex,p.idCard,p.mobile,ro.code hospital,ro.name hospitalName " +
                " FROM wlyy_doctor p, wlyy_user_role r, wlyy_role ro  " +
                " WHERE r.user = p.code AND r.role = ro.code AND p.status = 1 ";
        if (StringUtils.isNotEmpty(name) && StringUtils.isNotEmpty(idcard)) {
            sql += " AND p.name = " + name + " AND p.idcard = " + idcard;
        } else if (StringUtils.isEmpty(name) && StringUtils.isNotEmpty(idcard)) {
            sql += " AND p.idcard = " + idcard;;
        } else if (StringUtils.isNotEmpty(name) && StringUtils.isEmpty(idcard)) {
            sql += " AND p.name = " + name;
            userList = doctorDao.findByAllFilter(pageRequest);
        }
        sql += " ORDER BY p.id ASC  limit "+ (page-1) +"," +pageSize;
        userList = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(Doctor.class));
        return userList;
    }
@ -127,16 +118,18 @@ public class ManageRangeService extends BaseJpaService<Doctor, DoctorDao> {
     * @return
     * @throws Exception
     */
    public List<Doctor> getDoctorList(String name, String idcard) throws Exception {
    public Page<Doctor> getDoctorList(String name, String idcard,Integer page,Integer pageSize) throws Exception {
        // 展示状态排序
        List<Doctor> userList = null;
        Page<Doctor> userList = null;
        PageRequest request = new PageRequest(page-1,pageSize);
        if (StringUtils.isNotEmpty(name) && StringUtils.isNotEmpty(idcard)) {
            userList = doctorDao.findDoctorByFilter(name, idcard);
            userList = doctorDao.findDoctorByFilter(name, idcard,request);
        } else if (StringUtils.isEmpty(name) && StringUtils.isNotEmpty(idcard)) {
            userList = doctorDao.findDoctorByIdcard(idcard);
            userList = doctorDao.findDoctorByIdcard(idcard,request);
        } else if (StringUtils.isNotEmpty(name) && StringUtils.isEmpty(idcard)) {
            userList = doctorDao.findDoctorByName(name);
            userList = doctorDao.findDoctorByName(name,request);
        }else {
            userList = doctorDao.findByFilterAll(request);
        }
        return userList;
@ -162,29 +155,38 @@ public class ManageRangeService extends BaseJpaService<Doctor, DoctorDao> {
    }
    //保存先判断wlyy_role是否存在在新增
    public int saveUserRole(String doc, String hospital) throws Exception {
        int flag = 200;
    public String saveUserRole(String json) throws Exception {
        String msg = "";
        try {
            Doctor doctor = doctorDao.findByCode(doc);
            if (doctor != null) {
                WlyyUserRole wlyyUserRole = userRoleDao.findByUserAndRole(doc, hospital);
                if (wlyyUserRole == null) {
                    WlyyUserRole userRole = new WlyyUserRole();
                    userRole.setUser(doc);
                    userRole.setRole(hospital);
                    userRole.setCzrq(new Date());
                    userRole.setCzy("1");
                    userRoleDao.save(userRole);
                } else {
                    flag = -1;
            JSONArray arrays = JSONArray.parseArray(json);
            for (Object array:arrays) {
                JSONObject infos = JSON.parseObject(array.toString());
                String doc = infos.containsKey("doc")?infos.getString("doc"):null;
                String hospital = infos.containsKey("hospital")?infos.getString("hospital"):null;
                if(StringUtils.isNotEmpty(doc) &&  StringUtils.isNotEmpty(hospital)){
                    Doctor doctor = doctorDao.findByCode(doc);
                    WlyyRole hosInfo = roleDao.findByCode(hospital);
                    if (doctor != null) {
                        WlyyUserRole wlyyUserRole = userRoleDao.findByUserAndRole(doc, hospital);
                        if (wlyyUserRole == null) {
                            WlyyUserRole userRole = new WlyyUserRole();
                            userRole.setUser(doc);
                            userRole.setRole(hospital);
                            userRole.setCzrq(new Date());
                            userRole.setCzy("1");
                            userRoleDao.save(userRole);
                        } else {
                            msg += "医生:"+doctor.getName()+" 已存在 "+hosInfo.getName()+" 医院权限"+"<br/>";
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            flag = -2;
        }
        return flag;
        return msg;
    }
@ -200,7 +202,7 @@ public class ManageRangeService extends BaseJpaService<Doctor, DoctorDao> {
            String sql = "SELECT p.code,p.name,p.sex,p.idcard,p.mobile,ro.code hospital,ro.name hospitalName " +
                    " FROM wlyy_doctor p, wlyy_user_role r, wlyy_role ro  " +
                    " WHERE r.user = p.code AND r.role = ro.code AND p.status = 1  " +
                    " and r.user = "+ doc +" and ro.code = "+ hospital;
                    " and r.user = '"+ doc +"' and ro.code = '"+ hospital + "' ";
            doctor =  jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(Doctor.class));
        } catch (Exception e) {
            e.printStackTrace();

+ 13 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/basedata/basedata_list.jsp

@ -73,6 +73,19 @@
				</div>
			</div>
		</sec:authorize>
		<sec:authorize url="/admin/wlyyUserRole/importData">
			<div style="font-family:微软雅黑;font-size:Small;display:block;clear:left;padding:0;margin:0;margin-left: 5px">
				<div style="position:relative;display:inline;left:10px;top:8px;white-space:nowrap;text-align:center;background-color:#ffffff;font-weight:bold">导入电影票</div>
				<div style="height:90px;width:400px;border:#dde7f1 1px solid;">
					<div style="text-align:center;margin:0 auto;padding-top: 25px;">
						<div id="import_film_ticket">
							<div id="user__film_ticket">导入电影票</div>
						</div>
					</div>
				</div>
			</div>
		</sec:authorize>
	</div>
</body>
<%@ include file="../head/page_foot.jsp"%>

+ 40 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/basedata/basedata_list_js.jsp

@ -224,6 +224,46 @@
//
//                        })
            });
            /* ************************* 导入管理员 ************************** */
            var import_user_role_uploader = $("#import_user_role").webupload({
                server: ctx + "/admin/wlyyUserRole/importData",
                pick: {id: '#user_role_file'},
                accept: {
                    title: 'Excel',
                    extensions: 'xls',
                    mimeTypes: '.xls'
                },
                auto: true
            });
            import_user_role_uploader.on('beforeSend', function (file, data, headers) {
//                        data.orgCode = orgCode;
//                        data.orgName = orgName;
//						headers = {ajaxHeaderName:ajaxHeaderValue};
            });
            import_user_role_uploader.on('uploadProgress', function (file, percentage) {
                $.ligerDialog.waitting('正在保存中,请稍候...');
            });
            import_user_role_uploader.on('uploadError', function (file) {
                $.ligerDialog.closeWaitting();
                $.Notice.error("上传失败!");
            });
            import_user_role_uploader.on('uploadSuccess', function (file, resp) {
                $.ligerDialog.closeWaitting();
//                        window.sessionStorage.setItem("resultData", JSON.stringify(resp.data));
                $.Notice.success("上传成功。");
//                        self.orgInfoDialog = $.ligerDialog.open({
//                            height: 550,
//                            width: 1024,
//                            title: "上传结果",
//                            url: ctx + '/admin/hos/doctor/importResult'
//
//                        })
            });
        }
      };

+ 3 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/main.jsp

@ -180,6 +180,9 @@
							<sec:authorize url="/admin/roles/initial">
								<li><a href="javascript:locationMenu('roles');">角色管理</a></li>
							</sec:authorize>
							<sec:authorize url="/admin/range/initial">
								<li><a href="javascript:locationMenu('range');">数据范围管理</a></li>
							</sec:authorize>
							<sec:authorize url="/admin/security/center">
						</ul>
					</div>

+ 2 - 2
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/range/user_role_add.jsp

@ -19,14 +19,14 @@
			</div>
			<sec:authorize url="/admin/range/doctorList">
			<div id="btn_search" class="l-button u-btn u-btn-primary u-btn-small f-ib f-vam  f-ml10" >
				<span>查add询</span>
				<span>查询</span>
			</div>
			</sec:authorize>
			<!-- 保存按钮 -->
			<sec:authorize url="/admin/range/create">
				<div class="m-form-control m-form-control-fr">
					<div id="btn_add" class="l-button u-btn u-btn-primary u-btn-small f-ib f-vam" style="margin-right: 20px;">
						<span>新增</span>
						<span>批量新增</span>
					</div>
				</div>
			</sec:authorize>

+ 107 - 19
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/range/user_role_add_js.jsp

@ -9,13 +9,34 @@
            var retrieve = null;
            var master = null;
            var isFirstPage = false;
            var selectDict = [];
            /* *************************** 函数定义 ******************************* */
            function pageInit() {
                retrieve.init();
                querySelectData()
                master.init();
            }
            function querySelectData() {
                $.ajax({
                    url: ctx + "hostpitalList",
                    method: "get",
                    dataType: "json",
                    async: false,
                    data: {},
                    success: function (result) {
                        if (result.status == '200') {
                            selectDict = result.data;
                            retrieve.init();
                        } else {
                            $.Notice.error('请求数据失败');
                            retrieve.init();
                        }
                    },
                    error: function (data) {
                        $.Notice.error("系统异常,请联系管理员!");
                    }
                });
            }
            function reloadGrid(params) {
                if (isFirstPage) {
                    this.grid.options.newPage = 1;
@ -66,7 +87,7 @@
                        columns: [
                            {display: 'ID', name: 'id', hide: true},
                            {display: '医生编码', name: 'code', width: '30%', align: "center"},
                            {display: '医生姓名', name: 'name', width: '8%', align: "center"},
                            {display: '医生姓名', name: 'name', width: '8 %', align: "center"},
                            {
                                display: '性别', name: 'sex', width: '5%', align: "center",
                                render: function (item) {
@ -78,8 +99,35 @@
                            },
                            {display: '身份证号', name: 'idCard', width: '17%', align: "center"},
                            {display: '手机号码', name: 'mobile', width: '10%', align: "center"},
                            {display: '机构编码', name: 'hospital', width: '10%', align: "center"},
                            {display: '所属机构', name: 'hospitalName', width: '20%', align: "left"},
//                            {display: '机构编码', name: 'hospital', width: '0%', align: "center", hide: true},
                            {display: '新增机构', name: 'hospitalName', width: '25%', align: "left",
                                render: function (row) {
                                    var html = '',
                                        htmlStr = '';
                                    for(var i=0;i<selectDict.length;i++){
                                        if(row.hospital == selectDict[i].code){
                                            html += '<option selected value="'+selectDict[i].code+'">'+selectDict[i].name+'</option>'
                                        }else{
                                            html += '<option value="'+selectDict[i].code+'">'+selectDict[i].name+'</option>'
                                        }
                                    }
                                    htmlStr = '<select data-id="'+row.code+'" class="j-select" style="background-color: transparent;width:90%;border: none;height:38px;">'+html+'</select>';
                                    return htmlStr;
                                }
                            },
                            {
                                display: '操作', name: 'operator', width: '5%', align: "center", isSort: false,
                                render: function (row) {
                                    var html = '';
                                    <sec:authorize url="/admin/range/create">
                                    if (!Util.isStrEquals(row.code, "admin")) {
                                        html += '<a href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}','{2}'])", "info:create",row.code,row.hospital) + '">新增</a>';
                                    }
                                    </sec:authorize>
                                    return html;
                                }
                            }
                        ],
                        checkbox: true,
                    }));
@ -99,22 +147,62 @@
                    }
                },
                bindEvents: function () {
                    var changeData = [],//下拉变动的数据
                        oldSelect = [];//选择数据,未变更机构
                    $('#div_wrapper').on('change','.j-select',function(){
                        var obj = {},
                            $val = $(this).val(),
                            code = $(this).attr('data-id');
                        for(var i=0;i<changeData.length;i++ ){
                            if(changeData[i].doc == code){
                                changeData[i].hospital = $val;
                                return
                            }
                        }
                        obj.doc = code
                        obj.hospital = $val
                        changeData.push(obj)
                    })
                    var self = this;
                    $.subscribe('info:create', function (event, id) {
                        var title = '新增用户';
                        var rows = master.grid.getSelectedRows();
                        var codes = new Array()
                        for (var i=0;i<rows.length;i++){
                            codes.push(rows[i].code)
                    $.subscribe('info:create', function (event,doc,hospital) {
                        if(doc){
                            oldSelect = [{'doc':doc,'hospital':hospital}]
                        }else{
                            oldSelect = []
                            var rows = master.grid.getSelectedRows()
                            for (var i=0;i<rows.length;i++){
                                var obj={}
                                obj.doc = rows[i].code;
                                obj.hospital = rows[i].hospital
                                oldSelect.push(obj);
                            }
                        }
                        self.infoDialog = $.ligerDialog.open({
                            height: 600,
                            width: 850,
                            urlParms: {"doc": codes.toString(), "mode": "new"},
                            title: title,
                            url: ctx + '/admin/range/create'
                        })
                        for(var j=0;j<oldSelect.length;j++){
                            for(var z=0;z<changeData.length;z++){
                                if(oldSelect[j].doc == changeData[z].doc){
                                    oldSelect[j].hospital = changeData[z].hospital
                                }
                            }
                        }
                        var params={};
                            params.info = JSON.stringify(oldSelect)
                        $.ajax({
                            url: ctx + "/admin/range/create",
                            method: "post",
                            dataType: "json",
                            async: false,
                            data:  params,
                            success: function (result) {
                                if (result.status == '200') {
                                    window.reloadMasterGrid(result.msg);
                                } else {
                                    $.Notice.error('请求数据失败');
                                }
                            },
                            error: function (data) {
                                $.Notice.error("系统异常,请联系管理员!");
                            }
                        });
                    });
                }

+ 1 - 1
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/range/user_role_list.jsp

@ -19,7 +19,7 @@
			</div>
			<sec:authorize url="/admin/range/userRoleList">
			<div id="btn_search" class="l-button u-btn u-btn-primary u-btn-small f-ib f-vam  f-ml10" >
				<span>查list询</span>
				<span>查询</span>
			</div>
			</sec:authorize>
			<sec:authorize url="/admin/range/infoInit">

+ 21 - 20
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/range/user_role_list_js.jsp

@ -31,8 +31,9 @@
				$searchBtn: $('#btn_search'),
				$addBtn: $('#btn_add'),
				$name: $("#inp_name"),//人员姓名
				$code: $("#inp_code"),//人员姓名
				$code: $("#inp_code"),//医生code
				$mobile: $("#inp_mobile"),
				$hospital: $("#inp_hospital"),//医院code
				init: function () {
					this.$element.show();
					this.$element.attrScan();
@ -40,6 +41,7 @@
					this.$name.ligerTextBox({width: 200}); //姓名
					this.$code.ligerTextBox({width: 200}); //姓名
					this.$mobile.ligerTextBox({width: 200})//手机号
					this.$hospital.ligerTextBox({width: 200})//医院code
					this.bindEvents();
				},
				bindEvents: function () {
@ -84,15 +86,15 @@
								display: '操作', name: 'operator', width: '15%', align: "center", isSort: false,
								render: function (row) {
									var html = '';
									html += '<a  href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}'])", "info:view", row.code) + '">查看</a>';
									<sec:authorize url="/admin/range/update">
									html += '<a  href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}','{2}'])", "info:view", row.code,row.hospital) + '">查看</a>';
									<sec:authorize url="/admin/range/userRoleDetail">
									if (!Util.isStrEquals(row.code, "admin")) {
										html += '<a  style="margin-left:10px;"href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}'])", "info:edit", row.code) + '">编辑</a>';
										html += '<a  style="margin-left:10px;"href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}','{2}'])", "info:edit", row.code,row.hospital) + '">编辑</a>';
									}
									</sec:authorize>
									<sec:authorize url="/admin/range/delete">
									if (!Util.isStrEquals(row.code, "admin")) {
										html += '<a  style="margin-left:10px;" title="删除" href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}','{2}'])", "info:del", row.code) + '">删除</a>';
										html += '<a  style="margin-left:10px;" title="删除" href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}','{2}'])", "info:del", row.code,row.hospital) + '">删除</a>';
									}
									</sec:authorize>
									return html;
@ -116,11 +118,11 @@
						reloadGrid.call(this, values);
					}
				},
				delRecord: function (id, code) {
				delRecord: function (code,hospital) {
					var self = this;
					$.ajax({
						url: ctx + "/admin/range/delete",
						data: {"id": id},
						data: {"doc": code,"hospital":hospital},
						method: "post",
						dataType: "json",
						success: function (result) {
@ -137,42 +139,41 @@
				},
				bindEvents: function () {
					var self = this;
					$.subscribe('info:view', function (event, id) {
						var title = '查看用户信息';
					$.subscribe('info:view', function (event,code,hospital) {
						var title = '查看医生信息';
						self.infoDialog = $.ligerDialog.open({
							height: 460,
							width: 490,
							urlParms: {"id": id, "mode": "view"},
							urlParms: {"doc": code, "hospital": hospital, "mode": "view"},
							title: title,
							url: ctx + '/admin/range/editInit'
						})
					});
					$.subscribe('info:edit', function (event, id) {
						var title = '编辑用户信息';
					$.subscribe('info:edit', function (event, code,hospital) {
						var title = '编辑医生信息';
						self.infoDialog = $.ligerDialog.open({
							height: 460,
							width: 490,
							urlParms: {"id": id, "mode": "edit"},
							urlParms: {"doc": code,"hospital":hospital,"mode": "edit"},
							title: title,
							url: ctx + '/admin/range/editInit'
						})
					});
					$.subscribe('info:create', function (event, id) {
						var title = '新增用户';
					$.subscribe('info:create', function (event) {
						var title = '新增角色';
						self.infoDialog = $.ligerDialog.open({
							height: 600,
							width: 850,
							urlParms: {"id": id, "mode": "new"},
							width: 950,
							urlParms: {"mode": "new"},
							title: title,
							url: ctx + '/admin/range/infoInit'
						})
					});
					$.subscribe('info:del', function (event, id, code) {
					$.subscribe('info:del', function (event, code, hospital) {
						$.ligerDialog.confirm('确认删除该行信息?<br>如果是请点击确认按钮,否则请点击取消。', function (yes) {
							if (yes) {
								self.delRecord(id, code);
								self.delRecord(code, hospital);
							}
						});
					})

+ 20 - 15
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/range/user_role_modify.jsp

@ -8,47 +8,52 @@
	</style>
</head>
<body>
<div id="div_patient_info_form" data-role-form class="m-form-inline f-mt20 f-ml30" data-role-form>
	<input type="hidden" id="inp_id" value='${id}' data-attr-scan="id"/>
<div id="div_doctor_info_form" data-role-form class="m-form-inline f-mt20 f-ml30" data-role-form>
	<input type="hidden" id="inp_mode" value='${mode}'/>
	<div class="m-form-group" style="padding:10 0 10 0">
		<label class="label_title" style="width:120px">医生编modify码</label>
		<label class="label_title" style="width:120px">医生编码</label>
		<div class="l-text-wrapper m-form-control essential">
			<input type="text"  id="inp_code" class="required useTitle ajax f-w240 validate-special-char"  required-title="编码不能为空"  data-attr-scan="code"/>
			<input type="text"  id="inp_code" readonly class="required useTitle ajax f-w240 validate-special-char"  required-title="编码不能为空"  data-attr-scan="code" value='${doc}'/>
		</div>
	</div>
	<div class="m-form-group">
		<label class="label_title" style="width:120px">医生姓名</label>
		<div class="l-text-wrapper m-form-control essential">
			<input type="text"  id="inp_name" class="required useTitle f-w240 validate-special-char"  required-title="姓名不能为空"  data-attr-scan="name"/>
			<input type="text"  id="inp_name" readonly class="required useTitle f-w240 validate-special-char"  required-title="姓名不能为空"  data-attr-scan="name"/>
		</div>
		<div class="m-form-group">
			<label class="label_title" style="width:120px">身份证号</label>
			<div class="l-text-wrapper m-form-control essential">
				<input type="text"  id="inp_phone" class="required useTitle f-w240 validate-special-char" required-title="号码不能为空"  data-attr-scan="phone"/>
			</div>
	</div>
	<div class="m-form-group">
		<label class="label_title" style="width:120px">性别</label>
		<div class="l-text-wrapper m-form-control essential">
			<input type="text"  id="inp_sex" readonly class="required useTitle f-w240 validate-special-char" required-title="性别不能为空"  required-title="请输入性别"  data-attr-scan="sex"/>
		</div>
	</div>
	<div class="m-form-group">
		<label class="label_title" style="width:120px">身份证号</label>
		<div class="l-text-wrapper m-form-control essential">
			<input type="text"  id="inp_idcard" readonly class="required useTitle f-w240 validate-special-char" required-title="身份证号不能为空"  required-title="请输入身份证号码"  data-attr-scan="idCard"/>
		</div>
	</div>
	<div class="m-form-group">
		<label class="label_title" style="width:120px">手机号码</label>
		<div class="l-text-wrapper m-form-control essential">
			<input type="text"  id="inp_mobile" class="required useTitle ajax validate-mobile-phone f-w240 validate-special-char" required-title="手机号码不能为空"  required-title="请输入手机号码"  data-attr-scan="mobile"/>
			<input type="text"  id="inp_mobile" readonly class="required useTitle ajax validate-mobile-phone f-w240 validate-special-char" required-title="手机号码不能为空"  required-title="请输入手机号码"  data-attr-scan="mobile"/>
		</div>
	</div>
	<div class="m-form-group">
		<label class="label_title" style="width:120px">机构编码</label>
		<div class="l-text-wrapper m-form-control essential">
			<input type="text"  id="inp_type" class="required useTitle f-w240 validate-special-char" required-title="用户类型不能为空"  data-attr-scan="type"/>
			<input type="text"  id="inp_hospital" readonly class="required useTitle f-w240 validate-special-char" required-title="机构编码不能为空"  data-attr-scan="hospital" value='${hospital}'/>
		</div>
	</div>
	<div class="m-form-group" id="new_psw_div" style="display: none">
	<div class="m-form-group">
		<label class="label_title" style="width:120px">所属机构</label>
		<div class="l-text-wrapper m-form-control essential">
			<input type="password"  id="inp_psw" class="required useTitle f-w240 validate-special-char" required-title="登陆密码不能为空"  data-attr-scan="password"/>
			<input type="text"  id="inp_hospital_name" class="required useTitle f-w240 validate-special-char" required-title="所属机构不能为空"  data-attr-scan="hospitalName"/>
		</div>
	</div>
	</div>
	<div class="m-form-group f-pa" id="btn_save_close"  style="right: 10px;bottom: 0;display: none">
	<div class="m-form-group f-pa" id="btn_save_close"  style="right: 10px;bottom: 10px;display: none">
		<div class="m-form-control">
			<input type="button" value="保存" id="btn_save" class="l-button u-btn u-btn-primary u-btn-large f-ib f-vam" />
			<div id="btn_cancel" class="l-button u-btn u-btn-cancel u-btn-large f-ib f-vam" >

+ 72 - 108
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/range/user_role_modify_js.jsp

@ -4,82 +4,110 @@
	(function ($, win) {
		$(function () {
			var Util = $.Util;
			var doc = $('#inp_code').val();
			var hospital = $('#inp_hospital').val();
			var type = $('#inp_mode').val();
			var id = $('#inp_id').val();
			var info = "";
			var oldCode = "";
			var oldMobile = "";
			var jValidation = $.jValidation;
			var selectDict = [];
			//页面初始化
			function pageInit() {
				info.init();
                querySelectData();
				info.initForm();
			}
			function querySelectData(){
                $.ajax({
                    url: ctx + "hostpitalList",
                    method: "get",
                    dataType: "json",
                    async: false,
                    data: {},
                    success: function (result) {
                        if (result.status == '200') {
                            selectDict = $.map( result.data,function(item,i){
                                item.typeId = item.code;
                                item.text = item.name;
                                delete item.code;
                                delete item.name;
                                return item
                            })
                            info.init();
                        } else {
                            $.Notice.error('请求数据失败');
                            info.init();
                        }
                    },
                    error: function (data) {
                        $.Notice.error("系统异常,请联系管理员!");
                    }
                });
            }
			info = {
				//变量
				$form: $("#div_patient_info_form"),
				$form: $("#div_doctor_info_form"),
				$code: $('#inp_code'),
				$name: $('#inp_name'),
				$sex: $('#inp_sex'),
				$idcard: $('#inp_idcard'),
				$mobile: $('#inp_mobile'),
				$type: $("#inp_type"),
                $jobNo:$("#inp_jobNo"),
                $seat:$("#inp_seat"),
                $phone:$("#inp_phone"),
				//$roles:$("#inp_roles"),
				$organization: $("#inp_organizationId"),
				$hospital: $("#inp_hospital"),
                $hospitalName:$("#inp_hospital_name"),
				init: function () {
				    //input样式
					this.$form.attrScan();
					this.$code.ligerTextBox({width: 240});
					this.$name.ligerTextBox({width: 240});
                    this.$sex.ligerTextBox({width: 240});
                    this.$idcard.ligerTextBox({width: 240});
					this.$mobile.ligerTextBox({width: 240});
					this.typeBox = this.$type.ligerComboBox({
					this.$hospital.ligerTextBox({width: 240});
					this.$hospitalName.ligerComboBox({
						width: 240,
						data: [
							{text: '管理员', typeId: '1'},
							{text: '医生', typeId: '2'},
                            {text: '客服管理员', typeId: '3'},
                            {text: '普通客服', typeId: '4'},
							{text: '其他', typeId: '0'}
						],
						data: selectDict,
						initIsTriggerEvent: false,
						valueField: 'typeId',
					});
                    this.$jobNo.ligerTextBox({width: 240});
                    this.$seat.ligerTextBox({width: 240});
                    this.$phone.ligerTextBox({width: 240});
                        onSelected: function(id,name){
                            $("#inp_hospital").val(id);
                        }
                    });
				},
				initForm: function () {
					_this = this;
                    this.bindEvents();
					//修改、查看
					if (isNoEmpty(id) && id != 0) {
						$.ajax({
							url: ctx + "/admin/range/userRoleDetail",
							url: ctx + "userRoleDetail",
							method: "post",
							dataType: "json",
							async: false,
							data: {id:id},
							data: {"doc": doc,"hospital":hospital},
							success: function (result) {
								if (result.status == '200') {
									//通过id查信息
									var data = result.data;
								    //获取list
									var data = result.data[0];
									var temSex = "";
									if (!data) {
										return
									}
									oldCode = data.code;
									oldMobile = data.mobile;
									if(data.sex == 1) {
                                        temSex = '男';
                                    }else if (data.sex == 2){
                                        temSex = '女';
                                    }else {
                                        temSex = '未知';
                                    }
									_this.$form.Fields.fillValues({
										code: data.code,
										code: doc,
										name: data.name,
										mobile: data.mobile,
                                        jobNo:data.jobNo,
                                        seat:data.seat,
                                        phone:data.phone
                                        sex: temSex,
                                        idCard: data.idCard,
                                        mobile: data.mobile,
                                        hospital: data.hospital,
                                        hospitalName: data.hospitalName,
									});
									_this.typeBox.selectValue(data.type);
								} else {
                                } else {
									$.Notice.error(result.msg);
								}
							},
@ -89,8 +117,9 @@
						});
					}
					if (type == "view") {
					    //查看时只读属性不可更新数据
						_this.$form.addClass("m-form-readonly"); //表单只读
						$(".essential").addClass("XXXtest");
						$(".essential").removeClass("essential");
@ -112,57 +141,7 @@
					var validator = new jValidation.Validation(this.$form, {
						immediate: true, onSubmit: false,
						onElementValidateForAjax: function (elm) {
							if (Util.isStrEquals($(elm).attr("id"), 'inp_mobile')) {
								var result = new jValidation.ajax.Result();
								var newMobile = $('#inp_mobile').val();
								if (newMobile != null && oldMobile != '' && oldMobile == newMobile) {
									return true;
								}
								if (newMobile != oldMobile) {
									$.ajax({
										url: ctx + "/admin/user/isMobileExist",
										async: false,
										method: "post",
										dataType: "json",
										data: {"mobile": newMobile},
										success: function (data) {
											if (data == true) {
												result.setResult(false);
												result.setErrorMsg("手机号已注册过");
											} else {
												result.setResult(true);
											}
										}
									});
								}
								return result;
							}
							;
							if (Util.isStrEquals($(elm).attr("id"), 'inp_code')) {
								var result = new jValidation.ajax.Result();
								var newCode = $('#inp_code').val();
								if (newCode != null && oldCode != '' && oldCode == newCode) {
									return true;
								}
								if (newCode != oldCode) {
									$.ajax({
										url: ctx + "/admin/user/isCodeExist",
										async: false,
										method: "post",
										dataType: "json",
										data: {"code": newCode},
										success: function (data) {
											if (data == true) {
												result.setResult(false);
												result.setErrorMsg("用户编码已存在");
											} else {
												result.setResult(true);
											}
										}
									});
								}
								return result;
							}
						}
					});
@ -172,33 +151,18 @@
                        if (!validator.validate()) {
                            return;
                        }
                        values.type = self.typeBox.getValue();
                        update(values);
                    });
                    $("#inp_type").change(function () {
                        var val = self.typeBox.getValue();
                        if(val==3||val==4){
                            $("#customer").show();
                        }else{
                            $("#customer").hide();
                        }
                        debugger
                    });
                    //编辑信息
					function update(values) {
						var dataModel = $.DataModel.init();
						var url = "update";
						if (values.id == 0) {
							url = "create";
						}
						$.ajax({
							url: ctx + "/admin/user/" + url,
							url: ctx + "/admin/range/update",
							async: false,
							method: "post",
							dataType: "json",
							data: {jsonData: JSON.stringify(values)},
							data: {"doc": doc,"oldHospital":hospital,"hospital": $("#inp_hospital").val()},
							success: function (data) {
								if (data.status == 200) {
									parent.window.reloadMasterGrid(data.msg);

+ 0 - 1
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/user/user_modify_js.jsp

@ -183,7 +183,6 @@
                        }else{
                            $("#customer").hide();
                        }
                        debugger
                    });

+ 1 - 0
patient-co-manage/wlyy-manage/src/main/webapp/static/js/menu.js

@ -32,6 +32,7 @@ var menu = {
    "user": "/admin/user/initial",//人员管理界面
    "roles": "/admin/roles/initial",//用户角色管理界面
    "feature": "/admin/feature/initial",//用户角色管理界面
    "range": "/admin/range/initial",//医生管理界面
    //配置管理中心
    "dict": "/admin/dict/initial",//人员管理界面

+ 8 - 16
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/template/DoctorFeldsherTemplateService.java

@ -70,14 +70,10 @@ public class DoctorFeldsherTemplateService extends BaseService {
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject j = jsonArray.getJSONObject(i);
                    Patient member = (Patient) j.get("member");
                    int start = url.indexOf("&toUser=");
                    int end = url.indexOf("&", start + 1);
                    String touser = url.substring(start, end);
                    url = url.replace(touser, "&toUser=" + member.getCode());
//                    int representedStart = url.indexOf("&represented=");
//                    int representedEnd = url.length();
//                    String represented = url.substring(representedStart, representedEnd);
//                    url = url.replace(represented, "&represented=" + member.getCode());
                    int representedStart = url.indexOf("&represented=");
                    int representedEnd = url.length();
                    String represented = url.substring(representedStart, representedEnd);
                    url = url.replace(represented, "&represented=" + member.getCode());
                    //name患者姓名
                    sendJson.put("first", weiXinOpenIdUtils.getTitleMes(people, (int) j.get("relation"), name) + first);
                    sendJson.put("url", url);
@ -104,14 +100,10 @@ public class DoctorFeldsherTemplateService extends BaseService {
                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject j = jsonArray.getJSONObject(i);
                    Patient member = (Patient) j.get("member");
                    int start = url.indexOf("&toUser=");
                    int end = url.indexOf("&", start + 1);
                    String touser = url.substring(start, end);
                    url = url.replace(touser, "&toUser=" + member.getCode());
//                    int representedStart = url.indexOf("&represented=");
//                    int representedEnd = url.length();
//                    String represented = url.substring(representedStart, representedEnd);
//                    url = url.replace(represented, "&represented=" + member.getCode());
                    int representedStart = url.indexOf("&represented=");
                    int representedEnd = url.length();
                    String represented = url.substring(representedStart, representedEnd);
                    url = url.replace(represented, "&represented=" + member.getCode());
                    //name患者姓名
                    sendJson.put("first", weiXinOpenIdUtils.getTitleMes(people, (int) j.get("relation"), name) + first);
                    sendJson.put("url", url);