Commit 2de7268e authored by 332784038@qq.com's avatar 332784038@qq.com

Merge remote-tracking branch 'origin/release' into release

parents 8fed62d8 f6e3039d
......@@ -82,6 +82,44 @@ VALUES (1, '1', '等待消息', 'Waiting for message', 'customer_followup_result
-- ----------------------------
-- Table structure for ecw_customer_followup
-- ----------------------------
DROP TABLE IF EXISTS `ecw_customer_followup`;
CREATE TABLE `ecw_customer_followup` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`number` varchar(64) NULL DEFAULT NULL COMMENT '编号',
`parent_number` varchar(64) NULL DEFAULT NULL COMMENT '上一级跟进单号',
`status` int NULL DEFAULT NULL COMMENT '状态 字典customer_followup_status',
`customer_id` bigint NULL DEFAULT NULL COMMENT '客户编号',
`offer_id` bigint NULL DEFAULT NULL COMMENT '报价单',
`follow_type` tinyint NULL DEFAULT NULL COMMENT '跟进类型 字典customer_followup_type',
`follow_time` datetime NULL DEFAULT NULL COMMENT '跟进时间',
`contact_name` varchar(63) NULL DEFAULT NULL COMMENT '联系人',
`follow_method` tinyint NULL DEFAULT NULL COMMENT '跟进方式 字典customer_followup_method',
`follow_user_id` bigint NULL DEFAULT NULL COMMENT '客户经理/跟进业务员id',
`purpose` varchar(512) NULL DEFAULT NULL COMMENT '目的',
`result_type` tinyint NULL DEFAULT NULL COMMENT '跟进结果 字典customer_followup_result_type',
`feedback` varchar(2048) NULL DEFAULT NULL COMMENT '客户反馈',
`attatchment` varchar(2048) NULL DEFAULT NULL COMMENT '附件 多个以逗号分隔',
`next_time` datetime NULL DEFAULT NULL COMMENT '下次跟进时间',
`next_plan` varchar(2048) NULL DEFAULT NULL COMMENT '下次跟进计划',
`creator` varchar(63) NOT NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updater` varchar(63) NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
PRIMARY KEY (`id`)
) ENGINE = InnoDB AUTO_INCREMENT = 1 COMMENT = '客户跟进表';
-- 下面为刷新数据的sql
-- 更新客户角色
update ecw_customer set roles = '2' where FIND_IN_SET(2, type) != 0;
update ecw_customer set roles = '3' where FIND_IN_SET(3, type) != 0;
......@@ -96,3 +134,15 @@ update ecw_customer a
set a.customer_service_confirmed_time = b.maxtime
where a.deleted = 0;
-- 刷新客户跟进数据
insert into ecw_customer_followup(id, number, parent_number, `status`, customer_id, offer_id, follow_type, follow_time, contact_name,
follow_method, follow_user_id, purpose, result_type, feedback, attatchment,
next_time, next_plan, creator, create_time, updater, update_time, deleted)
select null, null, null, 1, customer_id, null, 1, follow_time, contact_name, follow_method, follow_user_id, null, 1,
CONCAT('【客户反馈:】\r\n', feedback, '\r\n\r\n【处理结果:】\r\n', result),
null, null, null, creator, create_time, updater, update_time, deleted
from ecw_customer_follow;
-- 更新客户跟进编号
update ecw_customer_followup set number = CONCAT('GJ', 2024000000 + id);
......@@ -5,3 +5,10 @@ INSERT INTO `system_dict_data` (`sort`, `value`, `label`, `label_en`, `dict_type
VALUES (23, '23', '设置默认付款', 'Set Customer Default Pay', 'customer_operate_type', 0, 'default', '', NULL, '1', now(), '115', now(), b'0');
INSERT INTO `system_dict_data` (`sort`, `value`, `label`, `label_en`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (24, '24', '设置默认开票', 'Set Customer Default Billing', 'customer_operate_type', 0, 'default', '', NULL, '1', now(), '115', now(), b'0');
INSERT INTO `system_dict_data` (`sort`, `value`, `label`, `label_en`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (25, '25', '新增跟进纪录', 'Create Customer Followup', 'customer_operate_type', 0, 'default', '', NULL, '1', now(), '115', now(), b'0');
INSERT INTO `system_dict_data` (`sort`, `value`, `label`, `label_en`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (26, '26', '编辑跟进纪录', 'Update Customer Followup', 'customer_operate_type', 0, 'default', '', NULL, '1', now(), '115', now(), b'0');
INSERT INTO `system_dict_data` (`sort`, `value`, `label`, `label_en`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`)
VALUES (27, '27', '提交跟进纪录', 'Commit Customer Followup', 'customer_operate_type', 0, 'default', '', NULL, '1', now(), '115', now(), b'0');
......@@ -12,6 +12,11 @@ alter table `ecw_order_consignee`
alter table `ecw_order`
add column `pick_state` tinyint DEFAULT 0 COMMENT '提货状态:0 未提货 1 部分提货 2 已提货';
alter table `ecw_order`
add column `pick_ratio` int DEFAULT 0 COMMENT '提货率';
add column `pick_ratio` decimal(5,2) DEFAULT '0.00' COMMENT '提货率';
alter table `ecw_order`
add column `pick_num` int DEFAULT 0 COMMENT '提货箱数';
-- 批量刷新订单提货数量、提货率、提货状态
update ecw_order t LEFT JOIN (select a.order_id,sum(a.pick_num) as pickNum from ecw_order_pickup a where a.deleted=0 GROUP BY a.order_id) t1 on t.order_no=t1.order_id set t.pick_num=t1.pickNum,t.pick_ratio=ROUND(t1.pickNum/t.sum_num,2)*100,t.pick_state=(case when t1.pickNum is null then 0 when t1.pickNum=t.sum_num then 3 else 2 end);
-- 已提货和部分提货的订单批量刷新订单主状态
update ecw_order t set t.`status`=16 where t.`status` in (20,21);
\ No newline at end of file
......@@ -9,8 +9,14 @@ import javax.annotation.Resource;
import cn.iocoder.yudao.framework.i18n.core.I18nMessage;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.customer.dal.dataobject.customer.CustomerDO;
import cn.iocoder.yudao.module.customer.dal.mysql.customer.CustomerMapper;
import cn.iocoder.yudao.module.customer.service.customerOperateLog.CustomerOperateLogService;
import cn.iocoder.yudao.module.customer.vo.customerOperateLog.CustomerOperateLogCreateReqVO;
import cn.iocoder.yudao.module.ecw.enums.CustomerFollowupStatusEnum;
import cn.iocoder.yudao.module.ecw.enums.CustomerOperateTypeEnum;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
......@@ -36,6 +42,13 @@ public class CustomerFollowupServiceImpl extends AbstractService<CustomerFollowu
@Resource
private CustomerFollowupMapper followupMapper;
@Resource
private CustomerOperateLogService customerOperateLogService;
@Resource
private CustomerMapper customerMapper;
/**
* 跟进单编号生成方式:GJ+年份+六位数字,按年份累计
* @return
......@@ -66,6 +79,31 @@ public class CustomerFollowupServiceImpl extends AbstractService<CustomerFollowu
// 插入
CustomerFollowupDO followup = CustomerFollowupConvert.INSTANCE.convert(createReqVO);
followupMapper.insert(followup);
Long customerId = createReqVO.getCustomerId();
if (customerId != null) {
CustomerDO customer = customerMapper.selectById(customerId);
if (customer == null) {
// 插入日志
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
//保存客户捞取记录
CustomerOperateLogCreateReqVO customerOperateLogCreateReqVO = new CustomerOperateLogCreateReqVO()
.setOperator(loginUser == null ? null : loginUser.getId())
.setOperatorName(loginUser == null ? null : loginUser.getNickname())
.setCustomerId(customer.getId())
.setNumber(customer.getNumber())
.setName(customer.getName())
.setNewCustomerService(customer.getCustomerService())
.setOldCustomerService(customer.getCustomerService())
.setOldEstimateEnterOpenSeaTime(customer.getEstimateEnterOpenSeaTime())
.setNewEstimateEnterOpenSeaTime(customer.getEstimateEnterOpenSeaTime())
.setOperateType(CustomerOperateTypeEnum.FOLLOWUP_CREATE.getValue())
.setRemark("新增跟进纪录" + (CustomerFollowupStatusEnum.UnCommited.getValue().equals(createReqVO.getStatus()) ? "" : ",并提交"));
customerOperateLogService.createOperateLog(customerOperateLogCreateReqVO);
}
}
// 返回
return followup.getId();
}
......@@ -84,6 +122,30 @@ public class CustomerFollowupServiceImpl extends AbstractService<CustomerFollowu
// 更新
CustomerFollowupDO updateObj = CustomerFollowupConvert.INSTANCE.convert(updateReqVO);
followupMapper.updateById(updateObj);
Long customerId = updateReqVO.getCustomerId();
if (customerId != null) {
CustomerDO customer = customerMapper.selectById(customerId);
if (customer == null) {
// 插入日志
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
//保存客户捞取记录
CustomerOperateLogCreateReqVO customerOperateLogCreateReqVO = new CustomerOperateLogCreateReqVO()
.setOperator(loginUser == null ? null : loginUser.getId())
.setOperatorName(loginUser == null ? null : loginUser.getNickname())
.setCustomerId(customer.getId())
.setNumber(customer.getNumber())
.setName(customer.getName())
.setNewCustomerService(customer.getCustomerService())
.setOldCustomerService(customer.getCustomerService())
.setOldEstimateEnterOpenSeaTime(customer.getEstimateEnterOpenSeaTime())
.setNewEstimateEnterOpenSeaTime(customer.getEstimateEnterOpenSeaTime())
.setOperateType(CustomerOperateTypeEnum.FOLLOWUP_UPDATE.getValue())
.setRemark("更新跟进纪录" + (CustomerFollowupStatusEnum.UnCommited.getValue().equals(updateReqVO.getStatus()) ? "" : ",并提交"));
customerOperateLogService.createOperateLog(customerOperateLogCreateReqVO);
}
}
}
@Override
......@@ -94,8 +156,39 @@ public class CustomerFollowupServiceImpl extends AbstractService<CustomerFollowu
if (customerFollowupDO == null) {
throw exception(FOLLOWUP_NOT_EXISTS);
}
if (CustomerFollowupStatusEnum.Commited.getValue().equals(customerFollowupDO.getStatus())) {
throw exception(FOLLOWUP_ALREADY_SUBMITTED);
}
customerFollowupDO.setStatus(updateStatusReqVO.getStatus());
followupMapper.updateById(customerFollowupDO);
Long customerId = customerFollowupDO.getCustomerId();
if (customerId != null) {
CustomerDO customer = customerMapper.selectById(customerId);
if (customer == null) {
// 插入日志
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
//保存客户捞取记录
CustomerOperateLogCreateReqVO customerOperateLogCreateReqVO = new CustomerOperateLogCreateReqVO()
.setOperator(loginUser == null ? null : loginUser.getId())
.setOperatorName(loginUser == null ? null : loginUser.getNickname())
.setCustomerId(customer.getId())
.setNumber(customer.getNumber())
.setName(customer.getName())
.setNewCustomerService(customer.getCustomerService())
.setOldCustomerService(customer.getCustomerService())
.setOldEstimateEnterOpenSeaTime(customer.getEstimateEnterOpenSeaTime())
.setNewEstimateEnterOpenSeaTime(customer.getEstimateEnterOpenSeaTime())
.setOperateType(CustomerOperateTypeEnum.FOLLOWUP_COMMIT.getValue())
.setRemark("提交跟进纪录");
customerOperateLogService.createOperateLog(customerOperateLogCreateReqVO);
}
}
}
@Override
......
......@@ -54,6 +54,10 @@ public enum CustomerOperateTypeEnum {
CHANGE_DEFAULT_BILLING(24, "设置默认开票"),
FOLLOWUP_CREATE(25, "新增跟进纪录"),
FOLLOWUP_UPDATE(26, "编辑跟进纪录"),
FOLLOWUP_COMMIT(27, "提交跟进纪录"),
DELETE(100, "删除"),
......
......@@ -40,7 +40,6 @@ public class AppRegionController {
@GetMapping("/get")
@ApiOperation("获得区域设置")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@PreAuthorize("@ss.hasPermission('ecw:region:query')")
public CommonResult<RegionRespVO> getRegion(@RequestParam("id") Long id) {
RegionDO region = regionService.getRegion(id);
return success(RegionConvert.INSTANCE.convert(region));
......@@ -50,7 +49,7 @@ public class AppRegionController {
@GetMapping("/list")
@ApiOperation("获得区域设置列表")
@PreAuthenticated
// @PreAuthenticated
public CommonResult<List<RegionRespVO>> getRegionList(RegionListReqVO reqVO) {
List<RegionDO> list = regionService.getSimpleDepts(reqVO);
list.sort(Comparator.comparing(RegionDO::getSort));
......@@ -59,7 +58,7 @@ public class AppRegionController {
@GetMapping("/page")
@ApiOperation("获得区域设置分页")
@PreAuthenticated
// @PreAuthenticated
public CommonResult<PageResult<RegionRespVO>> getRegionPage(@Valid RegionPageReqVO pageVO) {
PageResult<RegionDO> pageResult = regionService.getRegionPage(pageVO);
return success(RegionConvert.INSTANCE.convertPage(pageResult));
......@@ -68,7 +67,7 @@ public class AppRegionController {
@GetMapping("/getTree")
@ApiOperation("获得区域子列表")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@PreAuthenticated
// @PreAuthenticated
public CommonResult<RegionRespVO> getTree(@RequestParam("id") Long id) {
List<RegionDO> list = regionService.getByParent(id);
List<RegionRespVO> dataList = RegionConvert.INSTANCE.convertList(list);
......@@ -83,7 +82,7 @@ public class AppRegionController {
@GetMapping("/getListTree")
@ApiOperation("获得区域设置列表")
@PreAuthenticated
// @PreAuthenticated
public CommonResult<List<RegionRespVO>> listTree(RegionListReqVO reqVO) {
List<RegionDO> list = regionService.getSimpleDepts(reqVO);
list.sort(Comparator.comparing(RegionDO::getSort));
......@@ -108,7 +107,7 @@ public class AppRegionController {
@GetMapping("/getCityList")
@ApiOperation("获得区域城市列表")
@PreAuthenticated
// @PreAuthenticated
public CommonResult<List<RegionRespVO>> getCityList() {
List<RegionDO> cityList = regionService.getCityList();
return success(RegionConvert.INSTANCE.convertList(cityList));
......@@ -116,7 +115,7 @@ public class AppRegionController {
@GetMapping("/getTradeCityList")
@ApiOperation("获得始发、目的城市列表")
@PreAuthenticated
// @PreAuthenticated
public CommonResult<List<RegionRespVO>> getTradeCityList(TradeRegionListReqVO reqVO) {
if (Objects.nonNull(reqVO.getChannelId())){
// 如果有渠道信息,则查询可出目的地国家下的目的地城市
......
......@@ -538,7 +538,7 @@ public class OrderDO extends BaseDO {
private Integer pickState;
@ApiModelProperty(value = "'提货率'")
private String pickRatio;
private BigDecimal pickRatio;
@ApiModelProperty(value = "'提货箱数'")
private Integer pickNum;
......
......@@ -534,7 +534,7 @@ public class OrderBackInfoDto {
private Integer pickState;
@ApiModelProperty(value = "'提货率'")
private Integer pickRatio;
private BigDecimal pickRatio;
@ApiModelProperty(value = "'提货箱数'")
private Integer pickNum;
......
package cn.iocoder.yudao.module.order.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
@AllArgsConstructor
@Getter
public enum PickStateEnum {
unpick(0,"待提货"),
picking(1,"提货中"),
partPick(2,"部分提货"),
picked(3,"已提货");
private Integer pickState;
private String pickStateStr;
}
......@@ -29,6 +29,7 @@ import cn.iocoder.yudao.module.order.vo.orderPickup.*;
import cn.iocoder.yudao.module.order.vo.orderTime.OrderTimeQueryVO;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
......@@ -38,6 +39,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
......@@ -122,7 +124,7 @@ public class OrderPickupServiceImpl extends AbstractService<OrderPickupMapper, O
orderPickup.setOrderStatus(orderDO.getStatus());
}
orderPickupMapper.insert(orderPickup);
orderService.updateStatus(null, createReqVO.getOrderId(), OrderStatusEnum.PICKED_UP.getValue(), null, null, null, null, null, createReqVO.getPickTime(), false);
// orderService.updateStatus(null, createReqVO.getOrderId(), OrderStatusEnum.PICKED_UP.getValue(), null, null, null, null, null, createReqVO.getPickTime(), false);
//升级客户vip等级
updateCustomerLevelUp(orderDO);
......@@ -188,6 +190,7 @@ public class OrderPickupServiceImpl extends AbstractService<OrderPickupMapper, O
}
}
}
dealDeliveryRate(createReqVO.getOrderId(),orderDO.getSumNum(),PickStateEnum.picked.getPickState());
// 返回
return orderPickup.getId();
}
......@@ -204,6 +207,19 @@ public class OrderPickupServiceImpl extends AbstractService<OrderPickupMapper, O
return orderDO.getSumNum() - allPickNum;
}
private void dealDeliveryRate(String orderNo,Integer sumNum,Integer pickState) {
List<OrderPickupDO> orderPickupDOS = orderPickupMapper.selectList(OrderPickupDO::getOrderId, orderNo);
int pickedSum = orderPickupDOS.stream().mapToInt(OrderPickupDO::getPickNum).sum();
BigDecimal pickRatio = new BigDecimal((double) pickedSum / sumNum * 100 );
pickRatio.setScale(2, RoundingMode.HALF_UP);
orderService.update(new LambdaUpdateWrapper<OrderDO>()
.set(OrderDO::getPickNum, pickedSum)
.set(OrderDO::getPickRatio, pickRatio)
.set(OrderDO::getPickState,pickState)
.eq(OrderDO::getOrderNo,orderNo)
);
}
private void deleteCustomLevelAndCreditLevelLog(OrderPickupDO orderPickupDO) {
OrderBackInfoDto info = orderQueryService.info(orderService.selectOne(OrderDO::getOrderNo, orderPickupDO.getOrderId()).getOrderId());
if (info.getSumNum() != 0) {
......@@ -317,12 +333,14 @@ public class OrderPickupServiceImpl extends AbstractService<OrderPickupMapper, O
// 获取未撤销的提货记录
List<OrderPickupDO> pickupDOList = orderPickupMapper.selectList(new LambdaQueryWrapper<OrderPickupDO>().eq(OrderPickupDO::getOrderId, orderPickupDO.getOrderId()).orderByDesc(OrderPickupDO::getPickTime));
if (CollectionUtil.isNotEmpty(pickupDOList) && pickupDOList.size() > 0) {
orderService.updateStatus(one.getOrderId(), null, OrderStatusEnum.PART_PICKED_UP.getValue(), null, null, null, null, null);
// orderService.updateStatus(one.getOrderId(), null, OrderStatusEnum.PART_PICKED_UP.getValue(), null, null, null, null, null);
dealDeliveryRate(one.getOrderNo(),one.getSumNum(),PickStateEnum.partPick.getPickState());
} else {
// 找到已删除 订单状态大于0的数据来恢复订单状态
OrderPickupDO delOrderPickupDO = orderPickupMapper.selectDeletedPickup(orderPickupDO.getOrderId());
// 这里需要考虑到老数据的空指针异常
orderService.updateStatus(one.getOrderId(), null, Objects.nonNull(delOrderPickupDO) ? delOrderPickupDO.getOrderStatus() : 16, null, null, null, null, null);
// orderService.updateStatus(one.getOrderId(), null, Objects.nonNull(delOrderPickupDO) ? delOrderPickupDO.getOrderStatus() : 16, null, null, null, null, null);
dealDeliveryRate(one.getOrderNo(),one.getSumNum(),PickStateEnum.picked.getPickState());
}
if (Objects.equals(one.getTransportId(), TransportTypeShortEnum.AIR_FREIGHT_LINE.getValue())) {
......@@ -473,7 +491,7 @@ public class OrderPickupServiceImpl extends AbstractService<OrderPickupMapper, O
orderPickup.setOrderStatus(orderDO.getStatus());
}
orderPickupMapper.insert(orderPickup);
orderService.updateStatus(null, orderDO.getOrderNo(), OrderStatusEnum.PICKED_UP.getValue(), null, null, null, null, null, createReqVO.getPickTime(), false);
// orderService.updateStatus(null, orderDO.getOrderNo(), OrderStatusEnum.PICKED_UP.getValue(), null, null, null, null, null, createReqVO.getPickTime(), false);
//升级客户vip等级
updateCustomerLevelUp(orderDO);
......@@ -516,6 +534,7 @@ public class OrderPickupServiceImpl extends AbstractService<OrderPickupMapper, O
}
}
}
dealDeliveryRate(createReqVO.getOrderId(),orderDO.getSumNum(),PickStateEnum.picked.getPickState());
}
}
}
......@@ -630,7 +649,7 @@ public class OrderPickupServiceImpl extends AbstractService<OrderPickupMapper, O
orderPickup.setOrderStatus(orderDO.getStatus());
}
orderPickupMapper.insert(orderPickup);
orderService.updateStatus(null, createReqVO.getOrderId(), OrderStatusEnum.PART_PICKED_UP.getValue(), null, null, null, null, null, createReqVO.getPickTime(), false);
// orderService.updateStatus(null, createReqVO.getOrderId(), OrderStatusEnum.PART_PICKED_UP.getValue(), null, null, null, null, null, createReqVO.getPickTime(), false);
//发送站内信
sendMsg(orderDO.getOrderNo(), orderDO.getMarks(), String.valueOf(orderPickup.getPickNum()), DateUtils.formatDate(orderPickup.getPickTime()), Long.valueOf(orderPickup.getCreator()));
......@@ -638,6 +657,7 @@ public class OrderPickupServiceImpl extends AbstractService<OrderPickupMapper, O
OrderDO orderDO1 = new OrderDO();
BeanUtils.copyProperties(orderDO, orderDO1);
insertCustomLevelAndCreditLevelLog(orderPickup, orderDO1, false);
dealDeliveryRate(createReqVO.getOrderId(),orderDO.getSumNum(),PickStateEnum.partPick.getPickState());
} else if (num < 0) {
//如果分批提的数量加上已分批提的数量超过了总量 则重新计算成剩余的量
throw exception(PICK_UP_TOO_MORE);
......@@ -652,7 +672,7 @@ public class OrderPickupServiceImpl extends AbstractService<OrderPickupMapper, O
orderPickup.setOrderStatus(orderDO.getStatus());
}
orderPickupMapper.insert(orderPickup);
orderService.updateStatus(null, createReqVO.getOrderId(), OrderStatusEnum.PICKED_UP.getValue(), null, null, null, null, null, createReqVO.getPickTime(), false);
// orderService.updateStatus(null, createReqVO.getOrderId(), OrderStatusEnum.PICKED_UP.getValue(), null, null, null, null, null, createReqVO.getPickTime(), false);
//发送站内信
sendMsg(orderDO.getOrderNo(), orderDO.getMarks(), String.valueOf(orderPickup.getPickNum()), DateUtils.formatDate(orderPickup.getPickTime()), Long.valueOf(orderPickup.getCreator()));
......@@ -662,6 +682,7 @@ public class OrderPickupServiceImpl extends AbstractService<OrderPickupMapper, O
BeanUtils.copyProperties(orderDO, orderDO1);
insertCustomLevelAndCreditLevelLog(orderPickup, orderDO1, true);
updateCustomerLevelUp(orderDO1);
dealDeliveryRate(createReqVO.getOrderId(),orderDO.getSumNum(),PickStateEnum.picked.getPickState());
}
orderBusinessService.addOrderOperateLog(orderDO.getOrderId(), "", "分批提货", "");
if (Objects.equals(orderDO.getTransportId(), TransportTypeShortEnum.AIR_FREIGHT_LINE.getValue())) {
......
......@@ -375,7 +375,7 @@ public class OrderBackPageVO {
private Integer pickState;
@ApiModelProperty(value = "'提货率'")
private Integer pickRatio;
private BigDecimal pickRatio;
@ApiModelProperty(value = "'提货箱数'")
private Integer pickNum;
......
......@@ -631,7 +631,7 @@ public class OrderBackVO {
private Integer pickState;
@ApiModelProperty(value = "'提货率'")
private Integer pickRatio;
private BigDecimal pickRatio;
@ApiModelProperty(value = "'提货箱数'")
private Integer pickNum;
......
......@@ -359,7 +359,7 @@ public class OrderBaseVO {
private Integer pickState;
@ApiModelProperty(value = "'提货率'")
private Integer pickRatio;
private BigDecimal pickRatio;
@ApiModelProperty(value = "'提货箱数'")
private Integer pickNum;
......
......@@ -542,16 +542,16 @@ public class OrderQueryVO {
private Integer pickState;
@ApiModelProperty(value = "'提货率'")
private Integer pickRatio;
private BigDecimal pickRatio;
@ApiModelProperty(value = "小于等于提货率")
private String lePickRatio;
private BigDecimal lePickRatio;
@ApiModelProperty(value = "等于提货率")
private String eqPickRatio;
private BigDecimal eqPickRatio;
@ApiModelProperty(value = "大于等于提货率")
private String gePickRatio;
private BigDecimal gePickRatio;
@ApiModelProperty(value = "'提货箱数'")
private Integer pickNum;
......
......@@ -300,6 +300,7 @@ public interface ProductMapper extends BaseMapperX<ProductDO> {
.likeIfPresent(ProductDO::getProductCode, reqVO.getProductCode())
.likeIfPresent(ProductDO::getCustomsCode, reqVO.getCustomsCode())
.eqIfPresent(ProductDO::getTypeId, reqVO.getTypeId())
.inIfPresent(ProductDO::getTypeId, reqVO.getTypeIds())
.eqIfPresent(ProductDO::getAuditStatus, reqVO.getAuditStatus())
.eqIfPresent(ProductDO::getStatus, reqVO.getStatus())
.inIfPresent(ProductDO::getId, idList)
......
......@@ -16,6 +16,9 @@ public class ProductExportReqVO {
@ApiModelProperty(value = "商品类型id")
private Long typeId;
@ApiModelProperty(value = "商品类型ids")
private List<Long> typeIds;
@ApiModelProperty(value = "商品属性id")
private String attrId;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment