Commit 42e12e17 authored by Smile's avatar Smile

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

parents 3759ebf0 1f9d283b
package cn.iocoder.yudao.module.depository.vo.warehouse;
import cn.iocoder.yudao.module.ecw.controller.admin.region.vo.RegionBackVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* 仓库 Base VO,提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
*/
@Data
public class WarehouseBackVO extends WarehouseBaseVO {
@ApiModelProperty(value = "仓库id")
private Long id;
@ApiModelProperty(value = "国家信息")
private RegionBackVO country;
@ApiModelProperty(value = "城市信息")
private RegionBackVO city;
}
......@@ -11,10 +11,19 @@ import javax.validation.constraints.*;
@Data
public class ExpressBaseVO {
@ApiModelProperty(value = "快递公司id")
private Long id;
@ApiModelProperty(value = "快递公司名称", required = true)
@NotNull(message = "快递公司名称不能为空")
private String companyName;
@ApiModelProperty(value = "快递公司英文名称")
private String companyNameEn;
@ApiModelProperty(value = "快递公司法文名称")
private String companyNameFr;
@ApiModelProperty(value = "账户名称")
private String accountName;
......
package cn.iocoder.yudao.module.ecw.controller.admin.region.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* 区域设置 Base VO,提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
*/
@Data
public class RegionBackVO extends RegionBaseVO {
@ApiModelProperty(value = "地区id")
private Long id;
@ApiModelProperty(value = "国家中文名称")
private String countryTitleZh;
@ApiModelProperty(value = "国家英文名称")
private String countryTitleEn;
@ApiModelProperty(value = "国家法文名称")
private String countryTitleFr;
@ApiModelProperty(value = "城市中文名称")
private String cityTitleZh;
@ApiModelProperty(value = "城市英文名称")
private String cityTitleEn;
@ApiModelProperty(value = "城市法文名称")
private String cityTitleFr;
}
......@@ -27,6 +27,16 @@ public class ExpressDO extends BaseDO {
* 快递公司名称
*/
private String companyName;
/**
* 快递公司名称英文名称
*/
private String companyNameEn;
/**
* 快递公司名称法文名称
*/
private String companyNameFr;
/**
* 账户名称
*/
......
......@@ -8,6 +8,7 @@ import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.module.order.dal.dataobject.cons.ConsDO;
import cn.iocoder.yudao.module.order.vo.cons.ConsBackVO;
import cn.iocoder.yudao.module.order.vo.cons.ConsQueryVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemBackVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -106,5 +107,6 @@ public interface ConsMapper extends AbstractMapper<ConsDO> {
List<ConsBackVO> myConsPageList(@Param("start") int start, @Param("size") int size, @Param("query") ConsQueryVO query);
Long myConsCount(@Param("query") ConsQueryVO query);
ConsBackVO selectInfoById(Long id);
}
......@@ -10,6 +10,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.order.dal.dataobject.cons.ConsDO;
import cn.iocoder.yudao.module.order.vo.cons.*;
import cn.iocoder.yudao.module.order.vo.consApproval.ConsRetiredWarehouseCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemBackVO;
import cn.iocoder.yudao.module.order.vo.order.OrderBackVO;
/**
......@@ -19,6 +20,8 @@ import cn.iocoder.yudao.module.order.vo.order.OrderBackVO;
*/
public interface ConsService extends IService<ConsDO> {
/**
* 创建集运包裹主
* @param createReqVO 创建信息
......@@ -54,6 +57,13 @@ public interface ConsService extends IService<ConsDO> {
*/
ConsDO getCons(Long id);
/**
* 获取包裹详情信息
* @param id
* @return
*/
ConsBackVO getConsInfo(Long id);
/**
* 获得集运包裹主列表
* @param ids 编号
......
......@@ -129,9 +129,9 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme
if (createReqVO.getTransportId() == null && createReqVO.getConsigneeCityId() == null) {
throw exception(30004, "请选择运输方式或目的城市");
}
if (createReqVO.getConsItemVOList().isEmpty()) {
throw exception(30004, "包裹项不能为空");
}
// if (createReqVO.getConsItemVOList().isEmpty()) {
// throw exception(30004, "包裹项不能为空");
// }
if (consMapper.selectOne("express_no", createReqVO.getExpressNo()) != null) {
throw exception(30004, "包裹快递号已存在");
}
......@@ -320,6 +320,11 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme
return consMapper.selectById(id);
}
@Override
public ConsBackVO getConsInfo(Long id){
return consMapper.selectInfoById(id);
}
@Override
public List<ConsDO> getConsList(Collection<Long> ids) {
return consMapper.selectBatchIds(ids);
......
package cn.iocoder.yudao.module.order.vo.cons;
import cn.iocoder.yudao.module.depository.dto.LogisticsInfoDto;
import cn.iocoder.yudao.module.depository.vo.warehouse.WarehouseBackVO;
import cn.iocoder.yudao.module.depository.vo.warehouse.WarehouseBaseVO;
import cn.iocoder.yudao.module.ecw.controller.admin.express.vo.ExpressBaseVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemBackVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemBaseVO;
import cn.iocoder.yudao.module.order.vo.consLocation.ConsLocationBackVO;
import cn.iocoder.yudao.module.order.vo.consLocation.ConsLocationUpdateReqVO;
import cn.iocoder.yudao.module.order.vo.consTrackingRecord.ConsTrackingRecordBackVO;
import cn.iocoder.yudao.module.order.vo.consTrackingRecord.ConsTrackingRecordBaseVO;
import cn.iocoder.yudao.module.order.vo.orderItem.OrderItemBackVO;
import lombok.*;
import java.util.*;
......@@ -55,7 +62,6 @@ public class ConsBackVO {
@ApiModelProperty(value = "订单编号")
private String orderNo;
@ExcelProperty("订单状态")
@ApiModelProperty(value = "订单状态")
private Integer orderStatus;
......@@ -151,6 +157,14 @@ public class ConsBackVO {
@ApiModelProperty(value = "签收人")
private Long signer;
@ExcelProperty("创建人")
@ApiModelProperty(value = "创建人")
private Long creator;
@ApiModelProperty(value = "创建人名称")
private String creatorName;
@ExcelProperty("")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
@ApiModelProperty(value = "")
......@@ -241,4 +255,28 @@ public class ConsBackVO {
@ApiModelProperty("集运仓位")
private List<ConsLocationUpdateReqVO> consLocationBackList;
@ApiModelProperty("快递公司")
private ExpressBaseVO express;
/**
* 包裹明细
*/
private List<ConsItemBaseVO> consItem;
/**
* 包裹动态
*/
private List<ConsTrackingRecordBackVO> trackingRecord;
/**
* 始发仓库信息
*/
private WarehouseBackVO startWarehouse;
/**
* 目的仓库信息
*/
private WarehouseBackVO endWarehouse;
}
package cn.iocoder.yudao.module.order.vo.consItem;
import cn.iocoder.yudao.module.product.vo.product.ProductBaseVO;
import lombok.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
......@@ -12,6 +13,9 @@ import java.math.BigDecimal;
@Data
public class ConsItemBaseVO {
@ApiModelProperty(value = "包裹明细id")
private Long id;
@ApiModelProperty(value = "", required = true)
private Long consId;
......@@ -75,4 +79,7 @@ public class ConsItemBaseVO {
* 订单项状态(数据字典item_status)
*/
private Integer itemStatus;
@ApiModelProperty(value = "库位ID")
private ProductBaseVO product;
}
package cn.iocoder.yudao.module.order.vo.consTrackingRecord;
import cn.iocoder.yudao.module.system.api.vo.DictDataBaseVO;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
......@@ -49,4 +50,10 @@ public class ConsTrackingRecordBackVO {
@ApiModelProperty(value = "", required = true)
private Date createTime;
/**
* 包裹状态
*/
@ApiModelProperty(value = "包裹状态VO")
private DictDataBaseVO consStatus;
}
......@@ -37,6 +37,146 @@
order by cons.create_time desc
limit #{start}, #{size}
</select>
<resultMap id="consInfoResultMap" type="cn.iocoder.yudao.module.order.vo.cons.ConsBackVO">
<id property="id" column="id"/>
<result property="consNum" column="cons_num"/>
<result property="transportId" column="transport_id"/>
<result property="orderId" column="order_id"/>
<result property="orderNo" column="order_no"/>
<result property="needInspect" column="need_inspect"/>
<result property="status" column="status"/>
<result property="inspectStatus" column="inspect_status"/>
<result property="worth" column="worth"/>
<result property="createTime" column="create_time"/>
<result property="creator" column="creator"/>
<result property="creatorName" column="creator_name"/>
<result property="expressNo" column="express_no"/>
<result property="remarks" column="remarks"/>
<!-- 获取快递公司 -->
<association property="express" javaType="cn.iocoder.yudao.module.ecw.controller.admin.express.vo.ExpressBaseVO" >
<id property="id" column="express_id" />
<result property="companyName" column="company_name" />
<result property="companyNameEn" column="company_name_en" />
<result property="companyNameFr" column="company_name_fr" />
</association>
<!-- 获取始发仓库 -->
<association property="startWarehouse" javaType="cn.iocoder.yudao.module.depository.vo.warehouse.WarehouseBackVO">
<id property="id" column="ware_id" />
<result property="titleZh" column="start_warehouse_title_zh" />
<result property="titleEn" column="start_warehouse_title_en" />
<result property="titleFr" column="start_warehouse_title_fr" />
</association>
<!-- 获取目的仓库 -->
<association property="endWarehouse" javaType="cn.iocoder.yudao.module.depository.vo.warehouse.WarehouseBackVO">
<id property="id" column="consignee_warehouse_id" />
<result property="titleZh" column="end_warehouse_title_zh" />
<result property="titleEn" column="end_warehouse_title_en" />
<result property="titleFr" column="end_warehouse_title_fr" />
<!-- 获取目的国家信息 -->
<association property="country" javaType="cn.iocoder.yudao.module.ecw.controller.admin.region.vo.RegionBackVO">
<id property="id" column="country_id" />
<result property="countryTitleZh" column="country_title_zh" />
<result property="countryTitleEn" column="country_title_en" />
<result property="countryTitleFr" column="country_title_fr" />
</association>
<!-- 获取目的城市信息 -->
<association property="city" javaType="cn.iocoder.yudao.module.ecw.controller.admin.region.vo.RegionBackVO">
<id property="id" column="city_id" />
<result property="cityTitleZh" column="city_title_zh" />
<result property="cityTitleEn" column="city_title_en" />
<result property="cityTitleFr" column="city_title_fr" />
</association>
</association>
<!-- 获取包裹明细 -->
<collection property="consItem" ofType="cn.iocoder.yudao.module.order.vo.consItem.ConsItemBaseVO" >
<id property="id" column="cons_item_id" />
<result property="prodId" column="prod_id"/>
<result property="quantity" column="quantity"/>
<result property="inspectionNum" column="inspection_num" />
<result property="inspectionUnit" column="inspection_unit" />
<result property="inspectionQuantity" column="inspection_quantity" />
<result property="inspectionVolume" column="inspection_volume" />
<result property="inspectionWeight" column="inspection_weight" />
<!-- 获取商品名称 -->
<association property="product" javaType="cn.iocoder.yudao.module.product.vo.product.ProductBaseVO">
<id property="id" column="product_id" />
<result property="titleZh" column="title_zh"/>
<result property="titleEn" column="title_en"/>
<result property="titleFr" column="title_fr"/>
</association>
</collection>
<!-- 包裹动态 -->
<collection property="trackingRecord" ofType="cn.iocoder.yudao.module.order.vo.consTrackingRecord.ConsTrackingRecordBackVO">
<id property="id" column="tracking_record_id" />
<id property="status" column="tracking_record_status" />
<id property="trackingTime" column="tracking_time" />
</collection>
</resultMap>
<select id="selectInfoById" resultMap="consInfoResultMap" >
SELECT c.id,
c.cons_num ,
c.transport_id ,
c.order_id,
if(c.order_id > 0 , (select order_no from ecw_order where deleted = 0 and order_id = c.order_id ) , '') as order_no,
c.express_no,
if(c.op_source = 1 , (select mu.nickname from member_user as mu where mu.id = c.creator) , (select su.nickname from system_user as su where su.id = c.creator)) as creator_name,
c.need_inspect ,
c.`status`,
c.inspect_status ,
c.worth,
c.create_time,
c.creator,
c.remarks,
c.ware_id,
c.consignee_warehouse_id,
ci.id as cons_item_id,
ci.prod_id,
ci.quantity,
ci.inspection_num,
ci.inspection_unit,
ci.inspection_quantity,
ci.inspection_volume,
ci.inspection_weight,
p.id as product_id,
p.title_zh,
p.title_en,
p.title_fr,
e.id as express_id,
e.company_name,
e.company_name_en,
e.company_name_fr,
ctr.id as tracking_record_id,
ctr.status as tracking_record_status,
ctr.tracking_time,
end_warehouse.guojia AS country_id,
end_warehouse.shi AS city_id,
start_warehouse.title_zh as start_warehouse_title_zh,
start_warehouse.title_en as start_warehouse_title_en,
start_warehouse.title_fr as start_warehouse_title_fr,
end_warehouse.title_zh as end_warehouse_title_zh,
end_warehouse.title_en as end_warehouse_title_en,
end_warehouse.title_fr as end_warehouse_title_fr,
country.title_zh as country_title_zh,
country.title_en as country_title_en,
country.title_fr as country_title_fr,
city.title_fr as city_title_zh,
city.title_fr as city_title_en,
city.title_fr as city_title_fr
FROM ecw_cons as c
LEFT JOIN ecw_cons_item as ci ON ci.cons_id = c.id AND ci.deleted = 0
LEFT JOIN ecw_product as p ON p.id = ci.prod_id AND p.deleted = 0
LEFT JOIN ecw_express as e ON e.id = c.express_id AND e.deleted = 0
LEFT JOIN ecw_cons_tracking_record as ctr ON ctr.cons_id = c.id AND ctr.deleted = 0
LEFT JOIN ecw_warehouse as start_warehouse ON start_warehouse.id = c.ware_id AND start_warehouse.deleted = 0
LEFT JOIN ecw_warehouse as end_warehouse ON end_warehouse.id = c.consignee_warehouse_id AND end_warehouse.deleted = 0
LEFT JOIN ecw_region as country ON country.id = end_warehouse.guojia AND country.deleted = 0
LEFT JOIN ecw_region as city ON city.id = end_warehouse.shi AND city.deleted = 0
WHERE c.id = #{id} AND c.deleted = 0
</select>
<sql id="myConsQuery">
<if test="query.numberKey != null and query.numberKey != '' ">
AND concat(IFNULL(o.`order_no`,''), IFNULL(cons.`cons_num`,''), IFNULL(cons.`express_no`,'')) like
......@@ -147,4 +287,4 @@
</if>
</sql>
</mapper>
\ No newline at end of file
</mapper>
......@@ -13,6 +13,7 @@ import cn.iocoder.yudao.module.member.service.user.MemberUserService;
import cn.iocoder.yudao.module.order.convert.cons.ConsConvert;
import cn.iocoder.yudao.module.order.dal.dataobject.cons.ConsDO;
import cn.iocoder.yudao.module.order.service.cons.ConsService;
import cn.iocoder.yudao.module.order.service.cons.ConsServiceImpl;
import cn.iocoder.yudao.module.order.service.consItem.ConsItemService;
import cn.iocoder.yudao.module.order.vo.cons.ConsBackVO;
import cn.iocoder.yudao.module.order.vo.cons.ConsBaseVO;
......@@ -76,18 +77,10 @@ public class AppConsController {
@ApiOperation("获取集运包裹")
@ApiImplicitParam(name = "id", value = "包裹id", required = true, example = "1024", dataTypeClass = Long.class)
public CommonResult<ConsBackVO> getCons(@RequestParam("id") Long id){
// 获取包裹信息
ConsDO consDO = consService.getCons(id);
// 获取包裹商品信息
ConsItemQueryVO consItemQueryVO = new ConsItemQueryVO();
consItemQueryVO.setConsId(consDO.getId());
// 获取当前的语言序号
consItemQueryVO.setLang(I18nMessage.getLang());
List<ConsItemBackVO> consItemBackVOList = consItemService.getConsItemBackVOList(consItemQueryVO);
// 设置返回数据
ConsBackVO consBackVO = ConsConvert.INSTANCE.convert(consDO);
consBackVO.setConsItemVOList(consItemBackVOList);
return success(consBackVO);
// 获取包裹详情信息
ConsBackVO consInfo = consService.getConsInfo(id);
return success(consInfo);
}
......
......@@ -13,6 +13,9 @@ import java.math.BigDecimal;
@Data
public class ProductBaseVO {
@ApiModelProperty(value = "商品id")
private Long id;
@ApiModelProperty(value = "商品类型id", required = true)
@NotNull(message = "商品类型id不能为空")
private Long typeId;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment