提交 f59dd1a9 authored 作者: 000516's avatar 000516

暂存代码

上级 164d0932
...@@ -108,10 +108,6 @@ ...@@ -108,10 +108,6 @@
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>com.larksuite.oapi</groupId>
<artifactId>oapi-sdk</artifactId>
</dependency>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
......
...@@ -5,12 +5,14 @@ import com.sfa.common.security.annotation.EnableRyFeignClients; ...@@ -5,12 +5,14 @@ import com.sfa.common.security.annotation.EnableRyFeignClients;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
/** /**
* 定时任务 * 定时任务
* *
* @author ruoyi * @author ruoyi
*/ */
@ComponentScan(basePackages = {"com.sfa.common.core.utils.sdk","com.sfa.job"})
@EnableCustomConfig @EnableCustomConfig
@EnableRyFeignClients @EnableRyFeignClients
@SpringBootApplication @SpringBootApplication
......
...@@ -16,7 +16,7 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; ...@@ -16,7 +16,7 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
* @date : 2024-10-28 17 * @date : 2024-10-28 17
* @describe :自动封装 * @describe :自动封装
*/ */
@RestControllerAdvice @RestControllerAdvice(basePackages = {"com.sfa.job.controller"})
public class ControllerResponseAdvice implements ResponseBodyAdvice<Object>{ public class ControllerResponseAdvice implements ResponseBodyAdvice<Object>{
/** /**
......
...@@ -5,4 +5,6 @@ public class Constants { ...@@ -5,4 +5,6 @@ public class Constants {
* 采集数据方式 * 采集数据方式
*/ */
public static final String SYNC_TYPE_XXL_JOB = "xxl-job"; public static final String SYNC_TYPE_XXL_JOB = "xxl-job";
public static final String ENCRYPT = "encrypt";
public static final String FEISHU_APPROVAL_INSTANCE = "approval_instance";
} }
package com.sfa.job.consumer.feishu;
import com.alibaba.fastjson2.JSONObject;
import com.sfa.common.core.enums.ECode;
import com.sfa.common.core.enums.promotion.PlanStatus;
import com.sfa.common.core.exception.ServiceException;
import com.sfa.job.constants.Constants;
import com.sfa.job.pojo.feishu.event.EventCallBackDto;
import com.sfa.job.service.feishu.IEventCallbackService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.Base64;
/**
* @author : liqiulin
* @date : 2025-06-04 13
* @describe : 飞书事件订阅 - 来自应用【王小卤链路中心】
* 订阅方式:https://open.feishu.cn/api-explorer/cli_a7dbe3ec7d9e5013?apiName=subscribe&from=op_doc_tab&project=approval&resource=approval&version=v4
*/
@Slf4j
@RestController
@RequestMapping("/event_callback/fs/luzx")
public class EventCallbackLuzx {
@Value("${feishu.luzx.encrypt_key}")
private String encryptKeyP;
@Value("${feishu.approval.scfy}")
private String scfyCode;
@Autowired
private IEventCallbackService eventCallbackService;
@RequestMapping(method = RequestMethod.POST)
public JSONObject handleEvent(@RequestBody JSONObject eventObj) {
String encryptKey = encryptKeyP;
String encrypt = eventObj.getString(Constants.ENCRYPT);
try {
MessageDigest digest = MessageDigest.getInstance("SHA-256");
byte[] keyBs = digest.digest(encryptKey.getBytes(StandardCharsets.UTF_8));
String decrypt = decrypt(encrypt,keyBs);
JSONObject req = JSONObject.parseObject(decrypt);
log.info("飞书事件订阅 - 解密数据:{}",req);
EventCallBackDto eventCallBackDto = JSONObject.parseObject(decrypt, EventCallBackDto.class);
EventCallBackDto.Event event = eventCallBackDto.getEvent();
/**
* 订阅审批 - 市场推广费用申请(审批实例CODE:258B4D93-96D4-49E4-B9E1-DA6AB45740B0)
*/
if (Constants.FEISHU_APPROVAL_INSTANCE.equals(event.getType()) && scfyCode.equals(event.getApprovalCode())){
if (!event.getStatus().equals(PlanStatus.PENDING.name())){
eventCallbackService.planCP(event);
}
}
return req;
} catch (Exception e) {
e.printStackTrace();
throw new ServiceException(ECode.DB_TABLE_UPDATE_ERROR.getMsg(),ECode.DB_TABLE_UPDATE_ERROR.getCode());
}
}
/**
* 解析encrypt_key加密数据
*/
private String decrypt(String base64,byte[] keyBs) throws Exception {
byte[] decode = Base64.getDecoder().decode(base64);
Cipher cipher = Cipher.getInstance("AES/CBC/NOPADDING");
byte[] iv = new byte[16];
System.arraycopy(decode, 0, iv, 0, 16);
byte[] data = new byte[decode.length - 16];
System.arraycopy(decode, 16, data, 0, data.length);
cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(keyBs, "AES"), new IvParameterSpec(iv));
byte[] r = cipher.doFinal(data);
if (r.length > 0) {
int p = r.length - 1;
for (; p >= 0 && r[p] <= 16; p--) {
}
if (p != r.length - 1) {
byte[] rr = new byte[p + 1];
System.arraycopy(r, 0, rr, 0, p + 1);
r = rr;
}
}
return new String(r, StandardCharsets.UTF_8);
}
}
package com.sfa.job.domain.promotion.dao;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.sfa.common.core.utils.bean.BeanUtils;
import com.sfa.job.domain.promotion.entity.ActivityPlanApproval;
import com.sfa.job.domain.promotion.mapper.ActivityPlanApprovalMapper;
import com.sfa.job.domain.promotion.mapper.ActivityPlanInfoMapper;
import com.sfa.job.pojo.promotion.response.ActivityPlanApprovalDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author : liqiulin
* @date : 2025-06-04 19
* @describe :
*/
@DS("promotion")
@Service
public class ActivityPlanDaoImpl implements IActivityPlanDao{
@Autowired
private ActivityPlanApprovalMapper activityPlanApprovalMapper;
@Autowired
private ActivityPlanInfoMapper activityPlanInfoMapper;
@Override
public ActivityPlanApprovalDto findPlanApproval(String instanceId) {
ActivityPlanApproval planApproval = activityPlanApprovalMapper.findPlanApproval(instanceId);
return BeanUtils.transitionDto(planApproval, ActivityPlanApprovalDto.class);
}
@Override
public void updateApprovalStatusById(Long id, String status) {
activityPlanApprovalMapper.updateApprovalStatusById(id,status);
}
@Override
public void updateActivityPlanStatusByInstanceId(String instanceId, Integer planStatusCode) {
activityPlanInfoMapper.updateStatusByInstanceId(instanceId,planStatusCode);
}
}
package com.sfa.job.domain.promotion.dao;
import com.sfa.job.pojo.promotion.response.ActivityPlanApprovalDto;
/**
* @author : liqiulin
* @date : 2025-06-04 19
* @describe :
*/
public interface IActivityPlanDao {
ActivityPlanApprovalDto findPlanApproval(String instanceId);
void updateApprovalStatusById(Long id, String status);
void updateActivityPlanStatusByInstanceId(String instanceId, Integer planStatusCode);
}
package com.sfa.job.domain.promotion.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName activity_plan_approval
*/
@TableName(value ="activity_plan_approval")
@Data
public class ActivityPlanApproval implements Serializable {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 活动计划表上传记录id
*/
private Long planFileId;
/**
* 姓名
*/
private String employeeName;
/**
* 员工工号
*/
private String employeeNo;
/**
* 计划月份
*/
private String planMonth;
/**
* 飞书审批实例ID
*/
private String fsInstanceId;
/**
* 审批单号
*/
private String serialNumber;
/**
* 审批状态
*/
private String approvalStatus;
/**
* 审批内容
*/
private String form;
/**
* 创建人
*/
private String createBy;
/**
*
*/
private Date createTime;
/**
*
*/
private Date modifyTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.sfa.job.domain.promotion.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
* 活动计划列表
* @TableName activity_plan_info
*/
@TableName(value ="activity_plan_info")
@Data
public class ActivityPlanInfo implements Serializable {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 活动计划表上传记录id
*/
private Long planFileId;
/**
* promotion_manage_employee表id
*/
private Integer employeeId;
/**
* 姓名
*/
private String employeeName;
/**
* 员工工号
*/
private String employeeNo;
/**
* 年份
*/
private Integer year;
/**
* 月份
*/
private Integer month;
/**
* 日期
*/
private Date date;
/**
* 系统名称
*/
private String lineName;
/**
* 门店名称
*/
private String storeName;
/**
* 门店编码
*/
private String storeCode;
/**
* 战区-勤策ID
*/
private String orgQcId;
/**
* 战区名称
*/
private String orgName;
/**
* 活动模式id
*/
private Integer patternId;
/**
* 活动模式
*/
private String pattern;
/**
* 经销商编码
*/
private String dealerId;
/**
* 经销商名称
*/
private String dealerName;
/**
* 是否双T门店
*/
private String bothT;
/**
* 门店所属行政区域-省份名称,如:北京市、江苏省
*/
private String province;
/**
* 门店所属行政区域-城市名称,如:南京市
*/
private String city;
/**
* 门店所属行政区域-区县名称,如:鼓楼区
*/
private String area;
/**
* 门店所在地址
*/
private String addr;
/**
* 上班时间
*/
private Date clockInTime;
/**
* 下班时间
*/
private Date clockOutTime;
/**
* 工资
*/
private BigDecimal salary;
/**
* 杂费
*/
private BigDecimal incidentals;
/**
* 是否执行:1:执行;0:未执行;2:审批中;3:审批拒绝;4:未审批;
*/
private Integer planStatus;
/**
* 飞书审批实例Code
*/
private String fsInstanceId;
/**
* 飞书审批单编号
*/
private String serialNumber;
/**
* 审批人
*/
private String approvalEmpName;
/**
*
*/
private Date createTime;
/**
*
*/
private Date modifyTime;
/**
* 1:有效;0:删除;
*/
private Integer isDelete;
/**
* 创建人
*/
private String createBy;
/**
* 修改人
*/
private String modifyBy;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.sfa.job.domain.promotion.mapper;
import com.sfa.job.domain.promotion.entity.ActivityPlanApproval;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
* @author a02200059
* @description 针对表【activity_plan_approval】的数据库操作Mapper
* @createDate 2025-06-04 19:01:10
* @Entity com.sfa.job.domain.promotion.entity.ActivityPlanApproval
*/
@Repository
public interface ActivityPlanApprovalMapper extends BaseMapper<ActivityPlanApproval> {
ActivityPlanApproval findPlanApproval(String instanceId);
void updateApprovalStatusById(@Param("id") Long id,@Param("status") String status);
}
package com.sfa.job.domain.promotion.mapper;
import com.sfa.job.domain.promotion.entity.ActivityPlanInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
/**
* @author a02200059
* @description 针对表【activity_plan_info(活动计划列表)】的数据库操作Mapper
* @createDate 2025-06-04 19:01:10
* @Entity com.sfa.job.domain.promotion.entity.ActivityPlanInfo
*/
@Repository
public interface ActivityPlanInfoMapper extends BaseMapper<ActivityPlanInfo> {
void updateStatusByInstanceId(@Param("fsInstanceId") String instanceId,@Param("planStatus") Integer planStatusCode);
}
package com.sfa.job.pojo.feishu.event;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
/**
* @author : liqiulin
* @date : 2025-06-04 18
* @describe :
*/
@Data
public class EventCallBackDto {
// 事件的唯一标识。
@JSONField(name = "uuid")
private String uuid;
// 事件 Token,即应用的 Verification Token。
@JSONField(name = "token")
private String token;
// 事件发送时间。包含小数的秒级时间戳。
@JSONField(name = "ts")
private String ts;
// 固定取值 event_callback。
@JSONField(name = "type")
private String type;
@JSONField(name = "event")
private Event event;
@Data
public class Event {
// 应用的 App ID。可调用获取应用信息接口查询应用详细信息。
@JSONField(name = "app_id")
private String appId;
// 审批定义 Code
@JSONField(name = "approval_code")
private String approvalCode;
// 审批实例 Code
@JSONField(name = "instance_code")
private String fsInstanceId;
// 事件发生事件,毫秒级时间戳。
@JSONField(name = "instance_operate_time")
private String instanceOperateTime;
// 事件发生时间,毫秒级时间戳。
@JSONField(name = "operate_time")
private String operateTime;
/**
* 审批实例状态。可能值有:
* PENDING:审批中
* APPROVED:已通过
* REJECTED:已拒绝
* CANCELED:已撤回
* DELETED:已删除
* REVERTED:已撤销
* OVERTIME_CLOSE:超时被关闭
* OVERTIME_RECOVER:超时实例被恢复
*/
@JSONField(name = "status")
private String status;
// 企业唯一标识。
@JSONField(name = "tenant_key")
private String tenantKey;
// 事件类型。固定取值
@JSONField(name = "type")
private String type;
// 如果创建审批实例时传入了 uuid,则此处返回该实例的 uuid。
@JSONField(name = "uuid")
private String uuid;
}
}
package com.sfa.job.pojo.promotion.response;
import lombok.Data;
import java.util.Date;
/**
* @author : liqiulin
* @date : 2025-06-04 19
* @describe :
*/
@Data
public class ActivityPlanApprovalDto {
/**
* 主键id
*/
private Long id;
/**
* 活动计划表上传记录id
*/
private Long planFileId;
/**
* 姓名
*/
private String employeeName;
/**
* 员工工号
*/
private String employeeNo;
/**
* 计划月份
*/
private String planMonth;
/**
* 飞书审批实例ID
*/
private String fsInstanceId;
/**
* 审批单号
*/
private String serialNumber;
/**
* 审批状态
*/
private String approvalStatus;
/**
* 审批内容
*/
private String form;
/**
* 创建人
*/
private String createBy;
/**
*
*/
private Date createTime;
/**
*
*/
private Date modifyTime;
}
package com.sfa.job.service.erp.impl; package com.sfa.job.service.erp.impl;
import com.alibaba.fastjson2.JSONObject; import com.sfa.common.core.utils.sdk.FeiShuUtil;
import com.sfa.job.domain.erp.dao.ErpAxmr005ShippingDetailsDao; import com.sfa.job.domain.erp.dao.ErpAxmr005ShippingDetailsDao;
import com.sfa.job.domain.use.dao.IFeishuSheetRecordDao;
import com.sfa.job.pojo.response.FeishuSheetRecordDto; import com.sfa.job.pojo.response.FeishuSheetRecordDto;
import com.sfa.job.service.erp.ErpAxmr005Service; import com.sfa.job.service.erp.ErpAxmr005Service;
import com.sfa.job.util.FeiShuUtil;
import com.sfa.job.domain.use.dao.IFeishuSheetRecordDao;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
......
package com.sfa.job.service.feishu;
import com.sfa.common.core.enums.promotion.PlanStatus;
import com.sfa.job.domain.promotion.dao.IActivityPlanDao;
import com.sfa.job.pojo.feishu.event.EventCallBackDto;
import com.sfa.job.pojo.promotion.response.ActivityPlanApprovalDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author : liqiulin
* @date : 2025-06-04 17
* @describe :
*/
@Slf4j
@Service
public class EventCallbackServiceImpl implements IEventCallbackService{
@Autowired
private IActivityPlanDao activityPlanDao;
@Override
public void planCP(EventCallBackDto.Event event) {
String status = event.getStatus();
String instanceId = event.getFsInstanceId();
ActivityPlanApprovalDto planApproval = activityPlanDao.findPlanApproval(instanceId);
if (planApproval == null){
log.error("审批实例不存在:{}",event);
}
activityPlanDao.updateApprovalStatusById(planApproval.getId(),status);
// 校验状态:已通过=已通过;非已通过=审批未通过
PlanStatus planStatus = PlanStatus.APPROVED.name().equals(status) ? PlanStatus.NOT_EXECUTION : PlanStatus.REJECTED;
Integer planStatusCode = planStatus.getCode();
activityPlanDao.updateActivityPlanStatusByInstanceId(instanceId,planStatusCode);
}
}
package com.sfa.job.service.feishu;
import com.sfa.job.pojo.feishu.event.EventCallBackDto;
/**
* @author : liqiulin
* @date : 2025-06-04 17
* @describe :
*/
public interface IEventCallbackService {
void planCP(EventCallBackDto.Event event);
}
...@@ -2,16 +2,14 @@ package com.sfa.job.service.feishu; ...@@ -2,16 +2,14 @@ package com.sfa.job.service.feishu;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.sfa.common.core.utils.sdk.FeiShuUtil;
import com.sfa.job.domain.feishu.dao.IQinceMarketEmployeeDao; import com.sfa.job.domain.feishu.dao.IQinceMarketEmployeeDao;
import com.sfa.job.domain.use.dao.IFeishuSheetRecordDao; import com.sfa.job.domain.use.dao.IFeishuSheetRecordDao;
import com.sfa.job.enums.FSRecordEnum; import com.sfa.job.enums.FSRecordEnum;
import com.sfa.job.pojo.response.FeishuSheetRecordDto; import com.sfa.job.pojo.response.FeishuSheetRecordDto;
import com.sfa.job.util.FeiShuUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.stream.DoubleStream;
/** /**
* @author : liqiulin * @author : liqiulin
* @date : 2025-05-09 16 * @date : 2025-05-09 16
......
...@@ -2,10 +2,10 @@ package com.sfa.job.service.system; ...@@ -2,10 +2,10 @@ package com.sfa.job.service.system;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.sfa.common.core.utils.sdk.FeiShuUtil;
import com.sfa.job.domain.system.dao.ISysDeptDao; import com.sfa.job.domain.system.dao.ISysDeptDao;
import com.sfa.job.domain.system.dao.ISysUserDao; import com.sfa.job.domain.system.dao.ISysUserDao;
import com.sfa.job.domain.system.entity.SysDept; import com.sfa.job.domain.system.entity.SysDept;
import com.sfa.job.util.FeiShuUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
......
...@@ -13,3 +13,5 @@ spring: ...@@ -13,3 +13,5 @@ spring:
file-extension: yaml file-extension: yaml
group: sfa group: sfa
namespace: 9fb64726-e415-43e4-9e79-9be8d2666671 namespace: 9fb64726-e415-43e4-9e79-9be8d2666671
shared-configs:
- data-id: wangxiaolu-sfa-shared.yaml
\ No newline at end of file
<?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.sfa.job.domain.promotion.mapper.ActivityPlanApprovalMapper">
<resultMap id="BaseResultMap" type="com.sfa.job.domain.promotion.entity.ActivityPlanApproval">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="planFileId" column="plan_file_id" jdbcType="BIGINT"/>
<result property="employeeName" column="employee_name" jdbcType="VARCHAR"/>
<result property="employeeNo" column="employee_no" jdbcType="VARCHAR"/>
<result property="planMonth" column="plan_month" jdbcType="VARCHAR"/>
<result property="fsInstanceId" column="fs_instance_id" jdbcType="VARCHAR"/>
<result property="serialNumber" column="serial_number" jdbcType="VARCHAR"/>
<result property="approvalStatus" column="approval_status" jdbcType="VARCHAR"/>
<result property="form" column="form" jdbcType="VARCHAR"/>
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="modifyTime" column="modify_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,plan_file_id,employee_name,
employee_no,plan_month,fs_instance_id,
serial_number,approval_status,form,
create_by,create_time,modify_time
</sql>
<select id="findPlanApproval" resultMap="BaseResultMap">
select *
from activity_plan_approval where fs_instance_id = #{instanceId};
</select>
<update id="updateApprovalStatusById">
update activity_plan_approval
set approval_status = #{status}
where id = #{id}
</update>
</mapper>
<?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.sfa.job.domain.promotion.mapper.ActivityPlanInfoMapper">
<resultMap id="BaseResultMap" type="com.sfa.job.domain.promotion.entity.ActivityPlanInfo">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="planFileId" column="plan_file_id" jdbcType="BIGINT"/>
<result property="employeeId" column="employee_id" jdbcType="INTEGER"/>
<result property="employeeName" column="employee_name" jdbcType="VARCHAR"/>
<result property="employeeNo" column="employee_no" jdbcType="VARCHAR"/>
<result property="year" column="year" jdbcType="INTEGER"/>
<result property="month" column="month" jdbcType="INTEGER"/>
<result property="date" column="date" jdbcType="DATE"/>
<result property="lineName" column="line_name" jdbcType="VARCHAR"/>
<result property="storeName" column="store_name" jdbcType="VARCHAR"/>
<result property="storeCode" column="store_code" jdbcType="VARCHAR"/>
<result property="orgQcId" column="org_qc_id" jdbcType="VARCHAR"/>
<result property="orgName" column="org_name" jdbcType="VARCHAR"/>
<result property="patternId" column="pattern_id" jdbcType="INTEGER"/>
<result property="pattern" column="pattern" jdbcType="VARCHAR"/>
<result property="dealerId" column="dealer_id" jdbcType="VARCHAR"/>
<result property="dealerName" column="dealer_name" jdbcType="VARCHAR"/>
<result property="bothT" column="both_t" jdbcType="VARCHAR"/>
<result property="province" column="province" jdbcType="VARCHAR"/>
<result property="city" column="city" jdbcType="VARCHAR"/>
<result property="area" column="area" jdbcType="VARCHAR"/>
<result property="addr" column="addr" jdbcType="VARCHAR"/>
<result property="clockInTime" column="clock_in_time" jdbcType="TIMESTAMP"/>
<result property="clockOutTime" column="clock_out_time" jdbcType="TIMESTAMP"/>
<result property="salary" column="salary" jdbcType="DECIMAL"/>
<result property="incidentals" column="incidentals" jdbcType="DECIMAL"/>
<result property="planStatus" column="plan_status" jdbcType="INTEGER"/>
<result property="fsInstanceId" column="fs_instance_id" jdbcType="VARCHAR"/>
<result property="serialNumber" column="serial_number" jdbcType="VARCHAR"/>
<result property="approvalEmpName" column="approval_emp_name" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="modifyTime" column="modify_time" jdbcType="TIMESTAMP"/>
<result property="isDelete" column="is_delete" jdbcType="INTEGER"/>
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
<result property="modifyBy" column="modify_by" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,plan_file_id,employee_id,
employee_name,employee_no,year,
month,date,line_name,
store_name,store_code,org_qc_id,
org_name,pattern_id,pattern,
dealer_id,dealer_name,both_t,
province,city,area,
addr,clock_in_time,clock_out_time,
salary,incidentals,plan_status,
instance_code,serial_number,approval_emp_name,
create_time,modify_time,is_delete,
create_by,modify_by
</sql>
<update id="updateStatusByInstanceId">
update activity_plan_info set plan_status = #{planStatus} where fs_instance_id = #{fsInstanceId}
</update>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论