Browse Source

opt: 商品反馈增加赛选条件,新增品控部核对;fix:修复条款执行金额异常;excel表异常

muti_db
Yen 9 months ago
parent
commit
aa1c34fccc
  1. 24
      src/main/java/com/qs/serve/common/framework/aop/SysLogAspect.java
  2. 8
      src/main/java/com/qs/serve/common/model/dto/SimpleKeyValue.java
  3. 2
      src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java
  4. 104
      src/main/java/com/qs/serve/modules/goods/controller/GoodsFeedbackController.java
  5. 4
      src/main/java/com/qs/serve/modules/goods/controller/GoodsFeedbackTypeController.java
  6. 22
      src/main/java/com/qs/serve/modules/goods/entity/GoodsFeedback.java
  7. 2
      src/main/java/com/qs/serve/modules/goods/entity/GoodsFeedbackType.java
  8. 17
      src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsFeedbackCheckBo.java
  9. 21
      src/main/java/com/qs/serve/modules/goods/entity/so/GoodsFeedbackQuery.java
  10. 5
      src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsFeedbackVo.java
  11. 14
      src/main/java/com/qs/serve/modules/goods/mapper/GoodsFeedbackMapper.java
  12. 6
      src/main/java/com/qs/serve/modules/goods/service/GoodsFeedbackService.java
  13. 58
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsFeedbackServiceImpl.java
  14. 2
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityPayConditionMapper.java
  15. 14
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostTodoOperationServiceImpl.java
  16. 124
      src/main/resources/mapper/goods/GoodsFeedbackMapper.xml
  17. 3
      src/main/resources/mapper/wx/WxFormPushMapper.xml

24
src/main/java/com/qs/serve/common/framework/aop/SysLogAspect.java

@ -82,8 +82,20 @@ public class SysLogAspect {
}
HttpServletRequest request = ServletUtils.getRequest();
//忽略GET
if(request.getMethod().equals("GET")){
//耗时
Long startTime = startTimeIndex.get();
Long diffTime = null;
boolean isLongTime = false;
if(startTime!=null){
diffTime = System.currentTimeMillis()-startTime;
if(diffTime>10000){
isLongTime = true;
}
}
//GET只保存请求时间长的请求
if(request.getMethod().equals("GET") && !isLongTime){
return;
}
// 获取当前的用户
@ -105,12 +117,10 @@ public class SysLogAspect {
if (e != null) {
operLog.setErrMsg(StringUtils.substring(e.getMessage(), 0, 2500));
}
//耗时
Long startTime = startTimeIndex.get();
if(startTime!=null){
operLog.setElapsedTime(System.currentTimeMillis()-startTime);
if(diffTime!=null){
operLog.setElapsedTime(diffTime);
}else {
operLog.setElapsedTime(0L);
operLog.setElapsedTime(-1L);
}
String className = joinPoint.getTarget().getClass().getName();
String methodName = joinPoint.getSignature().getName();

8
src/main/java/com/qs/serve/common/model/dto/SimpleKeyValue.java

@ -5,6 +5,8 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
/**
* @author YenHex
@ -26,6 +28,8 @@ public class SimpleKeyValue<T> {
/** 说明 */
private String remark;
private List<SimpleKeyValue<T>> childList = new ArrayList<>();
public SimpleKeyValue(String label,T value,String remark){
this.label = label;
this.value = value;
@ -36,4 +40,8 @@ public class SimpleKeyValue<T> {
this.value = value;
}
public void addChild(SimpleKeyValue<T> value){
childList.add(value);
}
}

2
src/main/java/com/qs/serve/modules/exl/controller/ExlTableDataController.java

@ -93,7 +93,7 @@ public class ExlTableDataController {
Integer startRow = PageUtil.getStartRow();
queryMap.put("startRow",startRow);
queryMap.put("pageSize",pageSize);
List<Map<String,Object>> list = exlTableConfMapper.listData(targetTableName,queryMap);
List<Map<String,Object>> list = exlTableConfMapper.pageData(targetTableName,queryMap);
this.formatListData(list);
vo.setList(list);
}else {

104
src/main/java/com/qs/serve/modules/goods/controller/GoodsFeedbackController.java

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.dto.SimpleKeyValue;
import com.qs.serve.common.model.dto.TreeNode;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
@ -13,11 +14,16 @@ import com.qs.serve.modules.goods.entity.GoodsFeedbackType;
import com.qs.serve.modules.goods.entity.GoodsSku;
import com.qs.serve.modules.goods.entity.GoodsSpu;
import com.qs.serve.modules.goods.entity.bo.GoodsFeedbackBo;
import com.qs.serve.modules.goods.entity.bo.GoodsFeedbackCheckBo;
import com.qs.serve.modules.goods.entity.so.GoodsFeedbackQuery;
import com.qs.serve.modules.goods.entity.vo.GoodsFeedbackVo;
import com.qs.serve.modules.goods.mapper.GoodsFeedbackMapper;
import com.qs.serve.modules.goods.service.GoodsFeedbackTypeService;
import com.qs.serve.modules.goods.service.GoodsSkuService;
import com.qs.serve.modules.goods.service.GoodsSpuService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysPostUserService;
import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
@ -27,10 +33,8 @@ import com.qs.serve.modules.goods.entity.GoodsFeedback;
import com.qs.serve.modules.goods.service.GoodsFeedbackService;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -44,8 +48,10 @@ import java.util.stream.Collectors;
@RequestMapping("goods/feedback")
public class GoodsFeedbackController {
private SysUserService sysUserService;
private GoodsFeedbackTypeService goodsFeedbackTypeService;
private GoodsFeedbackService goodsFeedbackService;
private GoodsFeedbackMapper goodsFeedbackMapper;
private SysPostUserService postUserService;
private GoodsSkuService goodsSkuService;
private GoodsSpuService goodsSpuService;
@ -62,17 +68,48 @@ public class GoodsFeedbackController {
return R.ok(list);
}
@GetMapping("typeOptions")
public R<?> getOptions(){
List<String> types = goodsFeedbackMapper.selectHisTypes();
Map<String, SimpleKeyValue<String>> roots = new HashMap<>();
for (String key : types) {
String[] parts = key.split(",");
SimpleKeyValue<String> current = roots.computeIfAbsent(parts[0], k -> {
SimpleKeyValue<String> root = new SimpleKeyValue<String>();
root.setValue( k );
return root;
});
for (int i = 1; i < parts.length; i++) {
current = this.findOrCreateChild(current, parts , i);
}
}
return R.ok(roots.values());
}
public SimpleKeyValue<String> findOrCreateChild(SimpleKeyValue<String> parent, String[] values,int idx) {
String finalValue = parent.getValue() + values[idx];
for (SimpleKeyValue<String> child : parent.getChildList()) {
if (child.getValue().equals(finalValue)) {
return child;
}
}
SimpleKeyValue newChild = new SimpleKeyValue();
newChild.setValue(finalValue);
parent.addChild(newChild);
return newChild;
}
/**
* 翻页(我的)
* @param param
* @return
*/
@GetMapping("/pageMy")
public R<PageVo<GoodsFeedback>> getPageMy(GoodsFeedback param){
LambdaQueryWrapper<GoodsFeedback> lqw = new LambdaQueryWrapper<>(param);
public R<PageVo<GoodsFeedbackVo>> getPageMy(GoodsFeedbackQuery param){
PageUtil.startPage();
lqw.eq(GoodsFeedback::getUserId, AuthContextUtils.getSysUserId());
List<GoodsFeedback> list = goodsFeedbackService.list(lqw);
param.setSelectUserIds(Arrays.asList(AuthContextUtils.getSysUserId()));
List<GoodsFeedbackVo> list = goodsFeedbackService.selectListVo(param);
return R.byPageHelperList(list);
}
@ -82,14 +119,13 @@ public class GoodsFeedbackController {
* @return
*/
@GetMapping("/pageMyAndChild")
public R<PageVo<GoodsFeedback>> getPageMyAndChild(GoodsFeedback param){
public R<PageVo<GoodsFeedbackVo>> getPageMyAndChild(GoodsFeedbackQuery param){
String userId = AuthContextUtils.getSysUserId();
List<String> userIds = postUserService.listByChildIds(userId);
userIds.add(userId);
LambdaQueryWrapper<GoodsFeedback> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage();
lqw.eq(GoodsFeedback::getUserId, userIds);
List<GoodsFeedback> list = goodsFeedbackService.list(lqw);
param.setSelectUserIds(userIds);
List<GoodsFeedbackVo> list = goodsFeedbackService.selectListVo(param);
return R.byPageHelperList(list);
}
@ -100,10 +136,9 @@ public class GoodsFeedbackController {
* @return
*/
@GetMapping("/page")
public R<PageVo<GoodsFeedback>> getPage(GoodsFeedback param){
LambdaQueryWrapper<GoodsFeedback> lqw = new LambdaQueryWrapper<>(param);
public R<PageVo<GoodsFeedbackVo>> getPage(GoodsFeedbackQuery param){
PageUtil.startPage();
List<GoodsFeedback> list = goodsFeedbackService.list(lqw);
List<GoodsFeedbackVo> list = goodsFeedbackService.selectListVo(param);
return R.byPageHelperList(list);
}
@ -141,7 +176,7 @@ public class GoodsFeedbackController {
if(CollUtil.isNotEmpty(goodsFeedbackTypes)){
Collections.reverse(goodsFeedbackTypes);
String string = goodsFeedbackTypes.stream().map(GoodsFeedbackType::getName).collect(Collectors.joining("/"));
feedbackVo.setFeedbackTypeNames(string);
feedbackVo.setFeedBackTypes(goodsFeedbackTypes);
}
return R.ok(feedbackVo);
}
@ -158,6 +193,43 @@ public class GoodsFeedbackController {
return R.ok();
}
/**
* 核对反馈
* @param param
* @return
*/
@PostMapping("/check")
@SysLog(module = SystemModule.GOODS, title = "问题反馈", biz = BizType.INSERT)
public R<?> check(@RequestBody @Valid GoodsFeedbackCheckBo param){
GoodsFeedback feedback = goodsFeedbackService.getById(param.getId());
feedback.setGoodsCheckRemark(param.getRemark());
feedback.setGoodsCheckTime(LocalDateTime.now());
feedback.setGoodsCheckerId(AuthContextUtils.getSysUserId());
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
feedback.setGoodsCheckerId(sysUser.getId());
feedback.setGoodsChecker(sysUser.getName());
goodsFeedbackService.updateById(feedback);
return R.ok();
}
/**
* 删除我的删除接口 30天内可删除
* @param ids
* @return
*/
@DeleteMapping("/deleteMyById/{ids}")
@SysLog(module = SystemModule.GOODS, title = "问题反馈", biz = BizType.DELETE)
public R<?> deleteMyById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
boolean result = goodsFeedbackService.remove(
new LambdaQueryWrapper<GoodsFeedback>()
.in(GoodsFeedback::getId,idsLong)
.eq(GoodsFeedback::getUserId,AuthContextUtils.getSysUserId())
.ge(GoodsFeedback::getCreateTime, LocalDateTime.now().plusDays(-30))
);
return R.isTrue(result);
}
/**
* 删除
* @param ids

4
src/main/java/com/qs/serve/modules/goods/controller/GoodsFeedbackTypeController.java

@ -89,6 +89,10 @@ public class GoodsFeedbackTypeController {
@SysLog(module = SystemModule.GOODS, title = "问题反馈类型", biz = BizType.QUERY)
public R<GoodsFeedbackType> getById(@PathVariable("id") String id){
GoodsFeedbackType goodsFeedbackType = goodsFeedbackTypeService.getById(id);
if(!goodsFeedbackType.getPid().equals(TreeUtil.DEFAULT_PID_STRING)){
GoodsFeedbackType p = goodsFeedbackTypeService.getById(goodsFeedbackType.getPid());
goodsFeedbackType.setParentInfo(p);
}
return R.ok(goodsFeedbackType);
}

22
src/main/java/com/qs/serve/modules/goods/entity/GoodsFeedback.java

@ -49,6 +49,10 @@ public class GoodsFeedback implements Serializable {
@Length(max = 255,message = "反馈类型长度不能超过255字")
private String feedbackTypeId;
/** 反馈类型拼接,格式: 缺陷/数量不足 */
@TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR)
private String[] feedbackTypeNames;
/** 反馈内容 */
@Length(max = 255,message = "反馈内容长度不能超过255字")
private String feedbackText;
@ -65,6 +69,24 @@ public class GoodsFeedback implements Serializable {
@Length(max = 64,message = "反馈人长度不能超过64字")
private String userName;
/** 品控部人员id */
@Length(max = 64,message = "品控部人员id长度不能超过64字")
private String goodsCheckerId;
/** 品控部人员 */
@Length(max = 255,message = "品控部人员长度不能超过255字")
private String goodsChecker;
/** 品控部说明 */
@Length(max = 255,message = "品控部说明长度不能超过255字")
private String goodsCheckRemark;
/** 品控部核对时间 */
@Length(max = 0,message = "品控部核对时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime goodsCheckTime;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;

2
src/main/java/com/qs/serve/modules/goods/entity/GoodsFeedbackType.java

@ -77,6 +77,8 @@ public class GoodsFeedbackType implements Serializable {
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
@TableField(exist = false)
private Object parentInfo;
public static GoodsFeedbackType toNewObject(GoodsFeedbackType source){
GoodsFeedbackType feedbackType = new GoodsFeedbackType();

17
src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsFeedbackCheckBo.java

@ -0,0 +1,17 @@
package com.qs.serve.modules.goods.entity.bo;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
/**
* @author YenHex
* @since 2024/10/28
*/
@Data
public class GoodsFeedbackCheckBo {
String id;
String remark;
}

21
src/main/java/com/qs/serve/modules/goods/entity/so/GoodsFeedbackQuery.java

@ -0,0 +1,21 @@
package com.qs.serve.modules.goods.entity.so;
import com.qs.serve.modules.goods.entity.GoodsFeedback;
import lombok.Data;
import java.util.List;
/**
* @author YenHex
* @since 2024/11/6
*/
@Data
public class GoodsFeedbackQuery extends GoodsFeedback {
String queryTypeName;
List<String> selectUserIds;
List<String> selectTypesIds;
}

5
src/main/java/com/qs/serve/modules/goods/entity/vo/GoodsFeedbackVo.java

@ -18,9 +18,6 @@ public class GoodsFeedbackVo extends GoodsFeedback {
List<?> goodSpuList;
/**
* 反馈类型拼接格式 缺陷/数量不足
*/
String feedbackTypeNames;
List<?> feedBackTypes;
}

14
src/main/java/com/qs/serve/modules/goods/mapper/GoodsFeedbackMapper.java

@ -1,7 +1,14 @@
package com.qs.serve.modules.goods.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.goods.entity.GoodsFeedback;
import com.qs.serve.modules.goods.entity.so.GoodsFeedbackQuery;
import com.qs.serve.modules.goods.entity.vo.GoodsFeedbackVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* 问题反馈 Mapper
@ -10,5 +17,12 @@ import com.qs.serve.modules.goods.entity.GoodsFeedback;
*/
public interface GoodsFeedbackMapper extends BaseMapper<GoodsFeedback> {
@InterceptorIgnore(tenantLine = "1")
@Select("select feedback_type_names from goods_feedback where del_flag = 0 group by feedback_type_names")
List<String> selectHisTypes();
@InterceptorIgnore(tenantLine = "1")
List<GoodsFeedbackVo> selectGoodsFeedbackList(@Param("query") GoodsFeedbackQuery query);
}

6
src/main/java/com/qs/serve/modules/goods/service/GoodsFeedbackService.java

@ -3,6 +3,10 @@ package com.qs.serve.modules.goods.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.goods.entity.GoodsFeedback;
import com.qs.serve.modules.goods.entity.bo.GoodsFeedbackBo;
import com.qs.serve.modules.goods.entity.so.GoodsFeedbackQuery;
import com.qs.serve.modules.goods.entity.vo.GoodsFeedbackVo;
import java.util.List;
/**
* 问题反馈 服务接口
@ -17,5 +21,7 @@ public interface GoodsFeedbackService extends IService<GoodsFeedback> {
*/
void modify(GoodsFeedbackBo param);
List<GoodsFeedbackVo> selectListVo(GoodsFeedbackQuery query);
}

58
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsFeedbackServiceImpl.java

@ -1,11 +1,19 @@
package com.qs.serve.modules.goods.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.common.util.TreeUtil;
import com.qs.serve.modules.goods.entity.GoodsFeedbackType;
import com.qs.serve.modules.goods.entity.GoodsSku;
import com.qs.serve.modules.goods.entity.GoodsSpu;
import com.qs.serve.modules.goods.entity.bo.GoodsFeedbackBo;
import com.qs.serve.modules.goods.entity.so.GoodsFeedbackQuery;
import com.qs.serve.modules.goods.entity.vo.GoodsFeedbackVo;
import com.qs.serve.modules.goods.mapper.GoodsFeedbackTypeMapper;
import com.qs.serve.modules.goods.mapper.GoodsSkuMapper;
import com.qs.serve.modules.goods.mapper.GoodsSpuMapper;
import com.qs.serve.modules.sys.entity.SysUser;
@ -17,6 +25,11 @@ import com.qs.serve.modules.goods.entity.GoodsFeedback;
import com.qs.serve.modules.goods.service.GoodsFeedbackService;
import com.qs.serve.modules.goods.mapper.GoodsFeedbackMapper;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* 问题反馈 服务实现类
* @author YenHex
@ -30,6 +43,32 @@ public class GoodsFeedbackServiceImpl extends ServiceImpl<GoodsFeedbackMapper,Go
private final GoodsSpuMapper goodsSpuMapper;
private final GoodsSkuMapper goodsSkuMapper;
private final SysUserMapper sysUserMapper;
private final GoodsFeedbackTypeMapper feedbackTypeMapper;
@Override
public List<GoodsFeedbackVo> selectListVo(GoodsFeedbackQuery query) {
if(StringUtils.hasText(query.getFeedbackTypeId())){
List<GoodsFeedbackType> types = feedbackTypeMapper.selectList(new LambdaQueryWrapper<GoodsFeedbackType>()
.eq(GoodsFeedbackType::getPid,query.getFeedbackTypeId()));
if(CollUtil.isNotEmpty(types)){
List<String> ids = types.stream().map(GoodsFeedbackType::getId).collect(Collectors.toList());
if(CollUtil.isNotEmpty(ids)){
List<GoodsFeedbackType> types2 = feedbackTypeMapper.selectList(new LambdaQueryWrapper<GoodsFeedbackType>()
.in(GoodsFeedbackType::getPid,ids));
List<String> ids2 = types2.stream().map(GoodsFeedbackType::getId).collect(Collectors.toList());
if(CollUtil.isNotEmpty(ids2)){
ids.addAll(ids2);
}
}
ids.add(query.getFeedbackTypeId());
// 使用typeIds条件
query.setSelectTypesIds(ids);
query.setFeedbackTypeId(null);
}
}
return baseMapper.selectGoodsFeedbackList(query);
}
@Override
public void modify(GoodsFeedbackBo param) {
@ -38,6 +77,25 @@ public class GoodsFeedbackServiceImpl extends ServiceImpl<GoodsFeedbackMapper,Go
feedback.setUserId(sysUser.getId());
feedback.setUserCode(sysUser.getCode());
feedback.setUserName(sysUser.getName());
String typeId = feedback.getFeedbackTypeId();
List<GoodsFeedbackType> goodsFeedbackTypes = new ArrayList<>();
while (true){
if(typeId.equals(TreeUtil.DEFAULT_PID_STRING)){
break;
}
GoodsFeedbackType goodsFeedbackType = feedbackTypeMapper.selectById(typeId);
if(goodsFeedbackType==null){
break;
}
goodsFeedbackTypes.add(goodsFeedbackType);
typeId = goodsFeedbackType.getPid();
}
if(CollUtil.isNotEmpty(goodsFeedbackTypes)){
Collections.reverse(goodsFeedbackTypes);
List<String> arrays = goodsFeedbackTypes.stream().map(GoodsFeedbackType::getName).collect(Collectors.toList());
feedback.setFeedbackTypeNames(arrays.toArray(new String[arrays.size()]));
}
super.save(feedback);
}

2
src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivityPayConditionMapper.java

@ -29,7 +29,7 @@ public interface TbsActivityPayConditionMapper extends BaseMapper<TbsActivityPay
* @param activityId
* @return
*/
@Select("select sum(id) from vtb_verification where del_flag = 0 and activity_id = #{activityId} and verification_state = '1' ")
@Select("select count(1) from vtb_verification where del_flag = 0 and activity_id = #{activityId} and verification_state = '1' ")
Long sumFinishedCheck(@Param("activityId") Long activityId);
@InterceptorIgnore(tenantLine = "1")

14
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostTodoOperationServiceImpl.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.tbs.service.impl;
import java.math.BigDecimal;
import java.util.List;
import com.alibaba.fastjson.JSONObject;
@ -21,13 +22,16 @@ import com.qs.serve.modules.sys.mapper.SysUserMapper;
import com.qs.serve.modules.tbs.common.TbsCommonCheckState;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.TbsActivity;
import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.TbsCostTodo;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.entity.bo.TbsSubmitToDoBo;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper;
import com.qs.serve.modules.tbs.mapper.TbsCostTodoMapper;
import com.qs.serve.modules.tbs.service.TbsActivityService;
import com.qs.serve.modules.tbs.service.TbsCostTodoService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -50,6 +54,7 @@ import java.util.Map;
public class TbsCostTodoOperationServiceImpl implements SeeYonOperationService {
private final TbsCostTodoMapper tbsCostTodoMapper;
private final TbsActivityMapper tbsActivityMapper;
private final TbsCostApplyMapper tbsCostApplyMapper;
private final SysUserMapper sysUserMapper;
private final ProjectProperties projectProperties;
@ -91,7 +96,14 @@ public class TbsCostTodoOperationServiceImpl implements SeeYonOperationService {
data.put("cmsLink",baseJumpUrl);
data.put("rowDate", DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME));
data.put("rowState","03");
data.put("jinE",tbsCostApply.getTotalActivityAmount());
List<TbsActivity> tbsActivities = tbsActivityMapper.selectList(new LambdaQueryWrapper<TbsActivity>()
.eq(TbsActivity::getCostApplyId,tbsCostApply.getId()));
BigDecimal totalSum = BigDecimal.ZERO;
for (TbsActivity activity : tbsActivities) {
totalSum = totalSum.add(activity.getTotalAmount());
}
data.put("jinE",totalSum);
BaseCreateProcessBo createProcess = new BaseCreateProcessBo();
createProcess.setTemplateCode(templateCode);

124
src/main/resources/mapper/goods/GoodsFeedbackMapper.xml

@ -0,0 +1,124 @@
<?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.qs.serve.modules.goods.mapper.GoodsFeedbackMapper">
<resultMap id="goodsFeedbackMap" type="com.qs.serve.modules.goods.entity.vo.GoodsFeedbackVo" >
<result property="id" column="id"/>
<result property="spuIds" column="spu_ids" typeHandler="com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler"/>
<result property="skuIds" column="sku_ids" typeHandler="com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler"/>
<result property="imgUrls" column="img_urls" typeHandler="com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler"/>
<result property="feedbackTypeId" column="feedback_type_id"/>
<result property="feedbackTypeNames" column="feedback_type_names" typeHandler="com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler"/>
<result property="feedbackText" column="feedback_text"/>
<result property="userId" column="user_id"/>
<result property="userCode" column="user_code"/>
<result property="userName" column="user_name"/>
<result property="goodsCheckerId" column="goods_checker_id"/>
<result property="goodsChecker" column="goods_checker"/>
<result property="goodsCheckRemark" column="goods_check_remark"/>
<result property="goodsCheckTime" column="goods_check_time"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="tenantId" column="tenant_id"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="extProvince" column="ext_province"/>
<result property="extCity" column="ext_city"/>
<result property="extRegionArea" column="ext_region_area"/>
<result property="extTownship" column="ext_township"/>
<result property="extStreet" column="ext_street"/>
<result property="extStreetNumber" column="ext_street_number"/>
<result property="localX" column="local_x"/>
<result property="localY" column="local_y"/>
<result property="address" column="address"/>
</resultMap>
<sql id="goodsFeedbackSql">
goods_feedback.`id`,
goods_feedback.`spu_ids`,
goods_feedback.`sku_ids`,
goods_feedback.`img_urls`,
goods_feedback.`feedback_type_id`,
goods_feedback.`feedback_type_names`,
goods_feedback.`feedback_text`,
goods_feedback.`user_id`,
goods_feedback.`user_code`,
goods_feedback.`user_name`,
goods_feedback.`goods_checker_id`,
goods_feedback.`goods_checker`,
goods_feedback.`goods_check_remark`,
goods_feedback.`goods_check_time`,
goods_feedback.`remark`,
goods_feedback.`create_time`,
goods_feedback.`update_time`,
goods_feedback.`tenant_id`,
goods_feedback.`del_flag`,
goods_feedback.`create_by`,
goods_feedback.`update_by`,
goods_feedback.`ext_province`,
goods_feedback.`ext_city`,
goods_feedback.`ext_region_area`,
goods_feedback.`ext_township`,
goods_feedback.`ext_street`,
goods_feedback.`ext_street_number`,
goods_feedback.`local_x`,
goods_feedback.`local_y`,
goods_feedback.`address` </sql>
<select id="selectGoodsFeedbackList" parameterType="com.qs.serve.modules.goods.entity.GoodsFeedback" resultMap="goodsFeedbackMap">
SELECT <include refid="goodsFeedbackSql"/> FROM `goods_feedback` `goods_feedback`
<where>
and goods_feedback.del_flag = 0
<if test="query.id != null"> and `goods_feedback`.`id` = #{query.id}</if>
<if test="query.spuIds != null and query.spuIds != ''"> and `goods_feedback`.`spu_ids` = #{query.spuIds}</if>
<if test="query.skuIds != null and query.skuIds != ''"> and `goods_feedback`.`sku_ids` = #{query.skuIds}</if>
<if test="query.feedbackTypeId != null and query.feedbackTypeId != ''"> and `goods_feedback`.`feedback_type_id` = #{query.feedbackTypeId}</if>
<if test="query.feedbackText != null and query.feedbackText != ''"> and `goods_feedback`.`feedback_text` like concat('%',#{query.feedbackText},'%') </if>
<if test="query.userId != null and query.userId != ''"> and `goods_feedback`.`user_id` = #{query.userId}</if>
<if test="query.userCode != null and query.userCode != ''"> and `goods_feedback`.`user_code` like concat('%',#{query.userCode},'%') </if>
<if test="query.userName != null and query.userName != ''"> and `goods_feedback`.`user_name` like concat('%',#{query.userName},'%') </if>
<if test="query.goodsCheckerId != null and query.goodsCheckerId != ''"> and `goods_feedback`.`goods_checker_id` = #{query.goodsCheckerId}</if>
<if test="query.goodsChecker != null and query.goodsChecker != ''"> and `goods_feedback`.`goods_checker` = #{query.goodsChecker}</if>
<if test="query.goodsCheckRemark != null and query.goodsCheckRemark != ''"> and `goods_feedback`.`goods_check_remark` = #{query.goodsCheckRemark}</if>
<if test="query.goodsCheckTime != null"> and `goods_feedback`.`goods_check_time` = #{query.goodsCheckTime}</if>
<if test="query.remark != null and query.remark != ''"> and `goods_feedback`.`remark` = #{query.remark}</if>
<if test="query.createTime != null"> and `goods_feedback`.`create_time` = #{query.createTime}</if>
<if test="query.updateTime != null"> and `goods_feedback`.`update_time` = #{query.updateTime}</if>
<if test="query.tenantId != null and query.tenantId != ''"> and `goods_feedback`.`tenant_id` = #{query.tenantId}</if>
<if test="query.delFlag != null and query.delFlag != ''"> and `goods_feedback`.`del_flag` = #{query.delFlag}</if>
<if test="query.createBy != null and query.createBy != ''"> and `goods_feedback`.`create_by` = #{query.createBy}</if>
<if test="query.updateBy != null and query.updateBy != ''"> and `goods_feedback`.`update_by` = #{query.updateBy}</if>
<if test="query.extProvince != null and query.extProvince != ''"> and `goods_feedback`.`ext_province` = #{query.extProvince}</if>
<if test="query.extCity != null and query.extCity != ''"> and `goods_feedback`.`ext_city` = #{query.extCity}</if>
<if test="query.extRegionArea != null and query.extRegionArea != ''"> and `goods_feedback`.`ext_region_area` = #{query.extRegionArea}</if>
<if test="query.extTownship != null and query.extTownship != ''"> and `goods_feedback`.`ext_township` = #{query.extTownship}</if>
<if test="query.extStreet != null and query.extStreet != ''"> and `goods_feedback`.`ext_street` = #{query.extStreet}</if>
<if test="query.extStreetNumber != null and query.extStreetNumber != ''"> and `goods_feedback`.`ext_street_number` = #{query.extStreetNumber}</if>
<if test="query.localX != null and query.localX != ''"> and `goods_feedback`.`local_x` = #{query.localX}</if>
<if test="query.localY != null and query.localY != ''"> and `goods_feedback`.`local_y` = #{query.localY}</if>
<if test="query.address != null and query.address != ''"> and `goods_feedback`.`address` = #{query.address}</if>
<if test="query.selectUserIds!=null and query.selectUserIds.size > 0">
and goods_feedback.user_id in
<foreach collection="query.selectUserIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
<if test="query.selectTypesIds!=null and query.selectTypesIds.size > 0">
and goods_feedback.feedback_type_id in
<foreach collection="query.selectTypesIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
<if test="query.queryTypeName != null and query.queryTypeName != ''">
and FIND_IN_SET(#{query.queryTypeName},`goods_feedback`.`feedback_type_names`)
</if>
</where>
order by goods_feedback.id desc
</select>
</mapper>

3
src/main/resources/mapper/wx/WxFormPushMapper.xml

@ -91,12 +91,11 @@
and `wx_form_push`.`effective_end_time` &lt;= #{query.effectiveEndTime}
</if>
<if test="query.queryUserId != null and query.queryUserId != ''">
and `wx_form_push_user`.`user_id` = #{query.queryUserId}
</if>
</where>
order by `wx_form_push`.`publish_time`,`wx_form_push`.`create_time` desc
order by `wx_form_push`.`create_time` desc
</select>
</mapper>

Loading…
Cancel
Save