Commit c3bcf9c7 by wukaiqiang

新增消息接受接口 /message/remindByPermissions

parent 11e55d43
...@@ -81,6 +81,11 @@ public class DinasOrganizationServiceImpl implements DinasOrganizationService { ...@@ -81,6 +81,11 @@ public class DinasOrganizationServiceImpl implements DinasOrganizationService {
List<UUID> staffList = dinasOrganizationDao.queryStaffByRegionalCompany(id); List<UUID> staffList = dinasOrganizationDao.queryStaffByRegionalCompany(id);
return ResponseObj.success("查询成功", staffList); return ResponseObj.success("查询成功", staffList);
} }
@Override
public List<UUID> queryStaffByRegionalCompanyForMessage(UUID id) {
List<UUID> staffList = dinasOrganizationDao.queryStaffByRegionalCompany(id);
return staffList;
}
public KObject getCurrentRegionalCompany() { public KObject getCurrentRegionalCompany() {
return load(getCurrentRegionalCompanyId()); return load(getCurrentRegionalCompanyId());
......
...@@ -21,7 +21,7 @@ public interface DinasOrganizationService { ...@@ -21,7 +21,7 @@ public interface DinasOrganizationService {
List<UUID> queryStaffByPostId(String postId); List<UUID> queryStaffByPostId(String postId);
Object queryStaffByRegionalCompany(UUID fromString); Object queryStaffByRegionalCompany(UUID fromString);
List<UUID> queryStaffByRegionalCompanyForMessage(UUID fromString);
boolean repeatName(String name); boolean repeatName(String name);
boolean repeatCode(String code); boolean repeatCode(String code);
......
...@@ -7,6 +7,7 @@ import java.util.List; ...@@ -7,6 +7,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
...@@ -18,15 +19,28 @@ import org.springframework.web.bind.annotation.RequestMethod; ...@@ -18,15 +19,28 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.beecode.amino.core.Amino;
import com.beecode.bap.department.service.DepartmentService; import com.beecode.bap.department.service.DepartmentService;
import com.beecode.bap.staff.Staff; import com.beecode.bap.staff.Staff;
import com.beecode.bap.staff.service.StaffService; import com.beecode.bap.staff.service.StaffService;
import com.beecode.bap.staff.util.StaffUtil; import com.beecode.bap.staff.util.StaffUtil;
import com.beecode.bcp.authz.Identity;
import com.beecode.bcp.authz.Privilege;
import com.beecode.bcp.authz.service.IdentityService;
import com.beecode.bcp.authz.service.PrivilegeService;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
import com.beecode.bcp.type.json.JSONObjectUtils; import com.beecode.bcp.type.json.JSONObjectUtils;
import com.beecode.inz.basis.team.pojo.ResponseObj; import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.beecode.inz.message.CommonConstants;
import com.beecode.inz.message.RemPartRelationConstants;
import com.beecode.inz.message.RemindConstants;
import com.beecode.inz.message.enumeration.ParterType;
import com.beecode.inz.message.service.RemindService;
import com.beecode.inz.message.util.MessageUtils;
import com.beecode.nlib.utils.StringUtils; import com.beecode.nlib.utils.StringUtils;
import com.jiuqi.np.util.DateUtil;
import com.xyst.dinas.biz.enumeration.PlanningCycleEnum; import com.xyst.dinas.biz.enumeration.PlanningCycleEnum;
import com.xyst.dinas.biz.service.DinasOrganizationService;
import com.xyst.dinas.biz.service.PlanningCycleService; import com.xyst.dinas.biz.service.PlanningCycleService;
@RestController @RestController
...@@ -34,13 +48,19 @@ public class DinasCommonController { ...@@ -34,13 +48,19 @@ public class DinasCommonController {
@Autowired @Autowired
public DepartmentService departmentService; public DepartmentService departmentService;
@Autowired
private RemindService remService;
@Autowired @Autowired
public StaffService staffService; public StaffService staffService;
@Autowired @Autowired
DinasOrganizationService dinasOrganizationService;
@Autowired
public PlanningCycleService planningCycleService; public PlanningCycleService planningCycleService;
@Autowired
IdentityService identityService;
@Autowired
PrivilegeService privilegeService;
/** /**
* @Description: 根据部门id查询全公司及其该部门的子部门(包括该部门自身) * @Description: 根据部门id查询全公司及其该部门的子部门(包括该部门自身)
* @param id * @param id
...@@ -52,20 +72,20 @@ public class DinasCommonController { ...@@ -52,20 +72,20 @@ public class DinasCommonController {
public List<Map<String, Object>> queryDepartmentById(@RequestBody String body) { public List<Map<String, Object>> queryDepartmentById(@RequestBody String body) {
JSONObject param = new JSONObject(body); JSONObject param = new JSONObject(body);
List<KObject> list = new ArrayList<KObject>(); List<KObject> list = new ArrayList<KObject>();
if(param.isNull("id")) { if (param.isNull("id")) {
KObject rootLevel = departmentService.getByCode("quangongsi"); KObject rootLevel = departmentService.getByCode("quangongsi");
list.add(rootLevel); list.add(rootLevel);
} else { } else {
String departmentId = param.getString("id"); String departmentId = param.getString("id");
Boolean enable = param.getBoolean("enable"); Boolean enable = param.getBoolean("enable");
String type = param.optString("type", "REGIONAL_COMPANY"); String type = param.optString("type", "REGIONAL_COMPANY");
if(type.equals("REGIONAL_COMPANY")) { if (type.equals("REGIONAL_COMPANY")) {
KObject rootLevel = departmentService.getByCode("quangongsi"); KObject rootLevel = departmentService.getByCode("quangongsi");
KObject regionalLevel = departmentService.getById(UUID.fromString(departmentId)); KObject regionalLevel = departmentService.getById(UUID.fromString(departmentId));
list.addAll(departmentService.getChildren(UUID.fromString(departmentId), enable)); list.addAll(departmentService.getChildren(UUID.fromString(departmentId), enable));
list.add(rootLevel); list.add(rootLevel);
list.add(regionalLevel); list.add(regionalLevel);
} else if(type.equals("GROUP_COMPANY")) { } else if (type.equals("GROUP_COMPANY")) {
list.addAll(departmentService.getAllEnable()); list.addAll(departmentService.getAllEnable());
} }
} }
...@@ -98,14 +118,14 @@ public class DinasCommonController { ...@@ -98,14 +118,14 @@ public class DinasCommonController {
public List<Map<String, Object>> queryStaffByDepartmentId(@RequestBody String body) { public List<Map<String, Object>> queryStaffByDepartmentId(@RequestBody String body) {
JSONObject param = new JSONObject(body); JSONObject param = new JSONObject(body);
List<Map<String, Object>> temp = new ArrayList<Map<String, Object>>(); List<Map<String, Object>> temp = new ArrayList<Map<String, Object>>();
if(param.isNull("id")) { if (param.isNull("id")) {
return null; return null;
} }
String departmentId = param.getString("id"); String departmentId = param.getString("id");
Boolean enable = param.getBoolean("enable"); Boolean enable = param.getBoolean("enable");
List<KObject> list = staffService.getAllByDept(UUID.fromString(departmentId)); List<KObject> list = staffService.getAllByDept(UUID.fromString(departmentId));
for(int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
if(list.get(i).get("user").getBoolean("enabled") != enable) { if (list.get(i).get("user").getBoolean("enabled") != enable) {
list.remove(i); list.remove(i);
} }
} }
...@@ -147,22 +167,23 @@ public class DinasCommonController { ...@@ -147,22 +167,23 @@ public class DinasCommonController {
return ResponseObj.success(); return ResponseObj.success();
} }
/** /**
* 获取指定日期和计划周期类型的计划周期实体 * 获取指定日期和计划周期类型的计划周期实体
*
* @param planningCycleType 计划周期 * @param planningCycleType 计划周期
* @param date * @param date
* @return * @return
*/ */
@GetMapping("/sand/user/planningCycleObj/{planningCycle}/{date}") @GetMapping("/sand/user/planningCycleObj/{planningCycle}/{date}")
public KObject getPlanningCycleObjBySand(@PathVariable String planningCycle,@PathVariable @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) { public KObject getPlanningCycleObjBySand(@PathVariable String planningCycle,
@PathVariable @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {
PlanningCycleEnum planningCycleType = null; PlanningCycleEnum planningCycleType = null;
if (PlanningCycleEnum.DAY.name().equalsIgnoreCase(planningCycle)) { if (PlanningCycleEnum.DAY.name().equalsIgnoreCase(planningCycle)) {
planningCycleType = PlanningCycleEnum.DAY; planningCycleType = PlanningCycleEnum.DAY;
}else if (PlanningCycleEnum.WEEK.name().equalsIgnoreCase(planningCycle)) { } else if (PlanningCycleEnum.WEEK.name().equalsIgnoreCase(planningCycle)) {
planningCycleType = PlanningCycleEnum.WEEK; planningCycleType = PlanningCycleEnum.WEEK;
}else { } else {
return null; return null;
} }
return planningCycleService.getPlanningCycleObj(planningCycleType, date); return planningCycleService.getPlanningCycleObj(planningCycleType, date);
...@@ -170,19 +191,21 @@ public class DinasCommonController { ...@@ -170,19 +191,21 @@ public class DinasCommonController {
/** /**
* 获取指定日期和计划周期类型的计划周期实体 * 获取指定日期和计划周期类型的计划周期实体
*
* @param planningCycleType 计划周期 * @param planningCycleType 计划周期
* @param date * @param date
* @return * @return
*/ */
@GetMapping("/planningCycleObj/{planningCycle}/{date}") @GetMapping("/planningCycleObj/{planningCycle}/{date}")
public KObject getPlanningCycleObj(@PathVariable String planningCycle,@PathVariable @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) { public KObject getPlanningCycleObj(@PathVariable String planningCycle,
@PathVariable @DateTimeFormat(pattern = "yyyy-MM-dd") Date date) {
PlanningCycleEnum planningCycleType = null; PlanningCycleEnum planningCycleType = null;
if (PlanningCycleEnum.DAY.name().equalsIgnoreCase(planningCycle)) { if (PlanningCycleEnum.DAY.name().equalsIgnoreCase(planningCycle)) {
planningCycleType = PlanningCycleEnum.DAY; planningCycleType = PlanningCycleEnum.DAY;
}else if (PlanningCycleEnum.WEEK.name().equalsIgnoreCase(planningCycle)) { } else if (PlanningCycleEnum.WEEK.name().equalsIgnoreCase(planningCycle)) {
planningCycleType = PlanningCycleEnum.WEEK; planningCycleType = PlanningCycleEnum.WEEK;
}else { } else {
return null; return null;
} }
return planningCycleService.getPlanningCycleObj(planningCycleType, date); return planningCycleService.getPlanningCycleObj(planningCycleType, date);
...@@ -190,6 +213,7 @@ public class DinasCommonController { ...@@ -190,6 +213,7 @@ public class DinasCommonController {
/** /**
* 获取指定时间范围内类型为天的计划周期 * 获取指定时间范围内类型为天的计划周期
*
* @param planningCycleType * @param planningCycleType
* @param startTime * @param startTime
* @param endTime * @param endTime
...@@ -200,4 +224,81 @@ public class DinasCommonController { ...@@ -200,4 +224,81 @@ public class DinasCommonController {
@DateTimeFormat(pattern = "yyyy-MM-dd") @PathVariable Date endTime) { @DateTimeFormat(pattern = "yyyy-MM-dd") @PathVariable Date endTime) {
return planningCycleService.getPlanningCycleListByDay(startTime, endTime); return planningCycleService.getPlanningCycleListByDay(startTime, endTime);
} }
/**
* 创建一条提醒 通过自查当前权限
*
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/message/remindByPermissions", method = RequestMethod.POST)
public void addByPermissions(@RequestBody String body) throws Exception {
Date currentTime = new Date();
String currentTimeStr = DateUtil.dateTime2String(currentTime);
JSONObject data = new JSONObject(body);
JSONObject remObject = data.getJSONObject("remind");
String remindId = UUID.randomUUID().toString();
remObject.put(RemindConstants.ID, remindId);
remObject.put("createTime", currentTimeStr);
//remObject.put("remindTime", currentTimeStr);
/*
* remObject.put("remindContent", message);// 消息 remObject.put("data", billId);
* remObject.put("lookName", lookName);// 标题 remObject.put("lookType",
* lookType);
*/
remObject.put("_type", CommonConstants.REMIND_ENTITY);
if (remObject.has(RemindConstants.BUSINESS_INFO)) {
remObject.put(RemindConstants.BUSINESS_INFO, remObject.get(RemindConstants.BUSINESS_INFO).toString());
}
KObject kobject = (KObject) JSONObjectUtils.toObject(remObject.toString());
KObject creater = MessageUtils.gerCurrentStaff();
kobject.set(RemindConstants.SENDER, creater);
kobject.validate();
List<String> noticePerson = new ArrayList<String>();// 获取提醒人员
//String privilegeName = "com.xyst.dinas.biz.auth.SensitiveInfoLook";//敏感信息查看功能权限
String privilegeName = data.getString("privilegeId");//功能权限
List<UUID> staffList = dinasOrganizationService
.queryStaffByRegionalCompanyForMessage(dinasOrganizationService.getCurrentRegionalCompanyId());
for(UUID staffId :staffList) {
KObject staff = staffService.getById(staffId);
List<Identity> list = identityService.getByUser(staff.get("user").getUuid("id"));
Identity identity = list.get(0);
Privilege privilege = Amino.getApplicationMetadataContext().getBean(privilegeName, Privilege.class);
Boolean flag = privilegeService.canAccess(privilege.getId(), identity.getId(), null);
if(flag) {
noticePerson.add(staffId.toString());
}
}
JSONArray parts = new JSONArray();
for (String person : noticePerson) {
JSONObject part = new JSONObject();
part.put("participateId", person);
part.put("participateType", "person");
parts.put(part);
}
List<KObject> listRes = new ArrayList<KObject>();
for (int i = 0; i < parts.length(); i++) {
JSONObject item = parts.getJSONObject(i);
item.put("_type", CommonConstants.REM_PART_RELATION_ENTITTY);
item.put(RemPartRelationConstants.REMIND_ID, remindId);
item.put(RemPartRelationConstants.ID, UUID.randomUUID());
String partType = item.getString(RemPartRelationConstants.PARTICIPATE_TYPE);
if (ParterType.PERSON.getPartnerType().equals(partType)) {
// 参与者id是员工的id
String staffPartId = item.getString(RemPartRelationConstants.PARTICIPATE_ID);
// 根据员工的参与者id获得userId
KObject staffKObject = staffService.getById(UUID.fromString(staffPartId));
KObject userKObject = staffKObject.get(Staff.USER);
String userId = userKObject.getString("id");
item.put(RemPartRelationConstants.PARTICIPATE_ID, userId);
}
KObject entity = (KObject) JSONObjectUtils.toObject(item.toString());
listRes.add(entity);
entity.validate();
}
remService.add(kobject, listRes);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment