Browse Source

feat: 搭赠通案补充OA逻辑;费用申请预览预算添加区间维度过滤

master
Yen 1 month ago
parent
commit
8f252aaac7
  1. 6
      cms-common/src/main/java/com/qs/serve/common/exception/UnifiedExceptionHandler.java
  2. 6
      cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftCenterBo.java
  3. 2
      cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftGoodsBo.java
  4. 6
      cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftScopeBo.java
  5. 10
      cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/dto/PromotionGiftDTO.java
  6. 55
      cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftItemVo.java
  7. 61
      cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftSubjectVo.java
  8. 11
      cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftVo.java
  9. 15
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/OmsPromotionGiftController.java
  10. 8
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftItemMapper.java
  11. 6
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/OmsPromotionGiftService.java
  12. 98
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftOptionsServiceImpl.java
  13. 80
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftServiceImpl.java
  14. 23
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java
  15. 4
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java
  16. 8
      cms-modules/cms-system/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java
  17. 35
      cms-modules/cms-system/src/main/resources/mapper/oms/OmsPromotionGiftItemMapper.xml

6
cms-common/src/main/java/com/qs/serve/common/exception/UnifiedExceptionHandler.java

@ -131,7 +131,11 @@ public class UnifiedExceptionHandler {
@ExceptionHandler(value = Exception.class)
@ResponseBody
public R handleException(Exception e,HttpServletRequest request) {
log.error("Servlet异常\n请求地址:{},异常类型:{}\n异常信息:{}\n异常体:",request.getRequestURI(),e.getClass().getSimpleName(),e.getMessage(),e);
try {
log.error("Servlet异常\n请求地址:{},异常类型:{}\n异常信息:{}\n异常体:",request.getRequestURI(),e.getClass().getSimpleName(),e.getMessage(),e);
} catch (Exception ex) {
ex.printStackTrace();
}
e.printStackTrace();
return R.error();
}

6
cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftCenterBo.java

@ -28,7 +28,11 @@ public class OmsPromotionGiftCenterBo implements Serializable {
@NotNull(message = "费用占比不能为空")
private BigDecimal centerRate;
/** 成本中心类型 */
/** 成本中心类型:
* center,
customer,
bizRegion,
saleRegion */
@NotBlank(message = "成本中心类型不能为空")
@Length(max = 255,message = "成本中心类型长度不能超过255字")
private String centerType;

2
cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftGoodsBo.java

@ -25,7 +25,7 @@ public class OmsPromotionGiftGoodsBo implements Serializable {
/** id */
private Long id;
/** 商品类型 */
/** 商品类型: brand,category,series,spu,sku */
@Length(max = 255,message = "商品类型长度不能超过255字")
private String goodsType;

6
cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftScopeBo.java

@ -23,7 +23,11 @@ public class OmsPromotionGiftScopeBo implements Serializable {
private static final long serialVersionUID = 1L;
/**
customer,
bizRegion,
saleRegion,
*/
private String regionType;
/** 区域id */

10
cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/dto/PromotionGiftDTO.java

@ -1,7 +1,10 @@
package com.qs.serve.modules.oms.entity.dto;
import com.qs.serve.modules.oms.entity.*;
import lombok.Builder;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
@ -10,8 +13,15 @@ import java.util.Map;
* @since 2025/6/9
*/
@Data
@Builder
public class PromotionGiftDTO {
Map<String, Object> mainTableData;
List<OmsPromotionGiftGoods> goodsList;
List<OmsPromotionGiftCenter> centerList;
List<OmsPromotionGiftSubject> subjectList;
List<OmsPromotionGiftItem> itemList;
List<OmsPromotionGiftScope> scopeList;
}

55
cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftItemVo.java

@ -0,0 +1,55 @@
package com.qs.serve.modules.oms.entity.vo;
import com.qs.serve.modules.oms.entity.OmsPromotionGiftGoods;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author YenHex
* @since 2025/6/9
*/
@Data
public class OmsPromotionGiftItemVo {
private Long id;
/** 通案id */
@NotNull(message = "通案id不能为空")
private Long giftId;
/** 商品类型 */
@Length(max = 255,message = "商品类型长度不能超过255字")
private String goodsType;
/** 商品id */
private Long goodsId;
/** 商品编码 */
@Length(max = 255,message = "商品编码长度不能超过255字")
private String goodsCode;
/** 商品名称 */
@Length(max = 255,message = "商品名称长度不能超过255字")
private String goodsName;
/** 起订量 */
private Integer minPurchaseQty;
/** 满足数量 */
private Integer meetQty;
/** 赠品数量 */
private Integer giftQty;
private Integer goodsFlag;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
List<OmsPromotionGiftGoods> goodsList;
}

61
cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftSubjectVo.java

@ -0,0 +1,61 @@
package com.qs.serve.modules.oms.entity.vo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.qs.serve.modules.oms.entity.OmsPromotionGiftCenter;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
* 搭赠科目项 实体类
* @author YenHex
* @since 2025-06-05
*/
@Data
public class OmsPromotionGiftSubjectVo implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 搭赠id */
@NotNull(message = "搭赠id不能为空")
private Long giftId;
/** 科目id */
@NotNull(message = "科目id不能为空")
private Long subjectId;
/** 科目编码 */
@NotBlank(message = "科目编码不能为空")
@Length(max = 50,message = "科目编码长度不能超过50字")
private String subjectCode;
/** 科目名称 */
@NotBlank(message = "科目名称不能为空")
@Length(max = 50,message = "科目名称长度不能超过50字")
private String subjectName;
/** 科目比例 */
private BigDecimal subjectRate;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
List<OmsPromotionGiftCenter> centerList;
}

11
cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftVo.java

@ -5,6 +5,9 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.qs.serve.mbp.handler.SplitStringTypeHandler;
import com.qs.serve.modules.oms.entity.OmsPromotionGiftItem;
import com.qs.serve.modules.oms.entity.OmsPromotionGiftScope;
import com.qs.serve.modules.oms.entity.OmsPromotionGiftSubject;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;
import org.hibernate.validator.constraints.Length;
@ -15,6 +18,7 @@ import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
* 搭赠方案 实体类
@ -74,6 +78,13 @@ public class OmsPromotionGiftVo implements Serializable {
private String remark;
private List<OmsPromotionGiftItemVo> itemList;
private List<OmsPromotionGiftSubjectVo> subjectList;
private List<OmsPromotionGiftScope> scopeList;
/** 附件列表 */
private List<?> attachList;
}

15
cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/OmsPromotionGiftController.java

@ -10,6 +10,7 @@ import com.qs.serve.framework.base.model.PageVo;
import com.qs.serve.framework.base.model.R;
import com.qs.serve.modules.oms.entity.OmsPromotionGift;
import com.qs.serve.modules.oms.entity.bo.OmsPromotionGiftBo;
import com.qs.serve.modules.oms.entity.vo.OmsPromotionGiftVo;
import com.qs.serve.modules.oms.service.OmsPromotionGiftService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -31,6 +32,16 @@ public class OmsPromotionGiftController {
private OmsPromotionGiftService omsPromotionGiftService;
/**
* 获取客户所有搭赠方案
* @param customerId
* @return
*/
@GetMapping("/getCustomerPgList/{customerId}")
public R<?> getCustomerPgList(@PathVariable("customerId") String customerId){
return R.ok(omsPromotionGiftService.getItemList(customerId));
}
/**
* 翻页
* @param param
@ -51,8 +62,8 @@ public class OmsPromotionGiftController {
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.BASE, title = "搭赠方案", biz = BizType.QUERY)
public R<OmsPromotionGift> getById(@PathVariable("id") String id){
OmsPromotionGift omsPromotionGift = omsPromotionGiftService.getById(id);
public R<OmsPromotionGiftVo> getById(@PathVariable("id") String id){
OmsPromotionGiftVo omsPromotionGift = omsPromotionGiftService.getDetailVo(id);
return R.ok(omsPromotionGift);
}

8
cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftItemMapper.java

@ -2,6 +2,10 @@ package com.qs.serve.modules.oms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.oms.entity.OmsPromotionGiftItem;
import com.qs.serve.modules.oms.entity.vo.OmsPromotionGiftItemVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 搭赠规则明细 Mapper
@ -10,5 +14,9 @@ import com.qs.serve.modules.oms.entity.OmsPromotionGiftItem;
*/
public interface OmsPromotionGiftItemMapper extends BaseMapper<OmsPromotionGiftItem> {
List<OmsPromotionGiftItemVo> listCustomerItems(@Param("customerId") String customerId,
@Param("saleRegionIds") List<String> saleRegionIds,
@Param("bizRegionIds") List<String> bizRegionIds);
}

6
cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/OmsPromotionGiftService.java

@ -2,9 +2,13 @@ package com.qs.serve.modules.oms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.oms.entity.OmsPromotionGift;
import com.qs.serve.modules.oms.entity.OmsPromotionGiftItem;
import com.qs.serve.modules.oms.entity.bo.OmsPromotionGiftBo;
import com.qs.serve.modules.oms.entity.vo.OmsPromotionGiftItemVo;
import com.qs.serve.modules.oms.entity.vo.OmsPromotionGiftVo;
import java.util.List;
/**
* 搭赠方案 服务接口
* @author YenHex
@ -12,6 +16,8 @@ import com.qs.serve.modules.oms.entity.vo.OmsPromotionGiftVo;
*/
public interface OmsPromotionGiftService extends IService<OmsPromotionGift> {
List<OmsPromotionGiftItemVo> getItemList(String id);
OmsPromotionGiftVo getDetailVo(String id);
/**

98
cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftOptionsServiceImpl.java

@ -1,5 +1,6 @@
package com.qs.serve.modules.oms.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -7,14 +8,17 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.qs.serve.common.exception.Assert;
import com.qs.serve.common.utils.CopierUtil;
import com.qs.serve.framework.base.model.R;
import com.qs.serve.framework.base.model.oa.OaFormMainProcess;
import com.qs.serve.framework.base.util.DateUtils;
import com.qs.serve.framework.base.util.model.DateFormatString;
import com.qs.serve.modules.oms.common.OmsOrderCheckState;
import com.qs.serve.modules.oms.common.constants.OmsPromGitStatus;
import com.qs.serve.modules.oms.entity.OmsPromotionGift;
import com.qs.serve.modules.oms.entity.*;
import com.qs.serve.modules.oms.entity.dto.PromotionGiftDTO;
import com.qs.serve.modules.oms.entity.vo.OmsPromotionGiftVo;
import com.qs.serve.modules.oms.mapper.*;
import com.qs.serve.modules.oms.service.OmsPromotionGiftOptionsService;
import com.qs.serve.modules.oms.service.OmsPromotionGiftService;
import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo;
@ -33,6 +37,7 @@ import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@ -45,9 +50,15 @@ import java.util.Map;
public class OmsPromotionGiftOptionsServiceImpl implements OmsPromotionGiftOptionsService {
private final SysUserService sysUserService;
private OmsPromotionGiftService omsPromotionGiftService;
private final OmsPromotionGiftService omsPromotionGiftService;
private final SeeYonRequestService seeYonService;
private final SeeYonRequestBaseService seeYonRequestBaseService;
private final OmsPromotionGiftCenterMapper omsPromotionGiftCenterMapper;
private final OmsPromotionGiftSubjectMapper omsPromotionGiftSubjectMapper;
private final OmsPromotionGiftScopeMapper omsPromotionGiftScopeMapper;
private final OmsPromotionGiftItemMapper omsPromotionGiftItemMapper;
private final OmsPromotionGiftGoodsMapper omsPromotionGiftGoodsMapper;
@Override
public Object submit(String giftId) {
@ -55,7 +66,7 @@ public class OmsPromotionGiftOptionsServiceImpl implements OmsPromotionGiftOptio
SysUser sysUser = sysUserService.getById(userId);
String templateCode = this.getTemplateCode();
String mainTableCode = "formmain_2206";
String mainTableCode = "formmain_xx";
PromotionGiftDTO promotionGiftDTO = validAndBuildDTO(giftId,sysUser);
@ -102,28 +113,67 @@ public class OmsPromotionGiftOptionsServiceImpl implements OmsPromotionGiftOptio
return null;
}
public PromotionGiftDTO validAndBuildDTO(String mainId, SysUser sysUser){
Map<String, Object> data = new HashMap<>();
// data.put("orgId", omsOrder.getId());
// data.put("targetId", omsOrder.getId());
// data.put("targetCode", omsOrder.getOrderSn());
// data.put("applyUserCode", sysUser.getCode());
// data.put("applyUserName", sysUser.getName());
// data.put("supplierName", supplier.getName());
// data.put("supplierCode", supplier.getCode());
// data.put("exsp1", templateCode);
// data.put("exsp2", bizBizNames);
// data.put("exsp3", saleBizNames);
// // title
// data.put("exsp4", "临期订单-"+omsOrder.getOrderSn());
// //添加跳转地址业务
// String baseJumpUrl = "https://shop.gdjsl.com/pcOrder/#/";
// data.put("cmsLink",baseJumpUrl);
// data.put("rowDate", DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME));
// data.put("rowState","00");
// data.put("ext1", omsOrder.getOaRateId());
public PromotionGiftDTO validAndBuildDTO(String mainId, SysUser user){
return null;
OmsPromotionGift gift = omsPromotionGiftService.getById(mainId);
QueryWrapper listByGiftIdQw = new QueryWrapper();
listByGiftIdQw.eq("gift_id",mainId);
List<OmsPromotionGiftGoods> goodsList = omsPromotionGiftGoodsMapper.selectList(listByGiftIdQw);
List<OmsPromotionGiftCenter> centerList = omsPromotionGiftCenterMapper.selectList(listByGiftIdQw);
List<OmsPromotionGiftSubject> subjectList = omsPromotionGiftSubjectMapper.selectList(listByGiftIdQw);
List<OmsPromotionGiftItem> itemList = omsPromotionGiftItemMapper.selectList(listByGiftIdQw);
List<OmsPromotionGiftScope> scopeList = omsPromotionGiftScopeMapper.selectList(listByGiftIdQw);
Assert.throwEx(CollUtil.isEmpty(itemList),"通案明细为空");
Assert.throwEx(CollUtil.isEmpty(scopeList),"通案区域为空");
Assert.throwEx(CollUtil.isEmpty(subjectList),"通案科目为空");
LocalDateTime now = LocalDateTime.now();
String nowString = DateUtils.format(now, DateFormatString.DATE_TIME);
String title = gift.getGiftTitle();
String cmsUrl = "https://shop.gdjsl.com/pcOrder/#/";
String saleRegion = "";
String bizRegion = "";
String supplierName = "";
String supplierCode = "";
Map<String, Object> data = new HashMap<>();
data.put("rowState","00");
data.put("rowDate", nowString);
data.put("applyTime", nowString);
data.put("applyUserId",user.getId());
data.put("applyUserCode",user.getCode());
data.put("applyUserName",user.getName());
data.put("supplierName",supplierName);
data.put("supplierCode",supplierCode);
data.put("title",gift.getGiftTitle());
data.put("orgId",gift.getId());
data.put("targetId",gift.getId());
data.put("targetCode",gift.getGiftCode());
data.put("cmsLink",cmsUrl);
data.put("biz_region",bizRegion);
data.put("sale_region",saleRegion);
//备用参数
// data.put("exsp1","exsp1");
// data.put("exsp2","exsp2");
// data.put("exsp3","exsp3");
// data.put("exsp4","exsp4");
// data.put("exsp5","exsp5");
// data.put("ext1","ext1");
// data.put("ext2","ext2");
// data.put("ext3","ext3");
// data.put("ext4","ext4");
return PromotionGiftDTO.builder()
.centerList(centerList)
.goodsList(goodsList)
.itemList(itemList)
.scopeList(scopeList)
.subjectList(subjectList)
.mainTableData(data)
.build();
}
@Override

80
cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftServiceImpl.java

@ -7,16 +7,23 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.consts.CommonValue;
import com.qs.serve.common.exception.Assert;
import com.qs.serve.common.utils.CopierUtil;
import com.qs.serve.framework.base.util.CollectionUtil;
import com.qs.serve.modules.bms.entity.BmsSubject;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.mapper.BmsSubjectMapper;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.goods.entity.dto.GoodsTargetInfo;
import com.qs.serve.modules.goods.entity.dto.TbsCenterDto;
import com.qs.serve.modules.goods.service.GoodsApplicationService;
import com.qs.serve.modules.oms.entity.*;
import com.qs.serve.modules.oms.entity.bo.*;
import com.qs.serve.modules.oms.entity.vo.OmsPromotionGiftItemVo;
import com.qs.serve.modules.oms.entity.vo.OmsPromotionGiftSubjectVo;
import com.qs.serve.modules.oms.entity.vo.OmsPromotionGiftVo;
import com.qs.serve.modules.oms.mapper.*;
import com.qs.serve.modules.oms.service.OmsPromotionGiftService;
import com.qs.serve.modules.sys.entity.SysAttach;
import com.qs.serve.modules.sys.service.SysAttachService;
import com.qs.serve.modules.tbs.service.TbsCenterDtoService;
import com.qs.serve.modules.tzc.entity.bo.TzcRebateGoodsParam;
import lombok.AllArgsConstructor;
@ -25,7 +32,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -41,6 +51,8 @@ public class OmsPromotionGiftServiceImpl extends ServiceImpl<OmsPromotionGiftMap
private BmsSubjectMapper bmsSubjectMapper;
private final TbsCenterDtoService tbsCenterDtoService;
private final GoodsApplicationService goodsApplicationService;
private SysAttachService attachService;
private final BmsSupplierService bmsSupplierService;
private OmsPromotionGiftCenterMapper omsPromotionGiftCenterMapper;
private OmsPromotionGiftSubjectMapper omsPromotionGiftSubjectMapper;
@ -48,9 +60,75 @@ public class OmsPromotionGiftServiceImpl extends ServiceImpl<OmsPromotionGiftMap
private OmsPromotionGiftItemMapper omsPromotionGiftItemMapper;
private OmsPromotionGiftGoodsMapper omsPromotionGiftGoodsMapper;
@Override
public List<OmsPromotionGiftItemVo> getItemList(String id) {
BmsSupplier supplier = bmsSupplierService.getById(id);
List<String> bizIds = supplier.listBizRegionIds();
List<String> saleIds = supplier.listSaleRegionIds();
List<OmsPromotionGiftItemVo> itemList = omsPromotionGiftItemMapper.listCustomerItems(id,saleIds,bizIds);
if (CollUtil.isEmpty(itemList)){
return new ArrayList<>();
}
QueryWrapper listByGiftIdQw = new QueryWrapper();
listByGiftIdQw.eq("gift_id",id);
List<OmsPromotionGiftGoods> goodsList = omsPromotionGiftGoodsMapper.selectList(listByGiftIdQw);
Map<Long,List<OmsPromotionGiftGoods>> goodsMap = goodsList.stream()
.collect(Collectors.groupingBy(OmsPromotionGiftGoods::getGiftItemId));
for (OmsPromotionGiftItemVo item : itemList) {
item.setGoodsList(goodsMap.get(item
.getId()));
}
return itemList;
}
@Override
public OmsPromotionGiftVo getDetailVo(String id) {
return null;
OmsPromotionGiftVo omsPromotionGiftVo = CopierUtil.copy(this.getById(id),new OmsPromotionGiftVo());
QueryWrapper listByGiftIdQw = new QueryWrapper();
listByGiftIdQw.eq("gift_id",id);
List<OmsPromotionGiftGoods> goodsList = omsPromotionGiftGoodsMapper.selectList(listByGiftIdQw);
List<OmsPromotionGiftCenter> centerList = omsPromotionGiftCenterMapper.selectList(listByGiftIdQw);
List<OmsPromotionGiftSubject> subjectList = omsPromotionGiftSubjectMapper.selectList(listByGiftIdQw);
List<OmsPromotionGiftItem> itemList = omsPromotionGiftItemMapper.selectList(listByGiftIdQw);
List<OmsPromotionGiftScope> scopeList = omsPromotionGiftScopeMapper.selectList(listByGiftIdQw);
Map<Long,List<OmsPromotionGiftGoods>> goodsMap = goodsList.stream()
.collect(Collectors.groupingBy(OmsPromotionGiftGoods::getGiftItemId));
Map<Long,List<OmsPromotionGiftCenter>> centerMap = centerList.stream()
.collect(Collectors.groupingBy(OmsPromotionGiftCenter::getGiftSubjectId));
List<OmsPromotionGiftSubjectVo> subjectVoList = new ArrayList<>();
for (OmsPromotionGiftSubject subject : subjectList) {
OmsPromotionGiftSubjectVo subjectVo = CopierUtil.copy(subject,new OmsPromotionGiftSubjectVo());
subjectVo.setCenterList(centerMap.get(subject.getId()));
subjectVoList.add(subjectVo);
}
omsPromotionGiftVo.setSubjectList(subjectVoList);
omsPromotionGiftVo.setScopeList(scopeList);
List<OmsPromotionGiftItemVo> itemVos = new ArrayList<>();
for (OmsPromotionGiftItem giftItem : itemList) {
OmsPromotionGiftItemVo itemVo = CopierUtil.copy(giftItem,new OmsPromotionGiftItemVo());
itemVo.setGoodsList(goodsMap.get(giftItem.getId()));
itemVos.add(itemVo);
}
omsPromotionGiftVo.setItemList(itemVos);
if(CollectionUtil.isNotEmpty(omsPromotionGiftVo.getAttachIds())){
List<String> attachIds = Arrays.asList(omsPromotionGiftVo.getAttachIds());
List<SysAttach> attachList = attachService.listByIds(attachIds);
omsPromotionGiftVo.setAttachList(attachList);
}
return omsPromotionGiftVo;
}
@Override

23
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java

@ -8,6 +8,8 @@ import com.qs.serve.modules.tbs.entity.dto.TbsBudgetLogWithAmount;
import com.qs.serve.modules.tbs.entity.dto.TbsScheduleItemBudgetAmount;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.time.LocalDate;
import java.util.List;
import java.math.BigDecimal;
@ -212,6 +214,27 @@ public interface TbsScheduleItemBudgetMapper extends BaseMapper<TbsScheduleItemB
@Param("centerType") String centerType,
@Param("centerId") String centerId);
@InterceptorIgnore(tenantLine = "true")
@Select("SELECT tbs_budget.budget_code as budgetName, " +
"tbs_budget.budget_number as budgetCode, " +
"tbs_schedule_item_budget.* " +
"FROM `tbs_schedule_item_budget` " +
"LEFT JOIN tbs_budget ON tbs_schedule_item_budget.budget_id = tbs_budget.id " +
"WHERE tbs_budget.del_flag = 0 " +
"and tbs_schedule_item_budget.del_flag = 0 " +
"and tbs_schedule_item_budget.start_date <= #{startDate} " +
"and tbs_schedule_item_budget.end_date >= #{endDate} " +
"and tbs_budget.budget_state = 1 " +
"and (tbs_budget.subject_id = 0 or tbs_budget.subject_id = #{subjectId}) " +
"and tbs_budget.center_id = #{centerId} " +
"and tbs_budget.center_type = #{centerType} ")
List<TbsScheduleItemBudget> listBySubjectAndCenterWithDate(@Param("subjectId") String subjectId,
@Param("centerType") String centerType,
@Param("startDate") LocalDate startDate,
@Param("endDate") LocalDate endDate,
@Param("centerId") String centerId);
@InterceptorIgnore(tenantLine = "true")
@Select("SELECT " +
" tbs_budget.budget_code as budgetName, " +

4
cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java

@ -513,8 +513,8 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
center.setMatchBudgetList(list);
}else {
//可选的所有预算
List<TbsScheduleItemBudget> list =
tbsScheduleItemBudgetMapper.listBySubjectAndCenter(subjectId,centerType,centerId);
List<TbsScheduleItemBudget> list = tbsScheduleItemBudgetMapper.listBySubjectAndCenterWithDate
(subjectId,centerType,activity.getActStartDate(),activity.getActEndDate(),centerId);
center.setMatchBudgetList(list);
}
}

8
cms-modules/cms-system/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java

@ -587,6 +587,13 @@ public class PortalOfCostApplication {
//发票号
String billNumber = createBo.getBillNumber();
String disNumber = createBo.getErpCode();
String costCode = createBo.getCostCode();
LambdaQueryWrapper<TbsCostApply> lqw11 = new LambdaQueryWrapper<>();
lqw11.eq(TbsCostApply::getCode,costCode);
long countCodeCost = costApplyService.count(lqw11);
if(countCodeCost>0){Assert.throwEx("费用申请编码重复,请再试");}
//拦截是否已保存
if(StringUtils.hasText(billNumber)){
LambdaQueryWrapper<PayPayment> payLqw = new LambdaQueryWrapper<>();
@ -624,7 +631,6 @@ public class PortalOfCostApplication {
if(invCodeList.size()<1){
Assert.throwEx("请选择存货提交");
}
String costCode = createBo.getCostCode();
String costTheme = createBo.getCostTheme();
List<GoodsSku> skuList = this.initSkuListOfProcess(invCodeList,!costCode.contains("YX06"));
//排除重复的sku

35
cms-modules/cms-system/src/main/resources/mapper/oms/OmsPromotionGiftItemMapper.xml

@ -12,6 +12,7 @@
<result property="minPurchaseQty" column="min_purchase_qty"/>
<result property="meetQty" column="meet_qty"/>
<result property="giftQty" column="gift_qty"/>
<result property="goodsFlag" column="goods_flag"/>
</resultMap>
<sql id="omsPromotionGiftItemSql">
@ -23,7 +24,39 @@
oms_promotion_gift_item.`goods_name`,
oms_promotion_gift_item.`min_purchase_qty`,
oms_promotion_gift_item.`meet_qty`,
oms_promotion_gift_item.`gift_qty` </sql>
oms_promotion_gift_item.`gift_qty`,
oms_promotion_gift_item.`goods_flag` </sql>
<select id="listCustomerItems" resultType="com.qs.serve.modules.oms.entity.vo.OmsPromotionGiftItemVo">
select t1.*
from oms_promotion_gift_item t1
left join oms_promotion_gift t2
on t1.gift_id = t2.id
where t1. del_flag = 0
and t2.del_flag = 0
and t2.gift_status = 2
and t2.effect_start_date &lt;= now()
and t2.effect_end_date &gt;= now()
and t2.id in (
select gift_id
from oms_promotion_gift_scope
where
( region_type = 'customer' and region_id = #{customerId} )
or
( region_type = 'saleRegion' and region_id in
<foreach collection="saleRegionIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
)
or
( region_type = 'bizRegion' and region_id in
<foreach collection="bizRegionIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
)
and del_flag = 0
)
</select>
</mapper>

Loading…
Cancel
Save