diff --git a/pusong-admin/src/main/resources/logback-plus.xml b/pusong-admin/src/main/resources/logback-plus.xml index 40fa33b..be740db 100644 --- a/pusong-admin/src/main/resources/logback-plus.xml +++ b/pusong-admin/src/main/resources/logback-plus.xml @@ -2,8 +2,8 @@ - + value="%red(%d) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/> + diff --git a/pusong-common/pusong-common-doc/src/main/java/com/pusong/common/doc/util/itext7/HtmlToPdfUtils.java b/pusong-common/pusong-common-doc/src/main/java/com/pusong/common/doc/util/itext7/HtmlToPdfUtils.java index 282f582..2d23f6a 100644 --- a/pusong-common/pusong-common-doc/src/main/java/com/pusong/common/doc/util/itext7/HtmlToPdfUtils.java +++ b/pusong-common/pusong-common-doc/src/main/java/com/pusong/common/doc/util/itext7/HtmlToPdfUtils.java @@ -48,8 +48,8 @@ public class HtmlToPdfUtils { FontProgram gb2312 = FontProgramFactory.createFont(System.getProperty("user.dir") + "/doc/gb2312.ttf"); fontProvider.addFont(gb2312); - FontProgram Deng = FontProgramFactory.createFont(System.getProperty("user.dir") + "/doc/Deng.ttf"); - fontProvider.addFont(Deng); +// FontProgram Deng = FontProgramFactory.createFont(System.getProperty("user.dir") + "/doc/Deng.ttf"); +// fontProvider.addFont(Deng); FontProgram Dengb = FontProgramFactory.createFont(System.getProperty("user.dir") + "/doc/Dengb.ttf"); fontProvider.addFont(Dengb); @@ -58,6 +58,7 @@ public class HtmlToPdfUtils { // } properties.setFontProvider(fontProvider); + HtmlConverter.convertToPdf(inputStream, pdfDocument, properties); pdfWriter.close(); diff --git a/pusong-common/pusong-common-doc/src/main/java/com/pusong/common/doc/util/itext7/PageEventHandler.java b/pusong-common/pusong-common-doc/src/main/java/com/pusong/common/doc/util/itext7/PageEventHandler.java index 8f08988..85012b0 100644 --- a/pusong-common/pusong-common-doc/src/main/java/com/pusong/common/doc/util/itext7/PageEventHandler.java +++ b/pusong-common/pusong-common-doc/src/main/java/com/pusong/common/doc/util/itext7/PageEventHandler.java @@ -45,7 +45,7 @@ public class PageEventHandler implements IEventHandler { PdfFont pdfFont = null; try { // pdfFont = PdfFontFactory.createFont();//"STSongStd-Light", "UniGB-UCS2-H", false - pdfFont = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false); + pdfFont = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", true, true); } catch (Exception e) { logger.error("", e); } diff --git a/pusong-common/pusong-common-json/src/main/java/com/pusong/common/json/TranslationThreadLocal.java b/pusong-common/pusong-common-json/src/main/java/com/pusong/common/json/TranslationThreadLocal.java new file mode 100644 index 0000000..c756c07 --- /dev/null +++ b/pusong-common/pusong-common-json/src/main/java/com/pusong/common/json/TranslationThreadLocal.java @@ -0,0 +1,33 @@ +package com.pusong.common.json; + +import java.util.HashMap; +import java.util.Map; + +public class TranslationThreadLocal { + Map cache = new HashMap<>(); + + /*把线程相关的部分内聚到 类里面 相当于map 每个类是对应key*/ + private static ThreadLocal t = new ThreadLocal(); + private TranslationThreadLocal(){ + } + //拿到当前线程的FunctionThreadLocal类的对象-即可以使用waitInsert/waitUpdate/waitDelete + public static TranslationThreadLocal getThreadInstance(){ + TranslationThreadLocal threadLocal = t.get(); + if(null == threadLocal){//当前线程无绑定的对象时,直接绑定一个新的对象 + threadLocal = new TranslationThreadLocal(); + t.set(threadLocal); + } + return threadLocal; + } + + public void clean(){ + cache.clear(); + } + + public String get(String key1, String key2) { + return cache.get(key1 + "_" + key2); + } + public String set(String key1, String key2, String val) { + return cache.put(key1 + "_" + key2, val); + } +} diff --git a/pusong-common/pusong-common-redis/src/main/java/com/pusong/common/redis/manager/CaffeineCacheDecorator.java b/pusong-common/pusong-common-redis/src/main/java/com/pusong/common/redis/manager/CaffeineCacheDecorator.java index 4c1a3e4..06708de 100644 --- a/pusong-common/pusong-common-redis/src/main/java/com/pusong/common/redis/manager/CaffeineCacheDecorator.java +++ b/pusong-common/pusong-common-redis/src/main/java/com/pusong/common/redis/manager/CaffeineCacheDecorator.java @@ -1,6 +1,8 @@ package com.pusong.common.redis.manager; import com.pusong.common.core.utils.SpringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.cache.Cache; import java.util.concurrent.Callable; @@ -12,6 +14,7 @@ import java.util.concurrent.Callable; */ public class CaffeineCacheDecorator implements Cache { + Logger logger = LoggerFactory.getLogger(CaffeineCacheDecorator.class); private static final com.github.benmanes.caffeine.cache.Cache CAFFEINE = SpringUtils.getBean("caffeine"); diff --git a/pusong-common/pusong-common-redis/src/main/java/com/pusong/common/redis/manager/PlusSpringCacheManager.java b/pusong-common/pusong-common-redis/src/main/java/com/pusong/common/redis/manager/PlusSpringCacheManager.java index e3aa8f5..c00fa5d 100644 --- a/pusong-common/pusong-common-redis/src/main/java/com/pusong/common/redis/manager/PlusSpringCacheManager.java +++ b/pusong-common/pusong-common-redis/src/main/java/com/pusong/common/redis/manager/PlusSpringCacheManager.java @@ -20,6 +20,8 @@ import org.redisson.api.RMap; import org.redisson.api.RMapCache; import org.redisson.spring.cache.CacheConfig; import org.redisson.spring.cache.RedissonCache; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.boot.convert.DurationStyle; import org.springframework.cache.Cache; import org.springframework.cache.CacheManager; @@ -44,7 +46,7 @@ import java.util.concurrent.ConcurrentMap; */ @SuppressWarnings("unchecked") public class PlusSpringCacheManager implements CacheManager { - + Logger logger = LoggerFactory.getLogger(CaffeineCacheDecorator.class); private boolean dynamic = true; private boolean allowNullValues = true; diff --git a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/handler/TranslationHandler.java b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/handler/TranslationHandler.java index 4ef6eff..c6f43be 100644 --- a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/handler/TranslationHandler.java +++ b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/handler/TranslationHandler.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.ContextualSerializer; import com.pusong.common.core.utils.StringUtils; import com.pusong.common.core.utils.reflect.ReflectUtils; +import com.pusong.common.json.TranslationThreadLocal; import com.pusong.common.translation.annotation.Translation; import com.pusong.common.translation.core.TranslationInterface; import lombok.extern.slf4j.Slf4j; @@ -33,6 +34,7 @@ public class TranslationHandler extends JsonSerializer implements Contex private Translation translation; + @Override public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException { TranslationInterface trans = TRANSLATION_MAPPER.get(translation.type()); @@ -46,7 +48,11 @@ public class TranslationHandler extends JsonSerializer implements Contex gen.writeNull(); return; } - Object result = trans.translation(value, translation.other()); + Object result = TranslationThreadLocal.getThreadInstance().get(value.toString(), translation.other()); + if (result == null){ + result = trans.translation(value, translation.other()); + TranslationThreadLocal.getThreadInstance().set(value.toString(), translation.other(), result.toString()); + } gen.writeObject(result); } else { gen.writeObject(value); diff --git a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/DeptNameTranslationImpl.java b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/DeptNameTranslationImpl.java index dd30db9..cceb5ea 100644 --- a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/DeptNameTranslationImpl.java +++ b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/DeptNameTranslationImpl.java @@ -5,6 +5,8 @@ import com.pusong.common.translation.annotation.TranslationType; import com.pusong.common.translation.constant.TransConstant; import com.pusong.common.translation.core.TranslationInterface; import lombok.AllArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * 部门翻译实现 @@ -14,11 +16,13 @@ import lombok.AllArgsConstructor; @AllArgsConstructor @TranslationType(type = TransConstant.DEPT_ID_TO_NAME) public class DeptNameTranslationImpl implements TranslationInterface { + private final static Logger logger = LoggerFactory.getLogger(DictTypeTranslationImpl.class); private final DeptService deptService; @Override public String translation(Object key, String other) { +// logger.info("key = {}, other = {}", key, other); if (key instanceof String ids) { return deptService.selectDeptNameByIds(ids); } else if (key instanceof Long id) { diff --git a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/NicknameTranslationImpl.java b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/NicknameTranslationImpl.java index 8b520cc..b333879 100644 --- a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/NicknameTranslationImpl.java +++ b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/NicknameTranslationImpl.java @@ -5,6 +5,8 @@ import com.pusong.common.core.service.UserService; import com.pusong.common.translation.annotation.TranslationType; import com.pusong.common.translation.constant.TransConstant; import com.pusong.common.translation.core.TranslationInterface; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * 用户名称翻译实现 @@ -14,11 +16,13 @@ import com.pusong.common.translation.core.TranslationInterface; @AllArgsConstructor @TranslationType(type = TransConstant.USER_ID_TO_NICKNAME) public class NicknameTranslationImpl implements TranslationInterface { + private final static Logger logger = LoggerFactory.getLogger(DictTypeTranslationImpl.class); private final UserService userService; @Override public String translation(Object key, String other) { +// logger.info("key = {}, other = {}", key, other); if (key instanceof Long id) { return userService.selectNicknameByIds(id.toString()); } else if (key instanceof String ids) { diff --git a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/OssUrlTranslationImpl.java b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/OssUrlTranslationImpl.java index fae0bc5..4b5bc39 100644 --- a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/OssUrlTranslationImpl.java +++ b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/OssUrlTranslationImpl.java @@ -5,6 +5,8 @@ import com.pusong.common.translation.annotation.TranslationType; import com.pusong.common.translation.constant.TransConstant; import com.pusong.common.translation.core.TranslationInterface; import lombok.AllArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * OSS翻译实现 @@ -14,11 +16,13 @@ import lombok.AllArgsConstructor; @AllArgsConstructor @TranslationType(type = TransConstant.OSS_ID_TO_URL) public class OssUrlTranslationImpl implements TranslationInterface { + private final static Logger logger = LoggerFactory.getLogger(DictTypeTranslationImpl.class); private final OssService ossService; @Override public String translation(Object key, String other) { +// logger.info("key = {}, other = {}", key, other); if (key instanceof String ids) { return ossService.selectUrlByIds(ids); } else if (key instanceof Long id) { diff --git a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/PostNameTranslationImpl.java b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/PostNameTranslationImpl.java index 34350aa..4cb9c7c 100644 --- a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/PostNameTranslationImpl.java +++ b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/PostNameTranslationImpl.java @@ -1,11 +1,12 @@ package com.pusong.common.translation.core.impl; -import com.pusong.common.core.service.DeptService; import com.pusong.common.core.service.PostService; import com.pusong.common.translation.annotation.TranslationType; import com.pusong.common.translation.constant.TransConstant; import com.pusong.common.translation.core.TranslationInterface; import lombok.AllArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * 岗位翻译实现 @@ -15,11 +16,13 @@ import lombok.AllArgsConstructor; @AllArgsConstructor @TranslationType(type = TransConstant.POST_ID_TO_NAME) public class PostNameTranslationImpl implements TranslationInterface { + private final static Logger logger = LoggerFactory.getLogger(DictTypeTranslationImpl.class); private final PostService postService; @Override public String translation(Object key, String other) { +// logger.info("key = {}, other = {}", key, other); if (key instanceof String ids) { return postService.selectPostNameByIds(ids); } else if (key instanceof Long id) { diff --git a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/UserNameTranslationImpl.java b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/UserNameTranslationImpl.java index 75c110b..920bfe2 100644 --- a/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/UserNameTranslationImpl.java +++ b/pusong-common/pusong-common-translation/src/main/java/com/pusong/common/translation/core/impl/UserNameTranslationImpl.java @@ -5,6 +5,8 @@ import com.pusong.common.translation.annotation.TranslationType; import com.pusong.common.translation.constant.TransConstant; import com.pusong.common.translation.core.TranslationInterface; import lombok.AllArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * 用户名翻译实现 @@ -14,11 +16,13 @@ import lombok.AllArgsConstructor; @AllArgsConstructor @TranslationType(type = TransConstant.USER_ID_TO_NAME) public class UserNameTranslationImpl implements TranslationInterface { + private final static Logger logger = LoggerFactory.getLogger(DictTypeTranslationImpl.class); private final UserService userService; @Override public String translation(Object key, String other) { +// logger.info("key = {}, other = {}", key, other); if (key instanceof Long id) { return userService.selectUserNameById(id); } diff --git a/pusong-common/pusong-common-web/src/main/java/com/pusong/common/web/filter/RepeatableFilter.java b/pusong-common/pusong-common-web/src/main/java/com/pusong/common/web/filter/RepeatableFilter.java index 692a609..b4a0fdb 100644 --- a/pusong-common/pusong-common-web/src/main/java/com/pusong/common/web/filter/RepeatableFilter.java +++ b/pusong-common/pusong-common-web/src/main/java/com/pusong/common/web/filter/RepeatableFilter.java @@ -1,10 +1,11 @@ package com.pusong.common.web.filter; import com.pusong.common.core.utils.StringUtils; -import org.springframework.http.MediaType; - +import com.pusong.common.json.TranslationThreadLocal; import jakarta.servlet.*; import jakarta.servlet.http.HttpServletRequest; +import org.springframework.http.MediaType; + import java.io.IOException; /** @@ -26,11 +27,13 @@ public class RepeatableFilter implements Filter { && StringUtils.startsWithIgnoreCase(request.getContentType(), MediaType.APPLICATION_JSON_VALUE)) { requestWrapper = new RepeatedlyRequestWrapper((HttpServletRequest) request, response); } + if (null == requestWrapper) { chain.doFilter(request, response); } else { chain.doFilter(requestWrapper, response); } + TranslationThreadLocal.getThreadInstance().clean(); } @Override diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCompanyInfo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCompanyInfo.java index af75362..c8e7cdc 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCompanyInfo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsCompanyInfo.java @@ -200,6 +200,10 @@ public class PsCompanyInfo extends TenantEntity { * 备注 */ private String remark; + /** + * 服务状态0终止1正常 + */ + private Integer serviceStatus; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java index 6b63459..db84174 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java @@ -245,6 +245,7 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { @Override public int update(PsCompanyInfoBo bo) { PsCompanyInfo add = MapstructUtils.convert(bo, PsCompanyInfo.class); + add.setServiceStatus(bo.getServiceStatus()); return baseMapper.updateById(add); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java index ca94830..909b630 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java @@ -702,7 +702,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { //删除原合同 if(add.getPdfId() != null) ossService.deleteWithValidByIds(List.of(add.getPdfId()),false); - Optional a = Optional.ofNullable(add.getPdfId()); +// Optional a = Optional.ofNullable(add.getPdfId()); } }catch (Exception e){ log.error("生成pdf失败",e); @@ -911,7 +911,13 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { qw.like( StringUtils.isNotBlank(bo.getCustomName()),"cus.custom_name", bo.getCustomName()); qw.like( StringUtils.isNotBlank(bo.getCustomMobile()),"cus.custom_mobile", bo.getCustomMobile()); //公司表条件 - qw.like( StringUtils.isNotBlank(bo.getCompanyName()),"com.company_name", bo.getCompanyName()); +// qw.like(StringUtils.isNotBlank(bo.getCompanyName()),"com.company_name", bo.getCompanyName()); + + qw.and(StringUtils.isNotBlank(bo.getCompanyName()), wrapper -> wrapper + .like("info.contact_person_name",bo.getCompanyName()) + .or() + .like("com.company_name",bo.getCompanyName())); + //用户表条件 qw.like( StringUtils.isNotBlank(bo.getCustomManagerName()),"us.nick_name", bo.getCustomManagerName()); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java index 7c0e21a..402ac26 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java @@ -164,6 +164,7 @@ public class PsTaskServiceImpl implements IPsTaskService { String ex = bo.getExecutor(); bo.setExecutor(null); QueryWrapper lqw = buildQueryWrapper(bo); + lqw.eq("appo.del_flag","0"); 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.eq("appo.appoint_type",bo.getAppointType()); @@ -398,7 +399,7 @@ public class PsTaskServiceImpl implements IPsTaskService { */ public void finishChild(Long id, String desc){ PsTaskAppoint appoint = appointMapper.selectById(id); - if(StringUtils.equals("3",appoint.getAppointType()) && StringUtils.isBlank(desc)){ + if(StringUtils.equals("3", appoint.getAppointType()) && StringUtils.isBlank(desc)){ throw new ServiceException("请填写特勤备注"); } if(!AppointStatusEnum.canFinish(appoint.getAppointStatus())){ @@ -516,7 +517,6 @@ public class PsTaskServiceImpl implements IPsTaskService { QueryWrapper lqw = new QueryWrapper(); lqw.eq("main.del_flag","0"); - // lqw.ne(StringUtils.isBlank(bo.getTaskStatus()), "main.task_status", TaskStatusEnum.CANCEL.getCode()); lqw.eq(StringUtils.isNotBlank(bo.getTaskStatus()),"main.task_status", bo.getTaskStatus()); diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml index 6cb1ebf..8e3f13e 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml @@ -122,7 +122,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" (select IFNULL(sum(money),0) from ps_contract_pay cpay where cpay.business_type =2 and cpay.contract_code = main.contract_code ) ) > 0 THEN '半款' ELSE '全款' END) as pay_stauts_desc, - (select GROUP_CONCAT(business.business_type SEPARATOR ',') from ps_contract_business business where business.contract_code = con.contract_code and business.del_flag = '0') as business_type_name + (select GROUP_CONCAT(business.business_type SEPARATOR ',') from ps_contract_business business where business.contract_code = con.contract_code and business.company_id = main.service_company_id and business.del_flag = '0') as business_type_name -- , -- appoint.executor appoint_executor, -- appoint.task_desc appoint_task_desc,