jinhui.wang
Showing 71 changed files with 1104 additions and 134 deletions
......@@ -11,7 +11,7 @@ public class FindConsignmentsDto {
private String recipientCompany;
private String shipperCountry;
private String originCountry;
private String docNondocFlag;
......@@ -19,7 +19,7 @@ public class FindConsignmentsDto {
private Date createTime;
private Date commitTime;
private Date modifyTime;
private String statusName;
}
......
......@@ -51,4 +51,6 @@ public class ConsignmentQuery extends PageBase {
private Long userId;
private String uuid;
private String statusCode;
}
......
......@@ -20,4 +20,6 @@ public class BaseDao {
protected ConsignmentExtMapper consignmentExtMapper;
@Autowired
protected AttachmentExtMapper attachmentExtMapper;
@Autowired
protected EmailMapper emailMapper;
}
\ No newline at end of file
......
......@@ -18,7 +18,7 @@
c.CONSIGNMENT_CODE,
c.RECIPIENT_CONTACT_NAME,
c.RECIPIENT_COMPANY,
c.SHIPPER_COUNTRY,
c.ORIGIN_COUNTRY,
CASE
WHEN c.DOC_NONDOC_FLAG = 'Y' THEN 'ITEM'
WHEN c.DOC_NONDOC_FLAG = 'N' THEN 'DOC'
......@@ -26,7 +26,7 @@
END AS DOC_NONDOC_FLAG,
c.CREATE_USER_NAME,
c.CREATE_TIME,
c.COMMIT_TIME,
c.MODIFY_TIME,
c.STATUS_NAME
</sql>
......@@ -41,6 +41,9 @@
(m.user_id = #{userId} AND m.consignment_id IS NOT NULL)
OR c.user_uuid = #{uuid,jdbcType=VARCHAR}
)
<if test="statusCode != null and statusCode != ''">
AND c.STATUS_CODE = #{statusCode}
</if>
<if test="createTimeFrom != null and createTimeFrom != ''">
AND c.CREATE_TIME &gt;= TO_DATE(#{createTimeFrom}, 'YYYY-MM-DD HH24:MI:SS')
</if>
......
package com.fedex.connect.customer.repository.repo;
import com.fedex.connect.common.model.biz.Email;
public interface IEmailRepository {
void save(Email entity);
}
package com.fedex.connect.customer.repository.repo.impl;
import com.fedex.connect.common.model.biz.Email;
import com.fedex.connect.customer.repository.base.BaseDao;
import com.fedex.connect.customer.repository.repo.IEmailRepository;
import org.springframework.stereotype.Repository;
@Repository
public class EmailRepositoryImpl extends BaseDao implements IEmailRepository {
public void save(Email entity){
if(entity != null) {
if (entity.getId() == null || entity.getId() <= 0) {
emailMapper.insertSelective(entity);
} else if (entity.getId() != null && entity.getId() > 0){
emailMapper.updateByPrimaryKeySelective(entity);
}
}
}
}
......@@ -30,7 +30,7 @@ public class UserConsignmentMappingRepositoryImpl extends BaseDao implements IUs
}
@Override
public UserConsignmentMapping save(UserConsignmentMapping entity) {
public UserConsignmentMapping saveOrUpdate(UserConsignmentMapping entity) {
if(entity != null) {
if (entity.getId() == null || entity.getId().longValue() <= 0) {
userConsignmentMappingMapper.insertSelective(entity);
......
......@@ -16,5 +16,7 @@ public class BaseService {
@Autowired
protected IUserConsignmentMappingRepository userConsignmentMappingRepository;
@Autowired
protected IEmailRepository emailRepository;
@Autowired
protected IPushObRepository pushObRepository;
}
\ No newline at end of file
......
package com.fedex.connect.customer.service.biz;
import com.fedex.connect.common.model.biz.Consignment;
import com.fedex.connect.common.model.sys.User;
public interface IEmailService {
void saveNotificationEmail(Consignment consignment, User user) throws Exception;
}
package com.fedex.connect.customer.service.biz.impl;
import com.fedex.connect.common.dependencies.date.vo.ResponseVo;
import com.fedex.connect.common.dependencies.enums.base.StatusEnum;
import com.fedex.connect.common.dependencies.util.AssignmentFieldUtils;
import com.fedex.connect.common.dependencies.util.ResponseUtils;
import com.fedex.connect.common.model.biz.*;
import com.fedex.connect.common.model.sys.User;
import com.fedex.connect.customer.data.bo.AddBo;
......@@ -12,6 +9,7 @@ import com.fedex.connect.customer.enums.ResponseCode;
import com.fedex.connect.customer.service.base.BaseService;
import com.fedex.connect.customer.service.biz.IAttachmentService;
import com.fedex.connect.customer.service.biz.IConsignmentService;
import com.fedex.connect.customer.service.biz.IEmailService;
import com.fedex.connect.customer.util.service.biz.ConsignmentUtil;
import com.fedex.connect.customer.util.service.biz.PushObUtil;
import com.fedex.connect.customer.util.service.biz.UploadRecordUtil;
......@@ -22,7 +20,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
......@@ -46,6 +43,8 @@ public class ConsignmentServiceImpl extends BaseService implements IConsignmentS
private PushObUtil pushObUtil;
@Autowired
private IAttachmentService attachmentService;
@Autowired
private IEmailService emailService;
/**
* @Author Szl
......@@ -154,13 +153,13 @@ public class ConsignmentServiceImpl extends BaseService implements IConsignmentS
/**
* 保存或更新运单表
*/
consignmentRepository.save(consignment);
consignmentRepository.saveOrUpdate(consignment);
//设置上传记录表运单ID
uploadRecord.setConsignmentId(consignment.getId());
/**
* 保存上传记录表
*/
uploadRecordRepository.save(uploadRecord);
uploadRecordRepository.saveOrUpdate(uploadRecord);
//设置附件表运单id,上传记录表id
Optional.ofNullable(attachmentList).orElse(new ArrayList<>()).stream().filter(Objects::nonNull).forEach(p->{
p.setBizId(consignment.getId());
......@@ -169,7 +168,7 @@ public class ConsignmentServiceImpl extends BaseService implements IConsignmentS
/**
* 保存附件表信息
*/
attachmentRepository.saveAll(attachmentList);
attachmentRepository.saveOrUpdateAll(attachmentList);
//用户uuid与运单uuid不一致,则需要添加用户运单中间表信息
if(!user.getUserUuid().equals(consignment.getUserUuid())){
/**
......@@ -184,7 +183,7 @@ public class ConsignmentServiceImpl extends BaseService implements IConsignmentS
/**
* 初始化插入预清关文件推送任务日志
*/
userConsignmentMappingRepository.save(userConsignmentMapping);
userConsignmentMappingRepository.saveOrUpdate(userConsignmentMapping);
}
}
/**
......@@ -196,8 +195,12 @@ public class ConsignmentServiceImpl extends BaseService implements IConsignmentS
*/
PushOb pushOb = pushObUtil.initPushOb(consignment,user);
/**
* 初始化插入提醒发件人邮件日志
*/
emailService.saveNotificationEmail(consignment,user);
/**
* 推送进口文件主表
*/
pushObRepository.save(pushOb);
pushObRepository.saveOrUpdate(pushOb);
}
}
\ No newline at end of file
......
package com.fedex.connect.customer.service.biz.impl;
import com.fedex.connect.common.model.biz.Consignment;
import com.fedex.connect.common.model.biz.Email;
import com.fedex.connect.common.model.sys.User;
import com.fedex.connect.customer.service.base.BaseService;
import com.fedex.connect.customer.service.biz.IEmailService;
import com.fedex.connect.customer.util.service.biz.EmailUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class EmailServiceImpl extends BaseService implements IEmailService {
@Autowired
private EmailUtil emailUtil;
/**
* @Author Szl
* @Description 功能说明 如果新建运单不是该账号UUID下的运单,则发邮件通知到该运单所属用户,告知运单已被其他用户创建上传。
* @Date 2024/11/20
* @param consignment
* @param user
* @return void
*/
@Override
public void saveNotificationEmail(Consignment consignment, User user) throws Exception {
if (!StringUtils.isEmpty(consignment.getUserUuid()) && consignment.getUserUuid().equals(user.getUserUuid())){
return;
}
/**
* 初始化Email对象
*/
Email email = new Email();
emailUtil.initNotificationEmail(email,consignment);
/**
* 保存入库
*/
emailRepository.save(email);
}
}
package com.fedex.connect.customer.util.service.biz;
import com.fedex.connect.common.dependencies.enums.biz.EmailStatusEnum;
import com.fedex.connect.common.dependencies.enums.biz.EmailTypeEnum;
import com.fedex.connect.common.dependencies.util.AssignmentFieldUtils;
import com.fedex.connect.common.model.biz.Consignment;
import com.fedex.connect.common.model.biz.Email;
import org.springframework.stereotype.Component;
@Component
public class EmailUtil {
public void initNotificationEmail(Email email, Consignment consignment) throws Exception{
email.setBizId(consignment.getId());
email.setBizCode(consignment.getConsignmentCode());
email.setToAddress(consignment.getShipperEmail());
email.setSubject("");
email.setSubject("");
email.setTypeName(EmailTypeEnum.NOTIFICATION_SENDER.getMsg());
email.setTypeCode(EmailTypeEnum.NOTIFICATION_SENDER.getCode());
email.setStatusName(EmailStatusEnum.PENDING.getMsg());
email.setStatusCode(EmailStatusEnum.PENDING.getCode());
AssignmentFieldUtils.assignmentTableBaseField(email);
}
}
......@@ -16,6 +16,9 @@
<result column="MODIFY_TIME" jdbcType="TIMESTAMP" property="modifyTime" />
<result column="MODIFY_USER_ID" jdbcType="NUMERIC" property="modifyUserId" />
<result column="MODIFY_USER_NAME" jdbcType="VARCHAR" property="modifyUserName" />
<result column="EXT1" jdbcType="VARCHAR" property="ext1" />
<result column="EXT2" jdbcType="NUMERIC" property="ext2" />
<result column="EXT3" jdbcType="TIMESTAMP" property="ext3" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
......@@ -77,7 +80,7 @@
</sql>
<sql id="Base_Column_List">
ID, CODE, NAME, VALUE, TYPE_CODE, TYPE_NAME, STATUS, DESCRIPTION, CREATE_TIME, CREATE_USER_ID,
CREATE_USER_NAME, MODIFY_TIME, MODIFY_USER_ID, MODIFY_USER_NAME
CREATE_USER_NAME, MODIFY_TIME, MODIFY_USER_ID, MODIFY_USER_NAME, EXT1, EXT2, EXT3
</sql>
<select id="selectByExample" parameterType="com.fedex.connect.common.model.sys.ParamConfigExample" resultMap="BaseResultMap">
<include refid="OracleDialectPrefix" />
......@@ -120,12 +123,14 @@
VALUE, TYPE_CODE, TYPE_NAME,
STATUS, DESCRIPTION, CREATE_TIME,
CREATE_USER_ID, CREATE_USER_NAME, MODIFY_TIME,
MODIFY_USER_ID, MODIFY_USER_NAME)
MODIFY_USER_ID, MODIFY_USER_NAME, EXT1,
EXT2, EXT3)
values (#{id,jdbcType=NUMERIC}, #{code,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR},
#{value,jdbcType=VARCHAR}, #{typeCode,jdbcType=VARCHAR}, #{typeName,jdbcType=VARCHAR},
#{status,jdbcType=NUMERIC}, #{description,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{createUserId,jdbcType=NUMERIC}, #{createUserName,jdbcType=VARCHAR}, #{modifyTime,jdbcType=TIMESTAMP},
#{modifyUserId,jdbcType=NUMERIC}, #{modifyUserName,jdbcType=VARCHAR})
#{modifyUserId,jdbcType=NUMERIC}, #{modifyUserName,jdbcType=VARCHAR}, #{ext1,jdbcType=VARCHAR},
#{ext2,jdbcType=NUMERIC}, #{ext3,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.fedex.connect.common.model.sys.ParamConfig">
<selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Long">
......@@ -173,6 +178,15 @@
<if test="modifyUserName != null">
MODIFY_USER_NAME,
</if>
<if test="ext1 != null">
EXT1,
</if>
<if test="ext2 != null">
EXT2,
</if>
<if test="ext3 != null">
EXT3,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{id,jdbcType=NUMERIC},
......@@ -215,6 +229,15 @@
<if test="modifyUserName != null">
#{modifyUserName,jdbcType=VARCHAR},
</if>
<if test="ext1 != null">
#{ext1,jdbcType=VARCHAR},
</if>
<if test="ext2 != null">
#{ext2,jdbcType=NUMERIC},
</if>
<if test="ext3 != null">
#{ext3,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.fedex.connect.common.model.sys.ParamConfigExample" resultType="java.lang.Long">
......@@ -268,6 +291,15 @@
<if test="record.modifyUserName != null">
MODIFY_USER_NAME = #{record.modifyUserName,jdbcType=VARCHAR},
</if>
<if test="record.ext1 != null">
EXT1 = #{record.ext1,jdbcType=VARCHAR},
</if>
<if test="record.ext2 != null">
EXT2 = #{record.ext2,jdbcType=NUMERIC},
</if>
<if test="record.ext3 != null">
EXT3 = #{record.ext3,jdbcType=TIMESTAMP},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
......@@ -288,7 +320,10 @@
CREATE_USER_NAME = #{record.createUserName,jdbcType=VARCHAR},
MODIFY_TIME = #{record.modifyTime,jdbcType=TIMESTAMP},
MODIFY_USER_ID = #{record.modifyUserId,jdbcType=NUMERIC},
MODIFY_USER_NAME = #{record.modifyUserName,jdbcType=VARCHAR}
MODIFY_USER_NAME = #{record.modifyUserName,jdbcType=VARCHAR},
EXT1 = #{record.ext1,jdbcType=VARCHAR},
EXT2 = #{record.ext2,jdbcType=NUMERIC},
EXT3 = #{record.ext3,jdbcType=TIMESTAMP}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
......@@ -335,6 +370,15 @@
<if test="modifyUserName != null">
MODIFY_USER_NAME = #{modifyUserName,jdbcType=VARCHAR},
</if>
<if test="ext1 != null">
EXT1 = #{ext1,jdbcType=VARCHAR},
</if>
<if test="ext2 != null">
EXT2 = #{ext2,jdbcType=NUMERIC},
</if>
<if test="ext3 != null">
EXT3 = #{ext3,jdbcType=TIMESTAMP},
</if>
</set>
where ID = #{id,jdbcType=NUMERIC}
</update>
......@@ -352,7 +396,10 @@
CREATE_USER_NAME = #{createUserName,jdbcType=VARCHAR},
MODIFY_TIME = #{modifyTime,jdbcType=TIMESTAMP},
MODIFY_USER_ID = #{modifyUserId,jdbcType=NUMERIC},
MODIFY_USER_NAME = #{modifyUserName,jdbcType=VARCHAR}
MODIFY_USER_NAME = #{modifyUserName,jdbcType=VARCHAR},
EXT1 = #{ext1,jdbcType=VARCHAR},
EXT2 = #{ext2,jdbcType=NUMERIC},
EXT3 = #{ext3,jdbcType=TIMESTAMP}
where ID = #{id,jdbcType=NUMERIC}
</update>
<sql id="OracleDialectPrefix">
......
......@@ -24,6 +24,8 @@
<result column="MODIFY_USER_ID" jdbcType="NUMERIC" property="modifyUserId" />
<result column="MODIFY_USER_NAME" jdbcType="VARCHAR" property="modifyUserName" />
<result column="CONFIRM_PROMPTS" jdbcType="NUMERIC" property="confirmPrompts" />
<result column="addflag1" jdbcType="NUMERIC" property="addflag1" />
<result column="addflag2" jdbcType="NUMERIC" property="addflag2" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
......@@ -87,7 +89,7 @@
ID, LOGIN_NAME, USER_NAME, PASSWORD, USER_UUID, EMAIL, PHONE, COMPANY_NAME, ACCOUNT_NO,
UNIFIED_BUSINESS_NUM, CUSTOMS_SERIAL_NUM, TYPE_CODE, TYPE_NAME, STATUS, REMARK, CREATE_TIME,
CREATE_USER_ID, CREATE_USER_NAME, MODIFY_TIME, MODIFY_USER_ID, MODIFY_USER_NAME,
CONFIRM_PROMPTS
CONFIRM_PROMPTS, addflag1, addflag2
</sql>
<select id="selectByExample" parameterType="com.fedex.connect.common.model.sys.UserExample" resultMap="BaseResultMap">
<include refid="OracleDialectPrefix" />
......@@ -133,7 +135,8 @@
TYPE_NAME, STATUS, REMARK,
CREATE_TIME, CREATE_USER_ID, CREATE_USER_NAME,
MODIFY_TIME, MODIFY_USER_ID, MODIFY_USER_NAME,
CONFIRM_PROMPTS)
CONFIRM_PROMPTS, addflag1, addflag2
)
values (#{id,jdbcType=NUMERIC}, #{loginName,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR},
#{password,jdbcType=VARCHAR}, #{userUuid,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR},
#{phone,jdbcType=VARCHAR}, #{companyName,jdbcType=VARCHAR}, #{accountNo,jdbcType=VARCHAR},
......@@ -141,7 +144,8 @@
#{typeName,jdbcType=VARCHAR}, #{status,jdbcType=NUMERIC}, #{remark,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP}, #{createUserId,jdbcType=NUMERIC}, #{createUserName,jdbcType=VARCHAR},
#{modifyTime,jdbcType=TIMESTAMP}, #{modifyUserId,jdbcType=NUMERIC}, #{modifyUserName,jdbcType=VARCHAR},
#{confirmPrompts,jdbcType=NUMERIC})
#{confirmPrompts,jdbcType=NUMERIC}, #{addflag1,jdbcType=NUMERIC}, #{addflag2,jdbcType=NUMERIC}
)
</insert>
<insert id="insertSelective" parameterType="com.fedex.connect.common.model.sys.User">
<selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Long">
......@@ -213,6 +217,12 @@
<if test="confirmPrompts != null">
CONFIRM_PROMPTS,
</if>
<if test="addflag1 != null">
addflag1,
</if>
<if test="addflag2 != null">
addflag2,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{id,jdbcType=NUMERIC},
......@@ -279,6 +289,12 @@
<if test="confirmPrompts != null">
#{confirmPrompts,jdbcType=NUMERIC},
</if>
<if test="addflag1 != null">
#{addflag1,jdbcType=NUMERIC},
</if>
<if test="addflag2 != null">
#{addflag2,jdbcType=NUMERIC},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.fedex.connect.common.model.sys.UserExample" resultType="java.lang.Long">
......@@ -356,6 +372,12 @@
<if test="record.confirmPrompts != null">
CONFIRM_PROMPTS = #{record.confirmPrompts,jdbcType=NUMERIC},
</if>
<if test="record.addflag1 != null">
addflag1 = #{record.addflag1,jdbcType=NUMERIC},
</if>
<if test="record.addflag2 != null">
addflag2 = #{record.addflag2,jdbcType=NUMERIC},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
......@@ -384,7 +406,9 @@
MODIFY_TIME = #{record.modifyTime,jdbcType=TIMESTAMP},
MODIFY_USER_ID = #{record.modifyUserId,jdbcType=NUMERIC},
MODIFY_USER_NAME = #{record.modifyUserName,jdbcType=VARCHAR},
CONFIRM_PROMPTS = #{record.confirmPrompts,jdbcType=NUMERIC}
CONFIRM_PROMPTS = #{record.confirmPrompts,jdbcType=NUMERIC},
addflag1 = #{record.addflag1,jdbcType=NUMERIC},
addflag2 = #{record.addflag2,jdbcType=NUMERIC}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
......@@ -455,6 +479,12 @@
<if test="confirmPrompts != null">
CONFIRM_PROMPTS = #{confirmPrompts,jdbcType=NUMERIC},
</if>
<if test="addflag1 != null">
addflag1 = #{addflag1,jdbcType=NUMERIC},
</if>
<if test="addflag2 != null">
addflag2 = #{addflag2,jdbcType=NUMERIC},
</if>
</set>
where ID = #{id,jdbcType=NUMERIC}
</update>
......@@ -480,7 +510,9 @@
MODIFY_TIME = #{modifyTime,jdbcType=TIMESTAMP},
MODIFY_USER_ID = #{modifyUserId,jdbcType=NUMERIC},
MODIFY_USER_NAME = #{modifyUserName,jdbcType=VARCHAR},
CONFIRM_PROMPTS = #{confirmPrompts,jdbcType=NUMERIC}
CONFIRM_PROMPTS = #{confirmPrompts,jdbcType=NUMERIC},
addflag1 = #{addflag1,jdbcType=NUMERIC},
addflag2 = #{addflag2,jdbcType=NUMERIC}
where ID = #{id,jdbcType=NUMERIC}
</update>
<sql id="OracleDialectPrefix">
......
......@@ -78,6 +78,21 @@ public class ParamConfig implements Serializable {
*/
private String modifyUserName;
/**
* 扩展字段1字符串
*/
private String ext1;
/**
* 扩展字段2数字
*/
private Long ext2;
/**
* 扩展字段3日期
*/
private Date ext3;
private static final long serialVersionUID = 1L;
public Long getId() {
......@@ -192,6 +207,30 @@ public class ParamConfig implements Serializable {
this.modifyUserName = modifyUserName == null ? null : modifyUserName.trim();
}
public String getExt1() {
return ext1;
}
public void setExt1(String ext1) {
this.ext1 = ext1 == null ? null : ext1.trim();
}
public Long getExt2() {
return ext2;
}
public void setExt2(Long ext2) {
this.ext2 = ext2;
}
public Date getExt3() {
return ext3;
}
public void setExt3(Date ext3) {
this.ext3 = ext3;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
......@@ -212,6 +251,9 @@ public class ParamConfig implements Serializable {
sb.append(", modifyTime=").append(modifyTime);
sb.append(", modifyUserId=").append(modifyUserId);
sb.append(", modifyUserName=").append(modifyUserName);
sb.append(", ext1=").append(ext1);
sb.append(", ext2=").append(ext2);
sb.append(", ext3=").append(ext3);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
......
......@@ -1044,6 +1044,196 @@ public class ParamConfigExample {
addCriterion("MODIFY_USER_NAME not between", value1, value2, "modifyUserName");
return (Criteria) this;
}
public Criteria andExt1IsNull() {
addCriterion("EXT1 is null");
return (Criteria) this;
}
public Criteria andExt1IsNotNull() {
addCriterion("EXT1 is not null");
return (Criteria) this;
}
public Criteria andExt1EqualTo(String value) {
addCriterion("EXT1 =", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotEqualTo(String value) {
addCriterion("EXT1 <>", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1GreaterThan(String value) {
addCriterion("EXT1 >", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1GreaterThanOrEqualTo(String value) {
addCriterion("EXT1 >=", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1LessThan(String value) {
addCriterion("EXT1 <", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1LessThanOrEqualTo(String value) {
addCriterion("EXT1 <=", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1Like(String value) {
addCriterion("EXT1 like", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotLike(String value) {
addCriterion("EXT1 not like", value, "ext1");
return (Criteria) this;
}
public Criteria andExt1In(List<String> values) {
addCriterion("EXT1 in", values, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotIn(List<String> values) {
addCriterion("EXT1 not in", values, "ext1");
return (Criteria) this;
}
public Criteria andExt1Between(String value1, String value2) {
addCriterion("EXT1 between", value1, value2, "ext1");
return (Criteria) this;
}
public Criteria andExt1NotBetween(String value1, String value2) {
addCriterion("EXT1 not between", value1, value2, "ext1");
return (Criteria) this;
}
public Criteria andExt2IsNull() {
addCriterion("EXT2 is null");
return (Criteria) this;
}
public Criteria andExt2IsNotNull() {
addCriterion("EXT2 is not null");
return (Criteria) this;
}
public Criteria andExt2EqualTo(Long value) {
addCriterion("EXT2 =", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotEqualTo(Long value) {
addCriterion("EXT2 <>", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2GreaterThan(Long value) {
addCriterion("EXT2 >", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2GreaterThanOrEqualTo(Long value) {
addCriterion("EXT2 >=", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2LessThan(Long value) {
addCriterion("EXT2 <", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2LessThanOrEqualTo(Long value) {
addCriterion("EXT2 <=", value, "ext2");
return (Criteria) this;
}
public Criteria andExt2In(List<Long> values) {
addCriterion("EXT2 in", values, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotIn(List<Long> values) {
addCriterion("EXT2 not in", values, "ext2");
return (Criteria) this;
}
public Criteria andExt2Between(Long value1, Long value2) {
addCriterion("EXT2 between", value1, value2, "ext2");
return (Criteria) this;
}
public Criteria andExt2NotBetween(Long value1, Long value2) {
addCriterion("EXT2 not between", value1, value2, "ext2");
return (Criteria) this;
}
public Criteria andExt3IsNull() {
addCriterion("EXT3 is null");
return (Criteria) this;
}
public Criteria andExt3IsNotNull() {
addCriterion("EXT3 is not null");
return (Criteria) this;
}
public Criteria andExt3EqualTo(Date value) {
addCriterion("EXT3 =", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotEqualTo(Date value) {
addCriterion("EXT3 <>", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3GreaterThan(Date value) {
addCriterion("EXT3 >", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3GreaterThanOrEqualTo(Date value) {
addCriterion("EXT3 >=", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3LessThan(Date value) {
addCriterion("EXT3 <", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3LessThanOrEqualTo(Date value) {
addCriterion("EXT3 <=", value, "ext3");
return (Criteria) this;
}
public Criteria andExt3In(List<Date> values) {
addCriterion("EXT3 in", values, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotIn(List<Date> values) {
addCriterion("EXT3 not in", values, "ext3");
return (Criteria) this;
}
public Criteria andExt3Between(Date value1, Date value2) {
addCriterion("EXT3 between", value1, value2, "ext3");
return (Criteria) this;
}
public Criteria andExt3NotBetween(Date value1, Date value2) {
addCriterion("EXT3 not between", value1, value2, "ext3");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
......
......@@ -119,6 +119,16 @@ public class User implements Serializable {
*/
private Long confirmPrompts;
/**
* ADD时弹出提示1
*/
private Integer addflag1;
/**
* ADD时弹出提示2
*/
private Integer addflag2;
private static final long serialVersionUID = 1L;
public Long getId() {
......@@ -297,6 +307,22 @@ public class User implements Serializable {
this.confirmPrompts = confirmPrompts;
}
public Integer getAddflag1() {
return addflag1;
}
public void setAddflag1(Integer addflag1) {
this.addflag1 = addflag1;
}
public Integer getAddflag2() {
return addflag2;
}
public void setAddflag2(Integer addflag2) {
this.addflag2 = addflag2;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
......@@ -325,6 +351,8 @@ public class User implements Serializable {
sb.append(", modifyUserId=").append(modifyUserId);
sb.append(", modifyUserName=").append(modifyUserName);
sb.append(", confirmPrompts=").append(confirmPrompts);
sb.append(", addflag1=").append(addflag1);
sb.append(", addflag2=").append(addflag2);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
......
......@@ -1594,6 +1594,126 @@ public class UserExample {
addCriterion("CONFIRM_PROMPTS not between", value1, value2, "confirmPrompts");
return (Criteria) this;
}
public Criteria andAddflag1IsNull() {
addCriterion("addflag1 is null");
return (Criteria) this;
}
public Criteria andAddflag1IsNotNull() {
addCriterion("addflag1 is not null");
return (Criteria) this;
}
public Criteria andAddflag1EqualTo(Long value) {
addCriterion("addflag1 =", value, "addflag1");
return (Criteria) this;
}
public Criteria andAddflag1NotEqualTo(Long value) {
addCriterion("addflag1 <>", value, "addflag1");
return (Criteria) this;
}
public Criteria andAddflag1GreaterThan(Long value) {
addCriterion("addflag1 >", value, "addflag1");
return (Criteria) this;
}
public Criteria andAddflag1GreaterThanOrEqualTo(Long value) {
addCriterion("addflag1 >=", value, "addflag1");
return (Criteria) this;
}
public Criteria andAddflag1LessThan(Long value) {
addCriterion("addflag1 <", value, "addflag1");
return (Criteria) this;
}
public Criteria andAddflag1LessThanOrEqualTo(Long value) {
addCriterion("addflag1 <=", value, "addflag1");
return (Criteria) this;
}
public Criteria andAddflag1In(List<Long> values) {
addCriterion("addflag1 in", values, "addflag1");
return (Criteria) this;
}
public Criteria andAddflag1NotIn(List<Long> values) {
addCriterion("addflag1 not in", values, "addflag1");
return (Criteria) this;
}
public Criteria andAddflag1Between(Long value1, Long value2) {
addCriterion("addflag1 between", value1, value2, "addflag1");
return (Criteria) this;
}
public Criteria andAddflag1NotBetween(Long value1, Long value2) {
addCriterion("addflag1 not between", value1, value2, "addflag1");
return (Criteria) this;
}
public Criteria andAddflag2IsNull() {
addCriterion("addflag2 is null");
return (Criteria) this;
}
public Criteria andAddflag2IsNotNull() {
addCriterion("addflag2 is not null");
return (Criteria) this;
}
public Criteria andAddflag2EqualTo(Long value) {
addCriterion("addflag2 =", value, "addflag2");
return (Criteria) this;
}
public Criteria andAddflag2NotEqualTo(Long value) {
addCriterion("addflag2 <>", value, "addflag2");
return (Criteria) this;
}
public Criteria andAddflag2GreaterThan(Long value) {
addCriterion("addflag2 >", value, "addflag2");
return (Criteria) this;
}
public Criteria andAddflag2GreaterThanOrEqualTo(Long value) {
addCriterion("addflag2 >=", value, "addflag2");
return (Criteria) this;
}
public Criteria andAddflag2LessThan(Long value) {
addCriterion("addflag2 <", value, "addflag2");
return (Criteria) this;
}
public Criteria andAddflag2LessThanOrEqualTo(Long value) {
addCriterion("addflag2 <=", value, "addflag2");
return (Criteria) this;
}
public Criteria andAddflag2In(List<Long> values) {
addCriterion("addflag2 in", values, "addflag2");
return (Criteria) this;
}
public Criteria andAddflag2NotIn(List<Long> values) {
addCriterion("addflag2 not in", values, "addflag2");
return (Criteria) this;
}
public Criteria andAddflag2Between(Long value1, Long value2) {
addCriterion("addflag2 between", value1, value2, "addflag2");
return (Criteria) this;
}
public Criteria andAddflag2NotBetween(Long value1, Long value2) {
addCriterion("addflag2 not between", value1, value2, "addflag2");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {
......
......@@ -40,7 +40,7 @@
sys:系统 系统相关表,例如kafka表
log: 日志 日志记录表,例如邮件发送日志表
-->
<javaModelGenerator targetPackage="com.fedex.connect.common.model.biz" targetProject="src/main/java">
<javaModelGenerator targetPackage="com.fedex.connect.common.model.sys" targetProject="src/main/java">
<!---enableSubPackages:如果true,MBG会根据catalog和schema来生成子包。如果false就会直接用targetPackage属性-->
<property name="enableSubPackages" value="false"/>
<!--该属性只对MyBatis3有效,如果true就会使用构造方法入参,如果false就会使用setter方式。默认为false-->
......@@ -52,13 +52,13 @@
</javaModelGenerator>
<!-- 生成映射文件*.xml的位置-->
<sqlMapGenerator targetPackage="mapper.biz" targetProject="src/main/java/com/fedex/connect/common">
<sqlMapGenerator targetPackage="mapper.sys" targetProject="src/main/java/com/fedex/connect/common">
<!--如果true,MBG会根据catalog和schema来生成子包。如果false就会直接用targetPackage属性。默认为false-->
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.fedex.connect.common.dao.biz" targetProject="src/main/java">
<javaClientGenerator type="XMLMAPPER" targetPackage="com.fedex.connect.common.dao.sys" targetProject="src/main/java">
<!--如果true,MBG会根据catalog和schema来生成子包。如果false就会直接用targetPackage属性。默认为false-->
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
......@@ -73,12 +73,12 @@
generatedKey 指定KEY,Oracle需要指定序列。
sqlStatement 指定序列名称
-->
<table schema="ICLEARIMP" tableName="T_BIZ_USER_CONSIGNMENT_MAPPING" domainObjectName="UserConsignmentMapping"
enableCountByExample="true" enableUpdateByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
selectByExampleQueryId="true">
<generatedKey column="ID" sqlStatement="SELECT SEQ_T_BIZ_USER_CONSIGNMENT_MAPPING.NEXTVAL FROM DUAL" />
</table>
<!-- <table schema="ICLEARIMP" tableName="T_BIZ_USER_CONSIGNMENT_MAPPING" domainObjectName="UserConsignmentMapping"-->
<!-- enableCountByExample="true" enableUpdateByExample="true"-->
<!-- enableDeleteByExample="true" enableSelectByExample="true"-->
<!-- selectByExampleQueryId="true">-->
<!-- <generatedKey column="ID" sqlStatement="SELECT SEQ_T_BIZ_USER_CONSIGNMENT_MAPPING.NEXTVAL FROM DUAL" />-->
<!-- </table>-->
<!-- <table schema="ICLEARIMP" tableName="T_LOG_OPERATION" domainObjectName="Operation"-->
......@@ -169,12 +169,12 @@
<!-- selectByExampleQueryId="true">-->
<!-- <generatedKey column="ID" sqlStatement="SELECT SEQ_T_SYS_KAFKA_TEMPORARY_STORAGE.NEXTVAL FROM DUAL" />-->
<!-- </table>-->
<!-- <table schema="ICLEARIMP" tableName="T_SYS_PARAM_CONFIG" domainObjectName="ParamConfig"-->
<!-- enableCountByExample="true" enableUpdateByExample="true"-->
<!-- enableDeleteByExample="true" enableSelectByExample="true"-->
<!-- selectByExampleQueryId="true">-->
<!-- <generatedKey column="ID" sqlStatement="SELECT SEQ_T_SYS_PARAM_CONFIG.NEXTVAL FROM DUAL" />-->
<!-- </table>-->
<table schema="ICLEARIMP" tableName="T_SYS_PARAM_CONFIG" domainObjectName="ParamConfig"
enableCountByExample="true" enableUpdateByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
selectByExampleQueryId="true">
<generatedKey column="ID" sqlStatement="SELECT SEQ_T_SYS_PARAM_CONFIG.NEXTVAL FROM DUAL" />
</table>
<!-- <table tableName="T_SYS_PRIVILEGE" domainObjectName="Privilege"-->
<!-- enableCountByExample="true" enableUpdateByExample="true"-->
<!-- enableDeleteByExample="true" enableSelectByExample="true"-->
......@@ -193,12 +193,12 @@
<!-- selectByExampleQueryId="true">-->
<!-- <generatedKey column="ID" sqlStatement="SELECT SEQ_T_SYS_ROLE_PRIVILEGE.NEXTVAL FROM DUAL" />-->
<!-- </table>-->
<!-- <table schema="ICLEARIMP" tableName="T_SYS_USER" domainObjectName="User"-->
<!-- enableCountByExample="true" enableUpdateByExample="true"-->
<!-- enableDeleteByExample="true" enableSelectByExample="true"-->
<!-- selectByExampleQueryId="true">-->
<!-- <generatedKey column="ID" sqlStatement="SELECT SEQ_T_SYS_USER.NEXTVAL FROM DUAL" />-->
<!-- </table>-->
<table schema="ICLEARIMP" tableName="T_SYS_USER" domainObjectName="User"
enableCountByExample="true" enableUpdateByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
selectByExampleQueryId="true">
<generatedKey column="ID" sqlStatement="SELECT SEQ_T_SYS_USER.NEXTVAL FROM DUAL" />
</table>
<!-- <table schema="ICLEARIMP" tableName="T_SYS_USER_ROLE" domainObjectName="UserRole"-->
<!-- enableCountByExample="true" enableUpdateByExample="true"-->
<!-- enableDeleteByExample="true" enableSelectByExample="true"-->
......
......@@ -21,6 +21,13 @@ public interface ParamConfigConstants {
* @Date 2024/11/20
*/
interface TASK_PARAM_KEYS{
//推送TW001间隔配置key
String PUSH_IMP001_INTERVAL = "push_imp001_interval";
//推送进口文件定时任务处理数量
String PUSH_CON_NUMBER = "push_con_number";
//通知发件人定时任务处理数量
String NOTIFICATION_SENDER_NUMBER = "notification_sender_number";
//通知发件人邮件定时任务处理数量
String NOTIFICATION_SENDER_EMAIL_NUMBER = "notification_sender_email_number";
}
}
......
......@@ -6,26 +6,27 @@ package com.fedex.connect.common.dependencies.enums.biz;
* @Date 2024/11/19
*/
public enum EmailStatusEnum {
PENDING(0L,"pending","待发送"),
SUCCESS(1L,"success","发送成功"),
FAILED(2L,"failed","发送失败"),
PENDING("emailStatus_01","pending","待发送"),
SUCCESS("emailStatus_02","success","发送成功"),
FAILED("emailStatus_03","failed","发送失败"),
;
private Long code;
private String code;
private String enMsg;
private String msg;
EmailStatusEnum(Long code, String enMsg,String msg) {
EmailStatusEnum(String code, String enMsg,String msg) {
this.code = code;
this.enMsg = enMsg;
this.msg = msg;
}
public Long getCode() {
public String getCode() {
return code;
}
public void setCode(Long code) {
public void setCode(String code) {
this.code = code;
}
......
......@@ -6,24 +6,26 @@ package com.fedex.connect.common.dependencies.enums.biz;
* @Date 2024/11/19
*/
public enum EmailTypeEnum {
PUSH_CON_FILE(0L,"pushConFile","推送预清关文件"),
PUSH_CON_FILE("emailType_01","pushConFile","推送预清关文件"),
NOTIFICATION_SENDER("emailType_02","notificationSender","提醒发件人"),
;
private Long code;
private String code;
private String enMsg;
private String msg;
EmailTypeEnum(Long code, String enMsg,String msg) {
EmailTypeEnum(String code, String enMsg,String msg) {
this.code = code;
this.enMsg = enMsg;
this.msg = msg;
}
public Long getCode() {
public String getCode() {
return code;
}
public void setCode(Long code) {
public void setCode(String code) {
this.code = code;
}
......
......@@ -2,17 +2,18 @@ package com.fedex.connect.common.dependencies.repository.base;
import com.fedex.connect.common.dao.bi.DictionaryEntriesMapper;
import com.fedex.connect.common.dao.log.OperationMapper;
import com.fedex.connect.common.dao.sys.ParamConfigMapper;
import com.fedex.connect.common.dao.sys.RedisSlabMapper;
import com.fedex.connect.common.dependencies.repository.dao.UserMapperExt;
import org.springframework.beans.factory.annotation.Autowired;
public class BaseDao {
@Autowired
public UserMapperExt userMapperExt;
protected UserMapperExt userMapperExt;
@Autowired
public RedisSlabMapper redisSlabMapper;
protected RedisSlabMapper redisSlabMapper;
@Autowired
public DictionaryEntriesMapper dictionaryEntriesMapper;
protected DictionaryEntriesMapper dictionaryEntriesMapper;
@Autowired
public OperationMapper operationMapper;
protected OperationMapper operationMapper;
}
\ No newline at end of file
......
......@@ -134,9 +134,13 @@ public class DateUtil {
}
public static void main(String[] args){
String prematchFltDate = "2019-06-11 15:52:52";
prematchFltDate = prematchFltDate.length()>10 ? prematchFltDate.substring(10): prematchFltDate;
logger.info(prematchFltDate);
String ddd = "2024-11-20 16:00:00";
Date beginDate = parse(ddd,PATTERN_DATE_TIME);
Date endDate = new Date();
long diffInMilliseconds = Math.abs(endDate.getTime() - beginDate.getTime());
// 引用形式的描述信息
long diffInMinutes = diffInMilliseconds / (60 * 1000); // 将毫秒差值转换为分钟数
System.out.println(diffInMinutes);
}
/**
......
......@@ -23,4 +23,11 @@ public class DicEntriesController extends BaseController implements IDicEntriesC
List<DictionaryEntries> countryList = dicEntriesService.getCountryAll();
return responseUtils.success(countryList);
}
@GetMapping("/getConsStatus")
@ApiOperation(value = "ResponseVo", notes = "获取运单状态")
public ResponseVo getConsStatus(){
List<DictionaryEntries> countryList = dicEntriesService.getConsStatus();
return responseUtils.success(countryList);
}
}
......
package com.fedex.connect.manager.controller.sys;
import com.fedex.connect.common.dependencies.date.vo.ResponseVo;
import com.fedex.connect.manager.data.bo.AddFlagBo;
public interface ISysUserController {
ResponseVo getUser();
ResponseVo updateAddFlag(AddFlagBo bo);
}
......
......@@ -3,9 +3,9 @@ package com.fedex.connect.manager.controller.sys.impl;
import com.fedex.connect.common.dependencies.authentication.SecurityConstants;
import com.fedex.connect.common.dependencies.cache.CacheSystem;
import com.fedex.connect.common.dependencies.contants.ParamConfigConstants;
import com.fedex.connect.common.dependencies.contants.RedisConstants;
import com.fedex.connect.common.dependencies.date.vo.ResponseVo;
import com.fedex.connect.common.dependencies.enums.sys.ParamConfigEnum;
import com.fedex.connect.common.dependencies.enums.sys.UserLoginTypeEnum;
import com.fedex.connect.common.dependencies.util.GsonUtils;
import com.fedex.connect.common.dependencies.util.JwtTokenUtils;
......@@ -91,7 +91,7 @@ public class SysAuthController extends BaseController implements ISysAuthControl
ResponseVo tokenResult = sysAuthService.createFclToken(jsonObject);
if (tokenResult.isSuccess()){
String fcl_token_key = String.valueOf(tokenResult.getData());
String redirectUrl = String.format("%s?token=%s", paramConfigUtil.getParamValue(ParamConfigEnum.FCL_LOGIN_URL.getEnMsg()), fcl_token_key);
String redirectUrl = String.format("%s?token=%s", paramConfigUtil.getParamValue(ParamConfigConstants.FCL_PARAM_KEYS.FCL_LOGIN_URL), fcl_token_key);
System.out.println(redirectUrl);
res.sendRedirect(redirectUrl);
}
......
......@@ -5,13 +5,12 @@ import com.fedex.connect.common.dependencies.util.CurrentUserInfo;
import com.fedex.connect.common.model.sys.User;
import com.fedex.connect.manager.controller.base.BaseController;
import com.fedex.connect.manager.controller.sys.ISysUserController;
import com.fedex.connect.manager.data.bo.AddFlagBo;
import com.fedex.connect.manager.enums.ResponseCode;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
......@@ -41,4 +40,24 @@ public class SysUserController extends BaseController implements ISysUserControl
}
return success;
}
@Override
@PostMapping("/updateAddFlag")
@ApiOperation(value = "更新ADD标记")
public ResponseVo updateAddFlag(@RequestBody AddFlagBo bo){
ResponseVo success = responseUtils.success();
try{
User sysUser = this.getCurrentUserInfo();
/**
* 更新ADD标记
*/
sysUserService.updateAddFlag(sysUser,bo);
//返回用户信息
return responseUtils.success(sysUser);
} catch (Exception e){
log.error("获取用户信息失败",e);
responseUtils.fail(ResponseCode.MESSAGE_CODE_40006);
}
return success;
}
}
......
package com.fedex.connect.manager.data.bo;
import lombok.Data;
@Data
public class AddFlagBo {
private Integer addFlag1;
private Integer addFlag2;
}
......@@ -12,7 +12,7 @@ import com.fedex.connect.manager.repository.dao.RoleExtMapper;
import com.fedex.connect.manager.repository.dao.RolePrivilegeExtMapper;
import org.springframework.beans.factory.annotation.Autowired;
public class BaseDao {
public class AbstractDaoRepository {
@Autowired
public UserLoginInfoMapper userLoginInfoMapper;
@Autowired
......
......@@ -5,6 +5,6 @@ import org.apache.ibatis.annotations.Select;
public interface ParamConfigExtMapper {
@Select("SELECT VALUE FROM T_SYS_PARAM_CONFIG WHERE CODE = #{code}")
@Select("SELECT VALUE FROM T_SYS_PARAM_CONFIG WHERE CODE = #{code} AND STATUS = 1")
String findValueByCode(@Param("code") String code);
}
......
......@@ -6,4 +6,6 @@ import java.util.List;
public interface IDicEntriesRepository {
List<DictionaryEntries> getCountryAll();
List<DictionaryEntries> getConsStatus();
}
......
......@@ -3,7 +3,7 @@ package com.fedex.connect.manager.repository.repo.bi.impl;
import com.fedex.connect.common.dependencies.cache.CacheSystem;
import com.fedex.connect.common.dependencies.contants.DictionaryConstants;
import com.fedex.connect.common.model.bi.DictionaryEntries;
import com.fedex.connect.manager.repository.base.BaseDao;
import com.fedex.connect.manager.repository.base.AbstractDaoRepository;
import com.fedex.connect.manager.repository.repo.bi.IDicEntriesRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
......@@ -16,7 +16,7 @@ import java.util.List;
* @Date 2024/11/6
*/
@Repository
public class DicEntriesRepositoryImpl extends BaseDao implements IDicEntriesRepository {
public class DicEntriesRepositoryImpl extends AbstractDaoRepository implements IDicEntriesRepository {
@Autowired
CacheSystem cacheSystem;
......@@ -30,4 +30,9 @@ public class DicEntriesRepositoryImpl extends BaseDao implements IDicEntriesRepo
public List<DictionaryEntries> getCountryAll(){
return cacheSystem.getDictionarysByDicCode(DictionaryConstants.COUNTRY);
}
@Override
public List<DictionaryEntries> getConsStatus() {
return cacheSystem.getDictionarysByDicCode(DictionaryConstants.CONSIGNMENT_STATUS);
}
}
......
package com.fedex.connect.manager.repository.repo.log.impl;
import com.fedex.connect.common.model.log.UserLoginInfo;
import com.fedex.connect.manager.repository.base.BaseDao;
import com.fedex.connect.manager.repository.base.AbstractDaoRepository;
import com.fedex.connect.manager.repository.repo.log.IUserLoginLogRepository;
import org.springframework.stereotype.Repository;
@Repository
public class UserLoginLogRepositoryImpl extends BaseDao implements IUserLoginLogRepository {
public class UserLoginLogRepositoryImpl extends AbstractDaoRepository implements IUserLoginLogRepository {
@Override
public int insert(UserLoginInfo userLoginInfo) {
......
package com.fedex.connect.manager.repository.repo.sys;
public interface IParamConfigExtRepository {
public interface IParamConfigRepository {
String findValueByCode(String code);
}
......
package com.fedex.connect.manager.repository.repo.sys.impl;
import com.fedex.connect.manager.repository.base.BaseDao;
import com.fedex.connect.manager.repository.repo.sys.IParamConfigExtRepository;
import com.fedex.connect.manager.repository.base.AbstractDaoRepository;
import com.fedex.connect.manager.repository.repo.sys.IParamConfigRepository;
import org.springframework.stereotype.Repository;
@Repository
public class ParamConfigExtRepositoryImpl extends BaseDao implements IParamConfigExtRepository {
public class ParamConfigRepositoryImpl extends AbstractDaoRepository implements IParamConfigRepository {
@Override
public String findValueByCode(String code) {
......
package com.fedex.connect.manager.repository.repo.sys.impl;
import com.fedex.connect.common.model.sys.Privilege;
import com.fedex.connect.manager.repository.base.BaseDao;
import com.fedex.connect.manager.repository.base.AbstractDaoRepository;
import com.fedex.connect.manager.repository.repo.sys.IPrivilegeRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class PrivilegeRepositoryImpl extends BaseDao implements IPrivilegeRepository {
public class PrivilegeRepositoryImpl extends AbstractDaoRepository implements IPrivilegeRepository {
@Override
public List<Privilege> findPrivilegesByIds(List<Long> ids) {
......
......@@ -2,14 +2,14 @@ package com.fedex.connect.manager.repository.repo.sys.impl;
import com.fedex.connect.common.model.sys.RedisSlab;
import com.fedex.connect.common.model.sys.RedisSlabExample;
import com.fedex.connect.manager.repository.base.BaseDao;
import com.fedex.connect.manager.repository.base.AbstractDaoRepository;
import com.fedex.connect.manager.repository.repo.sys.IRedisSlabRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class RedisSlabExtImpl extends BaseDao implements IRedisSlabRepository {
public class RedisSlabExtImpl extends AbstractDaoRepository implements IRedisSlabRepository {
@Override
public int insert(RedisSlab record) {
......
package com.fedex.connect.manager.repository.repo.sys.impl;
import com.fedex.connect.manager.repository.base.BaseDao;
import com.fedex.connect.manager.repository.base.AbstractDaoRepository;
import com.fedex.connect.manager.repository.repo.sys.IRolePrivilegeRepository;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
......@@ -8,7 +8,7 @@ import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class RolePrivilegeRepositoryImpl extends BaseDao implements IRolePrivilegeRepository {
public class RolePrivilegeRepositoryImpl extends AbstractDaoRepository implements IRolePrivilegeRepository {
public List<Long> findByRoleIds(@Param("roleIds") List<Long> roleIds){
return rolePrivilegeExtMapper.findByRoleIds(roleIds);
}
......
......@@ -2,14 +2,14 @@ package com.fedex.connect.manager.repository.repo.sys.impl;
import com.fedex.connect.common.model.sys.Role;
import com.fedex.connect.common.model.sys.RoleExample;
import com.fedex.connect.manager.repository.base.BaseDao;
import com.fedex.connect.manager.repository.base.AbstractDaoRepository;
import com.fedex.connect.manager.repository.repo.sys.IRoleRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class RoleRepositoryImpl extends BaseDao implements IRoleRepository {
public class RoleRepositoryImpl extends AbstractDaoRepository implements IRoleRepository {
@Override
public List<Role> selectByExample(RoleExample example) {
......
......@@ -2,14 +2,14 @@ package com.fedex.connect.manager.repository.repo.sys.impl;
import com.fedex.connect.common.model.sys.User;
import com.fedex.connect.common.model.sys.UserExample;
import com.fedex.connect.manager.repository.base.BaseDao;
import com.fedex.connect.manager.repository.base.AbstractDaoRepository;
import com.fedex.connect.manager.repository.repo.sys.IUserRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class UserExtRepositoryImpl extends BaseDao implements IUserRepository {
public class UserExtRepositoryImpl extends AbstractDaoRepository implements IUserRepository {
@Override
public List<User> selectByExample(UserExample example) {
......
......@@ -2,14 +2,14 @@ package com.fedex.connect.manager.repository.repo.sys.impl;
import com.fedex.connect.common.model.sys.UserRole;
import com.fedex.connect.common.model.sys.UserRoleExample;
import com.fedex.connect.manager.repository.base.BaseDao;
import com.fedex.connect.manager.repository.base.AbstractDaoRepository;
import com.fedex.connect.manager.repository.repo.sys.IUserRoleRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class UserRoleRepositoryImpl extends BaseDao implements IUserRoleRepository {
public class UserRoleRepositoryImpl extends AbstractDaoRepository implements IUserRoleRepository {
@Override
public List<UserRole> selectByExample(UserRoleExample example) {
......
......@@ -5,4 +5,6 @@ import java.util.List;
public interface IDicEntriesService {
List<DictionaryEntries> getCountryAll();
List<DictionaryEntries> getConsStatus();
}
\ No newline at end of file
......
......@@ -14,4 +14,9 @@ public class DicEntriesServiceImpl extends BaseService implements IDicEntriesSer
public List<DictionaryEntries> getCountryAll() {
return dicEntriesRepository.getCountryAll();
}
@Override
public List<DictionaryEntries> getConsStatus() {
return dicEntriesRepository.getConsStatus();
}
}
......
package com.fedex.connect.manager.service.sys;
import com.fedex.connect.common.model.sys.User;
import com.fedex.connect.manager.data.bo.AddFlagBo;
import com.fedex.connect.manager.data.dto.SysUserDto;
import javax.servlet.http.HttpServletRequest;
......@@ -16,4 +17,6 @@ public interface ISysUserService {
void getFclData(HttpServletRequest request,List<String> cookiesList,List<String> saveKeyList);
User findById(Long id);
void updateAddFlag(User user, AddFlagBo bo);
}
......
......@@ -11,6 +11,7 @@ import com.fedex.connect.common.model.sys.Role;
import com.fedex.connect.common.model.sys.User;
import com.fedex.connect.common.model.sys.UserExample;
import com.fedex.connect.manager.config.PropertiesConfig;
import com.fedex.connect.manager.data.bo.AddFlagBo;
import com.fedex.connect.manager.data.dto.SysUserDto;
import com.fedex.connect.manager.data.model.LogShowModel;
import com.fedex.connect.manager.service.base.BaseService;
......@@ -195,5 +196,26 @@ public class SysUserServiceImpl extends BaseService implements ISysUserService {
return userRepository.findById(id);
}
/**
* @Author Szl
* @Description 功能说明 更新用户ADD提示标记
* @Date 2024/11/20
* @param user
* @param bo
* @return void
*/
@Override
public void updateAddFlag(User user, AddFlagBo bo) {
if (bo.getAddFlag1() != null){
user.setAddflag1(bo.getAddFlag1());
}
if (bo.getAddFlag2() != null){
user.setAddflag2(bo.getAddFlag2());
}
userRepository.updateByPrimaryKeySelective(user);
}
}
......
package com.fedex.connect.manager.util;
import com.fedex.connect.manager.repository.repo.sys.IParamConfigExtRepository;
import com.fedex.connect.manager.repository.repo.sys.IParamConfigRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
public class ParamConfigUtil {
@Autowired
private IParamConfigExtRepository paramConfigExtRepository;
private IParamConfigRepository paramConfigExtRepository;
/**
* @Author Szl
......
......@@ -50,7 +50,7 @@ url:
fcl:
login:
url: http://exportdeclarationuat-tw.dmz.apac.fedex.com/icleartw/auth/wlgnLogin
redjrectLogin: http://localhost:8080/ImpPer/#/redjrectLogin
redjrectLogin: http://192.168.1.251/time.html
twidx:
url: http://exportdeclarationuat-tw.apac.fedex.com
interface:
......
package com.fedex.connect.task.aspect;
import com.fedex.connect.common.dependencies.util.DateUtil;
import com.fedex.connect.common.model.sys.ParamConfig;
import com.fedex.connect.task.annotation.ProcessingInterval;
import com.fedex.connect.task.repository.repo.sys.IParamConfigRepository;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.Signature;
......@@ -10,9 +13,14 @@ import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.lang.reflect.Method;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.Objects;
/**
* @Author mt
......@@ -23,7 +31,8 @@ import java.lang.reflect.Method;
@Slf4j
@Component
public class ExecuteAspect {
private Logger log = LoggerFactory.getLogger(ExecuteAspect.class);
@Autowired
IParamConfigRepository paramConfigRepository;
@Pointcut("@annotation(com.fedex.connect.task.annotation.ProcessingInterval)")
public void executePointCut()
......@@ -42,14 +51,51 @@ public class ExecuteAspect {
Signature signature = pjp.getSignature();
MethodSignature methodSignature = (MethodSignature) signature;
Method method = methodSignature.getMethod();
//判断该定时任务是否执行
boolean execute = this.isExecute(processingTime);
if(execute) {
long begin = System.currentTimeMillis();
log.info("{} Job Task Start......", method.getName());
obj = pjp.proceed();
long end = System.currentTimeMillis();
log.info("{} Job Task end......execution time--{}ms", method.getName(),(end-begin));
log.info("{} Job Task end......execution time--{}ms", method.getName(), (end - begin));
}
}catch(Throwable throwable){
log.error("ExecuteAspect.executeAround error : " + throwable.getMessage() , throwable);
}
return obj;
}
/**
* @Author mt
* @Description 判断定时任务是否执行
* @Date 2024/11/20
* @param processingInterval
* @return boolean
*/
private boolean isExecute(ProcessingInterval processingInterval){
boolean execute = true;
if(Objects.nonNull(processingInterval)){
String paramCode = processingInterval.paramCode();
if(StringUtils.hasText(paramCode)){
ParamConfig paramConfig = paramConfigRepository.findValueByCode(paramCode);
if(Objects.nonNull(paramConfig)
&& Objects.nonNull(paramConfig.getValue())
&& Objects.nonNull(paramConfig.getExt3())){
//任务执行间隔
Long interval = Long.valueOf(paramConfig.getValue());
Date lastExecutionTime = paramConfig.getExt3();
Date endDate = new Date();
long diffInMilliseconds = Math.abs(endDate.getTime() - lastExecutionTime.getTime());
// 将毫秒差值转换为分钟数
long diffInMinutes = diffInMilliseconds / (60 * 1000);
//上次执行时间小于间隔时间,则本次任务不进行执行
if(diffInMinutes < interval){
execute = false;
}
}
}
}
return execute;
}
}
\ No newline at end of file
......
package com.fedex.connect.task.job;
import com.fedex.connect.task.annotation.ProcessingInterval;
import com.fedex.connect.task.service.biz.IDuplicateConsignmentEmailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* @Author Szl
* @Description 类说明 发邮件通知到该运单所属用户,告知运单已被其他用户创建上传
* @Date 2024/11/20
*/
@Component
public class DuplicateConsignmentEmailJob {
@Autowired
private IDuplicateConsignmentEmailService duplicateConsignmentEmailService;
@ProcessingInterval
@Scheduled(cron = "${export.task.allocation.pushConFile}")
public void pushConsignmentFileTask() {
duplicateConsignmentEmailService.duplicateConsignmentEmail();
}
}
package com.fedex.connect.task.job;
import com.fedex.connect.common.dependencies.contants.ParamConfigConstants;
import com.fedex.connect.task.annotation.ProcessingInterval;
import com.fedex.connect.task.service.biz.IPushObService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -20,10 +21,9 @@ public class Imp001Job {
/**
* 推送Imp001数据给到进口组
*/
@ProcessingInterval
@ProcessingInterval(paramCode = ParamConfigConstants.TASK_PARAM_KEYS.PUSH_IMP001_INTERVAL)
@Scheduled(cron = "${export.task.allocation.sendOb}")
public void sendObTask() {
sendObService.sendOb();
}
......
......@@ -5,6 +5,7 @@ import com.fedex.connect.common.dao.biz.PushObMapper;
import com.fedex.connect.common.dao.log.EmailHistoryMapper;
import com.fedex.connect.common.dao.sys.KafkaStorageHistoryMapper;
import com.fedex.connect.common.dao.sys.KafkaTemporaryStorageMapper;
import com.fedex.connect.common.dao.sys.ParamConfigMapper;
import com.fedex.connect.task.repository.dao.*;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -31,4 +32,6 @@ public class AbstractDaoRepository {
protected PortclearEmailMappingExtMapper portclearEmailMappingExtMapper;
@Autowired
protected PushObMapperExt pushObMapperExt;
@Autowired
protected ParamConfigMapper paramConfigMapper;
}
\ No newline at end of file
......
......@@ -9,7 +9,7 @@ import java.util.List;
@Mapper
public interface EmailExtMapper {
List<Email> findConPushEmails(String typeCode,String statusCode);
List<Email> findEmailsByDic(String typeCode,String statusCode,String rowLimit);
@Delete("DELETE FROM T_BIZ_EMAIL WHERE ID = #{id}")
void deleteById(@Param("id") Long id);
......
package com.fedex.connect.task.repository.dao;
import com.fedex.connect.common.model.sys.ParamConfig;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface ParamConfigExtMapper {
@Select("SELECT * FROM T_SYS_PARAM_CONFIG WHERE CODE = #{code}")
ParamConfig findByCode(@Param("code") String code);
}
......@@ -11,18 +11,18 @@ import java.util.List;
public interface PushObMapperExt {
@Select( "<script>" +
"SELECT * FROM T_PUSH_OB_LOG WHERE PUSH_STATUS = #{pushStatus,jdbcType=NUMERIC} AND ROWNUM &lt;= 500" +
"SELECT * FROM T_PUSH_OB_LOG WHERE STATUS_CODE = #{statusCode,jdbcType=VARCHAR} AND ROWNUM &lt;= 500" +
"</script>")
List<PushOb> findPushObByStatus(@Param("pushStatus") Long pushStatus);
List<PushOb> findPushObByStatus(@Param("statusCode") String statusCode);
@Select( "<script>" +
"SELECT * FROM T_PUSH_OB_LOG WHERE PUSH_NUM &lt; #{pushNum,jdbcType=NUMERIC} AND PUSH_STATUS = #{pushStatus,jdbcType=NUMERIC} AND ROWNUM &lt;= 500" +
"SELECT * FROM T_PUSH_OB_LOG WHERE PUSH_NUM &lt; #{pushNum,jdbcType=NUMERIC} AND STATUS_CODE = #{statusCode,jdbcType=VARCHAR} AND ROWNUM &lt;= 500" +
"</script>")
List<PushOb> findPushObByStatusAndNum(@Param("pushNum") Long pushNum, @Param("pushStatus") Long pushStatus);
List<PushOb> findPushObByStatusAndNum(@Param("pushNum") Long pushNum, @Param("statusCode") String statusCode);
@Select( "<script>" +
"SELECT count(*) FROM T_PUSH_OB_LOG WHERE PUSH_NUM &gt;= #{pushNum,jdbcType=NUMERIC} AND PUSH_STATUS = #{pushStatus,jdbcType=NUMERIC} " +
"SELECT count(*) FROM T_PUSH_OB_LOG WHERE PUSH_NUM &gt;= #{pushNum,jdbcType=NUMERIC} AND PUSH_STATUS = #{statusCode,jdbcType=VARCHAR} " +
"AND TRUNC(CREATE_TIME) = TRUNC(TO_DATE(#{date,jdbcType=VARCHAR}, 'YYYY-MM-DD'))" +
"</script>")
Integer findErrPushForEmail(@Param("pushNum") Long pushNum, @Param("pushStatus") Long pushStatus, @Param("date") String date);
Integer findErrPushForEmail(@Param("pushNum") Long pushNum, @Param("statusCode") String statusCode, @Param("date") String date);
}
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fedex.connect.task.repository.dao.EmailExtMapper">
<select id="findConPushEmails" resultType="com.fedex.connect.common.model.biz.Email">
<select id="findEmailsByDic" resultType="com.fedex.connect.common.model.biz.Email">
SELECT *
FROM (
SELECT *
......@@ -10,6 +10,6 @@
AND STATUS_CODE = #{statusCode}
ORDER BY CREATED_DATE DESC
)
WHERE ROWNUM &lt; 500
WHERE ROWNUM &lt; #{rowLimit}
</select>
</mapper>
\ No newline at end of file
......
......@@ -5,7 +5,7 @@ import com.fedex.connect.common.model.biz.Email;
import java.util.List;
public interface IEmailRepository {
List<Email> findConPushEmails(String typeCode,String statusCode);
List<Email> findEmailsByDic(String typeCode,String statusCode,String configCode);
void deleteById(Long id);
......
......@@ -27,20 +27,20 @@ public interface IPushObRepository {
* @Author mt
* @Description 根据推送次数,推送状态查找需要推送记录
* @Date 2024/11/20
* @param pushStatus
* @param statusCode
* @return java.util.List<com.fedex.connect.common.model.biz.PushOb>
*/
List<PushOb> findPushOb(Long pushStatus);
List<PushOb> findPushOb(String statusCode);
/**
* @Author mt
* @Description 根据推送次数,推送状态查找需要推送记录
* @Date 2024/11/20
* @param pushNum
* @param pushStatus
* @param statusCode
* @return java.util.List<com.fedex.connect.common.model.biz.PushOb>
*/
List<PushOb> findErrPushOb(Long pushNum,Long pushStatus);
List<PushOb> findErrPushOb(Long pushNum,String statusCode);
Integer findErrPushForEmail(Long pushNum,Long pushStatus,String date);
Integer findErrPushForEmail(Long pushNum,String statusCode,String date);
}
......
package com.fedex.connect.task.repository.repo.biz.impl;
import com.fedex.connect.common.model.biz.Email;
import com.fedex.connect.common.model.sys.ParamConfig;
import com.fedex.connect.task.repository.base.AbstractDaoRepository;
import com.fedex.connect.task.repository.repo.biz.IEmailRepository;
import org.springframework.stereotype.Repository;
......@@ -9,8 +10,12 @@ import java.util.List;
@Repository
public class EmailRepositoryImpl extends AbstractDaoRepository implements IEmailRepository {
public List<Email> findConPushEmails(String typeCode,String statusCode){
return emailExtMapper.findConPushEmails(typeCode,statusCode);
public List<Email> findEmailsByDic(String typeCode,String statusCode,String configCode){
/**
* 获取查询数量
*/
ParamConfig paramConfig = paramConfigExtMapper.findByCode(configCode);
return emailExtMapper.findEmailsByDic(typeCode,statusCode,paramConfig.getValue());
}
@Override
......
......@@ -36,30 +36,30 @@ public class PushObRepositoryImpl extends AbstractDaoRepository implements IPush
/**
* @Author mt
* @Description 根据推送次数,推送状态查找需要推送记录
* @Date 2024/5/24
* @param pushStatus
* @return java.util.List<com.fedex.export.repository.entity.PushOb>
* @Date 2024/11/20
* @param statusCode
* @return java.util.List<com.fedex.connect.common.model.biz.PushOb>
*/
@Override
public List<PushOb> findPushOb(Long pushStatus) {
return pushObMapperExt.findPushObByStatus(pushStatus);
public List<PushOb> findPushOb(String statusCode) {
return pushObMapperExt.findPushObByStatus(statusCode);
}
/**
* @Author mt
* @Description 根据推送次数,推送状态查找需要推送记录
* @Date 2024/5/24
* @Date 2024/11/20
* @param pushNum
* @param pushStatus
* @return java.util.List<com.fedex.export.repository.entity.PushOb>
* @param statusCode
* @return java.util.List<com.fedex.connect.common.model.biz.PushOb>
*/
@Override
public List<PushOb> findErrPushOb(Long pushNum, Long pushStatus) {
return pushObMapperExt.findPushObByStatusAndNum(pushNum,pushStatus);
public List<PushOb> findErrPushOb(Long pushNum, String statusCode) {
return pushObMapperExt.findPushObByStatusAndNum(pushNum,statusCode);
}
@Override
public Integer findErrPushForEmail(Long pushNum, Long pushStatus, String date) {
return pushObMapperExt.findErrPushForEmail(pushNum,pushStatus,date);
public Integer findErrPushForEmail(Long pushNum, String statusCode, String date) {
return pushObMapperExt.findErrPushForEmail(pushNum,statusCode,date);
}
}
......
package com.fedex.connect.task.repository.repo.log.impl;
import com.fedex.connect.common.model.biz.Email;
import com.fedex.connect.common.model.log.EmailHistory;
import com.fedex.connect.task.repository.base.AbstractDaoRepository;
import com.fedex.connect.task.repository.repo.log.IEmailHistoryRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class EmailHistoryRepositoryImpl extends AbstractDaoRepository implements IEmailHistoryRepository {
......
package com.fedex.connect.task.repository.repo.sys;
import com.fedex.connect.common.model.sys.ParamConfig;
public interface IParamConfigRepository {
ParamConfig findValueByCode(String code);
}
package com.fedex.connect.task.repository.repo.sys.impl;
import com.fedex.connect.common.dependencies.enums.base.StatusEnum;
import com.fedex.connect.common.model.sys.ParamConfig;
import com.fedex.connect.common.model.sys.ParamConfigExample;
import com.fedex.connect.task.repository.base.AbstractDaoRepository;
import com.fedex.connect.task.repository.repo.sys.IParamConfigRepository;
import org.springframework.stereotype.Repository;
import org.springframework.util.CollectionUtils;
@Repository
public class ParamConfigRepositoryImpl extends AbstractDaoRepository implements IParamConfigRepository {
@Override
public ParamConfig findValueByCode(String code) {
ParamConfigExample example = new ParamConfigExample();
ParamConfigExample.Criteria criteria = example.createCriteria();
criteria.andCodeEqualTo(code);
criteria.andStatusEqualTo(StatusEnum.YES.getCode());
return CollectionUtils.firstElement(paramConfigMapper.selectByExample(example));
}
}
\ No newline at end of file
package com.fedex.connect.task.service.biz;
public interface IDuplicateConsignmentEmailService {
void duplicateConsignmentEmail();
}
package com.fedex.connect.task.service.biz.impl;
import com.fedex.connect.common.dependencies.cache.CacheSystem;
import com.fedex.connect.common.dependencies.contants.ParamConfigConstants;
import com.fedex.connect.common.dependencies.enums.biz.EmailStatusEnum;
import com.fedex.connect.common.dependencies.enums.biz.EmailTypeEnum;
import com.fedex.connect.common.model.biz.Email;
import com.fedex.connect.task.data.dto.MailConfigDto;
import com.fedex.connect.task.service.base.BaseService;
import com.fedex.connect.task.service.biz.IDuplicateConsignmentEmailService;
import com.fedex.connect.task.utils.sys.DuplicateEmailUtil;
import com.fedex.connect.task.utils.sys.EmailUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Author Szl
* @Description 类说明 发送邮件通知用户
* @Date 2024/11/20
*/
@Service
public class DuplicateConsignmentEmailServiceImpl extends BaseService implements IDuplicateConsignmentEmailService {
@Autowired
private CacheSystem cacheSystem;
@Autowired
private EmailUtil emailUtil;
@Autowired
private DuplicateEmailUtil duplicateEmailUtil;
@Override
public void duplicateConsignmentEmail(){
/**
* 查询邮件发送日志表中状态为待推送且类型为“提醒发件人”的数据
*/
List<Email> emails = iEmailExtRepository.findEmailsByDic(cacheSystem.getDicEmailType(EmailTypeEnum.NOTIFICATION_SENDER.getEnMsg()).getCode(),
cacheSystem.getDicEmailStatus(EmailStatusEnum.PENDING.getEnMsg()).getCode(), ParamConfigConstants.TASK_PARAM_KEYS.NOTIFICATION_SENDER_EMAIL_NUMBER);
/**
* 发送邮件
*/
for (Email email : emails) {
/**
* 构造邮件dto
*/
MailConfigDto mailConfigDto = new MailConfigDto();
duplicateEmailUtil.createMailConfigDto(mailConfigDto);
/**
* 发送邮件
*/
boolean result = emailUtil.sendMail(mailConfigDto);
/**
* 更新邮件实体
*/
duplicateEmailUtil.updateEmail(result,email,cacheSystem);
/**
* 更新数据库
*/
duplicateEmailUtil.saveEmail(email);
}
}
}
package com.fedex.connect.task.service.biz.impl;
import com.fedex.connect.common.dependencies.cache.CacheSystem;
import com.fedex.connect.common.dependencies.contants.ParamConfigConstants;
import com.fedex.connect.common.dependencies.enums.biz.EmailStatusEnum;
import com.fedex.connect.common.dependencies.enums.biz.EmailTypeEnum;
import com.fedex.connect.common.dependencies.util.NIOFileUtils;
......@@ -55,8 +56,8 @@ public class PushConsignmentFileServiceImpl extends BaseService implements IPush
String tempPath = "";
String finalPath = "";
//查询需要发送的数据
List<Email> conPushEmails = iEmailExtRepository.findConPushEmails(cacheSystem.getDicEmailType(EmailTypeEnum.PUSH_CON_FILE.getEnMsg()).getCode(),
cacheSystem.getDicEmailStatus(EmailStatusEnum.PENDING.getEnMsg()).getCode());
List<Email> conPushEmails = iEmailExtRepository.findEmailsByDic(cacheSystem.getDicEmailType(EmailTypeEnum.PUSH_CON_FILE.getEnMsg()).getCode(),
cacheSystem.getDicEmailStatus(EmailStatusEnum.PENDING.getEnMsg()).getCode(),ParamConfigConstants.TASK_PARAM_KEYS.PUSH_CON_NUMBER);
for (Email conPushEmail : conPushEmails) {
//获取待发送的文件并打zip包
......
package com.fedex.connect.task.service.biz.impl;
import com.fedex.connect.common.dependencies.enums.biz.PushObStatusEnum;
import com.fedex.connect.common.model.biz.Consignment;
import com.fedex.connect.common.model.biz.PushOb;
import com.fedex.connect.task.service.base.BaseService;
......@@ -28,7 +29,7 @@ public class PushObServiceImpl extends BaseService implements IPushObService {
@Override
public void sendOb() {
//获取需要处理的记录
// List<PushObLog> pushObLogList = pushObLogRepository.findPushObLog(Constant.SEND_TW001_KEYS.PUSH_OB_STATUS_WAIT);
List<PushOb> pushObLogList = pushObRepository.findPushOb(PushObStatusEnum.TO_BE_SENT.getCode());
}
/**
......
......@@ -29,7 +29,6 @@ import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -244,7 +243,7 @@ public class ConFileEmailUtil {
String fileName = String.format("%s%s%s%s",
"",
"",
new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()),
DateUtil.yyyyMMddHHmmss(new Date()),
extension
);
String basePath = "";
......
package com.fedex.connect.task.utils.sys;
import com.fedex.connect.common.dependencies.cache.CacheSystem;
import com.fedex.connect.common.dependencies.enums.biz.EmailStatusEnum;
import com.fedex.connect.common.model.bi.DictionaryEntries;
import com.fedex.connect.common.model.biz.Email;
import com.fedex.connect.common.model.log.EmailHistory;
import com.fedex.connect.task.data.dto.MailConfigDto;
import com.fedex.connect.task.repository.repo.biz.IEmailRepository;
import com.fedex.connect.task.repository.repo.log.IEmailHistoryRepository;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
@Component
public class DuplicateEmailUtil {
@Autowired
private IEmailRepository emailRepository;
@Autowired
private IEmailHistoryRepository emailHistoryRepository;
/**
* @Author Szl
* @Description 功能说明 初始化邮件dto
* @Date 2024/11/20
* @param mailConfigDto
* @return com.fedex.connect.task.data.dto.MailConfigDto
*/
public MailConfigDto createMailConfigDto(MailConfigDto mailConfigDto){
mailConfigDto.setHost("");
mailConfigDto.setPort("");
mailConfigDto.setAuth("");
//设置代理
mailConfigDto.setProxyStartFlag("");
mailConfigDto.setProxyHost("");
mailConfigDto.setProxyPort("");
//发件人
mailConfigDto.setFrom("");
//发件人密码
mailConfigDto.setPassword("");
//ce接收人
mailConfigDto.setTo("");
//设置邮件标题
mailConfigDto.setSubject("");
//设置邮件内容
mailConfigDto.setContent("");
return mailConfigDto;
}
/**
* @Author Szl
* @Description 功能说明 更新Email状态
* @Date 2024/11/20
* @param result
* @param email
* @param cacheSystem
* @return com.fedex.connect.common.model.biz.Email
*/
public void updateEmail(boolean result, Email email, CacheSystem cacheSystem){
DictionaryEntries pending = cacheSystem.getDicEmailStatus(EmailStatusEnum.PENDING.getEnMsg());
DictionaryEntries success = cacheSystem.getDicEmailStatus(EmailStatusEnum.SUCCESS.getEnMsg());
DictionaryEntries failed = cacheSystem.getDicEmailStatus(EmailStatusEnum.FAILED.getEnMsg());
email.setSendTime(new Date());
if (result){
email.setTypeCode(success.getCode());
email.setTypeName(success.getEnglishName());
}else {
if (email.getSendNum()<3){
email.setTypeCode(pending.getCode());
email.setTypeName(pending.getEnglishName());
email.setSendNum(email.getSendNum()+1);
}else {
email.setTypeCode(failed.getCode());
email.setTypeName(failed.getEnglishName());
}
}
}
/**
* @Author Szl
* @Description 功能说明 保存email信息入库
* @Date 2024/11/20
* @param email
* @return void
*/
@Transactional
public void saveEmail(Email email){
if (EmailStatusEnum.PENDING.getCode().equals(email.getTypeCode())){
emailRepository.saveOrUpdate(email);
}else {
EmailHistory emailHistory = new EmailHistory();
BeanUtils.copyProperties(email, emailHistory);
emailRepository.deleteById(email.getId());
emailHistoryRepository.saveOrUpdate(emailHistory);
}
}
}
......@@ -18,6 +18,13 @@ import java.util.Properties;
@Slf4j
@Component
public class EmailUtil {
/**
* @Author Szl
* @Description 功能说明 发送邮件
* @Date 2024/11/20
* @param mailConfig
* @return boolean
*/
public static boolean sendMail(MailConfigDto mailConfig) {
System.setProperty("mail.mime.splitlongparameters","false");
try {
......
......@@ -58,7 +58,7 @@ public class KafkaDmUtil {
//kafka临时表转历史表,并且将临时表id置空
List<KafkaStorageHistory> kafKaStorageHistoryList = this.convertTempToHis(backHisList);
//保存至历史表
kafkaStorageHistoryRepository.saveAll(kafKaStorageHistoryList);
kafkaStorageHistoryRepository.saveOrUpdateAll(kafKaStorageHistoryList);
}
/***更新临时表状态,并实体数据转换为json字符串进行数据下发***/
if(issuedList.size() > 0) {
......