提交 ecf835af authored 作者: 李秋林's avatar 李秋林

促销员打卡时,关联计划信息;小程序端促销员查询促销计划;

上级 a33e2e86
......@@ -45,8 +45,8 @@ public class TemporaryActivityClockCoreController {
clockVo.validate();
Integer clockType = clockVo.getClockType();
boolean isClockIn = ClockType.TEMPORARY_CLOCK_IN.equals(clockType);
// 上班卡必需有店铺id
if (isClockIn && (Objects.isNull(clockVo.getStoreId()) || clockVo.getStoreId() <= 0)) {
// 上班卡必需有促销计划ID
if (isClockIn && (Objects.isNull(clockVo.getPlanId()) || clockVo.getPlanId() <= 0)) {
throw new ParamException(RCode.NOT_CLOCK_STORE_ERROR, null);
}
// 非上班卡必需有打卡记录ID
......@@ -72,7 +72,8 @@ public class TemporaryActivityClockCoreController {
} else if (ClockType.TEMPORARY_CLOCK_OUT.equals(clockType)) {
builderClockOutData(clockVo, dto, clockTime);
}
tempActivityClockCoreService.clockInTodayActivity(dto, clockType);
// tempActivityClockCoreService.clockInTodayActivity(dto, clockType);
tempActivityClockCoreService.clockInTodayPlan(dto, clockType);
return R.success();
}
......@@ -116,14 +117,11 @@ public class TemporaryActivityClockCoreController {
// 上班打卡
private void builderClockInData(TemporaryClockVo clockVo, TemporaryClockDto clockDto, Date dateTime) {
// if (!DateUtils.parseTime(new Date(), ClockType.TEMPORARY_CLOCK_IN_BEGIN_TIME, ClockType.TEMPORARY_CLOCK_IN_END_TIME)) {
// throw new ParamException(RCode.CLOCK_DETAIL_TIME_ERROR, null);
// }
clockDto.setTemporaryId(clockVo.getTemporaryId())
.setTemporaryName(clockVo.getTemporaryName())
.setStoreId(clockVo.getStoreId())
.setStoreName(clockVo.getStoreName())
.setPlanId(clockVo.getPlanId())
// .setStoreId(clockVo.getStoreId())
// .setStoreName(clockVo.getStoreName())
.setClockInAddress(clockVo.getClockAddress())
.setClockInCoordinates(clockVo.getClockCoordinates())
.setClockInPhoto(clockVo.getClockPhoto())
......@@ -132,9 +130,6 @@ public class TemporaryActivityClockCoreController {
// 午休下班卡
private void builderNoonClockOutData(TemporaryClockVo clockVo, TemporaryClockDto clockDto, Date dateTime) {
// if (!DateUtils.parseTime(new Date(), ClockType.TEMPORARY_NOON_CLOCK_OUT_BEGIN_TIME, ClockType.TEMPORARY_NOON_CLOCK_OUT_END_TIME)) {
// throw new ParamException(RCode.CLOCK_DETAIL_TIME_ERROR, null);
// }
clockDto.setId(clockVo.getId())
.setNoonClockOutAddress(clockVo.getClockAddress())
.setNoonClockOutCoordinates(clockVo.getClockCoordinates())
......@@ -145,9 +140,6 @@ public class TemporaryActivityClockCoreController {
// 午休上班卡
private void builderNoonClockInData(TemporaryClockVo clockVo, TemporaryClockDto clockDto, Date dateTime) {
// if (!DateUtils.parseTime(new Date(), ClockType.TEMPORARY_NOON_CLOCK_IN_BEGIN_TIME, ClockType.TEMPORARY_NOON_CLOCK_IN_END_TIME)) {
// throw new ParamException(RCode.CLOCK_DETAIL_TIME_ERROR, null);
// }
clockDto.setId(clockVo.getId())
.setNoonClockInAddress(clockVo.getClockAddress())
.setNoonClockInCoordinates(clockVo.getClockCoordinates())
......@@ -157,9 +149,6 @@ public class TemporaryActivityClockCoreController {
// 下班卡
private void builderClockOutData(TemporaryClockVo clockVo, TemporaryClockDto clockDto, Date dateTime) {
// if (!DateUtils.parseTime(new Date(), ClockType.TEMPORARY_CLOCK_OUT_BEGIN_TIME, ClockType.TEMPORARY_CLOCK_OUT_END_TIME)) {
// throw new ParamException(RCode.CLOCK_DETAIL_TIME_ERROR, null);
// }
clockDto.setId(clockVo.getId())
.setClockOutAddress(clockVo.getClockAddress())
.setClockOutCoordinates(clockVo.getClockCoordinates())
......
......@@ -2,13 +2,12 @@ package com.wangxiaolu.promotion.controller.activity.temporary;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityPlanVo;
import com.wangxiaolu.promotion.result.basedata.R;
import com.wangxiaolu.promotion.service.activity.manage.ActivityPlanInfoQueryService;
import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityPlanQueryService;
import com.wangxiaolu.promotion.service.activityplanv2.PromPlanQueryService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* @author : liqiulin
......@@ -22,6 +21,8 @@ public class TemporaryActivityPlanQueryController {
@Autowired
TemporaryActivityPlanQueryService temporaryActivityPlanQueryService;
@Autowired
PromPlanQueryService promPlanQueryService;
/**
* 获取当月、当前城市/ALL(全国)的门店计划列表
......@@ -35,6 +36,10 @@ public class TemporaryActivityPlanQueryController {
/**
* todo 小程序端促销员查询促销计划
*/
@GetMapping("/plans")
public R findActivityPlanInfo(TemporaryActivityPlanVo temporaryActivityPlanVo){
return R.success(promPlanQueryService.findList(temporaryActivityPlanVo));
}
}
......@@ -8,8 +8,10 @@ import com.wangxiaolu.promotion.domain.activity.dao.TemporaryActivityClockDao;
import com.wangxiaolu.promotion.domain.activity.mapper.TemporaryActivityClockMapper;
import com.wangxiaolu.promotion.domain.activity.mapper.entity.TemporaryActivityClockDO;
import com.wangxiaolu.promotion.domain.activity.wrapperQo.TemporaryClockWrapper;
import com.wangxiaolu.promotion.exception.DataException;
import com.wangxiaolu.promotion.pojo.PageInfo;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
import com.wangxiaolu.promotion.result.basedata.RCode;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
......@@ -41,7 +43,7 @@ public class TemporaryActivityClockDaoImpl implements TemporaryActivityClockDao
LambdaQueryWrapper<TemporaryActivityClockDO> qw = buildWrapper(tcw);
Integer count = temporaryActivityClockMapper.selectCount(qw);
if (count > 0) {
return;
throw new DataException(RCode.CLOCK_DETAIL_ERROR);
}
TemporaryActivityClockDO clockDo = new TemporaryActivityClockDO();
......
......@@ -42,9 +42,9 @@ public class TemporaryActivityClockDO implements Serializable {
private String dealerName;
/**
* qince_clientele_store表qc_id
* activity_plan_info表id
*/
private String storeQcId;
private Long planId;
private Long storeId;
......
......@@ -2,6 +2,7 @@ package com.wangxiaolu.promotion.domain.activityplanv2.dao;
import com.alibaba.fastjson.JSONArray;
import com.wangxiaolu.promotion.domain.manage.wrapperQo.ActivityPlanInfoWrapper;
import com.wangxiaolu.promotion.enums.plan.PlanStatus;
import com.wangxiaolu.promotion.pojo.PageInfo;
import com.wangxiaolu.promotion.pojo.activity.planv2.dto.ActivityPlanInfoDto;
......@@ -29,4 +30,8 @@ public interface ActivityPlanInfoDao {
void updateById(ActivityPlanInfoDto planDto);
void save(ActivityPlanInfoDto planDto);
List<ActivityPlanInfoDto> findList(ActivityPlanInfoWrapper wrapper);
void updatePlanStatus(Long planId, PlanStatus planStatus);
}
......@@ -10,6 +10,7 @@ import com.wangxiaolu.promotion.domain.activityplanv2.dao.ActivityPlanInfoDao;
import com.wangxiaolu.promotion.domain.activityplanv2.mapper.ActivityPlanInfoMapper;
import com.wangxiaolu.promotion.domain.activityplanv2.mapper.entity.ActivityPlanInfoDo;
import com.wangxiaolu.promotion.domain.manage.wrapperQo.ActivityPlanInfoWrapper;
import com.wangxiaolu.promotion.enums.plan.PlanStatus;
import com.wangxiaolu.promotion.exception.DataException;
import com.wangxiaolu.promotion.pojo.PageInfo;
import com.wangxiaolu.promotion.pojo.activity.planv2.dto.ActivityPlanInfoDto;
......@@ -80,6 +81,18 @@ public class ActivityPlanInfoDaoImpl implements ActivityPlanInfoDao {
activityPlanInfoMapper.insert(planDo);
}
@Override
public List<ActivityPlanInfoDto> findList(ActivityPlanInfoWrapper wrapper) {
LambdaQueryWrapper<ActivityPlanInfoDo> qw = buildWrapper(wrapper);
List<ActivityPlanInfoDo> activityPlanInfoDos = activityPlanInfoMapper.selectList(qw);
return BeanUtils.transitionDtos(activityPlanInfoDos, ActivityPlanInfoDto.class);
}
@Override
public void updatePlanStatus(Long planId, PlanStatus planStatus) {
activityPlanInfoMapper.updatePlanStatus(planId,planStatus.getCode());
}
@Override
public void page(PageInfo pageInfo, ActivityPlanInfoWrapper wrapper) {
LambdaQueryWrapper<ActivityPlanInfoDo> qw = buildWrapper(wrapper);
......@@ -118,38 +131,33 @@ public class ActivityPlanInfoDaoImpl implements ActivityPlanInfoDao {
private LambdaQueryWrapper<ActivityPlanInfoDo> buildWrapper(ActivityPlanInfoWrapper wrapper) {
LambdaQueryWrapper<ActivityPlanInfoDo> qw = new LambdaQueryWrapper<>();
// 日期区间
if (Objects.nonNull(wrapper.getActivityStartDate()) && Objects.nonNull(wrapper.getActivityEndDate())){
qw.between(ActivityPlanInfoDo::getDate, wrapper.getActivityStartDate(), wrapper.getActivityEndDate());
}
if (Objects.nonNull(wrapper.getActivityDate())){
qw.eq(ActivityPlanInfoDo::getDate, wrapper.getActivityDate());
}
if (Objects.nonNull(wrapper.getEmployeeId())) {
qw.eq(ActivityPlanInfoDo::getEmployeeId, wrapper.getEmployeeId());
}
// if (Objects.nonNull(wrapper.getActivityPlanRecordId())) {
// qw.eq(ActivityPlanInfoDo::getPlanFileId, wrapper.getActivityPlanRecordId());
// }
if (StringUtils.isNotBlank(wrapper.getProvince())) {
qw.eq(ActivityPlanInfoDo::getProvince, wrapper.getProvince());
}
if (StringUtils.isNotBlank(wrapper.getCity())) {
qw.eq(ActivityPlanInfoDo::getCity, wrapper.getCity());
}
if (StringUtils.isNotBlank(wrapper.getArea())) {
qw.eq(ActivityPlanInfoDo::getArea, wrapper.getArea());
}
if (StringUtils.isNotBlank(wrapper.getDealerId())) {
qw.eq(ActivityPlanInfoDo::getDealerId, wrapper.getDealerId());
}
// 是否执行:1:执行;0:未执行;
if (Objects.nonNull(wrapper.getPlanStatus())) {
qw.eq(ActivityPlanInfoDo::getPlanStatus, wrapper.getPlanStatus().getCode());
}
if (StringUtils.isNotBlank(wrapper.getOrgQcId())){
qw.eq(ActivityPlanInfoDo::getOrgQcId, wrapper.getOrgQcId());
}
if (StringUtils.isNotBlank(wrapper.getStoreNameLike())) {
qw.like(ActivityPlanInfoDo::getStoreName, wrapper.getStoreNameLike());
}
......
......@@ -32,6 +32,7 @@ public interface ActivityPlanInfoMapper extends BaseMapper<ActivityPlanInfoDo> {
Integer selectTodayCount(List<Long> planIds);
void updatePlanStatus(@Param("id") Long planId, @Param("status") Integer status);
}
......
......@@ -62,6 +62,8 @@ public class ActivityPlanInfoWrapper {
*/
private String city;
private String area;
/**
* 经销商编码
*/
......@@ -108,6 +110,8 @@ public class ActivityPlanInfoWrapper {
private Integer activityPatternId;
private String activityPattern;
private Date activityDate;
public Date getActivityEndDate() {
String format = DateUtil.format(this.activityEndDate, "yyyy-MM-dd 23:59:59");
return DateUtil.parse(format);
......
......@@ -77,12 +77,6 @@ public class QinCeClienteleStoreDO implements Serializable {
@JsonProperty("store_dept_waiqin365_id")
private String storeDeptWaiqin365Id;
/**
* 门店所属部门,来源第三方系统的唯一标识和部门信息中org_id对应
*/
@JsonProperty("store_dept_id")
private String storeDeptId;
/**
* 门店部门名称
*/
......
......@@ -31,6 +31,8 @@ public class TemporaryClockDto {
String temporaryName;
Long planId;
/**
* 关联活动上报id
*/
......
......@@ -26,8 +26,15 @@ public class TemporaryActivityPlanVo {
*/
private String city;
/**
* 区
*/
private String area;
/**
* 店铺名称
*/
private String storeName;
private String storeNameLike;
}
......@@ -43,6 +43,11 @@ public class TemporaryClockVo {
String temporaryName;
/**
* 促销计划ID
*/
Long planId;
// 店铺id - 活动计划中的id
Long storeId;
......
......@@ -3,6 +3,7 @@ package com.wangxiaolu.promotion.service.activity.manage;
import com.wangxiaolu.promotion.pojo.PageInfo;
import com.wangxiaolu.promotion.pojo.activity.manage.dto.EmployeeActivityPlanInfoDto;
import com.wangxiaolu.promotion.pojo.activity.manage.vo.ActivityPlanInfoVo;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityPlanVo;
/**
* @author : liqiulin
......
......@@ -6,6 +6,7 @@ import com.wangxiaolu.promotion.domain.manage.wrapperQo.ActivityPlanInfoWrapper;
import com.wangxiaolu.promotion.pojo.PageInfo;
import com.wangxiaolu.promotion.pojo.activity.manage.dto.EmployeeActivityPlanInfoDto;
import com.wangxiaolu.promotion.pojo.activity.manage.vo.ActivityPlanInfoVo;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityPlanVo;
import com.wangxiaolu.promotion.service.activity.manage.ActivityPlanInfoQueryService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
......
......@@ -26,4 +26,6 @@ public interface TemporaryActivityClockCoreService {
void updateClockPhoto(TemporaryClockDto dto);
void updateById(TemporaryClockDto clockDtoUpdate);
void clockInTodayPlan(TemporaryClockDto dto, Integer clockType);
}
......@@ -10,12 +10,16 @@ import com.wangxiaolu.promotion.domain.manage.dao.EmployeeActivityPlanInfoDao;
import com.wangxiaolu.promotion.enums.activity.ActivityPhotoType;
import com.wangxiaolu.promotion.enums.activity.ClockType;
import com.wangxiaolu.promotion.enums.activity.LogType;
import com.wangxiaolu.promotion.enums.plan.PlanStatus;
import com.wangxiaolu.promotion.exception.ParamException;
import com.wangxiaolu.promotion.pojo.activity.manage.dto.EmployeeActivityPlanInfoDto;
import com.wangxiaolu.promotion.pojo.activity.planv2.dto.ActivityPlanInfoDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.dto.TemporaryClockDto;
import com.wangxiaolu.promotion.pojo.user.dto.ManageEmployeeInfoDto;
import com.wangxiaolu.promotion.result.basedata.RCode;
import com.wangxiaolu.promotion.service.activity.temporary.TemporaryActivityClockCoreService;
import com.wangxiaolu.promotion.service.activityplanv2.PromPlanCoreService;
import com.wangxiaolu.promotion.service.activityplanv2.PromPlanQueryService;
import com.wangxiaolu.promotion.utils.OkHttp;
import com.wangxiaolu.promotion.utils.QinCeUtils;
import lombok.extern.slf4j.Slf4j;
......@@ -38,7 +42,7 @@ import java.util.Objects;
public class TemporaryActivityClockCoreServiceImpl implements TemporaryActivityClockCoreService {
@Autowired
QinCeUtils qinCeUtils;
private QinCeUtils qinCeUtils;
@Autowired
private TemporaryActivityClockDao temporaryActivityClockDao;
@Autowired
......@@ -49,6 +53,10 @@ public class TemporaryActivityClockCoreServiceImpl implements TemporaryActivityC
private ManageEmployeeInfoDao manageEmployeeInfoDao;
@Autowired
private TemporaryActivityLogDao tempActivityLogDao;
@Autowired
private PromPlanQueryService promPlanQueryService;
@Autowired
private PromPlanCoreService promPlanCoreService;
/**
* 促销员当日打卡信息保存
*/
......@@ -115,6 +123,35 @@ public class TemporaryActivityClockCoreServiceImpl implements TemporaryActivityC
temporaryActivityClockDao.updateById(clockDto);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void clockInTodayPlan(TemporaryClockDto dto, Integer clockType) {
if (Objects.isNull(dto.getId())) {
ActivityPlanInfoDto planInfo = promPlanQueryService.selectById(dto.getPlanId());
ManageEmployeeInfoDto employeeDto = manageEmployeeInfoDao.selectById(planInfo.getEmployeeId());
dto.setLineName(planInfo.getLineName())
.setDeptQcId(employeeDto.getDeptQcId())
.setDeptQcOrgName(employeeDto.getDeptQcName())
.setChargerQcId(employeeDto.getQcId())
.setChargerName(employeeDto.getName())
.setActivityPattern(planInfo.getPattern())
.setDealerName(planInfo.getDealerName())
.setStoreName(planInfo.getStoreName())
.setQinceStoreCode(planInfo.getStoreCode());
// 保存打卡记录
temporaryActivityClockDao.save(dto);
// 促销计划状态修改
promPlanCoreService.updatePlanStatus(dto.getPlanId(), PlanStatus.NOT_EXECUTION);
} else {
temporaryActivityClockDao.updateById(dto);
}
// 根据ID保存图片
saveClockPhoto(dto, clockType);
// 日志保存
// tempActivityLogDao.save(dto.getTemporaryId(), dto.getTemporaryName(), LogType.t_1, dto.getId(), dto);
}
private void clockStoreCalDistanceByStoreQcId(String storeQcId, String clockCoordinates) {
// 查询组织架构参数、创建url
String[] clockCoordinateArr = clockCoordinates.split(",");
......
package com.wangxiaolu.promotion.service.activityplanv2;
import com.wangxiaolu.promotion.enums.plan.PlanStatus;
import com.wangxiaolu.promotion.exception.DataException;
import com.wangxiaolu.promotion.pojo.activity.manage.vo.ActivityPlanVo;
import com.wangxiaolu.promotion.pojo.activity.planv2.vo.ActivityPlanOperVo;
......@@ -26,4 +27,6 @@ public interface PromPlanCoreService {
void putActivityPlan(ActivityPlanOperVo activityPlanOperVo);
void saveActivityPlan(ActivityPlanOperVo operVo);
void updatePlanStatus(Long planId, PlanStatus planStatus);
}
package com.wangxiaolu.promotion.service.activityplanv2;
import com.wangxiaolu.promotion.pojo.PageInfo;
import com.wangxiaolu.promotion.pojo.activity.planv2.dto.ActivityPlanInfoDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityPlanVo;
import java.util.List;
/**
* @author : liqiulin
......@@ -9,4 +13,8 @@ import com.wangxiaolu.promotion.pojo.PageInfo;
*/
public interface PromPlanQueryService {
void queryPage(PageInfo pageInfo);
List<ActivityPlanInfoDto> findList(TemporaryActivityPlanVo temporaryActivityPlanVo);
ActivityPlanInfoDto selectById(Long planId);
}
......@@ -537,6 +537,11 @@ public class PromPlanCoreServiceImpl implements PromPlanCoreService {
activityPlanInfoDao.save(planDto);
}
@Override
public void updatePlanStatus(Long planId, PlanStatus planStatus) {
activityPlanInfoDao.updatePlanStatus(planId, planStatus);
}
/**
* 城市经理 - 修改计划
*/
......
package com.wangxiaolu.promotion.service.activityplanv2.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.wangxiaolu.promotion.domain.activityplanv2.dao.ActivityPlanInfoDao;
import com.wangxiaolu.promotion.domain.manage.wrapperQo.ActivityPlanInfoWrapper;
import com.wangxiaolu.promotion.enums.plan.PlanStatus;
import com.wangxiaolu.promotion.pojo.PageInfo;
import com.wangxiaolu.promotion.pojo.activity.planv2.dto.ActivityPlanInfoDto;
import com.wangxiaolu.promotion.pojo.activity.temporary.vo.TemporaryActivityPlanVo;
import com.wangxiaolu.promotion.service.activityplanv2.PromPlanQueryService;
import com.wangxiaolu.promotion.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
import java.util.List;
/**
* @author : liqiulin
* @date : 2025-02-06 16
......@@ -24,4 +34,20 @@ public class PromPlanQueryServiceImpl implements PromPlanQueryService {
ActivityPlanInfoWrapper wrapper = JSONObject.parseObject(JSONObject.toJSONString(pageInfo.getQueryParams()), ActivityPlanInfoWrapper.class);
activityPlanInfoDao.page(pageInfo,wrapper);
}
/**
* 促销员查询
*/
@Override
public List<ActivityPlanInfoDto> findList(TemporaryActivityPlanVo temporaryActivityPlanVo) {
ActivityPlanInfoWrapper wrapper = JSONObject.parseObject(JSONObject.toJSONString(temporaryActivityPlanVo), ActivityPlanInfoWrapper.class);
wrapper.setActivityDate(Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant()));
wrapper.setPlanStatus(PlanStatus.NOT_EXECUTION);
return activityPlanInfoDao.findList(wrapper);
}
@Override
public ActivityPlanInfoDto selectById(Long planId) {
return activityPlanInfoDao.selectById(planId);
}
}
......@@ -108,9 +108,10 @@ public class QinCeUtils {
*/
public Map<String, Object> queryShopParam(Integer pageNum) {
HashMap<String, Object> params = new HashMap<>();
//todo 分页页码,默认1
// 分页页码,默认1
params.put("page_number", pageNum);
params.put("store_code", "POS00038442");
// todo 查询指定数据
params.put("store_code", "POS00040423");
//todo after_modify_date:更新时间之后,查询更新时间之后的门店数据。格式:yyyy-MM-dd HH:mm:SS
// DateTime dateTime = DateUtil.offsetDay(new Date(), -2);
......
......@@ -68,7 +68,7 @@
<insert id="saveList">
INSERT INTO activity_plan_info
(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_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,create_by)
VALUES
<foreach collection="table" item="item" index="index" separator=",">
(#{recordId}, #{item.employeeId}, #{item.employeeName}, #{item.employeeNo}, #{item.year},
......@@ -76,7 +76,7 @@
#{item.orgQcId},#{item.orgName}, 0, #{item.pattern}, #{item.dealerId}, #{item.dealerName}, '未确定',
#{item.province}, #{item.city}, #{item.area}, #{item.addr},
FROM_UNIXTIME(#{item.clockInTime} / 1000), FROM_UNIXTIME(#{item.clockOutTime} / 1000), #{item.salary},
#{item.incidentals})
#{item.incidentals},#{item.createBy})
</foreach>
</insert>
......@@ -149,4 +149,10 @@
and date = #{pDo.date};
</update>
<update id="updatePlanStatus">
update activity_plan_info
set plan_status = #{status}
where id = #{id}
</update>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论