完善发货记录
This commit is contained in:
parent
90b09c3ce1
commit
a008c85b88
|
|
@ -11,7 +11,7 @@
|
|||
Target Server Version : 80043 (8.0.43)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 07/10/2025 16:12:55
|
||||
Date: 07/10/2025 17:25:46
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
|
@ -1120,14 +1120,23 @@ CREATE TABLE `o_shipment` (
|
|||
`create_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`update_time` datetime NULL DEFAULT NULL,
|
||||
`update_by` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`receiver_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收件人姓名',
|
||||
`receiver_mobile` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收件人手机号',
|
||||
`address` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '收件人地址',
|
||||
`province` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省',
|
||||
`city` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '市',
|
||||
`town` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
INDEX `order_id_index`(`order_id` ASC) USING BTREE
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '发货记录表' ROW_FORMAT = DYNAMIC;
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '发货记录表' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of o_shipment
|
||||
-- ----------------------------
|
||||
INSERT INTO `o_shipment` VALUES (1, 1007, 400, 74, '6921377343921159820', '2025-10-06 10:16:50', 0, 0, NULL, 1, '极兔速递', 'JTSD', 'AAAAA', 0.00, '2025-10-06 20:29:47', NULL, 1, 0, 0, 0, 0, NULL, NULL, NULL, NULL, '2025-10-06 20:29:50', 'admin', NULL, NULL);
|
||||
INSERT INTO `o_shipment` VALUES (1, 1007, 400, 74, '6921377343921159820', '2025-10-06 10:16:50', 0, 0, NULL, 1, '极兔速递', 'JTSD', 'AAAAA', 0.00, '2025-10-06 20:29:47', NULL, 1, 0, 0, 0, 0, NULL, NULL, NULL, NULL, '2025-10-06 20:29:50', 'admin', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||
INSERT INTO `o_shipment` VALUES (2, 1007, 2, 0, 'aaa', NULL, 0, 0, NULL, 2, '极兔速递', 'JTSD', 'aa', 0.00, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-10-07 17:23:55', '手动添加发货记录', NULL, NULL, 'a', 'a', 'a', NULL, NULL, NULL);
|
||||
INSERT INTO `o_shipment` VALUES (3, 1007, 2, 0, 'aaa', NULL, 0, 0, NULL, 2, '极兔速递', 'JTSD', 'aa', 0.00, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-10-07 17:24:27', '手动添加发货记录', NULL, NULL, 'a', 'a', 'a', NULL, NULL, NULL);
|
||||
INSERT INTO `o_shipment` VALUES (4, 1007, 1, 0, 'aa', NULL, 0, 0, NULL, 1, '极兔速递', 'JTSD', 'aa', 0.00, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2025-10-07 17:25:06', '手动添加发货记录', NULL, NULL, 'd', 'd', 'a', NULL, NULL, NULL);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for o_shipment_item
|
||||
|
|
@ -1205,7 +1214,7 @@ CREATE TABLE `o_shop` (
|
|||
-- ----------------------------
|
||||
-- Records of o_shop
|
||||
-- ----------------------------
|
||||
INSERT INTO `o_shop` VALUES (1007, '抖店测试', 400, NULL, 9, 1, NULL, '4463798', NULL, NULL, 'c3tzx2q5p41h7zl69zjws9900002noae-11', NULL, NULL, '070t45roa51h7zl69zjws9900002noae-12', NULL, NULL, NULL, NULL, NULL, 0, 1759307372, 1759307261);
|
||||
INSERT INTO `o_shop` VALUES (1007, '抖店测试', 400, NULL, 9, 1, NULL, '4463798', NULL, NULL, '', NULL, NULL, '070t45roa51h7zl69zjws9900002noae-12', NULL, NULL, NULL, NULL, NULL, 0, 1759307372, 1759307261);
|
||||
INSERT INTO `o_shop` VALUES (1010, '淘宝测试店铺', 100, NULL, 9, 1, NULL, '0', NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1759365108, 1759365108);
|
||||
INSERT INTO `o_shop` VALUES (1011, '爱顾家的小店', 300, NULL, 9, 1, NULL, '0', NULL, NULL, '223c18d1d3c4445a979af58d7c034127e68e9a9a', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1759371874, 1759371874);
|
||||
INSERT INTO `o_shop` VALUES (1012, '微信小店测试', 500, NULL, 9, 1, NULL, '0', 'wx82dd65f284dd6ee3', 'a6054ccf2694e8dc51d2616e634cad39', '96_KI-x2ByMfcE_X37Orem1O7qW03jVdUdiQU8QtGbZWjWS1LqOn9lXaxArEhlnCAL-AFNhia6IGIN1gHyvCa2gkMK_KcofMs7AnKGqj_ssy3L6vKP9vVklqvNBIUgEGDgAGANPM', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 1759373401, 1759373401);
|
||||
|
|
@ -3430,43 +3439,6 @@ CREATE TABLE `sys_role` (
|
|||
INSERT INTO `sys_role` VALUES (1, '超级管理员', 'admin', 1, '1', 1, 1, '0', '0', 'admin', '2023-08-07 19:31:37', '', NULL, '超级管理员');
|
||||
INSERT INTO `sys_role` VALUES (2, '普通角色', 'common', 2, '2', 1, 1, '0', '0', 'admin', '2023-08-07 19:31:37', 'admin', '2025-09-08 19:14:34', '普通角色');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_role1
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `sys_role1`;
|
||||
CREATE TABLE `sys_role1` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色名称',
|
||||
`code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '角色编码',
|
||||
`sort` int NULL DEFAULT NULL COMMENT '显示顺序',
|
||||
`status` tinyint(1) NULL DEFAULT 1 COMMENT '角色状态(1-正常 0-停用)',
|
||||
`data_scope` tinyint NULL DEFAULT NULL COMMENT '数据权限(1-所有数据 2-部门及子部门数据 3-本部门数据 4-本人数据)',
|
||||
`create_by` bigint NULL DEFAULT NULL COMMENT '创建人 ID',
|
||||
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
|
||||
`update_by` bigint NULL DEFAULT NULL COMMENT '更新人ID',
|
||||
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
|
||||
`is_deleted` tinyint(1) NULL DEFAULT 0 COMMENT '逻辑删除标识(0-未删除 1-已删除)',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE INDEX `uk_name`(`name` ASC) USING BTREE COMMENT '角色名称唯一索引',
|
||||
UNIQUE INDEX `uk_code`(`code` ASC) USING BTREE COMMENT '角色编码唯一索引'
|
||||
) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色表' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_role1
|
||||
-- ----------------------------
|
||||
INSERT INTO `sys_role1` VALUES (1, '超级管理员', 'ROOT', 1, 1, 1, NULL, '2025-09-11 09:01:57', NULL, '2025-09-11 09:01:57', 0);
|
||||
INSERT INTO `sys_role1` VALUES (2, '系统管理员', 'ADMIN', 2, 1, 1, NULL, '2025-09-11 09:01:57', NULL, NULL, 0);
|
||||
INSERT INTO `sys_role1` VALUES (3, '访问游客', 'GUEST', 3, 1, 3, NULL, '2025-09-11 09:01:57', NULL, '2025-09-11 09:01:57', 0);
|
||||
INSERT INTO `sys_role1` VALUES (4, '系统管理员1', 'ADMIN1', 4, 1, 1, NULL, '2025-09-11 09:01:57', NULL, NULL, 0);
|
||||
INSERT INTO `sys_role1` VALUES (5, '系统管理员2', 'ADMIN2', 5, 1, 1, NULL, '2025-09-11 09:01:57', NULL, NULL, 0);
|
||||
INSERT INTO `sys_role1` VALUES (6, '系统管理员3', 'ADMIN3', 6, 1, 1, NULL, '2025-09-11 09:01:57', NULL, NULL, 0);
|
||||
INSERT INTO `sys_role1` VALUES (7, '系统管理员4', 'ADMIN4', 7, 1, 1, NULL, '2025-09-11 09:01:57', NULL, NULL, 0);
|
||||
INSERT INTO `sys_role1` VALUES (8, '系统管理员5', 'ADMIN5', 8, 1, 1, NULL, '2025-09-11 09:01:58', NULL, NULL, 0);
|
||||
INSERT INTO `sys_role1` VALUES (9, '系统管理员6', 'ADMIN6', 9, 1, 1, NULL, '2025-09-11 09:01:58', NULL, NULL, 0);
|
||||
INSERT INTO `sys_role1` VALUES (10, '系统管理员7', 'ADMIN7', 10, 1, 1, NULL, '2025-09-11 09:01:58', NULL, NULL, 0);
|
||||
INSERT INTO `sys_role1` VALUES (11, '系统管理员8', 'ADMIN8', 11, 1, 1, NULL, '2025-09-11 09:01:58', NULL, NULL, 0);
|
||||
INSERT INTO `sys_role1` VALUES (12, '系统管理员9', 'ADMIN9', 12, 1, 1, NULL, '2025-09-11 09:01:58', NULL, NULL, 0);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_role_menu
|
||||
-- ----------------------------
|
||||
|
|
@ -3521,103 +3493,6 @@ INSERT INTO `sys_role_menu` VALUES (2, 2117);
|
|||
INSERT INTO `sys_role_menu` VALUES (2, 2118);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2129);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_role_menu1
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `sys_role_menu1`;
|
||||
CREATE TABLE `sys_role_menu1` (
|
||||
`role_id` bigint NOT NULL COMMENT '角色ID',
|
||||
`menu_id` bigint NOT NULL COMMENT '菜单ID',
|
||||
UNIQUE INDEX `uk_roleid_menuid`(`role_id` ASC, `menu_id` ASC) USING BTREE COMMENT '角色菜单唯一索引'
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '角色和菜单关联表' ROW_FORMAT = DYNAMIC;
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of sys_role_menu1
|
||||
-- ----------------------------
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 1);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 2);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 3);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 4);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 5);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 6);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 20);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 21);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 22);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 23);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 24);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 26);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 30);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 31);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 32);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 33);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 36);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 37);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 38);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 39);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 40);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 41);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 70);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 71);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 72);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 73);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 74);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 75);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 76);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 77);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 78);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 79);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 81);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 84);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 88);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 89);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 90);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 95);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 97);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 102);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 105);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 106);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 107);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 108);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 109);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 110);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 111);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 112);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 117);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 118);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 119);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 120);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 121);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 122);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 123);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 124);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 125);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 126);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 127);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 128);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 129);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 130);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 133);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 134);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 135);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 136);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 137);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 138);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 139);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 140);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 141);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 142);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 143);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 144);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 145);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 146);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 147);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 148);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 149);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 150);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 151);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 152);
|
||||
INSERT INTO `sys_role_menu1` VALUES (2, 153);
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for sys_task
|
||||
-- ----------------------------
|
||||
|
|
|
|||
|
|
@ -1,13 +1,17 @@
|
|||
package cn.qihangerp.api.order.controller;
|
||||
|
||||
|
||||
import cn.qihangerp.common.AjaxResult;
|
||||
import cn.qihangerp.common.PageQuery;
|
||||
import cn.qihangerp.common.ResultVoEnum;
|
||||
import cn.qihangerp.common.TableDataInfo;
|
||||
import cn.qihangerp.module.order.domain.OShipment;
|
||||
import cn.qihangerp.module.order.domain.bo.OrderShipBo;
|
||||
import cn.qihangerp.module.order.service.OOrderService;
|
||||
import cn.qihangerp.module.order.service.ErpShipmentService;
|
||||
import cn.qihangerp.security.common.BaseController;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@AllArgsConstructor
|
||||
|
|
@ -36,30 +40,35 @@ public class ShipmentController extends BaseController {
|
|||
return getDataTable(orderService.searchOrderItemByReceiverMobile(receiverMobile));
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 订单发货
|
||||
// * @param shipping
|
||||
// * @return
|
||||
// */
|
||||
// @PostMapping("/handShip")
|
||||
// public AjaxResult orderHandShip(@RequestHeader("Authorization") String authorization,@RequestBody OrderShipBo shipping)
|
||||
// {
|
||||
/**
|
||||
* 手动添加发货记录
|
||||
* @param shipping
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/handShip")
|
||||
// public AjaxResult orderHandShip(@RequestHeader("Authorization") String authorization, @RequestBody OrderShipBo shipping)
|
||||
public AjaxResult orderHandShip( @RequestBody OrderShipBo shipping)
|
||||
{
|
||||
if(shipping.getShipType()==null) return AjaxResult.error("缺少参数:shipType");
|
||||
if(shipping.getShopId()==null) return AjaxResult.error("缺少参数:shopId");
|
||||
if(StringUtils.isEmpty(shipping.getOrderNum())) return AjaxResult.error("缺少参数:orderNum");
|
||||
if(StringUtils.isEmpty(shipping.getReceiverName())) return AjaxResult.error("缺少参数:receiverName");
|
||||
if(StringUtils.isEmpty(shipping.getReceiverMobile())) return AjaxResult.error("缺少参数:receiverMobile");
|
||||
if(StringUtils.isEmpty(shipping.getAddress())) return AjaxResult.error("缺少参数:address");
|
||||
|
||||
var result = shippingService.addRecord(shipping);
|
||||
if(result.getCode() == ResultVoEnum.SUCCESS.getIndex()) {
|
||||
// // 发货
|
||||
// TaoOrderShipBo bo = new TaoOrderShipBo();
|
||||
// bo.setShopId(shipping.getShopId());
|
||||
//// bo.setTid(shipping.getOrderId());
|
||||
// bo.setWaybillCode(shipping.getShipCode());
|
||||
// bo.setWaybillCompany(shipping.getShipCompany());
|
||||
//
|
||||
// var result = shippingService.handOrderShip(shipping);
|
||||
//// if(result.getCode() == ResultVoEnum.SUCCESS.getIndex()) {
|
||||
//// // 发货
|
||||
//// TaoOrderShipBo bo = new TaoOrderShipBo();
|
||||
//// bo.setShopId(shipping.getShopId());
|
||||
////// bo.setTid(shipping.getOrderId());
|
||||
//// bo.setWaybillCode(shipping.getShipCode());
|
||||
//// bo.setWaybillCompany(shipping.getShipCompany());
|
||||
////
|
||||
//// JSONObject jsonObject = taoApiService.orderShip(authorization, bo);
|
||||
//// return AjaxResult.success();
|
||||
//// }else{
|
||||
//// return AjaxResult.error(result.getCode(),result.getMsg());
|
||||
//// }
|
||||
//
|
||||
// return AjaxResult.success();
|
||||
// }
|
||||
// JSONObject jsonObject = taoApiService.orderShip(authorization, bo);
|
||||
return AjaxResult.success();
|
||||
} else{
|
||||
return AjaxResult.error(result.getCode(),result.getMsg());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,6 +99,36 @@ public class OShipment implements Serializable {
|
|||
*/
|
||||
private String shipOperator;
|
||||
|
||||
/**
|
||||
* 收件人姓名
|
||||
*/
|
||||
private String receiverName;
|
||||
|
||||
/**
|
||||
* 收件人手机号
|
||||
*/
|
||||
private String receiverMobile;
|
||||
|
||||
/**
|
||||
* 收件人地址
|
||||
*/
|
||||
private String address;
|
||||
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
private String province;
|
||||
|
||||
/**
|
||||
* 市
|
||||
*/
|
||||
private String city;
|
||||
|
||||
/**
|
||||
* 区
|
||||
*/
|
||||
private String town;
|
||||
|
||||
/**
|
||||
* 物流状态(0 待发货1已发货2已完成)
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@ import lombok.Data;
|
|||
|
||||
@Data
|
||||
public class OrderShipBo {
|
||||
private Integer shipType;
|
||||
private Long shopId;
|
||||
private String orderNum;
|
||||
private String shipCompany;
|
||||
private String shipCode;
|
||||
private String receiverName;
|
||||
|
|
@ -13,6 +15,7 @@ public class OrderShipBo {
|
|||
private String city;
|
||||
private String town;
|
||||
private String address;
|
||||
private String shipOperator;
|
||||
private String[] itemIds;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@ package cn.qihangerp.module.order.service;
|
|||
|
||||
import cn.qihangerp.common.PageQuery;
|
||||
import cn.qihangerp.common.PageResult;
|
||||
import cn.qihangerp.common.ResultVo;
|
||||
import cn.qihangerp.module.order.domain.OShipment;
|
||||
import cn.qihangerp.module.order.domain.bo.OrderShipBo;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
|
|
@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||
public interface ErpShipmentService extends IService<OShipment> {
|
||||
PageResult<OShipment> queryPageList(OShipment shipping, PageQuery pageQuery);
|
||||
OShipment queryDetailById(Long id);
|
||||
ResultVo<Long> addRecord(OrderShipBo shipping);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,14 @@ package cn.qihangerp.module.order.service.impl;
|
|||
|
||||
import cn.qihangerp.common.PageQuery;
|
||||
import cn.qihangerp.common.PageResult;
|
||||
import cn.qihangerp.common.ResultVo;
|
||||
import cn.qihangerp.model.entity.OLogisticsCompany;
|
||||
import cn.qihangerp.model.entity.OShop;
|
||||
import cn.qihangerp.module.mapper.OLogisticsCompanyMapper;
|
||||
import cn.qihangerp.module.mapper.OShopMapper;
|
||||
import cn.qihangerp.module.order.domain.OShipment;
|
||||
import cn.qihangerp.module.order.domain.OShipmentItem;
|
||||
import cn.qihangerp.module.order.domain.bo.OrderShipBo;
|
||||
import cn.qihangerp.module.order.mapper.OShipmentItemMapper;
|
||||
import cn.qihangerp.module.order.mapper.OShipmentMapper;
|
||||
import cn.qihangerp.module.order.service.ErpShipmentService;
|
||||
|
|
@ -14,6 +20,9 @@ import lombok.AllArgsConstructor;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author qilip
|
||||
* @description 针对表【erp_shipment(发货记录表)】的数据库操作Service实现
|
||||
|
|
@ -24,10 +33,13 @@ import org.springframework.util.StringUtils;
|
|||
public class ErpShipmentServiceImpl extends ServiceImpl<OShipmentMapper, OShipment>
|
||||
implements ErpShipmentService{
|
||||
private final OShipmentItemMapper shipmentItemMapper;
|
||||
private final OLogisticsCompanyMapper logisticsCompanyMapper;
|
||||
private final OShopMapper shopMapper;
|
||||
@Override
|
||||
public PageResult<OShipment> queryPageList(OShipment shipping, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<OShipment> queryWrapper = new LambdaQueryWrapper<OShipment>()
|
||||
.eq(shipping.getShipper()!=null, OShipment::getShipper,shipping.getShipper())
|
||||
.eq(shipping.getShipType()!=null, OShipment::getShipType,shipping.getShipType())
|
||||
.eq(StringUtils.hasText(shipping.getOrderNum()), OShipment::getOrderNum, shipping.getOrderNum())
|
||||
.eq(StringUtils.hasText(shipping.getShipCode()), OShipment::getShipCode, shipping.getShipCode())
|
||||
.eq(shipping.getShopId() != null, OShipment::getShopId, shipping.getShopId());
|
||||
|
|
@ -50,6 +62,43 @@ public class ErpShipmentServiceImpl extends ServiceImpl<OShipmentMapper, OShipme
|
|||
}
|
||||
return oShipment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultVo<Long> addRecord(OrderShipBo shipping) {
|
||||
OLogisticsCompany oLogisticsCompany = logisticsCompanyMapper.selectById(shipping.getShipCompany());
|
||||
if(oLogisticsCompany==null){
|
||||
return ResultVo.error("快递公司不存在");
|
||||
}
|
||||
OShop oShop = shopMapper.selectById(shipping.getShopId());
|
||||
if(oShop==null){
|
||||
return ResultVo.error("店铺不存在");
|
||||
}
|
||||
|
||||
OShipment shipment = new OShipment();
|
||||
shipment.setShipType(shipping.getShipType());
|
||||
shipment.setShopId(shipping.getShopId());
|
||||
shipment.setShopType(shipping.getShipType());
|
||||
shipment.setShipCode(shipping.getShipCode());
|
||||
shipment.setShipCompanyCode(oLogisticsCompany.getCode());
|
||||
shipment.setShipCompany(oLogisticsCompany.getName());
|
||||
shipment.setReceiverName(shipping.getReceiverName());
|
||||
shipment.setReceiverMobile(shipping.getReceiverMobile());
|
||||
shipment.setProvince(shipping.getProvince());
|
||||
shipment.setCity(shipping.getCity());
|
||||
shipment.setTown(shipping.getTown());
|
||||
shipment.setAddress(shipping.getAddress());
|
||||
shipment.setOrderNum(shipping.getOrderNum());
|
||||
shipment.setShipOperator(shipping.getShipOperator());
|
||||
shipment.setOrderId(0L);
|
||||
shipment.setShipper(0);
|
||||
shipment.setSupplierId(0L);
|
||||
shipment.setShipFee(BigDecimal.ZERO);
|
||||
shipment.setShipStatus(1);
|
||||
shipment.setCreateBy("手动添加发货记录");
|
||||
shipment.setCreateTime(new Date());
|
||||
this.baseMapper.insert(shipment);
|
||||
return ResultVo.success(shipment.getId());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -527,7 +527,12 @@ public class OOrderServiceImpl extends ServiceImpl<OOrderMapper, OOrder>
|
|||
oShipment.setShipTime(new Date());
|
||||
oShipment.setShipOperator(shipBo.getShippingMan());
|
||||
oShipment.setShipStatus(1);//物流状态(0 待发货1已发货2已完成)
|
||||
|
||||
oShipment.setReceiverName(erpOrder.getReceiverName());
|
||||
oShipment.setReceiverMobile(erpOrder.getReceiverMobile());
|
||||
oShipment.setProvince(erpOrder.getProvince());
|
||||
oShipment.setCity(erpOrder.getCity());
|
||||
oShipment.setTown(erpOrder.getTown());
|
||||
oShipment.setAddress(erpOrder.getAddress());
|
||||
oShipment.setPackageHeight(shipBo.getHeight());
|
||||
oShipment.setPackageWeight(shipBo.getWeight());
|
||||
oShipment.setPackageLength(shipBo.getLength());
|
||||
|
|
|
|||
|
|
@ -34,6 +34,12 @@
|
|||
<result property="createBy" column="create_by" jdbcType="VARCHAR"/>
|
||||
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
|
||||
<result property="receiverName" column="receiver_name" jdbcType="VARCHAR"/>
|
||||
<result property="receiverMobile" column="receiver_mobile" jdbcType="VARCHAR"/>
|
||||
<result property="address" column="address" jdbcType="VARCHAR"/>
|
||||
<result property="province" column="province" jdbcType="VARCHAR"/>
|
||||
<result property="city" column="city" jdbcType="VARCHAR"/>
|
||||
<result property="town" column="town" jdbcType="VARCHAR"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
|
|
@ -46,6 +52,6 @@
|
|||
package_length,package_width,package_height,
|
||||
packsge_operator,packsge_time,packages,
|
||||
remark,create_time,create_by,
|
||||
update_time,update_by
|
||||
update_time,update_by,address,province,city,town,receiver_name,receiver_mobile
|
||||
</sql>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 查询
|
||||
export function listShipping(query) {
|
||||
return request({
|
||||
url: '/api/oms-api/shipping/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 新增
|
||||
export function handShip(data) {
|
||||
return request({
|
||||
url: '/api/oms-api/shipping/handShip',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="店铺" prop="name">
|
||||
<el-form-item label="店铺" prop="shopId">
|
||||
<el-select v-model="queryParams.shopId" placeholder="请选择店铺" clearable @change="handleQuery">
|
||||
<el-option
|
||||
v-for="item in shopList"
|
||||
|
|
@ -9,13 +9,23 @@
|
|||
:label="item.name"
|
||||
:value="item.id">
|
||||
<span style="float: left">{{ item.name }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 1">淘宝天猫</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 2">京东</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 3">抖店</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 4">拼多多</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 500">微信小店</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 200">京东POP</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 280">京东自营</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 100">淘宝天猫</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 300">拼多多</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 400">抖店</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 999">线下渠道</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="发货类型" prop="shipType">
|
||||
<el-select v-model="queryParams.shipType" placeholder="发货类型" clearable @change="handleQuery">
|
||||
<el-option label="订单发货" value="1"></el-option>
|
||||
<el-option label="商品补发" value="2"></el-option>
|
||||
<el-option label="商品换货" value="3"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="订单号" prop="orderNum">
|
||||
<el-input
|
||||
v-model="queryParams.orderNum"
|
||||
|
|
@ -48,7 +58,7 @@
|
|||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="handleShipping"
|
||||
>手动发货</el-button>
|
||||
>手动添加发货记录</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">-->
|
||||
<!-- <el-button-->
|
||||
|
|
@ -102,20 +112,30 @@
|
|||
@pagination="getList"
|
||||
/>
|
||||
<!-- 对话框 -->
|
||||
<el-dialog title="手动发货" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-dialog title="手动添加发货记录" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="发货类型" prop="shipType">
|
||||
<el-select v-model="form.shipType" placeholder="发货类型" >
|
||||
<el-option label="订单发货" value="1"></el-option>
|
||||
<el-option label="商品补发" value="2"></el-option>
|
||||
<el-option label="商品换货" value="3"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="店铺" prop="shopId">
|
||||
<el-select v-model="form.shopId" placeholder="请选择店铺" clearable @change="handleQuery">
|
||||
<el-select v-model="form.shopId" placeholder="请选择店铺" >
|
||||
<el-option
|
||||
v-for="item in shopList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id">
|
||||
<span style="float: left">{{ item.name }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 1">淘宝天猫</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 2">京东</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 3">抖店</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 4">拼多多</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 500">微信小店</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 200">京东POP</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 280">京东自营</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 100">淘宝天猫</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 300">拼多多</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 400">抖店</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px" v-if="item.type === 999">线下渠道</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
|
@ -124,36 +144,45 @@
|
|||
<el-input v-model="form.orderNum" placeholder="请输入订单号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="快递公司" prop="shipCompany">
|
||||
<el-select v-model="form.shipCompany" placeholder="请选择快递公司" clearable @change="handleQuery">
|
||||
<el-select v-model="form.shipCompany" placeholder="请选择快递公司" >
|
||||
<el-option
|
||||
v-for="item in logisticsList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.code">
|
||||
:value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="快递单号" prop="shipCode">
|
||||
<el-input v-model="form.shipCode" placeholder="请输入快递单号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="快递费用" prop="shipFee">
|
||||
<el-input v-model="form.shipFee" placeholder="请输入快递费用" />
|
||||
<!-- <el-form-item label="快递费用" prop="shipFee">-->
|
||||
<!-- <el-input v-model="form.shipFee" placeholder="请输入快递费用" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="收件人" prop="receiverName">
|
||||
<el-input v-model="form.receiverName" placeholder="请输入收件人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号" prop="receiverMobile">
|
||||
<el-input v-model="form.receiverMobile" placeholder="请输入手机号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="收货地址" prop="address">
|
||||
<el-input v-model="form.address" placeholder="请输入收货地址" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发货人" prop="shipOperator">
|
||||
<el-input v-model="form.shipOperator" placeholder="请输入发货人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="包裹重量" prop="packageWeight">
|
||||
<el-input v-model="form.packageWeight" placeholder="请输入包裹重量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="包裹长度" prop="packageLength">
|
||||
<el-input v-model="form.packageLength" placeholder="包裹长度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="包裹宽度" prop="packageWidth">
|
||||
<el-input v-model="form.width" placeholder="请输入包裹宽度" />
|
||||
</el-form-item>
|
||||
<el-form-item label="包裹高度" prop="packageHeight">
|
||||
<el-input v-model="form.height" placeholder="请输入包裹高度" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="包裹重量" prop="packageWeight">-->
|
||||
<!-- <el-input v-model="form.packageWeight" placeholder="请输入包裹重量" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="包裹长度" prop="packageLength">-->
|
||||
<!-- <el-input v-model="form.packageLength" placeholder="包裹长度" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="包裹宽度" prop="packageWidth">-->
|
||||
<!-- <el-input v-model="form.width" placeholder="请输入包裹宽度" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="包裹高度" prop="packageHeight">-->
|
||||
<!-- <el-input v-model="form.height" placeholder="请输入包裹高度" />-->
|
||||
<!-- </el-form-item>-->
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
|
|
@ -164,9 +193,10 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import {listLogistics, listLogisticsStatus, listShop} from "@/api/shop/shop";
|
||||
import {listShop} from "@/api/shop/shop";
|
||||
import {listLogisticsStatus} from "@/api/shipping/logistics";
|
||||
import {MessageBox} from "element-ui";
|
||||
import {handShip, listShipping} from "@/api/api/shipping";
|
||||
import {handShip, listShipping} from "@/api/shipping/record";
|
||||
|
||||
export default {
|
||||
name: "Shop",
|
||||
|
|
@ -206,10 +236,14 @@ export default {
|
|||
},
|
||||
// 表单校验
|
||||
rules: {
|
||||
shipType: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
shopId: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
orderNum: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
shipCompany: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
shipCode: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
receiverName: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
receiverMobile: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
address: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
}
|
||||
};
|
||||
},
|
||||
|
|
@ -263,9 +297,14 @@ export default {
|
|||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
handShip(this.form).then(response => {
|
||||
this.$modal.msgSuccess("发货成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
if(response.code===200) {
|
||||
this.$modal.msgSuccess("发货成功");
|
||||
this.form={}
|
||||
this.open = false;
|
||||
this.getList();
|
||||
}else{
|
||||
this.$modal.msgError(response.msg)
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@
|
|||
<template slot-scope="scope">
|
||||
<el-button
|
||||
v-if="!scope.row.specId||scope.row.specId === 0"
|
||||
size="mini"
|
||||
size="mini" plain
|
||||
type="primary"
|
||||
icon="el-icon-edit"
|
||||
@click="handleUpdateLink(scope.row)"
|
||||
|
|
|
|||
Loading…
Reference in New Issue