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

1、修改成本数据

上级 6b140908
...@@ -2,6 +2,7 @@ package com.sfa.job.controller.finance; ...@@ -2,6 +2,7 @@ package com.sfa.job.controller.finance;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.sfa.common.core.web.controller.BaseController; import com.sfa.common.core.web.controller.BaseController;
import com.sfa.job.pojo.response.FinanceOrderDetailUpdateDto;
import com.sfa.job.pojo.response.SyncOrderDetailDto; import com.sfa.job.pojo.response.SyncOrderDetailDto;
import com.sfa.job.service.order.FinanceOrderSyncService; import com.sfa.job.service.order.FinanceOrderSyncService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -30,19 +31,17 @@ public class FinanceOrderDetailSyncController extends BaseController { ...@@ -30,19 +31,17 @@ public class FinanceOrderDetailSyncController extends BaseController {
// 可以传参开始时间和结束时间,用于补充特定时间的数据采集 // 可以传参开始时间和结束时间,用于补充特定时间的数据采集
SyncOrderDetailDto detailDto = syncService.syncWdtOrder(startTime, endTime, 1); SyncOrderDetailDto detailDto = syncService.syncWdtOrder(startTime, endTime, 1);
log.info("接口结束同步-旺店通订单明细api接口数据, 共同步订单{}条数据,订单明细{}条,订单批次号:{},订单的开始时间{}和结束时间{}", log.info("接口结束同步-旺店通订单明细api接口数据, 共同步订单{}条数据,订单明细{}条,订单批次号:{},订单的开始时间{}和结束时间{}",
detailDto.getOrderCount(),detailDto.getOrderDetailCount(),detailDto.getBatchNo(), detailDto.getOrderCount(), detailDto.getOrderDetailCount(), detailDto.getBatchNo(),
DateUtil.formatDateTime(detailDto.getStartTime()),DateUtil.formatDateTime(detailDto.getEndTime()) ); DateUtil.formatDateTime(detailDto.getStartTime()), DateUtil.formatDateTime(detailDto.getEndTime()));
return detailDto; return detailDto;
} }
@GetMapping("/updateZbjType") @GetMapping("/updateCost")
public SyncOrderDetailDto updateZbjType(Date startTime, Date endTime) { public FinanceOrderDetailUpdateDto updateCost(Date startTime, Date endTime) {
log.info("接口开始同步-旺店通订单明细api接口数据"); log.info("修改旺店通订单明细数据开始");
// 可以传参开始时间和结束时间,用于补充特定时间的数据采集 // 可以传参开始时间和结束时间,用于补充特定时间的数据采集
SyncOrderDetailDto detailDto = syncService.updateZbjType(startTime, endTime); FinanceOrderDetailUpdateDto detailDto = syncService.updateCost(startTime, endTime);
log.info("接口结束同步-旺店通订单明细api接口数据, 共同步订单{}条数据,订单明细{}条,订单批次号:{},订单的开始时间{}和结束时间{}", log.info("修改旺店通订单明细结束-旺店通订单明细api接口数据, 共修改订单数{}条数据", detailDto.getTotalCount());
detailDto.getOrderCount(),detailDto.getOrderDetailCount(),detailDto.getBatchNo(),
DateUtil.formatDateTime(detailDto.getStartTime()),DateUtil.formatDateTime(detailDto.getEndTime()) );
return detailDto; return detailDto;
} }
...@@ -52,8 +51,8 @@ public class FinanceOrderDetailSyncController extends BaseController { ...@@ -52,8 +51,8 @@ public class FinanceOrderDetailSyncController extends BaseController {
// 可以传参开始时间和结束时间,用于补充特定时间的数据采集 // 可以传参开始时间和结束时间,用于补充特定时间的数据采集
SyncOrderDetailDto detailDto = syncService.syncWdtRefundOrder(startTime, endTime, 1); SyncOrderDetailDto detailDto = syncService.syncWdtRefundOrder(startTime, endTime, 1);
log.info("结束接口同步-旺店通退换订单明细api接口数据, 共同步退换货订单{}条数据,退换货订单明细{}条,退换货同步批次号:{},订单的开始时间{}和结束时间{},数量:{}", log.info("结束接口同步-旺店通退换订单明细api接口数据, 共同步退换货订单{}条数据,退换货订单明细{}条,退换货同步批次号:{},订单的开始时间{}和结束时间{},数量:{}",
detailDto.getOrderCount(),detailDto.getOrderDetailCount(),detailDto.getBatchNo(), detailDto.getOrderCount(), detailDto.getOrderDetailCount(), detailDto.getBatchNo(),
DateUtil.formatDateTime(detailDto.getStartTime()),DateUtil.formatDateTime(detailDto.getEndTime()),detailDto.getRemark() ); DateUtil.formatDateTime(detailDto.getStartTime()), DateUtil.formatDateTime(detailDto.getEndTime()), detailDto.getRemark());
return detailDto; return detailDto;
} }
......
package com.sfa.job.domain.order.dao; package com.sfa.job.domain.order.dao;
import com.sfa.job.domain.order.entity.FinanceOrderDetail; import com.sfa.job.domain.order.entity.FinanceOrderDetail;
import com.sfa.job.domain.order.wq.FinanceOrderCostWq;
import com.sfa.job.pojo.response.FinanceOrderDetailListDto;
import java.util.Date;
import java.util.List; import java.util.List;
public interface FinanceOrderDetailDao { public interface FinanceOrderDetailDao {
void saveOrUpdateBatch(List<FinanceOrderDetail> mergeList); void saveOrUpdateBatch(List<FinanceOrderDetail> mergeList);
List<FinanceOrderDetailListDto> selectErrorCost(Date startTime, Date endTime);
void updateCost(FinanceOrderCostWq financeOrderCostWq);
} }
...@@ -2,9 +2,12 @@ package com.sfa.job.domain.order.dao; ...@@ -2,9 +2,12 @@ package com.sfa.job.domain.order.dao;
import com.sfa.job.domain.order.entity.FinanceBaseProduct; import com.sfa.job.domain.order.entity.FinanceBaseProduct;
import java.util.List;
import java.util.Map; import java.util.Map;
public interface FinianceBaseProductDao { public interface FinianceBaseProductDao {
Map<String, FinanceBaseProduct> selectBaseProduct(); Map<String, FinanceBaseProduct> selectBaseProduct();
Map<String, FinanceBaseProduct> selectBaseProductCost(List<String> goodNos);
} }
package com.sfa.job.domain.order.dao.impl; package com.sfa.job.domain.order.dao.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.sfa.job.domain.order.dao.FinianceBaseProductDao; import com.sfa.job.domain.order.dao.FinianceBaseProductDao;
...@@ -22,10 +23,21 @@ public class FinianceBaseProductDaoImpl implements FinianceBaseProductDao { ...@@ -22,10 +23,21 @@ public class FinianceBaseProductDaoImpl implements FinianceBaseProductDao {
@Override @Override
public Map<String, FinanceBaseProduct> selectBaseProduct() { public Map<String, FinanceBaseProduct> selectBaseProduct() {
// 查询所有商品 // 查询所有商品
List<FinanceBaseProduct> list = mapper.selectList(new LambdaQueryWrapper<>()) ; List<FinanceBaseProduct> list = mapper.selectList(new LambdaQueryWrapper<>());
// 以料号为key,商品对象为value,放入map中 // 以料号为key,商品对象为value,放入map中
Map<String, FinanceBaseProduct> map = list.stream() Map<String, FinanceBaseProduct> map = list.stream()
.collect(HashMap::new, (k, v) -> k.put(v.getPrdCode(), v), HashMap::putAll); .collect(HashMap::new, (k, v) -> k.put(v.getPrdCode(), v), HashMap::putAll);
return map; return map;
} }
@Override
public Map<String, FinanceBaseProduct> selectBaseProductCost(List<String> goodNos) {
List<FinanceBaseProduct> prdInfos = mapper.selectList(
new LambdaQueryWrapper<FinanceBaseProduct>()
.in(ObjectUtil.isNotEmpty(goodNos), FinanceBaseProduct::getPrdCode, goodNos));
Map<String, FinanceBaseProduct> map = prdInfos.stream()
.collect(HashMap::new, (k, v) -> k.put(v.getPrdCode(), v), HashMap::putAll);
return map;
}
} }
...@@ -4,9 +4,12 @@ import com.baomidou.dynamic.datasource.annotation.DS; ...@@ -4,9 +4,12 @@ import com.baomidou.dynamic.datasource.annotation.DS;
import com.sfa.job.domain.order.dao.FinanceOrderDetailDao; import com.sfa.job.domain.order.dao.FinanceOrderDetailDao;
import com.sfa.job.domain.order.entity.FinanceOrderDetail; import com.sfa.job.domain.order.entity.FinanceOrderDetail;
import com.sfa.job.domain.order.mapper.FinanceOrderDetailMapper; import com.sfa.job.domain.order.mapper.FinanceOrderDetailMapper;
import com.sfa.job.domain.order.wq.FinanceOrderCostWq;
import com.sfa.job.pojo.response.FinanceOrderDetailListDto;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List; import java.util.List;
@DS("bi") @DS("bi")
...@@ -25,4 +28,14 @@ public class FinianceOrderDetailDaoImpl implements FinanceOrderDetailDao { ...@@ -25,4 +28,14 @@ public class FinianceOrderDetailDaoImpl implements FinanceOrderDetailDao {
financeOrderDetailMapper.saveOrUpdateBatch(batchLists); financeOrderDetailMapper.saveOrUpdateBatch(batchLists);
} }
} }
@Override
public void updateCost(FinanceOrderCostWq wq) {
financeOrderDetailMapper.updateCost(wq);
}
@Override
public List<FinanceOrderDetailListDto> selectErrorCost(Date startTime, Date endTime) {
return financeOrderDetailMapper.selectErrorCost(startTime, endTime);
}
} }
...@@ -3,13 +3,22 @@ package com.sfa.job.domain.order.mapper; ...@@ -3,13 +3,22 @@ package com.sfa.job.domain.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sfa.job.domain.order.entity.FinanceOrderDetail; import com.sfa.job.domain.order.entity.FinanceOrderDetail;
import com.sfa.job.domain.order.wq.FinanceOrderCostWq;
import com.sfa.job.pojo.response.FinanceOrderDetailListDto;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List; import java.util.List;
@Mapper @Mapper
public interface FinanceOrderDetailMapper extends BaseMapper<FinanceOrderDetail> { public interface FinanceOrderDetailMapper extends BaseMapper<FinanceOrderDetail> {
void saveOrUpdateBatch(@Param(value = "list") List<FinanceOrderDetail> mergeList); void saveOrUpdateBatch(@Param(value = "list") List<FinanceOrderDetail> mergeList);
void updateCost(FinanceOrderCostWq wq);
List<FinanceOrderDetailListDto> selectErrorCost(@Param(value = "startTime")Date startTime, @Param(value = "endTime")Date endTime);
} }
package com.sfa.job.domain.order.wq;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class FinanceOrderCostWq {
private String goodsNo;
private BigDecimal actualCost;
private BigDecimal standardCost;
private Date startTime;
private Date endTime;
}
package com.sfa.job.pojo.response;
import lombok.Data;
import java.math.BigDecimal;
/**
* finance_base_product 表对应的 料号基本信息表。
* 主要字段实际成本、标准成本、规格、口味
* @author lvbencai
* @date 2025年01月07日10:04:25
*/
@Data
public class FinanceBaseProductDto {
// 唯一标识主键
private Integer fbpId;
// 料号
private String prdCode;
// 品名
private String prdName;
// 规格
private String prdBarCode;
// 实际成本
private BigDecimal actualCost;
// 标准成本
private BigDecimal standardCost;
// 一级分类
private String firstCategory;
// 二级分类
private String secondCategory;
// 规格
private String spec;
// 口味
private String flavor;
// 系列
private String series;
// 产品分类编码
private String productClassificationCode;
// 产品分类
private String productClassification;
// 主分群码(重复字段,可根据实际需求调整)
private String mainGroupCode;
// 主分群码名称
private String mainGroupName;
// 料件类别(重复字段,可根据实际需求调整)
private String materialType;
// 料件类别描述
private String materialTypeName;
// 基础单位
private String basicUnit;
// 生命周期状态
private String lifeCycleStatus;
// 生命周期
private String lifeCycle;
}
package com.sfa.job.pojo.response;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 财务聚合后查看的详情信息,来自订单明细DTO
* @date : 2025-01-15 17:01:00
* @author : lvbencai
*/
@Data
public class FinanceOrderDetailListDto {
// 订单编号
private String tradeNo;
// 店铺名称
private String shopName;
// 原始单号
private String srcTid;
// 原始子单号
private String srcOid;
// 订单状态
private String tradeStatus;
// 交易时间
private String tradeTime;
// 付款时间
private Date payTime;
// 发货时间
private Date consignTime;
// 省市县(收货地区)
private String receiverArea;
// 备注
private String remark;
// 应收金额
private BigDecimal receivable;
// 货品编号
private String goodsNo;
// 货品名称
private String goodsName;
// 规格名称
private String specName;
// 分类(货品类型)
private Integer goodsType;
// 数量
private BigDecimal num;
// 优惠
private BigDecimal discount;
// 分摊后总价
private BigDecimal shareAmount;
// 组合装编码
private String suiteNo;
// 组合装名称
private String suiteName;
// 组合装数量
private BigDecimal suiteNum;
// 赠品方式
private Integer giftType;
// 分销商名称
private String fenxiaoName;
// 分销商编号
private String fenxiaoId;
// 平台货品名称
private String apiGoodsName;
}
package com.sfa.job.pojo.response;
import lombok.Data;
import java.util.List;
/**
* 财务同步旺店通修改结果
*
* @author : lvbencai
* @date : 2025-03-25
*/
@Data
public class FinanceOrderDetailUpdateDto {
private List<String> errorList;
private List<FinanceOrderDetailListDto> errorDetailList;
private int totalCount;
}
package com.sfa.job.service.order; package com.sfa.job.service.order;
import com.sfa.job.pojo.response.FinanceOrderDetailUpdateDto;
import com.sfa.job.pojo.response.SyncOrderDetailDto; import com.sfa.job.pojo.response.SyncOrderDetailDto;
import java.util.Date; import java.util.Date;
...@@ -10,5 +11,5 @@ public interface FinanceOrderSyncService { ...@@ -10,5 +11,5 @@ public interface FinanceOrderSyncService {
SyncOrderDetailDto syncWdtRefundOrder(Date startTime, Date endTime, Integer syncType); SyncOrderDetailDto syncWdtRefundOrder(Date startTime, Date endTime, Integer syncType);
SyncOrderDetailDto updateZbjType(Date startTime, Date endTime); FinanceOrderDetailUpdateDto updateCost(Date startTime, Date endTime);
} }
...@@ -11,11 +11,10 @@ import com.sfa.common.core.exception.ServiceException; ...@@ -11,11 +11,10 @@ import com.sfa.common.core.exception.ServiceException;
import com.sfa.common.core.utils.DateUtils; import com.sfa.common.core.utils.DateUtils;
import com.sfa.job.domain.order.dao.*; import com.sfa.job.domain.order.dao.*;
import com.sfa.job.domain.order.entity.*; import com.sfa.job.domain.order.entity.*;
import com.sfa.job.domain.order.wq.FinanceOrderCostWq;
import com.sfa.job.pojo.request.WdtOrderQueryVO; import com.sfa.job.pojo.request.WdtOrderQueryVO;
import com.sfa.job.pojo.request.WdtRefundQueryVO; import com.sfa.job.pojo.request.WdtRefundQueryVO;
import com.sfa.job.pojo.response.CollectOrderLogDto; import com.sfa.job.pojo.response.*;
import com.sfa.job.pojo.response.SyncOrderDetailDto;
import com.sfa.job.pojo.response.WangdiantongQueryDto;
import com.sfa.job.service.order.FinanceOrderSyncService; import com.sfa.job.service.order.FinanceOrderSyncService;
import com.sfa.job.util.WangdiantongUtil; import com.sfa.job.util.WangdiantongUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -26,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -26,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 旺店通订单Service业务层处理 * 旺店通订单Service业务层处理
...@@ -326,11 +326,42 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService { ...@@ -326,11 +326,42 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
* @return * @return
*/ */
@Override @Override
public SyncOrderDetailDto updateZbjType(Date startTime, Date endTime) { public FinanceOrderDetailUpdateDto updateCost(Date startTime, Date endTime) {
// 循环查询订单 // 查询有问题的goods_no
List<FinanceOrderDetailListDto> errorCostDetails = orderDetailDao.selectErrorCost(startTime, endTime);
List<String > errorGoodsNos = new ArrayList<>();
return null;
if(ObjectUtil.isNotEmpty(errorCostDetails)){
List<String> goodNos = errorCostDetails.stream().map(FinanceOrderDetailListDto::getGoodsNo).collect(Collectors.toList());
// 有问题的料号数据,查询产品基础信息表
Map<String, FinanceBaseProduct> productMap = baseProductDao.selectBaseProductCost(goodNos);
// 查询当前的成本数据
for (int i = 0; i < goodNos.size(); i++) {
String goodsNo = goodNos.get(i);
FinanceBaseProduct financeBaseProduct = productMap.get(goodsNo);
if(ObjectUtil.isNotEmpty(financeBaseProduct) && financeBaseProduct.getActualCost().compareTo(new BigDecimal("0"))>0){
// 循环修改数据
BigDecimal actualCost = financeBaseProduct.getActualCost();
BigDecimal standardCost = financeBaseProduct.getStandardCost();
FinanceOrderCostWq financeOrderCostWq = new FinanceOrderCostWq();
financeOrderCostWq.setGoodsNo(goodsNo);
financeOrderCostWq.setActualCost(actualCost);
financeOrderCostWq.setStandardCost(standardCost);
financeOrderCostWq.setStartTime(startTime);
financeOrderCostWq.setEndTime(endTime);
orderDetailDao.updateCost(financeOrderCostWq);
}else{
log.error("料号{}没有查询到数据",goodsNo);
errorGoodsNos.add(goodsNo);
}
}
}
FinanceOrderDetailUpdateDto updateDto = new FinanceOrderDetailUpdateDto();
updateDto.setErrorList(errorGoodsNos);
updateDto.setTotalCount(errorCostDetails.size());
updateDto.setErrorDetailList(errorCostDetails);
return updateDto;
} }
/** /**
...@@ -377,11 +408,7 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService { ...@@ -377,11 +408,7 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
private boolean validateStartTime(SyncOrderDetailDto detailDto) { private boolean validateStartTime(SyncOrderDetailDto detailDto) {
Date currentLatest = DateUtils.addHours(new Date(), -2); Date currentLatest = DateUtils.addHours(new Date(), -2);
if (currentLatest.compareTo(detailDto.getEndTime()) < 0) { if (currentLatest.compareTo(detailDto.getEndTime()) < 0) {
// SyncOrderDetailDto detailDto = new SyncOrderDetailDto();
detailDto.setTotalCount(0); detailDto.setTotalCount(0);
// detailDto.setBatchNo(batchNo);
// detailDto.setStartTime(startTime);
// detailDto.setEndTime(endTime);
String message = String.format("结束时间%s不能大于当前时间%s", DateUtil.formatDateTime(detailDto.getEndTime()), DateUtil.formatDateTime(currentLatest)); String message = String.format("结束时间%s不能大于当前时间%s", DateUtil.formatDateTime(detailDto.getEndTime()), DateUtil.formatDateTime(currentLatest));
detailDto.setMessage(message); detailDto.setMessage(message);
log.warn(message); log.warn(message);
......
...@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; ...@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpStatus; import cn.hutool.http.HttpStatus;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.sfa.job.pojo.response.FinanceOrderDetailUpdateDto;
import com.sfa.job.pojo.response.SyncOrderDetailDto; import com.sfa.job.pojo.response.SyncOrderDetailDto;
import com.sfa.job.service.order.FinanceOrderSyncService; import com.sfa.job.service.order.FinanceOrderSyncService;
import com.xxl.job.core.context.XxlJobContext; import com.xxl.job.core.context.XxlJobContext;
...@@ -13,6 +14,8 @@ import lombok.extern.slf4j.Slf4j; ...@@ -13,6 +14,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Date;
/** /**
* @author : 吕本才 * @author : 吕本才
* @date : 2025-01-15 13:03:51 * @date : 2025-01-15 13:03:51
...@@ -54,7 +57,7 @@ public class FinanceOrderTask { ...@@ -54,7 +57,7 @@ public class FinanceOrderTask {
return detailDto; return detailDto;
} }
/** /**
* 同步部门数据 * 同步退换货数据
*/ */
@XxlJob("syncWdtRefundOrder") @XxlJob("syncWdtRefundOrder")
public SyncOrderDetailDto syncWdtRefundOrder() { public SyncOrderDetailDto syncWdtRefundOrder() {
...@@ -83,4 +86,30 @@ public class FinanceOrderTask { ...@@ -83,4 +86,30 @@ public class FinanceOrderTask {
} }
return detailDto; return detailDto;
} }
/**
* 定时修改成本为0的订单数据
*/
@XxlJob("syncUpdateCost")
public FinanceOrderDetailUpdateDto syncUpdateCost() {
// 暂不考虑分片
XxlJobContext xxlJobContext = XxlJobContext.getXxlJobContext();
int shardingTotalCount = xxlJobContext.getShardTotal();
int shardingItem = xxlJobContext.getShardIndex();
XxlJobHelper.log(">>>>>>>>>>syncWangdiantongOrderDetail Job start<<<<<<<<<<");
// 简单模拟分片处理,这里输出每个分片的信息
XxlJobHelper.log("分片总数: " + shardingTotalCount + ", 当前分片: " + shardingItem);
XxlJobHelper.log("xxl-job开始同步-旺店通订单明细api接口数据");
// 定时任务不设定开始时间和结束时间
Date startTime = DateUtil.beginOfDay(DateUtil.offsetDay(new Date(),-1));
Date endTime = DateUtil.endOfDay(DateUtil.offsetDay(new Date(),-1));
FinanceOrderDetailUpdateDto detailDto = financeOrderSyncService.updateCost(startTime,endTime);
XxlJobHelper.log("修改旺店通订单明细结束-旺店通订单明细api接口数据, 共修改订单数{}条数据", detailDto.getTotalCount());
XxlJobHelper.handleSuccess(JSONObject.toJSONString(detailDto));
return detailDto;
}
} }
...@@ -127,7 +127,8 @@ ...@@ -127,7 +127,8 @@
<!-- 根据 rec_id 查询单条记录 --> <!-- 根据 rec_id 查询单条记录 -->
<select id="selectByRecId" resultMap="BaseResultMap"> <select id="selectByRecId" resultMap="BaseResultMap">
select <include refid="Base_Column_List"></include> select
<include refid="Base_Column_List"></include>
from finance_order_detail from finance_order_detail
where rec_id = #{recId} where rec_id = #{recId}
</select> </select>
...@@ -142,7 +143,8 @@ ...@@ -142,7 +143,8 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
trade_id, rec_id, platform_id, src_oid, src_tid, pay_status, refund_status, platform_status, delivery_term, trade_id
, rec_id, platform_id, src_oid, src_tid, pay_status, refund_status, platform_status, delivery_term,
num, price, refund_num, order_price, share_price, adjust, discount, share_amount, tax_rate, num, price, refund_num, order_price, share_price, adjust, discount, share_amount, tax_rate,
goods_name, goods_no, spec_name, spec_no, spec_code, suite_no, suite_name, suite_num, suite_amount, goods_name, goods_no, spec_name, spec_no, spec_code, suite_no, suite_name, suite_num, suite_amount,
suite_discount, api_goods_name, api_spec_name, api_goods_id, api_spec_id, goods_id, spec_id, suite_discount, api_goods_name, api_spec_name, api_goods_id, api_spec_id, goods_id, spec_id,
...@@ -248,4 +250,27 @@ ...@@ -248,4 +250,27 @@
<result column="sum_actual_cost" property="sumActualCost" jdbcType="DECIMAL"/> <result column="sum_actual_cost" property="sumActualCost" jdbcType="DECIMAL"/>
<result column="sum_standard_cost" property="sumStandardCost" jdbcType="DECIMAL"/> <result column="sum_standard_cost" property="sumStandardCost" jdbcType="DECIMAL"/>
</resultMap> </resultMap>
<update id="updateCost" parameterType="com.sfa.job.domain.order.wq.FinanceOrderCostWq">
update finance_order_detail fod
set fod.actual_cost =#{actualCost},
fod.standard_cost =#{standardCost},
fod.sum_actual_cost = #{actualCost} * num,
fod.sum_standard_cost = #{standardCost} * num
where shop_no IN ('016', '070', '091')
and fod.consign_time between #{startTime} and #{endTime}
and refund_status != 5 and fod.actual_cost =0
AND fod.goods_no =#{goodsNo}
</update>
<!-- 查询成本为0的订单详情-->
<select id="selectErrorCost" resultType="com.sfa.job.pojo.response.FinanceOrderDetailListDto">
select distinct fod.goods_no as goodsNo,
fod.goods_name as goodsName
from finance_order_detail fod
where shop_no IN ('016', '070', '091')
and fod.consign_time between #{startTime} and #{endTime}
and refund_status!= 5 and fod.actual_cost =0
</select>
</mapper> </mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论