forked from angelo/java-retail-app
feat(SaOrderSync): 全网商品管理-同步失败订单列表
This commit is contained in:
parent
5211181e31
commit
ef2cddc0d4
|
@ -0,0 +1,69 @@
|
||||||
|
package com.hzs.sale.order.controller.manager;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.hzs.common.core.annotation.AccessPermissions;
|
||||||
|
import com.hzs.common.core.annotation.Log;
|
||||||
|
import com.hzs.common.core.enums.EOperationMethod;
|
||||||
|
import com.hzs.common.core.enums.EOperationModule;
|
||||||
|
import com.hzs.common.core.enums.ESaOrderSyncStatus;
|
||||||
|
import com.hzs.common.core.utils.poi.ExcelUtil;
|
||||||
|
import com.hzs.common.core.web.controller.BaseController;
|
||||||
|
import com.hzs.common.core.web.domain.AjaxResult;
|
||||||
|
import com.hzs.common.core.web.page.TableDataInfo;
|
||||||
|
import com.hzs.common.security.utils.SecurityUtils;
|
||||||
|
import com.hzs.sale.order.dto.SaOrderSyncBodyDetailDTO;
|
||||||
|
import com.hzs.sale.order.param.SaOrderSyncParam;
|
||||||
|
import com.hzs.sale.order.service.ISaOrderSyncService;
|
||||||
|
import com.hzs.sale.order.vo.SaOrderSyncVO;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单同步记录控制器
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/manage/order-sync")
|
||||||
|
public class SaOrderSyncController extends BaseController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISaOrderSyncService orderSyncService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步订单列表
|
||||||
|
*/
|
||||||
|
@AccessPermissions("orderSyncList")
|
||||||
|
@Log(module = EOperationModule.ORDER_SYNC, method = EOperationMethod.SELECT)
|
||||||
|
@GetMapping("list")
|
||||||
|
public TableDataInfo list(SaOrderSyncParam param) {
|
||||||
|
startPage();
|
||||||
|
List<SaOrderSyncVO> list = orderSyncService.queryList(param, SecurityUtils.getPkCountry());
|
||||||
|
for (SaOrderSyncVO saOrderSyncVO : list) {
|
||||||
|
saOrderSyncVO.setStatusVal(ESaOrderSyncStatus.getLabelByValue(saOrderSyncVO.getStatus()));
|
||||||
|
saOrderSyncVO.setOrderProductDetail(JSONUtil.toList(saOrderSyncVO.getBodyDetail(), SaOrderSyncBodyDetailDTO.class));
|
||||||
|
}
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新同步状态
|
||||||
|
*/
|
||||||
|
@AccessPermissions("orderSyncUpdate")
|
||||||
|
@Log(module = EOperationModule.ORDER_SYNC, method = EOperationMethod.UPDATE)
|
||||||
|
@PostMapping("updateStatus")
|
||||||
|
public AjaxResult updateStatus(@RequestBody SaOrderSyncParam param) {
|
||||||
|
if (param.getPkId() == null) {
|
||||||
|
return AjaxResult.error("主键ID不能为空");
|
||||||
|
}
|
||||||
|
if (param.getStatus() == null) {
|
||||||
|
return AjaxResult.error("状态不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
return toAjax(orderSyncService.updateStatus(param.getPkId(), param.getStatus(),
|
||||||
|
SecurityUtils.getUserId(), SecurityUtils.getPkCountry()));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.hzs.sale.order.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Builder
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class SaOrderSyncBodyDetailDTO {
|
||||||
|
/**
|
||||||
|
* 仓储编号
|
||||||
|
*/
|
||||||
|
private String wmsCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 变动数量
|
||||||
|
*/
|
||||||
|
private Integer changeNum;
|
||||||
|
}
|
|
@ -2,10 +2,23 @@ package com.hzs.sale.order.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.hzs.common.domain.sale.order.SaOrderSync;
|
import com.hzs.common.domain.sale.order.SaOrderSync;
|
||||||
|
import com.hzs.sale.order.param.SaOrderSyncParam;
|
||||||
|
import com.hzs.sale.order.vo.SaOrderSyncVO;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单产品同步记录 Mapper 接口
|
* 订单同步记录Mapper接口
|
||||||
*/
|
*/
|
||||||
public interface SaOrderSyncMapper extends BaseMapper<SaOrderSync> {
|
public interface SaOrderSyncMapper extends BaseMapper<SaOrderSync> {
|
||||||
|
|
||||||
}
|
/**
|
||||||
|
* 查询订单同步记录列表
|
||||||
|
*
|
||||||
|
* @param param 查询参数
|
||||||
|
* @param pkCountry 国家主键
|
||||||
|
* @return 同步记录列表
|
||||||
|
*/
|
||||||
|
List<SaOrderSyncVO> queryList(@Param("param") SaOrderSyncParam param, @Param("pkCountry") Integer pkCountry);
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.hzs.sale.order.param;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步失败订单列表
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class SaOrderSyncParam {
|
||||||
|
/**
|
||||||
|
* 同步失败主键
|
||||||
|
*/
|
||||||
|
private Long pkId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单号
|
||||||
|
*/
|
||||||
|
private String orderCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开始日期(yyyy-MM-dd)
|
||||||
|
*/
|
||||||
|
private String startDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结束日期(yyyy-MM-dd)
|
||||||
|
*/
|
||||||
|
private String endDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步状态 1=失败
|
||||||
|
*/
|
||||||
|
private Integer status;
|
||||||
|
private String statusVal;
|
||||||
|
}
|
|
@ -2,10 +2,33 @@ package com.hzs.sale.order.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.hzs.common.domain.sale.order.SaOrderSync;
|
import com.hzs.common.domain.sale.order.SaOrderSync;
|
||||||
|
import com.hzs.sale.order.param.SaOrderSyncParam;
|
||||||
|
import com.hzs.sale.order.vo.SaOrderSyncVO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单产品同步记录 服务类
|
* 订单同步记录服务接口
|
||||||
*/
|
*/
|
||||||
public interface ISaOrderSyncService extends IService<SaOrderSync> {
|
public interface ISaOrderSyncService extends IService<SaOrderSync> {
|
||||||
|
|
||||||
}
|
/**
|
||||||
|
* 查询订单同步记录列表
|
||||||
|
*
|
||||||
|
* @param param 查询参数
|
||||||
|
* @param pkCountry 国家主键
|
||||||
|
* @return 同步记录列表
|
||||||
|
*/
|
||||||
|
List<SaOrderSyncVO> queryList(SaOrderSyncParam param, Integer pkCountry);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新同步状态
|
||||||
|
*
|
||||||
|
* @param pkId 主键ID
|
||||||
|
* @param status 状态
|
||||||
|
* @param userId 用户ID
|
||||||
|
* @param pkCountry 国家主键
|
||||||
|
* @return 是否成功
|
||||||
|
*/
|
||||||
|
Boolean updateStatus(Long pkId, Integer status, Long userId, Integer pkCountry);
|
||||||
|
}
|
|
@ -1,15 +1,36 @@
|
||||||
package com.hzs.sale.order.service.impl;
|
package com.hzs.sale.order.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.hzs.common.domain.sale.order.SaOrderSync;
|
import com.hzs.common.domain.sale.order.SaOrderSync;
|
||||||
import com.hzs.sale.order.mapper.SaOrderSyncMapper;
|
import com.hzs.sale.order.mapper.SaOrderSyncMapper;
|
||||||
|
import com.hzs.sale.order.param.SaOrderSyncParam;
|
||||||
import com.hzs.sale.order.service.ISaOrderSyncService;
|
import com.hzs.sale.order.service.ISaOrderSyncService;
|
||||||
|
import com.hzs.sale.order.vo.SaOrderSyncVO;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单产品同步记录 服务实现类
|
* 订单同步记录服务实现
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class SaOrderSyncServiceImpl extends ServiceImpl<SaOrderSyncMapper, SaOrderSync> implements ISaOrderSyncService {
|
public class SaOrderSyncServiceImpl extends ServiceImpl<SaOrderSyncMapper, SaOrderSync> implements ISaOrderSyncService {
|
||||||
|
|
||||||
}
|
@Override
|
||||||
|
public List<SaOrderSyncVO> queryList(SaOrderSyncParam param, Integer pkCountry) {
|
||||||
|
return baseMapper.queryList(param, pkCountry);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean updateStatus(
|
||||||
|
Long pkId, Integer status, Long userId, Integer pkCountry
|
||||||
|
) {
|
||||||
|
LambdaUpdateWrapper<SaOrderSync> updateWrapper = new LambdaUpdateWrapper<>();
|
||||||
|
updateWrapper.eq(SaOrderSync::getPkId, pkId);
|
||||||
|
updateWrapper.set(SaOrderSync::getStatus, status);
|
||||||
|
|
||||||
|
return this.update(updateWrapper);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
package com.hzs.sale.order.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.hzs.common.core.annotation.Excel;
|
||||||
|
import com.hzs.sale.order.dto.SaOrderSyncBodyDetailDTO;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单同步记录VO
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class SaOrderSyncVO implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
private Long pkId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单编号
|
||||||
|
*/
|
||||||
|
@Excel(name = "订单编号")
|
||||||
|
private String orderCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品明细列表
|
||||||
|
*/
|
||||||
|
private String bodyDetail;
|
||||||
|
private List<SaOrderSyncBodyDetailDTO> orderProductDetail;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Date creationTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步状态(1=失败)
|
||||||
|
*/
|
||||||
|
@Excel(name = "同步状态", readConverterExp = "1=失败,0=成功")
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同步状态描述
|
||||||
|
*/
|
||||||
|
private String statusVal;
|
||||||
|
|
||||||
|
}
|
|
@ -2,4 +2,33 @@
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.hzs.sale.order.mapper.SaOrderSyncMapper">
|
<mapper namespace="com.hzs.sale.order.mapper.SaOrderSyncMapper">
|
||||||
|
|
||||||
</mapper>
|
<!-- 查询订单同步记录列表 -->
|
||||||
|
<select id="queryList" resultType="com.hzs.sale.order.vo.SaOrderSyncVO">
|
||||||
|
select
|
||||||
|
sos.pk_id,
|
||||||
|
sos.order_code,
|
||||||
|
sos.body_detail,
|
||||||
|
sos.creation_time,
|
||||||
|
sos.status
|
||||||
|
from sa_order_sync sos
|
||||||
|
<where>
|
||||||
|
<if test="param.pkId != null">
|
||||||
|
and sos.pk_id = #{param.pkId}
|
||||||
|
</if>
|
||||||
|
<if test="param.orderCode != null and param.orderCode != ''">
|
||||||
|
and sos.order_code like #{param.orderCode} || '%'
|
||||||
|
</if>
|
||||||
|
<if test="param.status != null">
|
||||||
|
and sos.status = #{param.status}
|
||||||
|
</if>
|
||||||
|
<if test="param.startDate != null and param.startDate != ''">
|
||||||
|
and sos.creation_time >= to_date(#{param.startDate}, 'yyyy-mm-dd')
|
||||||
|
</if>
|
||||||
|
<if test="param.endDate != null and param.endDate != ''">
|
||||||
|
and sos.creation_time < to_date(#{param.endDate}, 'yyyy-mm-dd') + 1
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
order by sos.creation_time desc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
|
@ -405,7 +405,7 @@ public enum EOperationModule {
|
||||||
CANCEL_ORDER_CONFIRM("撤销订单确认"),
|
CANCEL_ORDER_CONFIRM("撤销订单确认"),
|
||||||
///////////////////////////统计分析////////////////////////////
|
///////////////////////////统计分析////////////////////////////
|
||||||
STATISTIC_ANALYSIS("统计分析"),
|
STATISTIC_ANALYSIS("统计分析"),
|
||||||
|
ORDER_SYNC("同步失败订单"),
|
||||||
;
|
;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
package com.hzs.common.core.enums;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Getter
|
||||||
|
public enum ESaOrderSyncStatus {
|
||||||
|
FAIL(1, "失败"),
|
||||||
|
Handled(0, "已处理")
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实际值
|
||||||
|
*/
|
||||||
|
private final int value;
|
||||||
|
/**
|
||||||
|
* 显示标签
|
||||||
|
*/
|
||||||
|
private final String label;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据枚举值获取枚举
|
||||||
|
*
|
||||||
|
* @param value
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getLabelByValue(Integer value) {
|
||||||
|
if (null == value) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
for (ESaOrderSyncStatus enums : ESaOrderSyncStatus.values()) {
|
||||||
|
if (enums.getValue() == value) {
|
||||||
|
return enums.getLabel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue