Commit 261518fa authored by honghy's avatar honghy

需求124 PDA-集运包裹验货

parent 74cf138f
......@@ -46,7 +46,7 @@ public interface ConsInspectionDetailsConvert {
* @param list
* @return
*/
List<ConsInspectionDetailsBackVO> convertList(List<ConsInspectionDetailsDO> list);
List<ConsInspectionDetailsUpdateReqVO> convertList(List<ConsInspectionDetailsDO> list);
/***
* 实体分页转返回分页
......
......@@ -29,6 +29,9 @@ public interface ConsLocationMapper extends AbstractMapper<ConsLocationDO> {
.eqIfPresent(ConsLocationDO::getConsId, vo.getConsId())
.eqIfPresent(ConsLocationDO::getWareId, vo.getWareId())
.eqIfPresent(ConsLocationDO::getAreaId, vo.getAreaId())
.eqIfPresent(ConsLocationDO::getConsItemId, vo.getConsItemId())
.eqIfPresent(ConsLocationDO::getInspectionId, vo.getInspectionId())
.eqIfPresent(ConsLocationDO::getAreaId, vo.getAreaId())
.eqIfPresent(ConsLocationDO::getLocationId, vo.getLocationId())
.betweenIfPresent(ConsLocationDO::getCreateTime, vo.getBeginCreateTime(), vo.getEndCreateTime())
.orderByDesc(ConsLocationDO::getId));
......@@ -44,6 +47,8 @@ public interface ConsLocationMapper extends AbstractMapper<ConsLocationDO> {
.eqIfPresent(ConsLocationDO::getConsId, vo.getConsId())
.eqIfPresent(ConsLocationDO::getWareId, vo.getWareId())
.eqIfPresent(ConsLocationDO::getAreaId, vo.getAreaId())
.eqIfPresent(ConsLocationDO::getConsItemId, vo.getConsItemId())
.eqIfPresent(ConsLocationDO::getInspectionId, vo.getInspectionId())
.eqIfPresent(ConsLocationDO::getLocationId, vo.getLocationId())
.betweenIfPresent(ConsLocationDO::getCreateTime, vo.getBeginCreateTime(), vo.getEndCreateTime())
.orderByDesc(ConsLocationDO::getId));
......@@ -56,6 +61,13 @@ public interface ConsLocationMapper extends AbstractMapper<ConsLocationDO> {
"left join ecw_warehouse_area ware on ecl.ware_id = ware.id " +
"left join ecw_warehouse_area area on ecl.area_id = area.id " +
"left join ecw_warehouse_area_position posi on ecl.location_id = posi.id " +
"where ecl.cons_id = #{consId} and ecl.deleted=0")
"where ecl.cons_id = #{consId} and ecl.deleted=0 and ecl.cons_item_id is null and ecl.inspection_id is null")
List<ConsLocationUpdateReqVO> getConsLocationListByConsId(@Param("consId") Long consId);
@Select("select ecl.*, ware.name as warehouse_name, area.name as area_name, posi.code as location_name from ecw_cons_location ecl " +
"left join ecw_warehouse_area ware on ecl.ware_id = ware.id " +
"left join ecw_warehouse_area area on ecl.area_id = area.id " +
"left join ecw_warehouse_area_position posi on ecl.location_id = posi.id " +
"where ecl.deleted=0 and ecl.cons_item_id = #{consItemId} and ecl.inspection_id = #{inspectionId}")
List<ConsLocationUpdateReqVO> getConsLocationListByConsItemId(@Param("consItemId") Long consItemId,@Param("inspectionId") Long inspectionId);
}
......@@ -55,11 +55,13 @@ public class ConsInspectionDetailsServiceImpl extends AbstractService<ConsInspec
consItemDO.setFeeType(createReqVO.getFeeType());
consItemDO.setMaterial(createReqVO.getMaterial());
consItemDO.setInspectionUnit(createReqVO.getInspectionUnit());
consItemDO.setInspectionProdAttrIds(createReqVO.getInspectionProdAttrIds());
consItemDO.setInspectionUsageIds(createReqVO.getInspectionUsageIds());
consItemMapper.updateById(consItemDO);
List<ConsInspectionDetailsCreateReqVO> consWarehouseInItemDoList = createReqVO.getConsWarehouseInItemDoList();
for (ConsInspectionDetailsCreateReqVO consInspectionDetailsCreateReqVO : consWarehouseInItemDoList) {
List<InspectionDetails> inspectionDetailsList = consInspectionDetailsCreateReqVO.getInspectionDetailsList();
if (!inspectionDetailsList.isEmpty()) {
if (inspectionDetailsList != null && !inspectionDetailsList.isEmpty()) {
consInspectionDetailsCreateReqVO.setInspectionDetails(JSON.toJSONString(inspectionDetailsList));
}
consInspectionDetailsCreateReqVO.setConsId(createReqVO.getConsId());
......
......@@ -78,4 +78,9 @@ public interface ConsLocationService extends IService<ConsLocationDO> {
* 根据集运id获取储位
*/
List<ConsLocationUpdateReqVO> getConsLocationListByConsId(Long consId);
/**
* 根据集运id获取储位
*/
List<ConsLocationUpdateReqVO> getConsLocationListByConsItemId(Long consItemId, Long inspectionId);
}
......@@ -74,4 +74,9 @@ public class ConsLocationServiceImpl extends AbstractService<ConsLocationMapper,
public List<ConsLocationUpdateReqVO> getConsLocationListByConsId(Long consId) {
return consLocationMapper.getConsLocationListByConsId(consId);
}
@Override
public List<ConsLocationUpdateReqVO> getConsLocationListByConsItemId(Long consItemId, Long inspectionId) {
return consLocationMapper.getConsLocationListByConsItemId(consItemId, inspectionId);
}
}
package cn.iocoder.yudao.module.order.vo.consItem;
import cn.iocoder.yudao.module.order.dal.dataobject.consInspectionDetails.ConsInspectionDetailsDO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsBackVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsUpdateReqVO;
import cn.iocoder.yudao.module.order.vo.consTrackingRecord.ConsTrackingRecordBackVO;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import io.swagger.annotations.*;
import com.alibaba.excel.annotation.ExcelProperty;
import org.springframework.format.annotation.DateTimeFormat;
......@@ -12,9 +16,10 @@ import org.springframework.format.annotation.DateTimeFormat;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/**
* 集运包裹明细 Response VO
* @author 系统管理员
*/
* 集运包裹明细 Response VO
*
* @author 系统管理员
*/
@Data
@ApiModel("管理后台 - 集运包裹明细 Response VO")
public class ConsItemBackVO {
......@@ -119,4 +124,9 @@ public class ConsItemBackVO {
* 订单项状态(数据字典item_status)
*/
private Integer itemStatus;
/**
* 验货明细
*/
List<ConsInspectionDetailsUpdateReqVO> consInspectionDetails;
}
......@@ -32,4 +32,9 @@ public class ConsLocationQueryVO {
@ApiModelProperty(value = "结束创建时间")
private Date endCreateTime;
@ApiModelProperty(value = "集运明细id")
private Long consItemId;
@ApiModelProperty(value = "验货明细id")
private Long inspectionId;
}
......@@ -15,18 +15,26 @@ import cn.iocoder.yudao.module.customer.service.customerContacts.CustomerContact
import cn.iocoder.yudao.module.depository.dal.mysql.warehouse.WarehouseLineMapper;
import cn.iocoder.yudao.module.depository.dto.LogisticsInfoDto;
import cn.iocoder.yudao.module.order.convert.cons.ConsConvert;
import cn.iocoder.yudao.module.order.convert.consInspectionDetails.ConsInspectionDetailsConvert;
import cn.iocoder.yudao.module.order.dal.dataobject.cons.ConsDO;
import cn.iocoder.yudao.module.order.dal.dataobject.consInspectionDetails.ConsInspectionDetailsDO;
import cn.iocoder.yudao.module.order.dal.dataobject.consLocation.ConsLocationDO;
import cn.iocoder.yudao.module.order.dal.dataobject.consMedia.ConsMediaDO;
import cn.iocoder.yudao.module.order.service.cons.ConsService;
import cn.iocoder.yudao.module.order.service.consInspectionDetails.ConsInspectionDetailsService;
import cn.iocoder.yudao.module.order.service.consItem.ConsItemService;
import cn.iocoder.yudao.module.order.service.consLocation.ConsLocationService;
import cn.iocoder.yudao.module.order.service.consMedia.ConsMediaService;
import cn.iocoder.yudao.module.order.vo.cons.*;
import cn.iocoder.yudao.module.order.vo.consApproval.ConsRetiredWarehouseCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsBackVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsUpdateReqVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.InspectionDetails;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemBackVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemQueryVO;
import cn.iocoder.yudao.module.order.vo.consLocation.ConsLocationUpdateReqVO;
import cn.iocoder.yudao.module.order.vo.order.OrderBackVO;
import com.alibaba.fastjson.JSON;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
......@@ -42,6 +50,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
......@@ -187,7 +196,7 @@ public class ConsController {
}
@GetMapping("/getPad")
@ApiOperation("获得集运包裹")
@ApiOperation("获得集运包裹")
public CommonResult<ConsBackVO> getPad(Long id, String expressNo) {
if (id == null && StringUtils.isBlank(expressNo)) {
throw new ServiceException(500, "参数错误");
......
package cn.iocoder.yudao.module.order.controller.admin.cons;
import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.vo.PageVO;
import cn.iocoder.yudao.module.customer.dal.dataobject.customer.CustomerDO;
import cn.iocoder.yudao.module.customer.dal.dataobject.customerContacts.CustomerContactsDO;
import cn.iocoder.yudao.module.customer.service.customer.CustomerService;
import cn.iocoder.yudao.module.customer.service.customerContacts.CustomerContactsService;
import cn.iocoder.yudao.module.depository.dal.mysql.warehouse.WarehouseLineMapper;
import cn.iocoder.yudao.module.order.convert.cons.ConsConvert;
import cn.iocoder.yudao.module.order.convert.consInspectionDetails.ConsInspectionDetailsConvert;
import cn.iocoder.yudao.module.order.dal.dataobject.cons.ConsDO;
import cn.iocoder.yudao.module.order.dal.dataobject.consInspectionDetails.ConsInspectionDetailsDO;
import cn.iocoder.yudao.module.order.dal.dataobject.consMedia.ConsMediaDO;
import cn.iocoder.yudao.module.order.service.cons.ConsService;
import cn.iocoder.yudao.module.order.service.consInspectionDetails.ConsInspectionDetailsService;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsBackVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsCreateReqVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsQueryVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.ConsInspectionDetailsUpdateReqVO;
import cn.iocoder.yudao.module.order.service.consItem.ConsItemService;
import cn.iocoder.yudao.module.order.service.consLocation.ConsLocationService;
import cn.iocoder.yudao.module.order.service.consMedia.ConsMediaService;
import cn.iocoder.yudao.module.order.vo.cons.ConsBackVO;
import cn.iocoder.yudao.module.order.vo.consInspectionDetails.*;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemBackVO;
import cn.iocoder.yudao.module.order.vo.consItem.ConsItemQueryVO;
import cn.iocoder.yudao.module.order.vo.consLocation.ConsLocationUpdateReqVO;
import com.alibaba.fastjson.JSON;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
......@@ -32,6 +49,25 @@ public class ConsInspectionDetailsController {
@Resource
private ConsInspectionDetailsService consInspectionDetailsService;
@Resource
private ConsService consService;
@Resource
private CustomerContactsService customerContactsService;
@Resource
private ConsMediaService consentMediaService;
@Resource
private CustomerService customerService;
@Resource
private ConsItemService consItemService;
@Resource
private ConsLocationService consLocationService;
@PostMapping("/create")
@ApiOperation("创建集运验货明细")
public CommonResult<Long> createConsInspectionDetails(@RequestBody ConsInspectionDetailsCreateReqVO createReqVO) {
......@@ -53,27 +89,50 @@ public class ConsInspectionDetailsController {
return success(true);
}
@GetMapping("/get")
@ApiOperation("获得集运验货明细")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
public CommonResult<ConsInspectionDetailsBackVO> getConsInspectionDetails(@RequestParam("id") Long id) {
ConsInspectionDetailsDO consInspectionDetails = consInspectionDetailsService.getConsInspectionDetails(id);
return success(ConsInspectionDetailsConvert.INSTANCE.convert(consInspectionDetails));
}
@GetMapping("/getInspectionPad")
@ApiOperation("获得集运验货包裹")
public CommonResult<ConsBackVO> getInspectionPad(Long id, String expressNo) {
if (id == null && StringUtils.isBlank(expressNo)) {
throw new ServiceException(500, "参数错误");
}
ConsDO cons = consService.selectOne(new LambdaQueryWrapperX<ConsDO>()
.eq(id != null, ConsDO::getId, id)
.eq(StringUtils.isNotBlank(expressNo), ConsDO::getExpressNo, expressNo));
if (cons == null) {
return success(null);
}
CustomerDO customer = customerService.selectOne("id", cons.getCustomerId());
CustomerContactsDO customerContacts = customerContactsService.getDefaultContacts(cons.getCustomerId());
List<ConsItemBackVO> consItemBacks = consItemService.getConsItemBackVOList(new ConsItemQueryVO().setConsId(cons.getId()));
ConsBackVO consBackVO = ConsConvert.INSTANCE.convert(cons);
for (ConsItemBackVO consItemBack : consItemBacks) {
List<ConsInspectionDetailsDO> consInspectionDetails = consInspectionDetailsService.selectList(new LambdaQueryWrapperX<ConsInspectionDetailsDO>()
.eq(ConsInspectionDetailsDO::getConsItemId, consItemBack.getId()));
List<ConsInspectionDetailsUpdateReqVO> convertedList = ConsInspectionDetailsConvert.INSTANCE.convertList(consInspectionDetails);
for (ConsInspectionDetailsUpdateReqVO consInspectionDetailsBackVO : convertedList) {
consInspectionDetailsBackVO.setInspectionDetailsList(JSON.parseArray(consInspectionDetailsBackVO.getInspectionDetails(), InspectionDetails.class));
consInspectionDetailsBackVO.setConsLocationBackList(consLocationService.getConsLocationListByConsItemId(consInspectionDetailsBackVO.getConsItemId(), consInspectionDetailsBackVO.getId()));
}
consItemBack.setConsInspectionDetails(convertedList);
}
consBackVO.setConsItemVOList(consItemBacks);
if (customerContacts != null) {
consBackVO.setAreaCode(customerContacts.getAreaCode());
consBackVO.setPhoneNew(customerContacts.getPhoneNew());
}
if (customer != null) {
consBackVO.setCustomerName(customer.getName());
}
@GetMapping("/list")
@ApiOperation("获得集运验货明细列表")
@ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
public CommonResult<List<ConsInspectionDetailsBackVO>> getConsInspectionDetailsList(@RequestParam("ids") Collection<Long> ids) {
List<ConsInspectionDetailsDO> list = consInspectionDetailsService.getConsInspectionDetailsList(ids);
return success(ConsInspectionDetailsConvert.INSTANCE.convertList(list));
}
List<ConsLocationUpdateReqVO> consLocationBackList = consLocationService.getConsLocationListByConsId(cons.getId());
consBackVO.setConsLocationBackList(consLocationBackList == null ? new ArrayList<>() : consLocationBackList);
@GetMapping("/page")
@ApiOperation("获得集运验货明细分页")
public CommonResult<PageResult<ConsInspectionDetailsBackVO>> getConsInspectionDetailsPage(@Valid ConsInspectionDetailsQueryVO query, PageVO page) {
PageResult<ConsInspectionDetailsDO> pageResult = consInspectionDetailsService.getConsInspectionDetailsPage(query, page);
return success(ConsInspectionDetailsConvert.INSTANCE.convertPage(pageResult));
//获取签收图片
ConsMediaDO consMedia = consentMediaService.getOne(new LambdaQueryWrapperX<ConsMediaDO>().eq(ConsMediaDO::getConsId, cons.getId())
.eq(ConsMediaDO::getBizId, cons.getId())
.eq(ConsMediaDO::getMediaBusinessType, 3));
consBackVO.setMediaUrl(consMedia == null ? "" : consMedia.getMediaUrl());
return success(consBackVO);
}
}
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