diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java index 5c8bfa8..c5a62e7 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java @@ -12,14 +12,11 @@ import com.lyms.platform.common.dao.operator.MongoCondition; import com.lyms.platform.common.dao.operator.MongoOper; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.pojo.SyncDataModel; -import com.lyms.platform.common.utils.JsonUtil; -import com.lyms.platform.common.utils.MessageUtil; -import com.lyms.platform.common.utils.PingYinUtil; -import com.lyms.platform.common.utils.SystemConfig; +import com.lyms.platform.common.utils.*; import com.lyms.platform.pojo.*; -import com.lyms.platform.query.BasicConfigQuery; -import com.lyms.platform.query.SmsConfigQuery; -import com.lyms.platform.query.SmsTemplateQuery; +import com.lyms.platform.query.*; +import com.qiniu.util.Json; +import org.apache.commons.codec.binary.Base64; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; @@ -29,7 +26,6 @@ import org.apache.struts.config.BaseConfig; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; -import com.lyms.platform.query.PuerperaModelQuery; import org.springframework.data.mongodb.core.MongoTemplate; public class BasicConfigServiceTest { @@ -98,7 +94,51 @@ public class BasicConfigServiceTest { // saveHospitalMsgConfig(applicationContext); // saveHospitalMsgTemplate(applicationContext); // queryRisk(applicationContext); - testtt(applicationContext); + saveQhdBabyCheckModel(applicationContext); + } + + + public static void saveQhdBabyCheckModel(ApplicationContext applicationContext) { + MongoTemplate mongoTemplate + =(MongoTemplate)applicationContext.getBean("mongoTemplate"); + mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray()); + try { + BabyCheckModelQuery query = new BabyCheckModelQuery(); + query.setHospitalId("216"); + query.setYn(1); + for (int i=1;i<1000;i++) { + List list = mongoTemplate.find(query.convertToQuery().convertToMongoQuery().skip(i*100-100).limit(100), BabyCheckModel.class); + if (list == null || list.size() == 0) { + break; + } + List strs = new ArrayList<>(); + for (BabyCheckModel model:list) { + strs.add(Base64.encodeBase64String(SerializUtils.objToByte(model))); + } + System.out.println(JsonUtil.array2JsonString(list)); + HttpClient client = new HttpClient(); + client.getHttpConnectionManager().getParams().setConnectionTimeout(30000); + client.getHttpConnectionManager().getParams().setSoTimeout(30000); + PostMethod post = new MessageUtil.UTF8PostMethod("http://121.22.16.246:18018/saveSerializMongoModel"); + NameValuePair[] pairs = { + new NameValuePair("className", BabyCheckModel.class.getName()), + new NameValuePair("json", JsonUtil.array2JsonString(strs)), + }; + post.setRequestBody(pairs); + client.executeMethod(post); + int statusCode = post.getStatusCode(); + String json = post.getResponseBodyAsString(); + System.out.println(i); + System.out.println(json); + post.releaseConnection(); + if (200 == statusCode) { + + } + } + + } catch (Exception e) { + e.printStackTrace(); + } } public static void testtt(ApplicationContext applicationContext) { diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java index 68063bd..9606be7 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MongoSyncService.java @@ -8,6 +8,7 @@ import com.lyms.platform.common.utils.*; import com.lyms.platform.pojo.*; import com.mongodb.DBObject; import com.mongodb.Mongo; +import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang.*; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -357,5 +358,42 @@ public class MongoSyncService { } } + public String saveSerializMongoModel(String json, String className){ + if (StringUtils.isBlank(json) || StringUtils.isBlank(className)) { + return "param is null"; + } + StringBuffer sb = new StringBuffer(); + try { + Class cls = Class.forName(className); + List list = JsonUtil.toList(json, String.class); + int insert = 0; + int modified = 0; + for (String s:list) { + Object obj = SerializUtils.byteToObj(Base64.decodeBase64(s)); + String id = cls.getMethod("getId").invoke(obj).toString(); + if (StringUtils.isNotBlank(id)) { + Object temp = mongoTemplate.findById(id, cls); + if (temp == null) { + mongoTemplate.insert(obj); + insert++; + } else { + Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(obj)); + mongoTemplate.updateMulti(new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery(), update, cls); + modified++; + } + } + } + sb.append(" insert:"); + sb.append(insert); + sb.append(" modified:"); + sb.append(modified); + sb.append("\r\n
"); + return sb.toString(); + } catch (Exception e) { + e.printStackTrace(); + return e.toString(); + } + } + } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/DataPermissionsModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/DataPermissionsModel.java index 8920855..fddc48f 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/DataPermissionsModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/DataPermissionsModel.java @@ -26,6 +26,20 @@ public class DataPermissionsModel extends BaseModel { private Map data=new HashMap(); + /* + 多个区域,省市区乡 如果为0代表全部,省不可为0 + [{"p":"1","c":"2","a":"3","s":"4"},{"p":"2","c":"0","a":"0","s":"0"}] + */ + private String areaPermission; + + public String getAreaPermission() { + return areaPermission; + } + + public void setAreaPermission(String areaPermission) { + this.areaPermission = areaPermission; + } + public Integer getUserId() { return userId; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MongoSyncController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MongoSyncController.java index 0b02826..e68a2d9 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MongoSyncController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MongoSyncController.java @@ -58,5 +58,11 @@ public class MongoSyncController extends BaseController { return mongoSyncService.saveMongoModel(json,className); } + @ResponseBody + @RequestMapping(method = RequestMethod.POST,value = "/saveSerializMongoModel") + public String saveSerializMongoModel(String json, String className){ + return mongoSyncService.saveSerializMongoModel(json, className); + } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/OrganizationController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/OrganizationController.java index 5618e90..9c7a80b 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/OrganizationController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/OrganizationController.java @@ -18,6 +18,7 @@ import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.permission.model.*; import com.lyms.platform.permission.service.*; import com.lyms.platform.pojo.BasicConfig; +import com.lyms.platform.pojo.DataPermissionsModel; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -225,7 +226,7 @@ public class OrganizationController extends BaseController { @RequestMapping(value = "/organization1", method = RequestMethod.GET) @ResponseBody @TokenRequired - public FrontEndResult getOrganization(HttpServletRequest request, @RequestParam(value = "page", required = false) Integer page, + public Map getOrganization(HttpServletRequest request, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "limit", required = false) Integer limit, @RequestParam(value = "keyword", required = false) String keyword, @RequestParam(value = "areaId", required = false) String aId) { @@ -351,7 +352,16 @@ public class OrganizationController extends BaseController { data.add(organization); } } - return new FrontEndResult().setData(data).setErrormsg("成功").setErrorcode(ErrorCodeConstants.SUCCESS).setPageInfo(pageInfo); + Map map = new HashMap<>(); + map.put("data",data); + map.put("errormsg","成功"); + map.put("errorcode",ErrorCodeConstants.SUCCESS); + map.put("pageInfo",pageInfo); + List dataPermissionsModelList = accessPermissionFacade.findAccessPerminssionByUserId(loginState.getId()); + if (dataPermissionsModelList != null && dataPermissionsModelList.size() > 0) { + map.put("areaPermission",dataPermissionsModelList.get(0).getAreaPermission()); + } + return map; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/UsersController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/UsersController.java index 89bd85a..ee16153 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/UsersController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/UsersController.java @@ -18,6 +18,7 @@ import com.lyms.platform.operate.web.session.SessionProvider; import com.lyms.platform.operate.web.session.strategy.ISessionProvider; import com.lyms.platform.permission.model.*; import com.lyms.platform.permission.service.*; +import com.lyms.platform.pojo.DataPermissionsModel; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -104,10 +105,9 @@ public class UsersController extends BaseController { //设置用户角色信息 for(Users user : users) { user.setRoles(this.getUserRoles(user.getId())); - user.setDepartmentses(departmentsService.getDepartments(user.getDeptId())); - - user.setOrganizations(accessPermissionFacade.findAccessPerminssionByUserId(user.getId())); + List permissionsModelList = accessPermissionFacade.findAccessPerminssionByUserId(user.getId()); + user.setOrganizations(accessPermissionFacade.getOrganization(permissionsModelList)); } FrontEndResult frontEndResult = new FrontEndResult(); @@ -156,7 +156,7 @@ public class UsersController extends BaseController { return frontEndResult; } }else if(u.getType().equals(UserTypeEnum.PLATFORM_ADMIN.getId())) { - List organizations = accessPermissionFacade.findAccessPerminssionByUserId(u.getId()); + List organizations = accessPermissionFacade.getOrganization(accessPermissionFacade.findAccessPerminssionByUserId(u.getId())); ids = new ArrayList<>(); if(CollectionUtils.isNotEmpty(organizations)) { for(Organization organization : organizations) { @@ -425,7 +425,7 @@ public class UsersController extends BaseController { organizations.add(organization); users.setOrganization(organization); } else if (UserTypeEnum.PLATFORM_ADMIN.getId().equals(users.getType())) { //管理员 - List list2 =accessPermissionFacade.findAccessPerminssionByUserId(users.getId()); + List list2 = accessPermissionFacade.getOrganization(accessPermissionFacade.findAccessPerminssionByUserId(users.getId())); if(CollectionUtils.isNotEmpty(list2)){ for(Organization organization:list2){ organizations.add(organization); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AccessPermissionFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AccessPermissionFacade.java index 697cdf0..38648db 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AccessPermissionFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AccessPermissionFacade.java @@ -95,19 +95,13 @@ public class AccessPermissionFacade { } } } - + dataPermissionsModel.setAreaPermission(accessPermissionAddRequest.getAreaPermission()); dataPermissionsModel.setUserId(Integer.valueOf(accessPermissionAddRequest.getUserId())); dataPermissionService.addOrUpdatePermission(dataPermissionsModel); return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功."); } - public List findAccessPerminssionByUserId(Integer userId){ - Users users =usersService.getUsers(userId); - - Assert.notNull(users, "用户信息不存在."); - DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); - dataPermissionsModelQuery.setUserId(userId); - List data =dataPermissionService.queryPermission(dataPermissionsModelQuery); + public List getOrganization(List data) { List dataList =new ArrayList<>(); if(CollectionUtils.isNotEmpty(data)){ Set set = data.get(0).getData().keySet(); @@ -125,4 +119,12 @@ public class AccessPermissionFacade { } return dataList; } + + public List findAccessPerminssionByUserId(Integer userId){ + Users users =usersService.getUsers(userId); + Assert.notNull(users, "用户信息不存在."); + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); + dataPermissionsModelQuery.setUserId(userId); + return dataPermissionService.queryPermission(dataPermissionsModelQuery); + } } \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AutoMatchFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AutoMatchFacade.java index cab4184..0c861e07 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AutoMatchFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AutoMatchFacade.java @@ -59,13 +59,14 @@ public class AutoMatchFacade { if (CollectionUtils.isNotEmpty(list)) { //用户角色 if (UserTypeEnum.NORMAL_USER.getId().equals(list.get(0).getType())) { - for(Users users:list){ - if(null!=users.getOrgId()){ - data.add(users.getOrgId()); + List list2 = accessPermissionFacade.getOrganization(accessPermissionFacade.findAccessPerminssionByUserId(list.get(0).getId())); + if(CollectionUtils.isNotEmpty(list2)){ + for(Organization organization:list2){ + data.add(organization.getId()); } } } else if(UserTypeEnum.PLATFORM_ADMIN.getId().equals(list.get(0).getType())){ - List list2 =accessPermissionFacade.findAccessPerminssionByUserId(list.get(0).getId()); + List list2 = accessPermissionFacade.getOrganization(accessPermissionFacade.findAccessPerminssionByUserId(list.get(0).getId())); if(CollectionUtils.isNotEmpty(list2)){ for(Organization organization:list2){ data.add(organization.getId()); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/AccessPermissionAddRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/AccessPermissionAddRequest.java index af17576..7b16d5d 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/AccessPermissionAddRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/AccessPermissionAddRequest.java @@ -28,6 +28,21 @@ public class AccessPermissionAddRequest { @FormParam private List deptId; + /* + 多个区域,省市区乡 如果为0代表全部,省不可为0 + [{"p":"1","c":"2","a":"3","s":"4"},{"p":"2","c":"0","a":"0","s":"0"}] + */ + @FormParam + private String areaPermission; + + public String getAreaPermission() { + return areaPermission; + } + + public void setAreaPermission(String areaPermission) { + this.areaPermission = areaPermission; + } + public List getDeptId() { return deptId; }