|
@@ -31,7 +31,6 @@ import org.springblade.client.entity.CorpsDesc;
|
|
|
import org.springblade.client.entity.StorageDesc;
|
|
import org.springblade.client.entity.StorageDesc;
|
|
|
import org.springblade.client.entity.StorageType;
|
|
import org.springblade.client.entity.StorageType;
|
|
|
import org.springblade.client.feign.ICorpsDescClient;
|
|
import org.springblade.client.feign.ICorpsDescClient;
|
|
|
-import org.springblade.client.feign.IRedisClient;
|
|
|
|
|
import org.springblade.client.feign.IStorageClient;
|
|
import org.springblade.client.feign.IStorageClient;
|
|
|
import org.springblade.common.annotation.RepeatSubmit;
|
|
import org.springblade.common.annotation.RepeatSubmit;
|
|
|
import org.springblade.core.boot.ctrl.BladeController;
|
|
import org.springblade.core.boot.ctrl.BladeController;
|
|
@@ -54,6 +53,7 @@ import org.springblade.deliver.goods.service.IDeliveryFilesService;
|
|
|
import org.springblade.deliver.goods.service.IDeliveryItemsService;
|
|
import org.springblade.deliver.goods.service.IDeliveryItemsService;
|
|
|
import org.springblade.deliver.goods.service.IDeliveryService;
|
|
import org.springblade.deliver.goods.service.IDeliveryService;
|
|
|
import org.springblade.deliver.goods.vo.DeliveryVO;
|
|
import org.springblade.deliver.goods.vo.DeliveryVO;
|
|
|
|
|
+import org.springblade.stock.entity.StockGoods;
|
|
|
import org.springblade.system.user.entity.User;
|
|
import org.springblade.system.user.entity.User;
|
|
|
import org.springblade.system.user.feign.IUserClient;
|
|
import org.springblade.system.user.feign.IUserClient;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
@@ -65,6 +65,7 @@ import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 国内发货通知单 控制器
|
|
* 国内发货通知单 控制器
|
|
@@ -82,8 +83,20 @@ public class DeliveryController extends BladeController {
|
|
|
private final IDeliveryItemsService deliveryItemsService;
|
|
private final IDeliveryItemsService deliveryItemsService;
|
|
|
private final IDeliveryFeesService deliveryFeesService;
|
|
private final IDeliveryFeesService deliveryFeesService;
|
|
|
private final IDeliveryFilesService deliveryFilesService;
|
|
private final IDeliveryFilesService deliveryFilesService;
|
|
|
- private final RedisTemplate<String, Object> redisTemplate;
|
|
|
|
|
- private final IRedisClient redisClient;//redis缓存处理
|
|
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取客户信息
|
|
|
|
|
+ */
|
|
|
|
|
+ private final ICorpsDescClient corpsDescClient;
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 库存信息
|
|
|
|
|
+ */
|
|
|
|
|
+ private final IStorageClient iStorageClient;
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取用户信息
|
|
|
|
|
+ */
|
|
|
|
|
+ private final IUserClient iUserClient;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 详情
|
|
* 详情
|
|
|
*/
|
|
*/
|
|
@@ -103,11 +116,11 @@ public class DeliveryController extends BladeController {
|
|
|
@ApiOperation(value = "分页", notes = "传入delivery")
|
|
@ApiOperation(value = "分页", notes = "传入delivery")
|
|
|
public R<IPage<Delivery>> list(Delivery delivery, Query query) {
|
|
public R<IPage<Delivery>> list(Delivery delivery, Query query) {
|
|
|
LambdaQueryWrapper<Delivery> lambdaQueryWrapper = new LambdaQueryWrapper();
|
|
LambdaQueryWrapper<Delivery> lambdaQueryWrapper = new LambdaQueryWrapper();
|
|
|
- lambdaQueryWrapper.eq(Delivery::getIsDeleted,0);
|
|
|
|
|
- lambdaQueryWrapper.eq(Delivery::getTenantId,SecureUtil.getTenantId());
|
|
|
|
|
- lambdaQueryWrapper.eq(Delivery::getBillType,OrderTypeEnum.SHIP.getType());
|
|
|
|
|
- lambdaQueryWrapper.eq(Delivery::getTradeType,OrderTypeEnum.DOMESTIC.getType());
|
|
|
|
|
- lambdaQueryWrapper.eq(ObjectUtils.isNotNull(delivery.getVoucherStatus()),Delivery::getVoucherStatus,delivery.getVoucherStatus());
|
|
|
|
|
|
|
+ lambdaQueryWrapper.eq(Delivery::getIsDeleted, 0);
|
|
|
|
|
+ lambdaQueryWrapper.eq(Delivery::getTenantId, SecureUtil.getTenantId());
|
|
|
|
|
+ lambdaQueryWrapper.eq(Delivery::getBillType, OrderTypeEnum.SHIP.getType());
|
|
|
|
|
+ lambdaQueryWrapper.eq(Delivery::getTradeType, OrderTypeEnum.DOMESTIC.getType());
|
|
|
|
|
+ lambdaQueryWrapper.eq(ObjectUtils.isNotNull(delivery.getVoucherStatus()), Delivery::getVoucherStatus, delivery.getVoucherStatus());
|
|
|
/*if (ObjectUtils.isNotNull(delivery.getGenerate())){
|
|
/*if (ObjectUtils.isNotNull(delivery.getGenerate())){
|
|
|
if ("1".equals(delivery.getGenerate())){
|
|
if ("1".equals(delivery.getGenerate())){
|
|
|
lambdaQueryWrapper.isNotNull(Delivery::getVoucherNo);
|
|
lambdaQueryWrapper.isNotNull(Delivery::getVoucherNo);
|
|
@@ -117,76 +130,77 @@ public class DeliveryController extends BladeController {
|
|
|
}else{
|
|
}else{
|
|
|
lambdaQueryWrapper.eq(ObjectUtils.isNotNull(delivery.getVoucherNo()),Delivery::getVoucherNo,delivery.getVoucherNo());
|
|
lambdaQueryWrapper.eq(ObjectUtils.isNotNull(delivery.getVoucherNo()),Delivery::getVoucherNo,delivery.getVoucherNo());
|
|
|
}*/
|
|
}*/
|
|
|
- lambdaQueryWrapper.eq(delivery.getSalesCompany()!=null,Delivery::getSalesCompany,delivery.getSalesCompany());
|
|
|
|
|
- lambdaQueryWrapper.like(StringUtils.isNotBlank(delivery.getPurchaseMode()),Delivery::getPurchaseMode,delivery.getPurchaseMode());
|
|
|
|
|
- lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getCreateStartTime()),Delivery::getCreateTime,delivery.getCreateStartTime());//制单日期开始
|
|
|
|
|
- lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getCreateEndTime()),Delivery::getCreateTime,delivery.getCreateEndTime());//制单日期结束
|
|
|
|
|
- lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getBusinessStartDate()),Delivery::getBusinessDate,delivery.getBusinessStartDate());//发货日期开始
|
|
|
|
|
- lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getBusinessEndDate()),Delivery::getBusinessDate,delivery.getBusinessEndDate());//发货日期结束
|
|
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getOrgOrderNo()),Delivery::getOrgOrderNo,delivery.getOrgOrderNo());//销售订单号
|
|
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getCorpId()),Delivery::getCorpId,delivery.getCorpId());//客户
|
|
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getSalesCompany()),Delivery::getSalesCompany,delivery.getSalesCompany());//所属公司
|
|
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getArrivalAddress()),Delivery::getArrivalAddress,delivery.getArrivalAddress());//收货地址
|
|
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getArrivalContact()),Delivery::getArrivalContact,delivery.getArrivalContact());//收货人
|
|
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getArrivalTel()),Delivery::getArrivalTel,delivery.getArrivalTel());//收货电话
|
|
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getDeliveryRemarks()),Delivery::getDeliveryRemarks,delivery.getDeliveryRemarks());//备注
|
|
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getCreateUser()),Delivery::getCreateUser,delivery.getCreateUser());//制单人
|
|
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getStorageId()),Delivery::getStorageId,delivery.getStorageId());//仓库
|
|
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getDeliveryStatus()),Delivery::getDeliveryStatus,delivery.getDeliveryStatus());//状态
|
|
|
|
|
- lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getArrivalStartTime()),Delivery::getArrivalTime,delivery.getArrivalStartTime());//确认到货日期开始
|
|
|
|
|
- lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getArrivalEndTime()),Delivery::getArrivalTime,delivery.getArrivalEndTime());//确认到货日期结束
|
|
|
|
|
|
|
+ lambdaQueryWrapper.eq(delivery.getSalesCompany() != null, Delivery::getSalesCompany, delivery.getSalesCompany());
|
|
|
|
|
+ lambdaQueryWrapper.like(StringUtils.isNotBlank(delivery.getPurchaseMode()), Delivery::getPurchaseMode, delivery.getPurchaseMode());
|
|
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getCreateStartTime()), Delivery::getCreateTime, delivery.getCreateStartTime());//制单日期开始
|
|
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getCreateEndTime()), Delivery::getCreateTime, delivery.getCreateEndTime());//制单日期结束
|
|
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getBusinessStartDate()), Delivery::getBusinessDate, delivery.getBusinessStartDate());//发货日期开始
|
|
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getBusinessEndDate()), Delivery::getBusinessDate, delivery.getBusinessEndDate());//发货日期结束
|
|
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getOrgOrderNo()), Delivery::getOrgOrderNo, delivery.getOrgOrderNo());//销售订单号
|
|
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getCorpId()), Delivery::getCorpId, delivery.getCorpId());//客户
|
|
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getSalesCompany()), Delivery::getSalesCompany, delivery.getSalesCompany());//所属公司
|
|
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getArrivalAddress()), Delivery::getArrivalAddress, delivery.getArrivalAddress());//收货地址
|
|
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getArrivalContact()), Delivery::getArrivalContact, delivery.getArrivalContact());//收货人
|
|
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getArrivalTel()), Delivery::getArrivalTel, delivery.getArrivalTel());//收货电话
|
|
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getDeliveryRemarks()), Delivery::getDeliveryRemarks, delivery.getDeliveryRemarks());//备注
|
|
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getCreateUser()), Delivery::getCreateUser, delivery.getCreateUser());//制单人
|
|
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getStorageId()), Delivery::getStorageId, delivery.getStorageId());//仓库
|
|
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getDeliveryStatus()), Delivery::getDeliveryStatus, delivery.getDeliveryStatus());//状态
|
|
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getArrivalStartTime()), Delivery::getArrivalTime, delivery.getArrivalStartTime());//确认到货日期开始
|
|
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getArrivalEndTime()), Delivery::getArrivalTime, delivery.getArrivalEndTime());//确认到货日期结束
|
|
|
lambdaQueryWrapper.orderByDesc(Delivery::getId);
|
|
lambdaQueryWrapper.orderByDesc(Delivery::getId);
|
|
|
IPage<Delivery> pages = deliveryService.page(Condition.getPage(query), lambdaQueryWrapper);
|
|
IPage<Delivery> pages = deliveryService.page(Condition.getPage(query), lambdaQueryWrapper);
|
|
|
|
|
|
|
|
- redisClient.basicData("all");
|
|
|
|
|
- List<CorpsDesc> corpsDescList = castToList(redisTemplate.opsForValue().get("corps"), CorpsDesc.class);
|
|
|
|
|
- List<User> userList = castToList(redisTemplate.opsForValue().get("user"), User.class);
|
|
|
|
|
- List<StorageType> storageDescList = castToList(redisTemplate.opsForValue().get("storageType"), StorageType.class);
|
|
|
|
|
|
|
+ CorpsDesc corpsDesc = new CorpsDesc();
|
|
|
|
|
+ corpsDesc.setIsDeleted(0);
|
|
|
|
|
+ corpsDesc.setTenantId(AuthUtil.getTenantId());
|
|
|
|
|
+ List<CorpsDesc> corpsDescList = corpsDescClient.getCorp(corpsDesc);
|
|
|
|
|
+ List<User> userList = iUserClient.selectUserAll();
|
|
|
|
|
+ List<StorageType> storageDescList = iStorageClient.selectStorageTypeAll();
|
|
|
|
|
+ List<Long> ids = pages.getRecords().stream().map(Delivery::getId).collect(Collectors.toList());
|
|
|
|
|
+ LambdaQueryWrapper<DeliveryItems> itemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ itemsLambdaQueryWrapper.eq(DeliveryItems::getTenantId, AuthUtil.getTenantId())
|
|
|
|
|
+ .eq(DeliveryItems::getIsDeleted, 0)
|
|
|
|
|
+ .in(DeliveryItems::getPid, ids);
|
|
|
|
|
|
|
|
- if (CollectionUtils.isNotEmpty(pages.getRecords())){
|
|
|
|
|
- pages.getRecords().forEach(item ->{
|
|
|
|
|
- if (item.getCorpId() != null){
|
|
|
|
|
|
|
+ List<DeliveryItems> itemsList = deliveryItemsService.list(itemsLambdaQueryWrapper);
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(pages.getRecords())) {
|
|
|
|
|
+ pages.getRecords().forEach(item -> {
|
|
|
|
|
+ if (item.getCorpId() != null) {
|
|
|
CorpsDesc corpMessage = corpsDescList.stream().filter(corps -> corps.getId().equals(item.getCorpId())).findFirst().orElse(null);
|
|
CorpsDesc corpMessage = corpsDescList.stream().filter(corps -> corps.getId().equals(item.getCorpId())).findFirst().orElse(null);
|
|
|
- if (ObjectUtil.isNotEmpty(corpMessage)){
|
|
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(corpMessage)) {
|
|
|
item.setCorpsName(corpMessage.getCname());
|
|
item.setCorpsName(corpMessage.getCname());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (item.getSalesCompany() != null){
|
|
|
|
|
|
|
+ if (item.getSalesCompany() != null) {
|
|
|
CorpsDesc corpMessage = corpsDescList.stream().filter(corps -> corps.getId().equals(item.getSalesCompany())).findFirst().orElse(null);
|
|
CorpsDesc corpMessage = corpsDescList.stream().filter(corps -> corps.getId().equals(item.getSalesCompany())).findFirst().orElse(null);
|
|
|
- if (ObjectUtil.isNotEmpty(corpMessage)){
|
|
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(corpMessage)) {
|
|
|
item.setSalesCompanyName(corpMessage.getCname());
|
|
item.setSalesCompanyName(corpMessage.getCname());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (item.getCreateUser() != null){
|
|
|
|
|
|
|
+ if (item.getCreateUser() != null) {
|
|
|
User user = userList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst().orElse(null);
|
|
User user = userList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst().orElse(null);
|
|
|
- if (ObjectUtil.isNotEmpty(user)){
|
|
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(user)) {
|
|
|
item.setCreateUserName(user.getName());
|
|
item.setCreateUserName(user.getName());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (item.getUpdateUser() != null){
|
|
|
|
|
|
|
+ if (item.getUpdateUser() != null) {
|
|
|
User user1 = userList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst().orElse(null);
|
|
User user1 = userList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst().orElse(null);
|
|
|
- if (ObjectUtil.isNotEmpty(user1)){
|
|
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(user1)) {
|
|
|
item.setUpdateUserName(user1.getName());
|
|
item.setUpdateUserName(user1.getName());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
//仓库信息
|
|
//仓库信息
|
|
|
- if (item.getStorageId() != null){
|
|
|
|
|
|
|
+ if (item.getStorageId() != null) {
|
|
|
StorageType storageDesc = storageDescList.stream().filter(e -> e.getId().equals(item.getStorageId())).findFirst().orElse(null);
|
|
StorageType storageDesc = storageDescList.stream().filter(e -> e.getId().equals(item.getStorageId())).findFirst().orElse(null);
|
|
|
- if(storageDesc!=null)
|
|
|
|
|
- {
|
|
|
|
|
|
|
+ if (storageDesc != null) {
|
|
|
item.setStorageName(storageDesc.getCname());
|
|
item.setStorageName(storageDesc.getCname());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- //获得明细到货数量和到货金额
|
|
|
|
|
- LambdaQueryWrapper<DeliveryItems> itemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
- itemsLambdaQueryWrapper.eq(DeliveryItems::getTenantId, AuthUtil.getTenantId())
|
|
|
|
|
- .eq(DeliveryItems::getIsDeleted, 0)
|
|
|
|
|
- .eq(DeliveryItems::getPid, item.getId());
|
|
|
|
|
-
|
|
|
|
|
- List<DeliveryItems> itemsList = deliveryItemsService.list(itemsLambdaQueryWrapper);
|
|
|
|
|
//实际到货数量
|
|
//实际到货数量
|
|
|
- item.setActualArrivalQuantity(itemsList.stream().map(DeliveryItems::getArrivalQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
|
|
+ item.setActualArrivalQuantity(itemsList.stream().filter(e -> e.getPid().equals(item.getId()))
|
|
|
|
|
+ .map(DeliveryItems::getArrivalQuantity).filter(Objects::nonNull)
|
|
|
|
|
+ .reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
//实际到货金额
|
|
//实际到货金额
|
|
|
/*item.setActualArrivalAmount(itemsList.stream().reduce(BigDecimal.ZERO, (x, y) -> {
|
|
/*item.setActualArrivalAmount(itemsList.stream().reduce(BigDecimal.ZERO, (x, y) -> {
|
|
|
return x.add(y.getArrivalQuantity().multiply(y.getPrice()));
|
|
return x.add(y.getArrivalQuantity().multiply(y.getPrice()));
|
|
@@ -202,71 +216,74 @@ public class DeliveryController extends BladeController {
|
|
|
*/
|
|
*/
|
|
|
@GetMapping("/saleDeliveryExport")
|
|
@GetMapping("/saleDeliveryExport")
|
|
|
@ApiOperation(value = "客户收货导出", notes = "传入delivery")
|
|
@ApiOperation(value = "客户收货导出", notes = "传入delivery")
|
|
|
- public void saleOrderExport(Delivery delivery, HttpServletResponse response){
|
|
|
|
|
|
|
+ public void saleOrderExport(Delivery delivery, HttpServletResponse response) {
|
|
|
LambdaQueryWrapper<Delivery> lambdaQueryWrapper = new LambdaQueryWrapper();
|
|
LambdaQueryWrapper<Delivery> lambdaQueryWrapper = new LambdaQueryWrapper();
|
|
|
- lambdaQueryWrapper.eq(Delivery::getIsDeleted,0);
|
|
|
|
|
- lambdaQueryWrapper.eq(Delivery::getTenantId,SecureUtil.getTenantId());
|
|
|
|
|
- lambdaQueryWrapper.eq(Delivery::getBillType,OrderTypeEnum.SHIP.getType());
|
|
|
|
|
- lambdaQueryWrapper.eq(Delivery::getTradeType,OrderTypeEnum.DOMESTIC.getType());
|
|
|
|
|
- lambdaQueryWrapper.eq(delivery.getSalesCompany()!=null,Delivery::getSalesCompany,delivery.getSalesCompany());
|
|
|
|
|
- lambdaQueryWrapper.like(StringUtils.isNotBlank(delivery.getPurchaseMode()),Delivery::getPurchaseMode,delivery.getPurchaseMode());
|
|
|
|
|
- lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getCreateStartTime()),Delivery::getCreateTime,delivery.getCreateStartTime());//制单日期开始
|
|
|
|
|
- lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getCreateEndTime()),Delivery::getCreateTime,delivery.getCreateEndTime());//制单日期结束
|
|
|
|
|
- lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getBusinessStartDate()),Delivery::getBusinessDate,delivery.getBusinessStartDate());//发货日期开始
|
|
|
|
|
- lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getBusinessEndDate()),Delivery::getBusinessDate,delivery.getBusinessEndDate());//发货日期结束
|
|
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getOrgOrderNo()),Delivery::getOrgOrderNo,delivery.getOrgOrderNo());//销售订单号
|
|
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getCorpId()),Delivery::getCorpId,delivery.getCorpId());//客户
|
|
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getSalesCompany()),Delivery::getSalesCompany,delivery.getSalesCompany());//所属公司
|
|
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getArrivalAddress()),Delivery::getArrivalAddress,delivery.getArrivalAddress());//收货地址
|
|
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getArrivalContact()),Delivery::getArrivalContact,delivery.getArrivalContact());//收货人
|
|
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getArrivalTel()),Delivery::getArrivalTel,delivery.getArrivalTel());//收货电话
|
|
|
|
|
- lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getDeliveryRemarks()),Delivery::getDeliveryRemarks,delivery.getDeliveryRemarks());//备注
|
|
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getCreateUser()),Delivery::getCreateUser,delivery.getCreateUser());//制单人
|
|
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getStorageId()),Delivery::getStorageId,delivery.getStorageId());//仓库
|
|
|
|
|
- lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getDeliveryStatus()),Delivery::getDeliveryStatus,delivery.getDeliveryStatus());//状态
|
|
|
|
|
- lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getArrivalStartTime()),Delivery::getArrivalTime,delivery.getArrivalStartTime());//确认到货日期开始
|
|
|
|
|
- lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getArrivalEndTime()),Delivery::getArrivalTime,delivery.getArrivalEndTime());//确认到货日期结束
|
|
|
|
|
|
|
+ lambdaQueryWrapper.eq(Delivery::getIsDeleted, 0);
|
|
|
|
|
+ lambdaQueryWrapper.eq(Delivery::getTenantId, SecureUtil.getTenantId());
|
|
|
|
|
+ lambdaQueryWrapper.eq(Delivery::getBillType, OrderTypeEnum.SHIP.getType());
|
|
|
|
|
+ lambdaQueryWrapper.eq(Delivery::getTradeType, OrderTypeEnum.DOMESTIC.getType());
|
|
|
|
|
+ lambdaQueryWrapper.eq(delivery.getSalesCompany() != null, Delivery::getSalesCompany, delivery.getSalesCompany());
|
|
|
|
|
+ lambdaQueryWrapper.like(StringUtils.isNotBlank(delivery.getPurchaseMode()), Delivery::getPurchaseMode, delivery.getPurchaseMode());
|
|
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getCreateStartTime()), Delivery::getCreateTime, delivery.getCreateStartTime());//制单日期开始
|
|
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getCreateEndTime()), Delivery::getCreateTime, delivery.getCreateEndTime());//制单日期结束
|
|
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getBusinessStartDate()), Delivery::getBusinessDate, delivery.getBusinessStartDate());//发货日期开始
|
|
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getBusinessEndDate()), Delivery::getBusinessDate, delivery.getBusinessEndDate());//发货日期结束
|
|
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getOrgOrderNo()), Delivery::getOrgOrderNo, delivery.getOrgOrderNo());//销售订单号
|
|
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getCorpId()), Delivery::getCorpId, delivery.getCorpId());//客户
|
|
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getSalesCompany()), Delivery::getSalesCompany, delivery.getSalesCompany());//所属公司
|
|
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getArrivalAddress()), Delivery::getArrivalAddress, delivery.getArrivalAddress());//收货地址
|
|
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getArrivalContact()), Delivery::getArrivalContact, delivery.getArrivalContact());//收货人
|
|
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getArrivalTel()), Delivery::getArrivalTel, delivery.getArrivalTel());//收货电话
|
|
|
|
|
+ lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getDeliveryRemarks()), Delivery::getDeliveryRemarks, delivery.getDeliveryRemarks());//备注
|
|
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getCreateUser()), Delivery::getCreateUser, delivery.getCreateUser());//制单人
|
|
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getStorageId()), Delivery::getStorageId, delivery.getStorageId());//仓库
|
|
|
|
|
+ lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getDeliveryStatus()), Delivery::getDeliveryStatus, delivery.getDeliveryStatus());//状态
|
|
|
|
|
+ lambdaQueryWrapper.ge(Func.isNotEmpty(delivery.getArrivalStartTime()), Delivery::getArrivalTime, delivery.getArrivalStartTime());//确认到货日期开始
|
|
|
|
|
+ lambdaQueryWrapper.le(Func.isNotEmpty(delivery.getArrivalEndTime()), Delivery::getArrivalTime, delivery.getArrivalEndTime());//确认到货日期结束
|
|
|
lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getVoucherNo()), Delivery::getVoucherNo, delivery.getVoucherNo());//状态
|
|
lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getVoucherNo()), Delivery::getVoucherNo, delivery.getVoucherNo());//状态
|
|
|
lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getVoucherStatus()), Delivery::getVoucherStatus, delivery.getVoucherStatus());//状态
|
|
lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getVoucherStatus()), Delivery::getVoucherStatus, delivery.getVoucherStatus());//状态
|
|
|
lambdaQueryWrapper.orderByDesc(Delivery::getId);
|
|
lambdaQueryWrapper.orderByDesc(Delivery::getId);
|
|
|
List<Delivery> list = deliveryService.list(lambdaQueryWrapper);
|
|
List<Delivery> list = deliveryService.list(lambdaQueryWrapper);
|
|
|
|
|
|
|
|
- redisClient.basicData("all");
|
|
|
|
|
- List<CorpsDesc> corpsDescList = castToList(redisTemplate.opsForValue().get("corps"), CorpsDesc.class);
|
|
|
|
|
- List<User> userList = castToList(redisTemplate.opsForValue().get("user"), User.class);
|
|
|
|
|
- List<StorageType> storageDescList = castToList(redisTemplate.opsForValue().get("storageType"), StorageType.class);
|
|
|
|
|
-
|
|
|
|
|
- if (CollectionUtils.isNotEmpty(list)){
|
|
|
|
|
- list.forEach(item ->{
|
|
|
|
|
- if (item.getCorpId() != null){
|
|
|
|
|
|
|
+ //客户
|
|
|
|
|
+ CorpsDesc corpsDesc = new CorpsDesc();
|
|
|
|
|
+ corpsDesc.setTenantId(AuthUtil.getTenantId());
|
|
|
|
|
+ List<CorpsDesc> corpsDescList = corpsDescClient.getCorp(corpsDesc);
|
|
|
|
|
+ //仓库
|
|
|
|
|
+ List<StorageType> storageDescList = iStorageClient.selectStorageTypeAll();
|
|
|
|
|
+ //用户
|
|
|
|
|
+ List<User> userList = iUserClient.selectUserAll();
|
|
|
|
|
+
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
|
|
+ list.forEach(item -> {
|
|
|
|
|
+ if (item.getCorpId() != null) {
|
|
|
CorpsDesc corpMessage = corpsDescList.stream().filter(corps -> corps.getId().equals(item.getCorpId())).findFirst().orElse(null);
|
|
CorpsDesc corpMessage = corpsDescList.stream().filter(corps -> corps.getId().equals(item.getCorpId())).findFirst().orElse(null);
|
|
|
- if (ObjectUtil.isNotEmpty(corpMessage)){
|
|
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(corpMessage)) {
|
|
|
item.setCorpsName(corpMessage.getCname());
|
|
item.setCorpsName(corpMessage.getCname());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (item.getSalesCompany() != null){
|
|
|
|
|
|
|
+ if (item.getSalesCompany() != null) {
|
|
|
CorpsDesc corpMessage = corpsDescList.stream().filter(corps -> corps.getId().equals(item.getSalesCompany())).findFirst().orElse(null);
|
|
CorpsDesc corpMessage = corpsDescList.stream().filter(corps -> corps.getId().equals(item.getSalesCompany())).findFirst().orElse(null);
|
|
|
- if (ObjectUtil.isNotEmpty(corpMessage)){
|
|
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(corpMessage)) {
|
|
|
item.setSalesCompanyName(corpMessage.getCname());
|
|
item.setSalesCompanyName(corpMessage.getCname());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (item.getCreateUser() != null){
|
|
|
|
|
|
|
+ if (item.getCreateUser() != null) {
|
|
|
User user = userList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst().orElse(null);
|
|
User user = userList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst().orElse(null);
|
|
|
- if (ObjectUtil.isNotEmpty(user)){
|
|
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(user)) {
|
|
|
item.setCreateUserName(user.getName());
|
|
item.setCreateUserName(user.getName());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (item.getUpdateUser() != null){
|
|
|
|
|
|
|
+ if (item.getUpdateUser() != null) {
|
|
|
User user1 = userList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst().orElse(null);
|
|
User user1 = userList.stream().filter(e -> e.getId().equals(item.getUpdateUser())).findFirst().orElse(null);
|
|
|
- if (ObjectUtil.isNotEmpty(user1)){
|
|
|
|
|
|
|
+ if (ObjectUtil.isNotEmpty(user1)) {
|
|
|
item.setUpdateUserName(user1.getName());
|
|
item.setUpdateUserName(user1.getName());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
//仓库信息
|
|
//仓库信息
|
|
|
- if (item.getStorageId() != null){
|
|
|
|
|
|
|
+ if (item.getStorageId() != null) {
|
|
|
StorageType storageType = storageDescList.stream().filter(e -> e.getId().equals(item.getStorageId())).findFirst().orElse(null);
|
|
StorageType storageType = storageDescList.stream().filter(e -> e.getId().equals(item.getStorageId())).findFirst().orElse(null);
|
|
|
- if(storageType!=null)
|
|
|
|
|
- {
|
|
|
|
|
|
|
+ if (storageType != null) {
|
|
|
item.setStorageName(storageType.getCname());
|
|
item.setStorageName(storageType.getCname());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -283,7 +300,7 @@ public class DeliveryController extends BladeController {
|
|
|
//实际到货金额
|
|
//实际到货金额
|
|
|
item.setActualArrivalAmount(itemsList.stream().reduce(BigDecimal.ZERO, (x, y) -> {
|
|
item.setActualArrivalAmount(itemsList.stream().reduce(BigDecimal.ZERO, (x, y) -> {
|
|
|
return x.add(y.getArrivalQuantity().multiply(y.getPrice()));
|
|
return x.add(y.getArrivalQuantity().multiply(y.getPrice()));
|
|
|
- },BigDecimal::add).setScale(2,BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
|
|
+ }, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
|
|
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
@@ -292,6 +309,7 @@ public class DeliveryController extends BladeController {
|
|
|
ExcelUtil.export(response, "客户收货", "客户收货", excelList, SaleDeliveryExcel.class);
|
|
ExcelUtil.export(response, "客户收货", "客户收货", excelList, SaleDeliveryExcel.class);
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 自定义分页 国内发货通知单
|
|
* 自定义分页 国内发货通知单
|
|
|
*/
|
|
*/
|
|
@@ -321,6 +339,7 @@ public class DeliveryController extends BladeController {
|
|
|
delivery.setOverpayment(DeliveryStatusEnum.ADD.getType());
|
|
delivery.setOverpayment(DeliveryStatusEnum.ADD.getType());
|
|
|
return deliveryService.submit(delivery);
|
|
return deliveryService.submit(delivery);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 撤销确认收货
|
|
* 撤销确认收货
|
|
|
*/
|
|
*/
|
|
@@ -335,6 +354,7 @@ public class DeliveryController extends BladeController {
|
|
|
delivery.setOverpayment(DeliveryStatusEnum.REPEALADD.getType());
|
|
delivery.setOverpayment(DeliveryStatusEnum.REPEALADD.getType());
|
|
|
return deliveryService.submit(delivery);
|
|
return deliveryService.submit(delivery);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 国内贸易客户收货-确认到货
|
|
* 国内贸易客户收货-确认到货
|
|
|
*/
|
|
*/
|
|
@@ -419,22 +439,20 @@ public class DeliveryController extends BladeController {
|
|
|
delivery.setTradeType(OrderTypeEnum.DOMESTIC.getType());
|
|
delivery.setTradeType(OrderTypeEnum.DOMESTIC.getType());
|
|
|
return deliveryService.submitDelivery(delivery);
|
|
return deliveryService.submitDelivery(delivery);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 删除 国内发货通知单
|
|
* 删除 国内发货通知单
|
|
|
*/
|
|
*/
|
|
|
@PostMapping("/remove")
|
|
@PostMapping("/remove")
|
|
|
@ApiOperationSupport(order = 8)
|
|
@ApiOperationSupport(order = 8)
|
|
|
@ApiOperation(value = "删除", notes = "传入ids")
|
|
@ApiOperation(value = "删除", notes = "传入ids")
|
|
|
- public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids)
|
|
|
|
|
- {
|
|
|
|
|
- LambdaQueryWrapper<Delivery> itemsLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
|
|
- itemsLambdaQueryWrapper.in(Delivery::getId,Func.toLongList(ids));
|
|
|
|
|
|
|
+ public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
|
|
|
|
|
+ LambdaQueryWrapper<Delivery> itemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ itemsLambdaQueryWrapper.in(Delivery::getId, Func.toLongList(ids));
|
|
|
List<Delivery> list = deliveryService.list(itemsLambdaQueryWrapper);
|
|
List<Delivery> list = deliveryService.list(itemsLambdaQueryWrapper);
|
|
|
- if(CollectionUtils.isNotEmpty(list))
|
|
|
|
|
- {
|
|
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
long count = list.stream().filter(e -> e.getDeliveryStatus().equals("已收货")).count();
|
|
long count = list.stream().filter(e -> e.getDeliveryStatus().equals("已收货")).count();
|
|
|
- if(count>0)
|
|
|
|
|
- {
|
|
|
|
|
|
|
+ if (count > 0) {
|
|
|
throw new SecurityException("存在已收货信息, 禁止删除");
|
|
throw new SecurityException("存在已收货信息, 禁止删除");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -445,16 +463,14 @@ public class DeliveryController extends BladeController {
|
|
|
@ApiOperationSupport(order = 3)
|
|
@ApiOperationSupport(order = 3)
|
|
|
@ApiOperation(value = "确认发货", notes = "确认发货")
|
|
@ApiOperation(value = "确认发货", notes = "确认发货")
|
|
|
@RepeatSubmit
|
|
@RepeatSubmit
|
|
|
- public R comfire(@RequestBody Delivery delivery)
|
|
|
|
|
- {
|
|
|
|
|
|
|
+ public R comfire(@RequestBody Delivery delivery) {
|
|
|
Delivery res = deliveryService.comfire(delivery);
|
|
Delivery res = deliveryService.comfire(delivery);
|
|
|
return R.data(res);
|
|
return R.data(res);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@GetMapping("/voucher")
|
|
@GetMapping("/voucher")
|
|
|
@RepeatSubmit
|
|
@RepeatSubmit
|
|
|
- public R voucher(Delivery delivery)
|
|
|
|
|
- {
|
|
|
|
|
|
|
+ public R voucher(Delivery delivery) {
|
|
|
return deliveryService.voucher(delivery);
|
|
return deliveryService.voucher(delivery);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -463,8 +479,7 @@ public class DeliveryController extends BladeController {
|
|
|
@ApiOperationSupport(order = 3)
|
|
@ApiOperationSupport(order = 3)
|
|
|
@ApiOperation(value = "撤回收货", notes = "撤回收货")
|
|
@ApiOperation(value = "撤回收货", notes = "撤回收货")
|
|
|
@RepeatSubmit
|
|
@RepeatSubmit
|
|
|
- public R cancel(@RequestBody Delivery delivery)
|
|
|
|
|
- {
|
|
|
|
|
|
|
+ public R cancel(@RequestBody Delivery delivery) {
|
|
|
deliveryService.cancel(delivery);
|
|
deliveryService.cancel(delivery);
|
|
|
return R.data(delivery);
|
|
return R.data(delivery);
|
|
|
}
|
|
}
|