提交修改

This commit is contained in:
quyixiao 2021-01-06 18:04:08 +08:00
parent 0cd5e13657
commit 22a2b16cb7
3 changed files with 211 additions and 78 deletions

View File

@ -52,6 +52,7 @@ public class ShiroConfig {
Map<String, String> filterMap = new LinkedHashMap<>();
filterMap.put("/webjars/**", "anon");
filterMap.put("/oneCode/**", "anon");
filterMap.put("/dingding/**", "anon");
filterMap.put("/file/**", "anon");
filterMap.put("/test/**", "anon");
filterMap.put("/druid/**", "anon");

View File

@ -0,0 +1,125 @@
package com.lz.modules.app.controller;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
import com.lz.common.utils.DingTalkUtil;
import com.lz.common.utils.R;
import com.lz.common.utils.StringUtil;
import com.lz.modules.app.entity.StaffEntity;
import com.lz.modules.app.service.StaffService;
import com.lz.modules.third.entity.ThirdAppConfig;
import com.lz.modules.third.service.ThirdAppConfigService;
import com.taobao.api.ApiException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.net.URLEncoder;
@RestController
@Slf4j
@RequestMapping("/dingding")
public class DingDingController {
@Autowired
private ThirdAppConfigService thirdAppConfigService;
@Autowired
private DingTalkUtil dingTalkUtil;
@Autowired
private StaffService staffService;
static String homeUrl = "https://lzmanagement.ldxinyong.com/digitization";
//http://localhost:8080/lz_management/dingding/msg?username=18458195149&title=%E8%AF%B7%E6%B3%A8%E6%84%8F&content=%E9%A1%B9%E7%9B%AE%E8%A6%81%E8%BF%87%E6%9C%9F%E4%BA%86
@RequestMapping("/msg")
public R dingdingxiaoxi(String username, String title, String content) {
String appid = "856016278";
StaffEntity staffEntity = staffService.selectByPhone(username);
ThirdAppConfig thirdAppConfig = thirdAppConfigService.getByAppId(appid);
String token = dingTalkUtil.getAccessTokenWitchEntity(thirdAppConfig);
String url = homeUrl;
if (url.contains("?")) {
url += "&halokit=" + System.currentTimeMillis();
} else {
url += "?halokit=" + System.currentTimeMillis();
}
url += "&detail=1&id=1&detailId=" + 1;
url = URLEncoder.encode(url);
url = "dingtalk://dingtalkclient/action/openapp?corpid=" + thirdAppConfig.getCorpId() +
"&container_type=work_platform&app_id=0_" +
appid + "&redirect_type=jump&redirect_url=" + url;
try {
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2");
OapiMessageCorpconversationAsyncsendV2Request req = new OapiMessageCorpconversationAsyncsendV2Request();
req.setAgentId(Long.parseLong(appid));
req.setUseridList(staffEntity.getEmployeeId());//员工 id
OapiMessageCorpconversationAsyncsendV2Request.Msg obj1 = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
obj1.setMsgtype("action_card");
OapiMessageCorpconversationAsyncsendV2Request.ActionCard obj2 = new OapiMessageCorpconversationAsyncsendV2Request.ActionCard();
obj2.setSingleTitle(title);
obj2.setSingleUrl(url);
obj2.setMarkdown(
getMarkDown(content)
);
obj2.setTitle(title);
obj1.setActionCard(obj2);
req.setMsg(obj1);
OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(req, token);
log.info("钉钉请求返回{}", rsp.getBody());
//插入数据库
} catch (ApiException e) {
e.printStackTrace();
return R.error("抛出异常");
}
return R.ok();
}
public static String getMarkDown(String content) {
StringBuilder sb = new StringBuilder();
char[] cs = content.toCharArray();
int i = 0;
int j = 0;
for (char c : cs) {
if (i == 0) {
if (c == '/') {
sb.append("#");
} else {
sb.append("# ").append(c);
}
} else {
if (c == '/') {
if (j == 0) {
sb.append("\n");
}
j++;
sb.append("#");
continue;
} else {
j = 0;
String xx = sb.toString();
if(StringUtil.isNotBlank(xx)){
char [] yy = xx.toCharArray();
if(yy[yy.length -1 ] == '#'){
sb.append(" ");
}
}
sb.append(c);
}
}
i++;
}
log.info(" getmarkdown :" + sb.toString());
return sb.toString();
}
}

View File

@ -3,6 +3,11 @@ package com.lz.modules.app.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request;
import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
import com.lz.common.utils.DingTalkUtil;
import com.lz.common.utils.NumberUtil;
import com.lz.common.utils.R;
import com.lz.modules.app.dto.ApprovalDto;
@ -29,6 +34,9 @@ import com.lz.modules.sys.entity.app.ResultRecord;
import com.lz.modules.sys.service.SysUserService;
import com.lz.modules.sys.service.app.ResultDetailService;
import com.lz.modules.sys.service.app.ResultRecordService;
import com.lz.modules.third.entity.ThirdAppConfig;
import com.lz.modules.third.service.ThirdAppConfigService;
import com.taobao.api.ApiException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -36,6 +44,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -73,7 +82,7 @@ public class TestController {
private IEquipmentInfoService equipmentInfoService;
@RequestMapping("/test/xx")
public void test(){
public void test() {
ResultRecord resultRecord = new ResultRecord();
resultRecord.setAllScore(new BigDecimal(10));
resultRecord.setLastScore(new BigDecimal(8));
@ -83,21 +92,21 @@ public class TestController {
@RequestMapping("/test/department")
public void department(){
public void department() {
List<DepartmentsEntity> departmentsEntityList = departmentsService.selectEntityByParentDepartmentId("0");
for(DepartmentsEntity child1:departmentsEntityList){
for (DepartmentsEntity child1 : departmentsEntityList) {
child1.setLevel(1);
departmentsService.updateById(child1);
List<DepartmentsEntity> departmentsEntityList2 = departmentsService.selectEntityByParentDepartmentId(child1.getDepartmentId());
for(DepartmentsEntity child2: departmentsEntityList2){
for (DepartmentsEntity child2 : departmentsEntityList2) {
child2.setLevel(2);
departmentsService.updateById(child2);
List<DepartmentsEntity> departmentsEntityList3 = departmentsService.selectEntityByParentDepartmentId(child2.getDepartmentId());
for(DepartmentsEntity child3: departmentsEntityList3){
for (DepartmentsEntity child3 : departmentsEntityList3) {
child3.setLevel(3);
departmentsService.updateById(child3);
List<DepartmentsEntity> departmentsEntityList4 = departmentsService.selectEntityByParentDepartmentId(child3.getDepartmentId());
for(DepartmentsEntity child4: departmentsEntityList4){
for (DepartmentsEntity child4 : departmentsEntityList4) {
child4.setLevel(4);
departmentsService.updateById(child4);
}
@ -107,9 +116,9 @@ public class TestController {
}
@RequestMapping("/test/relate")
public void relate(){
public void relate() {
List<DepartmentsStaffRelateEntity> list = departmentsStaffRelateService.selectAll();
for(DepartmentsStaffRelateEntity l:list){
for (DepartmentsStaffRelateEntity l : list) {
DepartmentsEntity departmentsEntity = departmentsService.selectByDepartmentId(l.getDepartmentId());
l.setLevel(departmentsEntity.getLevel());
departmentsStaffRelateService.updateById(l);
@ -118,36 +127,36 @@ public class TestController {
/**
* {
* "type": "node",
* "left": 818,
* "top": 510,
* "uuid": "id3",
* "prev": [
* "id1",
* "id2"
* ],
* "next": [
* "id4",
* "id5"
* ],
* "formData": {
* "stepName": "名称1",
* "ruleGroupList": [{
* "name": "名称2",
* "nextStep": "id5"
* },
* {
* "name": "名称6",
* "nextStep": "id7"
* }
* ]
* },
* "nextIfId": "id12",
* "nextElseId": "id11"
* "type": "node",
* "left": 818,
* "top": 510,
* "uuid": "id3",
* "prev": [
* "id1",
* "id2"
* ],
* "next": [
* "id4",
* "id5"
* ],
* "formData": {
* "stepName": "名称1",
* "ruleGroupList": [{
* "name": "名称2",
* "nextStep": "id5"
* },
* {
* "name": "名称6",
* "nextStep": "id7"
* }
* ]
* },
* "nextIfId": "id12",
* "nextElseId": "id11"
* }
*/
@RequestMapping("/test/step")
public void step(){
public void step() {
Long staffId = 294l;
ResultRecord resultRecord = new ResultRecord();
resultRecord.setType(2);
@ -156,13 +165,13 @@ public class TestController {
resultRecord.setDepartmentId(departmentsStaffRelateEntity.getDepartmentId());
List<Step> test = resultDetailService.getStepList(resultRecord);
List<String> list = new ArrayList<>();
if(CollectionUtils.isNotEmpty(test)){
if (CollectionUtils.isNotEmpty(test)) {
Step step = test.get(0);
StaffEntity staffEntity = staffService.selectStaffById(staffId);
if(staffEntity !=null && !staffEntity.getName().equals(step.getName())){
if (staffEntity != null && !staffEntity.getName().equals(step.getName())) {
list.add(staffEntity.getName());
}
for(Step s:test){
for (Step s : test) {
list.add(s.getName());
}
}
@ -170,33 +179,32 @@ public class TestController {
List<FlowModel> flowModels = new ArrayList<>();
FlowModel flowModel = new FlowModel();
for(String s:list){
for (String s : list) {
}
}
@RequestMapping("/test/userinfo")
public void userinfo(){
public void userinfo() {
}
@RequestMapping("/test/init")
public void testinit(){
public void testinit() {
List<String> allDeparmentIds = staffService.selectAllDeparmentIdsByDepartmentParentId("1");
//获取部门下所有人员
List<String> staffIds = staffService.staffsByAllDeparmentIds(allDeparmentIds);
List<Object> collect=resultRecordService.listObjs(new QueryWrapper<ResultRecord>()
.eq("is_delete", 0)
List<Object> collect = resultRecordService.listObjs(new QueryWrapper<ResultRecord>()
.eq("is_delete", 0)
.eq("type", 2)
.like("month_time","2020-09")
.in("department_id",allDeparmentIds)
.in("staff_id",staffIds)
.like("month_time", "2020-09")
.in("department_id", allDeparmentIds)
.in("staff_id", staffIds)
.select(" DISTINCT staff_id"));
List<String> collect1 = new ArrayList<>();
if(CollectionUtils.isNotEmpty(collect)){
if (CollectionUtils.isNotEmpty(collect)) {
collect1 = collect.stream().map(o -> o.toString()).collect(Collectors.toList());
System.out.println();
}
@ -204,12 +212,11 @@ public class TestController {
}
// http://localhost:8080/lz_management/test/restore
@RequestMapping("/test/restore")
public void restore() throws Exception{
public void restore() throws Exception {
List<StaffEntity> staffEntities = staffService.selectAll();
for(StaffEntity staffEntity:staffEntities){
for (StaffEntity staffEntity : staffEntities) {
//doRestore(staffEntity.getId());
}
}
@ -221,36 +228,36 @@ public class TestController {
StaffEntity staff = staffService.selectStaffById(staffId);
List<ResultRecord> resultRecords = resultRecordService.selectResultRecordAllByStaffId(staffId);
Date node = sdf.parse("2020-09-29 19:08:07");
if(resultRecords== null || resultRecords.size() == 0){
if (resultRecords == null || resultRecords.size() == 0) {
log.info("staffid = " + staffId + " ,没有数据");
return;
}
boolean flag = true;
for(ResultRecord resultRecord:resultRecords){
if(resultRecord.getGmtCreate().getTime() > node.getTime()){
List<ResultDetail> resultDetails = resultDetailService.selectByRecordIdAndType(resultRecord.getId(),1);
if(resultDetails !=null && resultDetails.size() > 0){
for (ResultRecord resultRecord : resultRecords) {
if (resultRecord.getGmtCreate().getTime() > node.getTime()) {
List<ResultDetail> resultDetails = resultDetailService.selectByRecordIdAndType(resultRecord.getId(), 1);
if (resultDetails != null && resultDetails.size() > 0) {
flag = false;
log.info("staff_id " + staff.getId() + ",name = " + staff.getName() + " ,己经正常");
return ;
log.info("staff_id " + staff.getId() + ",name = " + staff.getName() + " ,己经正常");
return;
}
}
}
if(flag){
for(ResultRecord resultRecord:resultRecords){
if(resultRecord.getGmtCreate().getTime() > node.getTime()){
if (flag) {
for (ResultRecord resultRecord : resultRecords) {
if (resultRecord.getGmtCreate().getTime() > node.getTime()) {
resultRecord.setIsDelete(1);
log.info("staff_id " + staff.getId() + ",name = " + staff.getName() + " ,删除不要数据");
log.info("staff_id " + staff.getId() + ",name = " + staff.getName() + " ,删除不要数据");
resultRecordService.updateResultRecordById(resultRecord);
}
}
for(int i = resultRecords.size() - 1 ;i >= 0 ; i --){
for (int i = resultRecords.size() - 1; i >= 0; i--) {
ResultRecord resultRecord = resultRecords.get(i);
if(resultRecord.getGmtCreate().getTime() < node.getTime()){
List<ResultDetail> resultDetails = resultDetailService.selectByRecordIdAndType(resultRecord.getId(),1);
if(resultDetails !=null && resultDetails.size() > 0){
if (resultRecord.getGmtCreate().getTime() < node.getTime()) {
List<ResultDetail> resultDetails = resultDetailService.selectByRecordIdAndType(resultRecord.getId(), 1);
if (resultDetails != null && resultDetails.size() > 0) {
resultRecord.setIsDelete(0);
log.info("staff_id " + staff.getId() + ",name = " + staff.getName() + " ,数据恢复");
log.info("staff_id " + staff.getId() + ",name = " + staff.getName() + " ,数据恢复");
resultRecordService.updateResultRecordById(resultRecord);
break;
}
@ -261,15 +268,15 @@ public class TestController {
// http://localhost:8080/lz_management/test/resultrecord?resultRecordId=475
@RequestMapping("/test/resultrecord")
public void resultRecorcd(Long resultRecordId) throws Exception{
public void resultRecorcd(Long resultRecordId) throws Exception {
R r = resultRecordService.initFlowRecord(resultRecordId);
}
// http://localhost:8080/lz_management/test/getAuth?userId=298
@RequestMapping("/test/getAuth")
public R getAuth(Long userId) throws Exception{
Map<String,Integer> map = staffRoleService.getRoleByUserId(userId);
return R.ok().put("data",map);
public R getAuth(Long userId) throws Exception {
Map<String, Integer> map = staffRoleService.getRoleByUserId(userId);
return R.ok().put("data", map);
}
@Autowired
@ -277,7 +284,7 @@ public class TestController {
// http://localhost:8080/lz_management/test/testmaster
@RequestMapping("/test/testmaster")
public R testmaster(Long userId) throws Exception{
public R testmaster(Long userId) throws Exception {
List<StaffRole> masterPMs = staffRoleMapper.selectStaffRolesByDepartmentLevelList(Arrays.asList(new String[]{RoleEnums.MASTER_PM.getName()}));
@ -287,11 +294,11 @@ public class TestController {
public static void main(String[] args) {
String a = "{\"313\":[17,20,13]}";
Map<String,Object> map = JSONObject.parseObject(a,Map.class);
Map<String, Object> map = JSONObject.parseObject(a, Map.class);
List<Long> roleIds = null;
for (Map.Entry<String, Object> entry : map.entrySet()) {
if(entry.getValue() !=null ){
roleIds = JSON.parseArray(entry.getValue().toString(),Long.class);
if (entry.getValue() != null) {
roleIds = JSON.parseArray(entry.getValue().toString(), Long.class);
}
}
System.out.println(roleIds);
@ -334,10 +341,10 @@ public class TestController {
public R equpinfo() {
List<EquipmentInfo> equipmentInfos = equipmentInfoService.selectAll();
for(EquipmentInfo equipmentInfo : equipmentInfos){
for (EquipmentInfo equipmentInfo : equipmentInfos) {
DepartmentsStaffRelateEntity departmentsStaffRelateEntity = departmentsStaffRelateService.selectByStaffId(equipmentInfo.getUserId());
if(departmentsStaffRelateEntity !=null){
equipmentInfo.setDepartId(NumberUtil.objToLongDefault(departmentsStaffRelateEntity.getDepartmentId(),-1));
if (departmentsStaffRelateEntity != null) {
equipmentInfo.setDepartId(NumberUtil.objToLongDefault(departmentsStaffRelateEntity.getDepartmentId(), -1));
}
equipmentInfoService.updateCoverEquipmentInfoById(equipmentInfo);
}