xuhy
2026-02-10 2b876550168aa98cb61d62255314c2fa77cc0cd8
定时任务修改订单云物流状态
7个文件已修改
114 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/core/config/DataUpdateHandlerConfig.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierOutbound.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpGoodsServiceImpl.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderController.java
@@ -149,7 +149,8 @@
                    "\t\t\"out_trade_no\": \"" + outTradeNo + "\",\n" +
                    "\t\t\"merchant_no\": \""+supplier.getRecvMerchantNo()+"\",\n" +
                    "\t\t\"term_no\": \""+supplier.getTermNo()+"\",\n" +
                    "\t\t\"notify_url\": \"https://haizhentong.com/manage/t-sys-order/messageHandle\",\n" +
                    "\t\t\"notify_url\": \"http://221.182.45.100:8089/t-sys-order/messageHandle\",\n" +
//                    "\t\t\"notify_url\": \"https://haizhentong.com/manage/t-sys-order/messageHandle\",\n" +
                    "\t\t\"location_info\": {\n" +
                    "\t\t\t\"request_ip\": \"" + ipAddr + "\"\n" +
                    "\t\t},\n" +
@@ -241,7 +242,8 @@
            map.put("log_no", erpProcurement.getPayTransactionId());
            map.put("log_date", DateUtils.dateTime());
            map.put("cal_type", "0");
            map.put("notify_url", "https://haizhentong.com/manage/t-sys-order/messageSeparateHandle");
            map.put("notify_url", "http://221.182.45.100:8089/t-sys-order/messageSeparateHandle");
//            map.put("notify_url", "https://haizhentong.com/manage/t-sys-order/messageSeparateHandle");
            String time = DateUtils.dateTimeNow();
            // SYMBOLS 随机取4位数
@@ -406,7 +408,8 @@
                        "\t\t\"out_trade_no\": \"" + outTradeNo + "\",\n" +
                        "\t\t\"refund_amount\": \"" + refund_amount + "\",\n" +
                        "\t\t\"refund_reason\": \"退款\",\n" +
                        "\t\t\"notify_url\": \"" + "https://haizhentong.com/manage/t-sys-order/messageRefundHandle" + "\",\n" +
                        "\t\t\"notify_url\": \"" + "http://221.182.45.100:8089/t-sys-order/messageRefundHandle" + "\",\n" +
//                        "\t\t\"notify_url\": \"" + "https://haizhentong.com/manage/t-sys-order/messageRefundHandle" + "\",\n" +
                        "\t\t\"origin_out_trade_no\": \"" + erpProcurement.getPayNumber() + "\",\n" +
                        "\t\t\"refund_acc_mode\": \"00\",\n" +
                        "\t\t\"refund_amt_sts\": \"00\",\n" +
@@ -514,7 +517,8 @@
                        "\t\t\"out_trade_no\": \"" + outTradeNo + "\",\n" +
                        "\t\t\"refund_amount\": \"" + refund_amount + "\",\n" +
                        "\t\t\"refund_reason\": \"退款\",\n" +
                        "\t\t\"notify_url\": \"" + "https://haizhentong.com/manage/t-sys-order/messageRefundHandle" + "\",\n" +
                        "\t\t\"notify_url\": \"" + "http://221.182.45.100:8089/t-sys-order/messageRefundHandle" + "\",\n" +
//                        "\t\t\"notify_url\": \"" + "https://haizhentong.com/manage/t-sys-order/messageRefundHandle" + "\",\n" +
                        "\t\t\"origin_out_trade_no\": \"" + erpProcurement.getPayNumber() + "\",\n" +
                        "\t\t\"refund_acc_mode\": \"00\",\n" +
                        "\t\t\"refund_amt_sts\": \"00\",\n" +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
@@ -224,25 +224,27 @@
                    logistics_list.add(logistics_1);
                }
                List<TErpProcurement> procurements = erpProcurementService.list(Wrappers.lambdaQuery(TErpProcurement.class)
                        .in(TErpProcurement::getProcurementCode, tidList));
                if(!CollectionUtils.isEmpty(procurements)){
                    for (TErpProcurement procurement : procurements) {
                        procurement.setLogisticsNo(map.get(procurement.getProcurementCode()));
                        procurement.setStatus(4);
                        procurement.setSendTime(LocalDateTime.now());
                if(!CollectionUtils.isEmpty(tidList)){
                    List<TErpProcurement> procurements = erpProcurementService.list(Wrappers.lambdaQuery(TErpProcurement.class)
                            .in(TErpProcurement::getProcurementCode, tidList));
                    if(!CollectionUtils.isEmpty(procurements)){
                        for (TErpProcurement procurement : procurements) {
                            procurement.setLogisticsNo(map.get(procurement.getProcurementCode()));
                            procurement.setStatus(4);
                            procurement.setSendTime(LocalDateTime.now());
                        }
                        erpProcurementService.updateBatchById(procurements);
                    }
                    erpProcurementService.updateBatchById(procurements);
                }
                // 物流同步回写
                JSONObject logisticsSyncAck = LogisticsSyncAck.logisticsSyncAck(sysCloudConfig.getSid(), sysCloudConfig.getAppKey(),
                        sysCloudConfig.getAppSecret(), sysCloudConfig.getUrl(), logistics_list);
                log.info("物流同步成功");
                if(!CollectionUtils.isEmpty(procurements)){
                    List<String> supplierIds = procurements.stream().map(TErpProcurement::getSupplierId).collect(Collectors.toList());
                    List<String> ids = procurements.stream().map(TErpProcurement::getId).collect(Collectors.toList());
                    // 处理发货流程
                    detailProcurementSend(supplierIds,ids);
                    // 物流同步回写
                    JSONObject logisticsSyncAck = LogisticsSyncAck.logisticsSyncAck(sysCloudConfig.getSid(), sysCloudConfig.getAppKey(),
                            sysCloudConfig.getAppSecret(), sysCloudConfig.getUrl(), logistics_list);
                    log.info("物流同步成功");
                    if(!CollectionUtils.isEmpty(procurements)){
                        List<String> supplierIds = procurements.stream().map(TErpProcurement::getSupplierId).collect(Collectors.toList());
                        List<String> ids = procurements.stream().map(TErpProcurement::getId).collect(Collectors.toList());
                        // 处理发货流程
                        detailProcurementSend(supplierIds,ids);
                    }
                }
            }
@@ -306,7 +308,7 @@
                        //TODO 确定这个是采购价还是销售价格
                        tErpSupplierOutbound.setTotalMoney(tErpProcurementGoods.getPurchasePrice().multiply(new BigDecimal(purchaseCount)));
                        TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(BaseModel::getCreateTime).orderByDesc(TErpSupplierOutbound::getOutboundNumber).last("limit 1"));
                        TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(TErpSupplierOutbound::getCreateTime).orderByDesc(TErpSupplierOutbound::getOutboundNumber).last("limit 1"));
                        if(last==null){
                            tErpSupplierOutbound.setOutboundNumber("G" + DateUtils.dateTimeNow()+"00001");
                        }else {
@@ -331,6 +333,7 @@
                        try {
                            erpSupplierOutboundMapper.insert(tErpSupplierOutbound);
                        }catch (Exception e){
                            e.printStackTrace();
                            throw new RuntimeException("网络繁忙,请重试");
                        }
@@ -355,7 +358,7 @@
                        tErpSupplierOutbound.setOutboundType(7);
                        //TODO 确定这个是采购价还是销售价格
                        tErpSupplierOutbound.setTotalMoney(tErpProcurementGoods.getPurchasePrice().multiply(new BigDecimal(purchaseCount)));
                        TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(BaseModel::getCreateTime).orderByDesc(TErpSupplierOutbound::getOutboundNumber).last("limit 1"));
                        TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(TErpSupplierOutbound::getCreateTime).orderByDesc(TErpSupplierOutbound::getOutboundNumber).last("limit 1"));
                        if(last==null){
                            tErpSupplierOutbound.setOutboundNumber("G" + DateUtils.dateTimeNow()+"00001");
                        }else {
ruoyi-admin/src/main/java/com/ruoyi/web/core/config/DataUpdateHandlerConfig.java
@@ -28,9 +28,14 @@
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        //  获取登录信息
        String userName = SecurityUtils.getLoginUser().getUser().getNickName();
        Long userId = SecurityUtils.getUserId();
        String userName = "";
        try{
            //  获取登录信息
            userName = SecurityUtils.getLoginUser().getUser().getNickName();
            log.info("DataUpdateInterceptor insertFill");
        } catch (Exception e) {
            log.error("DataUpdateInterceptor insertFill error:{}", e.getMessage());
        }
        if (StringUtils.isNotBlank(userName)) {
            this.setFieldValByName("createBy", userName, metaObject);
//            this.setFieldValByName("createId", userId, metaObject);
ruoyi-system/src/main/java/com/ruoyi/system/model/TErpSupplierOutbound.java
@@ -1,6 +1,8 @@
package com.ruoyi.system.model;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ruoyi.common.core.domain.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -23,7 +25,7 @@
@EqualsAndHashCode(callSuper = false)
@TableName("t_erp_supplier_outbound")
@ApiModel(value="TErpSupplierOutbound对象", description="erp供应商出库")
public class TErpSupplierOutbound extends BaseModel {
public class TErpSupplierOutbound implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -59,5 +61,39 @@
    @TableField("goods_id")
    private String goodsId;
    /**
     * 新增执行
     */
    @ApiModelProperty(value = "记录创建人,前端忽略")
    @TableField(value = "create_by", fill = FieldFill.INSERT)
    private String createBy;
    /**
     * 新增和更新执行
     */
    @ApiModelProperty(value = "记录修改人,前端忽略")
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    /**
     * 删除  未删除
     */
    @JsonIgnore
    @TableField("`disabled`")
    @TableLogic
    private Boolean disabled;
    @ApiModelProperty(value = "记录创建时间,前端忽略")
    @TableField("create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;
    /**
     * 最后修改时间
     */
    @ApiModelProperty(value = "记录修改时间,前端忽略")
    @TableField("update_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime updateTime;
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpGoodsServiceImpl.java
@@ -767,7 +767,7 @@
                    tErpSupplierOutbound.setWarehouseId(dto.getWarehouseId());
                    tErpSupplierOutbound.setSupplierId(supplierClinicId);
                    tErpSupplierOutbound.setOutboundType(1);
                    TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(BaseModel::getCreateTime).last("limit 1"));
                    TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(TErpSupplierOutbound::getCreateTime).last("limit 1"));
                    if(last==null){
                        tErpSupplierOutbound.setOutboundNumber("G" + DateUtils.dateTimeNow()+ "00001");
                    }else {
@@ -813,7 +813,7 @@
                tErpSupplierOutbound.setWarehouseId(dto.getWarehouseId());
                tErpSupplierOutbound.setSupplierId(supplierClinicId);
                tErpSupplierOutbound.setOutboundType(6);
                TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(BaseModel::getCreateTime).last("limit 1"));
                TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(TErpSupplierOutbound::getCreateTime).last("limit 1"));
                if(last==null){
                    tErpSupplierOutbound.setOutboundNumber("G" + DateUtils.dateTimeNow()+ "00001");
                }else {
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java
@@ -661,7 +661,7 @@
                        //TODO 确定这个是采购价还是销售价格
                        tErpSupplierOutbound.setTotalMoney(tErpProcurementGoods.getPurchasePrice().multiply(new BigDecimal(purchaseCount)));
                        TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(BaseModel::getCreateTime).orderByDesc(TErpSupplierOutbound::getOutboundNumber).last("limit 1"));
                        TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(TErpSupplierOutbound::getCreateTime).orderByDesc(TErpSupplierOutbound::getOutboundNumber).last("limit 1"));
                        if(last==null){
                            tErpSupplierOutbound.setOutboundNumber("G" + DateUtils.dateTimeNow()+"00001");
                        }else {
@@ -710,7 +710,7 @@
                        tErpSupplierOutbound.setOutboundType(7);
                        //TODO 确定这个是采购价还是销售价格
                        tErpSupplierOutbound.setTotalMoney(tErpProcurementGoods.getPurchasePrice().multiply(new BigDecimal(purchaseCount)));
                        TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(BaseModel::getCreateTime).orderByDesc(TErpSupplierOutbound::getOutboundNumber).last("limit 1"));
                        TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(TErpSupplierOutbound::getCreateTime).orderByDesc(TErpSupplierOutbound::getOutboundNumber).last("limit 1"));
                        if(last==null){
                            tErpSupplierOutbound.setOutboundNumber("G" + DateUtils.dateTimeNow()+"00001");
                        }else {
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpSupplierWarehousingServiceImpl.java
@@ -660,7 +660,7 @@
            tErpSupplierOutbound.setWarehouseId(dto.getWarehouseId());
            tErpSupplierOutbound.setSupplierId(supplierClinicId);
            tErpSupplierOutbound.setTotalMoney(add);
            TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(BaseModel::getCreateTime).last("LIMIT 1"));
            TErpSupplierOutbound last = erpSupplierOutboundMapper.selectOne(new LambdaQueryWrapper<TErpSupplierOutbound>().orderByDesc(TErpSupplierOutbound::getCreateTime).last("LIMIT 1"));
            if(last==null){
                tErpSupplierOutbound.setOutboundNumber("G" +  DateUtils.dateTimeNow()+ "00001");
            }else{