|
|
@@ -16,35 +16,32 @@
|
|
|
*/
|
|
|
package org.springblade.purchase.sales.service.impl;
|
|
|
|
|
|
-import com.alibaba.druid.sql.ast.expr.SQLCaseExpr;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.trade.purchase.order.enums.OrderTypeEnum;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
-import org.aspectj.weaver.ast.Or;
|
|
|
import org.springblade.client.entity.GoodsDesc;
|
|
|
import org.springblade.client.entity.GoodsType;
|
|
|
import org.springblade.client.feign.IGoodsDescClient;
|
|
|
import org.springblade.client.vo.GoodsDescVO;
|
|
|
import org.springblade.core.secure.utils.SecureUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
-import org.springblade.core.tool.utils.Func;
|
|
|
import org.springblade.mocha.feign.IPriceItemClient;
|
|
|
import org.springblade.purchase.sales.entity.Order;
|
|
|
import org.springblade.purchase.sales.entity.OrderItems;
|
|
|
import org.springblade.purchase.sales.entity.OrderParts;
|
|
|
import org.springblade.purchase.sales.excel.OrderItemsExcel;
|
|
|
-import org.springblade.purchase.sales.mapper.OrderPartsMapper;
|
|
|
-import org.springblade.purchase.sales.vo.OrderItemsVO;
|
|
|
import org.springblade.purchase.sales.mapper.OrderItemsMapper;
|
|
|
+import org.springblade.purchase.sales.mapper.OrderPartsMapper;
|
|
|
import org.springblade.purchase.sales.service.IOrderItemsService;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import org.springblade.purchase.sales.vo.OrderItemsVO;
|
|
|
import org.springblade.stock.entity.StockGoods;
|
|
|
import org.springblade.stock.feign.IStockGoodsClient;
|
|
|
import org.springblade.system.user.entity.User;
|
|
|
import org.springblade.system.user.feign.IUserClient;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
@@ -68,6 +65,7 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
|
|
|
private IUserClient iUserClient;//获取用户信息
|
|
|
@Resource
|
|
|
private OrderPartsMapper orderPartsMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<OrderItemsVO> selectOrderItemsPage(IPage<OrderItemsVO> page, OrderItemsVO orderItems) {
|
|
|
return page.setRecords(baseMapper.selectOrderItemsPage(page, orderItems));
|
|
|
@@ -75,15 +73,15 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
|
|
|
|
|
|
@Override
|
|
|
public IPage<OrderItemsVO> orderItemsList(IPage<OrderItemsVO> page, String orderNo, Long corpId, String orderStartDate, String orderEndDate, String tradeType, String billType, String tenantId) {
|
|
|
- return page.setRecords( baseMapper.orderItemsList(page,orderNo,corpId,orderStartDate,orderEndDate,tradeType,billType,tenantId));
|
|
|
+ return page.setRecords(baseMapper.orderItemsList(page, orderNo, corpId, orderStartDate, orderEndDate, tradeType, billType, tenantId));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public R<List<OrderItems>> importUser(List<OrderItemsExcel> data, Boolean isCovered) {
|
|
|
List<OrderItems> list = new ArrayList<>();
|
|
|
- data.stream().forEach(item ->{
|
|
|
+ data.forEach(item -> {
|
|
|
R<GoodsDesc> goods = goodsDescClient.GoodsByCode(item.getCode());
|
|
|
- if (goods.isSuccess() && goods.getData() != null){
|
|
|
+ if (goods.isSuccess() && goods.getData() != null) {
|
|
|
OrderItems orderItems = new OrderItems();
|
|
|
orderItems.setCode(item.getCode());
|
|
|
orderItems.setOrderQuantity(item.getOrderQuantity());
|
|
|
@@ -100,9 +98,9 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
|
|
|
stockGoods.setGoodsId(goods.getData().getId());
|
|
|
stockGoods.setItemType(goods.getData().getTypeno());
|
|
|
StockGoods stock = stockGoodsClient.getOneStock(stockGoods);
|
|
|
- if (stock!= null){
|
|
|
+ if (stock != null) {
|
|
|
orderItems.setStorageQuantity(stock.getSurplusRouteQuantity());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
orderItems.setStorageQuantity(new BigDecimal(BigInteger.ZERO));
|
|
|
}
|
|
|
list.add(orderItems);
|
|
|
@@ -113,89 +111,94 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
|
|
|
|
|
|
/**
|
|
|
* 保存订单明细信息
|
|
|
+ *
|
|
|
* @param list 订单明细
|
|
|
* @param date 订单创建时间
|
|
|
- * @param Pid 订单主表id
|
|
|
+ * @param pid 订单主表id
|
|
|
* @return
|
|
|
*/
|
|
|
- public List<OrderItems> saveOrderItemsMessage(List<OrderItems> list, Date date,Long Pid){
|
|
|
- list.stream().forEach(item ->{
|
|
|
- if (item.getId() == null){
|
|
|
- item.setTenantId(SecureUtil.getTenantId());
|
|
|
- item.setCreateUser(SecureUtil.getUserId());
|
|
|
- item.setCreateTime(date);
|
|
|
- item.setPid(Pid);
|
|
|
- baseMapper.insert(item);
|
|
|
- }else {
|
|
|
- item.setTenantId(SecureUtil.getTenantId());
|
|
|
- item.setUpdateUser(SecureUtil.getUserId());
|
|
|
- item.setUpdateTime(date);
|
|
|
- item.setPid(Pid);
|
|
|
- baseMapper.updateById(item);
|
|
|
- }
|
|
|
- //保存配件明细信息
|
|
|
- if (CollectionUtils.isNotEmpty(item.getPartsList())){
|
|
|
- item.getPartsList().stream().forEach(parts ->{
|
|
|
- if (parts.getId() == null){
|
|
|
- parts.setTenantId(SecureUtil.getTenantId());
|
|
|
- parts.setCreateTime(new Date());
|
|
|
- parts.setCreateUser(SecureUtil.getUserId());
|
|
|
- parts.setPid(item.getId());
|
|
|
- parts.setSrcPid(item.getPid());
|
|
|
- orderPartsMapper.insert(parts);
|
|
|
- }else {
|
|
|
- parts.setUpdateTime(new Date());
|
|
|
- parts.setUpdateUser(SecureUtil.getUserId());
|
|
|
- parts.setPid(item.getId());
|
|
|
- parts.setSrcPid(item.getPid());
|
|
|
- orderPartsMapper.updateById(parts);
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
+ public List<OrderItems> saveOrderItemsMessage(List<OrderItems> list, Date date, Long pid) {
|
|
|
+ list.forEach(item -> {
|
|
|
+ if (item.getId() == null) {
|
|
|
+ item.setTenantId(SecureUtil.getTenantId());
|
|
|
+ item.setCreateUser(SecureUtil.getUserId());
|
|
|
+ item.setCreateTime(date);
|
|
|
+ item.setPid(pid);
|
|
|
+ baseMapper.insert(item);
|
|
|
+ } else {
|
|
|
+ item.setTenantId(SecureUtil.getTenantId());
|
|
|
+ item.setUpdateUser(SecureUtil.getUserId());
|
|
|
+ item.setUpdateTime(date);
|
|
|
+ item.setPid(pid);
|
|
|
+ baseMapper.updateById(item);
|
|
|
+ }
|
|
|
+ //保存配件明细信息
|
|
|
+ if (CollectionUtils.isNotEmpty(item.getPartsList())) {
|
|
|
+ item.getPartsList().forEach(parts -> {
|
|
|
+ if (parts.getId() == null) {
|
|
|
+ parts.setTenantId(SecureUtil.getTenantId());
|
|
|
+ parts.setCreateTime(new Date());
|
|
|
+ parts.setCreateUser(SecureUtil.getUserId());
|
|
|
+ parts.setPid(item.getId());
|
|
|
+ parts.setSrcPid(item.getPid());
|
|
|
+ orderPartsMapper.insert(parts);
|
|
|
+ } else {
|
|
|
+ parts.setUpdateTime(new Date());
|
|
|
+ parts.setUpdateUser(SecureUtil.getUserId());
|
|
|
+ parts.setPid(item.getId());
|
|
|
+ parts.setSrcPid(item.getPid());
|
|
|
+ orderPartsMapper.updateById(parts);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
return list;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 获取订单明细数据
|
|
|
+ *
|
|
|
* @param order
|
|
|
* @return
|
|
|
*/
|
|
|
- public List<OrderItems> getOrderItems(Order order){
|
|
|
+ @Override
|
|
|
+ public List<OrderItems> getOrderItems(Order order) {
|
|
|
//判断订单明细的ids是否有值,有则查对应的订单明细 无则查所有的明细
|
|
|
List<OrderItems> orderItemsList = new ArrayList<>();
|
|
|
- if (CollectionUtils.isEmpty(order.getOrderItemIds())){
|
|
|
+ if (CollectionUtils.isEmpty(order.getOrderItemIds())) {
|
|
|
orderItemsList = baseMapper.selectList(new QueryWrapper<OrderItems>().eq("pid", order.getId())
|
|
|
.eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).orderByAsc("id"));
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
orderItemsList = baseMapper.selectList(new QueryWrapper<OrderItems>().eq("pid", order.getId())
|
|
|
.eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).in("id", order.getOrderItemIds()).orderByAsc("id"));
|
|
|
}
|
|
|
- if (CollectionUtils.isNotEmpty(orderItemsList)){
|
|
|
- orderItemsList.stream().forEach(item ->{
|
|
|
+ if (CollectionUtils.isNotEmpty(orderItemsList)) {
|
|
|
+ orderItemsList.forEach(item -> {
|
|
|
|
|
|
R<User> user1 = iUserClient.userInfoById(item.getUpdateUser());
|
|
|
- if (user1.isSuccess() && user1.getData() != null){
|
|
|
+ if (user1.isSuccess() && user1.getData() != null) {
|
|
|
item.setUpdateUserName(user1.getData().getName());
|
|
|
}
|
|
|
R<User> user = iUserClient.userInfoById(item.getCreateUser());
|
|
|
- if (user.isSuccess() && user.getData() != null){
|
|
|
+ if (user.isSuccess() && user.getData() != null) {
|
|
|
item.setCreateUserName(user.getData().getName());
|
|
|
}
|
|
|
|
|
|
|
|
|
- if (item.getItemId() != null){
|
|
|
+ if (item.getItemId() != null) {
|
|
|
//获取商品编码,名称,规格编码,规格型号
|
|
|
R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(item.getItemId());
|
|
|
- if (goodsMessage.isSuccess() && goodsMessage.getData() != null){
|
|
|
+ if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
|
|
|
item.setCode(goodsMessage.getData().getCode());
|
|
|
item.setCname(goodsMessage.getData().getCname());
|
|
|
item.setTypeno(goodsMessage.getData().getTypeno());
|
|
|
item.setSpecificationAndModel(goodsMessage.getData().getSpecificationAndModel());
|
|
|
item.setEname(goodsMessage.getData().getEname());
|
|
|
+ item.setBrandItem(goodsMessage.getData().getBrandItem());
|
|
|
}
|
|
|
}
|
|
|
//如果是出口贸易获取订单明细的配件信息
|
|
|
- if (order.getTradeType().equals(OrderTypeEnum.EXPORT.getType())){
|
|
|
+ if (order.getTradeType().equals(OrderTypeEnum.EXPORT.getType())) {
|
|
|
List<OrderParts> orderParts = orderPartsMapper.selectList(new QueryWrapper<OrderParts>().eq("pid", item.getId()).eq("is_deleted", 0));
|
|
|
item.setPartsList(orderParts);
|
|
|
}
|
|
|
@@ -203,36 +206,39 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
|
|
|
}
|
|
|
return orderItemsList;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 保存订单明细信息
|
|
|
+ *
|
|
|
* @param list 订单明细
|
|
|
* @param date 订单创建时间
|
|
|
- * @param Pid 订单主表id
|
|
|
+ * @param pid 订单主表id
|
|
|
* @return
|
|
|
*/
|
|
|
- public List<OrderItems> affirmOrderItemsMessage(List<OrderItems> list, Date date,Long Pid){
|
|
|
- list.stream().forEach(item ->{
|
|
|
- if (item.getId() == null){
|
|
|
+ public List<OrderItems> affirmOrderItemsMessage(List<OrderItems> list, Date date, Long pid) {
|
|
|
+ list.forEach(item -> {
|
|
|
+ if (item.getId() == null) {
|
|
|
item.setTenantId(SecureUtil.getTenantId());
|
|
|
item.setCreateUser(SecureUtil.getUserId());
|
|
|
item.setCreateTime(date);
|
|
|
- item.setPid(Pid);
|
|
|
+ item.setPid(pid);
|
|
|
baseMapper.insert(item);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
item.setTenantId(SecureUtil.getTenantId());
|
|
|
item.setUpdateUser(SecureUtil.getUserId());
|
|
|
item.setUpdateTime(date);
|
|
|
- item.setPid(Pid);
|
|
|
+ item.setPid(pid);
|
|
|
baseMapper.updateById(item);
|
|
|
}
|
|
|
//更改价格信息
|
|
|
R updatePriceItem = priceItemClient.updatePriceItem(item.getCode(), item.getPrice(), SecureUtil.getTenantId());
|
|
|
- if (!updatePriceItem.isSuccess()){
|
|
|
+ if (!updatePriceItem.isSuccess()) {
|
|
|
throw new RuntimeException("更新价格管理出错");
|
|
|
}
|
|
|
});
|
|
|
return list;
|
|
|
}
|
|
|
+
|
|
|
@Override
|
|
|
public void updateByPid(Long id) {
|
|
|
baseMapper.updateByPid(id);
|
|
|
@@ -241,12 +247,12 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
|
|
|
@Override
|
|
|
public List<OrderItems> getProfitItem(Long id) {
|
|
|
List<OrderItems> profitItem = baseMapper.getProfitItem(id);
|
|
|
- if (CollectionUtils.isNotEmpty(profitItem)){
|
|
|
- profitItem.stream().forEach(item ->{
|
|
|
- if (item.getItemId() != null){
|
|
|
+ if (CollectionUtils.isNotEmpty(profitItem)) {
|
|
|
+ profitItem.forEach(item -> {
|
|
|
+ if (item.getItemId() != null) {
|
|
|
//获取商品编码,名称,规格编码,规格型号
|
|
|
R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(item.getItemId());
|
|
|
- if (goodsMessage.isSuccess() && goodsMessage.getData() != null){
|
|
|
+ if (goodsMessage.isSuccess() && goodsMessage.getData() != null) {
|
|
|
item.setCode(goodsMessage.getData().getCode());
|
|
|
item.setCname(goodsMessage.getData().getCname());
|
|
|
item.setTypeno(goodsMessage.getData().getTypeno());
|