Browse Source

销售订单审核

master
fanzongzhe 11 months ago
parent
commit
74f75c50e3
  1. 39
      src/main/java/com/yxt/sales/apiadmin/SmsSalesBillRest.java
  2. 62
      src/main/java/com/yxt/sales/biz/omsflownode/OmsFlowNode.java
  3. 61
      src/main/java/com/yxt/sales/biz/omsflownode/OmsFlowNodeMapper.java
  4. 10
      src/main/java/com/yxt/sales/biz/omsflownode/OmsFlowNodeMapper.xml
  5. 56
      src/main/java/com/yxt/sales/biz/omsflownode/OmsFlowNodeService.java
  6. 31
      src/main/java/com/yxt/sales/biz/smssalesbill/OrderReviewQuery.java
  7. 100
      src/main/java/com/yxt/sales/biz/smssalesbill/OrderReviewVo.java
  8. 20
      src/main/java/com/yxt/sales/biz/smssalesbill/ReviewConfirmDto.java
  9. 22
      src/main/java/com/yxt/sales/biz/smssalesbill/ReviewDetailsVo.java
  10. 33
      src/main/java/com/yxt/sales/biz/smssalesbill/ReviewDiscount.java
  11. 70
      src/main/java/com/yxt/sales/biz/smssalesbill/ReviewGoods.java
  12. 55
      src/main/java/com/yxt/sales/biz/smssalesbill/ReviewInvoice.java
  13. 16
      src/main/java/com/yxt/sales/biz/smssalesbill/ReviewRecord.java
  14. 17
      src/main/java/com/yxt/sales/biz/smssalesbill/ReviewRemarksInfo.java
  15. 32
      src/main/java/com/yxt/sales/biz/smssalesbill/ReviewShipper.java
  16. 2
      src/main/java/com/yxt/sales/biz/smssalesbill/SmsSalesBill.java
  17. 5
      src/main/java/com/yxt/sales/biz/smssalesbill/SmsSalesBillMapper.java
  18. 67
      src/main/java/com/yxt/sales/biz/smssalesbill/SmsSalesBillMapper.xml
  19. 252
      src/main/java/com/yxt/sales/biz/smssalesbill/SmsSalesBillService.java

39
src/main/java/com/yxt/sales/apiadmin/SmsSalesBillRest.java

@ -91,4 +91,43 @@ public class SmsSalesBillRest {
SmsSalesBillDetailsVo vo = smsSalesBillService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
//---------------------------- 订单审核 ------------------------------
@ApiOperation("销售订单审核列表")
@PostMapping("/reviewListPage")
public ResultBean<PagerVo<OrderReviewVo>> reviewListPage(@RequestBody PagerQuery<OrderReviewQuery> pq){
return smsSalesBillService.reviewListPage(pq);
}
@ApiOperation("销售订单审核详情")
@GetMapping("/reviewDetails")
public ResultBean<ReviewDetailsVo> reviewDetails(@RequestParam("sid") String sid){
return smsSalesBillService.reviewDetails(sid);
}
@ApiOperation("收货地址保存")
@PostMapping("/saveShipper")
public ResultBean saveShipper(@RequestBody ReviewDetailsVo dto){
return smsSalesBillService.saveShipper(dto);
}
@ApiOperation("发票信息保存")
@PostMapping("/saveInvoice")
public ResultBean saveInvoice(@RequestBody ReviewDetailsVo dto){
return smsSalesBillService.saveInvoice(dto);
}
@ApiOperation("分页列表保存")
@PostMapping("/saveOneListData")
public ResultBean saveOneListData(@RequestBody OrderReviewVo dto){
return smsSalesBillService.saveOneListData(dto);
}
@ApiOperation("审核确认")
@PostMapping("/reviewConfirm")
public ResultBean reviewConfirm(@RequestBody ReviewConfirmDto dto){
return smsSalesBillService.reviewConfirm(dto);
}
}

62
src/main/java/com/yxt/sales/biz/omsflownode/OmsFlowNode.java

@ -0,0 +1,62 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.sales.biz.omsflownode;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: ss-sales(ss-sales) <br/>
* File: SmsSalesBill.java <br/>
* Class: com.yxt.sales.apiadmin.api.smssalesbill.SmsSalesBill <br/>
* Description: 销售订单. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-07-04 15:18:10 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "工单-环节", description = "工单-环节")
@TableName("oms_flow_node")
public class OmsFlowNode extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("busSid")
private String billSid; // busSid
@ApiModelProperty("环节编码")
private String nodeCode; // 环节编码
@ApiModelProperty("环节名称")
private String nodeName; // 环节名称
@ApiModelProperty("操作人姓名")
private String createByName; // 操作人姓名
}

61
src/main/java/com/yxt/sales/biz/omsflownode/OmsFlowNodeMapper.java

@ -0,0 +1,61 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.sales.biz.omsflownode;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.sales.biz.smssalesbill.OrderReviewVo;
import com.yxt.sales.biz.smssalesbill.ReviewDiscount;
import com.yxt.sales.biz.smssalesbill.SmsSalesBill;
import com.yxt.sales.biz.smssalesbill.SmsSalesBillVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* Project: ss-sales(ss-sales) <br/>
* File: SmsSalesBillMapper.java <br/>
* Class: com.yxt.sales.apiadmin.biz.smssalesbill.SmsSalesBillMapper <br/>
* Description: 销售订单. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-07-04 15:18:10 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface OmsFlowNodeMapper extends BaseMapper<OmsFlowNode> {
List<OmsFlowNode> selByBusSid(@Param("sid") String sid);
}

10
src/main/java/com/yxt/sales/biz/omsflownode/OmsFlowNodeMapper.xml

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.sales.biz.omsflownode.OmsFlowNodeMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selByBusSid" resultType="com.yxt.sales.biz.omsflownode.OmsFlowNode">
select * from oms_flow_node where billSid = #{sid}
</select>
</mapper>

56
src/main/java/com/yxt/sales/biz/omsflownode/OmsFlowNodeService.java

@ -0,0 +1,56 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.sales.biz.omsflownode;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* Project: ss-sales(ss-sales) <br/>
* File: SmsSalesBillService.java <br/>
* Class: com.yxt.sales.apiadmin.biz.smssalesbill.SmsSalesBillService <br/>
* Description: 销售订单 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-07-04 15:18:10 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class OmsFlowNodeService extends MybatisBaseService<OmsFlowNodeMapper, OmsFlowNode> {
public List<OmsFlowNode> selByBusSid(String sid) {
return baseMapper.selByBusSid(sid);
}
}

31
src/main/java/com/yxt/sales/biz/smssalesbill/OrderReviewQuery.java

@ -0,0 +1,31 @@
package com.yxt.sales.biz.smssalesbill;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/7/25 11:42
*/
@Data
public class OrderReviewQuery implements Query {
private String createOrgSid;
@ApiModelProperty("单据类型key(线下订单/预售订单等)")
private String billTypeKey;
@ApiModelProperty("店铺")
private String shopName;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("订单号")
private String billNo;
@ApiModelProperty("快递单号")
private String logisticsNum;
@ApiModelProperty("买家ID")
private String buyserID;
@ApiModelProperty("快递")
private String logisticsName;
}

100
src/main/java/com/yxt/sales/biz/smssalesbill/OrderReviewVo.java

@ -0,0 +1,100 @@
package com.yxt.sales.biz.smssalesbill;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/7/25 11:19
*/
@Data
public class OrderReviewVo implements Vo {
private String sid;
@ApiModelProperty("订单标记(已开票、仓库打回等)")
private String billState; // 订单标记(已开票、仓库打回等)
@ApiModelProperty("提醒(拆、合、缺)")
private String noticeState; // 订单标记(已开票、仓库打回等)
@ApiModelProperty("剩余发货时间")
private String remainderTime; // 剩余发货时间
@ApiModelProperty("商品总数")
private String goodsTotalCount; // 商品总数
@ApiModelProperty("线上商品图片")
private List<String> picOnline = new ArrayList<>();
@ApiModelProperty("系统商品图片")
private List<String> picSys = new ArrayList<>();
@ApiModelProperty("线上备注/系统备注")
private String remarksOnlineSys; // 线上备注/系统备注
@ApiModelProperty("买家留言/附加信息")
private String buyerMessage; // 买家留言/附加信息
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("配送方式Value")
private String deliveryTypeValue;
@ApiModelProperty("快递")
private String logisticsName;
@ApiModelProperty("快递成本/干线费用")
private String logisticsCost;
@ApiModelProperty("买家ID")
private String buyserID;
@ApiModelProperty("收货地址")
private String deliveryAddress;
@ApiModelProperty("买家实付")
private String realPay;
@ApiModelProperty("优惠")
private String discountAmount;
@ApiModelProperty("应收")
private String dueAmount;
@ApiModelProperty("运费")
private String freight;
@ApiModelProperty("服务费")
private String serviceAmount;
@ApiModelProperty("声明价值(保价)")
private String declaredValue;
@ApiModelProperty("重量(Kg)")
private String weight;
@ApiModelProperty("体积(m³)")
private String volume;
@ApiModelProperty("订单号")
private String billNo;
@ApiModelProperty("系统单号")
private String sysBillNo;
@ApiModelProperty("店铺")
private String shopName;
@ApiModelProperty("下单时间(距今)")
private String billCreateTime;
@ApiModelProperty("付款时间(距今)")
private String payTime;
@ApiModelProperty("预计发货时间")
private String expectSendDate;
@ApiModelProperty("预计送达时间")
private String deliveryDate;
@ApiModelProperty("承诺/最晚揽收时间")
private String latestReceivingTime;
@ApiModelProperty("承诺/最晚发货时间")
private String latestSendTime;
@ApiModelProperty("承诺/最晚送达时间")
private String latestArriveTime;
@ApiModelProperty("应推时间")
private String needPushTime;
@ApiModelProperty("业务员")
private String salesName;
@ApiModelProperty("开票名称(发票抬头)")
private String invoiceTitle;
@ApiModelProperty("达人ID")
private String talentID;
@ApiModelProperty("达人昵称")
private String buyserNickname;
@ApiModelProperty("代发店铺")
private String agentShop;
@ApiModelProperty("原始平台")
private String originalPlat;
@ApiModelProperty("原始单号")
private String originalBillNo;
}

20
src/main/java/com/yxt/sales/biz/smssalesbill/ReviewConfirmDto.java

@ -0,0 +1,20 @@
package com.yxt.sales.biz.smssalesbill;
import lombok.Data;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/7/25 16:57
*/
@Data
public class ReviewConfirmDto {
private String type; //0通过 1不通过
private String remarks; //意见
private List<String> sids;
private String createBySid; //登录人sid
private String createByName; //登录人
}

22
src/main/java/com/yxt/sales/biz/smssalesbill/ReviewDetailsVo.java

@ -0,0 +1,22 @@
package com.yxt.sales.biz.smssalesbill;
import lombok.Data;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/7/25 14:50
*/
@Data
public class ReviewDetailsVo {
private String sid;
private List<ReviewGoods> goods; //商品信息
private ReviewShipper shipper = new ReviewShipper(); //收货地址
private ReviewRemarksInfo remarksInfo = new ReviewRemarksInfo(); //备注信息
private ReviewInvoice invoice = new ReviewInvoice(); //发票信息
private List<ReviewDiscount> discounts; //优惠详情
private List<ReviewRecord> records; //操作记录
}

33
src/main/java/com/yxt/sales/biz/smssalesbill/ReviewDiscount.java

@ -0,0 +1,33 @@
package com.yxt.sales.biz.smssalesbill;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Fan
* @description
* @date 2024/7/25 15:34
*/
@Data
public class ReviewDiscount {
@ApiModelProperty("商品名称")
private String goodsSpuName; // 商品名称
@ApiModelProperty("商品简称")
private String goodsSkuTitle; // 商品Sku名称
@ApiModelProperty("商品编码")
private String goodsSkuCode; // 商品编码
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec; // 规格型号
@ApiModelProperty("优惠名称")
private String discountName; // 优惠名称
@ApiModelProperty("优惠金额")
private String discountAmount; // 优惠金额
@ApiModelProperty("平台商品名称")
private String platGoodsName; // 平台商品名称
@ApiModelProperty("平台规格名称")
private String platOwnSpec; // 平台规格名称
}

70
src/main/java/com/yxt/sales/biz/smssalesbill/ReviewGoods.java

@ -0,0 +1,70 @@
package com.yxt.sales.biz.smssalesbill;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/7/25 14:53
*/
@Data
public class ReviewGoods {
@ApiModelProperty("商品名称")
private String goodsSpuName; // 商品名称
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle; // 商品Sku名称
@ApiModelProperty("商品编码")
private String goodsSkuCode; // 商品编码
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec; // 规格型号
@ApiModelProperty("条码")
private String barCode; // 条码
@ApiModelProperty("销售单价")
private String price; // 销售单价
@ApiModelProperty("折后单价")
private String discountPrice; // 折后单价
@ApiModelProperty("数量")
private String count; // 数量
@ApiModelProperty("应收款")
private String dueAmount; // 应收款
@ApiModelProperty("销售金额")
private String amount; // 销售金额
@ApiModelProperty("税率")
private String taxRate; // 库存数量
@ApiModelProperty("税额")
private String taxAmount; // 税额
@ApiModelProperty("参考进价")
private String referenceCost; // 参考进价
@ApiModelProperty("商品成本")
private String cost; // 商品成本
@ApiModelProperty("批次号")
private String batchNumber; // 批次号
@ApiModelProperty("实际库存")
private String inventoryCount; // 库存数量
@ApiModelProperty("可分配库存")
private String allocateCount; // 可分配库存
@ApiModelProperty("可用库存")
private String useCount; // 可用库存
@ApiModelProperty("在途库存")
private String wayCount; // 在途库存
@ApiModelProperty("各仓库存")
private String wareHouseCount; // 各仓库存
@ApiModelProperty("库存状况")
private String inventoryState; // 库存状况
@ApiModelProperty("单号")
private String billNo; // 单号
@ApiModelProperty("备注")
private String remarks; // 备注
@ApiModelProperty("图片")
private String goodsImgUrl; // 图片
@ApiModelProperty("预计发货时间")
private String expectSendDate; // 预计发货时间
private List<String> pic = new ArrayList<>();
}

55
src/main/java/com/yxt/sales/biz/smssalesbill/ReviewInvoice.java

@ -0,0 +1,55 @@
package com.yxt.sales.biz.smssalesbill;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Fan
* @description
* @date 2024/7/25 15:28
*/
@Data
public class ReviewInvoice {
@ApiModelProperty("开票形式(001纸质发票/002电子发票")
private String invoiceMediumKey; // 开票形式(001纸质发票/002电子发票
@ApiModelProperty("开票形式(纸质发票/电子发票)")
private String invoiceMediumValue; // 开票形式(纸质发票/电子发票)
@ApiModelProperty("发票类型Key")
private String invoiceTypeKey; // 发票类型Key
@ApiModelProperty("发票类型")
private String invoiceType; // 发票类型
@ApiModelProperty("抬头")
private String invoiceTitle; // 开票名称
@ApiModelProperty("内容")
private String invoiceContent; // 内容
@ApiModelProperty("税号")
private String taxpayerNo; // 税号
@ApiModelProperty("开户银行")
private String bankName; // 开户银行
@ApiModelProperty("银行账户")
private String bankAccount; // 银行账户
@ApiModelProperty("详细地址")
private String address; // 详细地址
@ApiModelProperty("固定电话")
private String phone; // 固定电话
@ApiModelProperty("邮箱")
private String e_mail; // 邮箱
@ApiModelProperty("备注")
private String remarks; // 备注
@ApiModelProperty("应收合计")
private String dueAmount; // 应收合计
@ApiModelProperty("本次欠款")
private String thisDebt; // 本次欠款
@ApiModelProperty("历史欠款")
private String historyDebt; // 历史欠款
@ApiModelProperty("预收合计")
private String advanceBalance; // 预收款余额
}

16
src/main/java/com/yxt/sales/biz/smssalesbill/ReviewRecord.java

@ -0,0 +1,16 @@
package com.yxt.sales.biz.smssalesbill;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/7/25 15:37
*/
@Data
public class ReviewRecord {
private String createTime;//创建时间
private String createByName;//账号名称
private String remark;//操作内容
}

17
src/main/java/com/yxt/sales/biz/smssalesbill/ReviewRemarksInfo.java

@ -0,0 +1,17 @@
package com.yxt.sales.biz.smssalesbill;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/7/25 15:26
*/
@Data
public class ReviewRemarksInfo {
private String buyerMessage; //买家留言
private String remarks; //线上备注
private String remarksSys; //系统备注
}

32
src/main/java/com/yxt/sales/biz/smssalesbill/ReviewShipper.java

@ -0,0 +1,32 @@
package com.yxt.sales.biz.smssalesbill;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/7/25 15:23
*/
@Data
public class ReviewShipper {
@ApiModelProperty("收货人姓名")
private String shipperName; // 收货人姓名
@ApiModelProperty("收货人手机")
private String shipperMob; // 收货人手机
@ApiModelProperty("收货省")
private String deliveryProvince; // 收货省
@ApiModelProperty("收货市")
private String deliveryCity; // 收货市
@ApiModelProperty("收货县区")
private String deliveryCounty; // 收货县区
@ApiModelProperty("收货详细地址")
private String deliveryAddress; // 收货详细地址
@ApiModelProperty("真实姓名")
private String name; // 真实姓名
@ApiModelProperty("身份证号码")
private String idNo; // 身份证号码
@ApiModelProperty("固定电话")
private String phone; // 固定电话
}

2
src/main/java/com/yxt/sales/biz/smssalesbill/SmsSalesBill.java

@ -88,4 +88,6 @@ public class SmsSalesBill extends BaseEntity {
private String createOrgSid; // 创建组织sid
@ApiModelProperty("订单标记(已开票、仓库打回等)")
private Integer billState; // 订单标记(已开票、仓库打回等)
@ApiModelProperty("提醒(拆、合、缺)")
private Integer noticeState; // 订单标记(已开票、仓库打回等)
}

5
src/main/java/com/yxt/sales/biz/smssalesbill/SmsSalesBillMapper.java

@ -26,6 +26,7 @@
package com.yxt.sales.biz.smssalesbill;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
@ -62,4 +63,8 @@ public interface SmsSalesBillMapper extends BaseMapper<SmsSalesBill> {
List<SmsSalesBillVo> selectListVo();
int selectNum(String bill);
IPage<OrderReviewVo> reviewListPage(IPage<SmsSalesBill> page, @Param(Constants.WRAPPER) QueryWrapper<SmsSalesBill> qw);
List<ReviewDiscount> selReviewDiscountByBillSid(@Param("sid") String sid);
}

67
src/main/java/com/yxt/sales/biz/smssalesbill/SmsSalesBillMapper.xml

@ -35,4 +35,71 @@
from sms_sales_bill
where billNo LIKE concat(#{bill}, '%')
</select>
<select id="reviewListPage" resultType="com.yxt.sales.biz.smssalesbill.OrderReviewVo">
SELECT
s.sid,
s.billState,
s.noticeState,
( SELECT IFNULL( SUM( count ), 0 ) FROM sms_sales_bill_detail AS d WHERE d.billSid = s.sid ) goodsTotalCount,
CONCAT( p.remarks, '/', s.remarks ) remarksOnlineSys,
p.buyerMessage,
s.warehouseName,
l.deliveryTypeValue,
l.logisticsName,
l.logisticsCost,
sp.buyserID,
CONCAT( p.shipperName, p.shipperMob, p.deliveryProvince, p.deliveryCity, p.deliveryCounty, p.deliveryAddress ) deliveryAddress,
a.realPay,
a.discountAmount,
a.dueAmount,
a.freight,
a.serviceAmount,
a.declaredValue,
l.volume,
l.weight,
s.billNo,
s.billNo AS sysBillNo,
sp.shopName,
l.billCreateTime,
l.payTime,
l.expectSendDate,
l.deliveryDate,
l.latestReceivingTime,
l.latestSendTime,
l.latestArriveTime,
l.needPushTime,
s.salesName,
i.invoiceTitle,
sp.buyserID AS talentID,
sp.buyserNickname,
sp.agentShop,
sp.originalPlat,
sp.originalBillNo
FROM
sms_sales_bill AS s
LEFT JOIN sms_sales_billshipper AS p ON p.billSid = s.sid
LEFT JOIN sms_sales_bill_logistics AS l ON l.billSid = s.sid
LEFT JOIN sms_sales_bill_shop AS sp ON sp.billSid = s.sid
LEFT JOIN sms_sales_bill_amount AS a ON a.billSid = s.sid
LEFT JOIN sms_sales_bill_invoice AS i ON i.billSid = s.sid
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selReviewDiscountByBillSid" resultType="com.yxt.sales.biz.smssalesbill.ReviewDiscount">
SELECT
g.goodsSpuName,
g.goodsSkuTitle,
g.goodsSkuCode,
g.goodsSkuOwnSpec,
d.discountName,
d.discountAmount,
d.platGoodsName,
d.platOwnSpec
FROM
sms_sales_bill_detail_discount AS d
LEFT JOIN sms_sales_bill_detail AS g ON d.billDetailSid = g.sid
WHERE
d.billSid = #{sid}
</select>
</mapper>

252
src/main/java/com/yxt/sales/biz/smssalesbill/SmsSalesBillService.java

@ -30,6 +30,9 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.core.result.ResultBean;
import com.yxt.sales.biz.omsflownode.OmsFlowNode;
import com.yxt.sales.biz.omsflownode.OmsFlowNodeService;
import com.yxt.sales.biz.smsappendix.SmsAppendixDetailsVo;
import com.yxt.sales.biz.smsappendix.SmsAppendixDto;
import com.yxt.sales.biz.smsappendix.SmsAppendixService;
@ -55,9 +58,12 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import org.aspectj.weaver.ast.Var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
@ -93,7 +99,8 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
private SmsAppendixService smsAppendixService;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private OmsFlowNodeService omsFlowNodeService;
private QueryWrapper<SmsSalesBill> createQueryWrapper(SmsSalesBillQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -184,45 +191,58 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
SmsSalesBill smsSalesBill = fetchBySid(sid);
BeanUtil.copyProperties(dto, smsSalesBill, "id", "sid");
baseMapper.updateById(smsSalesBill);
OmsFlowNode omsFlowNode = new OmsFlowNode();
omsFlowNode.setBillSid(sid);
omsFlowNode.setCreateBySid(dto.getCreateBySid());
omsFlowNode.setCreateByName(dto.getCreateByName());
omsFlowNode.setRemarks("修改销售订单");
omsFlowNodeService.insert(omsFlowNode);
} else {
SmsSalesBill smsSalesBill = new SmsSalesBill();
sid = smsSalesBill.getSid();
BeanUtil.copyProperties(dto, smsSalesBill, "id", "sid");
String applyCode = getApplyCode();
smsSalesBill.setBillNo(applyCode);
smsSalesBill.setState(3);
baseMapper.insert(smsSalesBill);
OmsFlowNode omsFlowNode = new OmsFlowNode();
omsFlowNode.setBillSid(sid);
omsFlowNode.setCreateBySid(dto.getCreateBySid());
omsFlowNode.setCreateByName(dto.getCreateByName());
omsFlowNode.setRemarks("新增销售订单");
omsFlowNodeService.insert(omsFlowNode);
}
if (StringUtils.isNotBlank(sid)) {
SmsSalesBillLogistics logistics = new SmsSalesBillLogistics();
BeanUtil.copyProperties(dto, logistics, "id", "sid","remarks");
BeanUtil.copyProperties(dto, logistics, "id", "sid", "remarks");
logistics.setBillSid(sid);
smsSalesBillLogisticsService.insert(logistics);
SmsSalesBillshipper billshipper = new SmsSalesBillshipper();
BeanUtil.copyProperties(dto, billshipper, "id", "sid","remarks");
BeanUtil.copyProperties(dto, billshipper, "id", "sid", "remarks");
billshipper.setBillSid(sid);
smsSalesBillshipperService.insert(billshipper);
SmsSalesBillInvoice invoice = new SmsSalesBillInvoice();
BeanUtil.copyProperties(dto, invoice, "id", "sid","remarks");
BeanUtil.copyProperties(dto, invoice, "id", "sid", "remarks");
invoice.setBillSid(sid);
smsSalesBillInvoiceService.insert(invoice);
List<AccountVo> accounts = dto.getAccounts();
if (!accounts.isEmpty()) {
for (AccountVo accountVo : accounts) {
SmsSalesBillAccount account = new SmsSalesBillAccount();
BeanUtil.copyProperties(accountVo, account, "id", "sid","remarks");
BeanUtil.copyProperties(accountVo, account, "id", "sid", "remarks");
account.setBillSid(sid);
smsSalesBillAccountService.insert(account);
}
} else {
if (StringUtils.isNotBlank(dto.getBankAccount())) {
SmsSalesBillAccount account = new SmsSalesBillAccount();
BeanUtil.copyProperties(dto, account, "id", "sid","remarks");
BeanUtil.copyProperties(dto, account, "id", "sid", "remarks");
account.setBillSid(sid);
smsSalesBillAccountService.insert(account);
}
}
SmsSalesBillAmount amount = new SmsSalesBillAmount();
BeanUtil.copyProperties(dto, amount, "id", "sid","remarks");
BeanUtil.copyProperties(dto, amount, "id", "sid", "remarks");
amount.setBillSid(sid);
smsSalesBillAmountService.insert(amount);
List<SmsSalesBillDetailDetailsVo> goodsList = dto.getGoodsList();
@ -358,4 +378,222 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
smsAppendixService.delByLinkSid(sid);
}
}
public ResultBean<PagerVo<OrderReviewVo>> reviewListPage(PagerQuery<OrderReviewQuery> pq) {
ResultBean<PagerVo<OrderReviewVo>> rb = ResultBean.fireFail();
OrderReviewQuery query = pq.getParams();
QueryWrapper<SmsSalesBill> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getBillTypeKey())) {
qw.like("s.billTypeKey", query.getBillTypeKey());
}
if (StringUtils.isNotBlank(query.getShopName())) {
qw.like("sp.shopName", query.getShopName());
}
if (StringUtils.isNotBlank(query.getWarehouseName())) {
qw.like("s.warehouseName", query.getWarehouseName());
}
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("s.billNo", query.getBillNo());
}
if (StringUtils.isNotBlank(query.getLogisticsNum())) {
qw.like("l.logisticsNum", query.getLogisticsNum());
}
if (StringUtils.isNotBlank(query.getBuyserID())) {
qw.like("sp.buyserID", query.getBuyserID());
}
if (StringUtils.isNotBlank(query.getLogisticsName())) {
qw.like("l.logisticsName", query.getLogisticsName());
}
if (StringUtils.isNotBlank(query.getCreateOrgSid())) {
qw.eq("s.createOrgSid", query.getCreateOrgSid());
}
IPage<SmsSalesBill> page = PagerUtil.queryToPage(pq);
IPage<OrderReviewVo> pagging = baseMapper.reviewListPage(page, qw);
PagerVo<OrderReviewVo> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p);
}
public ResultBean<ReviewDetailsVo> reviewDetails(String sid) {
ResultBean rb = ResultBean.fireFail();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ReviewDetailsVo vo = new ReviewDetailsVo();
vo.setSid(sid);
SmsSalesBill smsSalesBill = fetchBySid(sid);
List<SmsSalesBillDetail> goods = smsSalesBillDetailService.selByBillSid(sid);
if (!goods.isEmpty()) {
List<ReviewGoods> reviewGoods = new ArrayList<>();
for (SmsSalesBillDetail detail : goods) {
ReviewGoods detailVo = new ReviewGoods();
BeanUtil.copyProperties(detail, detailVo, "id", "sid");
if (detail.getInventoryState() != null) {
if (detail.getInventoryState().intValue() == 0) {
detailVo.setInventoryState("未分配");
} else if (detail.getInventoryState().intValue() == 1) {
detailVo.setInventoryState("已分配");
}
}
if (StringUtils.isNotBlank(detail.getGoodsImgUrl())) {
List<String> picList = new ArrayList<>();
String picUrl = detail.getGoodsImgUrl();
String[] split = picUrl.split(",");
for (String s : split) {
picList.add(fileUploadComponent.getUrlPrefix() + s);
}
detailVo.setPic(picList);
}
reviewGoods.add(detailVo);
}
vo.setGoods(reviewGoods);
}
ReviewRemarksInfo remarksInfo = new ReviewRemarksInfo(); //备注信息
SmsSalesBillshipper billshipper = smsSalesBillshipperService.selByBillSid(sid);
if (null != billshipper) {
ReviewShipper shipper = new ReviewShipper();
BeanUtil.copyProperties(billshipper, shipper);
vo.setShipper(shipper);
if (StringUtils.isNotBlank(billshipper.getRemarks())) {
remarksInfo.setRemarks(billshipper.getRemarks());
}
if (StringUtils.isNotBlank(billshipper.getBuyerMessage())) {
remarksInfo.setBuyerMessage(billshipper.getBuyerMessage());
}
}
if (null != smsSalesBill) {
if (StringUtils.isNotBlank(smsSalesBill.getRemarks())) {
remarksInfo.setRemarksSys(smsSalesBill.getRemarks());
}
}
ReviewInvoice invoiceVo = new ReviewInvoice(); //发票信息
SmsSalesBillInvoice invoice = smsSalesBillInvoiceService.selByBillSid(sid);
if (null != invoice) {
BeanUtil.copyProperties(invoice, invoiceVo);
}
SmsSalesBillAmount amount = smsSalesBillAmountService.selByBillSid(sid);
if (null != amount) {
if (null != amount.getDueAmount()) {
invoiceVo.setDueAmount(amount.getDueAmount().toString());
}
if (null != amount.getThisDebt()) {
invoiceVo.setThisDebt(amount.getThisDebt().toString());
}
if (null != amount.getAdvanceBalance()) {
invoiceVo.setAdvanceBalance(amount.getAdvanceBalance().toString());
}
}
List<ReviewDiscount> discounts = baseMapper.selReviewDiscountByBillSid(sid);
if (!discounts.isEmpty()) {
vo.setDiscounts(discounts);
}
List<OmsFlowNode> omsFlowNodes = omsFlowNodeService.selByBusSid(sid);
if (!omsFlowNodes.isEmpty()) {
List<ReviewRecord> records = new ArrayList<>(); //操作记录
for (OmsFlowNode omsFlowNode : omsFlowNodes) {
ReviewRecord reviewRecord = new ReviewRecord();
reviewRecord.setCreateByName(omsFlowNode.getCreateByName());
reviewRecord.setCreateTime(sdf.format(omsFlowNode.getCreateTime()));
reviewRecord.setRemark(omsFlowNode.getRemarks());
records.add(reviewRecord);
}
vo.setRecords(records);
}
return rb.success().setData(vo);
}
public ResultBean saveShipper(ReviewDetailsVo dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
ReviewShipper shipper = dto.getShipper();
if (null != shipper) {
SmsSalesBillshipper billshipper = smsSalesBillshipperService.selByBillSid(sid);
if (billshipper != null) {
BeanUtil.copyProperties(shipper, billshipper);
smsSalesBillshipperService.updateById(billshipper);
} else {
SmsSalesBillshipper salesBillshipper = new SmsSalesBillshipper();
BeanUtil.copyProperties(shipper, salesBillshipper);
salesBillshipper.setBillSid(sid);
smsSalesBillshipperService.insert(salesBillshipper);
}
}
return rb.success();
}
public ResultBean saveInvoice(ReviewDetailsVo dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
ReviewInvoice invoice = dto.getInvoice();
if (null != invoice) {
SmsSalesBillInvoice billInvoice = smsSalesBillInvoiceService.selByBillSid(sid);
if (billInvoice != null) {
BeanUtil.copyProperties(invoice, billInvoice);
smsSalesBillInvoiceService.updateById(billInvoice);
} else {
SmsSalesBillInvoice salesBillInvoice = new SmsSalesBillInvoice();
BeanUtil.copyProperties(invoice, salesBillInvoice);
salesBillInvoice.setBillSid(sid);
smsSalesBillInvoiceService.insert(salesBillInvoice);
}
}
return rb.success();
}
public ResultBean saveOneListData(OrderReviewVo dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if (StringUtils.isNotBlank(dto.getExpectSendDate())) {
SmsSalesBillLogistics logistics = smsSalesBillLogisticsService.selByBillSid(sid);
if (logistics != null) {
try {
logistics.setExpectSendDate(sdf.parse(dto.getExpectSendDate()));
smsSalesBillLogisticsService.updateById(logistics);
} catch (ParseException e) {
e.printStackTrace();
}
} else {
SmsSalesBillLogistics billLogistics = new SmsSalesBillLogistics();
billLogistics.setBillSid(sid);
try {
billLogistics.setExpectSendDate(sdf.parse(dto.getExpectSendDate()));
smsSalesBillLogisticsService.insert(billLogistics);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
return rb.success();
}
public ResultBean reviewConfirm(ReviewConfirmDto dto) {
ResultBean rb = ResultBean.fireFail();
List<String> sids = dto.getSids();
String type = dto.getType();
for (String sid : sids) {
SmsSalesBill smsSalesBill = fetchBySid(sid);
OmsFlowNode omsFlowNode = new OmsFlowNode();
omsFlowNode.setBillSid(sid);
omsFlowNode.setCreateBySid(dto.getCreateBySid());
omsFlowNode.setCreateByName(dto.getCreateByName());
if (type.equals("0")) {
//通过
smsSalesBill.setState(1);
if (StringUtils.isNotBlank(dto.getRemarks())) {
omsFlowNode.setRemarks("确认审核通过,审核意见:" + dto.getRemarks());
} else {
omsFlowNode.setRemarks("确认审核通过");
}
} else if (type.equals("1")) {
//不通过
smsSalesBill.setState(2);
if (StringUtils.isNotBlank(dto.getRemarks())) {
omsFlowNode.setRemarks("确认审核未通过,审核意见:" + dto.getRemarks());
} else {
omsFlowNode.setRemarks("确认审核未通过");
}
}
baseMapper.updateById(smsSalesBill);
omsFlowNodeService.insert(omsFlowNode);
}
return rb;
}
}

Loading…
Cancel
Save