Commit 824b258c by 史文博

Merge branch 'feature/form_statistics_05' into 'develop'

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

See merge request kunlun/xyst_dinas/xyst_dinas_backend!76
parents 64d2eaf7 a526b969
......@@ -5,7 +5,9 @@ import org.springframework.context.annotation.Configuration;
import com.xyst.dinas.biz.init.PlanningCycleInit;
import com.xyst.dinas.biz.internal.dao.PlanningCycleDao;
import com.xyst.dinas.biz.internal.service.DinasCommonServiceImpl;
import com.xyst.dinas.biz.internal.service.PlanningCycleServiceImpl;
import com.xyst.dinas.biz.service.DinasCommonService;
import com.xyst.dinas.biz.service.PlanningCycleService;
import com.xyst.dinas.biz.web.DinasCommonController;
import com.xyst.dinas.biz.web.SandAttachmentController;
......@@ -84,4 +86,9 @@ public class DinasCommonConfiguration {
public PlanningCycleInit planningCycleInit() {
return new PlanningCycleInit();
}
@Bean
public DinasCommonService dinasCommonService() {
return new DinasCommonServiceImpl();
}
}
package com.xyst.dinas.biz.internal.service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import com.beecode.amino.core.Amino;
import com.beecode.bap.staff.Staff;
import com.beecode.bap.staff.service.StaffService;
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.json.JSONObjectUtils;
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.jiuqi.np.util.DateUtil;
import com.xyst.dinas.biz.service.DinasCommonService;
import com.xyst.dinas.biz.service.DinasOrganizationService;
public class DinasCommonServiceImpl implements DinasCommonService {
@Autowired
private RemindService remService;
@Autowired
public StaffService staffService;
@Autowired
DinasOrganizationService dinasOrganizationService;
@Autowired
IdentityService identityService;
@Autowired
PrivilegeService privilegeService;
@Override
public void addByPermissions(JSONObject data) throws Exception {
// TODO Auto-generated method stub
Date currentTime = new Date();
String currentTimeStr = DateUtil.dateTime2String(currentTime);
JSONObject remObject = data.getJSONObject("remind");
String remindId = UUID.randomUUID().toString();
remObject.put(RemindConstants.ID, remindId);
remObject.put("createTime", currentTimeStr);
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 = 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);
}
}
......@@ -81,6 +81,11 @@ public class DinasOrganizationServiceImpl implements DinasOrganizationService {
List<UUID> staffList = dinasOrganizationDao.queryStaffByRegionalCompany(id);
return ResponseObj.success("查询成功", staffList);
}
@Override
public List<UUID> queryStaffByRegionalCompanyForMessage(UUID id) {
List<UUID> staffList = dinasOrganizationDao.queryStaffByRegionalCompany(id);
return staffList;
}
public KObject getCurrentRegionalCompany() {
return load(getCurrentRegionalCompanyId());
......
package com.xyst.dinas.biz.service;
import org.json.JSONObject;
public interface DinasCommonService {
void addByPermissions(JSONObject data)throws Exception;
}
......@@ -23,7 +23,7 @@ public interface DinasOrganizationService {
List<UUID> queryStaffByPostId(String postId);
Object queryStaffByRegionalCompany(UUID fromString);
List<UUID> queryStaffByRegionalCompanyForMessage(UUID fromString);
boolean repeatName(String name);
boolean repeatCode(String code);
......
......@@ -43,11 +43,15 @@ import com.beecode.bap.department.service.DepartmentService;
import com.beecode.bap.staff.Staff;
import com.beecode.bap.staff.service.StaffService;
import com.beecode.bap.staff.util.StaffUtil;
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.json.JSONObjectUtils;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.beecode.nlib.utils.StringUtils;
import com.xyst.dinas.biz.enumeration.PlanningCycleEnum;
import com.xyst.dinas.biz.service.DinasCommonService;
import com.xyst.dinas.biz.service.DinasOrganizationService;
import com.xyst.dinas.biz.service.PlanningCycleService;
@RestController
......@@ -55,19 +59,25 @@ public class DinasCommonController {
@Autowired
public DepartmentService departmentService;
@Autowired
public StaffService staffService;
@Autowired
DinasCommonService dinasCommonService;
@Autowired
DinasOrganizationService dinasOrganizationService;
@Autowired
public PlanningCycleService planningCycleService;
@Autowired
public AttachmentService attachmentService;
IdentityService identityService;
@Autowired
PrivilegeService privilegeService;
@Autowired
public AttachmentService attachmentService;
private final Logger logger = LoggerFactory.getLogger(getClass());
/**
* @Description: 根据部门id查询全公司及其该部门的子部门(包括该部门自身)
* @param id
* @return return_type
......@@ -78,20 +88,20 @@ public class DinasCommonController {
public List<Map<String, Object>> queryDepartmentById(@RequestBody String body) {
JSONObject param = new JSONObject(body);
List<KObject> list = new ArrayList<KObject>();
if(param.isNull("id")) {
if (param.isNull("id")) {
KObject rootLevel = departmentService.getByCode("quangongsi");
list.add(rootLevel);
} else {
String departmentId = param.getString("id");
Boolean enable = param.getBoolean("enable");
String type = param.optString("type", "REGIONAL_COMPANY");
if(type.equals("REGIONAL_COMPANY")) {
if (type.equals("REGIONAL_COMPANY")) {
KObject rootLevel = departmentService.getByCode("quangongsi");
KObject regionalLevel = departmentService.getById(UUID.fromString(departmentId));
list.addAll(departmentService.getChildren(UUID.fromString(departmentId), enable));
list.add(rootLevel);
list.add(regionalLevel);
} else if(type.equals("GROUP_COMPANY")) {
} else if (type.equals("GROUP_COMPANY")) {
list.addAll(departmentService.getAllEnable());
}
}
......@@ -124,14 +134,14 @@ public class DinasCommonController {
public List<Map<String, Object>> queryStaffByDepartmentId(@RequestBody String body) {
JSONObject param = new JSONObject(body);
List<Map<String, Object>> temp = new ArrayList<Map<String, Object>>();
if(param.isNull("id")) {
if (param.isNull("id")) {
return null;
}
String departmentId = param.getString("id");
Boolean enable = param.getBoolean("enable");
List<KObject> list = staffService.getAllByDept(UUID.fromString(departmentId));
for(int i = 0; i < list.size(); i++) {
if(list.get(i).get("user").getBoolean("enabled") != enable) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).get("user").getBoolean("enabled") != enable) {
list.remove(i);
}
}
......@@ -173,22 +183,23 @@ public class DinasCommonController {
return ResponseObj.success();
}
/**
* 获取指定日期和计划周期类型的计划周期实体
*
* @param planningCycleType 计划周期
* @param date
* @return
*/
@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;
if (PlanningCycleEnum.DAY.name().equalsIgnoreCase(planningCycle)) {
planningCycleType = PlanningCycleEnum.DAY;
}else if (PlanningCycleEnum.WEEK.name().equalsIgnoreCase(planningCycle)) {
} else if (PlanningCycleEnum.WEEK.name().equalsIgnoreCase(planningCycle)) {
planningCycleType = PlanningCycleEnum.WEEK;
}else {
} else {
return null;
}
return planningCycleService.getPlanningCycleObj(planningCycleType, date);
......@@ -196,19 +207,21 @@ public class DinasCommonController {
/**
* 获取指定日期和计划周期类型的计划周期实体
*
* @param planningCycleType 计划周期
* @param date
* @return
*/
@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;
if (PlanningCycleEnum.DAY.name().equalsIgnoreCase(planningCycle)) {
planningCycleType = PlanningCycleEnum.DAY;
}else if (PlanningCycleEnum.WEEK.name().equalsIgnoreCase(planningCycle)) {
} else if (PlanningCycleEnum.WEEK.name().equalsIgnoreCase(planningCycle)) {
planningCycleType = PlanningCycleEnum.WEEK;
}else {
} else {
return null;
}
return planningCycleService.getPlanningCycleObj(planningCycleType, date);
......@@ -216,6 +229,7 @@ public class DinasCommonController {
/**
* 获取指定时间范围内类型为天的计划周期
*
* @param planningCycleType
* @param startTime
* @param endTime
......@@ -227,6 +241,30 @@ public class DinasCommonController {
return planningCycleService.getPlanningCycleListByDay(startTime, endTime);
}
/**
* 创建一条提醒 通过自查当前权限
*
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/message/remindByPermissions", method = RequestMethod.POST)
public void addByPermissions(@RequestBody String body) throws Exception {
JSONObject data = new JSONObject(body);
dinasCommonService.addByPermissions(data);
}
/**
* 创建一条提醒 通过自查当前权限
*
* @throws Exception
*/
@ResponseBody
@RequestMapping(value = "/sand/user/message/remindByPermissions", method = RequestMethod.POST)
public void addByPermissionsForSandUser(@RequestBody String body) throws Exception {
JSONObject data = new JSONObject(body);
dinasCommonService.addByPermissions(data);
}
@RequestMapping(value = "files/all", method = RequestMethod.GET)
public ResponseEntity<Resource> downloadAllFiles(@RequestParam(name = "fileIds") List<UUID> fileIds,
@RequestHeader(name = HttpHeaders.USER_AGENT, required = false) String userAgent) {
......@@ -315,3 +353,4 @@ public class DinasCommonController {
return false;
}
}
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