|
|
@@ -53,6 +53,7 @@ import org.springblade.core.secure.utils.SecureUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.BeanUtil;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
+import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
import org.springblade.finance.dto.ApplyDTO;
|
|
|
import org.springblade.finance.feign.IFinanceClient;
|
|
|
import org.springblade.finance.vojo.Items;
|
|
|
@@ -64,7 +65,6 @@ import org.springblade.system.feign.IDictBizClient;
|
|
|
import org.springblade.system.feign.ISysClient;
|
|
|
import org.springblade.system.user.entity.User;
|
|
|
import org.springblade.system.user.feign.IUserClient;
|
|
|
-import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
@@ -219,15 +219,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
*/
|
|
|
@Override
|
|
|
public R<OrderVO> getOrderMessage(String id) {
|
|
|
- //客户
|
|
|
- CorpsDesc corpsDesc = new CorpsDesc();
|
|
|
- corpsDesc.setTenantId(AuthUtil.getTenantId());
|
|
|
- List<CorpsDesc> corpsDescList = corpsDescClient.getCorp(corpsDesc);
|
|
|
//仓库
|
|
|
List<StorageType> storageTypeList = iStorageClient.selectStorageTypeAll();
|
|
|
- //用户
|
|
|
- List<User> userList = userClient.selectUserAll();
|
|
|
-
|
|
|
String tenantId = AuthUtil.getTenantId();
|
|
|
//获取订单主表信息
|
|
|
Order orderMessage = baseMapper.selectOne(Wrappers.<Order>lambdaQuery().eq(Order::getId, id)
|
|
|
@@ -235,13 +228,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
if (Objects.isNull(orderMessage)) {
|
|
|
throw new OrderException("未找到订单信息");
|
|
|
}
|
|
|
+ List<Long> userIds = new ArrayList<>();
|
|
|
+ if (ObjectUtils.isNotNull(orderMessage.getUpdateUser())) {
|
|
|
+ userIds.add(orderMessage.getUpdateUser());
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(orderMessage.getUpdateUser())) {
|
|
|
+ userIds.add(orderMessage.getCreateUser());
|
|
|
+ }
|
|
|
OrderVO vo = new OrderVO();
|
|
|
BeanUtil.copyProperties(orderMessage, vo);
|
|
|
- /*OrderVO vo = OrderMapstructMapper.INSTANCE.toVo(orderMessage);*/
|
|
|
- //获取创建人中文名
|
|
|
- if (ObjectUtils.isNotNull(userList)) {
|
|
|
- userList.stream().filter(user -> user.getId().equals(vo.getCreateUser())).findFirst().ifPresent(createUser -> vo.setCreateUserName(createUser.getName()));
|
|
|
+ //客户
|
|
|
+ String corpIds = "";
|
|
|
+ if (ObjectUtils.isNotNull(orderMessage.getCorpId())) {
|
|
|
+ corpIds = orderMessage.getCorpId() + "";
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(orderMessage.getPurchaserId())) {
|
|
|
+ corpIds = "," + orderMessage.getPurchaserId();
|
|
|
}
|
|
|
+ List<CorpsDesc> corpsDescList = corpsDescClient.selectByCorpIds(corpIds);
|
|
|
//获取供应商中文名
|
|
|
if (orderMessage.getCorpId() != null) {
|
|
|
corpsDescList.stream().filter(corp -> corp.getId().equals(orderMessage.getCorpId())).findFirst().ifPresent(corpMessage -> vo.setCorpName(corpMessage.getCname()));
|
|
|
@@ -257,8 +261,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//获取订单明细信息
|
|
|
List<OrderItems> orderItemsList = this.getOrderItems(vo.getId(), null);
|
|
|
if (CollectionUtils.isNotEmpty(orderItemsList)) {
|
|
|
+ userIds.addAll(orderItemsList.stream().map(OrderItems::getCreateUser).distinct().collect(Collectors.toList()));
|
|
|
+ userIds.addAll(orderItemsList.stream().map(OrderItems::getUpdateUser).distinct().collect(Collectors.toList()));
|
|
|
vo.setOrderItemsList(orderItemsList);
|
|
|
-// vo.setItemsVOList(orderItemsList.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
|
|
|
List<OrderItemsVO> orderItemsVOList = orderItemsList.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList());
|
|
|
vo.setItemsVOList(orderItemsVOList);
|
|
|
BigDecimal orderQuantity = orderItemsList.stream().map(OrderItems::getOrderQuantity)
|
|
|
@@ -269,6 +274,25 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
} else {
|
|
|
vo.setItemsVOList(new ArrayList<>());
|
|
|
}
|
|
|
+ String createUserIds = "";//创建人
|
|
|
+ userIds = userIds.stream().distinct().collect(Collectors.toList());
|
|
|
+ for (Long item : userIds) {
|
|
|
+ createUserIds = createUserIds + item + ",";
|
|
|
+ }
|
|
|
+ List<User> createUser = userClient.selectUserIds(createUserIds);
|
|
|
+ orderItemsList.forEach(e -> {
|
|
|
+ if (e.getUpdateUser() != null) {
|
|
|
+ if (ObjectUtil.isNotEmpty(createUser)) {
|
|
|
+ createUser.stream().filter(d -> d.getId().equals(e.getUpdateUser())).findFirst().ifPresent(user -> e.setUpdateUserName(user.getName()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (e.getCreateUser() != null) {
|
|
|
+ if (ObjectUtil.isNotEmpty(createUser)) {
|
|
|
+ createUser.stream().filter(d -> d.getId().equals(e.getCreateUser())).findFirst().ifPresent(user -> e.setUpdateUserName(user.getName()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ vo.setOrderItemsList(orderItemsList.isEmpty() ? new ArrayList<>() : orderItemsList);
|
|
|
//获取订单费用信息
|
|
|
List<OrderFees> orderFeesList = this.getOrderFees(vo.getId());
|
|
|
if (CollectionUtils.isNotEmpty(orderFeesList)) {
|
|
|
@@ -284,6 +308,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
} else {
|
|
|
vo.setOrderFilesList(new ArrayList<>());
|
|
|
}
|
|
|
+ if (ObjectUtil.isNotEmpty(createUser) && ObjectUtils.isNotNull(orderMessage.getUpdateUser())) {
|
|
|
+ createUser.stream().filter(d -> d.getId().equals(orderMessage.getUpdateUser())).findFirst().ifPresent(user -> vo.setUpdateUserName(user.getName()));
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(createUser) && ObjectUtils.isNotNull(orderMessage.getUpdateUser())) {
|
|
|
+ createUser.stream().filter(d -> d.getId().equals(orderMessage.getCreateUser())).findFirst().ifPresent(user -> vo.setCreateUserName(user.getName()));
|
|
|
+ }
|
|
|
return R.data(vo);
|
|
|
}
|
|
|
|
|
|
@@ -888,40 +918,43 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* @return 子订单集合
|
|
|
*/
|
|
|
public List<OrderItems> getOrderItems(Long orderId, Long createId) {
|
|
|
- //库区
|
|
|
- List<StorageDesc> storageDescList = iStorageClient.selectStorageDescAll();
|
|
|
// 查询订单明细信息
|
|
|
List<OrderItems> orderItemsList = orderItemsService.list(Wrappers.<OrderItems>lambdaQuery()
|
|
|
.eq(OrderItems::getPid, orderId)
|
|
|
.eq(OrderItems::getTenantId, SecureUtil.getTenantId())
|
|
|
-// .eq(OrderItems::getIsDeleted, 0).eq(Func.isNotEmpty(createId), OrderItems::getCreateUser, createId).orderByAsc(OrderItems::getSort));
|
|
|
.eq(OrderItems::getIsDeleted, 0).orderByAsc(OrderItems::getSort));
|
|
|
+ StringBuilder storageDescIds = new StringBuilder();
|
|
|
+ StringBuilder goodIds = new StringBuilder();
|
|
|
+ for (OrderItems item : orderItemsList) {
|
|
|
+ storageDescIds.append(item.getStorageId()).append(",");
|
|
|
+ goodIds.append(item.getItemId()).append(",");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(storageDescIds.toString())) {
|
|
|
+ storageDescIds = new StringBuilder(storageDescIds.substring(0, storageDescIds.length() - 1));
|
|
|
+ }
|
|
|
+ //库区
|
|
|
+ List<StorageDesc> storageDescList = iStorageClient.selectStorageIds(storageDescIds.toString());
|
|
|
// 获取商品id、名称用于匹配明细汉字
|
|
|
- List<GoodsDescVO> goodsDescVOList = goodsDescClient.selectGoodsBasic().getData();
|
|
|
+ List<GoodsDesc> goodsDescVOList = goodsDescClient.selectItemsIdGoods(goodIds.toString());
|
|
|
orderItemsList.forEach(item -> {
|
|
|
if (item.getItemId() != null) {
|
|
|
//库区
|
|
|
StorageDesc storageDesc = storageDescList.stream().filter(storage -> storage.getId().equals(item.getStorageId())).findFirst().orElse(null);
|
|
|
- if (ObjectUtils.isNotNull(storageDesc)) {
|
|
|
+ if (storageDesc != null) {
|
|
|
item.setStorageName(storageDesc.getCname());
|
|
|
}
|
|
|
//获取商品编码,名称,规格编码,规格型号
|
|
|
- R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(item.getItemId());
|
|
|
- if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
|
|
|
- Optional<GoodsDescVO> first = goodsDescVOList.stream().filter(goods -> Objects.equals(goods.getId(), item.getItemId()))
|
|
|
- .findFirst();
|
|
|
- if (first.isPresent()) {
|
|
|
- GoodsDescVO goodsDesc = first.get();
|
|
|
- item.setCode(goodsDesc.getCode());
|
|
|
- item.setCname(goodsDesc.getCname());
|
|
|
- item.setTypeno(goodsDesc.getTypeno());
|
|
|
- item.setSpecificationAndModel(goodsDesc.getSpecificationAndModel());
|
|
|
- item.setEname(goodsMessage.getData().getEname());
|
|
|
- item.setBrandItem(goodsMessage.getData().getBrandItem());
|
|
|
- item.setSize(goodsMessage.getData().getSize());
|
|
|
- item.setSpecsOne(goodsMessage.getData().getSpecsOne());
|
|
|
- item.setSpecsTwo(goodsMessage.getData().getSpecsTwo());
|
|
|
- }
|
|
|
+ GoodsDesc goodsDesc = goodsDescVOList.stream().filter(goods -> goods.getId().equals(item.getItemId())).findFirst().orElse(null);
|
|
|
+ if (goodsDesc != null) {
|
|
|
+ item.setCode(goodsDesc.getCode());
|
|
|
+ item.setCname(goodsDesc.getCname());
|
|
|
+ item.setTypeno(goodsDesc.getTypeno());
|
|
|
+ item.setSpecificationAndModel(goodsDesc.getSpecificationAndModel());
|
|
|
+ item.setEname(goodsDesc.getEname());
|
|
|
+ item.setBrandItem(goodsDesc.getBrandItem());
|
|
|
+ item.setSize(goodsDesc.getSize());
|
|
|
+ item.setSpecsOne(goodsDesc.getSpecsOne());
|
|
|
+ item.setSpecsTwo(goodsDesc.getSpecsTwo());
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
@@ -935,32 +968,42 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
* @return 费用集合
|
|
|
*/
|
|
|
public List<OrderFees> getOrderFees(Long orderId) {
|
|
|
- //客户
|
|
|
- CorpsDesc corpsDesc = new CorpsDesc();
|
|
|
- corpsDesc.setTenantId(AuthUtil.getTenantId());
|
|
|
- List<CorpsDesc> corpsDescList = corpsDescClient.getCorp(corpsDesc);
|
|
|
// 查询费用明细
|
|
|
List<OrderFees> orderFeesList = orderFeesService.list(Wrappers.<OrderFees>lambdaQuery().eq(OrderFees::getPid, orderId).eq(OrderFees::getIsDeleted, 0)
|
|
|
.eq(OrderFees::getTenantId, SecureUtil.getTenantId()));
|
|
|
if (CollectionUtils.isNotEmpty(orderFeesList)) {
|
|
|
- orderFeesList.stream().forEach(item -> {
|
|
|
+ StringBuilder corpId = new StringBuilder();
|
|
|
+ StringBuilder itemId = new StringBuilder();
|
|
|
+ for (OrderFees item : orderFeesList) {
|
|
|
+ corpId.append(item.getCorpId()).append(",");
|
|
|
+ itemId.append(item.getItemId()).append(",");
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(corpId.toString())) {
|
|
|
+ corpId = new StringBuilder(corpId.substring(0, corpId.length() - 1));
|
|
|
+ }
|
|
|
+ List<CorpsDesc> corpsDescList = corpsDescClient.selectByCorpIds(corpId.toString());
|
|
|
+ if (ObjectUtils.isNotNull(itemId.toString())) {
|
|
|
+ itemId = new StringBuilder(itemId.substring(0, itemId.length() - 1));
|
|
|
+ }
|
|
|
+ List<FeesDesc> feesDescList = feesDescClient.getFeesByIds(itemId.toString());
|
|
|
+ for (OrderFees item : orderFeesList) {
|
|
|
if (item.getItemId() != null) {
|
|
|
//获取费用编号,名称
|
|
|
- R<FeesDesc> feesDescR = feesDescClient.detail(item.getItemId());
|
|
|
- if (feesDescR.isSuccess() && feesDescR.getData() != null) {
|
|
|
- item.setCode(feesDescR.getData().getCode());
|
|
|
- item.setFeeName(feesDescR.getData().getCname());
|
|
|
- item.setEname(feesDescR.getData().getEname());
|
|
|
- }
|
|
|
- //获取客户名称
|
|
|
- if (item.getCorpId() != null) {
|
|
|
- CorpsDesc corpMessage = corpsDescList.stream().filter(corp -> corp.getId().equals(item.getCorpId())).findFirst().orElse(null);
|
|
|
- if (ObjectUtils.isNotNull(corpMessage)) {
|
|
|
- item.setCorpName(corpMessage.getCname());
|
|
|
+ if (!feesDescList.isEmpty()) {
|
|
|
+ FeesDesc feesDesc = feesDescList.stream().filter(e -> e.getId().equals(item.getItemId())).findFirst().orElse(null);
|
|
|
+ if (feesDesc != null) {
|
|
|
+ item.setCode(feesDesc.getCode());
|
|
|
+ item.setFeeName(feesDesc.getCname());
|
|
|
+ item.setEname(feesDesc.getEname());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- });
|
|
|
+ //获取客户名称
|
|
|
+ if (item.getCorpId() != null && !corpsDescList.isEmpty()) {
|
|
|
+ corpsDescList.stream().filter(corp -> corp.getId().equals(item.getCorpId())).findFirst()
|
|
|
+ .ifPresent(corpMessage -> item.setCorpName(corpMessage.getCname()));
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
return orderFeesList;
|
|
|
}
|
|
|
@@ -1092,9 +1135,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
//库区
|
|
|
List<StorageDesc> storageDescList = iStorageClient.selectStorageDescAll();
|
|
|
for (CMYWarehousingExcel cMYWarehousingExcel : excelList) {
|
|
|
- if (ObjectUtils.isNotNull(cMYWarehousingExcel.getBillNo())){
|
|
|
+ if (ObjectUtils.isNotNull(cMYWarehousingExcel.getBillNo())) {
|
|
|
if (cMYWarehousingExcel.getBillNo().contains("/") || cMYWarehousingExcel.getBillNo().contains(".")
|
|
|
- ||cMYWarehousingExcel.getBillNo().contains(":")){
|
|
|
+ || cMYWarehousingExcel.getBillNo().contains(":")) {
|
|
|
throw new RuntimeException("捆包号存在‘/’‘.’‘:’特殊字符,导入失败请修改");
|
|
|
}
|
|
|
}
|