提交 83dc8b0f authored 作者: lvbencai's avatar lvbencai

合并分支 'qa' 到 'master'

Qa 查看合并请求 !52
package com.sfa.operation.controller.risk.core;
import com.alibaba.fastjson2.JSONObject;
import com.sfa.common.core.enums.ECode;
import com.sfa.common.core.exception.CheckedException;
import com.sfa.common.core.utils.StringUtils;
import com.sfa.common.security.utils.SecurityUtils;
import com.sfa.operation.pojo.risk.request.RiskStoreTaskVo;
import com.sfa.operation.pojo.risk.response.RiskInspectStoreDto;
import com.sfa.operation.pojo.risk.response.RiskStoreTaskDto;
import com.sfa.operation.service.risk.IRiskStoreCoreService;
import com.sfa.operation.service.risk.IRiskStoreTaskCoreService;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import java.util.Objects;
import static com.sfa.common.core.utils.StringUtils.mArr;
import static com.sfa.common.core.utils.StringUtils.pArr;
/**
* @author : liqiulin
* @date : 2025-08-27 20
......@@ -29,8 +26,6 @@ import java.util.Objects;
public class RiskStoreTaskCoreController {
@Autowired
private IRiskStoreTaskCoreService riskstoreTaskCoreService;
@Autowired
private IRiskStoreCoreService riskstoreCoreService;
@PostMapping("/i_store")
public RiskStoreTaskDto inspectStore(@RequestBody RiskStoreTaskVo riskStoreTaskVo) {
if (riskStoreTaskVo.getRstId() == null &&StringUtils.isBlank(riskStoreTaskVo.getStoreName())){
......@@ -38,30 +33,12 @@ public class RiskStoreTaskCoreController {
}
riskStoreTaskVo.setOperName(SecurityUtils.getNickName());
riskStoreTaskVo.setOperEmpNo(SecurityUtils.getUsername());
// 保存来源勤策的门店
if (Objects.nonNull(riskStoreTaskVo.getStoreCode())){
RiskInspectStoreDto storeDto = riskstoreCoreService.saveInspectStore(riskStoreTaskVo);
riskStoreTaskVo.setStoreName(StringUtils.isNotBlank(storeDto.getRStoreName()) ? storeDto.getRStoreName() : riskStoreTaskVo.getStoreName());
}
RiskStoreTaskDto dto = null;
// 是否新建
if (Objects.isNull(riskStoreTaskVo.getRstId())){
dto = riskstoreTaskCoreService.inspectStore(riskStoreTaskVo);
}else {
riskStoreTaskVo.setStoreName(StringUtils.isNotBlank(riskStoreTaskVo.getRStoreName()) ? riskStoreTaskVo.getRStoreName() : riskStoreTaskVo.getStoreName());
RiskStoreTaskDto taskDto = new RiskStoreTaskDto();
BeanUtils.copyProperties(riskStoreTaskVo,taskDto);
taskDto.setUpdateBy(riskStoreTaskVo.getOperName());
taskDto.setLhlds(pArr(riskStoreTaskVo.getLhldArr()));
taskDto.setCgclRiskR(pArr(riskStoreTaskVo.getCgclRiskRArr()));
taskDto.setDqclRiskR(pArr(riskStoreTaskVo.getDqclRiskRArr()));
taskDto.setLongTimePictures(pArr(riskStoreTaskVo.getLongTimePictureArr()));
dto = riskstoreTaskCoreService.updateInspectStore(taskDto);
}
RiskStoreTaskDto dto = riskstoreTaskCoreService.saveOrUpdateStore(riskStoreTaskVo);
return dto;
}
@PostMapping("/i_store_detail")
public RiskStoreTaskDto.RiskStoreTaskDetailDto inspectStoreDetail(@RequestBody RiskStoreTaskVo riskStoreTaskVo) {
RiskStoreTaskVo.TaskDetailVo taskDetailVo = riskStoreTaskVo.getTaskDetail();
......@@ -92,11 +69,7 @@ public class RiskStoreTaskCoreController {
riskstoreTaskCoreService.deleteStoreDetail(rstdId);
}
private String pArr(String[] dArr){
return dArr == null ? null : dArr.length == 0 ? "" : StringUtils.join(dArr, ",");
}
private String mArr(Map<String,String> dMap){
return dMap == null ? null : dMap.size() == 0 ? "" : JSONObject.toJSONString(dMap);
}
}
......@@ -6,6 +6,7 @@ import com.sfa.common.core.utils.DateUtils;
import com.sfa.common.core.utils.StringUtils;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.common.security.utils.SecurityUtils;
import com.sfa.operation.pojo.risk.request.RiskStoreTaskPageListVo;
import com.sfa.operation.pojo.risk.request.RiskStoreTaskVo;
import com.sfa.operation.pojo.risk.response.RiskStoreTaskDto;
import com.sfa.operation.service.risk.IRiskStoreTaskQueryService;
......@@ -28,7 +29,7 @@ public class RiskStoreTaskQueryController {
@Autowired
private IRiskStoreTaskQueryService iRiskStoreTaskQueryService;
@GetMapping("/i_store/page")
public PageInfo page(@ModelAttribute RiskStoreTaskVo riskStoreTaskVo){
public PageInfo page(@ModelAttribute RiskStoreTaskPageListVo riskStoreTaskVo){
riskStoreTaskVo.setOperEmpNo(SecurityUtils.getUsername());
return iRiskStoreTaskQueryService.page(riskStoreTaskVo);
}
......
package com.sfa.operation.domain.risk.dao;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.domain.risk.entity.RiskStoreTask;
import com.sfa.operation.domain.risk.wq.RiskStoreTaskWq;
import com.sfa.operation.pojo.risk.response.RiskStoreTaskDto;
......@@ -9,7 +10,7 @@ import com.sfa.operation.pojo.risk.response.RiskStoreTaskDto;
* @date : 2025-08-27 20
* @describe :
*/
public interface IRiskStoreTaskDao {
public interface IRiskStoreTaskDao /*extends BaseDao<RiskStoreTask> */{
RiskStoreTaskDto insert(RiskStoreTaskDto taskDto);
PageInfo page(RiskStoreTaskWq wq);
RiskStoreTaskDto updateInspectStore(RiskStoreTaskDto taskDto);
......@@ -19,4 +20,6 @@ public interface IRiskStoreTaskDao {
RiskStoreTaskDto.RiskStoreTaskDetailDto updateStoreDetail(RiskStoreTaskDto.RiskStoreTaskDetailDto riskStoreTaskDetailDto);
void deleteStoreDetail(Long rstdId);
RiskStoreTask findById(Long rstId);
}
package com.sfa.operation.domain.risk.dao.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -35,11 +36,13 @@ import java.util.stream.Collectors;
*/
@DS("bi")
@Repository
public class RiskStoreTaskDaoImpl implements IRiskStoreTaskDao {
public class RiskStoreTaskDaoImpl /*extends BaseDaoImpl<RiskStoreTask,RiskStoreTaskMapper>*/ implements IRiskStoreTaskDao {
@Autowired
private RiskStoreTaskMapper riskStoreTaskMapper;
@Autowired
private RiskStoreTaskDetailMapper riskStoreTaskDetailMapper;
@Override
public RiskStoreTaskDto insert(RiskStoreTaskDto taskDto) {
try {
......@@ -124,6 +127,12 @@ public class RiskStoreTaskDaoImpl implements IRiskStoreTaskDao {
updateDetail(detailDo.getRstId());
}
@Override
public RiskStoreTask findById(Long rstId) {
// 获取任务
return riskStoreTaskMapper.selectById(rstId);
}
private LambdaQueryWrapper<RiskStoreTask> buildWq(RiskStoreTaskWq wq) {
LambdaQueryWrapper<RiskStoreTask> wqWrapper = new LambdaQueryWrapper<>();
if (Objects.nonNull(wq.getRstId())){
......@@ -141,6 +150,8 @@ public class RiskStoreTaskDaoImpl implements IRiskStoreTaskDao {
if (Objects.nonNull(wq.getOperDate())){
wqWrapper.eq(RiskStoreTask::getCreateDate, wq.getOperDate());
}
// 按照范围查询
wqWrapper.between(ObjectUtil.isAllNotEmpty(wq.getOperDateStart(),wq.getOperDateEnd()),RiskStoreTask::getCreateDate,wq.getOperDateStart(),wq.getOperDateEnd());
wqWrapper.orderByDesc(RiskStoreTask::getCreateTime);
return wqWrapper;
}
......@@ -273,5 +284,8 @@ public class RiskStoreTaskDaoImpl implements IRiskStoreTaskDao {
}
// @Override
// public RiskStoreTaskMapper getBaseMapper() {
// return this.riskStoreTaskMapper;
// }
}
......@@ -17,6 +17,9 @@ import java.util.Date;
@TableName(value = "risk_store_task")
@Data
public class RiskStoreTask implements Serializable {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
......@@ -78,6 +81,8 @@ public class RiskStoreTask implements Serializable {
*/
private String coordinates;
/** 其他-开始 **/
/**
* 礼盒/礼袋是否在售(逗号分隔)
*/
......@@ -98,6 +103,47 @@ public class RiskStoreTask implements Serializable {
*/
private String remark;
/** 其他-结束 **/
/** 竞品 6个字段2025-11-06 19:08:00-开始 **/
/**
* 竞品 - 旺家福 SKU 总数
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer competitorWangjiafuSkuTotal;
/**
* 竞品 - 旺家福排面总数
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer competitorWangjiafuFacingTotal;
/**
* 竞品 - 钱家香 SKU 总数
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer competitorQianjiaxiangSkuTotal;
/**
* 竞品 - 钱家香排面总数
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer competitorQianjiaxiangFacingTotal;
/**
* 竞品 - 金厨娘 SKU 总数
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer competitorJinchuniangSkuTotal;
/**
* 竞品 - 金厨娘排面总数
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer competitorJinchuniangFacingTotal;
/** 竞品-结束 **/
/**
* 常规陈列判定结果
*/
......@@ -423,8 +469,7 @@ public class RiskStoreTask implements Serializable {
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
public void detailInit() {
/**
......
package com.sfa.operation.domain.risk.mapper;
import com.sfa.operation.domain.risk.entity.RiskStoreTask;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sfa.operation.domain.risk.entity.RiskStoreTask;
import org.springframework.stereotype.Repository;
/**
......
......@@ -16,4 +16,11 @@ public class RiskStoreTaskWq {
private String operEmpNo;
private Date operDate;
private String storeCode;
/**
* 分页查询使用
*/
private Date operDateStart;
private Date operDateEnd;
}
package com.sfa.operation.pojo.risk.request;
import cn.hutool.core.date.DateUtil;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author : liqiulin
* @date : 2025-08-27 20
* @describe :
*/
@Data
public class RiskStoreTaskPageListVo {
/**
* -------- 门店信息 --------
*/
private String storeName;
private String operEmpNo;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date operDateStart;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date operDateEnd;
public Date getOperDateStart() {
// 如果为空 默认是当月的1号
if (operDateStart == null) {
operDateStart = DateUtil.beginOfMonth(new Date());
}
return operDateStart;
}
public Date getOperDateEnd() {
// 如果为空 默认是当月的最后一天
if (operDateEnd == null) {
operDateEnd = DateUtil.endOfMonth(new Date());
}
return operDateEnd;
}
}
......@@ -36,11 +36,45 @@ public class RiskStoreTaskVo {
private String city;
private String address;
private String coordinates;
/** -------- 其他-开始 --------*/
/** 礼盒/礼袋是否在售 */
private String[] lhldArr;
private Integer skuNum;
private String remark;
private String[] longTimePictureArr;
/** 其他-结束 **/
/** 竞品 6个字段2025-11-06 19:08:00-开始 **/
/**
* 竞品 - 旺家福 SKU 总数
*/
private Integer competitorWangjiafuSkuTotal;
/**
* 竞品 - 旺家福排面总数
*/
private Integer competitorWangjiafuFacingTotal;
/**
* 竞品 - 钱家香 SKU 总数
*/
private Integer competitorQianjiaxiangSkuTotal;
/**
* 竞品 - 钱家香排面总数
*/
private Integer competitorQianjiaxiangFacingTotal;
/**
* 竞品 - 金厨娘 SKU 总数
*/
private Integer competitorJinchuniangSkuTotal;
/**
* 竞品 - 金厨娘排面总数
*/
private Integer competitorJinchuniangFacingTotal;
/** 竞品-结束 **/
// 自动填充
private String operName;
private String operEmpNo;
......
......@@ -103,6 +103,23 @@ public class RiskStoreTaskDto {
*/
private String remark;
/**
* 竞品相关6个字段 2025年11月06日19:02:12
* 竞品 - 旺家福 SKU 总数
* 竞品 - 旺家福排面总数
* 竞品 - 钱家香 SKU 总数
* 竞品 - 钱家香排面总数
* 竞品 - 金厨娘 SKU 总数
* 竞品 - 金厨娘排面总数
*/
private Integer competitorWangjiafuSkuTotal;
private Integer competitorWangjiafuFacingTotal;
private Integer competitorQianjiaxiangSkuTotal;
private Integer competitorQianjiaxiangFacingTotal;
private Integer competitorJinchuniangSkuTotal;
private Integer competitorJinchuniangFacingTotal;
/**
* 常规陈列判定结果
*/
......@@ -140,6 +157,10 @@ public class RiskStoreTaskDto {
private Map<String, List<RiskStoreTaskDetailDto>> detailMap;
/**
* 转换数组 2025年11月06日19:02:12
*
*/
public void tranArr() {
if (StringUtils.isNotBlank(this.lhlds)){
this.lhldArr = this.lhlds.split(",");
......
......@@ -9,11 +9,29 @@ import com.sfa.operation.pojo.risk.response.RiskStoreTaskDto;
* @describe :
*/
public interface IRiskStoreTaskCoreService {
RiskStoreTaskDto inspectStore(RiskStoreTaskVo riskStoreTaskVo);
RiskStoreTaskDto updateInspectStore(RiskStoreTaskDto taskDto);
/**
* 保存风险库任务详情
* @param taskDetail
* @return
*/
RiskStoreTaskDto.RiskStoreTaskDetailDto saveStoreDetail(RiskStoreTaskVo.TaskDetailVo taskDetail);
/**
* 更新风险库任务详情
* @param riskStoreTaskDetailDto
* @return
*/
RiskStoreTaskDto.RiskStoreTaskDetailDto updateStoreDetail(RiskStoreTaskDto.RiskStoreTaskDetailDto riskStoreTaskDetailDto);
/**
* 删除风险库任务详情
* @param rstdId
*/
void deleteStoreDetail(Long rstdId);
/**
* 保存或更新风险库任务
* @param riskStoreTaskVo
* @return
*/
RiskStoreTaskDto saveOrUpdateStore(RiskStoreTaskVo riskStoreTaskVo);
}
package com.sfa.operation.service.risk;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.pojo.risk.request.RiskStoreTaskPageListVo;
import com.sfa.operation.pojo.risk.request.RiskStoreTaskVo;
import com.sfa.operation.pojo.risk.response.RiskStoreTaskDto;
......@@ -10,7 +11,7 @@ import com.sfa.operation.pojo.risk.response.RiskStoreTaskDto;
* @describe :
*/
public interface IRiskStoreTaskQueryService {
PageInfo page(RiskStoreTaskVo riskStoreTaskVo);
PageInfo page(RiskStoreTaskPageListVo riskStoreTaskVo);
RiskStoreTaskDto getDetail(RiskStoreTaskVo riskStoreTaskVo);
}
package com.sfa.operation.service.risk.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.sfa.common.core.exception.ServiceException;
import com.sfa.common.core.utils.StringUtils;
import com.sfa.common.core.utils.bean.BeanUtils;
import com.sfa.operation.domain.risk.dao.IRiskStoreTaskDao;
import com.sfa.operation.domain.risk.entity.RiskStoreTask;
import com.sfa.operation.pojo.risk.request.RiskStoreTaskVo;
import com.sfa.operation.pojo.risk.response.RiskInspectStoreDto;
import com.sfa.operation.pojo.risk.response.RiskStoreTaskDto;
import com.sfa.operation.service.risk.IRiskStoreCoreService;
import com.sfa.operation.service.risk.IRiskStoreTaskCoreService;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Objects;
/**
* @author : liqiulin
* @date : 2025-08-28 11
* @describe :
*/
@DS("bi")
@Service
public class RiskStoreTaskCoreServiceImpl implements IRiskStoreTaskCoreService {
@Autowired
private IRiskStoreTaskDao riskStoreTaskDao;
/**
* 创建售点任务
*/
@Override
public RiskStoreTaskDto inspectStore(RiskStoreTaskVo riskStoreTaskVo) {
RiskStoreTaskDto taskDto = BeanUtils.transitionDto(riskStoreTaskVo, RiskStoreTaskDto.class);
taskDto.setCreateBy(riskStoreTaskVo.getOperName());
taskDto.setCreateEmpNo(riskStoreTaskVo.getOperEmpNo());
return riskStoreTaskDao.insert(taskDto);
}
/**
* 修改售点任务
*/
@Override
public RiskStoreTaskDto updateInspectStore(RiskStoreTaskDto taskDto) {
return riskStoreTaskDao.updateInspectStore(taskDto);
}
@Autowired
private IRiskStoreCoreService riskStoreCoreService;
@Override
public RiskStoreTaskDto.RiskStoreTaskDetailDto saveStoreDetail(RiskStoreTaskVo.TaskDetailVo taskDetail) {
return riskStoreTaskDao.saveStoreDetail(taskDetail.getRstId(),taskDetail.getDetailName());
return riskStoreTaskDao.saveStoreDetail(taskDetail.getRstId(), taskDetail.getDetailName());
}
@Override
......@@ -52,4 +45,39 @@ public class RiskStoreTaskCoreServiceImpl implements IRiskStoreTaskCoreService {
public void deleteStoreDetail(Long rstdId) {
riskStoreTaskDao.deleteStoreDetail(rstdId);
}
@Transactional(rollbackFor = Exception.class)
@Override
public RiskStoreTaskDto saveOrUpdateStore(RiskStoreTaskVo riskStoreTaskVo) {
// 保存来源勤策的门店
if (Objects.nonNull(riskStoreTaskVo.getStoreCode())) {
RiskInspectStoreDto storeDto = riskStoreCoreService.saveInspectStore(riskStoreTaskVo);
riskStoreTaskVo.setStoreName(StringUtils.isNotBlank(storeDto.getRStoreName()) ? storeDto.getRStoreName() : riskStoreTaskVo.getStoreName());
}
RiskStoreTaskDto taskDto = null;
// 是否新建
if (Objects.isNull(riskStoreTaskVo.getRstId())) {
RiskStoreTaskDto insertTaskDto = BeanUtils.transitionDto(riskStoreTaskVo, RiskStoreTaskDto.class);
insertTaskDto.setCreateBy(riskStoreTaskVo.getOperName());
insertTaskDto.setCreateEmpNo(riskStoreTaskVo.getOperEmpNo());
taskDto = riskStoreTaskDao.insert(insertTaskDto);
} else {
RiskStoreTask riskStoreTask = riskStoreTaskDao.findById(riskStoreTaskVo.getRstId());
if (Objects.isNull(riskStoreTask)) {
throw new ServiceException("售点任务不存在");
}
riskStoreTaskVo.setStoreName(StringUtils.isNotBlank(riskStoreTaskVo.getRStoreName()) ? riskStoreTaskVo.getRStoreName() : riskStoreTaskVo.getStoreName());
RiskStoreTaskDto updateTaskDto = new RiskStoreTaskDto();
BeanUtils.copyProperties(riskStoreTaskVo, updateTaskDto);
updateTaskDto.setUpdateBy(riskStoreTaskVo.getOperName());
updateTaskDto.setLhlds(StringUtils.pArr(riskStoreTaskVo.getLhldArr()));
updateTaskDto.setCgclRiskR(StringUtils.pArr(riskStoreTaskVo.getCgclRiskRArr()));
updateTaskDto.setDqclRiskR(StringUtils.pArr(riskStoreTaskVo.getDqclRiskRArr()));
updateTaskDto.setLongTimePictures(StringUtils.pArr(riskStoreTaskVo.getLongTimePictureArr()));
taskDto = riskStoreTaskDao.updateInspectStore(updateTaskDto);
}
return taskDto;
}
}
......@@ -3,6 +3,7 @@ package com.sfa.operation.service.risk.impl;
import com.sfa.common.core.web.domain.PageInfo;
import com.sfa.operation.domain.risk.dao.IRiskStoreTaskDao;
import com.sfa.operation.domain.risk.wq.RiskStoreTaskWq;
import com.sfa.operation.pojo.risk.request.RiskStoreTaskPageListVo;
import com.sfa.operation.pojo.risk.request.RiskStoreTaskVo;
import com.sfa.operation.pojo.risk.response.RiskStoreTaskDto;
import com.sfa.operation.service.risk.IRiskStoreTaskQueryService;
......@@ -20,11 +21,12 @@ public class RiskStoreTaskQueryServiceImpl implements IRiskStoreTaskQueryService
@Autowired
private IRiskStoreTaskDao riskStoreTaskDao;
@Override
public PageInfo page(RiskStoreTaskVo riskStoreTaskVo) {
public PageInfo page(RiskStoreTaskPageListVo riskStoreTaskVo) {
RiskStoreTaskWq wq = new RiskStoreTaskWq();
wq.setOperEmpNo(riskStoreTaskVo.getOperEmpNo());
wq.setOperDate(riskStoreTaskVo.getOperDate());
wq.setStoreName(riskStoreTaskVo.getStoreName());
wq.setOperDateStart(riskStoreTaskVo.getOperDateStart());
wq.setOperDateEnd(riskStoreTaskVo.getOperDateEnd());
return riskStoreTaskDao.page(wq);
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论