bug 和优化
This commit is contained in:
parent
9ea6a3b501
commit
78be975a6a
@ -52,10 +52,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Arrays;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@ -121,6 +118,16 @@ public class AuthController {
|
|||||||
QueryWrapper<SysNotice> queryWrapper = new QueryWrapper<SysNotice>()
|
QueryWrapper<SysNotice> queryWrapper = new QueryWrapper<SysNotice>()
|
||||||
.in( "rec_uid", userId);
|
.in( "rec_uid", userId);
|
||||||
List<SysNotice> sysNotices = sysNoticeMapper.selectList(queryWrapper);
|
List<SysNotice> sysNotices = sysNoticeMapper.selectList(queryWrapper);
|
||||||
|
sysNotices.sort(new Comparator<SysNotice>() {
|
||||||
|
@Override
|
||||||
|
public int compare(SysNotice o1, SysNotice o2) {
|
||||||
|
if (o1.getReaded() == 1){
|
||||||
|
return 1;
|
||||||
|
}else{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
// for (int i = 0; i < 100; i++) {
|
// for (int i = 0; i < 100; i++) {
|
||||||
for (SysNotice sysNotice : sysNotices) {
|
for (SysNotice sysNotice : sysNotices) {
|
||||||
dto = new WebSocketMessageDto();
|
dto = new WebSocketMessageDto();
|
||||||
|
@ -251,6 +251,10 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本月首日0点
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public static Date getFirstDayZeroTimeByMonth() {
|
public static Date getFirstDayZeroTimeByMonth() {
|
||||||
// 获取当前日期的Calendar对象
|
// 获取当前日期的Calendar对象
|
||||||
Calendar calendar = Calendar.getInstance();
|
Calendar calendar = Calendar.getInstance();
|
||||||
@ -270,6 +274,11 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
// System.out.println("本月第一天的0点日期: " + firstDayOfMonth);
|
// System.out.println("本月第一天的0点日期: " + firstDayOfMonth);
|
||||||
return firstDayOfMonth;
|
return firstDayOfMonth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上月首日
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public static Date getLastMonthFirstDayZeroTime() {
|
public static Date getLastMonthFirstDayZeroTime() {
|
||||||
// 获取当前日期的Calendar对象
|
// 获取当前日期的Calendar对象
|
||||||
Calendar calendar = Calendar.getInstance();
|
Calendar calendar = Calendar.getInstance();
|
||||||
@ -291,6 +300,12 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||||||
// System.out.println("本月第一天的0点日期: " + firstDayOfMonth);
|
// System.out.println("本月第一天的0点日期: " + firstDayOfMonth);
|
||||||
return firstDayOfMonth;
|
return firstDayOfMonth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 本月最后时间
|
||||||
|
* @param date
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public static Date getEndTimeByMonth(Date date) {
|
public static Date getEndTimeByMonth(Date date) {
|
||||||
// 获取当前日期的Calendar对象
|
// 获取当前日期的Calendar对象
|
||||||
Calendar calendar = Calendar.getInstance();
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
package com.pusong.common.json.config;
|
package com.pusong.common.json.config;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
import com.fasterxml.jackson.core.JsonGenerator;
|
import com.fasterxml.jackson.core.JsonGenerator;
|
||||||
import com.fasterxml.jackson.databind.JsonSerializer;
|
import com.fasterxml.jackson.databind.JsonSerializer;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||||
import com.fasterxml.jackson.databind.SerializerProvider;
|
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
@ -10,9 +13,12 @@ import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
|||||||
import com.pusong.common.json.handler.BigNumberSerializer;
|
import com.pusong.common.json.handler.BigNumberSerializer;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||||
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
|
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
|
||||||
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
|
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
|
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@ -30,7 +36,14 @@ import java.util.TimeZone;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@AutoConfiguration(before = JacksonAutoConfiguration.class)
|
@AutoConfiguration(before = JacksonAutoConfiguration.class)
|
||||||
public class JacksonConfig {
|
public class JacksonConfig {
|
||||||
|
@Bean
|
||||||
|
@Primary
|
||||||
|
@ConditionalOnMissingBean(ObjectMapper.class)
|
||||||
|
public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
|
||||||
|
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
|
||||||
|
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
||||||
|
return objectMapper;
|
||||||
|
}
|
||||||
@Bean
|
@Bean
|
||||||
public Jackson2ObjectMapperBuilderCustomizer customizer() {
|
public Jackson2ObjectMapperBuilderCustomizer customizer() {
|
||||||
return builder -> {
|
return builder -> {
|
||||||
@ -58,6 +71,7 @@ public class JacksonConfig {
|
|||||||
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(formatter));
|
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(formatter));
|
||||||
builder.modules(javaTimeModule);
|
builder.modules(javaTimeModule);
|
||||||
builder.timeZone(TimeZone.getDefault());
|
builder.timeZone(TimeZone.getDefault());
|
||||||
|
builder.featuresToDisable(SerializationFeature.WRITE_NULL_MAP_VALUES);
|
||||||
log.info("初始化 jackson 配置");
|
log.info("初始化 jackson 配置");
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -43,14 +43,14 @@ public enum DataScopeType {
|
|||||||
DEPT_AND_CHILD("4", " #{#deptName} IN ( #{@sdss.getDeptAndChild( #user.deptId )} )", " 1 = 1 "),
|
DEPT_AND_CHILD("4", " #{#deptName} IN ( #{@sdss.getDeptAndChild( #user.deptId )} )", " 1 = 1 "),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 仅本人数据权限
|
* 仅本人数据权限。 方法注解加该参数并且有《财务合同》角色,这个方法则强制查询仅自己,不管这个角色是否还有高级角色
|
||||||
*/
|
*/
|
||||||
SELF("5", " #{#userName} = #{#user.userId} ", " 1 = 0 "),
|
SELF("5", " #{#userName} = #{#user.userId} ", " 1 = 0 "),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 财务合同部门及以下数据
|
* 财务合同部门及以下数据 方法注解加该参数并且有《财务合同》角色,这个方法则强制查询部门及以下,不管这个用户是否还有高级角色
|
||||||
*/
|
*/
|
||||||
CAIWU_HETONG("6", " #{#deptName} = #{#user.deptId} ", " 1 = 0 ")
|
CAIWU_HETONG("6", " #{#deptName} = #{#user.deptId} or #{#userName} = #{#user.userId} ", " 1 = 1 ")
|
||||||
;
|
;
|
||||||
|
|
||||||
private final String code;
|
private final String code;
|
||||||
|
@ -105,7 +105,7 @@ public class PlusDataPermissionHandler {
|
|||||||
/**
|
/**
|
||||||
* 构造数据过滤sql
|
* 构造数据过滤sql
|
||||||
*/
|
*/
|
||||||
private String buildDataFilter(DataColumn[] dataColumns, boolean isSelect) {
|
private String buildDataFilter(DataColumn[] funcDataColumns, boolean isSelect) {
|
||||||
// 更新或删除需满足所有条件
|
// 更新或删除需满足所有条件
|
||||||
String joinStr = isSelect ? " OR " : " AND ";
|
String joinStr = isSelect ? " OR " : " AND ";
|
||||||
LoginUser user = DataPermissionHelper.getVariable("user");
|
LoginUser user = DataPermissionHelper.getVariable("user");
|
||||||
@ -116,42 +116,67 @@ public class PlusDataPermissionHandler {
|
|||||||
for (RoleDTO role : user.getRoles()) {
|
for (RoleDTO role : user.getRoles()) {
|
||||||
user.setRoleId(role.getRoleId());
|
user.setRoleId(role.getRoleId());
|
||||||
// 获取角色权限泛型
|
// 获取角色权限泛型
|
||||||
DataScopeType type = DataScopeType.findCode(role.getDataScope());
|
DataScopeType roleDataType = DataScopeType.findCode(role.getDataScope());
|
||||||
if (ObjectUtil.isNull(type)) {
|
if (ObjectUtil.isNull(roleDataType)) {
|
||||||
throw new ServiceException("角色数据范围异常 => " + role.getDataScope());
|
throw new ServiceException("角色数据范围异常 => " + role.getDataScope());
|
||||||
}
|
}
|
||||||
// 全部数据权限直接返回
|
// 全部数据权限直接返回
|
||||||
if (type == DataScopeType.ALL) {
|
if (roleDataType == DataScopeType.ALL) {
|
||||||
// return "";
|
// return "";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
boolean isSuccess = false;
|
boolean isSuccess = false;
|
||||||
for (DataColumn dataColumn : dataColumns) {
|
for (DataColumn funcDataColumn : funcDataColumns) {
|
||||||
if (type == DataScopeType.CAIWU_HETONG && DataScopeType.CAIWU_HETONG != dataColumn.dataScopeType()){
|
// if (type == DataScopeType.CAIWU_HETONG && DataScopeType.CAIWU_HETONG != dataColumn.dataScopeType()){
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
String sqlTemplate = roleDataType.getSqlTemplate();
|
||||||
|
|
||||||
|
boolean check = false;
|
||||||
|
if (roleDataType == DataScopeType.CAIWU_HETONG){
|
||||||
|
if (DataScopeType.SELF == funcDataColumn.dataScopeType() || DataScopeType.CAIWU_HETONG == funcDataColumn.dataScopeType()){
|
||||||
|
check = true;
|
||||||
|
sqlTemplate = funcDataColumn.dataScopeType().getSqlTemplate();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
check = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!check){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dataColumn.key().length != dataColumn.value().length) {
|
|
||||||
|
if (DataScopeType.SELF != funcDataColumn.dataScopeType()
|
||||||
|
&& DataScopeType.CAIWU_HETONG != funcDataColumn.dataScopeType()
|
||||||
|
&& DataScopeType.CAIWU_HETONG != funcDataColumn.dataScopeType()){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (funcDataColumn.key().length != funcDataColumn.value().length) {
|
||||||
throw new ServiceException("角色数据范围异常 => key与value长度不匹配");
|
throw new ServiceException("角色数据范围异常 => key与value长度不匹配");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 不包含 key 变量 则不处理
|
// 不包含 key 变量 则不处理
|
||||||
if (!StringUtils.containsAny(type.getSqlTemplate(),
|
if (!StringUtils.containsAny(sqlTemplate,
|
||||||
Arrays.stream(dataColumn.key()).map(key -> "#" + key).toArray(String[]::new))) {
|
Arrays.stream(funcDataColumn.key()).map(key -> "#" + key).toArray(String[]::new))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// 设置注解变量 key 为表达式变量 value 为变量值
|
// 设置注解变量 key 为表达式变量 value 为变量值
|
||||||
for (int i = 0; i < dataColumn.key().length; i++) {
|
for (int i = 0; i < funcDataColumn.key().length; i++) {
|
||||||
context.setVariable(dataColumn.key()[i], dataColumn.value()[i]);
|
context.setVariable(funcDataColumn.key()[i], funcDataColumn.value()[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 解析sql模板并填充
|
// 解析sql模板并填充
|
||||||
String sql = parser.parseExpression(type.getSqlTemplate(), parserContext).getValue(context, String.class);
|
String sql = parser.parseExpression(sqlTemplate, parserContext).getValue(context, String.class);
|
||||||
conditions.add(joinStr + sql);
|
conditions.add(joinStr + sql);
|
||||||
isSuccess = true;
|
isSuccess = true;
|
||||||
}
|
}
|
||||||
// 未处理成功则填充兜底方案
|
// 未处理成功则填充兜底方案
|
||||||
if (!isSuccess && StringUtils.isNotBlank(type.getElseSql())) {
|
if (!isSuccess && StringUtils.isNotBlank(roleDataType.getElseSql())) {
|
||||||
conditions.add(joinStr + type.getElseSql());
|
conditions.add(joinStr + roleDataType.getElseSql());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,6 +62,17 @@ public class HomeController extends BaseController {
|
|||||||
public R<RenewalInfoVo> renewal(@RequestParam() Integer type) {
|
public R<RenewalInfoVo> renewal(@RequestParam() Integer type) {
|
||||||
return R.ok(homeService.renewal(type));
|
return R.ok(homeService.renewal(type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新签老客户新客户统计
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("business:salary:list")
|
||||||
|
@GetMapping("/contractNumByCusIsOld")
|
||||||
|
public R<OldOrNewCusContractCountVo> contractNumByCusIsOld(@RequestParam() Integer type) {
|
||||||
|
return R.ok(homeService.contractNumByCusIsOld(type));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 首页大盘数据:回款情况
|
* 首页大盘数据:回款情况
|
||||||
* @param type 1本月 2上月 3本季度 4本年 5所有
|
* @param type 1本月 2上月 3本季度 4本年 5所有
|
||||||
|
@ -25,6 +25,7 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -114,8 +115,8 @@ public class PsTaskController extends BaseController {
|
|||||||
@Log(title = "主任务完成")
|
@Log(title = "主任务完成")
|
||||||
@SaCheckPermission("business:task:list")
|
@SaCheckPermission("business:task:list")
|
||||||
@GetMapping("/mainFinish")
|
@GetMapping("/mainFinish")
|
||||||
public R<Void> mainFinish(@NotNull Long id) {
|
public R<Void> mainFinish(@NotNull Long id, Date firstFilingTime) {
|
||||||
contractInfoService.finish(psTaskMainService.finishMain(id));
|
contractInfoService.finish(psTaskMainService.finishMain(id, firstFilingTime));
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ public class PsTaskWorkRecordController extends BaseController {
|
|||||||
* 根据任务委派id查询工作进度列表
|
* 根据任务委派id查询工作进度列表
|
||||||
*/
|
*/
|
||||||
@Log(title = "根据任务委派id查询工作进度列表")
|
@Log(title = "根据任务委派id查询工作进度列表")
|
||||||
@SaCheckPermission("business:taskWorkRecord:list")
|
// @SaCheckPermission("business:taskWorkRecord:list")
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public R<List<PsTaskWorkRecordVo>> list(@NotNull Long id) {
|
public R<List<PsTaskWorkRecordVo>> list(@NotNull Long id) {
|
||||||
return R.ok(psTaskWorkRecordService.queryListByAppointId(id));
|
return R.ok(psTaskWorkRecordService.queryListByAppointId(id));
|
||||||
@ -51,7 +51,7 @@ public class PsTaskWorkRecordController extends BaseController {
|
|||||||
* 根据主任务id查询工作进度列表
|
* 根据主任务id查询工作进度列表
|
||||||
*/
|
*/
|
||||||
@Log(title = "根据主任务id查询工作进度列表")
|
@Log(title = "根据主任务id查询工作进度列表")
|
||||||
@SaCheckPermission("business:taskWorkRecord:listByTaskId")
|
// @SaCheckPermission("business:taskWorkRecord:listByTaskId")
|
||||||
@GetMapping("/listByTaskId")
|
@GetMapping("/listByTaskId")
|
||||||
public R<List<PsTaskWorkRecordVo>> listByTaskId(@NotNull Long id) {
|
public R<List<PsTaskWorkRecordVo>> listByTaskId(@NotNull Long id) {
|
||||||
return R.ok(psTaskWorkRecordService.queryListByTaskId(id));
|
return R.ok(psTaskWorkRecordService.queryListByTaskId(id));
|
||||||
|
@ -205,5 +205,8 @@ public class PsCompanyInfo extends TenantEntity {
|
|||||||
*/
|
*/
|
||||||
private Integer serviceStatus;
|
private Integer serviceStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 首次申报时间
|
||||||
|
*/
|
||||||
|
private Date firstFilingTime;
|
||||||
}
|
}
|
||||||
|
@ -48,5 +48,4 @@ public class PsContractCompany extends TenantEntity {
|
|||||||
private String taskRemark;
|
private String taskRemark;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -178,4 +178,9 @@ public class PsContractInfo extends TenantEntity {
|
|||||||
* 是否作废CommonStatusEnum
|
* 是否作废CommonStatusEnum
|
||||||
*/
|
*/
|
||||||
private String isCancel;
|
private String isCancel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0新客户 1老客户
|
||||||
|
*/
|
||||||
|
private byte isOldCus;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ package com.pusong.business.domain.bo;
|
|||||||
|
|
||||||
import com.pusong.system.domain.bo.SysDictDataBo;
|
import com.pusong.system.domain.bo.SysDictDataBo;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import io.swagger.v3.oas.annotations.media.PatternProperty;
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -5,6 +5,7 @@ import com.pusong.business.domain.PsCompanyInfo;
|
|||||||
import com.pusong.common.core.validate.AddGroup;
|
import com.pusong.common.core.validate.AddGroup;
|
||||||
import com.pusong.common.core.validate.EditGroup;
|
import com.pusong.common.core.validate.EditGroup;
|
||||||
import com.pusong.common.core.validate.QueryGroup;
|
import com.pusong.common.core.validate.QueryGroup;
|
||||||
|
import com.pusong.common.mybatis.core.domain.BaseEntity;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
@ -22,7 +23,7 @@ import java.util.Date;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode
|
@EqualsAndHashCode
|
||||||
public class PsCompanyQueryBo {
|
public class PsCompanyQueryBo extends BaseEntity {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 公司ID
|
* 公司ID
|
||||||
@ -63,4 +64,6 @@ public class PsCompanyQueryBo {
|
|||||||
*/
|
*/
|
||||||
private Integer type;
|
private Integer type;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -163,6 +163,10 @@ public class PsContractInfoBo {
|
|||||||
*/
|
*/
|
||||||
private int firstPartyType;
|
private int firstPartyType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0新客户 1老客户
|
||||||
|
*/
|
||||||
|
private byte isOldCus;
|
||||||
|
|
||||||
public enum FIRSTPARTYTYPE{
|
public enum FIRSTPARTYTYPE{
|
||||||
COMPANY(1),
|
COMPANY(1),
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.pusong.business.domain.bo;
|
package com.pusong.business.domain.bo;
|
||||||
|
|
||||||
import com.pusong.common.core.validate.QueryGroup;
|
import com.pusong.common.core.validate.QueryGroup;
|
||||||
|
import com.pusong.common.mybatis.core.domain.BaseEntity;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -15,7 +16,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode
|
@EqualsAndHashCode
|
||||||
public class PsTaskQueryBo {
|
public class PsTaskQueryBo extends BaseEntity {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键id
|
* 主键id
|
||||||
|
@ -276,4 +276,9 @@ public class PsCompanyInfoVo implements Serializable {
|
|||||||
* 公司类型
|
* 公司类型
|
||||||
*/
|
*/
|
||||||
private String companyType;
|
private String companyType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 首次申报时间
|
||||||
|
*/
|
||||||
|
private Date firstFilingTime;
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 公司信息对象 ps_company_info
|
* 公司信息对象 ps_company_info
|
||||||
@ -35,5 +36,4 @@ public class PsContractCompanyVo {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -272,6 +272,11 @@ public class PsContractInfoVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private List<PsApproverRecordVo> lastApprover;
|
private List<PsApproverRecordVo> lastApprover;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0新客户 1老客户
|
||||||
|
*/
|
||||||
|
private byte isOldCus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 服务项目里是否为 托管服务
|
* 服务项目里是否为 托管服务
|
||||||
* @return
|
* @return
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
package com.pusong.business.domain.vo.home;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OldOrNewCusContractCountVo {
|
||||||
|
/**
|
||||||
|
* 当前时间
|
||||||
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||||
|
private Date currentDate = new Date();
|
||||||
|
/**
|
||||||
|
* 统计范围
|
||||||
|
*/
|
||||||
|
private String dateStr;
|
||||||
|
/**
|
||||||
|
* 新客户 新签 数量
|
||||||
|
*/
|
||||||
|
private Long newContractNum;
|
||||||
|
/**
|
||||||
|
* 老客户 新签 数量
|
||||||
|
*/
|
||||||
|
private Long oldContractNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新客户 新签 占比
|
||||||
|
*/
|
||||||
|
private BigDecimal newContractPer;
|
||||||
|
/**
|
||||||
|
* 老客户 新签 占比
|
||||||
|
*/
|
||||||
|
private BigDecimal oldContractPer;
|
||||||
|
|
||||||
|
}
|
@ -74,7 +74,7 @@ public interface PsContractInfoMapper extends BaseMapperPlus<PsContractInfo, PsC
|
|||||||
List<ChannelPayInfo> byChannel(@Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper, Temporal startTime, Temporal endTime);
|
List<ChannelPayInfo> byChannel(@Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper, Temporal startTime, Temporal endTime);
|
||||||
//首页查询各个渠道成交的合同
|
//首页查询各个渠道成交的合同
|
||||||
@DataPermission({
|
@DataPermission({
|
||||||
@DataColumn(key = "userName", value = "info.custom_manager")
|
@DataColumn(key = "userName", value = "info.custom_manager", dataScopeType = DataScopeType.SELF)
|
||||||
})
|
})
|
||||||
List<ChannelPayInfo> byChannelUser(@Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper, Temporal startTime, Temporal endTime);
|
List<ChannelPayInfo> byChannelUser(@Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper, Temporal startTime, Temporal endTime);
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ public interface PsCustomInfoMapper extends BaseMapperPlus<PsCustomInfo, PsCusto
|
|||||||
List<PsCustomInfo> selectList(@Param(Constants.WRAPPER) Wrapper<PsCustomInfo> queryWrapper);
|
List<PsCustomInfo> selectList(@Param(Constants.WRAPPER) Wrapper<PsCustomInfo> queryWrapper);
|
||||||
|
|
||||||
@DataPermission({
|
@DataPermission({
|
||||||
@DataColumn(key = "deptName", value = "info.create_dept", dataScopeType = DataScopeType.CAIWU_HETONG),
|
@DataColumn(key = {"deptName", "userName"}, value = {"info.create_dept", "info.custom_manager"}, dataScopeType = DataScopeType.CAIWU_HETONG),
|
||||||
@DataColumn(key = "userName", value = "info.custom_manager")
|
@DataColumn(key = "userName", value = "info.custom_manager")
|
||||||
})
|
})
|
||||||
Page<PsCustomInfoVo> selectPageCustomerList(@Param("page") Page<PsCustomInfo> page, @Param(Constants.WRAPPER) Wrapper<PsCustomInfo> queryWrapper);
|
Page<PsCustomInfoVo> selectPageCustomerList(@Param("page") Page<PsCustomInfo> page, @Param(Constants.WRAPPER) Wrapper<PsCustomInfo> queryWrapper);
|
||||||
|
@ -28,25 +28,25 @@ public interface PsHomeMapper extends BaseMapperPlus<PsSalary, SalasVo> {
|
|||||||
int selectGonghaiNum(@Param("queryParam") Map<String, Object> queryParam);
|
int selectGonghaiNum(@Param("queryParam") Map<String, Object> queryParam);
|
||||||
|
|
||||||
@DataPermission({
|
@DataPermission({
|
||||||
@DataColumn(key = "userName", value = "cus.custom_manager")
|
@DataColumn(key = "userName", value = "cus.custom_manager", dataScopeType = DataScopeType.SELF)
|
||||||
})
|
})
|
||||||
int selectCallbackRecordNum(@Param("queryParam") Map<String, Object> queryParam);
|
int selectCallbackRecordNum(@Param("queryParam") Map<String, Object> queryParam);
|
||||||
|
|
||||||
|
|
||||||
@DataPermission({
|
@DataPermission({
|
||||||
@DataColumn(key = "userName", value = "cus.custom_manager")
|
@DataColumn(key = "userName", value = "cus.custom_manager", dataScopeType = DataScopeType.SELF)
|
||||||
})
|
})
|
||||||
int selectNoCallbackRecordNum(@Param("queryParam") Map<String, Object> queryParam);
|
int selectNoCallbackRecordNum(@Param("queryParam") Map<String, Object> queryParam);
|
||||||
|
|
||||||
|
|
||||||
@DataPermission({
|
@DataPermission({
|
||||||
@DataColumn(key = "userName", value = "info.custom_manager")
|
@DataColumn(key = "userName", value = "info.custom_manager", dataScopeType = DataScopeType.SELF)
|
||||||
})
|
})
|
||||||
SalasVo selectContractNumAndAmount(@Param("queryParam") Map<String, Object> queryParam);
|
SalasVo selectContractNumAndAmount(@Param("queryParam") Map<String, Object> queryParam);
|
||||||
|
|
||||||
|
|
||||||
@DataPermission({
|
@DataPermission({
|
||||||
@DataColumn(key = "userName", value = "info.custom_manager")
|
@DataColumn(key = "userName", value = "info.custom_manager", dataScopeType = DataScopeType.SELF)
|
||||||
})
|
})
|
||||||
BigDecimal selectSumPayContractAmount(@Param("queryParam") Map<String, Object> queryParam);
|
BigDecimal selectSumPayContractAmount(@Param("queryParam") Map<String, Object> queryParam);
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,9 @@ public interface HomeService {
|
|||||||
|
|
||||||
ReturnMoneyInfoVo returnMoney(Integer type);
|
ReturnMoneyInfoVo returnMoney(Integer type);
|
||||||
RenewalInfoVo renewal(Integer type);
|
RenewalInfoVo renewal(Integer type);
|
||||||
|
|
||||||
|
OldOrNewCusContractCountVo contractNumByCusIsOld(Integer type);
|
||||||
|
|
||||||
UserAmountVo getUserContractSourceAmountsByDeptId(Integer type, int tabType);
|
UserAmountVo getUserContractSourceAmountsByDeptId(Integer type, int tabType);
|
||||||
List<UserContractAmountVo> getUserContractAmountsByDeptId(Integer type, Long deptId);
|
List<UserContractAmountVo> getUserContractAmountsByDeptId(Integer type, Long deptId);
|
||||||
UserAmountVo getUserContractAndPayInfo(Integer type, int tabType);
|
UserAmountVo getUserContractAndPayInfo(Integer type, int tabType);
|
||||||
|
@ -16,6 +16,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -104,7 +105,7 @@ public interface IPsTaskService {
|
|||||||
* @param id 任务主键id
|
* @param id 任务主键id
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
String finishMain(Long id);
|
String finishMain(Long id, Date firstFilingTime);
|
||||||
/**
|
/**
|
||||||
* 子任务完成
|
* 子任务完成
|
||||||
*
|
*
|
||||||
|
@ -310,6 +310,46 @@ public class HomeServiceImpl implements HomeService {
|
|||||||
return renewalInfoVo;
|
return renewalInfoVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public OldOrNewCusContractCountVo contractNumByCusIsOld(Integer type){
|
||||||
|
Map<String, Object> mapParam = this.getDate(type);
|
||||||
|
LocalDate startDate = (LocalDate)mapParam.get("startDate");
|
||||||
|
LocalDate endDate = (LocalDate)mapParam.get("endDate");
|
||||||
|
String date = (String)mapParam.get("date");
|
||||||
|
|
||||||
|
OldOrNewCusContractCountVo ret = new OldOrNewCusContractCountVo();
|
||||||
|
QueryWrapper queryWrapper = new QueryWrapper();
|
||||||
|
queryWrapper.eq("is_old_cus", 1);
|
||||||
|
queryWrapper.eq("is_due", "0");
|
||||||
|
queryWrapper.ge(startDate != null,"apply_date", startDate)
|
||||||
|
.lt(endDate != null,"apply_date", endDate);
|
||||||
|
Long oldCusNum = psContractInfoMapper.selectCount(queryWrapper);
|
||||||
|
|
||||||
|
|
||||||
|
queryWrapper.clear();
|
||||||
|
queryWrapper.eq("is_old_cus", 0);
|
||||||
|
queryWrapper.eq("is_due", "0");
|
||||||
|
queryWrapper.ge(startDate != null,"apply_date", startDate)
|
||||||
|
.lt(endDate != null,"apply_date", endDate);
|
||||||
|
Long newCusNum = psContractInfoMapper.selectCount(queryWrapper);
|
||||||
|
|
||||||
|
long sum = oldCusNum + newCusNum;
|
||||||
|
|
||||||
|
ret.setOldContractNum(oldCusNum);
|
||||||
|
ret.setNewContractNum(newCusNum);
|
||||||
|
if (oldCusNum != 0){
|
||||||
|
ret.setOldContractPer(new BigDecimal(oldCusNum).divide(new BigDecimal(sum), 2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)));
|
||||||
|
} else{
|
||||||
|
ret.setOldContractPer(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
if (newCusNum != 0){
|
||||||
|
ret.setNewContractPer((new BigDecimal(100).subtract(ret.getOldContractPer())));
|
||||||
|
} else{
|
||||||
|
ret.setNewContractPer(new BigDecimal(0));
|
||||||
|
}
|
||||||
|
|
||||||
|
ret.setDateStr(date);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
private String contractSource = "转介绍";
|
private String contractSource = "转介绍";
|
||||||
/**
|
/**
|
||||||
* 按人员成交【转介绍】列表,根据部门获取
|
* 按人员成交【转介绍】列表,根据部门获取
|
||||||
|
@ -154,6 +154,8 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService {
|
|||||||
lqw.like(bo.getCompanyName() != null,"com.company_name", bo.getCompanyName());
|
lqw.like(bo.getCompanyName() != null,"com.company_name", bo.getCompanyName());
|
||||||
lqw.eq(bo.getServiceStatus() != null,"com.service_status", bo.getServiceStatus());
|
lqw.eq(bo.getServiceStatus() != null,"com.service_status", bo.getServiceStatus());
|
||||||
|
|
||||||
|
lqw.between(bo.getParams().get("beginTime") != null && bo.getParams().get("endTime") != null,
|
||||||
|
"com.first_filing_time", bo.getParams().get("beginTime"), bo.getParams().get("endTime"));
|
||||||
|
|
||||||
|
|
||||||
String followUserSql = "";
|
String followUserSql = "";
|
||||||
@ -188,6 +190,8 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService {
|
|||||||
lqw.exists(bo.getType() != 1, sql.toString());
|
lqw.exists(bo.getType() != 1, sql.toString());
|
||||||
lqw.orderByAsc("CASE WHEN bus.min_end_date IS NULL THEN 1 ELSE 0 END, bus.min_end_date");
|
lqw.orderByAsc("CASE WHEN bus.min_end_date IS NULL THEN 1 ELSE 0 END, bus.min_end_date");
|
||||||
lqw.orderByDesc("finish_date");
|
lqw.orderByDesc("finish_date");
|
||||||
|
|
||||||
|
|
||||||
// lqw.groupBy("com.id");
|
// lqw.groupBy("com.id");
|
||||||
Page<PsCompanyInfoVo> result = baseMapper.selectPageList2(pageQuery.build(), lqw);
|
Page<PsCompanyInfoVo> result = baseMapper.selectPageList2(pageQuery.build(), lqw);
|
||||||
if (!result.getRecords().isEmpty()){
|
if (!result.getRecords().isEmpty()){
|
||||||
|
@ -74,18 +74,18 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
|
|||||||
@Override
|
@Override
|
||||||
public TableDataInfo listByLoginUser(String customName, String customMobile, String companyName, PageQuery pageQuery) {
|
public TableDataInfo listByLoginUser(String customName, String customMobile, String companyName, PageQuery pageQuery) {
|
||||||
//查询客户基本信息
|
//查询客户基本信息
|
||||||
Page<PsCustomInfoVo> list = baseMapper.selectVoPage(pageQuery.build()
|
Page<PsCustomInfoVo> list = baseMapper.selectPageCustomerList(pageQuery.build()
|
||||||
, new QueryWrapper<PsCustomInfo>()
|
, new QueryWrapper<PsCustomInfo>()
|
||||||
.select("id", "custom_name", "custom_mobile", "create_time", "custom_source")
|
// .select("id", "custom_name", "custom_mobile", "create_time", "custom_source")
|
||||||
.lambda()
|
// .lambda()
|
||||||
.eq(PsCustomInfo::getDelFlag, 0)
|
.eq("info.del_flag", 0)
|
||||||
.isNotNull(PsCustomInfo::getCustomName)
|
.isNotNull("info.custom_name")
|
||||||
.ne(PsCustomInfo::getCustomName,"")
|
.ne("info.custom_name","")
|
||||||
.ne(PsCustomInfo::getCustomName,"无")
|
.ne("info.custom_name","无")
|
||||||
.and(StringUtils.isNotBlank(customName) || StringUtils.isNotBlank(customMobile) || StringUtils.isNotBlank(companyName)
|
.and(StringUtils.isNotBlank(customName) || StringUtils.isNotBlank(customMobile) || StringUtils.isNotBlank(companyName)
|
||||||
, wq -> wq.like(StringUtils.isNotBlank(customName), PsCustomInfo::getCustomName, customName)
|
, wq -> wq.like(StringUtils.isNotBlank(customName), "info.custom_name", customName)
|
||||||
.or()
|
.or()
|
||||||
.like(StringUtils.isNotBlank(customMobile), PsCustomInfo::getCustomMobile, customMobile)
|
.like(StringUtils.isNotBlank(customMobile), "info.custom_mobile", customMobile)
|
||||||
.or()
|
.or()
|
||||||
.exists(StringUtils.isNotBlank(companyName), "select 1 from ps_company_info where ps_company_info.custom_id = ps_custom_info.id and ps_company_info.del_flag = 0 and company_type = 2 and company_name like '%" + companyName + "%'")
|
.exists(StringUtils.isNotBlank(companyName), "select 1 from ps_company_info where ps_company_info.custom_id = ps_custom_info.id and ps_company_info.del_flag = 0 and company_type = 2 and company_name like '%" + companyName + "%'")
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
|
|||||||
List<PsCompanyInfoVo> companyInfoVos = companyInfoMapper.selectVoList(Wrappers.<PsCompanyInfo>lambdaQuery()
|
List<PsCompanyInfoVo> companyInfoVos = companyInfoMapper.selectVoList(Wrappers.<PsCompanyInfo>lambdaQuery()
|
||||||
.in(PsCompanyInfo::getCustomId, ids)
|
.in(PsCompanyInfo::getCustomId, ids)
|
||||||
.eq(PsCompanyInfo::getDelFlag, 0)
|
.eq(PsCompanyInfo::getDelFlag, 0)
|
||||||
.eq(PsCompanyInfo::getCompanyType, "2")
|
// .eq(PsCompanyInfo::getCompanyType, "2")
|
||||||
);
|
);
|
||||||
Map<Long, List<PsCompanyInfoVo>> id_companyMap = new HashMap<>();
|
Map<Long, List<PsCompanyInfoVo>> id_companyMap = new HashMap<>();
|
||||||
if(CollectionUtils.isNotEmpty(companyInfoVos)){
|
if(CollectionUtils.isNotEmpty(companyInfoVos)){
|
||||||
@ -114,6 +114,8 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
List<Map<String,Object>> listmap = new ArrayList<>();
|
List<Map<String,Object>> listmap = new ArrayList<>();
|
||||||
for (PsCustomInfoVo item : list.getRecords()) {
|
for (PsCustomInfoVo item : list.getRecords()) {
|
||||||
Map<String,Object> map = new HashMap<>();
|
Map<String,Object> map = new HashMap<>();
|
||||||
@ -122,7 +124,24 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService {
|
|||||||
map.put("custom_mobile", item.getCustomMobile());
|
map.put("custom_mobile", item.getCustomMobile());
|
||||||
map.put("createTime", DateUtils.toString(item.getCreateTime(),"yyyy-MM-dd"));
|
map.put("createTime", DateUtils.toString(item.getCreateTime(),"yyyy-MM-dd"));
|
||||||
map.put("customSource", item.getCustomSource());
|
map.put("customSource", item.getCustomSource());
|
||||||
map.put("psCompanySerivceVo", id_companyMap.get(item.getId()));
|
|
||||||
|
|
||||||
|
|
||||||
|
List<PsCompanyInfoVo> allPsCompanyInfoVos = id_companyMap.get(item.getId());
|
||||||
|
if (allPsCompanyInfoVos != null){
|
||||||
|
List<PsCompanyInfoVo> psCompanyInfoVos = new ArrayList<>();
|
||||||
|
List<PsCompanyInfoVo> psServiceCompanyInfoVos = new ArrayList<>();
|
||||||
|
for (PsCompanyInfoVo psCompanyInfoVo : allPsCompanyInfoVos) {
|
||||||
|
if ("1".equals(psCompanyInfoVo.getCompanyType())){
|
||||||
|
psCompanyInfoVos.add(psCompanyInfoVo);
|
||||||
|
}else if ("2".equals(psCompanyInfoVo.getCompanyType())){
|
||||||
|
psServiceCompanyInfoVos.add(psCompanyInfoVo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
map.put("psCompanySerivceVo", psServiceCompanyInfoVos);
|
||||||
|
map.put("psCompanyVo", psCompanyInfoVos);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
listmap.add(map);
|
listmap.add(map);
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,7 @@ public class PsTaskServiceImpl implements IPsTaskService {
|
|||||||
private final IPsContractInfoService contractInfoService;
|
private final IPsContractInfoService contractInfoService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysUserMapper sysUserMapper;
|
private SysUserMapper sysUserMapper;
|
||||||
|
private final PsCompanyInfoMapper companyInfoMapper;
|
||||||
/**
|
/**
|
||||||
* 新增主任务
|
* 新增主任务
|
||||||
*
|
*
|
||||||
@ -198,10 +198,12 @@ public class PsTaskServiceImpl implements IPsTaskService {
|
|||||||
lqw.eq("appo.del_flag","0");
|
lqw.eq("appo.del_flag","0");
|
||||||
lqw.ne(StringUtils.isBlank(bo.getTaskStatus()), "main.task_status", TaskStatusEnum.CANCEL.getCode());
|
lqw.ne(StringUtils.isBlank(bo.getTaskStatus()), "main.task_status", TaskStatusEnum.CANCEL.getCode());
|
||||||
lqw.exists(StringUtils.isNotBlank(ex), "select 1 from sys_user su where appo.executor = su.user_id and su.nick_name like '%" + ex + "%'");
|
lqw.exists(StringUtils.isNotBlank(ex), "select 1 from sys_user su where appo.executor = su.user_id and su.nick_name like '%" + ex + "%'");
|
||||||
lqw.eq("appo.appoint_type",bo.getAppointType());
|
lqw.eq("appo.appoint_type", bo.getAppointType());
|
||||||
lqw.eq(id != null,"appo.id",id);
|
lqw.eq(id != null,"appo.id", id);
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getAppointStatus()),"appo.appoint_status", bo.getAppointStatus());
|
lqw.eq(StringUtils.isNotBlank(bo.getAppointStatus()),"appo.appoint_status", bo.getAppointStatus());
|
||||||
|
|
||||||
|
lqw.orderByDesc("appo.create_time");
|
||||||
|
|
||||||
Page<PsTaskMainVo> page = baseMapper.queryChildTaskPageList(pageQuery.build(), lqw);
|
Page<PsTaskMainVo> page = baseMapper.queryChildTaskPageList(pageQuery.build(), lqw);
|
||||||
fillInfo(page);
|
fillInfo(page);
|
||||||
|
|
||||||
@ -429,7 +431,7 @@ public class PsTaskServiceImpl implements IPsTaskService {
|
|||||||
* @param id 任务主键id
|
* @param id 任务主键id
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public String finishMain(Long id){
|
public String finishMain(Long id, Date firstFilingTime){
|
||||||
PsTaskMain main = baseMapper.selectById(id);
|
PsTaskMain main = baseMapper.selectById(id);
|
||||||
if(!TaskStatusEnum.canFinish(main.getTaskStatus())){
|
if(!TaskStatusEnum.canFinish(main.getTaskStatus())){
|
||||||
throw new ServiceException("此任务无法执行此操作,请刷新页面后重新操作");
|
throw new ServiceException("此任务无法执行此操作,请刷新页面后重新操作");
|
||||||
@ -447,6 +449,14 @@ public class PsTaskServiceImpl implements IPsTaskService {
|
|||||||
PsContractInfoVo contract = contractInfoService.queryContractByCode(main.getContractCode());
|
PsContractInfoVo contract = contractInfoService.queryContractByCode(main.getContractCode());
|
||||||
noticeService.sendNotice(SysNoticeBo.getTaskFinishInstance(contract.getCustomManager(), contract.getPsCustomInfoVo().getCustomName()));
|
noticeService.sendNotice(SysNoticeBo.getTaskFinishInstance(contract.getCustomManager(), contract.getPsCustomInfoVo().getCustomName()));
|
||||||
|
|
||||||
|
|
||||||
|
// QueryWrapper<PsContractCompany> queryWrapper = new QueryWrapper();
|
||||||
|
// queryWrapper.eq("id", main.getServiceCompanyId());
|
||||||
|
PsCompanyInfo psContractCompany = new PsCompanyInfo();
|
||||||
|
psContractCompany.setId(main.getServiceCompanyId());
|
||||||
|
psContractCompany.setFirstFilingTime(firstFilingTime);
|
||||||
|
companyInfoMapper.updateById(psContractCompany);
|
||||||
|
|
||||||
return main.getContractCode();
|
return main.getContractCode();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@ -666,9 +676,10 @@ public class PsTaskServiceImpl implements IPsTaskService {
|
|||||||
.or()
|
.or()
|
||||||
.likeLeft("cus.custom_mobile", bo.getAppKeyWord())
|
.likeLeft("cus.custom_mobile", bo.getAppKeyWord())
|
||||||
.or()
|
.or()
|
||||||
.exists("scom.company_name", bo.getAppKeyWord())
|
.like("scom.company_name", bo.getAppKeyWord())
|
||||||
);
|
);
|
||||||
|
lqw.between(bo.getParams().get("beginTime") != null && bo.getParams().get("endTime") != null,
|
||||||
|
"main.create_time", bo.getParams().get("beginTime"), bo.getParams().get("endTime"));
|
||||||
|
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,6 @@ public interface SysUserMapper extends BaseMapperPlus<SysUser, SysUserVo> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@DataPermission({
|
@DataPermission({
|
||||||
@DataColumn(key = "deptName", value = "dept_id"),
|
|
||||||
@DataColumn(key = "userName", value = "user_id")
|
@DataColumn(key = "userName", value = "user_id")
|
||||||
})
|
})
|
||||||
int update(@Param(Constants.ENTITY) SysUser user, @Param(Constants.WRAPPER) Wrapper<SysUser> updateWrapper);
|
int update(@Param(Constants.ENTITY) SysUser user, @Param(Constants.WRAPPER) Wrapper<SysUser> updateWrapper);
|
||||||
|
Loading…
Reference in New Issue
Block a user