拆分think模块包

This commit is contained in:
2024-08-13 17:51:18 +08:00
parent 9dc17cd63e
commit 09a752e12a
1547 changed files with 88305 additions and 10329 deletions
@@ -0,0 +1,47 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.oa.mapper.AppFieldMapper;
import com.gxwebsoft.oa.service.AppFieldService;
import com.gxwebsoft.oa.entity.AppField;
import com.gxwebsoft.oa.param.AppFieldParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 应用参数Service实现
*
* @author 科技小王子
* @since 2024-01-14 11:42:53
*/
@Service
public class AppFieldServiceImpl extends ServiceImpl<AppFieldMapper, AppField> implements AppFieldService {
@Override
public PageResult<AppField> pageRel(AppFieldParam param) {
PageParam<AppField, AppFieldParam> page = new PageParam<>(param);
//page.setDefaultOrder("create_time desc");
List<AppField> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<AppField> listRel(AppFieldParam param) {
List<AppField> list = baseMapper.selectListRel(param);
// 排序
PageParam<AppField, AppFieldParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public AppField getByIdRel(Integer id) {
AppFieldParam param = new AppFieldParam();
param.setId(id);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,47 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.oa.entity.AppRenew;
import com.gxwebsoft.oa.mapper.AppRenewMapper;
import com.gxwebsoft.oa.param.AppRenewParam;
import com.gxwebsoft.oa.service.AppRenewService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 续费管理Service实现
*
* @author 科技小王子
* @since 2023-11-14 14:27:57
*/
@Service
public class AppRenewServiceImpl extends ServiceImpl<AppRenewMapper, AppRenew> implements AppRenewService {
@Override
public PageResult<AppRenew> pageRel(AppRenewParam param) {
PageParam<AppRenew, AppRenewParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
List<AppRenew> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<AppRenew> listRel(AppRenewParam param) {
List<AppRenew> list = baseMapper.selectListRel(param);
// 排序
PageParam<AppRenew, AppRenewParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public AppRenew getByIdRel(Integer appRenewId) {
AppRenewParam param = new AppRenewParam();
param.setAppRenewId(appRenewId);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,47 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.oa.mapper.AppMapper;
import com.gxwebsoft.oa.service.AppService;
import com.gxwebsoft.oa.entity.App;
import com.gxwebsoft.oa.param.AppParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 应用管理记录表Service实现
*
* @author 科技小王子
* @since 2023-10-26 22:06:23
*/
@Service
public class AppServiceImpl extends ServiceImpl<AppMapper, App> implements AppService {
@Override
public PageResult<App> pageRel(AppParam param) {
PageParam<App, AppParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<App> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<App> listRel(AppParam param) {
List<App> list = baseMapper.selectListRel(param);
// 排序
PageParam<App, AppParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public App getByIdRel(Integer appId) {
AppParam param = new AppParam();
param.setAppId(appId);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,47 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.oa.mapper.AppUrlMapper;
import com.gxwebsoft.oa.service.AppUrlService;
import com.gxwebsoft.oa.entity.AppUrl;
import com.gxwebsoft.oa.param.AppUrlParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 项目域名Service实现
*
* @author 科技小王子
* @since 2024-04-15 13:01:34
*/
@Service
public class AppUrlServiceImpl extends ServiceImpl<AppUrlMapper, AppUrl> implements AppUrlService {
@Override
public PageResult<AppUrl> pageRel(AppUrlParam param) {
PageParam<AppUrl, AppUrlParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<AppUrl> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<AppUrl> listRel(AppUrlParam param) {
List<AppUrl> list = baseMapper.selectListRel(param);
// 排序
PageParam<AppUrl, AppUrlParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public AppUrl getByIdRel(Integer appUrlId) {
AppUrlParam param = new AppUrlParam();
param.setAppUrlId(appUrlId);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,93 @@
package com.gxwebsoft.oa.service.impl;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.net.url.UrlQuery;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.entity.AppUser;
import com.gxwebsoft.oa.mapper.AppUserMapper;
import com.gxwebsoft.oa.param.AppUserParam;
import com.gxwebsoft.oa.service.AppUserService;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 应用成员Service实现
*
* @author 科技小王子
* @since 2023-10-26 22:06:23
*/
@Service
public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> implements AppUserService {
@Override
public PageResult<AppUser> pageRel(AppUserParam param) {
PageParam<AppUser, AppUserParam> page = new PageParam<>(param);
// page.setDefaultOrder("create_time desc");
List<AppUser> list = baseMapper.selectPageRel(page, param);
PageResult<AppUser> result = new PageResult<>(list, page.getTotal());
final List<AppUser> appUserList = result.getList();
final Set<Integer> userIds = appUserList.stream().map(AppUser::getUserId).collect(Collectors.toSet());
// 请求主服务器获取用户信息
HashMap<String, Object> map = new HashMap<>();
map.put("userIds", userIds);
// 链式构建GET请求
final String build = UrlBuilder.of("https://server.gxwebsoft.com/api/system/user/page").setQuery(new UrlQuery(map)).build();
String response = HttpRequest.get(build)
.header("Authorization", param.getToken())
.header("Tenantid", param.getTenantId().toString())
.body(JSONObject.toJSONString(map))//表单内容
.timeout(20000)//超时,毫秒
.execute().body();
final ApiResult<PageResult<User>> userResult = JSONObject.parseObject(response, new TypeReference<ApiResult<PageResult<User>>>() {
});
final PageResult<User> data = userResult.getData();
System.out.println("data = " + data);
final List<User> userList = data.getList();
if (!CollectionUtils.isEmpty(userList)) {
final Map<Integer, List<User>> collect = userList.stream().collect(Collectors.groupingBy(User::getUserId));
appUserList.forEach(item -> {
final List<User> users = collect.get(item.getUserId());
if (!CollectionUtils.isEmpty(users)) {
final User user = users.get(0);
item.setNickname(user.getNickname());
item.setAvatar(user.getAvatar());
item.setPhone(user.getPhone());
item.setEmail(user.getEmail());
}
});
result.setList(appUserList);
}
return result;
}
@Override
public List<AppUser> listRel(AppUserParam param) {
List<AppUser> list = baseMapper.selectListRel(param);
// 排序
PageParam<AppUser, AppUserParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public AppUser getByIdRel(Integer appUserId) {
AppUserParam param = new AppUserParam();
param.setAppUserId(appUserId);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,47 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.oa.mapper.AssetsMapper;
import com.gxwebsoft.oa.service.AssetsService;
import com.gxwebsoft.oa.entity.Assets;
import com.gxwebsoft.oa.param.AssetsParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 服务器资产记录表Service实现
*
* @author 科技小王子
* @since 2023-10-26 21:08:27
*/
@Service
public class AssetsServiceImpl extends ServiceImpl<AssetsMapper, Assets> implements AssetsService {
@Override
public PageResult<Assets> pageRel(AssetsParam param) {
PageParam<Assets, AssetsParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
List<Assets> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<Assets> listRel(AssetsParam param) {
List<Assets> list = baseMapper.selectListRel(param);
// 排序
PageParam<Assets, AssetsParam> page = new PageParam<>();
page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public Assets getByIdRel(Integer assetsId) {
AssetsParam param = new AssetsParam();
param.setAssetsId(assetsId);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,47 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.oa.mapper.AssetsUserMapper;
import com.gxwebsoft.oa.service.AssetsUserService;
import com.gxwebsoft.oa.entity.AssetsUser;
import com.gxwebsoft.oa.param.AssetsUserParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 服务器成员管理Service实现
*
* @author 科技小王子
* @since 2023-10-26 21:08:27
*/
@Service
public class AssetsUserServiceImpl extends ServiceImpl<AssetsUserMapper, AssetsUser> implements AssetsUserService {
@Override
public PageResult<AssetsUser> pageRel(AssetsUserParam param) {
PageParam<AssetsUser, AssetsUserParam> page = new PageParam<>(param);
//page.setDefaultOrder("create_time desc");
List<AssetsUser> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<AssetsUser> listRel(AssetsUserParam param) {
List<AssetsUser> list = baseMapper.selectListRel(param);
// 排序
PageParam<AssetsUser, AssetsUserParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public AssetsUser getByIdRel(Integer id) {
AssetsUserParam param = new AssetsUserParam();
param.setId(id);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,47 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.oa.mapper.CompanyFieldMapper;
import com.gxwebsoft.oa.service.CompanyFieldService;
import com.gxwebsoft.oa.entity.CompanyField;
import com.gxwebsoft.oa.param.CompanyFieldParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 企业参数Service实现
*
* @author 科技小王子
* @since 2024-02-04 14:44:42
*/
@Service
public class CompanyFieldServiceImpl extends ServiceImpl<CompanyFieldMapper, CompanyField> implements CompanyFieldService {
@Override
public PageResult<CompanyField> pageRel(CompanyFieldParam param) {
PageParam<CompanyField, CompanyFieldParam> page = new PageParam<>(param);
//page.setDefaultOrder("create_time desc");
List<CompanyField> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<CompanyField> listRel(CompanyFieldParam param) {
List<CompanyField> list = baseMapper.selectListRel(param);
// 排序
PageParam<CompanyField, CompanyFieldParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public CompanyField getByIdRel(Integer id) {
CompanyFieldParam param = new CompanyFieldParam();
param.setId(id);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,47 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.oa.mapper.CompanyMapper;
import com.gxwebsoft.oa.service.CompanyService;
import com.gxwebsoft.oa.entity.Company;
import com.gxwebsoft.oa.param.CompanyParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 企业信息Service实现
*
* @author 科技小王子
* @since 2023-10-23 19:18:58
*/
@Service
public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> implements CompanyService {
@Override
public PageResult<Company> pageRel(CompanyParam param) {
PageParam<Company, CompanyParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<Company> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<Company> listRel(CompanyParam param) {
List<Company> list = baseMapper.selectListRel(param);
// 排序
PageParam<Company, CompanyParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public Company getByIdRel(Integer companyId) {
CompanyParam param = new CompanyParam();
param.setCompanyId(companyId);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,96 @@
package com.gxwebsoft.oa.service.impl;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.net.url.UrlQuery;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.entity.CompanyUser;
import com.gxwebsoft.oa.mapper.CompanyUserMapper;
import com.gxwebsoft.oa.param.CompanyUserParam;
import com.gxwebsoft.oa.service.CompanyUserService;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 成员管理Service实现
*
* @author 科技小王子
* @since 2024-02-04 14:44:42
*/
@Service
public class CompanyUserServiceImpl extends ServiceImpl<CompanyUserMapper, CompanyUser> implements CompanyUserService {
@Override
public PageResult<CompanyUser> pageRel(CompanyUserParam param) {
PageParam<CompanyUser, CompanyUserParam> page = new PageParam<>(param);
//page.setDefaultOrder("create_time desc");
List<CompanyUser> list = baseMapper.selectPageRel(page, param);
PageResult<CompanyUser> result = new PageResult<>(list, page.getTotal());
final List<CompanyUser> companyUserList = result.getList();
final Set<Integer> userIds = companyUserList.stream().map(CompanyUser::getUserId).collect(Collectors.toSet());
// 请求主服务器获取用户信息
HashMap<String, Object> map = new HashMap<>();
map.put("userIds", userIds);
System.out.println("map = " + map);
// 链式构建GET请求
final String build = UrlBuilder.of("https://server.gxwebsoft.com/api/system/user/page").setQuery(new UrlQuery(map)).build();
String response = HttpRequest.get(build)
.header("Authorization", param.getToken())
.header("Tenantid", param.getTenantId().toString())
.body(JSONObject.toJSONString(map))//表单内容
.timeout(20000)//超时,毫秒
.execute().body();
System.out.println("response = " + response);
final ApiResult<PageResult<User>> userResult = JSONObject.parseObject(response, new TypeReference<ApiResult<PageResult<User>>>() {
});
final PageResult<User> data = userResult.getData();
final List<User> userList = data.getList();
if (!CollectionUtils.isEmpty(userList)) {
final Map<Integer, List<User>> collect = userList.stream().collect(Collectors.groupingBy(User::getUserId));
companyUserList.forEach(item -> {
final List<User> users = collect.get(item.getUserId());
if (!CollectionUtils.isEmpty(users)) {
final User user = users.get(0);
item.setNickname(user.getNickname());
item.setAvatar(user.getAvatar());
item.setPhone(user.getPhone());
item.setEmail(user.getEmail());
}
});
result.setList(companyUserList);
}
return result;
}
@Override
public List<CompanyUser> listRel(CompanyUserParam param) {
List<CompanyUser> list = baseMapper.selectListRel(param);
// 排序
PageParam<CompanyUser, CompanyUserParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public CompanyUser getByIdRel(Integer companyUserId) {
CompanyUserParam param = new CompanyUserParam();
param.setCompanyUserId(companyUserId);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,47 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.oa.mapper.LinkMapper;
import com.gxwebsoft.oa.service.LinkService;
import com.gxwebsoft.oa.entity.Link;
import com.gxwebsoft.oa.param.LinkParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 常用链接Service实现
*
* @author 科技小王子
* @since 2024-01-14 11:50:39
*/
@Service
public class LinkServiceImpl extends ServiceImpl<LinkMapper, Link> implements LinkService {
@Override
public PageResult<Link> pageRel(LinkParam param) {
PageParam<Link, LinkParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc,create_time desc");
List<Link> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<Link> listRel(LinkParam param) {
List<Link> list = baseMapper.selectListRel(param);
// 排序
PageParam<Link, LinkParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc,create_time desc");
return page.sortRecords(list);
}
@Override
public Link getByIdRel(Integer id) {
LinkParam param = new LinkParam();
param.setId(id);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,58 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.oa.entity.Product;
import com.gxwebsoft.oa.mapper.ProductMapper;
import com.gxwebsoft.oa.param.ProductParam;
import com.gxwebsoft.oa.service.CompanyService;
import com.gxwebsoft.oa.service.ProductService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 产品记录表Service实现
*
* @author 科技小王子
* @since 2023-12-14 14:18:01
*/
@Service
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements ProductService {
@Resource
private CompanyService companyService;
@Override
public PageResult<Product> pageRel(ProductParam param) {
PageParam<Product, ProductParam> page = new PageParam<>(param);
page.setDefaultOrder("sort_number asc, create_time desc");
List<Product> list = baseMapper.selectPageRel(page, param);
list.forEach(d -> {
d.setCompany(companyService.getById(d.getCompanyId()));
});
return new PageResult<>(list, page.getTotal());
}
@Override
public List<Product> listRel(ProductParam param) {
List<Product> list = baseMapper.selectListRel(param);
// 排序
PageParam<Product, ProductParam> page = new PageParam<>();
page.setDefaultOrder("sort_number asc, create_time desc");
return page.sortRecords(list);
}
@Override
public Product getByIdRel(Integer productId) {
ProductParam param = new ProductParam();
param.setProductId(productId);
Product product = param.getOne(baseMapper.selectListRel(param));
if(product != null){
product.setCompany(companyService.getById(product.getCompanyId()));
}
return product;
}
}
@@ -0,0 +1,47 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.oa.mapper.ProductTabsMapper;
import com.gxwebsoft.oa.service.ProductTabsService;
import com.gxwebsoft.oa.entity.ProductTabs;
import com.gxwebsoft.oa.param.ProductTabsParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 产品标签记录表Service实现
*
* @author 科技小王子
* @since 2023-12-14 15:55:52
*/
@Service
public class ProductTabsServiceImpl extends ServiceImpl<ProductTabsMapper, ProductTabs> implements ProductTabsService {
@Override
public PageResult<ProductTabs> pageRel(ProductTabsParam param) {
PageParam<ProductTabs, ProductTabsParam> page = new PageParam<>(param);
//page.setDefaultOrder("create_time desc");
List<ProductTabs> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<ProductTabs> listRel(ProductTabsParam param) {
List<ProductTabs> list = baseMapper.selectListRel(param);
// 排序
PageParam<ProductTabs, ProductTabsParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public ProductTabs getByIdRel(Integer tabId) {
ProductTabsParam param = new ProductTabsParam();
param.setTabId(tabId);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,145 @@
package com.gxwebsoft.oa.service.impl;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.net.url.UrlQuery;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.common.system.service.UserRoleService;
import com.gxwebsoft.oa.entity.TaskCount;
import com.gxwebsoft.oa.mapper.TaskCountMapper;
import com.gxwebsoft.oa.param.TaskCountParam;
import com.gxwebsoft.oa.service.TaskCountService;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
* 数据统计Service实现
*
* @author 科技小王子
* @since 2023-10-30 14:25:30
*/
@Service
public class TaskCountServiceImpl extends ServiceImpl<TaskCountMapper, TaskCount> implements TaskCountService {
@Resource
private UserRoleService userRoleService;
@Override
public PageResult<TaskCount> pageRel(TaskCountParam param) {
PageParam<TaskCount, TaskCountParam> page = new PageParam<>(param);
page.setDefaultOrder("month desc");
List<TaskCount> list = baseMapper.selectPageRel(page, param);
final PageResult<TaskCount> result = new PageResult<>(list, page.getTotal());
// 请求主服务器获取用户信息
final List<TaskCount> taskCountList = result.getList();
System.out.println("taskCountList = " + taskCountList);
final Set<Integer> userIds = taskCountList.stream().map(TaskCount::getUserId).collect(Collectors.toSet());
HashMap<String, Object> map = new HashMap<>();
// map.put("roleCode","commander");
map.put("userIds", userIds);
if (!userIds.isEmpty()) {
// 链式构建GET请求
final String build = UrlBuilder.of("https://server.gxwebsoft.com/api/system/user/page").setQuery(new UrlQuery(map)).build();
String response = HttpRequest.get(build)
.header("Authorization", param.getToken())
.header("Tenantid", param.getTenantId().toString())
.body(JSONObject.toJSONString(map))//表单内容
.timeout(20000)//超时,毫秒
.execute().body();
final ApiResult<PageResult<User>> userResult = JSONObject.parseObject(response, new TypeReference<ApiResult<PageResult<User>>>() {
});
final Map<Integer, List<User>> collect = userResult.getData().getList().stream().collect(Collectors.groupingBy(User::getUserId));
if (!CollectionUtils.isEmpty(collect)) {
taskCountList.forEach(item -> {
final List<User> users = collect.get(item.getUserId());
if(!CollectionUtils.isEmpty(users)) {
final User user = users.get(0);
item.setNickname(user.getNickname());
item.setAvatar(user.getAvatar());
item.setPhone(user.getPhone());
}
});
}
result.setList(taskCountList);
}
return result;
}
// 远程同步用户数据
private void updateServerUser(TaskCountParam param){
// 请求主服务器获取用户信息
HashMap<String, Object> map = new HashMap<>();
map.put("isStaff", "1");
System.out.println("map = " + map);
// 链式构建GET请求
final String build = UrlBuilder.of("https://server.gxwebsoft.com/api/system/user/page").setQuery(new UrlQuery(map)).build();
String response = HttpRequest.get(build)
.header("Authorization", param.getToken())
.header("Tenantid", param.getTenantId().toString())
.body(JSONObject.toJSONString(map))//表单内容
.timeout(20000)//超时,毫秒
.execute().body();
final ApiResult<PageResult<User>> userResult = JSONObject.parseObject(response, new TypeReference<ApiResult<PageResult<User>>>() {
});
final Map<Integer, List<User>> collect = userResult.getData().getList().stream().collect(Collectors.groupingBy(User::getUserId));
final List<User> userList = userResult.getData().getList();
TaskCount taskCount = new TaskCount();
userList.forEach(user -> {
if (count(new LambdaQueryWrapper<TaskCount>().eq(TaskCount::getUserId, user.getUserId())) == 0) {
taskCount.setUserId(user.getUserId());
taskCount.setOrganizationId(user.getOrganizationId());
taskCount.setTenantId(user.getTenantId());
user.getRoles().forEach(role -> {
if(role.getRoleCode().equals("staff") || role.getRoleCode().equals("commander")){
taskCount.setRoleCode("commander");
taskCount.setRoleId(role.getRoleId());
}
if(role.getRoleCode().equals("admin")){
taskCount.setRoleId(role.getRoleId());
taskCount.setRoleCode(role.getRoleCode());
}
});
save(taskCount);
}
});
}
@Override
public List<TaskCount> listRel(TaskCountParam param) {
List<TaskCount> list = baseMapper.selectListRel(param);
// 排序
PageParam<TaskCount, TaskCountParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public TaskCount getByIdRel(Integer taskCountId) {
TaskCountParam param = new TaskCountParam();
param.setTaskCountId(taskCountId);
return param.getOne(baseMapper.selectListRel(param));
}
@Override
public TaskCount getByUserId(Integer userId) {
TaskCountParam param = new TaskCountParam();
param.setUserId(userId);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,90 @@
package com.gxwebsoft.oa.service.impl;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.net.url.UrlQuery;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.common.core.web.ApiResult;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.mapper.TaskRecordMapper;
import com.gxwebsoft.oa.service.TaskRecordService;
import com.gxwebsoft.oa.entity.TaskRecord;
import com.gxwebsoft.oa.param.TaskRecordParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 工单回复记录表Service实现
*
* @author 科技小王子
* @since 2023-10-23 18:53:01
*/
@Service
public class TaskRecordServiceImpl extends ServiceImpl<TaskRecordMapper, TaskRecord> implements TaskRecordService {
@Override
public PageResult<TaskRecord> pageRel(TaskRecordParam param) {
PageParam<TaskRecord, TaskRecordParam> page = new PageParam<>(param);
//page.setDefaultOrder("create_time desc");
List<TaskRecord> list = baseMapper.selectPageRel(page, param);
final PageResult<TaskRecord> result = new PageResult<>(list, page.getTotal());
// 请求主服务器获取用户信息
final List<TaskRecord> taskRecordList = result.getList();
final Set<Integer> userIds = taskRecordList.stream().map(TaskRecord::getUserId).collect(Collectors.toSet());
HashMap<String, Object> map = new HashMap<>();
map.put("userIds", userIds);
// 链式构建GET请求
final String build = UrlBuilder.of("https://server.gxwebsoft.com/api/system/user/page").setQuery(new UrlQuery(map)).build();
String response = HttpRequest.get(build)
.header("Authorization", param.getToken())
.header("Tenantid", param.getTenantId().toString())
.body(JSONObject.toJSONString(map))//表单内容
.timeout(20000)//超时,毫秒
.execute().body();
final ApiResult<PageResult<User>> userResult = JSONObject.parseObject(response, new TypeReference<ApiResult<PageResult<User>>>() {
});
final Map<Integer, List<User>> collect = userResult.getData().getList().stream().collect(Collectors.groupingBy(User::getUserId));
taskRecordList.forEach(item -> {
final List<User> users = collect.get(item.getUserId());
if(!CollectionUtils.isEmpty(users)) {
final User user = users.get(0);
item.setNickname(user.getNickname());
item.setAvatar(user.getAvatar());
item.setCity(user.getCity());
item.setUser(user);
}
});
result.setList(taskRecordList);
return result;
}
@Override
public List<TaskRecord> listRel(TaskRecordParam param) {
List<TaskRecord> list = baseMapper.selectListRel(param);
// 排序
PageParam<TaskRecord, TaskRecordParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public TaskRecord getByIdRel(Integer taskRecordId) {
TaskRecordParam param = new TaskRecordParam();
param.setTaskRecordId(taskRecordId);
return param.getOne(baseMapper.selectListRel(param));
}
}
@@ -0,0 +1,252 @@
package com.gxwebsoft.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateRange;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.common.system.entity.User;
import com.gxwebsoft.oa.entity.Task;
import com.gxwebsoft.oa.entity.TaskCount;
import com.gxwebsoft.oa.entity.TaskRecord;
import com.gxwebsoft.oa.mapper.TaskMapper;
import com.gxwebsoft.oa.param.TaskParam;
import com.gxwebsoft.oa.service.TaskCountService;
import com.gxwebsoft.oa.service.TaskRecordService;
import com.gxwebsoft.oa.service.TaskService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import static com.gxwebsoft.common.core.constants.TaskConstants.*;
/**
* 任务记录表Service实现
*
* @author 科技小王子
* @since 2023-10-23 18:53:01
*/
@Service
public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements TaskService {
@Resource
private TaskRecordService taskRecordService;
@Resource
private TaskCountService taskCountService;
@Override
public PageResult<Task> pageRel(TaskParam param) {
PageParam<Task, TaskParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
List<Task> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<Task> listRel(TaskParam param) {
List<Task> list = baseMapper.selectListRel(param);
// 排序
PageParam<Task, TaskParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public Task getByIdRel(Integer taskId) {
TaskParam param = new TaskParam();
param.setTaskId(taskId);
return param.getOne(baseMapper.selectListRel(param));
}
@Override
public ArrayList<Object> getCountNum(User loginUser, TaskParam param) {
Integer type = loginUser.getType();
final Integer userId = param.getUserId();
// if (param.getUserId() != null) {
// this.userId = param.getUserId();
// }else {
// this.userId = loginUser.getUserId();
// }
AtomicInteger count1 = new AtomicInteger(count(new LambdaQueryWrapper<Task>().eq(Task::getStatus, 0)));
AtomicInteger count2 = new AtomicInteger(count(new LambdaQueryWrapper<Task>().eq(Task::getStatus, 1)));
// 非管理员仅可浏览和自己相关的工单
loginUser.getRoles().forEach(d -> {
if (type.equals(6)) {
count1.set(count(new LambdaQueryWrapper<Task>().eq(Task::getStatus, 0).eq(Task::getCommander, userId)));
count2.set(count(new LambdaQueryWrapper<Task>().eq(Task::getStatus, 1).eq(Task::getCommander, userId)));
}
if (type.equals(10)) {
count1.set(count(new LambdaQueryWrapper<Task>().eq(Task::getStatus, 0).eq(Task::getPromoter, userId)));
count2.set(count(new LambdaQueryWrapper<Task>().eq(Task::getStatus, 1).eq(Task::getPromoter, userId)));
}
});
JSONObject json1 = new JSONObject();
json1.put("tab", "待处理");
json1.put("key", "0");
json1.put("count", count1);
JSONObject json2 = new JSONObject();
json2.put("tab", "已完成");
json2.put("key", "1");
json2.put("count", count2);
ArrayList<Object> objects = new ArrayList<>();
objects.add(json1);
objects.add(json2);
return objects;
}
/**
* 提交工单记录
*/
@Override
public boolean saveByRel(Task task) {
// 保存工单
save(task);
// 添加第一条记录
TaskRecord taskRecord = BeanUtil.copyProperties(task, TaskRecord.class);
taskRecord.setCreateTime(new Date());
taskRecord.setUpdateTime(new Date());
taskRecordService.save(taskRecord);
// 添加统计记录表
if (taskCountService.count(new LambdaQueryWrapper<TaskCount>().eq(TaskCount::getUserId, task.getUserId())) == 0) {
final TaskCount taskCount = new TaskCount();
taskCount.setUserId(task.getUserId());
taskCount.setRoleId(task.getRoleId());
taskCount.setRoleCode(task.getRoleCode());
taskCount.setOrganizationId(task.getOrganizationId());
taskCountService.save(taskCount);
}
// 更新统计表
TaskCount taskCount = taskCountService.getByUserId(task.getUserId());
taskCount.setPending(taskCount.getPending() + 1);
taskCountService.updateById(taskCount);
return true;
}
@Override
public void updateCount(Task param) {
final Task task = getById(param.getTaskId());
// 当前时间 2023-11-04 21:47:16
final String now = DateUtil.now();
// 今天日期 2023-11-04
final String today = DateUtil.today();
// 今天开始的时间 2023-11-04 00:00:00
final DateTime dayStart = DateUtil.beginOfDay(DateUtil.date());
// 今天结束的时间 2023-11-04 00:00:00
final DateTime dayEnd = DateUtil.offsetDay(dayStart, 1);
// 当前月份的开始时间 2023-11-01 00:00:00
final DateTime monthStart = DateUtil.beginOfMonth(DateUtil.date());
// 当期月份的结束时间 2023-12-01 00:00:00
final DateTime monthEnd = DateUtil.offsetMonth(monthStart, 1);
// 今年的开始时间
final DateTime yearStart = DateUtil.beginOfYear(DateUtil.date());
// 获取年的值
final int year = DateUtil.year(yearStart);
// 是否闰年
final boolean leapYear = DateUtil.isLeapYear(year);
// 获取今年的总天数
int daysByYear = leapYear ? 366 : 365;
// 今年的结束时间
final DateTime yearEnd = DateUtil.offsetDay(yearStart, daysByYear);
// 创建日期范围生成器
DateRange range = DateUtil.range(monthStart, monthEnd, DateField.MONTH);
// 查询待处理的工单总数量
final int pendingTasks = count(new LambdaQueryWrapper<Task>().eq(Task::getStatus, TASK_STATUS_0));
// 查询今日已处理的工单数量
final int todayTasks = count(new LambdaQueryWrapper<Task>().between(Task::getUpdateTime, dayStart, dayEnd).eq(Task::getProgress,COMPLETED).eq(Task::getStatus,TASK_STATUS_1));
// 查询本月已处理的工单数量
final int monthTasks = count(new LambdaQueryWrapper<Task>().between(Task::getUpdateTime, monthStart, monthEnd).eq(Task::getProgress,COMPLETED).eq(Task::getStatus,TASK_STATUS_1));
// 查询本年已处理的工单总数量
final int yearTasks = count(new LambdaQueryWrapper<Task>().between(Task::getCreateTime, yearStart, yearEnd).eq(Task::getProgress,COMPLETED).eq(Task::getStatus, TASK_STATUS_1));
// 查询公司总处理工单数量
final int totalTasks = count(new LambdaQueryWrapper<Task>().eq(Task::getProgress,COMPLETED).eq(Task::getStatus, TASK_STATUS_1));
// 查询当前登录用户待处理的工单数量
final int userPendingTasks = count(new LambdaQueryWrapper<Task>().eq(Task::getProgress,COMPLETED).eq(Task::getStatus, TASK_STATUS_1).eq(Task::getUserId,task.getUserId()));
// 查询当前登录用户今日已处理的工单数量
final int userTodayTasks = count(new LambdaQueryWrapper<Task>().between(Task::getUpdateTime,dayStart,dayEnd).eq(Task::getProgress,COMPLETED).eq(Task::getStatus, TASK_STATUS_1).eq(Task::getUserId,task.getUserId()));
// 查询当前登录用户本月已处理的工单数量
final int userMonthTasks = count(new LambdaQueryWrapper<Task>().between(Task::getUpdateTime,monthStart,monthEnd).eq(Task::getProgress,COMPLETED).eq(Task::getStatus, TASK_STATUS_1).eq(Task::getUserId,task.getUserId()));
// 查询当前登录用户本年已处理的工单数量
final int userYearTasks = count(new LambdaQueryWrapper<Task>().between(Task::getCreateTime,yearStart,yearEnd).eq(Task::getProgress,COMPLETED).eq(Task::getStatus, TASK_STATUS_1).eq(Task::getUserId,task.getUserId()));
// 查询当前登录用户已处理的总工单数量
final int userTotalTasks = count(new LambdaQueryWrapper<Task>().eq(Task::getProgress,COMPLETED).eq(Task::getStatus, TASK_STATUS_1).eq(Task::getUserId,task.getUserId()));
// 查询受理人待处理的工单数量
final int commanderPendingTasks = count(new LambdaQueryWrapper<Task>().eq(Task::getStatus, TASK_STATUS_0).eq(Task::getCommander,task.getCommander()));
// 查询受理人今日已处理的工单数量
final int commanderTodayTasks = count(new LambdaQueryWrapper<Task>().between(Task::getUpdateTime,dayStart,dayEnd).eq(Task::getProgress,COMPLETED).eq(Task::getStatus, TASK_STATUS_1).eq(Task::getCommander,task.getCommander()));
// 查询受理人本月已处理的工单数量
final int commanderMonthTasks = count(new LambdaQueryWrapper<Task>().between(Task::getUpdateTime,monthStart,monthEnd).eq(Task::getProgress,COMPLETED).eq(Task::getStatus, TASK_STATUS_1).eq(Task::getCommander,task.getCommander()));
// 查询受理人本年已处理的工单数量
final int commanderYearTasks = count(new LambdaQueryWrapper<Task>().between(Task::getCreateTime,yearStart,yearEnd).eq(Task::getProgress,COMPLETED).eq(Task::getStatus, TASK_STATUS_1).eq(Task::getCommander,task.getCommander()));
// 查询受理人已处理的总工单数量
final int commanderTotalTasks = count(new LambdaQueryWrapper<Task>().eq(Task::getProgress,COMPLETED).eq(Task::getStatus, TASK_STATUS_1).eq(Task::getCommander,task.getCommander()));
// 统计工单发起人
if (taskCountService.count(new LambdaQueryWrapper<TaskCount>().eq(TaskCount::getUserId,task.getUserId())) == 0) {
final TaskCount taskCount = new TaskCount();
taskCount.setUserId(task.getUserId());
taskCountService.save(taskCount);
}
TaskCount user = taskCountService.getByUserId(task.getUserId());
System.out.println("user = " + user);
user.setPending(userPendingTasks);
user.setToday(userTodayTasks);
user.setMonth(userMonthTasks);
user.setYear(userYearTasks);
user.setTotal(userTotalTasks);
taskCountService.updateById(user);
if(!user.getUserId().equals(task.getCommander())){
// 统计工单受理人
TaskCount commander = taskCountService.getByUserId(task.getCommander());
if(commander != null){
commander.setPending(commanderPendingTasks);
commander.setToday(commanderTodayTasks);
commander.setMonth(commanderMonthTasks);
commander.setYear(commanderYearTasks);
commander.setTotal(commanderTotalTasks);
taskCountService.updateById(commander);
}
}
// 统计公司数据
if (taskCountService.count(new LambdaQueryWrapper<TaskCount>().eq(TaskCount::getUserId,0).eq(TaskCount::getRoleCode, "superAdmin")) == 0) {
final TaskCount taskCount = new TaskCount();
taskCount.setRoleCode("superAdmin");
taskCountService.save(taskCount);
}
final TaskCount superAdmin = taskCountService.getByUserId(param.getLoginUserId());
if (superAdmin.getRoleCode().equals("superAdmin") || superAdmin.getRoleCode().equals("admin")) {
superAdmin.setPending(pendingTasks);
superAdmin.setToday(todayTasks);
superAdmin.setMonth(monthTasks);
superAdmin.setYear(yearTasks);
superAdmin.setTotal(totalTasks);
taskCountService.updateById(superAdmin);
}
}
@Override
public PageResult<Task> pageRelAll(TaskParam param) {
PageParam<Task, TaskParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc");
List<Task> list = baseMapper.selectPageRelAll(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public void updateByIdAll(Task task) {
baseMapper.updateByTaskId(task);
}
}
@@ -0,0 +1,47 @@
package com.gxwebsoft.oa.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.oa.mapper.TaskUserMapper;
import com.gxwebsoft.oa.service.TaskUserService;
import com.gxwebsoft.oa.entity.TaskUser;
import com.gxwebsoft.oa.param.TaskUserParam;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 工单成员Service实现
*
* @author 科技小王子
* @since 2023-10-23 18:53:01
*/
@Service
public class TaskUserServiceImpl extends ServiceImpl<TaskUserMapper, TaskUser> implements TaskUserService {
@Override
public PageResult<TaskUser> pageRel(TaskUserParam param) {
PageParam<TaskUser, TaskUserParam> page = new PageParam<>(param);
//page.setDefaultOrder("create_time desc");
List<TaskUser> list = baseMapper.selectPageRel(page, param);
return new PageResult<>(list, page.getTotal());
}
@Override
public List<TaskUser> listRel(TaskUserParam param) {
List<TaskUser> list = baseMapper.selectListRel(param);
// 排序
PageParam<TaskUser, TaskUserParam> page = new PageParam<>();
//page.setDefaultOrder("create_time desc");
return page.sortRecords(list);
}
@Override
public TaskUser getByIdRel(Integer taskUserId) {
TaskUserParam param = new TaskUserParam();
param.setTaskUserId(taskUserId);
return param.getOne(baseMapper.selectListRel(param));
}
}