diff --git a/cms-common/src/main/java/com/qs/serve/common/exception/UnifiedExceptionHandler.java b/cms-common/src/main/java/com/qs/serve/common/exception/UnifiedExceptionHandler.java index 2332ee0..a9aa06b 100644 --- a/cms-common/src/main/java/com/qs/serve/common/exception/UnifiedExceptionHandler.java +++ b/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(); } diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftCenterBo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftCenterBo.java index 0e05669..8d4da37 100644 --- a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftCenterBo.java +++ b/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; diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftGoodsBo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftGoodsBo.java index a98becd..b1cb51c 100644 --- a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftGoodsBo.java +++ b/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; diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftScopeBo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftScopeBo.java index b1a297c..ff5e38e 100644 --- a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsPromotionGiftScopeBo.java +++ b/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 */ diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/dto/PromotionGiftDTO.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/dto/PromotionGiftDTO.java index 445c857..9d051bf 100644 --- a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/dto/PromotionGiftDTO.java +++ b/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 mainTableData; + List goodsList; + List centerList; + List subjectList; + List itemList; + List scopeList; + } diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftItemVo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftItemVo.java new file mode 100644 index 0000000..e4459ab --- /dev/null +++ b/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 goodsList; + +} diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftSubjectVo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftSubjectVo.java new file mode 100644 index 0000000..5d61874 --- /dev/null +++ b/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 centerList; + +} + diff --git a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftVo.java b/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftVo.java index 31709da..ab269c4 100644 --- a/cms-modules/cms-order/cms-order-api/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsPromotionGiftVo.java +++ b/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 itemList; + private List subjectList; + + private List scopeList; + + /** 附件列表 */ + private List attachList; } diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/OmsPromotionGiftController.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/OmsPromotionGiftController.java index 1c1a088..7eac6b4 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/controller/OmsPromotionGiftController.java +++ b/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 getById(@PathVariable("id") String id){ - OmsPromotionGift omsPromotionGift = omsPromotionGiftService.getById(id); + public R getById(@PathVariable("id") String id){ + OmsPromotionGiftVo omsPromotionGift = omsPromotionGiftService.getDetailVo(id); return R.ok(omsPromotionGift); } diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftItemMapper.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftItemMapper.java index 8551f0b..9e2eef2 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/mapper/OmsPromotionGiftItemMapper.java +++ b/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 { + List listCustomerItems(@Param("customerId") String customerId, + @Param("saleRegionIds") List saleRegionIds, + @Param("bizRegionIds") List bizRegionIds); + } diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/OmsPromotionGiftService.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/OmsPromotionGiftService.java index 585bf24..89adb1b 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/OmsPromotionGiftService.java +++ b/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 { + List getItemList(String id); + OmsPromotionGiftVo getDetailVo(String id); /** diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftOptionsServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftOptionsServiceImpl.java index e84098b..f8330c8 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftOptionsServiceImpl.java +++ b/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 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 goodsList = omsPromotionGiftGoodsMapper.selectList(listByGiftIdQw); + List centerList = omsPromotionGiftCenterMapper.selectList(listByGiftIdQw); + List subjectList = omsPromotionGiftSubjectMapper.selectList(listByGiftIdQw); + List itemList = omsPromotionGiftItemMapper.selectList(listByGiftIdQw); + List 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 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 diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftServiceImpl.java index f3f13b9..ff09550 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/oms/service/impl/OmsPromotionGiftServiceImpl.java +++ b/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 getItemList(String id) { + BmsSupplier supplier = bmsSupplierService.getById(id); + List bizIds = supplier.listBizRegionIds(); + List saleIds = supplier.listSaleRegionIds(); + + List itemList = omsPromotionGiftItemMapper.listCustomerItems(id,saleIds,bizIds); + + if (CollUtil.isEmpty(itemList)){ + return new ArrayList<>(); + } + + QueryWrapper listByGiftIdQw = new QueryWrapper(); + listByGiftIdQw.eq("gift_id",id); + List goodsList = omsPromotionGiftGoodsMapper.selectList(listByGiftIdQw); + Map> 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 goodsList = omsPromotionGiftGoodsMapper.selectList(listByGiftIdQw); + List centerList = omsPromotionGiftCenterMapper.selectList(listByGiftIdQw); + List subjectList = omsPromotionGiftSubjectMapper.selectList(listByGiftIdQw); + List itemList = omsPromotionGiftItemMapper.selectList(listByGiftIdQw); + List scopeList = omsPromotionGiftScopeMapper.selectList(listByGiftIdQw); + + Map> goodsMap = goodsList.stream() + .collect(Collectors.groupingBy(OmsPromotionGiftGoods::getGiftItemId)); + + Map> centerMap = centerList.stream() + .collect(Collectors.groupingBy(OmsPromotionGiftCenter::getGiftSubjectId)); + + List 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 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 attachIds = Arrays.asList(omsPromotionGiftVo.getAttachIds()); + List attachList = attachService.listByIds(attachIds); + omsPromotionGiftVo.setAttachList(attachList); + } + + return omsPromotionGiftVo; } @Override diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java index 6ead8ca..01c3de7 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java +++ b/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= #{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 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, " + diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java index ef2a05c..90e883d 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java +++ b/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 list = - tbsScheduleItemBudgetMapper.listBySubjectAndCenter(subjectId,centerType,centerId); + List list = tbsScheduleItemBudgetMapper.listBySubjectAndCenterWithDate + (subjectId,centerType,activity.getActStartDate(),activity.getActEndDate(),centerId); center.setMatchBudgetList(list); } } diff --git a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java b/cms-modules/cms-system/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java index 6cf7758..9e70844 100644 --- a/cms-modules/cms-system/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java +++ b/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 lqw11 = new LambdaQueryWrapper<>(); + lqw11.eq(TbsCostApply::getCode,costCode); + long countCodeCost = costApplyService.count(lqw11); + if(countCodeCost>0){Assert.throwEx("费用申请编码重复,请再试");} + //拦截是否已保存 if(StringUtils.hasText(billNumber)){ LambdaQueryWrapper 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 skuList = this.initSkuListOfProcess(invCodeList,!costCode.contains("YX06")); //排除重复的sku diff --git a/cms-modules/cms-system/src/main/resources/mapper/oms/OmsPromotionGiftItemMapper.xml b/cms-modules/cms-system/src/main/resources/mapper/oms/OmsPromotionGiftItemMapper.xml index fd1f45e..d7f408f 100644 --- a/cms-modules/cms-system/src/main/resources/mapper/oms/OmsPromotionGiftItemMapper.xml +++ b/cms-modules/cms-system/src/main/resources/mapper/oms/OmsPromotionGiftItemMapper.xml @@ -12,6 +12,7 @@ + @@ -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` + oms_promotion_gift_item.`gift_qty`, + oms_promotion_gift_item.`goods_flag` + +