Browse Source

feat: 客户和商品添加线上线下

v1.0
Yen 1 year ago
parent
commit
d9c38d6f0d
  1. 5
      src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java
  2. 8
      src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java
  3. 7
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java
  4. 8
      src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java
  5. 6
      src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java
  6. 5
      src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSkuBo.java
  7. 1
      src/main/java/com/qs/serve/modules/goods/entity/dto/StandInventory.java
  8. 5
      src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuMapper.java
  9. 1
      src/main/java/com/qs/serve/modules/goods/service/GoodsApplicationService.java
  10. 3
      src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java
  11. 2
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java
  12. 14
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java
  13. 28
      src/main/java/com/qs/serve/modules/his/entity/HisUserSupplierTemp.java
  14. 2
      src/main/java/com/qs/serve/modules/sys/entity/dto/CostDeletion.java
  15. 19
      src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java
  16. 6
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  17. 26
      src/main/java/com/qs/serve/modules/third/entity/ThirtyVerification.java
  18. 10
      src/main/resources/mapper/goods/GoodsSkuMapper.xml
  19. 2
      src/main/resources/mapper/goods/GoodsSpuMapper.xml

5
src/main/java/com/qs/serve/modules/bir/service/impl/BirRoiRateServiceImpl.java

@ -578,6 +578,11 @@ public class BirRoiRateServiceImpl extends ServiceImpl<BirRoiRateMapper,BirRoiRa
public List<String> getBiRoiCostDTOAndFindSupplierCodes(BirRoiCostDTO costDTO, String supplierId, Integer loadType, String userId){
BmsSupplier bmsSupplier = bmsSupplierMapper.selectById(supplierId);
List<String> supplierCodeList = new ArrayList<>();
//有空指针
// if(bmsSupplier==null){
// supplierCodeList.add("-999");
// return supplierCodeList;
// }
LambdaQueryWrapper<BmsSupplier> lqw = new LambdaQueryWrapper<>();
lqw.select(BmsSupplier::getId,BmsSupplier::getCode);

8
src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java

@ -196,6 +196,12 @@ public class BmsSupplier implements Serializable {
/** 可投放费用标识 */
private Integer costFlag;
/** 在线下单 */
private Integer orderOnlineFlag;
/** 线下下单 */
private Integer orderOfflineFlag;
/** 当前用户ID */
@TableField(exist = false)
private String currUserId;
@ -430,6 +436,8 @@ public class BmsSupplier implements Serializable {
userSupplier.setStopFlagDate(this.stopFlagDate);
userSupplier.setCooperatePauseFlag(this.cooperatePauseFlag);
userSupplier.setCooperatePauseFlagDate(this.getCooperatePauseFlagDate());
userSupplier.setOrderOfflineFlag(this.orderOfflineFlag);
userSupplier.setOrderOnlineFlag(this.orderOnlineFlag);
return userSupplier;
}

7
src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java

@ -136,6 +136,7 @@ public class GoodsSkuController {
return R.error();
}
goodsSkuService.editSku2(param);
goodsSpuService.updateOnlineOfflineFlat(param.getSpuId());
return R.ok();
}
@ -166,6 +167,7 @@ public class GoodsSkuController {
@PreAuthorize("hasRole('goods:sku:update')")
public R<?> save(@RequestBody @Valid GoodsSkuBo param){
goodsSkuService.editSku2(param);
goodsSpuService.updateOnlineOfflineFlat(param.getSpuId());
return R.ok();
}
@ -178,6 +180,7 @@ public class GoodsSkuController {
@SysLog(module = SystemModule.GOODS, title = "sku", biz = BizType.DELETE)
@PreAuthorize("hasRole('goods:sku:delete')")
public R<?> deleteById(@PathVariable("id") Long id){
GoodsSku sku = goodsSkuService.getById(id);
QueryWrapper lqw1 = new QueryWrapper<>();
lqw1.eq("target_type", TbsGoodsType.sku.name());
lqw1.eq("target_id",id);
@ -198,6 +201,7 @@ public class GoodsSkuController {
LambdaQueryWrapper<GoodsSkuSpecValue> lqw2 = new LambdaQueryWrapper<>();
lqw2.eq(GoodsSkuSpecValue::getSkuId,id);
goodsSkuSpecValueService.remove(lqw2);
goodsSpuService.updateOnlineOfflineFlat(sku.getSpuId());
return R.ok();
}
@ -314,6 +318,9 @@ public class GoodsSkuController {
goodsSkuService.save(addSku);
}
}
for (GoodsSpu spu : spuList) {
goodsSpuService.updateOnlineOfflineFlat(spu.getId());
}
return R.ok(param.getSkuList());
}

8
src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java

@ -39,6 +39,8 @@ public class GoodsSku implements Serializable {
private String skuName;
private String skuAddCode;
/** 商品Id */
@NotNull(message = "商品Id不能为空")
private Long spuId;
@ -82,6 +84,12 @@ public class GoodsSku implements Serializable {
private Integer specialFlag;
/** 在线下单 */
private Integer orderOnlineFlag;
/** 线下下单 */
private Integer orderOfflineFlag;
/** 单位id */
private Long unitId;

6
src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java

@ -111,6 +111,12 @@ public class GoodsSpu implements Serializable {
private String belong;
/** 在线下单 */
private Integer orderOnlineFlag;
/** 线下下单 */
private Integer orderOfflineFlag;
/** 特殊SKUID */
private Long specialSkuId;

5
src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSkuBo.java

@ -91,6 +91,11 @@ public class GoodsSkuBo implements Serializable {
private Integer specialFlag;
/** 在线下单 */
private Integer orderOnlineFlag;
/** 线下下单 */
private Integer orderOfflineFlag;
}

1
src/main/java/com/qs/serve/modules/goods/entity/dto/StandInventory.java

@ -14,6 +14,7 @@ public class StandInventory {
private String invName;
private String invSku;
private String invSkuCode;
private String invAddCode;
private String invSeries;
private String invCategory;
private String invBrand;

5
src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuMapper.java

@ -17,6 +17,11 @@ import java.util.List;
*/
public interface GoodsSkuMapper extends BaseMapper<GoodsSku> {
@Select("select count(1) from goods_sku where del_flag = 0 and order_online_flag = 1 and spu_id = #{spuId} ")
long countSkuByOrderOnlineFla(@Param("spuId") Long spuId);
@Select("select count(1) from goods_sku where del_flag = 0 and order_offline_flag = 1 and spu_id = #{spuId} ")
long countSkuByOrderOfflineFla(@Param("spuId") Long spuId);
@Update("update goods_sku set del_flag = 1 , sku_code = concat(sku_code,'_del',#{str}) where id = #{skuId}")
void updateSkuCodeAndDelFlag(@Param("skuId") Long id,@Param("str") String str);

1
src/main/java/com/qs/serve/modules/goods/service/GoodsApplicationService.java

@ -148,6 +148,7 @@ public class GoodsApplicationService {
GoodsSku sku = new GoodsSku();
sku.setId(skuId);
sku.setSkuCode(inventory.getInvCode());
sku.setSkuAddCode(inventory.getInvAddCode());
sku.setSkuName(inventory.getInvName());
sku.setSpuId(spuId);
sku.setSpecInfos(inventory.getInvPlace()+";"+inventory.getInvTaste()+";"+inventory.getChestCasing());

3
src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java

@ -57,6 +57,9 @@ public interface GoodsSpuService extends IService<GoodsSpu> {
*/
void updateSkuNumByLastChange();
/** 根据sku的状态更新spu状态 */
void updateOnlineOfflineFlat(Long spuId);
void initSkuNum();
boolean updateSkuNumString(List<Long> spuIds);

2
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuServiceImpl.java

@ -273,6 +273,8 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper,GoodsSku> im
Assert.throwEx("相同规格已存在");
}
goodsSku.setSpecInfos(specInfos);
goodsSku.setOrderOfflineFlag(goodSkuVo.getOrderOfflineFlag());
goodsSku.setOrderOnlineFlag(goodSkuVo.getOrderOnlineFlag());
this.saveOrUpdate(goodsSku);
//更新特殊标识

14
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java

@ -14,6 +14,7 @@ import com.qs.serve.modules.goods.entity.bo.GoodsSpuEditBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuTasteBo;
import com.qs.serve.modules.goods.entity.dto.GoodSpuSkuNum;
import com.qs.serve.modules.goods.entity.vo.*;
import com.qs.serve.modules.goods.mapper.GoodsSkuMapper;
import com.qs.serve.modules.goods.service.*;
import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey;
import lombok.AllArgsConstructor;
@ -291,6 +292,19 @@ public class GoodsSpuServiceImpl extends ServiceImpl<GoodsSpuMapper,GoodsSpu> im
this.updateSkuNumString(spuIds);
}
@Override
public void updateOnlineOfflineFlat(Long spuId) {
if(spuId==null){
return;
}
GoodsSkuMapper skuMapper = (GoodsSkuMapper) goodsSkuService.getBaseMapper();
GoodsSpu spu = new GoodsSpu();
spu.setId(spuId);
spu.setOrderOnlineFlag(skuMapper.countSkuByOrderOnlineFla(spuId)>0?1:0);
spu.setOrderOfflineFlag(skuMapper.countSkuByOrderOfflineFla(spuId)>0?1:0);
this.updateById(spu);
}
@Override
public void initSkuNum() {
AuthContextUtils.setTenant("001");

28
src/main/java/com/qs/serve/modules/his/entity/HisUserSupplierTemp.java

@ -124,29 +124,11 @@ public class HisUserSupplierTemp implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime cooperatePauseFlagDate;
public static HisUserSupplierTemp toNewObject(HisUserSupplierTemp source){
HisUserSupplierTemp userSupplierTemp = new HisUserSupplierTemp();
userSupplierTemp.setId(source.getId());
userSupplierTemp.setUserId(source.getUserId());
userSupplierTemp.setSupplierId(source.getSupplierId());
userSupplierTemp.setSupplierName(source.getSupplierName());
userSupplierTemp.setSupplierCode(source.getSupplierCode());
userSupplierTemp.setType(source.getType());
userSupplierTemp.setRegionId(source.getRegionId());
userSupplierTemp.setSaleRegionFirst(source.getSaleRegionFirst());
userSupplierTemp.setSaleRegionSecond(source.getSaleRegionSecond());
userSupplierTemp.setSaleRegionThird(source.getSaleRegionThird());
userSupplierTemp.setSaleRegionFourthly(source.getSaleRegionFourthly());
userSupplierTemp.setMasterFlag(source.getMasterFlag());
userSupplierTemp.setCreateTime(source.getCreateTime());
userSupplierTemp.setBizRegionFirst(source.getBizRegionFirst());
userSupplierTemp.setBizRegionSecond(source.getBizRegionSecond());
userSupplierTemp.setBizRegionThird(source.getBizRegionThird());
userSupplierTemp.setBizRegionFourthly(source.getBizRegionFourthly());
userSupplierTemp.setTenantId(source.getTenantId());
userSupplierTemp.setCostFlag(source.getCostFlag());
return userSupplierTemp;
}
/** 在线下单 */
private Integer orderOnlineFlag;
/** 线下下单 */
private Integer orderOfflineFlag;
}

2
src/main/java/com/qs/serve/modules/sys/entity/dto/CostDeletion.java

@ -10,6 +10,8 @@ public class CostDeletion {
*/
private String empNo;
private String cacc;
/**
* 操作时间
*/

19
src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java

@ -6,12 +6,15 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.HttpUtil;
import com.qs.serve.common.util.IdUtil;
import com.qs.serve.common.util.JsonUtil;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.sys.entity.dto.CostDeletion;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.TbsCostTodo;
import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper;
import com.qs.serve.modules.tbs.mapper.TbsCostApplyRemoveMapper;
import com.qs.serve.modules.tbs.mapper.TbsCostTodoMapper;
import com.qs.serve.modules.third.entity.ThirtyVerification;
import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.mapper.VtbVerificationMapper;
import com.qs.serve.modules.vtb.service.VtbVerificationService;
@ -39,11 +42,13 @@ public class SysDeleteLogServiceImpl extends ServiceImpl<SysDeleteLogMapper,SysD
private final TbsCostApplyMapper tbsCostApplyMapper;
private final VtbVerificationMapper verificationMapper;
private final TbsCostTodoMapper tbsCostTodoMapper;
private final BmsSupplierMapper supplierMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteCostApply(Long costApplyId,String remark) {
TbsCostApply costApply = tbsCostApplyMapper.selectById(costApplyId);
BmsSupplier supplier = supplierMapper.selectById(costApply.getSupplierId());
String batchCode = System.currentTimeMillis()+"";
List<SysDeleteLog> deleteLogList = new ArrayList<>();
if(costApply!=null){
@ -116,13 +121,13 @@ public class SysDeleteLogServiceImpl extends ServiceImpl<SysDeleteLogMapper,SysD
this.saveBatch(deleteLogList);
//远程删除ERP
if(costApply!=null){
String url = "http://59.37.164.96:9002/action/cms/cost/deletion";
CostDeletion costDeletion = new CostDeletion();
costDeletion.setEmpNo(costApply.getUserCode());
costDeletion.setVerificationCode(costApply.getCode());
HttpUtil.doPost(url, JsonUtil.objectToJson(costDeletion),null);
}
String url = "http://59.37.164.96:2505/api/cms/cost/deletion";
CostDeletion costDeletion = new CostDeletion();
costDeletion.setEmpNo(costApply.getUserCode());
String bookCode = ThirtyVerification.getInitBookCode(supplier.getBookCode(),supplier.getCode());
costDeletion.setCacc(bookCode);
costDeletion.setVerificationCode(costApply.getCode());
HttpUtil.doPost(url, JsonUtil.objectToJson(costDeletion),null);
}

6
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

@ -319,6 +319,12 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
actLqw.eq(TbsActivity::getCostApplyId,id);
List<TbsActivity> activityList = tbsActivityMapper.selectList(actLqw);
BmsSupplier supplier = bmsSupplierService.getById(tbsCostApply.getSupplierId());
if(supplier==null){
supplier = bmsSupplierService.getByNameOrCode(tbsCostApply.getSupplierCode());
}
if(supplier==null){
return null;
}
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
List<TbsActivityPayCondition> payConditions = null;
if(tbsCostApply.getContractFlag()!=null&&tbsCostApply.getContractFlag().equals(1)){

26
src/main/java/com/qs/serve/modules/third/entity/ThirtyVerification.java

@ -168,4 +168,30 @@ public class ThirtyVerification {
}
}
/**
* 接口的账套转换逻辑
* @param bookCode
* @param cusCode
*/
public static String getInitBookCode(String bookCode,String cusCode){
if(bookCode!=null){
//SL也扔给锦泰
if (bookCode.equals("020")){
return "019";
}else {
return bookCode;
}
}else {
if(cusCode.contains("JF")){
return "006";
}else if(cusCode.contains("KL")){
return "002";
}else if(cusCode.contains("SL")||cusCode.contains("JT")){
return "019";
}else {
return "001";
}
}
}
}

10
src/main/resources/mapper/goods/GoodsSkuMapper.xml

@ -24,6 +24,8 @@
<result property="remark" column="remark"/>
<result property="updateTime" column="update_time"/>
<result property="createTime" column="create_time"/>
<result property="orderOfflineFlag" column="order_offline_flag"/>
<result property="orderOnlineFlag" column="order_online_flag"/>
<result property="tenantId" column="tenant_id"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
@ -37,6 +39,7 @@
<sql id="goodsSkuSql">
goods_sku.`id`,
goods_sku.`sku_code`,
goods_sku.`sku_add_code`,
goods_sku.`sku_name`,
goods_sku.`spu_id`,
goods_sku.`pic_url`,
@ -49,6 +52,8 @@
goods_sku.`unit_name`,
goods_sku.`weight`,
goods_sku.`volume`,
`goods_sku`.`order_online_flag`,
`goods_sku`.`order_offline_flag`,
goods_sku.`wrap_val`,
goods_sku.`taste_val`,
goods_sku.`min_purchase`,
@ -77,6 +82,8 @@
<if test="query.salesPrice != null"> and `goods_sku`.`sales_price` = #{query.salesPrice}</if>
<if test="query.marketPrice != null"> and `goods_sku`.`market_price` = #{query.marketPrice}</if>
<if test="query.costPrice != null"> and `goods_sku`.`cost_price` = #{query.costPrice}</if>
<if test="query.orderOnlineFlag != null"> and `goods_sku`.`order_online_flag` = #{query.orderOnlineFlag}</if>
<if test="query.orderOfflineFlag != null"> and `goods_sku`.`order_offline_flag` = #{query.orderOfflineFlag}</if>
<if test="query.belong != null"> and `goods_sku`.`belong` = #{query.belong}</if>
<if test="query.specInfos != null and query.specInfos != ''"> and `goods_sku`.`spec_infos` = #{query.specInfos}</if>
<if test="query.stock != null"> and `goods_sku`.`stock` = #{query.stock}</if>
@ -121,11 +128,14 @@
and `goods_spu`.`del_flag` = 0
<if test="query.id != null"> and `goods_sku`.`id` = #{query.id}</if>
<if test="query.skuCode != null and query.skuCode != ''"> and `goods_sku`.`sku_code` like concat('%',#{query.skuCode},'%') </if>
<if test="query.skuAddCode != null and query.skuAddCode != ''"> and `goods_sku`.`sku_add_code` like concat('%',#{query.skuAddCode},'%') </if>
<if test="query.spuCode != null and query.spuCode != ''"> and `goods_spu`.`spu_code` like concat('%',#{query.spuCode},'%') </if>
<if test="query.skuName != null and query.skuName != ''"> and `goods_sku`.`sku_name` like concat('%',#{query.skuName},'%') </if>
<if test="query.spuId != null"> and `goods_sku`.`spu_id` = #{query.spuId}</if>
<if test="query.salesPrice != null"> and `goods_sku`.`sales_price` = #{query.salesPrice}</if>
<if test="query.marketPrice != null"> and `goods_sku`.`market_price` = #{query.marketPrice}</if>
<if test="query.orderOnlineFlag != null"> and `goods_sku`.`order_online_flag` = #{query.orderOnlineFlag}</if>
<if test="query.orderOfflineFlag != null"> and `goods_sku`.`order_offline_flag` = #{query.orderOfflineFlag}</if>
<if test="query.costPrice != null"> and `goods_sku`.`cost_price` = #{query.costPrice}</if>
<if test="query.specInfos != null and query.specInfos != ''"> and `goods_sku`.`spec_infos` like concat('%',#{query.specInfos},'%') </if>
<if test="query.stock != null"> and `goods_sku`.`stock` = #{query.stock}</if>

2
src/main/resources/mapper/goods/GoodsSpuMapper.xml

@ -102,6 +102,8 @@
<if test="query.categoryLast != null"> and `goods_spu`.`category_last` = #{query.categoryLast}</if>
<if test="query.shelf != null"> and `goods_spu`.`shelf` = #{query.shelf}</if>
<if test="query.costFlag != null"> and `goods_spu`.`cost_flag` = #{query.costFlag}</if>
<if test="query.orderOnlineFlag != null"> and `goods_spu`.`order_online_flag` = #{query.orderOnlineFlag}</if>
<if test="query.orderOfflineFlag != null"> and `goods_spu`.`order_offline_flag` = #{query.orderOfflineFlag}</if>
<if test="query.orderFlag != null"> and `goods_spu`.`order_flag` = #{query.orderFlag}</if>
<if test="query.sort != null"> and `goods_spu`.`sort` = #{query.sort}</if>
<if test="query.saleNum != null"> and `goods_spu`.`sale_num` = #{query.saleNum}</if>

Loading…
Cancel
Save