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

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

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