瀏覽代碼

2022年10月11日 18:24

wangzhuo 3 年之前
父節點
當前提交
2ec71a9e84

+ 5 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/extra/entity/Claim.java

@@ -242,6 +242,11 @@ public class Claim implements Serializable {
 	 */
 	@ApiModelProperty(value = "是否已删除(0-否、1-是)")
 	private Integer isDeleted;
+	/**
+	 * 总实报金额
+	 */
+	@ApiModelProperty(value = "总实报金额")
+	private BigDecimal totalActualAmount;
 
 
 	@TableField(exist = false)

+ 5 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/extra/entity/ClaimItem.java

@@ -179,5 +179,10 @@ public class ClaimItem implements Serializable {
 	 */
 	@ApiModelProperty(value = "是否已删除(0-否、1-是)")
 	private Integer isDeleted;
+	/**
+	 * 实报金额
+	 */
+	@ApiModelProperty(value = "实报金额")
+	private BigDecimal actualAmount;
 
 }

+ 4 - 7
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -799,6 +799,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			delivery.setFreightQuantity(select.getTotalQuantity());
 			delivery.setFreightTime(date);
 			delivery.setFreightUser(AuthUtil.getUserName());
+			baseMapper.updateById(delivery);
 
 			Order temp = new Order();
 			temp.setId(select.getOrgId());
@@ -813,7 +814,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			orderTemp.setDeliverQuantity(select.getTotalQuantity());
 			orderTemp.setDeliverTime(date);
 			orderDescClient.updateOrder(orderTemp);
-			baseMapper.updateById(delivery);
+
 		}else{
 			delivery.setDeliveryStatus("已收货");
 			delivery.setFreightQuantity(select.getTotalQuantity());
@@ -835,10 +836,6 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			orderDescClient.updateOrder(orderTemp);
 			baseMapper.updateById(delivery);
 		}
-
-
-
-
 	}
 
 	@Override
@@ -1387,7 +1384,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			throw new SecurityException("获取销售订单科目号失败");
 		}
 
-		d.setExplanation(dModule.getAbstractStatic() + "-" + "采购入库");
+		d.setExplanation(dModule.getAbstractStatic() + "-" + orderNo);
 		d.setAccount_number(dModule.getProjectCode());
 		d.setDebitamount(acoount);
 
@@ -1434,7 +1431,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			throw new SecurityException("获取销售订单科目号失败");
 		}
 
-		c.setExplanation(cModule.getAbstractStatic() + "-" + "采购入库");
+		c.setExplanation(cModule.getAbstractStatic() + "-" + orderNo);
 		c.setAccount_number(cModule.getProjectCode());
 		c.setCreditamount(acoount);
 

+ 20 - 17
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml

@@ -450,23 +450,26 @@
     </select>
     <select id="orderInventory"  resultType="org.springblade.purchase.sales.vo.OrderVO">
         SELECT
-        DISTINCT
-	bo.id,
-	bo.order_no,
-	bo.busines_date,
-	item.corp_id
-FROM
-	business_order bo
-	LEFT JOIN business_order_items item ON bo.id = item.pid
-WHERE
-	bo.is_deleted = '0'
-	AND bo.`status` != '0'
-	AND item.is_deleted = '0'
-	AND bo.tenant_id = #{tenantId}
-	AND bo.trade_type = #{tradeType}
-	AND bo.bill_type = #{billType}
-	AND item.item_id = #{itemId}
-	AND item.corp_id = #{corpId}
+            DISTINCT
+            bo.id,
+            bo.order_no,
+            bo.busines_date,
+            item.corp_id
+        FROM
+            business_order bo
+            LEFT JOIN business_order_items item ON bo.id = item.pid
+        WHERE
+            bo.is_deleted = '0'
+            AND bo.`status` != '0'
+            AND item.is_deleted = '0'
+            AND bo.tenant_id = #{tenantId}
+            AND bo.trade_type = #{tradeType}
+            AND bo.bill_type = #{billType}
+            AND item.item_id = #{itemId}
+            AND item.corp_id = #{corpId}
+            <if test='tenantId != null and tenantId != "" and tenantId == "681169"'>
+                AND bo.order_status NOT IN ('待收货','已完成')
+            </if>
     </select>
     <select id="salesTrend"  resultType="org.springblade.purchase.sales.vo.SalesTrend">
         SELECT

+ 10 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/extra/controller/ClaimItemController.java

@@ -33,6 +33,7 @@ import org.springblade.core.tool.utils.Func;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.util.Map;
 
 /**
  * 费用报销明细表 控制器
@@ -122,5 +123,14 @@ public class ClaimItemController extends BladeController {
 		return R.status(claimItemService.removeClaimItem(Func.toLongList(ids)));
 	}
 
+	/**
+	 * 明细报销按钮保存实报金额
+	 */
+	@GetMapping("/saveActualAmount")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "保存实报金额", notes = "传入claimItem")
+	public R<Map<String, Object>> saveActualAmount(ClaimItem claimItem){
+		return claimItemService.saveActualAmount(claimItem);
+	}
 
 }

+ 11 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/extra/service/IClaimItemService.java

@@ -20,8 +20,11 @@ import com.trade.purchase.extra.entity.ClaimItem;
 import com.trade.purchase.extra.vo.ClaimItemVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.tool.api.R;
 
+import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 费用报销明细表 服务类
@@ -48,4 +51,12 @@ public interface IClaimItemService extends IService<ClaimItem> {
 	 */
 	boolean removeClaimItem(List<Long> idList);
 
+	/**
+	 * 明细报销按钮保存实报金额
+	 *
+	 * @param claimItem
+	 * @return
+	 */
+	R<Map<String, Object>> saveActualAmount(ClaimItem claimItem);
+
 }

+ 44 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/extra/service/impl/ClaimItemServiceImpl.java

@@ -16,15 +16,27 @@
  */
 package com.trade.purchase.extra.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.trade.purchase.extra.entity.Claim;
 import com.trade.purchase.extra.entity.ClaimItem;
 import com.trade.purchase.extra.mapper.ClaimItemMapper;
+import com.trade.purchase.extra.mapper.ClaimMapper;
 import com.trade.purchase.extra.service.IClaimItemService;
 import com.trade.purchase.extra.vo.ClaimItemVO;
+import lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.rmi.server.ServerCloneException;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 费用报销明细表 服务实现类
@@ -33,8 +45,11 @@ import java.util.List;
  * @since 2022-04-08
  */
 @Service
+@AllArgsConstructor
 public class ClaimItemServiceImpl extends ServiceImpl<ClaimItemMapper, ClaimItem> implements IClaimItemService {
 
+	private final ClaimMapper claimMapper;
+
 	@Override
 	public IPage<ClaimItemVO> selectClaimItemPage(IPage<ClaimItemVO> page, ClaimItemVO claimItem) {
 		return page.setRecords(baseMapper.selectClaimItemPage(page, claimItem));
@@ -51,4 +66,33 @@ public class ClaimItemServiceImpl extends ServiceImpl<ClaimItemMapper, ClaimItem
 		return true;
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R<Map<String, Object>> saveActualAmount(ClaimItem claimItem){
+		//修改明细实报金额
+		ClaimItem item = baseMapper.selectById(claimItem.getId());
+		if (ObjectUtil.isEmpty(item)){
+			throw new SecurityException("明细数据异常");
+		}
+		item.setActualAmount(claimItem.getActualAmount());
+		baseMapper.updateById(item);
+
+		Map<String, Object> map = new HashMap<>();
+		//修改主表总实报金额
+		LambdaQueryWrapper<ClaimItem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(ClaimItem::getTenantId, AuthUtil.getTenantId());
+		lambdaQueryWrapper.eq(ClaimItem::getIsDeleted, 0);
+		lambdaQueryWrapper.eq(ClaimItem::getPid, claimItem.getPid());
+		List<ClaimItem> list = baseMapper.selectList(lambdaQueryWrapper);
+
+		BigDecimal totalActualAmount = list.stream().map(ClaimItem::getActualAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+		Claim claim = new Claim();
+		claim.setTotalActualAmount(totalActualAmount);
+		claim.setId(claimItem.getPid());
+		claimMapper.updateById(claim);
+
+		map.put("totalActualAmount",totalActualAmount);
+		return R.data(map);
+	}
+
 }