提交 a1a47010 authored 作者: 吕本才's avatar 吕本才

修改稽查-增加6个竞品相关字段

上级 fc211029
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,39 +26,19 @@ import java.util.Objects;
public class RiskStoreTaskCoreController {
@Autowired
private IRiskStoreTaskCoreService riskstoreTaskCoreService;
@Autowired
private IRiskStoreCoreService riskstoreCoreService;
@PostMapping("/i_store")
@PostMapping("/i_store")
public RiskStoreTaskDto inspectStore(@RequestBody RiskStoreTaskVo riskStoreTaskVo) {
if (riskStoreTaskVo.getRstId() == null &&StringUtils.isBlank(riskStoreTaskVo.getStoreName())){
throw new CheckedException(ECode.RISK_STORE_TASK_CREATE_ERROR);
}
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.domain.dao.BaseDao;
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 +11,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);
......
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;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sfa.common.core.domain.dao.impl.BaseDaoImpl;
import com.sfa.common.core.enums.ECode;
import com.sfa.common.core.exception.WXLSQLException;
import com.sfa.common.core.utils.bean.BeanUtils;
......@@ -35,7 +37,7 @@ import java.util.stream.Collectors;
*/
@DS("bi")
@Repository
public class RiskStoreTaskDaoImpl implements IRiskStoreTaskDao {
public class RiskStoreTaskDaoImpl extends BaseDaoImpl<RiskStoreTask> implements IRiskStoreTaskDao {
@Autowired
private RiskStoreTaskMapper riskStoreTaskMapper;
@Autowired
......@@ -141,6 +143,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;
}
......
......@@ -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,40 @@ public class RiskStoreTask implements Serializable {
*/
private String remark;
/** 其他-结束 **/
/** 竞品 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 competitorJinchuniangFacingTota;
/** 竞品-结束 **/
/**
* 常规陈列判定结果
*/
......@@ -423,8 +462,7 @@ public class RiskStoreTask implements Serializable {
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
public void detailInit() {
/**
......@@ -719,4 +757,4 @@ public class RiskStoreTask implements Serializable {
}
}
\ No newline at end of file
}
......@@ -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 competitorJinchuniangFacingTota;
/** 竞品-结束 **/
// 自动填充
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 competitorJinchuniangFacingTota;
/**
* 常规陈列判定结果
*/
......@@ -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.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
......@@ -19,28 +26,12 @@ import org.springframework.stereotype.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 +43,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.selectById(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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论