Commit ba6f6a1c authored by honghy's avatar honghy

需求120 PDA-集运签收-单个签收

parent 3b1877e8
...@@ -85,4 +85,9 @@ public interface ConsService extends IService<ConsDO> { ...@@ -85,4 +85,9 @@ public interface ConsService extends IService<ConsDO> {
* @return * @return
*/ */
void createPad(ConsCreateReqVO createReqVO); void createPad(ConsCreateReqVO createReqVO);
/**
* 签收PDA
*/
void signedPda(ConsUpdateReqVO updateReqVO);
} }
...@@ -32,6 +32,8 @@ import cn.iocoder.yudao.module.product.dal.dataobject.product.ProductDO; ...@@ -32,6 +32,8 @@ import cn.iocoder.yudao.module.product.dal.dataobject.product.ProductDO;
import cn.iocoder.yudao.module.product.dal.mysql.product.ProductMapper; import cn.iocoder.yudao.module.product.dal.mysql.product.ProductMapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.C;
import org.redisson.api.RAtomicLong; import org.redisson.api.RAtomicLong;
import org.redisson.api.RLock; import org.redisson.api.RLock;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
...@@ -77,6 +79,7 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme ...@@ -77,6 +79,7 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme
@Resource @Resource
private CustomerContactsService customerContactsService; private CustomerContactsService customerContactsService;
@Override @Override
@Transactional @Transactional
public Long createCons(ConsCreateReqVO createReqVO) { public Long createCons(ConsCreateReqVO createReqVO) {
...@@ -322,11 +325,58 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme ...@@ -322,11 +325,58 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme
} }
} }
} }
/**
* 签收PDA
*/
@Transactional
@Override
public void signedPda(ConsUpdateReqVO updateReqVO) {
if (StringUtils.isBlank(updateReqVO.getExpressNo())) {
throw new ServiceException(30004, "包裹快递号不能为空");
}
if (updateReqVO.getExpressId() == null) {
throw new ServiceException(30004, "请选择快递公司");
}
Long count = consMapper.selectCount(new LambdaQueryWrapperX<ConsDO>().eq(ConsDO::getExpressNo, updateReqVO.getExpressNo())
.ne(ConsDO::getId, updateReqVO.getId()));
if (count > 0) {
throw new ServiceException(30004, "包裹快递号已存在,请检查");
}
//更新图片地址,仅签收情况
if (updateReqVO.getMediaUrl() != null && updateReqVO.getSigner() != null) {
ConsMediaDO consMedia = consMediaService.selectOne(new LambdaQueryWrapperX<ConsMediaDO>()
.eq(ConsMediaDO::getBizId, updateReqVO.getId())
.eq(ConsMediaDO::getConsId, updateReqVO.getId())
.eq(ConsMediaDO::getMediaBusinessType, 3));
if (consMedia != null) {
consMedia.setMediaUrl(updateReqVO.getMediaUrl());
consMediaService.updateById(consMedia);
} else {
ConsMediaCreateReqVO consMediaCreateReqVO = new ConsMediaCreateReqVO();
consMediaCreateReqVO.setConsId(updateReqVO.getId());
consMediaCreateReqVO.setMediaUrl(updateReqVO.getMediaUrl());
consMediaCreateReqVO.setMediaBusinessType(3);
consMediaCreateReqVO.setBizId(updateReqVO.getId());
consMediaCreateReqVO.setTableName("ecw_cons");
consMediaCreateReqVO.setColumnName("files");
consMediaCreateReqVO.setOriginalFileName("签收图片");
consMediaService.createConsMedia(consMediaCreateReqVO);
}
}
// 更新
ConsDO updateObj = ConsConvert.INSTANCE.convert(updateReqVO);
consMapper.updateById(updateObj);
}
@Override @Override
public OrderBackVO getTempOrderByConsIds(Collection<Long> ids) { public OrderBackVO getTempOrderByConsIds(Collection<Long> ids) {
List<ConsDO> consList = consMapper.selectList(new LambdaQueryWrapperX<ConsDO>().in(ConsDO::getId, ids)); List<ConsDO> consList = consMapper.selectList(new LambdaQueryWrapperX<ConsDO>().in(ConsDO::getId, ids));
if (consList==null||consList.isEmpty()){ if (consList == null || consList.isEmpty()) {
throw exception(30004,"包裹不存在"); throw exception(30004, "包裹不存在");
} }
OrderBackVO orderBackVO = new OrderBackVO(); OrderBackVO orderBackVO = new OrderBackVO();
orderBackVO.setDeliveryDate(new Date()); orderBackVO.setDeliveryDate(new Date());
...@@ -345,7 +395,7 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme ...@@ -345,7 +395,7 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme
Map<Long, List<ConsItemDO>> consItemsMap = consItemDOS.stream().collect(Collectors.groupingBy(ConsItemDO::getConsId)); Map<Long, List<ConsItemDO>> consItemsMap = consItemDOS.stream().collect(Collectors.groupingBy(ConsItemDO::getConsId));
for (int j = 0; j < consList.size(); j++) { for (int j = 0; j < consList.size(); j++) {
ConsDO consDO = consList.get(j); ConsDO consDO = consList.get(j);
if (j==0){ if (j == 0) {
List<CustomerContactsDO> customerContacts = customerContactsService.getCustomerContactsListByCustomerId(consDO.getCustomerId()); List<CustomerContactsDO> customerContacts = customerContactsService.getCustomerContactsListByCustomerId(consDO.getCustomerId());
Optional<CustomerContactsDO> firstDefault = customerContacts.stream() Optional<CustomerContactsDO> firstDefault = customerContacts.stream()
.filter(customerContactsDO -> customerContactsDO.getIsDefault() == 1) .filter(customerContactsDO -> customerContactsDO.getIsDefault() == 1)
...@@ -372,18 +422,18 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme ...@@ -372,18 +422,18 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme
orderConsignorBackVO.setCountryCode(contact.getAreaCode()); orderConsignorBackVO.setCountryCode(contact.getAreaCode());
orderBackVO.setConsigneeVO(orderConsigneeBackVO); orderBackVO.setConsigneeVO(orderConsigneeBackVO);
orderBackVO.setConsignorVO(orderConsignorBackVO); orderBackVO.setConsignorVO(orderConsignorBackVO);
}else { } else {
throw exception(30004,"包裹联系人为空"); throw exception(30004, "包裹联系人为空");
} }
} }
if (consDO.getCustomerId()!=null&& orderBackVO.getCustomerId()==null){ if (consDO.getCustomerId() != null && orderBackVO.getCustomerId() == null) {
orderBackVO.setCustomerId(consDO.getCustomerId()); orderBackVO.setCustomerId(consDO.getCustomerId());
orderBackVO.setMarks(consDO.getCustomerNumber()); orderBackVO.setMarks(consDO.getCustomerNumber());
} }
if(consDO.getTransportId()!=null&& orderBackVO.getTransportId()==null){ if (consDO.getTransportId() != null && orderBackVO.getTransportId() == null) {
orderBackVO.setTransportId(consDO.getTransportId()); orderBackVO.setTransportId(consDO.getTransportId());
} }
if(consDO.getWarehouseLineId()!=null&& logisticsInfo.getLineId()==null){ if (consDO.getWarehouseLineId() != null && logisticsInfo.getLineId() == null) {
logisticsInfo.setLineId(consDO.getWarehouseLineId()); logisticsInfo.setLineId(consDO.getWarehouseLineId());
logisticsInfo.setDestCityId(consDO.getConsigneeCityId()); logisticsInfo.setDestCityId(consDO.getConsigneeCityId());
logisticsInfo.setDestCountryId(consDO.getConsigneeCountryId()); logisticsInfo.setDestCountryId(consDO.getConsigneeCountryId());
...@@ -396,7 +446,7 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme ...@@ -396,7 +446,7 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme
for (int i = 0; i < consItemDOList.size(); i++) { for (int i = 0; i < consItemDOList.size(); i++) {
ConsItemDO consItemDO = consItemDOList.get(i); ConsItemDO consItemDO = consItemDOList.get(i);
OrderItemBackVO orderItemBackVO = new OrderItemBackVO(); OrderItemBackVO orderItemBackVO = new OrderItemBackVO();
if (i==0){ if (i == 0) {
orderItemBackVO.setWorth(consDO.getWorth()); orderItemBackVO.setWorth(consDO.getWorth());
} }
orderItemBackVO.setProdId(consItemDO.getProdId()); orderItemBackVO.setProdId(consItemDO.getProdId());
...@@ -419,7 +469,8 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme ...@@ -419,7 +469,8 @@ public class ConsServiceImpl extends AbstractService<ConsMapper, ConsDO> impleme
} }
orderBackVO.setOrderItemVOList(orderItemVOList); orderBackVO.setOrderItemVOList(orderItemVOList);
}; }
;
orderBackVO.setIsCargoControl(false); orderBackVO.setIsCargoControl(false);
return orderBackVO; return orderBackVO;
} }
......
...@@ -82,7 +82,7 @@ public class ConsBaseVO { ...@@ -82,7 +82,7 @@ public class ConsBaseVO {
private Boolean signed; private Boolean signed;
@ApiModelProperty(value = "签收时间") @ApiModelProperty(value = "签收时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Date signedTime; private Date signedTime;
@ApiModelProperty(value = "签收备注") @ApiModelProperty(value = "签收备注")
......
...@@ -127,7 +127,7 @@ public class ConsController { ...@@ -127,7 +127,7 @@ public class ConsController {
consBackVO.setPhoneNew(customerContacts.getPhoneNew()); consBackVO.setPhoneNew(customerContacts.getPhoneNew());
consBackVO.setCustomerName(customer.getName()); consBackVO.setCustomerName(customer.getName());
//获取签收图片 //获取签收图片
if(cons.getSigned()){ if (cons.getSigned()) {
ConsMediaDO consMedia = consentMediaService.getOne(new LambdaQueryWrapperX<ConsMediaDO>().eq(ConsMediaDO::getConsId, cons.getId()) ConsMediaDO consMedia = consentMediaService.getOne(new LambdaQueryWrapperX<ConsMediaDO>().eq(ConsMediaDO::getConsId, cons.getId())
.eq(ConsMediaDO::getBizId, cons.getId())); .eq(ConsMediaDO::getBizId, cons.getId()));
consBackVO.setMediaUrl(consMedia.getMediaUrl()); consBackVO.setMediaUrl(consMedia.getMediaUrl());
...@@ -165,7 +165,7 @@ public class ConsController { ...@@ -165,7 +165,7 @@ public class ConsController {
@PreAuthorize("@ss.hasPermission('ecw:cons:export')") @PreAuthorize("@ss.hasPermission('ecw:cons:export')")
@OperateLog(type = EXPORT) @OperateLog(type = EXPORT)
public void exportConsExcel(@Valid ConsQueryVO query, public void exportConsExcel(@Valid ConsQueryVO query,
HttpServletResponse response) throws IOException { HttpServletResponse response) throws IOException {
List<ConsDO> list = consService.getConsList(query); List<ConsDO> list = consService.getConsList(query);
// 导出 Excel // 导出 Excel
List<ConsBackVO> datas = ConsConvert.INSTANCE.convertList(list); List<ConsBackVO> datas = ConsConvert.INSTANCE.convertList(list);
...@@ -193,8 +193,47 @@ public class ConsController { ...@@ -193,8 +193,47 @@ public class ConsController {
@GetMapping("/getTempOrderByConsIds") @GetMapping("/getTempOrderByConsIds")
@ApiOperation("创建转运临时order对象") @ApiOperation("创建转运临时order对象")
public CommonResult<OrderBackVO> getTempOrderByConsIds(@RequestParam("ids") Collection<Long> ids){ public CommonResult<OrderBackVO> getTempOrderByConsIds(@RequestParam("ids") Collection<Long> ids) {
OrderBackVO tempOrderByConsIds = consService.getTempOrderByConsIds(ids); OrderBackVO tempOrderByConsIds = consService.getTempOrderByConsIds(ids);
return CommonResult.success(tempOrderByConsIds); return CommonResult.success(tempOrderByConsIds);
} }
@GetMapping("/getPad")
@ApiOperation("获得集运包裹主")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
public CommonResult<ConsBackVO> getPad(@RequestParam("id") Long id) {
ConsDO cons = consService.getCons(id);
CustomerDO customer = customerService.selectOne("id", cons.getCustomerId());
CustomerContactsDO customerContacts = customerContactsService.getDefaultContacts(cons.getCustomerId());
List<ConsItemBackVO> consItemBackVOS = consItemService.getConsItemBackVOList(new ConsItemQueryVO().setConsId(id));
ConsBackVO consBackVO = ConsConvert.INSTANCE.convert(cons);
consBackVO.setConsItemVOList(consItemBackVOS);
consBackVO.setAreaCode(customerContacts.getAreaCode());
consBackVO.setPhoneNew(customerContacts.getPhoneNew());
consBackVO.setCustomerName(customer.getName());
//获取签收图片
if (cons.getSigned()) {
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());
}
// 物流信息查询
LogisticsInfoDto initialLogisticsInfoDto =
warehouseLineMapper.getStartInfoAndDestInfoByLineId(cons.getWarehouseLineId());
if (Objects.isNull(initialLogisticsInfoDto)) {
throw exception(NOT_FIND_LOGISTICS_INFO);
}
//初始物流信息
consBackVO.setInitialLogisticsInfoDto(initialLogisticsInfoDto);
return success(consBackVO);
}
@PutMapping("/signedPda")
@ApiOperation("签收PDA")
public CommonResult<Boolean> signedPda(@Valid @RequestBody ConsUpdateReqVO updateReqVO) {
consService.signedPda(updateReqVO);
return success(true);
}
} }
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