集成oms服务模块
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
package com.mhd.oms.domain;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "订单公共类", description = "订单公共类")
|
||||
public class OrderInfoPO implements Serializable {
|
||||
|
||||
@ApiModelProperty("订单号/商流订单号")
|
||||
private String orderNo;
|
||||
@ApiModelProperty("货主")
|
||||
private String shipper;
|
||||
@ApiModelProperty("业务订单类型")
|
||||
private String orderType;
|
||||
@ApiModelProperty("客户订单号")
|
||||
private String customerOrders;
|
||||
|
||||
@ApiModelProperty("拦截状态;0未拦截1拦截成功2拦截失败")
|
||||
private Integer tacklState;
|
||||
|
||||
@ApiModelProperty("作业任务类型名称")
|
||||
private String jobTaskType;
|
||||
|
||||
@ApiModelProperty("货主ID")
|
||||
private Long shipperId;
|
||||
|
||||
@ApiModelProperty("供应商ID")
|
||||
private Long supplierId;
|
||||
|
||||
@ApiModelProperty("客户ID")
|
||||
private Long customerId;
|
||||
|
||||
@ApiModelProperty("订单类型ID")
|
||||
private Long orderTypeId;
|
||||
|
||||
@ApiModelProperty("入库单类型编码")
|
||||
private String orderTypeCode;
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.mhd.oms.domain.deliveryInfo.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 发货信息对象 oms_delivery_info
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName(value = "oms_delivery_info")
|
||||
public class DeliveryInfo extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("发货人")
|
||||
@Excel(name = "发货人")
|
||||
private String consigner;
|
||||
|
||||
@ApiModelProperty("发货人联系电话")
|
||||
@Excel(name = "发货人联系电话")
|
||||
private String consignerPhone;
|
||||
|
||||
@ApiModelProperty("发货人所在区域编码")
|
||||
@Excel(name = "发货人所在区域编码")
|
||||
private String consignerAreaCode;
|
||||
|
||||
@ApiModelProperty("发货人所在区域")
|
||||
@Excel(name = "发货人所在区域")
|
||||
private String consignerArea;
|
||||
|
||||
@ApiModelProperty("发货人详细地址")
|
||||
@Excel(name = "发货人详细地址")
|
||||
private String consignerAddress;
|
||||
|
||||
@ApiModelProperty("发货地址经纬度")
|
||||
@Excel(name = "发货地址经纬度")
|
||||
private String saddressLatLon;
|
||||
|
||||
@ApiModelProperty("预计发货时间")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private Date estimatedDeliveryTime;
|
||||
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package com.mhd.oms.domain.deliveryInfo.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.oms.domain.deliveryInfo.entity.DeliveryInfo;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.po.DeliveryInfoPO;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.todo.DeliveryInfoDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 发货信息Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
public interface IDeliveryInfoService extends IService<DeliveryInfo>
|
||||
{
|
||||
/**
|
||||
* 分页查询发货信息列表
|
||||
*/
|
||||
public List<DeliveryInfoPO> queryList(DeliveryInfoDO deliveryInfoDO);
|
||||
|
||||
/**
|
||||
* 新增发货信息
|
||||
*/
|
||||
public Boolean insert(DeliveryInfoDO deliveryInfoDO);
|
||||
|
||||
/**
|
||||
* 修改发货信息
|
||||
*/
|
||||
public Boolean update(DeliveryInfoDO deliveryInfoDO);
|
||||
|
||||
/**
|
||||
* 批量删除发货信息
|
||||
*/
|
||||
public Boolean delete(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 查询发货信息
|
||||
*/
|
||||
public DeliveryInfoPO getInfo(Long id);
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
Boolean batchInsert(List<DeliveryInfoDO> deliveryInfoDOList);
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.mhd.oms.domain.deliveryInfo.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.oms.domain.deliveryInfo.entity.DeliveryInfo;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.po.DeliveryInfoPO;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.todo.DeliveryInfoDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 发货信息Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
public interface DeliveryInfoMapper extends BaseMapper<DeliveryInfo>
|
||||
{
|
||||
/**
|
||||
* 查询发货信息列表
|
||||
*/
|
||||
public List<DeliveryInfoPO> queryList(DeliveryInfoDO deliveryInfoDO);
|
||||
|
||||
}
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
package com.mhd.oms.domain.deliveryInfo.repository.persistence;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.oms.domain.deliveryInfo.entity.DeliveryInfo;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.facade.IDeliveryInfoService;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.mapper.DeliveryInfoMapper;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.po.DeliveryInfoPO;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.todo.DeliveryInfoDO;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 发货信息Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
@Service
|
||||
public class DeliveryInfoImpl extends ServiceImpl<DeliveryInfoMapper, DeliveryInfo> implements IDeliveryInfoService {
|
||||
@Autowired
|
||||
private DeliveryInfoMapper deliveryInfoMapper;
|
||||
|
||||
/**
|
||||
* 查询发货信息列表
|
||||
*/
|
||||
@Override
|
||||
public List<DeliveryInfoPO> queryList(DeliveryInfoDO deliveryInfoDO)
|
||||
{
|
||||
return deliveryInfoMapper.queryList(deliveryInfoDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增发货信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(DeliveryInfoDO deliveryInfoDO) {
|
||||
DeliveryInfo deliveryInfo = new DeliveryInfo();
|
||||
BeanUtils.copyProperties(deliveryInfoDO,deliveryInfo);
|
||||
return this.save(deliveryInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改发货信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(DeliveryInfoDO deliveryInfoDO) {
|
||||
DeliveryInfo deliveryInfo = new DeliveryInfo();
|
||||
BeanUtils.copyProperties(deliveryInfoDO,deliveryInfo);
|
||||
return this.updateById(deliveryInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除发货信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] ids ) {
|
||||
List<DeliveryInfo> list = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
DeliveryInfo deliveryInfo = new DeliveryInfo();
|
||||
deliveryInfo.setId(id);
|
||||
deliveryInfo.setDelFlag(2);
|
||||
list.add(deliveryInfo);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改发货信息
|
||||
*/
|
||||
@Override
|
||||
public DeliveryInfoPO getInfo(Long id) {
|
||||
DeliveryInfo deliveryInfo = this.getById(id);
|
||||
DeliveryInfoPO deliveryInfoPO = new DeliveryInfoPO();
|
||||
BeanUtils.copyProperties(deliveryInfo,deliveryInfoPO);
|
||||
return deliveryInfoPO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean batchInsert(List<DeliveryInfoDO> deliveryInfoDOList) {
|
||||
List<DeliveryInfo> deliveryInfoList = deliveryInfoDOList.stream().map(deliveryInfoDO -> {
|
||||
DeliveryInfo deliveryInfo = new DeliveryInfo();
|
||||
BeanUtils.copyProperties(deliveryInfoDO, deliveryInfo);
|
||||
return deliveryInfo;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
return this.saveBatch(deliveryInfoList);
|
||||
}
|
||||
}
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
package com.mhd.oms.domain.deliveryInfo.repository.po;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 发货信息对象 oms_delivery_info
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "发货信息对象", description = "发货信息响应对象")
|
||||
public class DeliveryInfoPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("发货人")
|
||||
@Excel(name = "发货人")
|
||||
private String consigner;
|
||||
|
||||
@ApiModelProperty("发货人联系电话")
|
||||
@Excel(name = "发货人联系电话")
|
||||
private String consignerPhone;
|
||||
|
||||
@ApiModelProperty("发货人所在区域编码")
|
||||
@Excel(name = "发货人所在区域编码")
|
||||
private String consignerAreaCode;
|
||||
|
||||
@ApiModelProperty("发货人所在区域")
|
||||
@Excel(name = "发货人所在区域")
|
||||
private String consignerArea;
|
||||
|
||||
@ApiModelProperty("发货人详细地址")
|
||||
@Excel(name = "发货人详细地址")
|
||||
private String consignerAddress;
|
||||
|
||||
@ApiModelProperty("发货地址经纬度")
|
||||
@Excel(name = "发货地址经纬度")
|
||||
private String saddressLatLon;
|
||||
|
||||
@ApiModelProperty("预计发货时间")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private Date estimatedDeliveryTime;
|
||||
|
||||
|
||||
}
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
package com.mhd.oms.domain.deliveryInfo.repository.todo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 发货信息对象 oms_delivery_info
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class DeliveryInfoDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("发货人")
|
||||
@Excel(name = "发货人")
|
||||
private String consigner;
|
||||
|
||||
@ApiModelProperty("发货人联系电话")
|
||||
@Excel(name = "发货人联系电话")
|
||||
private String consignerPhone;
|
||||
|
||||
@ApiModelProperty("发货人所在区域编码")
|
||||
@Excel(name = "发货人所在区域编码")
|
||||
private String consignerAreaCode;
|
||||
|
||||
@ApiModelProperty("发货人所在区域")
|
||||
@Excel(name = "发货人所在区域")
|
||||
private String consignerArea;
|
||||
|
||||
@ApiModelProperty("发货人详细地址")
|
||||
@Excel(name = "发货人详细地址")
|
||||
private String consignerAddress;
|
||||
|
||||
@ApiModelProperty("发货地址经纬度")
|
||||
@Excel(name = "发货地址经纬度")
|
||||
private String saddressLatLon;
|
||||
|
||||
@ApiModelProperty("预计发货时间")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private Date estimatedDeliveryTime;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
}
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
package com.mhd.oms.domain.deliveryInfo.service;
|
||||
|
||||
import com.mhd.common.core.utils.IgnoreNullUtil;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.facade.IDeliveryInfoService;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.po.DeliveryInfoPO;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.todo.DeliveryInfoDO;
|
||||
import com.mhd.oms.domain.purchaseOrder.entity.PurchaseOrder;
|
||||
import com.mhd.oms.domain.salesOrder.entity.SalesOrder;
|
||||
import com.mhd.oms.interfaces.dto.purchaseOrder.PurchaseOrderExcelDTO;
|
||||
import com.mhd.oms.interfaces.dto.salesOrder.SalesOrderExcelDTO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 发货信息
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class DeliveryInfoDomainService {
|
||||
|
||||
@Autowired
|
||||
private IDeliveryInfoService deliveryInfoService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询发货信息列表
|
||||
*/
|
||||
public List<DeliveryInfoPO> queryList(DeliveryInfoDO deliveryInfoDO) {
|
||||
return deliveryInfoService.queryList(deliveryInfoDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增发货信息
|
||||
*/
|
||||
public Boolean insert(DeliveryInfoDO deliveryInfoDO) {
|
||||
|
||||
return deliveryInfoService.insert(deliveryInfoDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改发货信息
|
||||
*/
|
||||
public Boolean update(DeliveryInfoDO deliveryInfoDO) {
|
||||
return deliveryInfoService.update(deliveryInfoDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除发货信息
|
||||
*/
|
||||
public Boolean delete(Long[] ids) {
|
||||
return deliveryInfoService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取发货信息详细信息
|
||||
*/
|
||||
public DeliveryInfoPO getInfo(Long id)
|
||||
{
|
||||
return deliveryInfoService.getInfo(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
public Boolean batchInsert(List<DeliveryInfoDO> deliveryInfoDOList) {
|
||||
return deliveryInfoService.batchInsert(deliveryInfoDOList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入销售订单 - 为传入的发货列表添加一条发货信息
|
||||
*
|
||||
* @param deliveryInfoDOList - 添加数据的列表
|
||||
* @param salesOrderExcelDTO -导入的数据
|
||||
* @param salesOrder - 导入数据中的销售订单信息
|
||||
*/
|
||||
public void listAddFromImportSalesOrder(List<DeliveryInfoDO> deliveryInfoDOList, SalesOrderExcelDTO salesOrderExcelDTO, SalesOrder salesOrder) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
DeliveryInfoDO deliveryInfoDO = new DeliveryInfoDO();
|
||||
|
||||
BeanUtils.copyProperties(salesOrderExcelDTO, deliveryInfoDO, IgnoreNullUtil.getNullPropertyNames(salesOrderExcelDTO));
|
||||
deliveryInfoDO.setOrderId(salesOrder.getId());
|
||||
deliveryInfoDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
deliveryInfoDO.setCreateBy(loginUser.getUserPo().getUserId());
|
||||
deliveryInfoDO.setCreateByName(loginUser.getUserPo().getUserName());
|
||||
deliveryInfoDO.setCreateTime(new Date());
|
||||
deliveryInfoDOList.add(deliveryInfoDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入采购订单 - 为传入的发货列表添加一条发货信息
|
||||
*
|
||||
* @param deliveryInfoDOList - 添加数据的列表
|
||||
* @param purOrderExcelDTO -导入的数据
|
||||
* @param purOrder - 导入的采购订单信息
|
||||
*/
|
||||
public void listAddFromImportPurOrder(List<DeliveryInfoDO> deliveryInfoDOList, PurchaseOrderExcelDTO purOrderExcelDTO, PurchaseOrder purOrder) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
DeliveryInfoDO deliveryInfoDO = new DeliveryInfoDO();
|
||||
|
||||
BeanUtils.copyProperties(purOrderExcelDTO, deliveryInfoDO, IgnoreNullUtil.getNullPropertyNames(purOrderExcelDTO));
|
||||
deliveryInfoDO.setOrderId(purOrder.getId());
|
||||
deliveryInfoDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
deliveryInfoDO.setCreateBy(loginUser.getUserPo().getUserId());
|
||||
deliveryInfoDO.setCreateByName(loginUser.getUserPo().getUserName());
|
||||
deliveryInfoDO.setCreateTime(new Date());
|
||||
deliveryInfoDOList.add(deliveryInfoDO);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.mhd.oms.domain.goods.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
* 商品信息对象 oms_goods
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName("oms_goods")
|
||||
public class Goods extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("商品编码")
|
||||
@Excel(name = "商品编码")
|
||||
private String goodsNo;
|
||||
|
||||
@ApiModelProperty("商品名称")
|
||||
@Excel(name = "商品名称")
|
||||
private String goodsName;
|
||||
|
||||
@ApiModelProperty("包装规格")
|
||||
@Excel(name = "包装规格")
|
||||
private String packingSize;
|
||||
|
||||
@ApiModelProperty("辅助单位ID")
|
||||
@Excel(name = "辅助单位ID")
|
||||
private String supportUnitId;
|
||||
|
||||
@ApiModelProperty("辅助单位")
|
||||
@Excel(name = "辅助单位")
|
||||
private String supportUnit;
|
||||
|
||||
@ApiModelProperty("辅助单位数量")
|
||||
@Excel(name = "辅助单位数量")
|
||||
private Integer supportUnitQuantity;
|
||||
|
||||
@ApiModelProperty("物料单位EA")
|
||||
@Excel(name = "物料单位EA")
|
||||
private String materialUnitEa;
|
||||
|
||||
@ApiModelProperty("物料数量EA")
|
||||
@Excel(name = "物料数量EA")
|
||||
private Integer materialUnitEaQuantity;
|
||||
|
||||
@ApiModelProperty("单价")
|
||||
@Excel(name = "单价")
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
@ApiModelProperty("含税单价")
|
||||
@Excel(name = "含税单价")
|
||||
private BigDecimal taxUnitPrice;
|
||||
|
||||
@ApiModelProperty("税率")
|
||||
@Excel(name = "税率")
|
||||
private BigDecimal taxRate;
|
||||
|
||||
@ApiModelProperty("税金")
|
||||
@Excel(name = "税金")
|
||||
private BigDecimal taxes;
|
||||
|
||||
@ApiModelProperty("金额")
|
||||
@Excel(name = "金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
@ApiModelProperty("含税金额")
|
||||
@Excel(name = "含税金额")
|
||||
private BigDecimal taxAmount;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("物料基础信息id")
|
||||
@Excel(name = "物料基础信息id")
|
||||
private Long materialBaseInfoId;
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.mhd.oms.domain.goods.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.oms.domain.goods.entity.Goods;
|
||||
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
|
||||
import com.mhd.oms.domain.goods.repository.todo.GoodsDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品信息Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
public interface IGoodsService extends IService<Goods>
|
||||
{
|
||||
/**
|
||||
* 分页查询商品信息列表
|
||||
*/
|
||||
public List<GoodsPO> queryList(GoodsDO goodsDO);
|
||||
|
||||
/**
|
||||
* 新增商品信息
|
||||
*/
|
||||
public Boolean insert(GoodsDO goodsDO);
|
||||
|
||||
/**
|
||||
* 修改商品信息
|
||||
*/
|
||||
public Boolean update(GoodsDO goodsDO);
|
||||
|
||||
/**
|
||||
* 批量删除商品信息
|
||||
*/
|
||||
public Boolean delete(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 查询商品信息
|
||||
*/
|
||||
public GoodsPO getInfo(Long id);
|
||||
|
||||
/**
|
||||
* 根据订单ID删除物料信息
|
||||
* @param orderId
|
||||
* @return
|
||||
*/
|
||||
public Boolean deleteByOrderId(Long orderId);
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
* @param goodsDOList
|
||||
*/
|
||||
public Boolean batchInsert(List<GoodsDO> goodsDOList);
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.mhd.oms.domain.goods.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.oms.domain.goods.entity.Goods;
|
||||
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
|
||||
import com.mhd.oms.domain.goods.repository.todo.GoodsDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品信息Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
public interface GoodsMapper extends BaseMapper<Goods>
|
||||
{
|
||||
/**
|
||||
* 查询商品信息列表
|
||||
*/
|
||||
public List<GoodsPO> queryList(GoodsDO goodsDO);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.mhd.oms.domain.goods.repository.persistence;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.oms.domain.goods.entity.Goods;
|
||||
import com.mhd.oms.domain.goods.repository.facade.IGoodsService;
|
||||
import com.mhd.oms.domain.goods.repository.mapper.GoodsMapper;
|
||||
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
|
||||
import com.mhd.oms.domain.goods.repository.todo.GoodsDO;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 商品信息Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
@Service
|
||||
public class GoodsImpl extends ServiceImpl<GoodsMapper, Goods> implements IGoodsService {
|
||||
@Autowired
|
||||
private GoodsMapper goodsMapper;
|
||||
|
||||
/**
|
||||
* 查询商品信息列表
|
||||
*/
|
||||
@Override
|
||||
public List<GoodsPO> queryList(GoodsDO goodsDO)
|
||||
{
|
||||
return goodsMapper.queryList(goodsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增商品信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(GoodsDO goodsDO) {
|
||||
Goods goods = new Goods();
|
||||
BeanUtils.copyProperties(goodsDO,goods);
|
||||
return this.save(goods);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改商品信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(GoodsDO goodsDO) {
|
||||
Goods goods = new Goods();
|
||||
BeanUtils.copyProperties(goodsDO,goods);
|
||||
return this.updateById(goods);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除商品信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] ids ) {
|
||||
List<Goods> list = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
Goods goods = new Goods();
|
||||
goods.setId(id);
|
||||
goods.setDelFlag(2);
|
||||
list.add(goods);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改商品信息
|
||||
*/
|
||||
@Override
|
||||
public GoodsPO getInfo(Long id) {
|
||||
Goods goods = this.getById(id);
|
||||
GoodsPO goodsPO = new GoodsPO();
|
||||
BeanUtils.copyProperties(goods,goodsPO);
|
||||
return goodsPO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单ID删除物料信息
|
||||
* @param orderId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteByOrderId(Long orderId) {
|
||||
LambdaUpdateWrapper<Goods> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
||||
lambdaUpdateWrapper.eq(Goods::getOrderId, orderId).set(Goods::getDelFlag, 2);
|
||||
return this.update(null, lambdaUpdateWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
* @param goodsDOList
|
||||
*/
|
||||
@Override
|
||||
public Boolean batchInsert(List<GoodsDO> goodsDOList) {
|
||||
List<Goods> goodsList = goodsDOList.stream().map(goodsDO -> {
|
||||
Goods goods = new Goods();
|
||||
BeanUtils.copyProperties(goodsDO, goods);
|
||||
return goods;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
return this.saveBatch(goodsList);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
package com.mhd.oms.domain.goods.repository.po;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
* 商品信息对象 oms_goods
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "商品信息对象", description = "商品信息响应对象")
|
||||
public class GoodsPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("商品编码")
|
||||
@Excel(name = "商品编码")
|
||||
private String goodsNo;
|
||||
|
||||
@ApiModelProperty("商品名称")
|
||||
@Excel(name = "商品名称")
|
||||
private String goodsName;
|
||||
|
||||
@ApiModelProperty("包装规格")
|
||||
@Excel(name = "包装规格")
|
||||
private String packingSize;
|
||||
|
||||
@ApiModelProperty("辅助单位ID")
|
||||
@Excel(name = "辅助单位ID")
|
||||
private String supportUnitId;
|
||||
|
||||
@ApiModelProperty("辅助单位")
|
||||
@Excel(name = "辅助单位")
|
||||
private String supportUnit;
|
||||
|
||||
@ApiModelProperty("辅助单位数量")
|
||||
@Excel(name = "辅助单位数量")
|
||||
private Integer supportUnitQuantity;
|
||||
|
||||
@ApiModelProperty("物料单位EA")
|
||||
@Excel(name = "物料单位EA")
|
||||
private String materialUnitEa;
|
||||
|
||||
@ApiModelProperty("物料数量EA")
|
||||
@Excel(name = "物料数量EA")
|
||||
private Integer materialUnitEaQuantity;
|
||||
|
||||
@ApiModelProperty("单价")
|
||||
@Excel(name = "单价")
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
@ApiModelProperty("含税单价")
|
||||
@Excel(name = "含税单价")
|
||||
private BigDecimal taxUnitPrice;
|
||||
|
||||
@ApiModelProperty("税率")
|
||||
@Excel(name = "税率")
|
||||
private BigDecimal taxRate;
|
||||
|
||||
@ApiModelProperty("税金")
|
||||
@Excel(name = "税金")
|
||||
private BigDecimal taxes;
|
||||
|
||||
@ApiModelProperty("金额")
|
||||
@Excel(name = "金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
@ApiModelProperty("含税金额")
|
||||
@Excel(name = "含税金额")
|
||||
private BigDecimal taxAmount;
|
||||
|
||||
@ApiModelProperty("完成数量")
|
||||
private Integer completeNum;
|
||||
|
||||
@ApiModelProperty("库存可用数量")
|
||||
private Long stockUsableNum;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("物料基础信息id")
|
||||
@Excel(name = "物料基础信息id")
|
||||
private Long materialBaseInfoId;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
package com.mhd.oms.domain.goods.repository.todo;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 商品信息对象 oms_goods
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class GoodsDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
@ApiModelProperty("ID列表")
|
||||
private List<Long> idList;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("商品编码")
|
||||
@Excel(name = "商品编码")
|
||||
private String goodsNo;
|
||||
|
||||
@ApiModelProperty("商品名称")
|
||||
@Excel(name = "商品名称")
|
||||
private String goodsName;
|
||||
|
||||
@ApiModelProperty("包装规格")
|
||||
@Excel(name = "包装规格")
|
||||
private String packingSize;
|
||||
|
||||
@ApiModelProperty("辅助单位ID")
|
||||
@Excel(name = "辅助单位ID")
|
||||
private String supportUnitId;
|
||||
|
||||
@ApiModelProperty("辅助单位")
|
||||
@Excel(name = "辅助单位")
|
||||
private String supportUnit;
|
||||
|
||||
@ApiModelProperty("辅助单位数量")
|
||||
@Excel(name = "辅助单位数量")
|
||||
private Integer supportUnitQuantity = 0;
|
||||
|
||||
@ApiModelProperty("物料单位EA")
|
||||
@Excel(name = "物料单位EA")
|
||||
private String materialUnitEa;
|
||||
|
||||
@ApiModelProperty("物料数量EA")
|
||||
@Excel(name = "物料数量EA")
|
||||
private Integer materialUnitEaQuantity = 0;
|
||||
|
||||
@ApiModelProperty("单价")
|
||||
@Excel(name = "单价")
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
@ApiModelProperty("含税单价")
|
||||
@Excel(name = "含税单价")
|
||||
private BigDecimal taxUnitPrice;
|
||||
|
||||
@ApiModelProperty("税率")
|
||||
@Excel(name = "税率")
|
||||
private BigDecimal taxRate;
|
||||
|
||||
@ApiModelProperty("税金")
|
||||
@Excel(name = "税金")
|
||||
private BigDecimal taxes;
|
||||
|
||||
@ApiModelProperty("金额")
|
||||
@Excel(name = "金额")
|
||||
private BigDecimal amount;
|
||||
|
||||
@ApiModelProperty("含税金额")
|
||||
@Excel(name = "含税金额")
|
||||
private BigDecimal taxAmount;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
|
||||
@ApiModelProperty("供应链订单ID")
|
||||
private Long scmId;
|
||||
|
||||
@ApiModelProperty("物料基础信息id")
|
||||
@Excel(name = "物料基础信息id")
|
||||
private Long materialBaseInfoId;
|
||||
|
||||
public GoodsDO(){
|
||||
|
||||
}
|
||||
|
||||
public GoodsDO(List<Long> idList){
|
||||
this.idList = idList;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
package com.mhd.oms.domain.goods.service;
|
||||
|
||||
import com.mhd.common.core.utils.IgnoreNullUtil;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.domain.goods.repository.facade.IGoodsService;
|
||||
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
|
||||
import com.mhd.oms.domain.goods.repository.todo.GoodsDO;
|
||||
import com.mhd.oms.domain.purchaseOrder.entity.PurchaseOrder;
|
||||
import com.mhd.oms.domain.salesOrder.entity.SalesOrder;
|
||||
import com.mhd.oms.interfaces.dto.purchaseOrder.PurchaseOrderExcelDTO;
|
||||
import com.mhd.oms.interfaces.dto.salesOrder.SalesOrderExcelDTO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品信息
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class GoodsDomainService {
|
||||
|
||||
@Autowired
|
||||
private IGoodsService goodsService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询商品信息列表
|
||||
*/
|
||||
public List<GoodsPO> queryList(GoodsDO goodsDO) {
|
||||
return goodsService.queryList(goodsDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增商品信息
|
||||
*/
|
||||
public Boolean insert(GoodsDO goodsDO) {
|
||||
|
||||
return goodsService.insert(goodsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改商品信息
|
||||
*/
|
||||
public Boolean update(GoodsDO goodsDO) {
|
||||
return goodsService.update(goodsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除商品信息
|
||||
*/
|
||||
public Boolean delete(Long[] ids) {
|
||||
return goodsService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取商品信息详细信息
|
||||
*/
|
||||
public GoodsPO getInfo(Long id)
|
||||
{
|
||||
return goodsService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据订单ID删除物料信息
|
||||
* @param orderId
|
||||
* @return
|
||||
*/
|
||||
public Boolean deleteByOrderId(Long orderId) {
|
||||
return goodsService.deleteByOrderId(orderId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
* @param goodsDOList
|
||||
*/
|
||||
public Boolean batchInsert(List<GoodsDO> goodsDOList) {
|
||||
return goodsService.batchInsert(goodsDOList);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导入销售订单 - 为传入的销售明细列表添加一条明细
|
||||
*
|
||||
* @param goodsDOList - 添加数据的列表
|
||||
* @param salesOrderExcelDTO -导入的数据
|
||||
* @param salesOrder - 导入数据中的销售订单信息
|
||||
*/
|
||||
public void listAddFromImportSalesOrder(List<GoodsDO> goodsDOList, SalesOrderExcelDTO salesOrderExcelDTO, SalesOrder salesOrder) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
GoodsDO goodsDO = new GoodsDO();
|
||||
|
||||
BeanUtils.copyProperties(salesOrderExcelDTO, goodsDO, IgnoreNullUtil.getNullPropertyNames(salesOrderExcelDTO));
|
||||
goodsDO.setOrderId(salesOrder.getId());
|
||||
goodsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
goodsDO.setCreateBy(loginUser.getUserPo().getUserId());
|
||||
goodsDO.setCreateByName(loginUser.getUserPo().getUserName());
|
||||
goodsDO.setCreateTime(new Date());
|
||||
goodsDOList.add(goodsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入采购订单 - 为传入的销售明细列表添加一条明细
|
||||
*
|
||||
* @param goodsDOList - 添加数据的列表
|
||||
* @param purOrderExcelDTO -导入的数据
|
||||
* @param purOrder - 导入的采购订单信息
|
||||
*/
|
||||
public void listAddFromImportPurOrder(List<GoodsDO> goodsDOList, PurchaseOrderExcelDTO purOrderExcelDTO, PurchaseOrder purOrder) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
GoodsDO goodsDO = new GoodsDO();
|
||||
|
||||
BeanUtils.copyProperties(purOrderExcelDTO, goodsDO, IgnoreNullUtil.getNullPropertyNames(purOrderExcelDTO));
|
||||
goodsDO.setOrderId(purOrder.getId());
|
||||
goodsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
goodsDO.setCreateBy(loginUser.getUserPo().getUserId());
|
||||
goodsDO.setCreateByName(loginUser.getUserPo().getUserName());
|
||||
goodsDO.setCreateTime(new Date());
|
||||
goodsDOList.add(goodsDO);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.mhd.oms.domain.interceptOrder.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 拦截订单对象 oms_intercept_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-30
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName("oms_intercept_order")
|
||||
public class InterceptOrder extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单ID")
|
||||
@Excel(name = "订单ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("拦截状态:0-无拦截、1-拦截成功、2-拦截失败")
|
||||
@Excel(name = "拦截状态:0-无拦截、1-拦截成功、2-拦截失败")
|
||||
private Integer interceptState;
|
||||
|
||||
@ApiModelProperty("拦截人ID")
|
||||
@Excel(name = "拦截人ID")
|
||||
private Long interceptBy;
|
||||
|
||||
@ApiModelProperty("拦截人名称")
|
||||
@Excel(name = "拦截人名称")
|
||||
private String interceptByName;
|
||||
|
||||
@ApiModelProperty("拦截时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "拦截时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date interceptTime;
|
||||
|
||||
@ApiModelProperty("失败原因")
|
||||
@Excel(name = "失败原因")
|
||||
private String failCause;
|
||||
|
||||
@ApiModelProperty("作业任务号")
|
||||
@Excel(name = "作业任务号")
|
||||
private String taskNos;
|
||||
|
||||
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
package com.mhd.oms.domain.interceptOrder.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.oms.domain.interceptOrder.entity.InterceptOrder;
|
||||
import com.mhd.oms.domain.interceptOrder.repository.po.InterceptOrderPO;
|
||||
import com.mhd.oms.domain.interceptOrder.repository.todo.InterceptOrderDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 拦截订单Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-30
|
||||
*/
|
||||
public interface IInterceptOrderService extends IService<InterceptOrder>
|
||||
{
|
||||
/**
|
||||
* 分页查询拦截订单列表
|
||||
*/
|
||||
public List<InterceptOrderPO> queryList(InterceptOrderDO interceptOrderDO);
|
||||
|
||||
/**
|
||||
* 新增拦截订单
|
||||
*/
|
||||
public Boolean insert(InterceptOrderDO interceptOrderDO);
|
||||
|
||||
/**
|
||||
* 修改拦截订单
|
||||
*/
|
||||
public Boolean update(InterceptOrderDO interceptOrderDO);
|
||||
|
||||
/**
|
||||
* 批量删除拦截订单
|
||||
*/
|
||||
public Boolean delete(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 查询拦截订单
|
||||
*/
|
||||
public InterceptOrderPO getInfo(Long id);
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.mhd.oms.domain.interceptOrder.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.oms.domain.interceptOrder.entity.InterceptOrder;
|
||||
import com.mhd.oms.domain.interceptOrder.repository.po.InterceptOrderPO;
|
||||
import com.mhd.oms.domain.interceptOrder.repository.todo.InterceptOrderDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 拦截订单Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-30
|
||||
*/
|
||||
public interface InterceptOrderMapper extends BaseMapper<InterceptOrder>
|
||||
{
|
||||
/**
|
||||
* 查询拦截订单列表
|
||||
*/
|
||||
public List<InterceptOrderPO> queryList(InterceptOrderDO interceptOrderDO);
|
||||
|
||||
}
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
package com.mhd.oms.domain.interceptOrder.repository.persistence;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.domain.interceptOrder.entity.InterceptOrder;
|
||||
import com.mhd.oms.domain.interceptOrder.repository.facade.IInterceptOrderService;
|
||||
import com.mhd.oms.domain.interceptOrder.repository.mapper.InterceptOrderMapper;
|
||||
import com.mhd.oms.domain.interceptOrder.repository.po.InterceptOrderPO;
|
||||
import com.mhd.oms.domain.interceptOrder.repository.todo.InterceptOrderDO;
|
||||
import com.mhd.oms.domain.scmOrder.repository.mapper.ScmOrderMapper;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 拦截订单Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-30
|
||||
*/
|
||||
@Service
|
||||
public class InterceptOrderImpl extends ServiceImpl<InterceptOrderMapper, InterceptOrder> implements IInterceptOrderService{
|
||||
@Autowired
|
||||
private InterceptOrderMapper interceptOrderMapper;
|
||||
|
||||
@Resource
|
||||
private ScmOrderMapper scmOrderMapper;
|
||||
|
||||
/**
|
||||
* 查询拦截订单列表
|
||||
*/
|
||||
@Override
|
||||
public List<InterceptOrderPO> queryList(InterceptOrderDO interceptOrderDO)
|
||||
{
|
||||
List<InterceptOrderPO> interceptOrderPOS = interceptOrderMapper.queryList(interceptOrderDO);
|
||||
for (InterceptOrderPO interceptOrderPO:interceptOrderPOS) {
|
||||
String scmOrderNo = scmOrderMapper.selectScmOrderNoByOrderId(interceptOrderPO.getOrderId());
|
||||
interceptOrderPO.setScmOrderNo(scmOrderNo);
|
||||
}
|
||||
return interceptOrderPOS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增拦截订单
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(InterceptOrderDO interceptOrderDO) {
|
||||
InterceptOrder interceptOrder = new InterceptOrder();
|
||||
BeanUtils.copyProperties(interceptOrderDO,interceptOrder);
|
||||
return this.save(interceptOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改拦截订单
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(InterceptOrderDO interceptOrderDO) {
|
||||
InterceptOrder interceptOrder = new InterceptOrder();
|
||||
BeanUtils.copyProperties(interceptOrderDO,interceptOrder);
|
||||
return this.updateById(interceptOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除拦截订单
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] ids ) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
List<InterceptOrder> list = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
InterceptOrder interceptOrder = new InterceptOrder();
|
||||
interceptOrder.setId(id);
|
||||
interceptOrder.setDelFlag(2);
|
||||
interceptOrder.setUpdateBy(loginUser.getUserid());
|
||||
interceptOrder.setUpdateByName(loginUser.getUsername());
|
||||
interceptOrder.setUpdateTime(new Date());
|
||||
list.add(interceptOrder);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改拦截订单
|
||||
*/
|
||||
@Override
|
||||
public InterceptOrderPO getInfo(Long id) {
|
||||
InterceptOrder interceptOrder = this.getById(id);
|
||||
InterceptOrderPO interceptOrderPO = new InterceptOrderPO();
|
||||
BeanUtils.copyProperties(interceptOrder,interceptOrderPO);
|
||||
return interceptOrderPO;
|
||||
}
|
||||
}
|
||||
+95
@@ -0,0 +1,95 @@
|
||||
package com.mhd.oms.domain.interceptOrder.repository.po;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 拦截订单对象 oms_intercept_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-30
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "拦截订单对象", description = "拦截订单响应对象")
|
||||
public class InterceptOrderPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单ID")
|
||||
@Excel(name = "订单ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("拦截状态:0-无拦截、1-拦截成功、2-拦截失败")
|
||||
@Excel(name = "拦截状态:0-无拦截、1-拦截成功、2-拦截失败")
|
||||
private Integer interceptState;
|
||||
|
||||
@ApiModelProperty("拦截人ID")
|
||||
@Excel(name = "拦截人ID")
|
||||
private String interceptBy;
|
||||
|
||||
@ApiModelProperty("拦截人名称")
|
||||
@Excel(name = "拦截人名称")
|
||||
private String interceptByName;
|
||||
|
||||
@ApiModelProperty("拦截时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "拦截时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date interceptTime;
|
||||
|
||||
@ApiModelProperty("失败原因")
|
||||
@Excel(name = "失败原因")
|
||||
private String failCause;
|
||||
|
||||
@ApiModelProperty("作业任务号")
|
||||
@Excel(name = "作业任务号")
|
||||
private String taskNos;
|
||||
|
||||
|
||||
@ApiModelProperty("客户订单号")
|
||||
@Excel(name = "客户订单号")
|
||||
private String customerOrders;
|
||||
|
||||
@ApiModelProperty("订单类型")
|
||||
@Excel(name = "订单类型")
|
||||
private String orderType;
|
||||
|
||||
@ApiModelProperty("作业任务类型")
|
||||
@Excel(name = "作业任务类型")
|
||||
private String jobTaskType;
|
||||
|
||||
@ApiModelProperty("下发系统")
|
||||
@Excel(name = "下发系统")
|
||||
private String deliverySystem;
|
||||
|
||||
@ApiModelProperty("供应链订单号")
|
||||
@Excel(name = "供应链订单号")
|
||||
private String scmOrderNo;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
package com.mhd.oms.domain.interceptOrder.repository.todo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 拦截订单对象 oms_intercept_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-30
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class InterceptOrderDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单ID")
|
||||
@Excel(name = "订单ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("拦截状态:0-无拦截、1-拦截成功、2-拦截失败")
|
||||
@Excel(name = "拦截状态:0-无拦截、1-拦截成功、2-拦截失败")
|
||||
private Integer interceptState;
|
||||
|
||||
@ApiModelProperty("拦截人ID")
|
||||
@Excel(name = "拦截人ID")
|
||||
private Long interceptBy;
|
||||
|
||||
@ApiModelProperty("拦截人名称")
|
||||
@Excel(name = "拦截人名称")
|
||||
private String interceptByName;
|
||||
|
||||
@ApiModelProperty("拦截时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "拦截时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date interceptTime;
|
||||
|
||||
@ApiModelProperty("失败原因")
|
||||
@Excel(name = "失败原因")
|
||||
private String failCause;
|
||||
|
||||
@ApiModelProperty("作业任务号")
|
||||
@Excel(name = "作业任务号")
|
||||
private String taskNos;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
}
|
||||
+135
@@ -0,0 +1,135 @@
|
||||
package com.mhd.oms.domain.interceptOrder.service;
|
||||
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.constant.OrderConstant;
|
||||
import com.mhd.oms.domain.interceptOrder.repository.facade.IInterceptOrderService;
|
||||
import com.mhd.oms.domain.interceptOrder.repository.po.InterceptOrderPO;
|
||||
import com.mhd.oms.domain.interceptOrder.repository.todo.InterceptOrderDO;
|
||||
import com.mhd.oms.domain.taskOrder.repository.po.TaskOrderPO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 拦截订单
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-30
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class InterceptOrderDomainService {
|
||||
|
||||
@Autowired
|
||||
private IInterceptOrderService interceptOrderService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询拦截订单列表
|
||||
*/
|
||||
public List<InterceptOrderPO> queryList(InterceptOrderDO interceptOrderDO) {
|
||||
return interceptOrderService.queryList(interceptOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增拦截订单
|
||||
*/
|
||||
public Boolean insert(InterceptOrderDO interceptOrderDO) {
|
||||
|
||||
return interceptOrderService.insert(interceptOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改拦截订单
|
||||
*/
|
||||
public Boolean update(InterceptOrderDO interceptOrderDO) {
|
||||
return interceptOrderService.update(interceptOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除拦截订单
|
||||
*/
|
||||
public Boolean delete(Long[] ids) {
|
||||
return interceptOrderService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取拦截订单详细信息
|
||||
*/
|
||||
public InterceptOrderPO getInfo(Long id)
|
||||
{
|
||||
return interceptOrderService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存订单拦截表
|
||||
*
|
||||
* 获取不可拦截订单列表(已下发、已完成、未下发已合并)
|
||||
* 若不可拦截列表不为空,保存为拦截失败的记录,否则保存为拦截成功
|
||||
*
|
||||
* @param k - 订单ID
|
||||
* @param v - 订单下全部任务列表
|
||||
* @return -拦截订单DO
|
||||
*/
|
||||
public InterceptOrderDO saveInterceptOrder(Long k, List<TaskOrderPO> v) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
|
||||
// =========================== 获取不可拦截的任务列表 ==============================
|
||||
// 不可拦截任务列表1:任务状态不可拦截
|
||||
List<TaskOrderPO> unableInterceptTask1 = v.stream()
|
||||
.filter(x -> ArrayUtil.contains(OrderConstant.TASK_STATUS_GROUP_UNABLE_INTERCEPT, x.getTaskStatus()))
|
||||
.collect(Collectors.toList());
|
||||
// 不可拦截任务列表2:任务未下发但已合并
|
||||
List<TaskOrderPO> unableInterceptTask2 = v.stream()
|
||||
.filter(x -> OrderConstant.TASK_STATUS_0.equals(x.getTaskStatus()) && 1 == x.getMergeState())
|
||||
.collect(Collectors.toList());
|
||||
// 任务单号字符串
|
||||
String taskNos = v.stream().map(TaskOrderPO::getTaskNo)
|
||||
.map(Object::toString)
|
||||
.collect(Collectors.joining(","));
|
||||
|
||||
// =========================== 拦截表数据固定参数组装 ============================
|
||||
InterceptOrderDO interceptOrderDO = new InterceptOrderDO();
|
||||
interceptOrderDO.setCreateBy(loginUser.getUserid());
|
||||
interceptOrderDO.setCreateByName(loginUser.getUsername());
|
||||
interceptOrderDO.setCreateTime(new Date());
|
||||
interceptOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
interceptOrderDO.setOrderId(k);
|
||||
interceptOrderDO.setInterceptState(OrderConstant.INTERCEPT_STATUS_0);
|
||||
interceptOrderDO.setInterceptBy(loginUser.getUserid());
|
||||
interceptOrderDO.setInterceptByName(loginUser.getUsername());
|
||||
interceptOrderDO.setInterceptTime(new Date());
|
||||
interceptOrderDO.setTaskNos(taskNos);
|
||||
|
||||
// ========================== 拦截表数据特殊参数处理:拦截状态、失败原因 ==========================
|
||||
// 如果存在不可拦截任务,保存拦截失败记录
|
||||
if(unableInterceptTask1.size() > 0){
|
||||
interceptOrderDO.setInterceptState(OrderConstant.INTERCEPT_STATUS_2);
|
||||
List<String> unableInterceptTaskNos = unableInterceptTask1.stream().map(TaskOrderPO::getTaskNo)
|
||||
.map(Object::toString)
|
||||
.collect(Collectors.toList());
|
||||
interceptOrderDO.setFailCause(unableInterceptTaskNos + "作业任务状态已下发或已完成");
|
||||
}
|
||||
else if(unableInterceptTask2.size() > 0){
|
||||
interceptOrderDO.setInterceptState(OrderConstant.INTERCEPT_STATUS_2);
|
||||
List<String> unableInterceptTaskNos = unableInterceptTask2.stream().map(TaskOrderPO::getTaskNo)
|
||||
.map(Object::toString)
|
||||
.collect(Collectors.toList());
|
||||
interceptOrderDO.setFailCause(unableInterceptTaskNos + "作业任务已合并");
|
||||
}
|
||||
// 不存在,保存拦截成功记录
|
||||
else{
|
||||
interceptOrderDO.setInterceptState(OrderConstant.INTERCEPT_STATUS_1);
|
||||
}
|
||||
interceptOrderService.insert(interceptOrderDO);
|
||||
return interceptOrderDO;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.mhd.oms.domain.logistics.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
* 物流信息对象 oms_logistics
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName(value = "oms_logistics")
|
||||
public class Logistics extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("运输方式ID")
|
||||
@Excel(name = "运输方式ID")
|
||||
private String shippingTypeId;
|
||||
|
||||
@ApiModelProperty("运输方式")
|
||||
@Excel(name = "运输方式")
|
||||
private String shippingType;
|
||||
|
||||
@ApiModelProperty("承运商ID")
|
||||
@Excel(name = "承运商ID")
|
||||
private Long carrierId;
|
||||
|
||||
@ApiModelProperty("承运商")
|
||||
@Excel(name = "承运商")
|
||||
private String carrier;
|
||||
|
||||
@ApiModelProperty("物流单号")
|
||||
@Excel(name = "物流单号")
|
||||
private String trackingNum;
|
||||
|
||||
@ApiModelProperty("运费金额")
|
||||
@Excel(name = "运费金额")
|
||||
private BigDecimal freightAmount;
|
||||
|
||||
@ApiModelProperty("车牌号")
|
||||
@Excel(name = "车牌号")
|
||||
private String plateNum;
|
||||
|
||||
@ApiModelProperty("司机")
|
||||
@Excel(name = "司机")
|
||||
private String driverName;
|
||||
|
||||
@ApiModelProperty("联系电话")
|
||||
@Excel(name = "联系电话")
|
||||
private String driverPhone;
|
||||
|
||||
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package com.mhd.oms.domain.logistics.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.oms.domain.logistics.entity.Logistics;
|
||||
import com.mhd.oms.domain.logistics.repository.po.LogisticsPO;
|
||||
import com.mhd.oms.domain.logistics.repository.todo.LogisticsDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物流信息Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
public interface ILogisticsService extends IService<Logistics>
|
||||
{
|
||||
/**
|
||||
* 分页查询物流信息列表
|
||||
*/
|
||||
public List<LogisticsPO> queryList(LogisticsDO logisticsDO);
|
||||
|
||||
/**
|
||||
* 新增物流信息
|
||||
*/
|
||||
public Boolean insert(LogisticsDO logisticsDO);
|
||||
|
||||
/**
|
||||
* 修改物流信息
|
||||
*/
|
||||
public Boolean update(LogisticsDO logisticsDO);
|
||||
|
||||
/**
|
||||
* 批量删除物流信息
|
||||
*/
|
||||
public Boolean delete(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 查询物流信息
|
||||
*/
|
||||
public LogisticsPO getInfo(Long id);
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
Boolean batchInsert(List<LogisticsDO> logisticsDOList);
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.mhd.oms.domain.logistics.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.oms.domain.logistics.entity.Logistics;
|
||||
import com.mhd.oms.domain.logistics.repository.po.LogisticsPO;
|
||||
import com.mhd.oms.domain.logistics.repository.todo.LogisticsDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物流信息Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
public interface LogisticsMapper extends BaseMapper<Logistics>
|
||||
{
|
||||
/**
|
||||
* 查询物流信息列表
|
||||
*/
|
||||
public List<LogisticsPO> queryList(LogisticsDO logisticsDO);
|
||||
|
||||
}
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
package com.mhd.oms.domain.logistics.repository.persistence;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.oms.domain.logistics.entity.Logistics;
|
||||
import com.mhd.oms.domain.logistics.repository.facade.ILogisticsService;
|
||||
import com.mhd.oms.domain.logistics.repository.mapper.LogisticsMapper;
|
||||
import com.mhd.oms.domain.logistics.repository.po.LogisticsPO;
|
||||
import com.mhd.oms.domain.logistics.repository.todo.LogisticsDO;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 物流信息Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
@Service
|
||||
public class LogisticsImpl extends ServiceImpl<LogisticsMapper, Logistics> implements ILogisticsService {
|
||||
@Autowired
|
||||
private LogisticsMapper logisticsMapper;
|
||||
|
||||
/**
|
||||
* 查询物流信息列表
|
||||
*/
|
||||
@Override
|
||||
public List<LogisticsPO> queryList(LogisticsDO logisticsDO)
|
||||
{
|
||||
return logisticsMapper.queryList(logisticsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物流信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(LogisticsDO logisticsDO) {
|
||||
Logistics logistics = new Logistics();
|
||||
BeanUtils.copyProperties(logisticsDO,logistics);
|
||||
return this.save(logistics);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物流信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(LogisticsDO logisticsDO) {
|
||||
Logistics logistics = new Logistics();
|
||||
BeanUtils.copyProperties(logisticsDO,logistics);
|
||||
return this.updateById(logistics);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物流信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] ids ) {
|
||||
List<Logistics> list = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
Logistics logistics = new Logistics();
|
||||
logistics.setId(id);
|
||||
logistics.setDelFlag(2);
|
||||
list.add(logistics);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物流信息
|
||||
*/
|
||||
@Override
|
||||
public LogisticsPO getInfo(Long id) {
|
||||
Logistics logistics = this.getById(id);
|
||||
LogisticsPO logisticsPO = new LogisticsPO();
|
||||
BeanUtils.copyProperties(logistics,logisticsPO);
|
||||
return logisticsPO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean batchInsert(List<LogisticsDO> logisticsDOList) {
|
||||
List<Logistics> logisticsList = logisticsDOList.stream().map(logisticsDO -> {
|
||||
Logistics logistics = new Logistics();
|
||||
BeanUtils.copyProperties(logisticsDO, logistics);
|
||||
return logistics;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
return this.saveBatch(logisticsList);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.mhd.oms.domain.logistics.repository.po;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
* 物流信息对象 oms_logistics
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "物流信息对象", description = "物流信息响应对象")
|
||||
public class LogisticsPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("运输方式ID")
|
||||
@Excel(name = "运输方式ID")
|
||||
private String shippingTypeId;
|
||||
|
||||
@ApiModelProperty("运输方式")
|
||||
@Excel(name = "运输方式")
|
||||
private String shippingType;
|
||||
|
||||
@ApiModelProperty("承运商ID")
|
||||
@Excel(name = "承运商ID")
|
||||
private Long carrierId;
|
||||
|
||||
@ApiModelProperty("承运商")
|
||||
@Excel(name = "承运商")
|
||||
private String carrier;
|
||||
|
||||
@ApiModelProperty("物流单号")
|
||||
@Excel(name = "物流单号")
|
||||
private String trackingNum;
|
||||
|
||||
@ApiModelProperty("运费金额")
|
||||
@Excel(name = "运费金额")
|
||||
private BigDecimal freightAmount;
|
||||
|
||||
@ApiModelProperty("车牌号")
|
||||
@Excel(name = "车牌号")
|
||||
private String plateNum;
|
||||
|
||||
@ApiModelProperty("司机")
|
||||
@Excel(name = "司机")
|
||||
private String driverName;
|
||||
|
||||
@ApiModelProperty("联系电话")
|
||||
@Excel(name = "联系电话")
|
||||
private String driverPhone;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.mhd.oms.domain.logistics.repository.todo;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 物流信息对象 oms_logistics
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class LogisticsDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("运输方式ID")
|
||||
@Excel(name = "运输方式ID")
|
||||
private String shippingTypeId;
|
||||
|
||||
@ApiModelProperty("运输方式")
|
||||
@Excel(name = "运输方式")
|
||||
private String shippingType;
|
||||
|
||||
@ApiModelProperty("承运商ID")
|
||||
@Excel(name = "承运商ID")
|
||||
private Long carrierId;
|
||||
|
||||
@ApiModelProperty("承运商")
|
||||
@Excel(name = "承运商")
|
||||
private String carrier;
|
||||
|
||||
@ApiModelProperty("物流单号")
|
||||
@Excel(name = "物流单号")
|
||||
private String trackingNum;
|
||||
|
||||
@ApiModelProperty("运费金额")
|
||||
@Excel(name = "运费金额")
|
||||
private BigDecimal freightAmount;
|
||||
|
||||
@ApiModelProperty("车牌号")
|
||||
@Excel(name = "车牌号")
|
||||
private String plateNum;
|
||||
|
||||
@ApiModelProperty("司机")
|
||||
@Excel(name = "司机")
|
||||
private String driverName;
|
||||
|
||||
@ApiModelProperty("联系电话")
|
||||
@Excel(name = "联系电话")
|
||||
private String driverPhone;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
}
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
package com.mhd.oms.domain.logistics.service;
|
||||
|
||||
import com.mhd.common.core.utils.IgnoreNullUtil;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.domain.logistics.repository.facade.ILogisticsService;
|
||||
import com.mhd.oms.domain.logistics.repository.po.LogisticsPO;
|
||||
import com.mhd.oms.domain.logistics.repository.todo.LogisticsDO;
|
||||
import com.mhd.oms.domain.purchaseOrder.entity.PurchaseOrder;
|
||||
import com.mhd.oms.domain.salesOrder.entity.SalesOrder;
|
||||
import com.mhd.oms.interfaces.dto.purchaseOrder.PurchaseOrderExcelDTO;
|
||||
import com.mhd.oms.interfaces.dto.salesOrder.SalesOrderExcelDTO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物流信息
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class LogisticsDomainService {
|
||||
|
||||
@Autowired
|
||||
private ILogisticsService logisticsService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询物流信息列表
|
||||
*/
|
||||
public List<LogisticsPO> queryList(LogisticsDO logisticsDO) {
|
||||
return logisticsService.queryList(logisticsDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增物流信息
|
||||
*/
|
||||
public Boolean insert(LogisticsDO logisticsDO) {
|
||||
|
||||
return logisticsService.insert(logisticsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物流信息
|
||||
*/
|
||||
public Boolean update(LogisticsDO logisticsDO) {
|
||||
return logisticsService.update(logisticsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除物流信息
|
||||
*/
|
||||
public Boolean delete(Long[] ids) {
|
||||
return logisticsService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物流信息详细信息
|
||||
*/
|
||||
public LogisticsPO getInfo(Long id)
|
||||
{
|
||||
return logisticsService.getInfo(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
public Boolean batchInsert(List<LogisticsDO> logisticsDOList) {
|
||||
return logisticsService.batchInsert(logisticsDOList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入销售订单 - 为传入的物流列表添加一条物流信息
|
||||
*
|
||||
* @param logisticsDOList - 添加数据的列表
|
||||
* @param salesOrderExcelDTO -导入的数据
|
||||
* @param salesOrder - 导入数据中的销售订单信息
|
||||
*/
|
||||
public void listAddFromImportSalesOrder(List<LogisticsDO> logisticsDOList, SalesOrderExcelDTO salesOrderExcelDTO, SalesOrder salesOrder) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
LogisticsDO logisticsDO = new LogisticsDO();
|
||||
|
||||
BeanUtils.copyProperties(salesOrderExcelDTO, logisticsDO, IgnoreNullUtil.getNullPropertyNames(salesOrderExcelDTO));
|
||||
logisticsDO.setOrderId(salesOrder.getId());
|
||||
logisticsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
logisticsDO.setCreateBy(loginUser.getUserPo().getUserId());
|
||||
logisticsDO.setCreateByName(loginUser.getUserPo().getUserName());
|
||||
logisticsDO.setCreateTime(new Date());
|
||||
logisticsDOList.add(logisticsDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入采购订单 - 为传入的物流列表添加一条物流信息
|
||||
*
|
||||
* @param logisticsDOList - 添加数据的列表
|
||||
* @param purOrderExcelDTO -导入的数据
|
||||
* @param purOrder - 导入的采购订单信息
|
||||
*/
|
||||
public void listAddFromImportPurOrder(List<LogisticsDO> logisticsDOList, PurchaseOrderExcelDTO purOrderExcelDTO, PurchaseOrder purOrder) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
LogisticsDO logisticsDO = new LogisticsDO();
|
||||
|
||||
BeanUtils.copyProperties(purOrderExcelDTO, logisticsDO, IgnoreNullUtil.getNullPropertyNames(purOrderExcelDTO));
|
||||
logisticsDO.setOrderId(purOrder.getId());
|
||||
logisticsDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
logisticsDO.setCreateBy(loginUser.getUserPo().getUserId());
|
||||
logisticsDO.setCreateByName(loginUser.getUserPo().getUserName());
|
||||
logisticsDO.setCreateTime(new Date());
|
||||
logisticsDOList.add(logisticsDO);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.mhd.oms.domain.orderType.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 订单类型关系对象 oms_order_type
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName("oms_order_type")
|
||||
public class OrderType extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("业务订单类型ID")
|
||||
@Excel(name = "业务订单类型ID")
|
||||
private String businessOrderTypeId;
|
||||
|
||||
@ApiModelProperty("业务订单类型")
|
||||
@Excel(name = "业务订单类型")
|
||||
private String businessOrderType;
|
||||
|
||||
@ApiModelProperty("作业任务类型ID")
|
||||
@Excel(name = "作业任务类型ID")
|
||||
private Integer jobTaskTypeId;
|
||||
|
||||
@ApiModelProperty("作业任务类型")
|
||||
@Excel(name = "作业任务类型")
|
||||
private String jobTaskType;
|
||||
|
||||
@ApiModelProperty("下发系统ID")
|
||||
@Excel(name = "下发系统ID")
|
||||
private String deliverySystemId;
|
||||
|
||||
@ApiModelProperty("下发系统")
|
||||
@Excel(name = "下发系统")
|
||||
private String deliverySystem;
|
||||
|
||||
@ApiModelProperty("下发订单类型ID")
|
||||
@Excel(name = "下发订单类型ID")
|
||||
private String orderTypeId;
|
||||
|
||||
@ApiModelProperty("下发订单类型")
|
||||
@Excel(name = "下发订单类型")
|
||||
private String orderType;
|
||||
|
||||
|
||||
}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
package com.mhd.oms.domain.orderType.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.oms.domain.orderType.entity.OrderType;
|
||||
import com.mhd.oms.domain.orderType.repository.po.OrderTypeDictPO;
|
||||
import com.mhd.oms.domain.orderType.repository.po.OrderTypePO;
|
||||
import com.mhd.oms.domain.orderType.repository.todo.OrderTypeDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单类型关系Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
public interface IOrderTypeService extends IService<OrderType>
|
||||
{
|
||||
/**
|
||||
* 分页查询订单类型关系列表
|
||||
*/
|
||||
public List<OrderTypePO> queryList(OrderTypeDO orderTypeDO);
|
||||
|
||||
/**
|
||||
* 新增订单类型关系
|
||||
*/
|
||||
public Boolean insert(OrderTypeDO orderTypeDO);
|
||||
|
||||
/**
|
||||
* 修改订单类型关系
|
||||
*/
|
||||
public Boolean update(OrderTypeDO orderTypeDO);
|
||||
|
||||
/**
|
||||
* 批量删除订单类型关系
|
||||
*/
|
||||
public Boolean delete(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 查询订单类型关系
|
||||
*/
|
||||
public OrderTypePO getInfo(Long id);
|
||||
|
||||
List<OrderTypeDictPO> listDict();
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package com.mhd.oms.domain.orderType.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.oms.domain.orderType.entity.OrderType;
|
||||
import com.mhd.oms.domain.orderType.repository.po.OrderTypeDictPO;
|
||||
import com.mhd.oms.domain.orderType.repository.po.OrderTypePO;
|
||||
import com.mhd.oms.domain.orderType.repository.todo.OrderTypeDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单类型关系Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
public interface OrderTypeMapper extends BaseMapper<OrderType>
|
||||
{
|
||||
/**
|
||||
* 查询订单类型关系列表
|
||||
*/
|
||||
public List<OrderTypePO> queryList(OrderTypeDO orderTypeDO);
|
||||
|
||||
List<OrderTypeDictPO> listDict();
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
package com.mhd.oms.domain.orderType.repository.persistence;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.oms.domain.orderType.entity.OrderType;
|
||||
import com.mhd.oms.domain.orderType.repository.facade.IOrderTypeService;
|
||||
import com.mhd.oms.domain.orderType.repository.mapper.OrderTypeMapper;
|
||||
import com.mhd.oms.domain.orderType.repository.po.OrderTypeDictPO;
|
||||
import com.mhd.oms.domain.orderType.repository.po.OrderTypePO;
|
||||
import com.mhd.oms.domain.orderType.repository.todo.OrderTypeDO;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单类型关系Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
@Service
|
||||
public class OrderTypeImpl extends ServiceImpl<OrderTypeMapper, OrderType> implements IOrderTypeService{
|
||||
@Autowired
|
||||
private OrderTypeMapper orderTypeMapper;
|
||||
|
||||
/**
|
||||
* 查询订单类型关系列表
|
||||
*/
|
||||
@Override
|
||||
public List<OrderTypePO> queryList(OrderTypeDO orderTypeDO)
|
||||
{
|
||||
return orderTypeMapper.queryList(orderTypeDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增订单类型关系
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(OrderTypeDO orderTypeDO) {
|
||||
OrderType orderType = new OrderType();
|
||||
BeanUtils.copyProperties(orderTypeDO,orderType);
|
||||
return this.save(orderType);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改订单类型关系
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(OrderTypeDO orderTypeDO) {
|
||||
OrderType orderType = new OrderType();
|
||||
BeanUtils.copyProperties(orderTypeDO,orderType);
|
||||
return this.updateById(orderType);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除订单类型关系
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] ids ) {
|
||||
List<OrderType> list = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
OrderType orderType = new OrderType();
|
||||
orderType.setId(id);
|
||||
orderType.setDelFlag(2);
|
||||
list.add(orderType);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改订单类型关系
|
||||
*/
|
||||
@Override
|
||||
public OrderTypePO getInfo(Long id) {
|
||||
OrderType orderType = this.orderTypeMapper.selectOne(new LambdaQueryWrapper<OrderType>()
|
||||
.eq(OrderType::getId,id).eq(OrderType::getDelFlag,1));
|
||||
OrderTypePO orderTypePO = new OrderTypePO();
|
||||
if (orderType != null) {
|
||||
BeanUtils.copyProperties(orderType, orderTypePO);
|
||||
}
|
||||
return orderTypePO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderTypeDictPO> listDict() {
|
||||
return orderTypeMapper.listDict();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.mhd.oms.domain.orderType.repository.po;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "订单类型关系数据字典对象", description = "订单类型关系数据字典对象")
|
||||
public class OrderTypeDictPO {
|
||||
|
||||
private Long id;
|
||||
|
||||
private String businessOrderType;
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
package com.mhd.oms.domain.orderType.repository.po;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 订单类型关系对象 oms_order_type
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "订单类型关系对象", description = "订单类型关系响应对象")
|
||||
public class OrderTypePO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("业务订单类型ID")
|
||||
@Excel(name = "业务订单类型ID")
|
||||
private String businessOrderTypeId;
|
||||
|
||||
@ApiModelProperty("业务订单类型")
|
||||
@Excel(name = "业务订单类型")
|
||||
private String businessOrderType;
|
||||
|
||||
@ApiModelProperty("作业任务类型ID")
|
||||
@Excel(name = "作业任务类型ID")
|
||||
private Integer jobTaskTypeId;
|
||||
|
||||
@ApiModelProperty("作业任务类型")
|
||||
@Excel(name = "作业任务类型")
|
||||
private String jobTaskType;
|
||||
|
||||
@ApiModelProperty("下发系统ID")
|
||||
@Excel(name = "下发系统ID")
|
||||
private String deliverySystemId;
|
||||
|
||||
@ApiModelProperty("下发系统")
|
||||
@Excel(name = "下发系统")
|
||||
private String deliverySystem;
|
||||
|
||||
@ApiModelProperty("下发订单类型ID")
|
||||
@Excel(name = "下发订单类型ID")
|
||||
private String orderTypeId;
|
||||
|
||||
@ApiModelProperty("下发订单类型")
|
||||
@Excel(name = "下发订单类型")
|
||||
private String orderType;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.mhd.oms.domain.orderType.repository.todo;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 订单类型关系对象 oms_order_type
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class OrderTypeDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("业务订单类型ID")
|
||||
@Excel(name = "业务订单类型ID")
|
||||
private String businessOrderTypeId;
|
||||
|
||||
@ApiModelProperty("业务订单类型")
|
||||
@Excel(name = "业务订单类型")
|
||||
private String businessOrderType;
|
||||
|
||||
@ApiModelProperty("作业任务类型ID")
|
||||
@Excel(name = "作业任务类型ID")
|
||||
private Integer jobTaskTypeId;
|
||||
|
||||
@ApiModelProperty("作业任务类型")
|
||||
@Excel(name = "作业任务类型")
|
||||
private String jobTaskType;
|
||||
|
||||
@ApiModelProperty("下发系统ID")
|
||||
@Excel(name = "下发系统ID")
|
||||
private String deliverySystemId;
|
||||
|
||||
@ApiModelProperty("下发系统")
|
||||
@Excel(name = "下发系统")
|
||||
private String deliverySystem;
|
||||
|
||||
@ApiModelProperty("下发订单类型ID")
|
||||
@Excel(name = "下发订单类型ID")
|
||||
private String orderTypeId;
|
||||
|
||||
@ApiModelProperty("下发订单类型")
|
||||
@Excel(name = "下发订单类型")
|
||||
private String orderType;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
}
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
package com.mhd.oms.domain.orderType.service;
|
||||
|
||||
import com.mhd.oms.domain.orderType.repository.facade.IOrderTypeService;
|
||||
import com.mhd.oms.domain.orderType.repository.po.OrderTypeDictPO;
|
||||
import com.mhd.oms.domain.orderType.repository.po.OrderTypePO;
|
||||
import com.mhd.oms.domain.orderType.repository.todo.OrderTypeDO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单类型关系
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-15
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class OrderTypeDomainService {
|
||||
|
||||
@Autowired
|
||||
private IOrderTypeService orderTypeService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询订单类型关系列表
|
||||
*/
|
||||
public List<OrderTypePO> queryList(OrderTypeDO orderTypeDO) {
|
||||
return orderTypeService.queryList(orderTypeDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增订单类型关系
|
||||
*/
|
||||
public Boolean insert(OrderTypeDO orderTypeDO) {
|
||||
|
||||
return orderTypeService.insert(orderTypeDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改订单类型关系
|
||||
*/
|
||||
public Boolean update(OrderTypeDO orderTypeDO) {
|
||||
return orderTypeService.update(orderTypeDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除订单类型关系
|
||||
*/
|
||||
public Boolean delete(Long[] ids) {
|
||||
return orderTypeService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取订单类型关系详细信息
|
||||
*/
|
||||
public OrderTypePO getInfo(Long id)
|
||||
{
|
||||
return orderTypeService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
public List<OrderTypeDictPO> listDict() {
|
||||
return orderTypeService.listDict();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
package com.mhd.oms.domain.purchaseOrder.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 采购订单管理对象 oms_purchase_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName("oms_purchase_order")
|
||||
public class PurchaseOrder extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("审核人")
|
||||
@Excel(name = "审核人")
|
||||
private Long auditBy;
|
||||
|
||||
@ApiModelProperty("审核时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date auditTime;
|
||||
|
||||
@ApiModelProperty("审核状态;1待审核2通过3拒绝")
|
||||
@Excel(name = "审核状态;1待审核2通过3拒绝")
|
||||
private Integer auditState;
|
||||
|
||||
@ApiModelProperty("审核结果")
|
||||
@Excel(name = "审核结果")
|
||||
private String auditResult;
|
||||
|
||||
@ApiModelProperty("采购单号")
|
||||
@Excel(name = "采购单号")
|
||||
private String orderNo;
|
||||
|
||||
@ApiModelProperty("订单状态;1待审核2已审核3已拒绝4已生成5部分采购6完成采购7已取消8已拦截")
|
||||
@Excel(name = "订单状态;1待审核2已审核3已拒绝4已生成5部分采购6完成采购7已取消8已拦截")
|
||||
private Integer orderState;
|
||||
|
||||
@ApiModelProperty("供应商ID")
|
||||
@Excel(name = "供应商ID")
|
||||
private Long supplierId;
|
||||
|
||||
@ApiModelProperty("供应商")
|
||||
@Excel(name = "供应商")
|
||||
private String supplier;
|
||||
|
||||
@ApiModelProperty("货主ID")
|
||||
@Excel(name = "货主ID")
|
||||
private Long shipperId;
|
||||
|
||||
@ApiModelProperty("货主")
|
||||
@Excel(name = "货主")
|
||||
private String shipper;
|
||||
|
||||
@ApiModelProperty("组织ID")
|
||||
@Excel(name = "组织ID")
|
||||
private Long orgId;
|
||||
|
||||
@ApiModelProperty("组织")
|
||||
@Excel(name = "组织")
|
||||
private String org;
|
||||
|
||||
@ApiModelProperty("订单时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "订单时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date orderTime;
|
||||
|
||||
@ApiModelProperty("订单类型ID")
|
||||
@Excel(name = "订单类型ID")
|
||||
private Long orderTypeId;
|
||||
|
||||
@ApiModelProperty("订单类型")
|
||||
@Excel(name = "订单类型")
|
||||
private String orderType;
|
||||
|
||||
@ApiModelProperty("作业任务类型ID")
|
||||
@Excel(name = "作业任务类型ID")
|
||||
private Integer jobTaskTypeId;
|
||||
|
||||
@ApiModelProperty("作业任务类型")
|
||||
@Excel(name = "作业任务类型")
|
||||
private String jobTaskType;
|
||||
|
||||
@ApiModelProperty("收货仓库ID")
|
||||
@Excel(name = "收货仓库ID")
|
||||
private Long receivingWarehouseId;
|
||||
|
||||
@ApiModelProperty("收货仓库")
|
||||
@Excel(name = "收货仓库")
|
||||
private String receivingWarehouse;
|
||||
|
||||
@ApiModelProperty("交货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "交货日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date deliveryDate;
|
||||
|
||||
@ApiModelProperty("客户订单号")
|
||||
@Excel(name = "客户订单号")
|
||||
private String customerOrders;
|
||||
|
||||
@ApiModelProperty("合同号")
|
||||
@Excel(name = "合同号")
|
||||
private String contractNo;
|
||||
|
||||
@ApiModelProperty("项目ID")
|
||||
@Excel(name = "项目ID")
|
||||
private String projectId;
|
||||
|
||||
@ApiModelProperty("项目")
|
||||
@Excel(name = "项目")
|
||||
private String project;
|
||||
|
||||
@ApiModelProperty("优惠率")
|
||||
@Excel(name = "优惠率")
|
||||
private BigDecimal rateConcession;
|
||||
|
||||
@ApiModelProperty("优惠金额")
|
||||
@Excel(name = "优惠金额")
|
||||
private BigDecimal discountAmount;
|
||||
|
||||
@ApiModelProperty("合计金额")
|
||||
@Excel(name = "合计金额")
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
|
||||
@ApiModelProperty("附件名称")
|
||||
@Excel(name = "附件名称")
|
||||
private String fileName;
|
||||
|
||||
@ApiModelProperty("附件地址")
|
||||
@Excel(name = "附件地址")
|
||||
private String fileUrl;
|
||||
|
||||
@ApiModelProperty("来源;0-内部1-外部")
|
||||
@Excel(name = "来源;0-内部1-外部")
|
||||
private Integer source;
|
||||
|
||||
@ApiModelProperty("拦截状态;0未拦截1拦截成功2拦截失败")
|
||||
@Excel(name = "拦截状态;0未拦截1拦截成功2拦截失败")
|
||||
private Integer tacklState;
|
||||
|
||||
@ApiModelProperty("拦截时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "拦截时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date tacklTime;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("价税合计")
|
||||
@Excel(name = "价税合计")
|
||||
private BigDecimal totalPriceTax;
|
||||
|
||||
@ApiModelProperty("物料信息")
|
||||
@Excel(name = "物料信息")
|
||||
private String materialInfo;
|
||||
|
||||
|
||||
@ApiModelProperty("物料数量")
|
||||
@Excel(name = "物料数量")
|
||||
private Integer materialNum;
|
||||
|
||||
@ApiModelProperty("入库数量")
|
||||
@Excel(name = "入库数量")
|
||||
private Integer inStorageNum;
|
||||
|
||||
|
||||
@ApiModelProperty("下发系统")
|
||||
@Excel(name = "下发系统")
|
||||
private String deliverySystem;
|
||||
}
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
package com.mhd.oms.domain.purchaseOrder.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.oms.domain.purchaseOrder.entity.PurchaseOrder;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.po.PurchaseOrderDetailsPO;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.po.PurchaseOrderPO;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.todo.PurchaseOrderAuditDO;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.todo.PurchaseOrderDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采购订单管理Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
public interface IPurchaseOrderService extends IService<PurchaseOrder>
|
||||
{
|
||||
/**
|
||||
* 分页查询采购订单管理列表
|
||||
*/
|
||||
public List<PurchaseOrderPO> queryList(PurchaseOrderDO purchaseOrderDO);
|
||||
|
||||
/**
|
||||
* 新增采购订单管理
|
||||
*/
|
||||
public Boolean insert(PurchaseOrderDO purchaseOrderDO);
|
||||
/** 新增并返回实体 */
|
||||
public PurchaseOrder insertReturnEntity(PurchaseOrderDO purchaseOrderDO);
|
||||
|
||||
/**
|
||||
* 新增采购订单管理
|
||||
*/
|
||||
public Long insertReturnId(PurchaseOrderDO purchaseOrderDO);
|
||||
|
||||
/**
|
||||
* 修改采购订单管理
|
||||
*/
|
||||
public Boolean update(PurchaseOrderDO purchaseOrderDO);
|
||||
|
||||
/**
|
||||
* 批量删除采购订单管理
|
||||
*/
|
||||
public Boolean delete(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 查询采购订单管理
|
||||
*/
|
||||
public PurchaseOrderDetailsPO getInfo(Long id);
|
||||
|
||||
/**
|
||||
* 采购订单审核
|
||||
* @param purchaseOrderAuditDO
|
||||
* @return
|
||||
*/
|
||||
public Boolean audit(PurchaseOrderAuditDO purchaseOrderAuditDO);
|
||||
|
||||
/**
|
||||
* 采购订单取消审核
|
||||
* @param purchaseOrderAuditDO
|
||||
* @return
|
||||
*/
|
||||
public Boolean cancelAudit(PurchaseOrderAuditDO purchaseOrderAuditDO);
|
||||
|
||||
/**
|
||||
* 根据ID更新状态
|
||||
*/
|
||||
void updateStateById(Long id, Integer state);
|
||||
|
||||
List<PurchaseOrderPO> getInfo(List<Long> ids);
|
||||
|
||||
Boolean batchUpdate(List<PurchaseOrderDO> purchaseOrderDOS);
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package com.mhd.oms.domain.purchaseOrder.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.oms.domain.OrderInfoPO;
|
||||
import com.mhd.oms.domain.purchaseOrder.entity.PurchaseOrder;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.po.PurchaseOrderPO;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.todo.PurchaseOrderDO;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采购订单管理Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
public interface PurchaseOrderMapper extends BaseMapper<PurchaseOrder>
|
||||
{
|
||||
/**
|
||||
* 查询采购订单管理列表
|
||||
*/
|
||||
public List<PurchaseOrderPO> queryList(PurchaseOrderDO purchaseOrderDO);
|
||||
|
||||
@Select("select order_no, shipper_id, shipper, order_type, customer_orders, tackl_state, job_task_type, supplier_id, order_type_id " +
|
||||
"from oms_purchase_order where id = #{orderId}")
|
||||
OrderInfoPO selectOrderInfoByOrderId(Long orderId);
|
||||
}
|
||||
+307
@@ -0,0 +1,307 @@
|
||||
package com.mhd.oms.domain.purchaseOrder.repository.persistence;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.constant.OrderConstant;
|
||||
import com.mhd.oms.domain.deliveryInfo.entity.DeliveryInfo;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.mapper.DeliveryInfoMapper;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.po.DeliveryInfoPO;
|
||||
import com.mhd.oms.domain.goods.entity.Goods;
|
||||
import com.mhd.oms.domain.goods.repository.mapper.GoodsMapper;
|
||||
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
|
||||
import com.mhd.oms.domain.logistics.entity.Logistics;
|
||||
import com.mhd.oms.domain.logistics.repository.mapper.LogisticsMapper;
|
||||
import com.mhd.oms.domain.logistics.repository.po.LogisticsPO;
|
||||
import com.mhd.oms.domain.purchaseOrder.entity.PurchaseOrder;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.facade.IPurchaseOrderService;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.mapper.PurchaseOrderMapper;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.po.PurchaseOrderDetailsPO;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.po.PurchaseOrderPO;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.todo.PurchaseOrderAuditDO;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.todo.PurchaseOrderDO;
|
||||
import com.mhd.oms.domain.receiptInfo.entity.ReceiptInfo;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.mapper.ReceiptInfoMapper;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.po.ReceiptInfoPO;
|
||||
import com.mhd.oms.domain.scmOrder.repository.mapper.ScmOrderMapper;
|
||||
import com.mhd.oms.domain.settlement.entity.Settlement;
|
||||
import com.mhd.oms.domain.settlement.repository.mapper.SettlementMapper;
|
||||
import com.mhd.oms.domain.settlement.repository.po.SettlementPO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 采购订单管理Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
@Service
|
||||
public class PurchaseOrderImpl extends ServiceImpl<PurchaseOrderMapper, PurchaseOrder> implements IPurchaseOrderService {
|
||||
@Autowired
|
||||
private PurchaseOrderMapper purchaseOrderMapper;
|
||||
|
||||
@Resource
|
||||
private SettlementMapper settlementMapper;
|
||||
|
||||
@Resource
|
||||
private DeliveryInfoMapper deliveryInfoMapper;
|
||||
|
||||
@Resource
|
||||
private ReceiptInfoMapper receiptInfoMapper;
|
||||
|
||||
@Resource
|
||||
private LogisticsMapper logisticsMapper;
|
||||
|
||||
@Resource
|
||||
private GoodsMapper goodsMapper;
|
||||
|
||||
@Resource
|
||||
private ScmOrderMapper scmOrderMapper;
|
||||
|
||||
/**
|
||||
* 查询采购订单管理列表
|
||||
*/
|
||||
@Override
|
||||
public List<PurchaseOrderPO> queryList(PurchaseOrderDO purchaseOrderDO)
|
||||
{
|
||||
List<PurchaseOrderPO> purchaseOrderPOS = purchaseOrderMapper.queryList(purchaseOrderDO);
|
||||
for (PurchaseOrderPO purchaseOrderPO : purchaseOrderPOS) {
|
||||
//查询供应链订单号
|
||||
String scmOrderNo = scmOrderMapper.selectScmOrderNoByOrderId(purchaseOrderPO.getId());
|
||||
}
|
||||
return purchaseOrderPOS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增采购订单管理
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(PurchaseOrderDO purchaseOrderDO) {
|
||||
PurchaseOrder purchaseOrder = new PurchaseOrder();
|
||||
BeanUtils.copyProperties(purchaseOrderDO,purchaseOrder);
|
||||
return this.save(purchaseOrder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PurchaseOrder insertReturnEntity(PurchaseOrderDO purchaseOrderDO) {
|
||||
PurchaseOrder purchaseOrder = new PurchaseOrder();
|
||||
BeanUtils.copyProperties(purchaseOrderDO,purchaseOrder);
|
||||
this.save(purchaseOrder);
|
||||
return purchaseOrder;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增采购订单管理并且返回主键ID
|
||||
*/
|
||||
@Override
|
||||
public Long insertReturnId(PurchaseOrderDO purchaseOrderDO) {
|
||||
PurchaseOrder purchaseOrder = new PurchaseOrder();
|
||||
BeanUtils.copyProperties(purchaseOrderDO,purchaseOrder);
|
||||
this.save(purchaseOrder);
|
||||
return purchaseOrder.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改采购订单管理
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(PurchaseOrderDO purchaseOrderDO) {
|
||||
PurchaseOrder purchaseOrder = new PurchaseOrder();
|
||||
BeanUtils.copyProperties(purchaseOrderDO,purchaseOrder);
|
||||
return this.updateById(purchaseOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除采购订单管理
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] ids ) {
|
||||
List<PurchaseOrder> list = new ArrayList<>();
|
||||
List<PurchaseOrderPO> purchaseOrderPOS = getInfo(Arrays.asList(ids));
|
||||
//采购订单 订单状态未审核/已审核状态下才可以删除,否则提示异常
|
||||
List<PurchaseOrderPO> collect = purchaseOrderPOS.stream().
|
||||
filter(purchaseOrderPO -> purchaseOrderPO.getOrderState() > 2).collect(Collectors.toList());
|
||||
if (!collect.isEmpty()) {
|
||||
throw new ServiceException("未审核/已审核状态下才可以删除订单");
|
||||
}
|
||||
for (PurchaseOrderPO purchaseOrderPO : purchaseOrderPOS) {
|
||||
PurchaseOrder purchaseOrder = new PurchaseOrder();
|
||||
purchaseOrder.setId(purchaseOrderPO.getId());
|
||||
purchaseOrder.setDelFlag(2);
|
||||
list.add(purchaseOrder);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改采购订单管理
|
||||
*/
|
||||
@Override
|
||||
public PurchaseOrderDetailsPO getInfo(Long id) {
|
||||
|
||||
PurchaseOrderDetailsPO purchaseOrderDetailsPO = new PurchaseOrderDetailsPO();
|
||||
PurchaseOrder purchaseOrder = this.getById(id);
|
||||
PurchaseOrderPO purchaseOrderPO = new PurchaseOrderPO();
|
||||
if (ObjectUtil.isNull(purchaseOrder)) {
|
||||
throw new ServiceException("未查询到对应的采购单信息");
|
||||
}
|
||||
BeanUtils.copyProperties(purchaseOrder,purchaseOrderPO);
|
||||
purchaseOrderDetailsPO.setPurchaseOrderPO(purchaseOrderPO);
|
||||
|
||||
SettlementPO settlementPO = new SettlementPO();
|
||||
Settlement settlement = settlementMapper.selectOne(new LambdaQueryWrapper<Settlement>()
|
||||
.eq(Settlement::getOrderId, id).eq(Settlement::getDelFlag, 1));
|
||||
if (ObjectUtil.isNull(settlement)) {//结算单对象可以为空,如果为空则认为结算单没有数据
|
||||
settlement = new Settlement();
|
||||
}
|
||||
BeanUtils.copyProperties(settlement,settlementPO);
|
||||
purchaseOrderDetailsPO.setSettlementPO(settlementPO);
|
||||
|
||||
DeliveryInfoPO deliveryInfoPO = new DeliveryInfoPO();
|
||||
DeliveryInfo deliveryInfo = deliveryInfoMapper.selectOne(new LambdaQueryWrapper<DeliveryInfo>()
|
||||
.eq(DeliveryInfo::getOrderId, id).eq(DeliveryInfo::getDelFlag, 1));
|
||||
if (ObjectUtil.isNull(deliveryInfo)) {
|
||||
deliveryInfo = new DeliveryInfo();
|
||||
}
|
||||
BeanUtils.copyProperties(deliveryInfo, deliveryInfoPO);
|
||||
purchaseOrderDetailsPO.setDeliveryInfoPO(deliveryInfoPO);
|
||||
|
||||
|
||||
ReceiptInfoPO receiptInfoPO = new ReceiptInfoPO();
|
||||
ReceiptInfo receiptInfo = receiptInfoMapper.selectOne(new LambdaQueryWrapper<ReceiptInfo>()
|
||||
.eq(ReceiptInfo::getOrderId, id).eq(ReceiptInfo::getDelFlag, 1));
|
||||
if (ObjectUtil.isNull(receiptInfo)) {
|
||||
receiptInfo = new ReceiptInfo();
|
||||
}
|
||||
BeanUtils.copyProperties(receiptInfo, receiptInfoPO);
|
||||
purchaseOrderDetailsPO.setReceiptInfoPO(receiptInfoPO);
|
||||
|
||||
LogisticsPO logisticsPO = new LogisticsPO();
|
||||
Logistics logistics = logisticsMapper.selectOne(new LambdaQueryWrapper<Logistics>()
|
||||
.eq(Logistics::getOrderId, id).eq(Logistics::getDelFlag, 1));
|
||||
if (ObjectUtil.isNull(logistics)) {
|
||||
logistics = new Logistics();
|
||||
}
|
||||
BeanUtils.copyProperties(logistics, logisticsPO);
|
||||
purchaseOrderDetailsPO.setLogisticsPO(logisticsPO);
|
||||
|
||||
List<Goods> goodsList = goodsMapper.selectList(new LambdaQueryWrapper<Goods>()
|
||||
.eq(Goods::getOrderId, id).eq(Goods::getDelFlag, 1));
|
||||
List<GoodsPO> goodsPOList = goodsList.stream().map(goods -> {
|
||||
GoodsPO goodsPO = new GoodsPO();
|
||||
BeanUtils.copyProperties(goods, goodsPO);
|
||||
return goodsPO;
|
||||
}).collect(Collectors.toList());
|
||||
purchaseOrderDetailsPO.setGoodsPOList(goodsPOList);
|
||||
|
||||
|
||||
return purchaseOrderDetailsPO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 采购订单审核
|
||||
* @param purchaseOrderAuditDO
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Boolean audit(PurchaseOrderAuditDO purchaseOrderAuditDO) {
|
||||
List<PurchaseOrder> purchaseOrders = new ArrayList<>();
|
||||
List<Long> ids = Convert.toList(Long.class, purchaseOrderAuditDO.getIds());
|
||||
for (Long id : ids) {
|
||||
PurchaseOrder purchaseOrder = this.getById(id);
|
||||
if (ObjectUtil.isNull(purchaseOrder)) {
|
||||
throw new ServiceException("未查询到对应的采购订单");
|
||||
}
|
||||
if (purchaseOrder.getAuditState() == 2 || purchaseOrder.getAuditState() == 3) {
|
||||
throw new ServiceException(String.format("订单号【%s】订单状态不符合预期,仅在待审核状态下才允许审核", purchaseOrder.getOrderNo()));
|
||||
}
|
||||
purchaseOrder.setAuditBy(purchaseOrderAuditDO.getAuditBy());
|
||||
purchaseOrder.setAuditTime(new Date());
|
||||
purchaseOrder.setAuditState(purchaseOrderAuditDO.getAuditState());
|
||||
purchaseOrder.setAuditResult(purchaseOrderAuditDO.getAuditResult());
|
||||
purchaseOrder.setOrderState(purchaseOrderAuditDO.getAuditState());
|
||||
purchaseOrder.setUpdateBy(purchaseOrderAuditDO.getUpdateBy());
|
||||
purchaseOrder.setUpdateTime(purchaseOrderAuditDO.getUpdateTime());
|
||||
purchaseOrder.setUpdateByName(purchaseOrderAuditDO.getUpdateByName());
|
||||
purchaseOrders.add(purchaseOrder);
|
||||
}
|
||||
return this.updateBatchById(purchaseOrders);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean cancelAudit(PurchaseOrderAuditDO purchaseOrderAuditDO) {
|
||||
List<PurchaseOrder> purchaseOrders = new ArrayList<>();
|
||||
List<Long> ids = Convert.toList(Long.class, purchaseOrderAuditDO.getIds());
|
||||
for (Long id : ids) {
|
||||
PurchaseOrder purchaseOrder = this.getById(id);
|
||||
if (ObjectUtil.isNull(purchaseOrder)) {
|
||||
throw new ServiceException("未查询到对应的采购订单");
|
||||
}
|
||||
//状态1,4,5,6,7,8无法取消审核
|
||||
if (ArrayUtil.contains(OrderConstant.PUR_STATUS_GROUP_UNABLE_CANCEL_AUDIT, purchaseOrder.getOrderState())) {
|
||||
throw new ServiceException(String.format("订单号【%s】订单状态异常,暂时无法取消审核", purchaseOrder.getOrderNo()));
|
||||
}
|
||||
purchaseOrder.setAuditBy(null);
|
||||
purchaseOrder.setAuditTime(null);
|
||||
//取消审核,审核状态还原为未审核
|
||||
purchaseOrder.setAuditState(OrderConstant.PUR_STATUS_1);
|
||||
purchaseOrder.setOrderState(1);
|
||||
purchaseOrder.setAuditResult("");
|
||||
purchaseOrder.setUpdateBy(purchaseOrderAuditDO.getUpdateBy());
|
||||
purchaseOrder.setUpdateTime(purchaseOrderAuditDO.getUpdateTime());
|
||||
purchaseOrder.setUpdateByName(purchaseOrderAuditDO.getUpdateByName());
|
||||
purchaseOrders.add(purchaseOrder);
|
||||
}
|
||||
return this.updateBatchById(purchaseOrders);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PurchaseOrderPO> getInfo(List<Long> ids) {
|
||||
List<PurchaseOrder> purchaseOrders = purchaseOrderMapper.selectList(new LambdaQueryWrapper<PurchaseOrder>()
|
||||
.in(PurchaseOrder::getId, ids));
|
||||
return purchaseOrders.stream().map(purchaseOrder -> {
|
||||
PurchaseOrderPO purchaseOrderPO = new PurchaseOrderPO();
|
||||
BeanUtils.copyProperties(purchaseOrder, purchaseOrderPO);
|
||||
return purchaseOrderPO;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean batchUpdate(List<PurchaseOrderDO> purchaseOrderDOS) {
|
||||
List<PurchaseOrder> purchaseOrders = new ArrayList<>();
|
||||
for (PurchaseOrderDO purchaseOrderDO : purchaseOrderDOS) {
|
||||
PurchaseOrder purchaseOrder = new PurchaseOrder();
|
||||
BeanUtils.copyProperties(purchaseOrderDO,purchaseOrder);
|
||||
purchaseOrders.add(purchaseOrder);
|
||||
}
|
||||
return this.updateBatchById(purchaseOrders);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStateById(Long id, Integer state) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
purchaseOrderMapper.update(new PurchaseOrder(), new LambdaUpdateWrapper<PurchaseOrder>()
|
||||
.set(PurchaseOrder::getOrderState, state)
|
||||
.set(PurchaseOrder::getUpdateBy, loginUser.getUserid())
|
||||
.set(PurchaseOrder::getUpdateByName, loginUser.getUsername())
|
||||
.set(PurchaseOrder::getUpdateTime, new Date())
|
||||
.eq(PurchaseOrder::getId, id));
|
||||
}
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package com.mhd.oms.domain.purchaseOrder.repository.po;
|
||||
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.po.DeliveryInfoPO;
|
||||
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
|
||||
import com.mhd.oms.domain.logistics.repository.po.LogisticsPO;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.po.ReceiptInfoPO;
|
||||
import com.mhd.oms.domain.settlement.repository.po.SettlementPO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 采购订单管理对象 oms_purchase_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "采购订单详情对象", description = "采购订单详情响应对象")
|
||||
public class PurchaseOrderDetailsPO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("基本信息")
|
||||
private PurchaseOrderPO purchaseOrderPO;
|
||||
|
||||
@ApiModelProperty("结算信息")
|
||||
private SettlementPO settlementPO;
|
||||
|
||||
@ApiModelProperty("发货信息")
|
||||
private DeliveryInfoPO deliveryInfoPO;
|
||||
|
||||
@ApiModelProperty("收货信息")
|
||||
private ReceiptInfoPO receiptInfoPO;
|
||||
|
||||
@ApiModelProperty("物流信息")
|
||||
private LogisticsPO logisticsPO;
|
||||
|
||||
@ApiModelProperty("物料信息")
|
||||
private List<GoodsPO> goodsPOList;
|
||||
|
||||
|
||||
|
||||
}
|
||||
+216
@@ -0,0 +1,216 @@
|
||||
package com.mhd.oms.domain.purchaseOrder.repository.po;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 采购订单管理对象 oms_purchase_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "采购订单管理对象", description = "采购订单管理响应对象")
|
||||
public class PurchaseOrderPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("审核人")
|
||||
@Excel(name = "审核人")
|
||||
private Long auditBy;
|
||||
|
||||
@ApiModelProperty("审核时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date auditTime;
|
||||
|
||||
@ApiModelProperty("审核状态;1待审核2通过3拒绝")
|
||||
@Excel(name = "审核状态;1待审核2通过3拒绝")
|
||||
private Integer auditState;
|
||||
|
||||
@ApiModelProperty("审核结果")
|
||||
@Excel(name = "审核结果")
|
||||
private String auditResult;
|
||||
|
||||
@ApiModelProperty("采购单号")
|
||||
@Excel(name = "采购单号")
|
||||
private String orderNo;
|
||||
|
||||
@ApiModelProperty("订单状态:1-待审核、2-已审核、3-已拒绝、4-已生成、5-部分采购、6-完成采购、7-已取消、8-已拦截")
|
||||
@Excel(name = "订单状态;1待审核2已审核3已拒绝4已生成5部分采购6完成采购7已取消8已拦截")
|
||||
private Integer orderState;
|
||||
|
||||
@ApiModelProperty("供应商ID")
|
||||
@Excel(name = "供应商ID")
|
||||
private Long supplierId;
|
||||
|
||||
@ApiModelProperty("供应商")
|
||||
@Excel(name = "供应商")
|
||||
private String supplier;
|
||||
|
||||
@ApiModelProperty("货主ID")
|
||||
@Excel(name = "货主ID")
|
||||
private Long shipperId;
|
||||
|
||||
@ApiModelProperty("货主")
|
||||
@Excel(name = "货主")
|
||||
private String shipper;
|
||||
|
||||
@ApiModelProperty("组织ID")
|
||||
@Excel(name = "组织ID")
|
||||
private Long orgId;
|
||||
|
||||
@ApiModelProperty("组织")
|
||||
@Excel(name = "组织")
|
||||
private String org;
|
||||
|
||||
@ApiModelProperty("订单时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "订单时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date orderTime;
|
||||
|
||||
@ApiModelProperty("订单类型ID")
|
||||
@Excel(name = "订单类型ID")
|
||||
private Long orderTypeId;
|
||||
|
||||
@ApiModelProperty("订单类型")
|
||||
@Excel(name = "订单类型")
|
||||
private String orderType;
|
||||
|
||||
@ApiModelProperty("作业任务类型ID")
|
||||
@Excel(name = "作业任务类型ID")
|
||||
private Integer jobTaskTypeId;
|
||||
|
||||
@ApiModelProperty("作业任务类型")
|
||||
@Excel(name = "作业任务类型")
|
||||
private String jobTaskType;
|
||||
|
||||
@ApiModelProperty("收货仓库ID")
|
||||
@Excel(name = "收货仓库ID")
|
||||
private Long receivingWarehouseId;
|
||||
|
||||
@ApiModelProperty("收货仓库")
|
||||
@Excel(name = "收货仓库")
|
||||
private String receivingWarehouse;
|
||||
|
||||
@ApiModelProperty("交货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "交货日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date deliveryDate;
|
||||
|
||||
@ApiModelProperty("客户订单号")
|
||||
@Excel(name = "客户订单号")
|
||||
private String customerOrders;
|
||||
|
||||
@ApiModelProperty("合同号")
|
||||
@Excel(name = "合同号")
|
||||
private String contractNo;
|
||||
|
||||
@ApiModelProperty("项目ID")
|
||||
@Excel(name = "项目ID")
|
||||
private String projectId;
|
||||
|
||||
@ApiModelProperty("项目")
|
||||
@Excel(name = "项目")
|
||||
private String project;
|
||||
|
||||
@ApiModelProperty("优惠率")
|
||||
@Excel(name = "优惠率")
|
||||
private BigDecimal rateConcession;
|
||||
|
||||
@ApiModelProperty("优惠金额")
|
||||
@Excel(name = "优惠金额")
|
||||
private BigDecimal discountAmount;
|
||||
|
||||
@ApiModelProperty("合计金额")
|
||||
@Excel(name = "合计金额")
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
@ApiModelProperty("附件名称")
|
||||
@Excel(name = "附件名称")
|
||||
private String fileName;
|
||||
|
||||
@ApiModelProperty("附件地址")
|
||||
@Excel(name = "附件地址")
|
||||
private String fileUrl;
|
||||
|
||||
@ApiModelProperty("来源:0-内部、1-外部")
|
||||
@Excel(name = "来源;0-内部1-外部")
|
||||
private Integer source;
|
||||
|
||||
@ApiModelProperty("拦截状态:0-未拦截、1-拦截成功、2-拦截失败")
|
||||
@Excel(name = "拦截状态;0未拦截1拦截成功2拦截失败")
|
||||
private Integer tacklState;
|
||||
|
||||
@ApiModelProperty("拦截时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "拦截时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date tacklTime;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
@ApiModelProperty("结算对象")
|
||||
@Excel(name = "结算对象")
|
||||
private String settlementObj;
|
||||
|
||||
@ApiModelProperty("结算方式")
|
||||
@Excel(name = "结算方式")
|
||||
private String settlementWay;
|
||||
|
||||
@ApiModelProperty("支付状态")
|
||||
@Excel(name = "支付状态")
|
||||
private String payStatus;
|
||||
|
||||
|
||||
@ApiModelProperty("供应链订单号")
|
||||
@Excel(name = "供应链订单号")
|
||||
private String scmOrderNo;
|
||||
|
||||
@ApiModelProperty("价税合计")
|
||||
@Excel(name = "价税合计")
|
||||
private BigDecimal totalPriceTax;
|
||||
|
||||
@ApiModelProperty("物料信息")
|
||||
@Excel(name = "物料信息")
|
||||
private String materialInfo;
|
||||
|
||||
|
||||
@ApiModelProperty("物料数量")
|
||||
@Excel(name = "物料数量")
|
||||
private Integer materialNum;
|
||||
|
||||
@ApiModelProperty("入库数量")
|
||||
@Excel(name = "入库数量")
|
||||
private Integer inStorageNum;
|
||||
|
||||
@ApiModelProperty("下发系统")
|
||||
@Excel(name = "下发系统")
|
||||
private String deliverySystem;
|
||||
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
package com.mhd.oms.domain.purchaseOrder.repository.todo;
|
||||
|
||||
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.todo.DeliveryInfoDO;
|
||||
import com.mhd.oms.domain.goods.repository.todo.GoodsDO;
|
||||
import com.mhd.oms.domain.logistics.repository.todo.LogisticsDO;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.todo.ReceiptInfoDO;
|
||||
import com.mhd.oms.domain.settlement.repository.todo.SettlementDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 采购订单管理对象 oms_purchase_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class PurchaseOrderAddDO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("基本信息")
|
||||
private PurchaseOrderDO purchaseOrderDo;
|
||||
|
||||
@ApiModelProperty("结算信息")
|
||||
private SettlementDO settlementDo;
|
||||
|
||||
@ApiModelProperty("发货信息")
|
||||
private DeliveryInfoDO deliveryInfoDo;
|
||||
|
||||
@ApiModelProperty("收货信息")
|
||||
private ReceiptInfoDO receiptInfoDo;
|
||||
|
||||
@ApiModelProperty("物流信息")
|
||||
private LogisticsDO logisticsDo;
|
||||
|
||||
@ApiModelProperty("物料信息")
|
||||
private List<GoodsDO> goodsDOList;
|
||||
}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
package com.mhd.oms.domain.purchaseOrder.repository.todo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class PurchaseOrderAuditDO extends BaseVOEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("采购订单ID集合")
|
||||
private String ids;
|
||||
|
||||
|
||||
@ApiModelProperty("审核人")
|
||||
@Excel(name = "审核人")
|
||||
private Long auditBy;
|
||||
|
||||
@ApiModelProperty("审核时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date auditTime;
|
||||
|
||||
@ApiModelProperty("审核状态;1待审核2通过3拒绝")
|
||||
@Excel(name = "审核状态;1待审核2通过3拒绝")
|
||||
private Integer auditState;
|
||||
|
||||
@ApiModelProperty("审核结果")
|
||||
@Excel(name = "审核结果")
|
||||
private String auditResult;
|
||||
|
||||
}
|
||||
+197
@@ -0,0 +1,197 @@
|
||||
package com.mhd.oms.domain.purchaseOrder.repository.todo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 采购订单管理对象 oms_purchase_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class PurchaseOrderDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("审核人")
|
||||
@Excel(name = "审核人")
|
||||
private Long auditBy;
|
||||
|
||||
@ApiModelProperty("审核时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date auditTime;
|
||||
|
||||
@ApiModelProperty("审核状态;1待审核2通过3拒绝")
|
||||
@Excel(name = "审核状态;1待审核2通过3拒绝")
|
||||
private Integer auditState;
|
||||
|
||||
@ApiModelProperty("审核结果")
|
||||
@Excel(name = "审核结果")
|
||||
private String auditResult;
|
||||
|
||||
@ApiModelProperty("采购单号")
|
||||
@Excel(name = "采购单号")
|
||||
private String orderNo;
|
||||
|
||||
@ApiModelProperty("订单状态;1待审核2已审核3已拒绝4已生成5部分采购6完成采购7已取消8已拦截")
|
||||
@Excel(name = "订单状态;1待审核2已审核3已拒绝4已生成5部分采购6完成采购7已取消8已拦截")
|
||||
private Integer orderState;
|
||||
|
||||
@ApiModelProperty("供应商ID")
|
||||
@Excel(name = "供应商ID")
|
||||
private Long supplierId;
|
||||
|
||||
@ApiModelProperty("供应商")
|
||||
@Excel(name = "供应商")
|
||||
private String supplier;
|
||||
|
||||
@ApiModelProperty("货主ID")
|
||||
@Excel(name = "货主ID")
|
||||
private Long shipperId;
|
||||
|
||||
@ApiModelProperty("货主")
|
||||
@Excel(name = "货主")
|
||||
private String shipper;
|
||||
|
||||
@ApiModelProperty("组织ID")
|
||||
@Excel(name = "组织ID")
|
||||
private Long orgId;
|
||||
|
||||
@ApiModelProperty("组织")
|
||||
@Excel(name = "组织")
|
||||
private String org;
|
||||
|
||||
@ApiModelProperty("订单时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "订单时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date orderTime;
|
||||
|
||||
@ApiModelProperty("订单类型ID")
|
||||
@Excel(name = "订单类型ID")
|
||||
private Long orderTypeId;
|
||||
|
||||
@ApiModelProperty("订单类型")
|
||||
@Excel(name = "订单类型")
|
||||
private String orderType;
|
||||
|
||||
@ApiModelProperty("作业任务类型ID")
|
||||
@Excel(name = "作业任务类型ID")
|
||||
private Integer jobTaskTypeId;
|
||||
|
||||
@ApiModelProperty("作业任务类型")
|
||||
@Excel(name = "作业任务类型")
|
||||
private String jobTaskType;
|
||||
|
||||
@ApiModelProperty("下发系统")
|
||||
@Excel(name = "下发系统")
|
||||
private String deliverySystem;
|
||||
|
||||
@ApiModelProperty("收货仓库ID")
|
||||
@Excel(name = "收货仓库ID")
|
||||
private Long receivingWarehouseId;
|
||||
|
||||
@ApiModelProperty("收货仓库")
|
||||
@Excel(name = "收货仓库")
|
||||
private String receivingWarehouse;
|
||||
|
||||
@ApiModelProperty("交货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "交货日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date deliveryDate;
|
||||
|
||||
@ApiModelProperty("客户订单号")
|
||||
@Excel(name = "客户订单号")
|
||||
private String customerOrders;
|
||||
|
||||
@ApiModelProperty("合同号")
|
||||
@Excel(name = "合同号")
|
||||
private String contractNo;
|
||||
|
||||
@ApiModelProperty("项目ID")
|
||||
@Excel(name = "项目ID")
|
||||
private String projectId;
|
||||
|
||||
@ApiModelProperty("项目")
|
||||
@Excel(name = "项目")
|
||||
private String project;
|
||||
|
||||
@ApiModelProperty("优惠率")
|
||||
@Excel(name = "优惠率")
|
||||
private BigDecimal rateConcession;
|
||||
|
||||
@ApiModelProperty("优惠金额")
|
||||
@Excel(name = "优惠金额")
|
||||
private BigDecimal discountAmount;
|
||||
|
||||
@ApiModelProperty("合计金额")
|
||||
@Excel(name = "合计金额")
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
@ApiModelProperty("附件名称")
|
||||
@Excel(name = "附件名称")
|
||||
private String fileName;
|
||||
|
||||
@ApiModelProperty("附件地址")
|
||||
@Excel(name = "附件地址")
|
||||
private String fileUrl;
|
||||
|
||||
@ApiModelProperty("来源;0-内部1-外部")
|
||||
@Excel(name = "来源;0-内部1-外部")
|
||||
private Integer source;
|
||||
|
||||
@ApiModelProperty("拦截状态;0未拦截1拦截成功2拦截失败")
|
||||
@Excel(name = "拦截状态;0未拦截1拦截成功2拦截失败")
|
||||
private Integer tacklState;
|
||||
|
||||
@ApiModelProperty("拦截时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "拦截时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date tacklTime;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("价税合计")
|
||||
@Excel(name = "价税合计")
|
||||
private BigDecimal totalPriceTax;
|
||||
|
||||
@ApiModelProperty("物料信息")
|
||||
@Excel(name = "物料信息")
|
||||
private String materialInfo;
|
||||
|
||||
@ApiModelProperty("物料数量")
|
||||
@Excel(name = "物料数量")
|
||||
private Integer materialNum;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
}
|
||||
+133
@@ -0,0 +1,133 @@
|
||||
package com.mhd.oms.domain.purchaseOrder.service;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.IgnoreNullUtil;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.domain.purchaseOrder.entity.PurchaseOrder;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.facade.IPurchaseOrderService;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.po.PurchaseOrderDetailsPO;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.po.PurchaseOrderPO;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.todo.PurchaseOrderAuditDO;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.todo.PurchaseOrderDO;
|
||||
import com.mhd.oms.interfaces.dto.purchaseOrder.PurchaseOrderExcelDTO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 采购订单管理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class PurchaseOrderDomainService {
|
||||
|
||||
@Autowired
|
||||
private IPurchaseOrderService purchaseOrderService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询采购订单管理列表
|
||||
*/
|
||||
public List<PurchaseOrderPO> queryList(PurchaseOrderDO purchaseOrderDO) {
|
||||
return purchaseOrderService.queryList(purchaseOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增采购订单管理
|
||||
*/
|
||||
public Boolean insert(PurchaseOrderDO purchaseOrderDO) {
|
||||
|
||||
return purchaseOrderService.insert(purchaseOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增采购订单管理并且返回主键ID
|
||||
*/
|
||||
public Long insertReturnId(PurchaseOrderDO purchaseOrderDO) {
|
||||
|
||||
return purchaseOrderService.insertReturnId(purchaseOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改采购订单管理
|
||||
*/
|
||||
public Boolean update(PurchaseOrderDO purchaseOrderDO) {
|
||||
return purchaseOrderService.update(purchaseOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除采购订单管理
|
||||
*/
|
||||
public Boolean delete(Long[] ids) {
|
||||
return purchaseOrderService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取采购订单管理详细信息
|
||||
*/
|
||||
public PurchaseOrderDetailsPO getInfo(Long id)
|
||||
{
|
||||
return purchaseOrderService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
public Boolean audit(PurchaseOrderAuditDO purchaseOrderAuditDO) {
|
||||
return purchaseOrderService.audit(purchaseOrderAuditDO);
|
||||
}
|
||||
|
||||
public Boolean cancelAudit(PurchaseOrderAuditDO purchaseOrderAuditDO) {
|
||||
return purchaseOrderService.cancelAudit(purchaseOrderAuditDO);
|
||||
}
|
||||
|
||||
|
||||
public List<PurchaseOrderPO> getInfo(List<Long> ids) {
|
||||
return purchaseOrderService.getInfo(ids);
|
||||
}
|
||||
|
||||
public Boolean batchUpdate(List<PurchaseOrderDO> purchaseOrderDOS) {
|
||||
return purchaseOrderService.batchUpdate(purchaseOrderDOS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID更新状态
|
||||
*/
|
||||
public void updateStateById(Long id, Integer state) {
|
||||
purchaseOrderService.updateStateById(id, state);
|
||||
}
|
||||
|
||||
/**
|
||||
* 采购订单导入-保存采购订单信息
|
||||
* @param purOrderExcelDTO - 导入信息
|
||||
* @return 保存的采购订单
|
||||
*/
|
||||
public PurchaseOrder saveFromImportSalesOrder(PurchaseOrderExcelDTO purOrderExcelDTO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
PurchaseOrderDO purchaseOrderDO = new PurchaseOrderDO();
|
||||
BeanUtils.copyProperties(purOrderExcelDTO, purchaseOrderDO, IgnoreNullUtil.getNullPropertyNames(purOrderExcelDTO));
|
||||
purchaseOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
purchaseOrderDO.setCreateBy(loginUser.getUserPo().getUserId());
|
||||
purchaseOrderDO.setCreateByName(loginUser.getUserPo().getUserName());
|
||||
purchaseOrderDO.setCreateTime(new Date());
|
||||
// 成交价税合计:物料价税合计 - 优惠金额
|
||||
if(ObjectUtil.isNotNull(purOrderExcelDTO.getTaxAmount()) && ObjectUtil.isNotNull(purOrderExcelDTO.getDiscountAmount())){
|
||||
BigDecimal reachTotalAmount = purOrderExcelDTO.getTaxAmount().subtract(purOrderExcelDTO.getDiscountAmount());
|
||||
if(BigDecimal.ZERO.compareTo(reachTotalAmount) >= 0){
|
||||
throw new ServiceException("订单成交价税合计<=0,请检查物料价税合计与优惠金额数据!");
|
||||
}
|
||||
purchaseOrderDO.setTotalAmount(reachTotalAmount);
|
||||
}
|
||||
|
||||
return purchaseOrderService.insertReturnEntity(purchaseOrderDO);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.mhd.oms.domain.receiptInfo.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 收货信息对象 oms_receipt_info
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName(value = "oms_receipt_info")
|
||||
public class ReceiptInfo extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("收货人")
|
||||
@Excel(name = "收货人")
|
||||
private String consignee;
|
||||
|
||||
@ApiModelProperty("收货人联系电话")
|
||||
@Excel(name = "收货人联系电话")
|
||||
private String consigneePhone;
|
||||
|
||||
@ApiModelProperty("收货人所在区域编码")
|
||||
@Excel(name = "收货人所在区域编码")
|
||||
private String consigneeAreaCode;
|
||||
|
||||
@ApiModelProperty("收货人所在区域")
|
||||
@Excel(name = "收货人所在区域")
|
||||
private String consigneeArea;
|
||||
|
||||
@ApiModelProperty("收货人详细地址")
|
||||
@Excel(name = "收货人详细地址")
|
||||
private String consigneeAddress;
|
||||
|
||||
@ApiModelProperty("收货地址经纬度")
|
||||
@Excel(name = "收货地址经纬度")
|
||||
private String raddressLatLon;
|
||||
|
||||
@ApiModelProperty("预计到货时间")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private Date estimatedReceivingTime;
|
||||
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package com.mhd.oms.domain.receiptInfo.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.oms.domain.receiptInfo.entity.ReceiptInfo;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.po.ReceiptInfoPO;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.todo.ReceiptInfoDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 收货信息Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
public interface IReceiptInfoService extends IService<ReceiptInfo>
|
||||
{
|
||||
/**
|
||||
* 分页查询收货信息列表
|
||||
*/
|
||||
public List<ReceiptInfoPO> queryList(ReceiptInfoDO receiptInfoDO);
|
||||
|
||||
/**
|
||||
* 新增收货信息
|
||||
*/
|
||||
public Boolean insert(ReceiptInfoDO receiptInfoDO);
|
||||
|
||||
/**
|
||||
* 修改收货信息
|
||||
*/
|
||||
public Boolean update(ReceiptInfoDO receiptInfoDO);
|
||||
|
||||
/**
|
||||
* 批量删除收货信息
|
||||
*/
|
||||
public Boolean delete(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 查询收货信息
|
||||
*/
|
||||
public ReceiptInfoPO getInfo(Long id);
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
Boolean batchInsert(List<ReceiptInfoDO> receiptInfoDOList);
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.mhd.oms.domain.receiptInfo.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.oms.domain.receiptInfo.entity.ReceiptInfo;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.po.ReceiptInfoPO;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.todo.ReceiptInfoDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 收货信息Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
public interface ReceiptInfoMapper extends BaseMapper<ReceiptInfo>
|
||||
{
|
||||
/**
|
||||
* 查询收货信息列表
|
||||
*/
|
||||
public List<ReceiptInfoPO> queryList(ReceiptInfoDO receiptInfoDO);
|
||||
|
||||
}
|
||||
+95
@@ -0,0 +1,95 @@
|
||||
package com.mhd.oms.domain.receiptInfo.repository.persistence;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.oms.domain.receiptInfo.entity.ReceiptInfo;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.facade.IReceiptInfoService;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.mapper.ReceiptInfoMapper;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.po.ReceiptInfoPO;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.todo.ReceiptInfoDO;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 收货信息Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
@Service
|
||||
public class ReceiptInfoImpl extends ServiceImpl<ReceiptInfoMapper, ReceiptInfo> implements IReceiptInfoService {
|
||||
@Autowired
|
||||
private ReceiptInfoMapper receiptInfoMapper;
|
||||
|
||||
/**
|
||||
* 查询收货信息列表
|
||||
*/
|
||||
@Override
|
||||
public List<ReceiptInfoPO> queryList(ReceiptInfoDO receiptInfoDO)
|
||||
{
|
||||
return receiptInfoMapper.queryList(receiptInfoDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增收货信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(ReceiptInfoDO receiptInfoDO) {
|
||||
ReceiptInfo receiptInfo = new ReceiptInfo();
|
||||
BeanUtils.copyProperties(receiptInfoDO,receiptInfo);
|
||||
return this.save(receiptInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改收货信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(ReceiptInfoDO receiptInfoDO) {
|
||||
ReceiptInfo receiptInfo = new ReceiptInfo();
|
||||
BeanUtils.copyProperties(receiptInfoDO,receiptInfo);
|
||||
return this.updateById(receiptInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除收货信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] ids ) {
|
||||
List<ReceiptInfo> list = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
ReceiptInfo receiptInfo = new ReceiptInfo();
|
||||
receiptInfo.setId(id);
|
||||
receiptInfo.setDelFlag(2);
|
||||
list.add(receiptInfo);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改收货信息
|
||||
*/
|
||||
@Override
|
||||
public ReceiptInfoPO getInfo(Long id) {
|
||||
ReceiptInfo receiptInfo = this.getById(id);
|
||||
ReceiptInfoPO receiptInfoPO = new ReceiptInfoPO();
|
||||
BeanUtils.copyProperties(receiptInfo,receiptInfoPO);
|
||||
return receiptInfoPO;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean batchInsert(List<ReceiptInfoDO> receiptInfoDOList) {
|
||||
List<ReceiptInfo> receiptInfoList = receiptInfoDOList.stream().map(receiptInfoDO -> {
|
||||
ReceiptInfo receiptInfo = new ReceiptInfo();
|
||||
BeanUtils.copyProperties(receiptInfoDO, receiptInfo);
|
||||
return receiptInfo;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
return this.saveBatch(receiptInfoList);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.mhd.oms.domain.receiptInfo.repository.po;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 收货信息对象 oms_receipt_info
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "收货信息对象", description = "收货信息响应对象")
|
||||
public class ReceiptInfoPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("收货人")
|
||||
@Excel(name = "收货人")
|
||||
private String consignee;
|
||||
|
||||
@ApiModelProperty("收货人联系电话")
|
||||
@Excel(name = "收货人联系电话")
|
||||
private String consigneePhone;
|
||||
|
||||
@ApiModelProperty("收货人所在区域编码")
|
||||
@Excel(name = "收货人所在区域编码")
|
||||
private String consigneeAreaCode;
|
||||
|
||||
@ApiModelProperty("收货人所在区域")
|
||||
@Excel(name = "收货人所在区域")
|
||||
private String consigneeArea;
|
||||
|
||||
@ApiModelProperty("收货人详细地址")
|
||||
@Excel(name = "收货人详细地址")
|
||||
private String consigneeAddress;
|
||||
|
||||
@ApiModelProperty("收货地址经纬度")
|
||||
@Excel(name = "收货地址经纬度")
|
||||
private String raddressLatLon;
|
||||
|
||||
@ApiModelProperty("预计到货时间")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private Date estimatedReceivingTime;
|
||||
|
||||
}
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
package com.mhd.oms.domain.receiptInfo.repository.todo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 收货信息对象 oms_receipt_info
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class ReceiptInfoDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("收货人")
|
||||
@Excel(name = "收货人")
|
||||
private String consignee;
|
||||
|
||||
@ApiModelProperty("收货人联系电话")
|
||||
@Excel(name = "收货人联系电话")
|
||||
private String consigneePhone;
|
||||
|
||||
@ApiModelProperty("收货人所在区域编码")
|
||||
@Excel(name = "收货人所在区域编码")
|
||||
private String consigneeAreaCode;
|
||||
|
||||
@ApiModelProperty("收货人所在区域")
|
||||
@Excel(name = "收货人所在区域")
|
||||
private String consigneeArea;
|
||||
|
||||
@ApiModelProperty("收货人详细地址")
|
||||
@Excel(name = "收货人详细地址")
|
||||
private String consigneeAddress;
|
||||
|
||||
@ApiModelProperty("收货地址经纬度")
|
||||
@Excel(name = "收货地址经纬度")
|
||||
private String raddressLatLon;
|
||||
|
||||
@ApiModelProperty("预计到货时间")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private Date estimatedReceivingTime;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
}
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
package com.mhd.oms.domain.receiptInfo.service;
|
||||
|
||||
import com.mhd.common.core.utils.IgnoreNullUtil;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.domain.purchaseOrder.entity.PurchaseOrder;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.facade.IReceiptInfoService;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.po.ReceiptInfoPO;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.todo.ReceiptInfoDO;
|
||||
import com.mhd.oms.domain.salesOrder.entity.SalesOrder;
|
||||
import com.mhd.oms.interfaces.dto.purchaseOrder.PurchaseOrderExcelDTO;
|
||||
import com.mhd.oms.interfaces.dto.salesOrder.SalesOrderExcelDTO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 收货信息
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ReceiptInfoDomainService {
|
||||
|
||||
@Autowired
|
||||
private IReceiptInfoService receiptInfoService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询收货信息列表
|
||||
*/
|
||||
public List<ReceiptInfoPO> queryList(ReceiptInfoDO receiptInfoDO) {
|
||||
return receiptInfoService.queryList(receiptInfoDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增收货信息
|
||||
*/
|
||||
public Boolean insert(ReceiptInfoDO receiptInfoDO) {
|
||||
|
||||
return receiptInfoService.insert(receiptInfoDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改收货信息
|
||||
*/
|
||||
public Boolean update(ReceiptInfoDO receiptInfoDO) {
|
||||
return receiptInfoService.update(receiptInfoDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除收货信息
|
||||
*/
|
||||
public Boolean delete(Long[] ids) {
|
||||
return receiptInfoService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取收货信息详细信息
|
||||
*/
|
||||
public ReceiptInfoPO getInfo(Long id)
|
||||
{
|
||||
return receiptInfoService.getInfo(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
public Boolean batchInsert(List<ReceiptInfoDO> receiptInfoDOList) {
|
||||
return receiptInfoService.batchInsert(receiptInfoDOList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入销售订单 - 为传入的收货列表添加一条收货信息
|
||||
*
|
||||
* @param receiptInfoDOList - 添加数据的列表
|
||||
* @param salesOrderExcelDTO -导入的数据
|
||||
* @param salesOrder - 导入数据中的销售订单信息
|
||||
*/
|
||||
public void listAddFromImportSalesOrder(List<ReceiptInfoDO> receiptInfoDOList, SalesOrderExcelDTO salesOrderExcelDTO, SalesOrder salesOrder) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
ReceiptInfoDO receiptInfoDO = new ReceiptInfoDO();
|
||||
|
||||
BeanUtils.copyProperties(salesOrderExcelDTO, receiptInfoDO, IgnoreNullUtil.getNullPropertyNames(salesOrderExcelDTO));
|
||||
receiptInfoDO.setOrderId(salesOrder.getId());
|
||||
receiptInfoDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
receiptInfoDO.setCreateBy(loginUser.getUserPo().getUserId());
|
||||
receiptInfoDO.setCreateByName(loginUser.getUserPo().getUserName());
|
||||
receiptInfoDO.setCreateTime(new Date());
|
||||
receiptInfoDOList.add(receiptInfoDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入采购订单 - 为传入的收货列表添加一条收货信息
|
||||
*
|
||||
* @param receiptInfoDOList - 添加数据的列表
|
||||
* @param purOrderExcelDTO -导入的数据
|
||||
* @param purOrder - 导入的采购订单信息
|
||||
*/
|
||||
public void listAddFromImportPurOrder(List<ReceiptInfoDO> receiptInfoDOList, PurchaseOrderExcelDTO purOrderExcelDTO, PurchaseOrder purOrder) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
ReceiptInfoDO receiptInfoDO = new ReceiptInfoDO();
|
||||
|
||||
BeanUtils.copyProperties(purOrderExcelDTO, receiptInfoDO, IgnoreNullUtil.getNullPropertyNames(purOrderExcelDTO));
|
||||
receiptInfoDO.setOrderId(purOrder.getId());
|
||||
receiptInfoDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
receiptInfoDO.setCreateBy(loginUser.getUserPo().getUserId());
|
||||
receiptInfoDO.setCreateByName(loginUser.getUserPo().getUserName());
|
||||
receiptInfoDO.setCreateTime(new Date());
|
||||
receiptInfoDOList.add(receiptInfoDO);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,205 @@
|
||||
package com.mhd.oms.domain.salesOrder.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 销售订单对象 oms_sales_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-08
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName("oms_sales_order")
|
||||
public class SalesOrder extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("审核人")
|
||||
@Excel(name = "审核人")
|
||||
private Long auditBy;
|
||||
|
||||
@ApiModelProperty("审核时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date auditTime;
|
||||
|
||||
@ApiModelProperty("审核状态;1待审核2通过3拒绝")
|
||||
@Excel(name = "审核状态;1待审核2通过3拒绝")
|
||||
private Integer auditState;
|
||||
|
||||
@ApiModelProperty("审核结果")
|
||||
@Excel(name = "审核结果")
|
||||
private String auditResult;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("销售单号")
|
||||
@Excel(name = "销售单号")
|
||||
private String orderNo;
|
||||
|
||||
@ApiModelProperty("订单状态;1待审核2已审核3已拒绝4已生成5部分销售6完成7已取消8已拦截")
|
||||
@Excel(name = "订单状态;1待审核2已审核3已拒绝4已生成5部分销售6完成7已取消8已拦截")
|
||||
private Integer orderState;
|
||||
|
||||
@ApiModelProperty("供应链订单号;生产供应链订单回填此字段,取消供应链置空此字段")
|
||||
@Excel(name = "供应链订单号;生产供应链订单回填此字段,取消供应链置空此字段")
|
||||
private String scoNo;
|
||||
|
||||
@ApiModelProperty("客户ID")
|
||||
@Excel(name = "客户ID")
|
||||
private Long customerId;
|
||||
|
||||
@ApiModelProperty("客户姓名")
|
||||
@Excel(name = "客户姓名")
|
||||
private String customer;
|
||||
|
||||
@ApiModelProperty("合计金额")
|
||||
@Excel(name = "合计金额")
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
@ApiModelProperty("含税金额")
|
||||
@Excel(name = "含税金额")
|
||||
private BigDecimal taxAmount;
|
||||
|
||||
@ApiModelProperty("出库数量")
|
||||
@Excel(name = "出库数量")
|
||||
private Long inStorageNum;
|
||||
|
||||
@ApiModelProperty("订单类型ID")
|
||||
@Excel(name = "订单类型ID")
|
||||
private Long orderTypeId;
|
||||
|
||||
@ApiModelProperty("订单类型")
|
||||
@Excel(name = "订单类型")
|
||||
private String orderType;
|
||||
|
||||
@ApiModelProperty("作业任务类型ID")
|
||||
@Excel(name = "作业任务类型ID")
|
||||
private Integer jobTaskTypeId;
|
||||
|
||||
@ApiModelProperty("作业任务类型")
|
||||
@Excel(name = "作业任务类型")
|
||||
private String jobTaskType;
|
||||
|
||||
@ApiModelProperty("下发系统")
|
||||
@Excel(name = "下发系统")
|
||||
private String deliverySystem;
|
||||
|
||||
@ApiModelProperty("货主ID")
|
||||
@Excel(name = "货主ID")
|
||||
private Long shipperId;
|
||||
|
||||
@ApiModelProperty("货主")
|
||||
@Excel(name = "货主")
|
||||
private String shipper;
|
||||
|
||||
@ApiModelProperty("合同号")
|
||||
@Excel(name = "合同号")
|
||||
private String contractNo;
|
||||
|
||||
@ApiModelProperty("项目ID")
|
||||
@Excel(name = "项目ID")
|
||||
private String projectId;
|
||||
|
||||
@ApiModelProperty("项目")
|
||||
@Excel(name = "项目")
|
||||
private String project;
|
||||
|
||||
@ApiModelProperty("拦截状态;0未拦截1拦截成功2拦截失败")
|
||||
@Excel(name = "拦截状态;0未拦截1拦截成功2拦截失败")
|
||||
private Integer tacklState;
|
||||
|
||||
@ApiModelProperty("拦截时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "拦截时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date tacklTime;
|
||||
|
||||
@ApiModelProperty("来源;0-内部1-外部")
|
||||
@Excel(name = "来源;0-内部1-外部")
|
||||
private Integer source;
|
||||
|
||||
@ApiModelProperty("组织ID")
|
||||
@Excel(name = "组织ID")
|
||||
private Long orgId;
|
||||
|
||||
@ApiModelProperty("组织")
|
||||
@Excel(name = "组织")
|
||||
private String org;
|
||||
|
||||
@ApiModelProperty("订单时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "订单时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date orderTime;
|
||||
|
||||
@ApiModelProperty("发货仓库ID")
|
||||
@Excel(name = "发货仓库ID")
|
||||
private Long deliveryWarehouseId;
|
||||
|
||||
@ApiModelProperty("发货仓库")
|
||||
@Excel(name = "发货仓库")
|
||||
private String deliveryWarehouse;
|
||||
|
||||
@ApiModelProperty("发货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "发货日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date deliveryDate;
|
||||
|
||||
@ApiModelProperty("客户订单号")
|
||||
@Excel(name = "客户订单号")
|
||||
private String customerOrders;
|
||||
|
||||
@ApiModelProperty("校验库存是否充足;0-不校验1-校验")
|
||||
@Excel(name = "校验库存是否充足;0-不校验1-校验")
|
||||
private Long checkInventory;
|
||||
|
||||
@ApiModelProperty("优惠率")
|
||||
@Excel(name = "优惠率")
|
||||
private BigDecimal rateConcession;
|
||||
|
||||
@ApiModelProperty("优惠金额")
|
||||
@Excel(name = "优惠金额")
|
||||
private BigDecimal discountAmount;
|
||||
|
||||
@ApiModelProperty("成交价税合计")
|
||||
@Excel(name = "成交价税合计")
|
||||
private BigDecimal totalPriceTax;
|
||||
|
||||
@ApiModelProperty("附件名称")
|
||||
@Excel(name = "附件名称")
|
||||
private String fileName;
|
||||
|
||||
@ApiModelProperty("附件地址")
|
||||
@Excel(name = "附件地址")
|
||||
private String fileUrl;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
package com.mhd.oms.domain.salesOrder.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.oms.domain.salesOrder.entity.SalesOrder;
|
||||
import com.mhd.oms.domain.salesOrder.repository.po.SalesOrderDetailsPO;
|
||||
import com.mhd.oms.domain.salesOrder.repository.po.SalesOrderPO;
|
||||
import com.mhd.oms.domain.salesOrder.repository.todo.SalesOrderAuditDO;
|
||||
import com.mhd.oms.domain.salesOrder.repository.todo.SalesOrderDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销售订单Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-08
|
||||
*/
|
||||
public interface ISalesOrderService extends IService<SalesOrder>
|
||||
{
|
||||
/**
|
||||
* 分页查询销售订单列表
|
||||
*/
|
||||
public List<SalesOrderPO> queryList(SalesOrderDO salesOrderDO);
|
||||
|
||||
/**
|
||||
* 新增销售订单
|
||||
*/
|
||||
public Boolean insert(SalesOrderDO salesOrderDO);
|
||||
/** 新增并返回实体 */
|
||||
public SalesOrder insertReturnEntity(SalesOrderDO salesOrderDO);
|
||||
|
||||
/**
|
||||
* 修改销售订单
|
||||
*/
|
||||
public Boolean update(SalesOrderDO salesOrderDO);
|
||||
|
||||
/**
|
||||
* 批量删除销售订单
|
||||
*/
|
||||
public Boolean delete(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 查询销售订单
|
||||
*/
|
||||
public SalesOrderPO getInfo(Long id);
|
||||
|
||||
List<SalesOrderPO> getInfos(List<Long> ids);
|
||||
|
||||
Boolean batchUpdate(List<SalesOrderDO> salesOrderDOS);
|
||||
|
||||
Boolean audit(SalesOrderAuditDO salesOrderAuditDO);
|
||||
|
||||
Boolean cancelAudit(SalesOrderAuditDO salesOrderAuditDO);
|
||||
|
||||
Long insertReturnId(SalesOrderDO salesOrderDO);
|
||||
|
||||
void updateStateById(Long id, Integer state);
|
||||
|
||||
SalesOrderDetailsPO getetails(Long id);
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.mhd.oms.domain.salesOrder.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.oms.domain.OrderInfoPO;
|
||||
import com.mhd.oms.domain.salesOrder.entity.SalesOrder;
|
||||
import com.mhd.oms.domain.salesOrder.repository.po.SalesOrderPO;
|
||||
import com.mhd.oms.domain.salesOrder.repository.todo.SalesOrderDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销售订单Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-08
|
||||
*/
|
||||
public interface SalesOrderMapper extends BaseMapper<SalesOrder>
|
||||
{
|
||||
/**
|
||||
* 查询销售订单列表
|
||||
*/
|
||||
public List<SalesOrderPO> queryList(SalesOrderDO salesOrderDO);
|
||||
|
||||
List<SalesOrderPO> getInfosById(@Param("ids") List<Long> ids);
|
||||
@Select("select order_no, shipper, order_type, customer_orders, tackl_state,job_task_type,customer_id,shipper_id, order_type_id from oms_sales_order where id = #{orderId}")
|
||||
OrderInfoPO selectOrderInfoByOrderId(Long orderId);
|
||||
}
|
||||
+279
@@ -0,0 +1,279 @@
|
||||
package com.mhd.oms.domain.salesOrder.repository.persistence;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.constant.OrderConstant;
|
||||
import com.mhd.oms.domain.deliveryInfo.entity.DeliveryInfo;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.mapper.DeliveryInfoMapper;
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.po.DeliveryInfoPO;
|
||||
import com.mhd.oms.domain.goods.entity.Goods;
|
||||
import com.mhd.oms.domain.goods.repository.mapper.GoodsMapper;
|
||||
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
|
||||
import com.mhd.oms.domain.logistics.entity.Logistics;
|
||||
import com.mhd.oms.domain.logistics.repository.mapper.LogisticsMapper;
|
||||
import com.mhd.oms.domain.logistics.repository.po.LogisticsPO;
|
||||
import com.mhd.oms.domain.receiptInfo.entity.ReceiptInfo;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.mapper.ReceiptInfoMapper;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.po.ReceiptInfoPO;
|
||||
import com.mhd.oms.domain.salesOrder.entity.SalesOrder;
|
||||
import com.mhd.oms.domain.salesOrder.repository.facade.ISalesOrderService;
|
||||
import com.mhd.oms.domain.salesOrder.repository.mapper.SalesOrderMapper;
|
||||
import com.mhd.oms.domain.salesOrder.repository.po.SalesOrderDetailsPO;
|
||||
import com.mhd.oms.domain.salesOrder.repository.po.SalesOrderPO;
|
||||
import com.mhd.oms.domain.salesOrder.repository.todo.SalesOrderAuditDO;
|
||||
import com.mhd.oms.domain.salesOrder.repository.todo.SalesOrderDO;
|
||||
import com.mhd.oms.domain.settlement.entity.Settlement;
|
||||
import com.mhd.oms.domain.settlement.repository.mapper.SettlementMapper;
|
||||
import com.mhd.oms.domain.settlement.repository.po.SettlementPO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 销售订单Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-08
|
||||
*/
|
||||
@Service
|
||||
public class SalesOrderImpl extends ServiceImpl<SalesOrderMapper, SalesOrder> implements ISalesOrderService {
|
||||
@Autowired
|
||||
private SalesOrderMapper salesOrderMapper;
|
||||
|
||||
@Resource
|
||||
private SettlementMapper settlementMapper;
|
||||
|
||||
@Resource
|
||||
private DeliveryInfoMapper deliveryInfoMapper;
|
||||
|
||||
@Resource
|
||||
private ReceiptInfoMapper receiptInfoMapper;
|
||||
|
||||
@Resource
|
||||
private LogisticsMapper logisticsMapper;
|
||||
|
||||
@Resource
|
||||
private GoodsMapper goodsMapper;
|
||||
/**
|
||||
* 查询销售订单列表
|
||||
*/
|
||||
@Override
|
||||
public List<SalesOrderPO> queryList(SalesOrderDO salesOrderDO)
|
||||
{
|
||||
return salesOrderMapper.queryList(salesOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增销售订单
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(SalesOrderDO salesOrderDO) {
|
||||
SalesOrder salesOrder = new SalesOrder();
|
||||
BeanUtils.copyProperties(salesOrderDO,salesOrder);
|
||||
return this.save(salesOrder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SalesOrder insertReturnEntity(SalesOrderDO salesOrderDO) {
|
||||
SalesOrder salesOrder = new SalesOrder();
|
||||
BeanUtils.copyProperties(salesOrderDO,salesOrder);
|
||||
this.save(salesOrder);
|
||||
|
||||
return salesOrder;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改销售订单
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(SalesOrderDO salesOrderDO) {
|
||||
SalesOrder salesOrder = new SalesOrder();
|
||||
BeanUtils.copyProperties(salesOrderDO,salesOrder);
|
||||
return this.updateById(salesOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除销售订单
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] ids ) {
|
||||
List<SalesOrder> list = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
SalesOrder salesOrder = new SalesOrder();
|
||||
salesOrder.setId(id);
|
||||
salesOrder.setDelFlag(2);
|
||||
list.add(salesOrder);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改销售订单
|
||||
*/
|
||||
@Override
|
||||
public SalesOrderPO getInfo(Long id) {
|
||||
SalesOrder salesOrder = this.getById(id);
|
||||
SalesOrderPO salesOrderPO = new SalesOrderPO();
|
||||
BeanUtils.copyProperties(salesOrder,salesOrderPO);
|
||||
return salesOrderPO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SalesOrderPO> getInfos(List<Long> ids) {
|
||||
return salesOrderMapper.getInfosById(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean batchUpdate(List<SalesOrderDO> salesOrderDOS) {
|
||||
List<SalesOrder> salesOrders = new ArrayList<>();
|
||||
for (SalesOrderDO salesOrderDO : salesOrderDOS) {
|
||||
SalesOrder salesOrder = new SalesOrder();
|
||||
BeanUtils.copyProperties(salesOrderDO,salesOrder);
|
||||
salesOrders.add(salesOrder);
|
||||
}
|
||||
return this.updateBatchById(salesOrders);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean audit(SalesOrderAuditDO salesOrderAuditDO) {
|
||||
List<SalesOrder> salesOrders = new ArrayList<>();
|
||||
List<Long> ids = Convert.toList(Long.class, salesOrderAuditDO.getIds());
|
||||
for (Long id : ids) {
|
||||
SalesOrder salesOrder = this.getById(id);
|
||||
if (ObjectUtil.isNull(salesOrder)) {
|
||||
throw new ServiceException("未查询到销售订单信息");
|
||||
}
|
||||
if (salesOrder.getOrderState() != 1) {
|
||||
throw new ServiceException(String.format("订单号【%s】订单状态不符合预期,仅在待审核状态下才允许审核", salesOrder.getOrderNo()));
|
||||
}
|
||||
salesOrder.setAuditBy(salesOrderAuditDO.getAuditBy());
|
||||
salesOrder.setAuditTime(new Date());
|
||||
salesOrder.setAuditState(salesOrderAuditDO.getAuditState());
|
||||
salesOrder.setAuditResult(salesOrderAuditDO.getAuditResult());
|
||||
salesOrder.setOrderState(salesOrderAuditDO.getAuditState());
|
||||
salesOrder.setUpdateBy(salesOrderAuditDO.getUpdateBy());
|
||||
salesOrder.setUpdateTime(salesOrderAuditDO.getUpdateTime());
|
||||
salesOrder.setUpdateByName(salesOrderAuditDO.getUpdateByName());
|
||||
salesOrders.add(salesOrder);
|
||||
}
|
||||
return this.updateBatchById(salesOrders);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean cancelAudit(SalesOrderAuditDO salesOrderAuditDO) {
|
||||
List<SalesOrder> salesOrders = new ArrayList<>();
|
||||
List<Long> ids = Convert.toList(Long.class, salesOrderAuditDO.getIds());
|
||||
for (Long id : ids) {
|
||||
SalesOrder salesOrder = this.getById(id);
|
||||
if (ObjectUtil.isNull(salesOrder)) {
|
||||
throw new ServiceException("未查询到销售订单信息");
|
||||
}
|
||||
if (ArrayUtil.contains(OrderConstant.SO_STATUS_GROUP_UNABLE_CANCEL_AUDIT, salesOrder.getOrderState())) {
|
||||
throw new ServiceException(String.format("订单号【%s】订单状态不符合预期,仅在待审核状态下才允许审核", salesOrder.getOrderNo()));
|
||||
}
|
||||
salesOrder.setAuditBy(salesOrderAuditDO.getAuditBy());
|
||||
salesOrder.setAuditTime(new Date());
|
||||
salesOrder.setAuditState(OrderConstant.PUR_STATUS_1);
|
||||
salesOrder.setAuditResult("");
|
||||
salesOrder.setOrderState(1);
|
||||
salesOrder.setUpdateBy(salesOrderAuditDO.getUpdateBy());
|
||||
salesOrder.setUpdateTime(salesOrderAuditDO.getUpdateTime());
|
||||
salesOrder.setUpdateByName(salesOrderAuditDO.getUpdateByName());
|
||||
salesOrders.add(salesOrder);
|
||||
}
|
||||
return this.updateBatchById(salesOrders);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long insertReturnId(SalesOrderDO salesOrderDO) {
|
||||
SalesOrder salesOrder = new SalesOrder();
|
||||
BeanUtils.copyProperties(salesOrderDO,salesOrder);
|
||||
this.save(salesOrder);
|
||||
return salesOrder.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStateById(Long id, Integer state) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
salesOrderMapper.update(new SalesOrder(), new LambdaUpdateWrapper<SalesOrder>()
|
||||
.set(SalesOrder::getOrderState, state)
|
||||
.set(SalesOrder::getUpdateBy, loginUser.getUserid())
|
||||
.set(SalesOrder::getUpdateByName, loginUser.getUsername())
|
||||
.set(SalesOrder::getUpdateTime, new Date())
|
||||
.eq(SalesOrder::getId, id));
|
||||
}
|
||||
|
||||
@Override
|
||||
public SalesOrderDetailsPO getetails(Long id) {
|
||||
SalesOrderDetailsPO salesOrderDetailsPO = new SalesOrderDetailsPO();
|
||||
SalesOrder salesOrder = this.getById(id);
|
||||
SalesOrderPO salesOrderPO = new SalesOrderPO();
|
||||
if (ObjectUtil.isNull(salesOrder)) {
|
||||
throw new ServiceException("未查询到对应的销售单信息");
|
||||
}
|
||||
BeanUtils.copyProperties(salesOrder,salesOrderPO);
|
||||
salesOrderDetailsPO.setSalesOrderPO(salesOrderPO);
|
||||
|
||||
SettlementPO settlementPO = new SettlementPO();
|
||||
Settlement settlement = settlementMapper.selectOne(new LambdaQueryWrapper<Settlement>()
|
||||
.eq(Settlement::getOrderId, id).eq(Settlement::getDelFlag, 1));
|
||||
if (ObjectUtil.isNull(settlement)) {//结算单对象可以为空,如果为空则认为结算单没有数据
|
||||
settlement = new Settlement();
|
||||
}
|
||||
BeanUtils.copyProperties(settlement,settlementPO);
|
||||
salesOrderDetailsPO.setSettlementPO(settlementPO);
|
||||
|
||||
DeliveryInfoPO deliveryInfoPO = new DeliveryInfoPO();
|
||||
DeliveryInfo deliveryInfo = deliveryInfoMapper.selectOne(new LambdaQueryWrapper<DeliveryInfo>()
|
||||
.eq(DeliveryInfo::getOrderId, id).eq(DeliveryInfo::getDelFlag, 1));
|
||||
if (ObjectUtil.isNull(deliveryInfo)) {
|
||||
deliveryInfo = new DeliveryInfo();
|
||||
}
|
||||
BeanUtils.copyProperties(deliveryInfo, deliveryInfoPO);
|
||||
salesOrderDetailsPO.setDeliveryInfoPO(deliveryInfoPO);
|
||||
|
||||
|
||||
ReceiptInfoPO receiptInfoPO = new ReceiptInfoPO();
|
||||
ReceiptInfo receiptInfo = receiptInfoMapper.selectOne(new LambdaQueryWrapper<ReceiptInfo>()
|
||||
.eq(ReceiptInfo::getOrderId, id).eq(ReceiptInfo::getDelFlag, 1));
|
||||
if (ObjectUtil.isNull(receiptInfo)) {
|
||||
receiptInfo = new ReceiptInfo();
|
||||
}
|
||||
BeanUtils.copyProperties(receiptInfo, receiptInfoPO);
|
||||
salesOrderDetailsPO.setReceiptInfoPO(receiptInfoPO);
|
||||
|
||||
LogisticsPO logisticsPO = new LogisticsPO();
|
||||
Logistics logistics = logisticsMapper.selectOne(new LambdaQueryWrapper<Logistics>()
|
||||
.eq(Logistics::getOrderId, id).eq(Logistics::getDelFlag, 1));
|
||||
|
||||
if (ObjectUtil.isNull(logistics)) {
|
||||
logistics = new Logistics();
|
||||
}
|
||||
BeanUtils.copyProperties(logistics, logisticsPO);
|
||||
salesOrderDetailsPO.setLogisticsPO(logisticsPO);
|
||||
|
||||
List<Goods> goodsList = goodsMapper.selectList(new LambdaQueryWrapper<Goods>()
|
||||
.eq(Goods::getOrderId, id).eq(Goods::getDelFlag, 1));
|
||||
List<GoodsPO> goodsPOList = goodsList.stream().map(goods -> {
|
||||
GoodsPO goodsPO = new GoodsPO();
|
||||
BeanUtils.copyProperties(goods, goodsPO);
|
||||
return goodsPO;
|
||||
}).collect(Collectors.toList());
|
||||
salesOrderDetailsPO.setGoodsPOList(goodsPOList);
|
||||
|
||||
return salesOrderDetailsPO;
|
||||
}
|
||||
}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
package com.mhd.oms.domain.salesOrder.repository.po;
|
||||
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.po.DeliveryInfoPO;
|
||||
import com.mhd.oms.domain.goods.repository.po.GoodsPO;
|
||||
import com.mhd.oms.domain.logistics.repository.po.LogisticsPO;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.po.ReceiptInfoPO;
|
||||
import com.mhd.oms.domain.settlement.repository.po.SettlementPO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 销售订单对象 oms_sales_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-08
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "销售订单详情对象", description = "销售订单详情对象")
|
||||
public class SalesOrderDetailsPO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("基本信息")
|
||||
private SalesOrderPO salesOrderPO;
|
||||
|
||||
@ApiModelProperty("结算信息")
|
||||
private SettlementPO settlementPO;
|
||||
|
||||
@ApiModelProperty("发货信息")
|
||||
private DeliveryInfoPO deliveryInfoPO;
|
||||
|
||||
@ApiModelProperty("收货信息")
|
||||
private ReceiptInfoPO receiptInfoPO;
|
||||
|
||||
@ApiModelProperty("物流信息")
|
||||
private LogisticsPO logisticsPO;
|
||||
|
||||
@ApiModelProperty("物料信息")
|
||||
private List<GoodsPO> goodsPOList;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,197 @@
|
||||
package com.mhd.oms.domain.salesOrder.repository.po;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 销售订单对象 oms_sales_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-08
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "销售订单对象", description = "销售订单响应对象")
|
||||
public class SalesOrderPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("审核人")
|
||||
@Excel(name = "审核人")
|
||||
private String auditBy;
|
||||
|
||||
@ApiModelProperty("审核时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date auditTime;
|
||||
|
||||
@ApiModelProperty("审核状态;0待审核1通过2拒绝")
|
||||
@Excel(name = "审核状态;0待审核1通过2拒绝")
|
||||
private Integer auditState;
|
||||
|
||||
@ApiModelProperty("审核结果")
|
||||
@Excel(name = "审核结果")
|
||||
private String auditResult;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("销售单号")
|
||||
@Excel(name = "销售单号")
|
||||
private String orderNo;
|
||||
|
||||
@ApiModelProperty("订单状态;1待审核2已审核3已拒绝4已生成5部分销售6完成7已取消8已拦截")
|
||||
@Excel(name = "订单状态;1待审核2已审核3已拒绝4已生成5部分销售6完成7已取消8已拦截")
|
||||
private Integer orderState;
|
||||
|
||||
@ApiModelProperty("供应链订单号;生产供应链订单回填此字段,取消供应链置空此字段")
|
||||
@Excel(name = "供应链订单号;生产供应链订单回填此字段,取消供应链置空此字段")
|
||||
private String scoNo;
|
||||
|
||||
@ApiModelProperty("客户ID")
|
||||
@Excel(name = "客户ID")
|
||||
private Long customerId;
|
||||
|
||||
@ApiModelProperty("客户姓名")
|
||||
@Excel(name = "客户姓名")
|
||||
private String customer;
|
||||
|
||||
@ApiModelProperty("合计金额")
|
||||
@Excel(name = "合计金额")
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
@ApiModelProperty("含税金额")
|
||||
@Excel(name = "含税金额")
|
||||
private BigDecimal taxAmount;
|
||||
|
||||
@ApiModelProperty("出库数量")
|
||||
@Excel(name = "出库数量")
|
||||
private Long inStorageNum;
|
||||
|
||||
@ApiModelProperty("订单类型ID")
|
||||
@Excel(name = "订单类型ID")
|
||||
private Long orderTypeId;
|
||||
|
||||
@ApiModelProperty("订单类型")
|
||||
@Excel(name = "订单类型")
|
||||
private String orderType;
|
||||
|
||||
@ApiModelProperty("货主ID")
|
||||
@Excel(name = "货主ID")
|
||||
private Long shipperId;
|
||||
|
||||
@ApiModelProperty("货主")
|
||||
@Excel(name = "货主")
|
||||
private String shipper;
|
||||
|
||||
@ApiModelProperty("合同号")
|
||||
@Excel(name = "合同号")
|
||||
private String contractNo;
|
||||
|
||||
@ApiModelProperty("项目ID")
|
||||
@Excel(name = "项目ID")
|
||||
private String projectId;
|
||||
|
||||
@ApiModelProperty("项目")
|
||||
@Excel(name = "项目")
|
||||
private String project;
|
||||
|
||||
@ApiModelProperty("拦截状态;0未拦截1拦截成功2拦截失败")
|
||||
@Excel(name = "拦截状态;0未拦截1拦截成功2拦截失败")
|
||||
private Integer tacklState;
|
||||
|
||||
@ApiModelProperty("拦截时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "拦截时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date tacklTime;
|
||||
|
||||
@ApiModelProperty("来源;0-内部1-外部")
|
||||
@Excel(name = "来源;0-内部1-外部")
|
||||
private Integer source;
|
||||
|
||||
@ApiModelProperty("组织ID")
|
||||
@Excel(name = "组织ID")
|
||||
private Long orgId;
|
||||
|
||||
@ApiModelProperty("组织")
|
||||
@Excel(name = "组织")
|
||||
private String org;
|
||||
|
||||
@ApiModelProperty("订单时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "订单时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date orderTime;
|
||||
|
||||
@ApiModelProperty("发货仓库ID")
|
||||
@Excel(name = "发货仓库ID")
|
||||
private Long deliveryWarehouseId;
|
||||
|
||||
@ApiModelProperty("发货仓库")
|
||||
@Excel(name = "发货仓库")
|
||||
private String deliveryWarehouse;
|
||||
|
||||
@ApiModelProperty("发货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "发货日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date deliveryDate;
|
||||
|
||||
@ApiModelProperty("客户订单号")
|
||||
@Excel(name = "客户订单号")
|
||||
private String customerOrders;
|
||||
|
||||
@ApiModelProperty("校验库存是否充足;0-不校验1-校验")
|
||||
@Excel(name = "校验库存是否充足;0-不校验1-校验")
|
||||
private Long checkInventory;
|
||||
|
||||
@ApiModelProperty("优惠率")
|
||||
@Excel(name = "优惠率")
|
||||
private BigDecimal rateConcession;
|
||||
|
||||
@ApiModelProperty("优惠金额")
|
||||
@Excel(name = "优惠金额")
|
||||
private BigDecimal discountAmount;
|
||||
|
||||
@ApiModelProperty("成交价税合计")
|
||||
@Excel(name = "成交价税合计")
|
||||
private BigDecimal totalPriceTax;
|
||||
|
||||
@ApiModelProperty("附件名称")
|
||||
@Excel(name = "附件名称")
|
||||
private String fileName;
|
||||
|
||||
@ApiModelProperty("附件地址")
|
||||
@Excel(name = "附件地址")
|
||||
private String fileUrl;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("作业任务类型ID")
|
||||
@Excel(name = "作业任务类型ID")
|
||||
private Integer jobTaskTypeId;
|
||||
|
||||
@ApiModelProperty("作业任务类型")
|
||||
@Excel(name = "作业任务类型")
|
||||
private String jobTaskType;
|
||||
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
package com.mhd.oms.domain.salesOrder.repository.todo;
|
||||
|
||||
import com.mhd.oms.domain.deliveryInfo.repository.todo.DeliveryInfoDO;
|
||||
import com.mhd.oms.domain.goods.repository.todo.GoodsDO;
|
||||
import com.mhd.oms.domain.logistics.repository.todo.LogisticsDO;
|
||||
import com.mhd.oms.domain.receiptInfo.repository.todo.ReceiptInfoDO;
|
||||
import com.mhd.oms.domain.settlement.repository.todo.SettlementDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 销售订单对象 oms_sales_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-08
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class SalesOrderAddDO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("基本信息")
|
||||
private SalesOrderDO salesOrderDO;
|
||||
|
||||
@ApiModelProperty("结算信息")
|
||||
private SettlementDO settlementDO;
|
||||
|
||||
@ApiModelProperty("发货信息")
|
||||
private DeliveryInfoDO deliveryInfoDO;
|
||||
|
||||
@ApiModelProperty("收货信息")
|
||||
private ReceiptInfoDO receiptInfoDO;
|
||||
|
||||
@ApiModelProperty("物流信息")
|
||||
private LogisticsDO logisticsDO;
|
||||
|
||||
@ApiModelProperty("物料信息")
|
||||
private List<GoodsDO> goodsDOS;
|
||||
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
package com.mhd.oms.domain.salesOrder.repository.todo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 销售订单对象 oms_sales_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-08
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class SalesOrderAuditDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("采购订单ID集合")
|
||||
private String ids;
|
||||
|
||||
|
||||
@ApiModelProperty("审核人")
|
||||
@Excel(name = "审核人")
|
||||
private Long auditBy;
|
||||
|
||||
@ApiModelProperty("审核时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date auditTime;
|
||||
|
||||
@ApiModelProperty("审核状态;1待审核2通过3拒绝")
|
||||
@Excel(name = "审核状态;1待审核2通过3拒绝")
|
||||
private Integer auditState;
|
||||
|
||||
@ApiModelProperty("审核结果")
|
||||
@Excel(name = "审核结果")
|
||||
private String auditResult;
|
||||
}
|
||||
+205
@@ -0,0 +1,205 @@
|
||||
package com.mhd.oms.domain.salesOrder.repository.todo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 销售订单对象 oms_sales_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-08
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class SalesOrderDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("审核人")
|
||||
@Excel(name = "审核人")
|
||||
private String auditBy;
|
||||
|
||||
@ApiModelProperty("审核时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date auditTime;
|
||||
|
||||
@ApiModelProperty("审核状态;0待审核1通过2拒绝")
|
||||
@Excel(name = "审核状态;0待审核1通过2拒绝")
|
||||
private Integer auditState;
|
||||
|
||||
@ApiModelProperty("审核结果")
|
||||
@Excel(name = "审核结果")
|
||||
private String auditResult;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("销售单号")
|
||||
@Excel(name = "销售单号")
|
||||
private String orderNo;
|
||||
|
||||
@ApiModelProperty("订单状态;1待审核2已审核3已拒绝4已生成5部分销售6完成7已取消8已拦截")
|
||||
@Excel(name = "订单状态;1待审核2已审核3已拒绝4已生成5部分销售6完成7已取消8已拦截")
|
||||
private Integer orderState;
|
||||
|
||||
@ApiModelProperty("供应链订单号;生产供应链订单回填此字段,取消供应链置空此字段")
|
||||
@Excel(name = "供应链订单号;生产供应链订单回填此字段,取消供应链置空此字段")
|
||||
private String scoNo;
|
||||
|
||||
@ApiModelProperty("客户ID")
|
||||
@Excel(name = "客户ID")
|
||||
private Long customerId;
|
||||
|
||||
@ApiModelProperty("客户姓名")
|
||||
@Excel(name = "客户姓名")
|
||||
private String customer;
|
||||
|
||||
@ApiModelProperty("合计金额")
|
||||
@Excel(name = "合计金额")
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
@ApiModelProperty("含税金额")
|
||||
@Excel(name = "含税金额")
|
||||
private BigDecimal taxAmount;
|
||||
|
||||
@ApiModelProperty("出库数量")
|
||||
@Excel(name = "出库数量")
|
||||
private Long inStorageNum;
|
||||
|
||||
@ApiModelProperty("订单类型ID")
|
||||
@Excel(name = "订单类型ID")
|
||||
private Long orderTypeId;
|
||||
|
||||
@ApiModelProperty("订单类型")
|
||||
@Excel(name = "订单类型")
|
||||
private String orderType;
|
||||
|
||||
@ApiModelProperty("作业任务类型ID")
|
||||
@Excel(name = "作业任务类型ID")
|
||||
private Integer jobTaskTypeId;
|
||||
|
||||
@ApiModelProperty("作业任务类型")
|
||||
@Excel(name = "作业任务类型")
|
||||
private String jobTaskType;
|
||||
|
||||
@ApiModelProperty("下发系统")
|
||||
@Excel(name = "下发系统")
|
||||
private String deliverySystem;
|
||||
|
||||
@ApiModelProperty("货主ID")
|
||||
@Excel(name = "货主ID")
|
||||
private Long shipperId;
|
||||
|
||||
@ApiModelProperty("货主")
|
||||
@Excel(name = "货主")
|
||||
private String shipper;
|
||||
|
||||
@ApiModelProperty("合同号")
|
||||
@Excel(name = "合同号")
|
||||
private String contractNo;
|
||||
|
||||
@ApiModelProperty("项目ID")
|
||||
@Excel(name = "项目ID")
|
||||
private String projectId;
|
||||
|
||||
@ApiModelProperty("项目")
|
||||
@Excel(name = "项目")
|
||||
private String project;
|
||||
|
||||
@ApiModelProperty("拦截状态;0未拦截1拦截成功2拦截失败")
|
||||
@Excel(name = "拦截状态;0未拦截1拦截成功2拦截失败")
|
||||
private Integer tacklState;
|
||||
|
||||
@ApiModelProperty("拦截时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "拦截时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date tacklTime;
|
||||
|
||||
@ApiModelProperty("来源;0-内部1-外部")
|
||||
@Excel(name = "来源;0-内部1-外部")
|
||||
private Integer source;
|
||||
|
||||
@ApiModelProperty("组织ID")
|
||||
@Excel(name = "组织ID")
|
||||
private Long orgId;
|
||||
|
||||
@ApiModelProperty("组织")
|
||||
@Excel(name = "组织")
|
||||
private String org;
|
||||
|
||||
@ApiModelProperty("订单时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "订单时间", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date orderTime;
|
||||
|
||||
@ApiModelProperty("发货仓库ID")
|
||||
@Excel(name = "发货仓库ID")
|
||||
private Long deliveryWarehouseId;
|
||||
|
||||
@ApiModelProperty("发货仓库")
|
||||
@Excel(name = "发货仓库")
|
||||
private String deliveryWarehouse;
|
||||
|
||||
@ApiModelProperty("发货日期")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "发货日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date deliveryDate;
|
||||
|
||||
@ApiModelProperty("客户订单号")
|
||||
@Excel(name = "客户订单号")
|
||||
private String customerOrders;
|
||||
|
||||
@ApiModelProperty("校验库存是否充足;0-不校验1-校验")
|
||||
@Excel(name = "校验库存是否充足;0-不校验1-校验")
|
||||
private Long checkInventory;
|
||||
|
||||
@ApiModelProperty("优惠率")
|
||||
@Excel(name = "优惠率")
|
||||
private BigDecimal rateConcession;
|
||||
|
||||
@ApiModelProperty("优惠金额")
|
||||
@Excel(name = "优惠金额")
|
||||
private BigDecimal discountAmount;
|
||||
|
||||
@ApiModelProperty("成交价税合计")
|
||||
@Excel(name = "成交价税合计")
|
||||
private BigDecimal totalPriceTax;
|
||||
|
||||
@ApiModelProperty("附件名称")
|
||||
@Excel(name = "附件名称")
|
||||
private String fileName;
|
||||
|
||||
@ApiModelProperty("附件地址")
|
||||
@Excel(name = "附件地址")
|
||||
private String fileUrl;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
}
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
package com.mhd.oms.domain.salesOrder.service;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.IgnoreNullUtil;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.domain.salesOrder.entity.SalesOrder;
|
||||
import com.mhd.oms.domain.salesOrder.repository.facade.ISalesOrderService;
|
||||
import com.mhd.oms.domain.salesOrder.repository.po.SalesOrderDetailsPO;
|
||||
import com.mhd.oms.domain.salesOrder.repository.po.SalesOrderPO;
|
||||
import com.mhd.oms.domain.salesOrder.repository.todo.SalesOrderAuditDO;
|
||||
import com.mhd.oms.domain.salesOrder.repository.todo.SalesOrderDO;
|
||||
import com.mhd.oms.interfaces.dto.salesOrder.SalesOrderExcelDTO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销售订单
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-06-08
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class SalesOrderDomainService {
|
||||
|
||||
@Autowired
|
||||
private ISalesOrderService salesOrderService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询销售订单列表
|
||||
*/
|
||||
public List<SalesOrderPO> queryList(SalesOrderDO salesOrderDO) {
|
||||
return salesOrderService.queryList(salesOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增销售订单
|
||||
*/
|
||||
public Boolean insert(SalesOrderDO salesOrderDO) {
|
||||
|
||||
return salesOrderService.insert(salesOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改销售订单
|
||||
*/
|
||||
public Boolean update(SalesOrderDO salesOrderDO) {
|
||||
return salesOrderService.update(salesOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除销售订单
|
||||
*/
|
||||
public Boolean delete(Long[] ids) {
|
||||
return salesOrderService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取销售订单详细信息
|
||||
*/
|
||||
public SalesOrderPO getInfo(Long id)
|
||||
{
|
||||
return salesOrderService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
public List<SalesOrderPO> getInfos(List<Long> ids) {
|
||||
return salesOrderService.getInfos(ids);
|
||||
}
|
||||
|
||||
public Boolean batchUpdate(List<SalesOrderDO> salesOrderDOS) {
|
||||
return salesOrderService.batchUpdate(salesOrderDOS);
|
||||
}
|
||||
|
||||
public Boolean audit(SalesOrderAuditDO salesOrderAuditDO) {
|
||||
return salesOrderService.audit(salesOrderAuditDO);
|
||||
}
|
||||
|
||||
public Boolean cancelAudit(SalesOrderAuditDO salesOrderAuditDO) {
|
||||
return salesOrderService.cancelAudit(salesOrderAuditDO);
|
||||
}
|
||||
|
||||
public Long insertReturnId(SalesOrderDO salesOrderDO) {
|
||||
return salesOrderService.insertReturnId(salesOrderDO);
|
||||
}
|
||||
|
||||
public void updateStateById(Long id, Integer state) {
|
||||
salesOrderService.updateStateById(id, state);
|
||||
}
|
||||
|
||||
public SalesOrderDetailsPO getetails(Long id) {
|
||||
return salesOrderService.getetails(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 销售订单导入-保存销售订单信息
|
||||
* @param salesOrderExcelDTO - 导入信息
|
||||
* @return 保存的销售订单信息
|
||||
*/
|
||||
public SalesOrder saveFromImportSalesOrder(SalesOrderExcelDTO salesOrderExcelDTO) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
SalesOrderDO salesOrderDO = new SalesOrderDO();
|
||||
|
||||
BeanUtils.copyProperties(salesOrderExcelDTO, salesOrderDO, IgnoreNullUtil.getNullPropertyNames(salesOrderExcelDTO));
|
||||
salesOrderDO.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
salesOrderDO.setCreateBy(loginUser.getUserPo().getUserId());
|
||||
salesOrderDO.setCreateByName(loginUser.getUserPo().getUserName());
|
||||
salesOrderDO.setCreateTime(new Date());
|
||||
// 成交价税合计:物料价税合计 - 优惠金额
|
||||
if(ObjectUtil.isNotNull(salesOrderExcelDTO.getTaxAmount()) && ObjectUtil.isNotNull(salesOrderExcelDTO.getDiscountAmount())){
|
||||
BigDecimal reachTotalAmount = salesOrderExcelDTO.getTaxAmount().subtract(salesOrderExcelDTO.getDiscountAmount());
|
||||
if(BigDecimal.ZERO.compareTo(reachTotalAmount) >= 0){
|
||||
throw new ServiceException("订单成交价税合计<=0,请检查物料价税合计与优惠金额数据!");
|
||||
}
|
||||
salesOrderDO.setTotalAmount(reachTotalAmount);
|
||||
}
|
||||
|
||||
return salesOrderService.insertReturnEntity(salesOrderDO);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.mhd.oms.domain.scmOrder.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 供应链订单对象 oms_scm_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName("oms_scm_order")
|
||||
public class ScmOrder extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("供应链订单来源;1采购订单2销售订单3运输订单")
|
||||
@Excel(name = "供应链订单来源;1采购订单2销售订单3运输订单")
|
||||
private Integer scmSource;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("供应链订单号")
|
||||
@Excel(name = "供应链订单号")
|
||||
private String scmNo;
|
||||
|
||||
@ApiModelProperty("订单状态;1未审核2已审核3部分生成4全部生成5部分完成6已完成7已取消8已拦截")
|
||||
@Excel(name = "订单状态;1未审核2已审核3部分生成4全部生成5部分完成6已完成7已取消8已拦截")
|
||||
private Integer orderState;
|
||||
|
||||
@ApiModelProperty("任务数量")
|
||||
@Excel(name = "任务数量")
|
||||
private Long taskNum;
|
||||
|
||||
@ApiModelProperty("有效数量")
|
||||
@Excel(name = "有效数量")
|
||||
private Long activeTaskNum;
|
||||
|
||||
@ApiModelProperty("完成数量")
|
||||
@Excel(name = "完成数量")
|
||||
private Long finishTaskNum;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
+71
@@ -0,0 +1,71 @@
|
||||
package com.mhd.oms.domain.scmOrder.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.oms.domain.scmOrder.entity.ScmOrder;
|
||||
import com.mhd.oms.domain.scmOrder.repository.po.ScmOrderPO;
|
||||
import com.mhd.oms.domain.scmOrder.repository.todo.ScmOrderDO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 供应链订单Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
public interface IScmOrderService extends IService<ScmOrder>
|
||||
{
|
||||
/**
|
||||
* 分页查询供应链订单列表
|
||||
*/
|
||||
public List<ScmOrderPO> queryList(ScmOrderDO scmOrderDO);
|
||||
|
||||
/**
|
||||
* 新增供应链订单
|
||||
*/
|
||||
public Boolean insert(ScmOrderDO scmOrderDO);
|
||||
|
||||
/**
|
||||
* 修改供应链订单
|
||||
*/
|
||||
public Boolean update(ScmOrderDO scmOrderDO);
|
||||
|
||||
/**
|
||||
* 批量删除供应链订单
|
||||
*/
|
||||
public Boolean delete(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 查询供应链订单
|
||||
*/
|
||||
public ScmOrderPO getInfo(Long id);
|
||||
|
||||
/**
|
||||
* 审核|取消审核【批量】
|
||||
*
|
||||
* @param exeState - 操作状态:1-审核、2-取消审核
|
||||
* @param idList - 供应链订单ID列表
|
||||
* @return 审核结果
|
||||
*/
|
||||
Boolean batchAuditOrCancelAudit(Integer exeState, List<String> idList);
|
||||
|
||||
/**
|
||||
* 根据orderID拦截订单
|
||||
*/
|
||||
void interceptByOrderId(Long orderId);
|
||||
|
||||
Boolean batchInsert(List<ScmOrderDO> scmOrderDOS);
|
||||
|
||||
List<ScmOrderPO> getInfosByOrderId(List<Long> ids);
|
||||
|
||||
Boolean batchUpdate(List<ScmOrderDO> scmOrderDOS);
|
||||
|
||||
/**
|
||||
* 获取传入ID列表的全部物料信息列表,按传入的ID分组
|
||||
* @param idList - 供应链订单ID列表
|
||||
* @return k-供应链id,v-对应物料列表
|
||||
*/
|
||||
Map<Long, List<ScmOrderPO>> getGoodsAndTaskInfoList(List<Long> idList);
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
package com.mhd.oms.domain.scmOrder.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.common.core.domain.po.UserPo;
|
||||
import com.mhd.oms.domain.scmOrder.entity.ScmOrder;
|
||||
import com.mhd.oms.domain.scmOrder.repository.po.ScmOrderPO;
|
||||
import com.mhd.oms.domain.scmOrder.repository.todo.ScmOrderDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 供应链订单Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
public interface ScmOrderMapper extends BaseMapper<ScmOrder>
|
||||
{
|
||||
/**
|
||||
* 查询供应链订单列表
|
||||
*/
|
||||
public List<ScmOrderPO> queryList(ScmOrderDO scmOrderDO);
|
||||
|
||||
|
||||
/**
|
||||
* 批量修改供应链订单状态
|
||||
*
|
||||
* @param idList - 供应链订单ID列表
|
||||
* @param orderState - 订单状态
|
||||
* @param userPo - 审核人信息(当前登录人)
|
||||
*/
|
||||
Boolean batchUpdateOrderState(@Param("idList") List<String> idList, @Param("orderState") Integer orderState, @Param("userPo") UserPo userPo);
|
||||
|
||||
/**
|
||||
* 获取传入ID列表中对应的全部物料信息列表
|
||||
* @param idList - 供应链订单ID列表
|
||||
* @return - 物料信息列表
|
||||
*/
|
||||
List<ScmOrderPO> getGoodsAndTaskInfoList(@Param("idList") List<Long> idList);
|
||||
|
||||
@Select("select scm_no from oms_scm_order where order_id = #{orderId} and del_flag = 1 and order_state not in (7,8)")
|
||||
String selectScmOrderNoByOrderId(@Param("orderId") Long orderId);
|
||||
}
|
||||
+220
@@ -0,0 +1,220 @@
|
||||
package com.mhd.oms.domain.scmOrder.repository.persistence;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.constant.OrderConstant;
|
||||
import com.mhd.oms.domain.OrderInfoPO;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.mapper.PurchaseOrderMapper;
|
||||
import com.mhd.oms.domain.salesOrder.repository.mapper.SalesOrderMapper;
|
||||
import com.mhd.oms.domain.scmOrder.entity.ScmOrder;
|
||||
import com.mhd.oms.domain.scmOrder.repository.facade.IScmOrderService;
|
||||
import com.mhd.oms.domain.scmOrder.repository.mapper.ScmOrderMapper;
|
||||
import com.mhd.oms.domain.scmOrder.repository.po.ScmOrderPO;
|
||||
import com.mhd.oms.domain.scmOrder.repository.todo.ScmOrderDO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 供应链订单Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
@Service
|
||||
public class ScmOrderImpl extends ServiceImpl<ScmOrderMapper, ScmOrder> implements IScmOrderService{
|
||||
@Autowired
|
||||
private ScmOrderMapper scmOrderMapper;
|
||||
|
||||
@Resource
|
||||
private PurchaseOrderMapper purchaseOrderMapper;
|
||||
|
||||
|
||||
@Resource
|
||||
private SalesOrderMapper salesOrderMapper;
|
||||
|
||||
/**
|
||||
* 查询供应链订单列表
|
||||
*/
|
||||
@Override
|
||||
public List<ScmOrderPO> queryList(ScmOrderDO scmOrderDO)
|
||||
{
|
||||
List<ScmOrderPO> scmOrderPOS = scmOrderMapper.queryList(scmOrderDO);
|
||||
OrderInfoPO orderInfoPO = new OrderInfoPO();
|
||||
for (ScmOrderPO scmOrderPO : scmOrderPOS) {
|
||||
|
||||
switch (scmOrderPO.getScmSource()) {
|
||||
case 1://采购订单
|
||||
orderInfoPO = purchaseOrderMapper.selectOrderInfoByOrderId(scmOrderPO.getOrderId());
|
||||
break;
|
||||
case 2://销售订单
|
||||
orderInfoPO = salesOrderMapper.selectOrderInfoByOrderId(scmOrderPO.getOrderId());
|
||||
break;
|
||||
case 3://运输订单
|
||||
break;
|
||||
}
|
||||
scmOrderPO.setOrderNo(orderInfoPO.getOrderNo());
|
||||
scmOrderPO.setShipper(orderInfoPO.getShipper());
|
||||
scmOrderPO.setOrderType(orderInfoPO.getOrderType());
|
||||
scmOrderPO.setCustomerOrders(orderInfoPO.getCustomerOrders());
|
||||
scmOrderPO.setTacklState(orderInfoPO.getTacklState());
|
||||
scmOrderPO.setJobTaskType(orderInfoPO.getJobTaskType());
|
||||
|
||||
}
|
||||
return scmOrderPOS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增供应链订单
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(ScmOrderDO scmOrderDO) {
|
||||
ScmOrder scmOrder = new ScmOrder();
|
||||
BeanUtils.copyProperties(scmOrderDO,scmOrder);
|
||||
return this.save(scmOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改供应链订单
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean update(ScmOrderDO scmOrderDO) {
|
||||
ScmOrder scmOrder = new ScmOrder();
|
||||
BeanUtils.copyProperties(scmOrderDO,scmOrder);
|
||||
return this.updateById(scmOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除供应链订单
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] ids ) {
|
||||
|
||||
// 根据ID集合查询所有的供应链订单信息
|
||||
List<ScmOrder> scmOrders = this.listByIds(Arrays.asList(ids));
|
||||
// 供应链订单状态只有是已取消、已拦截状态下的订单才可以删除
|
||||
List<ScmOrder> scmOrderList = scmOrders.stream().filter(scmOrder -> scmOrder.getOrderState() != 7
|
||||
&& scmOrder.getOrderState() != 8).collect(Collectors.toList());
|
||||
if (!scmOrderList.isEmpty()) {
|
||||
throw new ServiceException("已取消/已拦截的订单状态才可以删除");
|
||||
}
|
||||
|
||||
for (ScmOrder scmOrder : scmOrders) {
|
||||
scmOrder.setDelFlag(2);
|
||||
}
|
||||
return this.updateBatchById(scmOrders);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改供应链订单
|
||||
*/
|
||||
@Override
|
||||
public ScmOrderPO getInfo(Long id) {
|
||||
ScmOrder scmOrder = this.getById(id);
|
||||
ScmOrderPO scmOrderPO = new ScmOrderPO();
|
||||
if(ObjectUtils.isNull(scmOrder)){
|
||||
return null;
|
||||
}
|
||||
BeanUtils.copyProperties(scmOrder,scmOrderPO);
|
||||
return scmOrderPO;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 审核|取消审核【批量】
|
||||
*
|
||||
* @param exeState - 操作状态:1-审核、2-取消审核
|
||||
* @param idList - 供应链订单ID列表
|
||||
* @return 审核结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean batchAuditOrCancelAudit(Integer exeState, List<String> idList) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
if(idList.size() == 0){
|
||||
throw new ServiceException("供应链订单ID列表不能为空");
|
||||
}
|
||||
|
||||
// 查询列表中符合对应当前操作状态的数据:审核-未审核状态的订单、取消审核-审核通过的订单
|
||||
ScmOrderDO scmOrderDO = new ScmOrderDO(idList, exeState);
|
||||
List<ScmOrderPO> scmOrderList = scmOrderMapper.queryList(scmOrderDO);
|
||||
if(scmOrderList.size() != idList.size()){
|
||||
throw new ServiceException("存在非【"+ (exeState == 1 ? "未审核" : "审核通过") +"】状态订单!");
|
||||
}
|
||||
|
||||
return scmOrderMapper.batchUpdateOrderState(idList,
|
||||
exeState == 1 ? OrderConstant.SCM_STATUS_2 : OrderConstant.SCM_STATUS_1,
|
||||
loginUser.getUserPo());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void interceptByOrderId(Long orderId) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
scmOrderMapper.update(new ScmOrder(), new LambdaUpdateWrapper<ScmOrder>()
|
||||
.set(ScmOrder::getOrderState, OrderConstant.SCM_STATUS_8)
|
||||
.set(ScmOrder::getUpdateBy, loginUser.getUserid())
|
||||
.set(ScmOrder::getUpdateByName, loginUser.getUsername())
|
||||
.set(ScmOrder::getUpdateTime, new Date())
|
||||
.eq(ScmOrder::getOrderId, orderId)
|
||||
.eq(ScmOrder::getDelFlag, 1)
|
||||
.ne(ScmOrder::getOrderState, OrderConstant.SCM_STATUS_7));
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public Boolean batchInsert(List<ScmOrderDO> scmOrderDOS) {
|
||||
List<ScmOrder> scmOrders = new ArrayList<>();
|
||||
for (ScmOrderDO scmOrderDO : scmOrderDOS) {
|
||||
ScmOrder scmOrder = new ScmOrder();
|
||||
BeanUtils.copyProperties(scmOrderDO,scmOrder);
|
||||
scmOrders.add(scmOrder);
|
||||
}
|
||||
return this.saveBatch(scmOrders);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ScmOrderPO> getInfosByOrderId(List<Long> ids) {
|
||||
|
||||
List<ScmOrder> scmOrders = this.scmOrderMapper.selectList(new LambdaQueryWrapper<ScmOrder>().in(ScmOrder::getOrderId, ids)
|
||||
.eq(ScmOrder::getDelFlag, 1));
|
||||
|
||||
return scmOrders.stream().map(scmOrder -> {
|
||||
ScmOrderPO scmOrderPO = new ScmOrderPO();
|
||||
BeanUtils.copyProperties(scmOrder,scmOrderPO);
|
||||
return scmOrderPO;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean batchUpdate(List<ScmOrderDO> scmOrderDOS) {
|
||||
List<ScmOrder> scmOrders = new ArrayList<>();
|
||||
for (ScmOrderDO scmOrderDO : scmOrderDOS) {
|
||||
ScmOrder scmOrder = new ScmOrder();
|
||||
BeanUtils.copyProperties(scmOrderDO,scmOrder);
|
||||
scmOrders.add(scmOrder);
|
||||
}
|
||||
|
||||
return this.updateBatchById(scmOrders);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Long, List<ScmOrderPO>> getGoodsAndTaskInfoList(List<Long> idList) {
|
||||
if(idList.size() == 0){
|
||||
throw new ServiceException("供应链订单ID不能为空");
|
||||
}
|
||||
List<ScmOrderPO> goodsAndTaskInfoList = scmOrderMapper.getGoodsAndTaskInfoList(idList);
|
||||
return goodsAndTaskInfoList.stream().collect(Collectors.groupingBy(ScmOrderPO::getId));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
package com.mhd.oms.domain.scmOrder.repository.po;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
* 供应链订单对象 oms_scm_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "供应链订单对象", description = "供应链订单响应对象")
|
||||
public class ScmOrderPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("供应链订单来源:1-采购订单、2-销售订单、3-运输订单")
|
||||
@Excel(name = "供应链订单来源;1采购订单2销售订单3运输订单")
|
||||
private Integer scmSource;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("供应链订单号")
|
||||
@Excel(name = "供应链订单号")
|
||||
private String scmNo;
|
||||
|
||||
@ApiModelProperty("订单状态;1-未审核、2-已审核、3-部分生成、4-全部生成、5-部分完成、6-已完成、7-已取消、8-已拦截")
|
||||
@Excel(name = "订单状态;1未审核2已审核3部分生成4全部生成5部分完成6已完成7已取消8已拦截")
|
||||
private Integer orderState;
|
||||
|
||||
@ApiModelProperty("任务数量")
|
||||
@Excel(name = "任务数量")
|
||||
private Long taskNum;
|
||||
|
||||
@ApiModelProperty("有效数量")
|
||||
@Excel(name = "有效数量")
|
||||
private Long activeTaskNum;
|
||||
|
||||
@ApiModelProperty("完成数量")
|
||||
@Excel(name = "完成数量")
|
||||
private Long finishTaskNum;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("物料ID")
|
||||
private Long goodsId;
|
||||
|
||||
@ApiModelProperty("总物料数量")
|
||||
private BigDecimal totalGoodsNum;
|
||||
@ApiModelProperty("已生成物料数量")
|
||||
private BigDecimal existedGoodsNum;
|
||||
|
||||
@ApiModelProperty("仓库ID")
|
||||
private Long warehouseId;
|
||||
@ApiModelProperty("仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("作业任务类型ID")
|
||||
private Integer jobTaskTypeId;
|
||||
@ApiModelProperty("作业任务类型名称")
|
||||
private String jobTaskType;
|
||||
|
||||
@ApiModelProperty("订单号/商流订单号")
|
||||
private String orderNo;
|
||||
@ApiModelProperty("货主")
|
||||
private String shipper;
|
||||
@ApiModelProperty("业务订单类型")
|
||||
private String orderType;
|
||||
@ApiModelProperty("客户订单号")
|
||||
private String customerOrders;
|
||||
|
||||
@ApiModelProperty("拦截状态;0未拦截1拦截成功2拦截失败")
|
||||
private Integer tacklState;
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.mhd.oms.domain.scmOrder.repository.todo;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 供应链订单对象 oms_scm_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class ScmOrderDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
private List<String> idList;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("供应链订单来源;1采购订单2销售订单3运输订单")
|
||||
@Excel(name = "供应链订单来源;1采购订单2销售订单3运输订单")
|
||||
private Integer scmSource;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("供应链订单号")
|
||||
@Excel(name = "供应链订单号")
|
||||
private String scmNo;
|
||||
|
||||
@ApiModelProperty("订单状态;1未审核2已审核3部分生成4全部生成5部分完成6已完成7已取消8已拦截")
|
||||
@Excel(name = "订单状态;1未审核2已审核3部分生成4全部生成5部分完成6已完成7已取消8已拦截")
|
||||
private Integer orderState;
|
||||
|
||||
@ApiModelProperty("任务数量")
|
||||
@Excel(name = "任务数量")
|
||||
private Long taskNum;
|
||||
|
||||
@ApiModelProperty("有效数量")
|
||||
@Excel(name = "有效数量")
|
||||
private Long activeTaskNum;
|
||||
|
||||
@ApiModelProperty("完成数量")
|
||||
@Excel(name = "完成数量")
|
||||
private Long finishTaskNum;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
|
||||
|
||||
public ScmOrderDO(){
|
||||
|
||||
}
|
||||
|
||||
public ScmOrderDO(List<String> idList, Integer orderState){
|
||||
this.idList = idList;
|
||||
this.orderState = orderState;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,217 @@
|
||||
package com.mhd.oms.domain.scmOrder.service;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.IgnoreNullUtil;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.constant.OrderConstant;
|
||||
import com.mhd.oms.domain.scmOrder.repository.facade.IScmOrderService;
|
||||
import com.mhd.oms.domain.scmOrder.repository.po.ScmOrderPO;
|
||||
import com.mhd.oms.domain.scmOrder.repository.todo.ScmOrderDO;
|
||||
import com.mhd.oms.domain.taskOrder.repository.facade.ITaskOrderService;
|
||||
import com.mhd.oms.domain.taskOrder.repository.po.TaskOrderPO;
|
||||
import com.mhd.oms.domain.taskOrder.repository.todo.TaskOrderDO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 供应链订单
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-21
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ScmOrderDomainService {
|
||||
|
||||
@Autowired
|
||||
private IScmOrderService scmOrderService;
|
||||
@Resource
|
||||
private ITaskOrderService taskOrderService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询供应链订单列表
|
||||
*/
|
||||
public List<ScmOrderPO> queryList(ScmOrderDO scmOrderDO) {
|
||||
return scmOrderService.queryList(scmOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增供应链订单
|
||||
*/
|
||||
public Boolean insert(ScmOrderDO scmOrderDO) {
|
||||
|
||||
return scmOrderService.insert(scmOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改供应链订单
|
||||
*/
|
||||
public Boolean update(ScmOrderDO scmOrderDO) {
|
||||
return scmOrderService.update(scmOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除供应链订单
|
||||
*/
|
||||
public Boolean delete(Long[] ids) {
|
||||
return scmOrderService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取供应链订单详细信息
|
||||
*/
|
||||
public ScmOrderPO getInfo(Long id)
|
||||
{
|
||||
return scmOrderService.getInfo(id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 审核|取消审核【批量】
|
||||
*
|
||||
* @param exeState - 操作状态:1-审核、2-取消审核
|
||||
* @param idList - 供应链订单ID列表
|
||||
*/
|
||||
public Boolean batchAuditOrCancelAudit(Integer exeState, List<String> idList) {
|
||||
return scmOrderService.batchAuditOrCancelAudit(exeState, idList);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新供应链订单任务数量、状态
|
||||
* 下游作业任务取消后,供应链订单需要进行更新对应的任务数量及状态
|
||||
* @param ableCancelledScmIdList - 取消的作业任务列表:ScmId不能为空
|
||||
*/
|
||||
public void updateFromCancelTask(List<TaskOrderPO> ableCancelledScmIdList) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
// <供应链订单, List<对应可取消的作业任务列表>>
|
||||
Map<Long, List<TaskOrderPO>> taskOrderMapGroupByScmId = ableCancelledScmIdList.stream().collect(Collectors.groupingBy(TaskOrderPO::getScmId));
|
||||
taskOrderMapGroupByScmId.forEach((k,v) -> {
|
||||
ScmOrderPO scmOrderPo = scmOrderService.getInfo(k);
|
||||
// 查询供应链订单K下所有作业任务
|
||||
TaskOrderDO taskOrderDO = new TaskOrderDO();
|
||||
taskOrderDO.setScmId(k);
|
||||
List<TaskOrderPO> taskOrderPoList = taskOrderService.queryList(taskOrderDO);
|
||||
// 作业任务状态分组
|
||||
Map<Integer, List<TaskOrderPO>> statusMap = taskOrderPoList.stream().collect(Collectors.groupingBy(TaskOrderPO::getTaskStatus));
|
||||
// 更新供应链订单信息
|
||||
ScmOrderDO scmOrderDo = new ScmOrderDO();
|
||||
BeanUtil.copyProperties(scmOrderPo, scmOrderDo);
|
||||
scmOrderDo.setActiveTaskNum(scmOrderDo.getActiveTaskNum() - v.size());
|
||||
if(!statusMap.containsKey(OrderConstant.TASK_STATUS_0)
|
||||
&& !statusMap.containsKey(OrderConstant.TASK_STATUS_1)
|
||||
&& !statusMap.containsKey(OrderConstant.TASK_STATUS_2)){
|
||||
scmOrderDo.setOrderState(OrderConstant.SCM_STATUS_2);
|
||||
}
|
||||
scmOrderDo.setUpdateBy(loginUser.getUserid());
|
||||
scmOrderDo.setUpdateByName(loginUser.getUsername());
|
||||
scmOrderDo.setUpdateTime(new Date());
|
||||
scmOrderService.update(scmOrderDo);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单ORDER_ID修改供应链订单为拦截状态
|
||||
* @param orderId - 订单ID
|
||||
*/
|
||||
public void interceptByOrderId(Long orderId) {
|
||||
scmOrderService.interceptByOrderId(orderId);
|
||||
}
|
||||
|
||||
public Boolean batchInsert(List<ScmOrderDO> scmOrderDOS) {
|
||||
return scmOrderService.batchInsert(scmOrderDOS);
|
||||
}
|
||||
|
||||
public List<ScmOrderPO> getInfosByOrderId(List<Long> ids) {
|
||||
return scmOrderService.getInfosByOrderId(ids);
|
||||
}
|
||||
|
||||
public Boolean batchUpdate(List<ScmOrderDO> scmOrderDOS) {
|
||||
return scmOrderService.batchUpdate(scmOrderDOS);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取传入列表中对应的物料信息列表,按传入的ID分组
|
||||
* @param idList 供应链订单ID列表
|
||||
* @return k-供应链id,v-对应物料列表
|
||||
*/
|
||||
public Map<Long, List<ScmOrderPO>> getGoodsAndTaskInfoList(List<Long> idList) {
|
||||
Map<Long, List<ScmOrderPO>> scmGoodsMap = scmOrderService.getGoodsAndTaskInfoList(idList);
|
||||
if(scmGoodsMap.size() != idList.size()){
|
||||
List<Long> ableCreateId = new ArrayList<>(scmGoodsMap.keySet());
|
||||
idList.removeAll(ableCreateId);
|
||||
throw new ServiceException("供应链订单ID:"+ idList + "异常,不可生成任务");
|
||||
}
|
||||
return scmGoodsMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新key中的供应链订单,组装传入的物料列表为作业任务并返回
|
||||
* @param scmGoodsMap - 供应链订单对应的所有物料的信息列表
|
||||
* @return - 应新增的作业任务列表
|
||||
*/
|
||||
public List<TaskOrderDO> handlerbatchCreateTaskOrder(Map<Long, List<ScmOrderPO>> scmGoodsMap) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
|
||||
List<TaskOrderDO> taskOrderList = new ArrayList<>();
|
||||
List<ScmOrderDO> scmOrderList = new ArrayList<>();
|
||||
|
||||
scmGoodsMap.forEach((k,v) -> {
|
||||
|
||||
// 供应链订单状态应处于可生成任务状态: 任务列表中的订单状态为供应链订单的状态,只判断1次就行
|
||||
if(!ArrayUtil.contains(OrderConstant.SCM_STATUS_GROUP_CAN_GENERATE_TASK, v.get(0).getOrderState())){
|
||||
throw new ServiceException("请检查供应链订单" + v.get(0).getScmNo() + "状态");
|
||||
}
|
||||
|
||||
// ================== 处理应生成的作业任务,新增到作业任务列表 =================
|
||||
// 可创建任务的物料列表: 物料总数量 - 已生成作业任务数量 > 0
|
||||
List<ScmOrderPO> ableCreateGoodsList = v.stream().filter(x -> BigDecimal.ZERO.compareTo(x.getTotalGoodsNum().subtract(x.getExistedGoodsNum())) < 0)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
ableCreateGoodsList.forEach(x -> {
|
||||
TaskOrderDO taskOrderDO = new TaskOrderDO();
|
||||
taskOrderDO.setCreateBy(loginUser.getUserid());
|
||||
taskOrderDO.setCreateByName(loginUser.getUsername());
|
||||
taskOrderDO.setCreateTime(new Date());
|
||||
taskOrderDO.setScmId(k);
|
||||
taskOrderDO.setWarehouseId(x.getWarehouseId());
|
||||
taskOrderDO.setWarehouseName(x.getWarehouseName());
|
||||
taskOrderDO.setPlanNum(x.getTotalGoodsNum().subtract(x.getExistedGoodsNum()));
|
||||
taskOrderDO.setTaskTypeId(x.getJobTaskTypeId());
|
||||
taskOrderDO.setTaskTypeName(x.getJobTaskType());
|
||||
taskOrderDO.setGoodsId(x.getGoodsId());
|
||||
taskOrderDO.setOrderId(x.getOrderId());
|
||||
taskOrderDO.setScmSource(x.getScmSource());
|
||||
taskOrderList.add(taskOrderDO);
|
||||
});
|
||||
|
||||
// ============= 增加供应链订单的任务数量、有效数量 =============
|
||||
ScmOrderPO scmOrder = scmOrderService.getInfo(k);
|
||||
ScmOrderDO scmOrderDO = new ScmOrderDO();
|
||||
BeanUtils.copyProperties(scmOrder, scmOrderDO, IgnoreNullUtil.getNullPropertyNames(scmOrder));
|
||||
scmOrderDO.setOrderState(OrderConstant.SCM_STATUS_4);
|
||||
scmOrderDO.setTaskNum(scmOrderDO.getTaskNum() + ableCreateGoodsList.size());
|
||||
scmOrderDO.setActiveTaskNum(scmOrderDO.getActiveTaskNum() + ableCreateGoodsList.size());
|
||||
scmOrderList.add(scmOrderDO);
|
||||
});
|
||||
|
||||
scmOrderService.batchUpdate(scmOrderList);
|
||||
return taskOrderList;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
package com.mhd.oms.domain.settlement.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
* 结算信息对象 oms_settlement
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName(value = "oms_settlement")
|
||||
public class Settlement extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("结算对象ID")
|
||||
@Excel(name = "结算对象ID")
|
||||
private Long settlementObjId;
|
||||
|
||||
@ApiModelProperty("结算对象")
|
||||
@Excel(name = "结算对象")
|
||||
private String settlementObj;
|
||||
|
||||
@ApiModelProperty("结算方式ID")
|
||||
@Excel(name = "结算方式ID")
|
||||
private String settlementWayId;
|
||||
|
||||
@ApiModelProperty("结算方式")
|
||||
@Excel(name = "结算方式")
|
||||
private String settlementWay;
|
||||
|
||||
@ApiModelProperty("支付方式")
|
||||
@Excel(name = "支付方式")
|
||||
private String payMethod;
|
||||
|
||||
@ApiModelProperty("支付状态ID")
|
||||
@Excel(name = "支付状态ID")
|
||||
private String payStatusId;
|
||||
|
||||
@ApiModelProperty("支付状态")
|
||||
@Excel(name = "支付状态")
|
||||
private String payStatus;
|
||||
|
||||
@ApiModelProperty("预付金额")
|
||||
@Excel(name = "预付金额")
|
||||
private BigDecimal prepaidAmount;
|
||||
|
||||
@ApiModelProperty("实付金额;采购订单:本次付款")
|
||||
@Excel(name = "实付金额;采购订单:本次付款")
|
||||
private BigDecimal paidAmount;
|
||||
|
||||
@ApiModelProperty("欠款金额;采购订单:本次欠款")
|
||||
@Excel(name = "欠款金额;采购订单:本次欠款")
|
||||
private BigDecimal debtAmount;
|
||||
|
||||
@ApiModelProperty("付款账号")
|
||||
@Excel(name = "付款账号")
|
||||
private String paymentAccNo;
|
||||
|
||||
@ApiModelProperty("付款单号")
|
||||
@Excel(name = "付款单号")
|
||||
private String paymentOrderNo;
|
||||
|
||||
@ApiModelProperty("附件地址")
|
||||
@Excel(name = "附件地址")
|
||||
private String fileName;
|
||||
|
||||
@ApiModelProperty("附件地址")
|
||||
@Excel(name = "附件地址")
|
||||
private String fileUrl;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package com.mhd.oms.domain.settlement.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.oms.domain.settlement.entity.Settlement;
|
||||
import com.mhd.oms.domain.settlement.repository.po.SettlementPO;
|
||||
import com.mhd.oms.domain.settlement.repository.todo.SettlementDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 结算信息Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
public interface ISettlementService extends IService<Settlement>
|
||||
{
|
||||
/**
|
||||
* 分页查询结算信息列表
|
||||
*/
|
||||
public List<SettlementPO> queryList(SettlementDO settlementDO);
|
||||
|
||||
/**
|
||||
* 新增结算信息
|
||||
*/
|
||||
public Boolean insert(SettlementDO settlementDO);
|
||||
|
||||
/**
|
||||
* 修改结算信息
|
||||
*/
|
||||
public Boolean update(SettlementDO settlementDO);
|
||||
|
||||
/**
|
||||
* 批量删除结算信息
|
||||
*/
|
||||
public Boolean delete(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 查询结算信息
|
||||
*/
|
||||
public SettlementPO getInfo(Long id);
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
Boolean batchInsert(List<SettlementDO> settlementDOList);
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.mhd.oms.domain.settlement.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.oms.domain.settlement.entity.Settlement;
|
||||
import com.mhd.oms.domain.settlement.repository.po.SettlementPO;
|
||||
import com.mhd.oms.domain.settlement.repository.todo.SettlementDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 结算信息Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
public interface SettlementMapper extends BaseMapper<Settlement>
|
||||
{
|
||||
/**
|
||||
* 查询结算信息列表
|
||||
*/
|
||||
public List<SettlementPO> queryList(SettlementDO settlementDO);
|
||||
|
||||
}
|
||||
+98
@@ -0,0 +1,98 @@
|
||||
package com.mhd.oms.domain.settlement.repository.persistence;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.oms.domain.settlement.entity.Settlement;
|
||||
import com.mhd.oms.domain.settlement.repository.facade.ISettlementService;
|
||||
import com.mhd.oms.domain.settlement.repository.mapper.SettlementMapper;
|
||||
import com.mhd.oms.domain.settlement.repository.po.SettlementPO;
|
||||
import com.mhd.oms.domain.settlement.repository.todo.SettlementDO;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 结算信息Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
@Service
|
||||
public class SettlementImpl extends ServiceImpl<SettlementMapper, Settlement> implements ISettlementService{
|
||||
@Autowired
|
||||
private SettlementMapper settlementMapper;
|
||||
|
||||
/**
|
||||
* 查询结算信息列表
|
||||
*/
|
||||
@Override
|
||||
public List<SettlementPO> queryList(SettlementDO settlementDO)
|
||||
{
|
||||
return settlementMapper.queryList(settlementDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增结算信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(SettlementDO settlementDO) {
|
||||
Settlement settlement = new Settlement();
|
||||
BeanUtils.copyProperties(settlementDO,settlement);
|
||||
return this.save(settlement);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改结算信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(SettlementDO settlementDO) {
|
||||
Settlement settlement = new Settlement();
|
||||
BeanUtils.copyProperties(settlementDO,settlement);
|
||||
return this.updateById(settlement);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除结算信息
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] ids ) {
|
||||
List<Settlement> list = new ArrayList<>();
|
||||
for (Long id : ids) {
|
||||
Settlement settlement = new Settlement();
|
||||
settlement.setId(id);
|
||||
settlement.setDelFlag(2);
|
||||
list.add(settlement);
|
||||
}
|
||||
return this.updateBatchById(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改结算信息
|
||||
*/
|
||||
@Override
|
||||
public SettlementPO getInfo(Long id) {
|
||||
Settlement settlement = this.getById(id);
|
||||
SettlementPO settlementPO = new SettlementPO();
|
||||
BeanUtils.copyProperties(settlement,settlementPO);
|
||||
return settlementPO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean batchInsert(List<SettlementDO> settlementDOList) {
|
||||
List<Settlement> settlementList = settlementDOList.stream().map(settlementDO -> {
|
||||
Settlement settlement = new Settlement();
|
||||
BeanUtils.copyProperties(settlementDO, settlement);
|
||||
return settlement;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
return this.saveBatch(settlementList);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
package com.mhd.oms.domain.settlement.repository.po;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
* 结算信息对象 oms_settlement
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "结算信息对象", description = "结算信息响应对象")
|
||||
public class SettlementPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("结算对象ID")
|
||||
@Excel(name = "结算对象ID")
|
||||
private Long settlementObjId;
|
||||
|
||||
@ApiModelProperty("结算对象")
|
||||
@Excel(name = "结算对象")
|
||||
private String settlementObj;
|
||||
|
||||
@ApiModelProperty("结算方式ID")
|
||||
@Excel(name = "结算方式ID")
|
||||
private String settlementWayId;
|
||||
|
||||
@ApiModelProperty("结算方式")
|
||||
@Excel(name = "结算方式")
|
||||
private String settlementWay;
|
||||
|
||||
@ApiModelProperty("支付方式")
|
||||
@Excel(name = "支付方式")
|
||||
private String payMethod;
|
||||
|
||||
@ApiModelProperty("支付状态ID")
|
||||
@Excel(name = "支付状态ID")
|
||||
private String payStatusId;
|
||||
|
||||
@ApiModelProperty("支付状态")
|
||||
@Excel(name = "支付状态")
|
||||
private String payStatus;
|
||||
|
||||
@ApiModelProperty("预付金额")
|
||||
@Excel(name = "预付金额")
|
||||
private BigDecimal prepaidAmount;
|
||||
|
||||
@ApiModelProperty("实付金额(采购订单本次付款)")
|
||||
@Excel(name = "实付金额;采购订单:本次付款")
|
||||
private BigDecimal paidAmount;
|
||||
|
||||
@ApiModelProperty("欠款金额(采购订单本次欠款)")
|
||||
@Excel(name = "欠款金额;采购订单:本次欠款")
|
||||
private BigDecimal debtAmount;
|
||||
|
||||
@ApiModelProperty("付款账号")
|
||||
@Excel(name = "付款账号")
|
||||
private String paymentAccNo;
|
||||
|
||||
@ApiModelProperty("付款单号")
|
||||
@Excel(name = "付款单号")
|
||||
private String paymentOrderNo;
|
||||
|
||||
@ApiModelProperty("附件地址")
|
||||
@Excel(name = "附件地址")
|
||||
private String fileName;
|
||||
|
||||
@ApiModelProperty("附件地址")
|
||||
@Excel(name = "附件地址")
|
||||
private String fileUrl;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
|
||||
}
|
||||
+110
@@ -0,0 +1,110 @@
|
||||
package com.mhd.oms.domain.settlement.repository.todo;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 结算信息对象 oms_settlement
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class SettlementDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("组织表id")
|
||||
@Excel(name = "组织表id")
|
||||
private Long organizationId;
|
||||
|
||||
@ApiModelProperty("组织名称")
|
||||
@Excel(name = "组织名称")
|
||||
private String organizationName;
|
||||
|
||||
@ApiModelProperty("订单管理表ID")
|
||||
@Excel(name = "订单管理表ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("结算对象ID")
|
||||
@Excel(name = "结算对象ID")
|
||||
private Long settlementObjId;
|
||||
|
||||
@ApiModelProperty("结算对象")
|
||||
@Excel(name = "结算对象")
|
||||
private String settlementObj;
|
||||
|
||||
@ApiModelProperty("结算方式ID")
|
||||
@Excel(name = "结算方式ID")
|
||||
private String settlementWayId;
|
||||
|
||||
@ApiModelProperty("结算方式")
|
||||
@Excel(name = "结算方式")
|
||||
private String settlementWay;
|
||||
|
||||
@ApiModelProperty("支付方式")
|
||||
@Excel(name = "支付方式")
|
||||
private String payMethod;
|
||||
|
||||
@ApiModelProperty("支付状态ID")
|
||||
@Excel(name = "支付状态ID")
|
||||
private String payStatusId;
|
||||
|
||||
@ApiModelProperty("支付状态")
|
||||
@Excel(name = "支付状态")
|
||||
private String payStatus;
|
||||
|
||||
@ApiModelProperty("预付金额")
|
||||
@Excel(name = "预付金额")
|
||||
private BigDecimal prepaidAmount;
|
||||
|
||||
@ApiModelProperty("实付金额;采购订单:本次付款")
|
||||
@Excel(name = "实付金额;采购订单:本次付款")
|
||||
private BigDecimal paidAmount;
|
||||
|
||||
@ApiModelProperty("欠款金额;采购订单:本次欠款")
|
||||
@Excel(name = "欠款金额;采购订单:本次欠款")
|
||||
private BigDecimal debtAmount;
|
||||
|
||||
@ApiModelProperty("付款账号")
|
||||
@Excel(name = "付款账号")
|
||||
private String paymentAccNo;
|
||||
|
||||
@ApiModelProperty("付款单号")
|
||||
@Excel(name = "付款单号")
|
||||
private String paymentOrderNo;
|
||||
|
||||
@ApiModelProperty("附件地址")
|
||||
@Excel(name = "附件地址")
|
||||
private String fileName;
|
||||
|
||||
@ApiModelProperty("附件地址")
|
||||
@Excel(name = "附件地址")
|
||||
private String fileUrl;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
@Excel(name = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("合计金额")
|
||||
private BigDecimal totalAmount;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
}
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
package com.mhd.oms.domain.settlement.service;
|
||||
|
||||
import com.mhd.common.core.utils.IgnoreNullUtil;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.domain.purchaseOrder.entity.PurchaseOrder;
|
||||
import com.mhd.oms.domain.salesOrder.entity.SalesOrder;
|
||||
import com.mhd.oms.domain.settlement.repository.facade.ISettlementService;
|
||||
import com.mhd.oms.domain.settlement.repository.po.SettlementPO;
|
||||
import com.mhd.oms.domain.settlement.repository.todo.SettlementDO;
|
||||
import com.mhd.oms.interfaces.dto.purchaseOrder.PurchaseOrderExcelDTO;
|
||||
import com.mhd.oms.interfaces.dto.salesOrder.SalesOrderExcelDTO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 结算信息
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-16
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class SettlementDomainService {
|
||||
|
||||
@Autowired
|
||||
private ISettlementService settlementService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询结算信息列表
|
||||
*/
|
||||
public List<SettlementPO> queryList(SettlementDO settlementDO) {
|
||||
return settlementService.queryList(settlementDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增结算信息
|
||||
*/
|
||||
public Boolean insert(SettlementDO settlementDO) {
|
||||
|
||||
return settlementService.insert(settlementDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改结算信息
|
||||
*/
|
||||
public Boolean update(SettlementDO settlementDO) {
|
||||
return settlementService.update(settlementDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除结算信息
|
||||
*/
|
||||
public Boolean delete(Long[] ids) {
|
||||
return settlementService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取结算信息详细信息
|
||||
*/
|
||||
public SettlementPO getInfo(Long id)
|
||||
{
|
||||
return settlementService.getInfo(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
public Boolean batchInsert(List<SettlementDO> settlementDOList) {
|
||||
return settlementService.batchInsert(settlementDOList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入销售订单 - 为传入的结算列表添加一条结算信息
|
||||
*
|
||||
* @param settlementDOList - 添加数据的列表
|
||||
* @param salesOrderExcelDTO -导入的数据
|
||||
* @param salesOrder - 导入数据中的销售订单信息
|
||||
*/
|
||||
public void listAddFromImportSalesOrder(List<SettlementDO> settlementDOList, SalesOrderExcelDTO salesOrderExcelDTO, SalesOrder salesOrder) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
SettlementDO settlementDo = new SettlementDO();
|
||||
|
||||
BeanUtils.copyProperties(salesOrderExcelDTO, settlementDo, IgnoreNullUtil.getNullPropertyNames(salesOrderExcelDTO));
|
||||
settlementDo.setOrderId(salesOrder.getId());
|
||||
settlementDo.setRemark(salesOrderExcelDTO.getSettlementRemark());
|
||||
settlementDo.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
settlementDo.setCreateBy(loginUser.getUserPo().getUserId());
|
||||
settlementDo.setCreateByName(loginUser.getUserPo().getUserName());
|
||||
settlementDo.setCreateTime(new Date());
|
||||
settlementDo.setTotalAmount(salesOrder.getTotalAmount());
|
||||
settlementDo.setDebtAmount(salesOrder.getTotalAmount());
|
||||
settlementDOList.add(settlementDo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入采购订单 - 为传入的结算列表添加一条结算信息
|
||||
*
|
||||
* @param settlementDOList - 添加数据的列表
|
||||
* @param purOrderExcelDTO -导入的数据
|
||||
* @param purOrder - 导入的采购订单信息
|
||||
*/
|
||||
public void listAddFromImportPurOrder(List<SettlementDO> settlementDOList, PurchaseOrderExcelDTO purOrderExcelDTO, PurchaseOrder purOrder) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
SettlementDO settlementDo = new SettlementDO();
|
||||
|
||||
BeanUtils.copyProperties(purOrderExcelDTO, settlementDo, IgnoreNullUtil.getNullPropertyNames(purOrderExcelDTO));
|
||||
settlementDo.setOrderId(purOrder.getId());
|
||||
settlementDo.setRemark(purOrderExcelDTO.getSettlementRemark());
|
||||
settlementDo.setTopOrganizationId(loginUser.getUserPo().getTopOrganizationId());
|
||||
settlementDo.setCreateBy(loginUser.getUserPo().getUserId());
|
||||
settlementDo.setCreateByName(loginUser.getUserPo().getUserName());
|
||||
settlementDo.setCreateTime(new Date());
|
||||
settlementDo.setTotalAmount(purOrder.getTotalAmount());
|
||||
settlementDo.setDebtAmount(purOrder.getTotalAmount());
|
||||
settlementDOList.add(settlementDo);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
package com.mhd.oms.domain.taskOrder.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
|
||||
/**
|
||||
* 作业任务对象 oms_task_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-24
|
||||
*/
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@TableName("oms_task_order")
|
||||
public class TaskOrder extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
private Long topOrganizationId;
|
||||
@ApiModelProperty("组织表id")
|
||||
private Long organizationId;
|
||||
@ApiModelProperty("组织名称")
|
||||
private Long organizationName;
|
||||
|
||||
@ApiModelProperty("供应链订单ID")
|
||||
private Long scmId;
|
||||
@ApiModelProperty("订单ID")
|
||||
private Long orderId;
|
||||
@ApiModelProperty("物料ID")
|
||||
private Long goodsId;
|
||||
|
||||
@ApiModelProperty("作业任务号")
|
||||
private String taskNo;
|
||||
@ApiModelProperty("任务状态:0-未下发、1-已下发、2-已完成、3-已拦截、4-已取消")
|
||||
private Integer taskStatus;
|
||||
|
||||
@ApiModelProperty("作业任务类型ID")
|
||||
private Integer taskTypeId;
|
||||
@ApiModelProperty("作业任务类型名称")
|
||||
private String taskTypeName;
|
||||
|
||||
@ApiModelProperty("仓库ID")
|
||||
private Long warehouseId;
|
||||
@ApiModelProperty("仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("计划数量")
|
||||
private BigDecimal planNum;
|
||||
|
||||
@ApiModelProperty("合并单号")
|
||||
private String mergeTaskNo;
|
||||
|
||||
@ApiModelProperty("合并状态(0未合并1已合并)")
|
||||
private Integer mergeState;
|
||||
|
||||
@ApiModelProperty("通知单号")
|
||||
private String noticeCode;
|
||||
|
||||
@ApiModelProperty("入库单号")
|
||||
private String enterWarehouseCode;
|
||||
|
||||
@ApiModelProperty("供应链订单来源:0-默认、1-采购订单、2-销售订单、3-运输订单")
|
||||
private Integer scmSource;
|
||||
|
||||
public TaskOrder(){
|
||||
|
||||
}
|
||||
|
||||
public TaskOrder(String taskNo){
|
||||
this.taskNo = taskNo;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+105
@@ -0,0 +1,105 @@
|
||||
package com.mhd.oms.domain.taskOrder.repository.facade;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.mhd.oms.domain.OrderInfoPO;
|
||||
import com.mhd.oms.domain.taskOrder.entity.TaskOrder;
|
||||
import com.mhd.oms.domain.taskOrder.repository.po.PoTaskDetailPO;
|
||||
import com.mhd.oms.domain.taskOrder.repository.po.TaskOrderPO;
|
||||
import com.mhd.oms.domain.taskOrder.repository.todo.TaskOrderDO;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 作业任务Service接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-24
|
||||
*/
|
||||
public interface ITaskOrderService extends IService<TaskOrder>
|
||||
{
|
||||
/**
|
||||
* 分页查询作业任务列表
|
||||
*/
|
||||
List<TaskOrderPO> queryList(TaskOrderDO taskOrderDO);
|
||||
|
||||
/**
|
||||
* 新增作业任务
|
||||
*/
|
||||
Boolean insert(TaskOrderDO taskOrderDO);
|
||||
|
||||
/**
|
||||
* 修改作业任务
|
||||
*/
|
||||
Boolean update(TaskOrderDO taskOrderDO);
|
||||
|
||||
/**
|
||||
* 批量删除作业任务
|
||||
*/
|
||||
Boolean delete(Long[] ids);
|
||||
|
||||
|
||||
/**
|
||||
* 查询作业任务
|
||||
*/
|
||||
TaskOrderPO getInfo(Long id);
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
* @param taskOrderDOList 批量新增列表
|
||||
* @return 新增结果
|
||||
*/
|
||||
Boolean batchInsert(List<TaskOrderDO> taskOrderDOList);
|
||||
|
||||
/**
|
||||
* 根据供应链订单ID获取作业任务中有效【未下发、已下发、已完成】物料数量
|
||||
* @param scmId - 供应链订单ID
|
||||
* @param goodsId - 物料ID
|
||||
* @return 有效物料数量
|
||||
*/
|
||||
BigDecimal queryEffectiveNumByScmId(Long scmId, Long goodsId);
|
||||
|
||||
Boolean batchUpdate(List<TaskOrderDO> taskOrderDOS);
|
||||
|
||||
List<PoTaskDetailPO> getPoTaskDetail(List<Long> ids);
|
||||
|
||||
Integer getQuantityDeliver(List<Long> ids);
|
||||
|
||||
TaskOrderPO getInfoByTaskNo(String taskNo);
|
||||
|
||||
|
||||
/**
|
||||
* 获取给定ID列表中可取消的作业任务
|
||||
* @param idList - 作业任务ID列表
|
||||
* @return - 可取消的作业任务
|
||||
*/
|
||||
List<TaskOrderPO> getAbleCancelledTaskList(List<Long> idList);
|
||||
|
||||
/**
|
||||
* 取消作业任务
|
||||
*
|
||||
* @param idList - 取消的作业任务ID
|
||||
*/
|
||||
void cancelTaskOrder(List<Long> idList);
|
||||
|
||||
/**
|
||||
* 根据订单ORDER_ID修改作业任务为拦截状态
|
||||
* @param orderId - 订单ID
|
||||
*/
|
||||
void interceptByOrderId(Long orderId);
|
||||
|
||||
List<TaskOrderPO> getInfos(List<Long> ids);
|
||||
|
||||
List<TaskOrderPO> getInfoByIds(List<Long> ids);
|
||||
|
||||
List<TaskOrderPO> getInfosByOrderId(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 根据orderId获取任务列表
|
||||
* @param idList - 【采购|销售|运输】订单ID列表
|
||||
* @param sourceType - 调用方来源类型:1-采购订单、2-销售订单
|
||||
*/
|
||||
List<TaskOrderPO> queryListByOrderId(List<Long> idList, Integer sourceType);
|
||||
|
||||
OrderInfoPO getOrderInfo(TaskOrderDO taskOrderDO);
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
package com.mhd.oms.domain.taskOrder.repository.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.mhd.oms.domain.taskOrder.entity.TaskOrder;
|
||||
import com.mhd.oms.domain.taskOrder.repository.po.PoTaskDetailPO;
|
||||
import com.mhd.oms.domain.taskOrder.repository.po.TaskOrderPO;
|
||||
import com.mhd.oms.domain.taskOrder.repository.todo.TaskOrderDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 作业任务Mapper接口
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-24
|
||||
*/
|
||||
public interface TaskOrderMapper extends BaseMapper<TaskOrder>
|
||||
{
|
||||
/**
|
||||
* 查询作业任务列表
|
||||
*/
|
||||
public List<TaskOrderPO> queryList(TaskOrderDO taskOrderDO);
|
||||
|
||||
/**
|
||||
* 根据供应链订单ID获取作业任务中有效【未下发、已下发、已完成】物料数量
|
||||
* @param scmId - 供应链订单ID
|
||||
* @param goodsId - 物料ID
|
||||
* @return 作业任务重有效物料数量
|
||||
*/
|
||||
BigDecimal queryEffectiveNumByScmId(@Param("scmId") Long scmId, @Param("goodsId") Long goodsId);
|
||||
|
||||
/**
|
||||
* 获取采购订单的任务详情信息
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
List<PoTaskDetailPO> getPoTaskDetail(@Param("ids") List<Long> ids);
|
||||
|
||||
/**
|
||||
* 取消作业任务
|
||||
*
|
||||
* @param idList - 取消的作业任务ID
|
||||
* @return - 可取消的作业任务
|
||||
*/
|
||||
List<TaskOrderPO> getAbleCancelledTaskList(@Param("idList") List<Long> idList);
|
||||
|
||||
List<TaskOrderPO> getInfoByIds(@Param("ids") List<Long> ids);
|
||||
|
||||
List<TaskOrderPO> queryPurListByOrderId(@Param("orderIdList") List<Long> orderIdList);
|
||||
|
||||
List<TaskOrderPO> querySalesListByOrderId(@Param("orderIdList") List<Long> orderIdList);
|
||||
|
||||
}
|
||||
+277
@@ -0,0 +1,277 @@
|
||||
package com.mhd.oms.domain.taskOrder.repository.persistence;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.OrderSequence;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.oms.constant.OrderConstant;
|
||||
import com.mhd.oms.domain.OrderInfoPO;
|
||||
import com.mhd.oms.domain.orderType.entity.OrderType;
|
||||
import com.mhd.oms.domain.orderType.repository.mapper.OrderTypeMapper;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.mapper.PurchaseOrderMapper;
|
||||
import com.mhd.oms.domain.salesOrder.repository.mapper.SalesOrderMapper;
|
||||
import com.mhd.oms.domain.taskOrder.entity.TaskOrder;
|
||||
import com.mhd.oms.domain.taskOrder.repository.facade.ITaskOrderService;
|
||||
import com.mhd.oms.domain.taskOrder.repository.mapper.TaskOrderMapper;
|
||||
import com.mhd.oms.domain.taskOrder.repository.po.PoTaskDetailPO;
|
||||
import com.mhd.oms.domain.taskOrder.repository.po.TaskOrderPO;
|
||||
import com.mhd.oms.domain.taskOrder.repository.todo.TaskOrderDO;
|
||||
import com.mhd.system.api.model.LoginUser;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 作业任务Service业务层处理
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-24
|
||||
*/
|
||||
@Service
|
||||
public class TaskOrderImpl extends ServiceImpl<TaskOrderMapper, TaskOrder> implements ITaskOrderService{
|
||||
@Resource
|
||||
private TaskOrderMapper taskOrderMapper;
|
||||
|
||||
@Resource
|
||||
private PurchaseOrderMapper purchaseOrderMapper;
|
||||
|
||||
|
||||
@Resource
|
||||
private SalesOrderMapper salesOrderMapper;
|
||||
|
||||
@Resource
|
||||
private OrderTypeMapper orderTypeMapper;
|
||||
|
||||
/**
|
||||
* 查询作业任务列表
|
||||
*/
|
||||
@Override
|
||||
public List<TaskOrderPO> queryList(TaskOrderDO taskOrderDO)
|
||||
{
|
||||
return taskOrderMapper.queryList(taskOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增作业任务
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(TaskOrderDO taskOrderDO) {
|
||||
TaskOrder taskOrder = new TaskOrder();
|
||||
BeanUtils.copyProperties(taskOrderDO,taskOrder);
|
||||
return this.save(taskOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改作业任务
|
||||
*/
|
||||
@Override
|
||||
public Boolean update(TaskOrderDO taskOrderDO) {
|
||||
TaskOrder taskOrder = new TaskOrder();
|
||||
BeanUtils.copyProperties(taskOrderDO,taskOrder);
|
||||
return this.updateById(taskOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除作业任务
|
||||
*/
|
||||
@Override
|
||||
public Boolean delete(Long[] ids ) {
|
||||
|
||||
//根据ID集合查询所有的作业任务信息
|
||||
List<TaskOrder> taskOrders = this.listByIds(Arrays.asList(ids));
|
||||
//作业任务只有已拦截、已取消的作业任务才可以删除作业任务
|
||||
List<TaskOrder> taskOrderList = taskOrders.stream().filter(taskOrder -> taskOrder.getTaskStatus() != 3 && taskOrder.getTaskStatus() != 4)
|
||||
.collect(Collectors.toList());
|
||||
if (!taskOrderList.isEmpty()) {
|
||||
throw new ServiceException("已拦截/已取消的任务状态,方可进行删除操作");
|
||||
}
|
||||
|
||||
for (TaskOrder taskOrder : taskOrders) {
|
||||
taskOrder.setDelFlag(2);
|
||||
}
|
||||
return this.updateBatchById(taskOrders);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改作业任务
|
||||
*/
|
||||
@Override
|
||||
public TaskOrderPO getInfo(Long id) {
|
||||
TaskOrder taskOrder = this.getOne(new LambdaQueryWrapper<TaskOrder>()
|
||||
.eq(TaskOrder::getId, id).eq(TaskOrder::getDelFlag, 1));
|
||||
TaskOrderPO taskOrderPO = new TaskOrderPO();
|
||||
BeanUtils.copyProperties(taskOrder,taskOrderPO);
|
||||
return taskOrderPO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean batchInsert(List<TaskOrderDO> taskOrderDOList) {
|
||||
List<TaskOrder> taskOrderList = taskOrderDOList.stream().map(taskOrderDO -> {
|
||||
TaskOrder taskOrder = new TaskOrder(OrderSequence.getOrderCode(OrderConstant.TASK_NO_PREFIX));
|
||||
BeanUtils.copyProperties(taskOrderDO, taskOrder);
|
||||
return taskOrder;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
return this.saveBatch(taskOrderList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据供应链订单ID获取作业任务中有效【未下发、已下发、已完成】物料数量
|
||||
* @param scmId - 供应链订单ID
|
||||
* @param goodsId - 物料ID
|
||||
* @return 作业任务重有效物料数量
|
||||
*/
|
||||
@Override
|
||||
public BigDecimal queryEffectiveNumByScmId(Long scmId, Long goodsId) {
|
||||
return taskOrderMapper.queryEffectiveNumByScmId(scmId, goodsId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean batchUpdate(List<TaskOrderDO> taskOrderDOS) {
|
||||
List<TaskOrder> taskOrders = taskOrderDOS.stream().map(taskOrderDO -> {
|
||||
TaskOrder taskOrder = new TaskOrder();
|
||||
BeanUtils.copyProperties(taskOrderDO, taskOrder);
|
||||
return taskOrder;
|
||||
}).collect(Collectors.toList());
|
||||
return this.updateBatchById(taskOrders);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PoTaskDetailPO> getPoTaskDetail(List<Long> ids) {
|
||||
return taskOrderMapper.getPoTaskDetail(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getQuantityDeliver(List<Long> ids) {
|
||||
return taskOrderMapper.selectCount(new LambdaQueryWrapper<TaskOrder>()
|
||||
.eq(TaskOrder::getDelFlag, 1)
|
||||
.in(TaskOrder::getId,ids)
|
||||
.ne(TaskOrder::getTaskStatus,0).or().eq(TaskOrder::getMergeState,1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskOrderPO getInfoByTaskNo(String taskNo) {
|
||||
TaskOrderPO taskOrderPO = new TaskOrderPO();
|
||||
TaskOrder taskOrder = taskOrderMapper.selectOne(new LambdaQueryWrapper<TaskOrder>()
|
||||
.eq(TaskOrder::getTaskNo, taskNo).eq(TaskOrder::getDelFlag,1));
|
||||
if (ObjectUtil.isNull(taskOrder)) {
|
||||
taskOrder = new TaskOrder();
|
||||
}
|
||||
BeanUtils.copyProperties(taskOrder,taskOrderPO);
|
||||
return taskOrderPO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskOrderPO> getAbleCancelledTaskList(List<Long> idList) {
|
||||
return taskOrderMapper.getAbleCancelledTaskList(idList);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void cancelTaskOrder(List<Long> idList) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
taskOrderMapper.update(new TaskOrder(), new LambdaUpdateWrapper<TaskOrder>()
|
||||
.in(TaskOrder::getId, idList)
|
||||
.eq(TaskOrder::getDelFlag, 1)
|
||||
.set(TaskOrder::getTaskStatus, OrderConstant.TASK_STATUS_4)
|
||||
.set(TaskOrder::getUpdateBy, loginUser.getUserid())
|
||||
.set(TaskOrder::getUpdateByName, loginUser.getUsername())
|
||||
.set(TaskOrder::getUpdateTime, new Date()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskOrderPO> getInfos(List<Long> ids) {
|
||||
List<TaskOrder> taskOrders = this.listByIds(ids);
|
||||
|
||||
return taskOrders.stream().map(taskOrder -> {
|
||||
TaskOrderPO taskOrderPO = new TaskOrderPO();
|
||||
BeanUtils.copyProperties(taskOrder, taskOrderPO);
|
||||
return taskOrderPO;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskOrderPO> getInfoByIds(List<Long> ids) {
|
||||
return taskOrderMapper.getInfoByIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TaskOrderPO> getInfosByOrderId(List<Long> ids) {
|
||||
List<TaskOrder> taskOrders = this.taskOrderMapper.selectList(new LambdaQueryWrapper<TaskOrder>()
|
||||
.in(TaskOrder::getOrderId, ids).eq(TaskOrder::getDelFlag, 1));
|
||||
|
||||
return taskOrders.stream().map(taskOrder -> {
|
||||
TaskOrderPO taskOrderPO = new TaskOrderPO();
|
||||
BeanUtils.copyProperties(taskOrder, taskOrderPO);
|
||||
return taskOrderPO;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void interceptByOrderId(Long orderId) {
|
||||
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||
taskOrderMapper.update(new TaskOrder(), new LambdaUpdateWrapper<TaskOrder>()
|
||||
.set(TaskOrder::getTaskStatus, OrderConstant.TASK_STATUS_3)
|
||||
.set(TaskOrder::getUpdateBy, loginUser.getUserid())
|
||||
.set(TaskOrder::getUpdateByName, loginUser.getUsername())
|
||||
.set(TaskOrder::getUpdateTime, new Date())
|
||||
.eq(TaskOrder::getOrderId, orderId)
|
||||
.eq(TaskOrder::getDelFlag, 1)
|
||||
.ne(TaskOrder::getTaskStatus, OrderConstant.TASK_STATUS_4));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<TaskOrderPO> queryListByOrderId(List<Long> idList, Integer sourceType)
|
||||
{
|
||||
List<TaskOrderPO> taskOrderPOList = new ArrayList<>();
|
||||
if(OrderConstant.SCM_SOURCE_1.equals(sourceType)){
|
||||
taskOrderPOList = taskOrderMapper.queryPurListByOrderId(idList);
|
||||
}
|
||||
else if(OrderConstant.SCM_SOURCE_2.equals(sourceType)){
|
||||
taskOrderPOList = taskOrderMapper.querySalesListByOrderId(idList);
|
||||
|
||||
}
|
||||
else if(OrderConstant.SCM_SOURCE_3.equals(sourceType)){
|
||||
|
||||
}
|
||||
else{
|
||||
throw new ServiceException("内部错误");
|
||||
}
|
||||
return taskOrderPOList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderInfoPO getOrderInfo(TaskOrderDO taskOrderDO) {
|
||||
OrderInfoPO orderInfoPO = new OrderInfoPO();
|
||||
switch (taskOrderDO.getScmSource()) {
|
||||
case 1://采购订单
|
||||
orderInfoPO = purchaseOrderMapper.selectOrderInfoByOrderId(taskOrderDO.getOrderId());
|
||||
break;
|
||||
case 2://销售订单
|
||||
orderInfoPO = salesOrderMapper.selectOrderInfoByOrderId(taskOrderDO.getOrderId());
|
||||
break;
|
||||
case 3://运输订单
|
||||
break;
|
||||
}
|
||||
//查询订单类型
|
||||
OrderType orderType = orderTypeMapper.selectById(orderInfoPO.getOrderTypeId());
|
||||
orderInfoPO.setOrderTypeCode(orderType.getOrderTypeId());
|
||||
return orderInfoPO;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.mhd.oms.domain.taskOrder.repository.po;
|
||||
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
@Data
|
||||
public class PoTaskDetailPO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("作业任务号")
|
||||
private String taskNo;
|
||||
|
||||
@ApiModelProperty("下发仓库ID")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("下发仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("货主ID")
|
||||
private Long shipperId;
|
||||
|
||||
@ApiModelProperty("货主")
|
||||
private String shipper;
|
||||
|
||||
@ApiModelProperty("任务数量")
|
||||
private Integer taskNum;
|
||||
|
||||
@ApiModelProperty("作业任务号")
|
||||
private String mergeTaskNo;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
package com.mhd.oms.domain.taskOrder.repository.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 作业任务对象 oms_task_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-24
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "作业任务对象", description = "作业任务响应对象")
|
||||
public class TaskOrderPO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
@TableId(type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
private Long topOrganizationId;
|
||||
@ApiModelProperty("组织表id")
|
||||
private Long organizationId;
|
||||
@ApiModelProperty("组织名称")
|
||||
private Long organizationName;
|
||||
|
||||
@ApiModelProperty("供应链订单ID")
|
||||
private Long scmId;
|
||||
@ApiModelProperty("物料ID")
|
||||
private Long goodsId;
|
||||
@ApiModelProperty("订单ID")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("作业任务号")
|
||||
private String taskNo;
|
||||
@ApiModelProperty("任务状态:0-未下发、1-已下发、2-已完成、3-已拦截、4-已取消")
|
||||
private Integer taskStatus;
|
||||
@ApiModelProperty("任务状态")
|
||||
private String taskStatusStr;
|
||||
|
||||
@ApiModelProperty("作业任务类型ID")
|
||||
private Integer taskTypeId;
|
||||
@ApiModelProperty("作业任务类型名称")
|
||||
private String taskTypeName;
|
||||
|
||||
@ApiModelProperty("仓库ID")
|
||||
private Long warehouseId;
|
||||
@ApiModelProperty("仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("计划数量")
|
||||
private BigDecimal planNum;
|
||||
|
||||
@ApiModelProperty("合并单号")
|
||||
private String mergeTaskNo;
|
||||
|
||||
@ApiModelProperty("合并状态:0-未合并、1-已合并")
|
||||
private Integer mergeState;
|
||||
@ApiModelProperty("合并状态")
|
||||
private String mergeStateStr;
|
||||
|
||||
@ApiModelProperty("通知单号")
|
||||
private String noticeCode;
|
||||
@ApiModelProperty("入库单号")
|
||||
private String enterWarehouseCode;
|
||||
|
||||
@ApiModelProperty("采购订单号")
|
||||
private String orderNo;
|
||||
@ApiModelProperty("客户订单号")
|
||||
private String customerOrders;
|
||||
|
||||
@ApiModelProperty("货主ID")
|
||||
private String shipperId;
|
||||
@ApiModelProperty("货主名称")
|
||||
private String shipper;
|
||||
|
||||
@ApiModelProperty("供应商ID")
|
||||
private String supplierId;
|
||||
@ApiModelProperty("供应商名称")
|
||||
private String supplier;
|
||||
|
||||
@ApiModelProperty("下发订单类型ID")
|
||||
private String orderTypeId;
|
||||
@ApiModelProperty("下发订单类型名称")
|
||||
private String orderType;
|
||||
|
||||
@ApiModelProperty("下发系统")
|
||||
private String deliverySystem;
|
||||
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
@ApiModelProperty("预计到货时间")
|
||||
private Date estimatedReceivingTime;
|
||||
|
||||
|
||||
@ApiModelProperty("订单任务来源:0-默认、1-采购订单、2-销售订单、3-运输订单")
|
||||
private Integer scmSource;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.mhd.oms.domain.taskOrder.repository.po;
|
||||
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import com.mhd.oms.domain.purchaseOrder.repository.po.PurchaseOrderPO;
|
||||
import com.mhd.oms.domain.salesOrder.repository.po.SalesOrderPO;
|
||||
import com.mhd.oms.domain.scmOrder.repository.po.ScmOrderPO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 作业任务上层数据集
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-24
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "作业任务上层数据集", description = "作业任务上层数据集")
|
||||
public class TaskUpperDataPO extends BaseVOEntity {
|
||||
|
||||
@ApiModelProperty("上层采购订单")
|
||||
private PurchaseOrderPO purOrderPo;
|
||||
|
||||
@ApiModelProperty("上层销售订单")
|
||||
private SalesOrderPO salesOrderPo;
|
||||
|
||||
@ApiModelProperty("上层供应链订单")
|
||||
private ScmOrderPO scmOrder;
|
||||
|
||||
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
package com.mhd.oms.domain.taskOrder.repository.todo;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import com.mhd.oms.interfaces.dto.taskOrder.CreateTaskOrderGoodsInfoDTO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 作业任务对象 oms_task_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-24
|
||||
*/
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class CreateTaskOrderDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("供应链订单ID")
|
||||
private Long scmId;
|
||||
|
||||
@ApiModelProperty("仓库ID")
|
||||
private Long warehouseId;
|
||||
|
||||
@ApiModelProperty("商品")
|
||||
private List<CreateTaskOrderGoodsInfoDTO> goodsInfoList;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("生成作业方式:0-根据所填数量生成、1-全部生成")
|
||||
private Integer createType;
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package com.mhd.oms.domain.taskOrder.repository.todo;
|
||||
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 作业任务对象 oms_task_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-24
|
||||
*/
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class CreateTaskOrderGoodsInfoDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("计划任务数量")
|
||||
private BigDecimal planNum;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
package com.mhd.oms.domain.taskOrder.repository.todo;
|
||||
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.common.core.web.domain.BaseVOEntity;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 作业任务对象 oms_task_order
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-24
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class TaskOrderDO extends BaseVOEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("编号")
|
||||
private Long id;
|
||||
private List<Long> idList;
|
||||
|
||||
@ApiModelProperty(name = "组织ID集合")
|
||||
private List<Long> organizationIdList;
|
||||
|
||||
@ApiModelProperty(name = "权限菜单ID")
|
||||
private Long permissionMenuId;
|
||||
|
||||
@ApiModelProperty("最高组织id")
|
||||
@Excel(name = "最高组织id")
|
||||
private Long topOrganizationId;
|
||||
|
||||
@ApiModelProperty("供应链订单ID")
|
||||
private Long scmId;
|
||||
private List<Long> scmIdList;
|
||||
@ApiModelProperty("物料ID")
|
||||
private Long goodsId;
|
||||
@ApiModelProperty("订单ID")
|
||||
private Long orderId;
|
||||
private List<Long> orderIdList;
|
||||
|
||||
@ApiModelProperty("任务状态:0-未下发、1-已下发、2-已完成、3-已拦截、4-已取消")
|
||||
private Integer taskStatus;
|
||||
private List<Integer> taskStatusList;
|
||||
|
||||
@ApiModelProperty("作业任务类型ID")
|
||||
private Integer taskTypeId;
|
||||
@ApiModelProperty("作业任务类型名称")
|
||||
private String taskTypeName;
|
||||
|
||||
@ApiModelProperty("仓库ID")
|
||||
private Long warehouseId;
|
||||
@ApiModelProperty("仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
@ApiModelProperty("备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty("计划数量")
|
||||
private BigDecimal planNum;
|
||||
|
||||
@ApiModelProperty("合并单号")
|
||||
private String mergeTaskNo;
|
||||
|
||||
@ApiModelProperty("合并状态(0未合并1已合并)")
|
||||
private Integer mergeState;
|
||||
|
||||
@ApiModelProperty("通知单号")
|
||||
private String noticeCode;
|
||||
|
||||
@ApiModelProperty("入库单号")
|
||||
private String enterWarehouseCode;
|
||||
|
||||
@ApiModelProperty("供应链订单来源:1-采购订单、2-销售订单、3-运输订单")
|
||||
private Integer scmSource;
|
||||
|
||||
|
||||
public TaskOrderDO(){
|
||||
|
||||
}
|
||||
|
||||
public TaskOrderDO(List<Long> idList){
|
||||
this.idList = idList;
|
||||
}
|
||||
|
||||
}
|
||||
+164
@@ -0,0 +1,164 @@
|
||||
package com.mhd.oms.domain.taskOrder.service;
|
||||
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.oms.domain.OrderInfoPO;
|
||||
import com.mhd.oms.domain.taskOrder.repository.facade.ITaskOrderService;
|
||||
import com.mhd.oms.domain.taskOrder.repository.po.PoTaskDetailPO;
|
||||
import com.mhd.oms.domain.taskOrder.repository.po.TaskOrderPO;
|
||||
import com.mhd.oms.domain.taskOrder.repository.todo.TaskOrderDO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 作业任务
|
||||
*
|
||||
* @author gen
|
||||
* @date 2024-05-24
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class TaskOrderDomainService {
|
||||
|
||||
@Autowired
|
||||
private ITaskOrderService taskOrderService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询作业任务列表
|
||||
*/
|
||||
public List<TaskOrderPO> queryList(TaskOrderDO taskOrderDO) {
|
||||
return taskOrderService.queryList(taskOrderDO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增作业任务
|
||||
*/
|
||||
public Boolean insert(TaskOrderDO taskOrderDO) {
|
||||
|
||||
return taskOrderService.insert(taskOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改作业任务
|
||||
*/
|
||||
public Boolean update(TaskOrderDO taskOrderDO) {
|
||||
return taskOrderService.update(taskOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除作业任务
|
||||
*/
|
||||
public Boolean delete(Long[] ids) {
|
||||
return taskOrderService.delete(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取作业任务详细信息
|
||||
*/
|
||||
public TaskOrderPO getInfo(Long id)
|
||||
{
|
||||
return taskOrderService.getInfo(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量新增
|
||||
*/
|
||||
public Boolean batchInsert(List<TaskOrderDO> taskOrderDOList) {
|
||||
return taskOrderService.batchInsert(taskOrderDOList);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据供应链订单ID获取作业任务中有效【未下发、已下发、已完成】物料数量
|
||||
* @param scmId - 供应链订单ID
|
||||
* @param goodsId - 物料ID
|
||||
* @return 作业任务重有效物料数量
|
||||
*/
|
||||
public BigDecimal queryEffectiveNumByScmId(Long scmId, Long goodsId) {
|
||||
return taskOrderService.queryEffectiveNumByScmId(scmId, goodsId);
|
||||
}
|
||||
|
||||
public Boolean batchUpdate(List<TaskOrderDO> taskOrderDOS) {
|
||||
return taskOrderService.batchUpdate(taskOrderDOS);
|
||||
}
|
||||
|
||||
public List<PoTaskDetailPO> getPoTaskDetail(List<Long> ids) {
|
||||
return taskOrderService.getPoTaskDetail(ids);
|
||||
}
|
||||
|
||||
public Integer getQuantityDeliver(List<Long> ids) {
|
||||
return taskOrderService.getQuantityDeliver(ids);
|
||||
}
|
||||
|
||||
public TaskOrderPO getInfoByTaskNo(String taskNo) {
|
||||
return taskOrderService.getInfoByTaskNo(taskNo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消作业任务
|
||||
*
|
||||
* @param idList - 取消的作业任务ID
|
||||
* @return - 可取消的作业任务
|
||||
*/
|
||||
public List<TaskOrderPO> cancelTaskOrder(List<Long> idList) {
|
||||
List<TaskOrderPO> ableCancelledScmIdList = taskOrderService.getAbleCancelledTaskList(idList);
|
||||
if(ableCancelledScmIdList.size() != idList.size()){
|
||||
throw new ServiceException("请检查是否存在不可取消任务!");
|
||||
}
|
||||
taskOrderService.cancelTaskOrder(idList);
|
||||
return ableCancelledScmIdList;
|
||||
}
|
||||
|
||||
public List<TaskOrderPO> getInfos(List<Long> ids) {
|
||||
return taskOrderService.getInfos(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ids集合查询所有的任务信息包括已合并的任务信息
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
public List<TaskOrderPO> getInfoByIds(List<Long> ids) {
|
||||
return taskOrderService.getInfoByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单ID查询所有的任务信息
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
public List<TaskOrderPO> getInfosByOrderId(List<Long> ids) {
|
||||
return taskOrderService.getInfosByOrderId(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据orderId获取任务列表并分组
|
||||
* @param idList - 订单ID列表
|
||||
* @param sourceType - 调用方来源类型:1-采购订单、2-销售订单
|
||||
* @return - k-订单ID、v-对应任务列表
|
||||
*/
|
||||
public Map<Long, List<TaskOrderPO>> getMapByOrderIdList(List<Long> idList, Integer sourceType) {
|
||||
List<TaskOrderPO> taskOrderList = taskOrderService.queryListByOrderId(idList, sourceType);
|
||||
|
||||
return taskOrderList.stream().collect(Collectors.groupingBy(TaskOrderPO::getOrderId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单ORDER_ID修改作业任务为拦截状态
|
||||
* @param orderId - 订单ID
|
||||
*/
|
||||
public void interceptByOrderId(Long orderId) {
|
||||
taskOrderService.interceptByOrderId(orderId);
|
||||
}
|
||||
|
||||
public OrderInfoPO getOrderInfo(TaskOrderDO taskOrderDO) {
|
||||
return taskOrderService.getOrderInfo(taskOrderDO);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user