소스 검색

2022年8月5日18点02分

纪新园 3 년 전
부모
커밋
bf70e58bfb

+ 8 - 0
blade-service-api/blade-deliver-goods-api/pom.xml

@@ -17,6 +17,14 @@
             <groupId>org.springblade</groupId>
             <artifactId>blade-common</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-excel</artifactId>
+        </dependency>
     </dependencies>
 
 

+ 66 - 0
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/FactoryDelivery.java

@@ -0,0 +1,66 @@
+package org.springblade.deliver.goods.entity;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class FactoryDelivery {
+
+
+	/**
+	 * 销售订单号
+	 */
+	@ExcelProperty("销售订单号")
+	private String orgOrderNo;
+	/**
+	 * 采购订单号
+	 */
+	@ExcelProperty("采购订单号")
+	private String orderNo;
+	/**
+	 * 供应商
+	 */
+	@ExcelProperty("供应商")
+	private String corpsName;
+	/**
+	 * 所属公司
+	 */
+	@ExcelProperty("所属公司")
+	private String salesCompany;
+	/**
+	 * 入库日期
+	 */
+	@ExcelProperty("入库日期")
+	private Date businessDate;
+	/**
+	 * 入库数量
+	 */
+	@ExcelProperty("入库数量")
+	private BigDecimal totalQuantity;
+	/**
+	 * 入库金额
+	 */
+	@ExcelProperty("入库金额")
+	private BigDecimal deliveryAmount;
+	/**
+	 * 采购金额
+	 */
+	@ExcelProperty("采购金额")
+	private BigDecimal purchaseAmount;
+	/**
+	 * 状态
+	 */
+	@ExcelProperty("状态")
+	private String deliveryStatus;
+
+
+}

+ 36 - 6
blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/BasicCorpsProfitChangeController.java

@@ -16,26 +16,35 @@
  */
 package org.springblade.client.corps.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.undertow.util.DateUtils;
 import lombok.AllArgsConstructor;
-import javax.validation.Valid;
-
+import lombok.Data;
 import org.springblade.client.corps.service.IBasicCorpsProfitChangeService;
+import org.springblade.client.corps.service.ICorpsDescService;
 import org.springblade.client.entity.BasicCorpsProfitChange;
-import org.springblade.client.vo.BasicCorpsProfitChangeVO;
+import org.springblade.client.entity.CorpsDesc;
+import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.web.bind.annotation.*;
-import org.springblade.core.boot.ctrl.BladeController;
+
+import javax.validation.Valid;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
 
 /**
- *  控制器
+ * 控制器
  *
  * @author BladeX
  * @since 2022-01-14
@@ -48,6 +57,8 @@ public class BasicCorpsProfitChangeController extends BladeController {
 
 	private final IBasicCorpsProfitChangeService basicCorpsProfitChangeService;
 
+	private final ICorpsDescService corpsDescService;
+
 	/**
 	 * 详情
 	 */
@@ -98,6 +109,25 @@ public class BasicCorpsProfitChangeController extends BladeController {
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入basicCorpsProfitChange")
 	public R submit(@Valid @RequestBody BasicCorpsProfitChange basicCorpsProfitChange) {
+
+		LambdaQueryWrapper<CorpsDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(CorpsDesc::getId, basicCorpsProfitChange.getCorpId());
+		lambdaQueryWrapper.eq(CorpsDesc::getIsDeleted, 0);
+		lambdaQueryWrapper.eq(CorpsDesc::getTenantId, AuthUtil.getTenantId());
+		CorpsDesc corpsDesc = corpsDescService.getOne(lambdaQueryWrapper);
+		if (ObjectUtils.isNotNull(corpsDesc)) {
+			//总返利
+			BigDecimal profitReturn = corpsDesc.getProfitReturn().subtract(basicCorpsProfitChange.getChangeProfitReturn());
+			//可用返利
+			BigDecimal surplusProfit = profitReturn.subtract(corpsDesc.getUsedProfit());
+			corpsDesc.setProfitReturn(profitReturn);
+			corpsDesc.setSurplusProfit(surplusProfit);
+			corpsDescService.updateById(corpsDesc);
+		} else {
+			R.fail("客户不存在");
+		}
+		basicCorpsProfitChange.setUpdateTime(LocalDateTime.now());
+		basicCorpsProfitChange.setUpdateUser(AuthUtil.getUserId());
 		return R.status(basicCorpsProfitChangeService.saveOrUpdate(basicCorpsProfitChange));
 	}
 

+ 71 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/receiving/ReCeVingController.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.deliver.goods.receiving;
 
+import org.springblade.core.excel.util.ExcelUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -26,6 +27,7 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.entity.GoodsDesc;
 import org.springblade.client.entity.StorageDesc;
 import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IStorageClient;
@@ -38,15 +40,22 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.deliver.goods.entity.Delivery;
 import org.springblade.deliver.goods.entity.DeliveryItems;
+import org.springblade.deliver.goods.entity.FactoryDelivery;
 import org.springblade.deliver.goods.service.IDeliveryItemsService;
 import org.springblade.deliver.goods.service.IDeliveryService;
 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.feign.IUserClient;
+import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 国内收货通知单 控制器
@@ -220,5 +229,67 @@ public class ReCeVingController extends BladeController {
 		return R.status(deliveryService.removeByIds(Func.toLongList(ids)));
 	}
 
+	/**
+	 * 导出商品
+	 */
+	@GetMapping("/exportOutFactoryDelivery")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导出模板")
+	public void exportOutFactoryDelivery(Delivery delivery,HttpServletResponse response) {
+		LambdaQueryWrapper<Delivery> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Delivery::getIsDeleted, 0);
+		lambdaQueryWrapper.eq(Delivery::getTenantId, SecureUtil.getTenantId());
+		lambdaQueryWrapper.eq(Delivery::getBillType, OrderTypeEnum.RECEIPT.getType());
+		lambdaQueryWrapper.eq(Delivery::getTradeType, OrderTypeEnum.DOMESTIC.getType());
+		lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getBillNo()), Delivery::getBillNo, delivery.getBillNo());//提单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getOrderNo()), Delivery::getOrderNo, delivery.getOrderNo());//合同号
+		lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getOrgOrderNo()), Delivery::getOrgOrderNo, delivery.getOrgOrderNo());//销售订单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getSrcOrderNo()), Delivery::getSrcOrderNo, delivery.getSrcOrderNo());//采购订单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(delivery.getDeliveryRemarks()), Delivery::getDeliveryRemarks, delivery.getDeliveryRemarks());//备注
+		lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getCorpId()), Delivery::getCorpId, delivery.getCorpId());//客户
+		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.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.eq(Func.isNotEmpty(delivery.getCreateUser()), Delivery::getCreateUser, delivery.getCreateUser());//制单人
+		lambdaQueryWrapper.eq(Func.isNotEmpty(delivery.getStorageId()), Delivery::getStorageId, delivery.getStorageId());//仓库
+		lambdaQueryWrapper.orderByDesc(Delivery::getCreateTime);
+		List<Delivery> deliveryList =  deliveryService.list(lambdaQueryWrapper);
+
+		List<FactoryDelivery> list = new ArrayList<>();
+
+		//解决回显字段问题
+		if (CollectionUtils.isNotEmpty(deliveryList)) {
+			deliveryList.forEach(e -> {
+				//供应商信息
+				R<CorpsDesc> corps = corpsDescClient.getCorpMessage(e.getCorpId());
+				if (corps.getData() != null) {
+					e.setCorpsName(corps.getData().getCname());
+				}
+				//所属公司信息
+				R<CorpsDesc> company = corpsDescClient.getCorpMessage(e.getSalesCompany());
+				if (company.getData() != null) {
+					e.setSalesCompanyName(company.getData().getCname());
+				}
+				//仓库信息
+				StorageDesc storageDesc = iStorageClient.findById(e.getStorageId());
+				if (storageDesc != null) {
+					e.setStorageName(storageDesc.getCname());
+				}
+				R<User> user = iUserClient.userInfoById(e.getCreateUser());
+				if (user.isSuccess() && user.getData() != null) {
+					e.setCreateUserName(user.getData().getName());
+				}
+				FactoryDelivery factoryDelivery = new FactoryDelivery();
+				BeanUtils.copyProperties(e,factoryDelivery);
+				list.add(factoryDelivery);
+			});
+		}
+		ExcelUtil.export(response, "导出工厂发货信息", "导出数据表", list, FactoryDelivery.class);
+	}
+
 
 }

+ 1 - 1
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java

@@ -645,7 +645,7 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 				gathering = gathering.add(usedProfit);
 
 				// 原来的判断 条件 : if (gathering.subtract(newDelivery.add(oldDelivery)).compareTo(BigDecimal.ZERO) <= 0){
-				if (gathering.subtract(newDelivery.add(oldDelivery)).compareTo(BigDecimal.ZERO) < 0) {
+				if (gathering.subtract(newDelivery.add(oldDelivery)).compareTo(BigDecimal.ZERO) <= 0) {
 					throw new RuntimeException("订单" + srcOrderNo + "发货金额超出 ,可发货金额为(CNY):" + (gathering.subtract(oldDelivery)).setScale(2, RoundingMode.UP));
 				}
 				/*if (gathering.compareTo((newDelivery.add(oldDelivery))) < 0){

+ 22 - 2
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -119,6 +119,26 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		);
 		detail.setOrderAddressList(orderAddressList);
 
+		//jixinyuan 改,app,网站都需要起运港,目的港。订舱代理
+		if (!ObjectUtil.isEmpty(detail.getAgentId())) {
+			R<CorpsDesc> agent = corpsDescClient.getCorpMessage(detail.getAgentId());
+			if (agent.isSuccess() && agent.getData() != null) {
+				detail.setAgentName(agent.getData().getCname());
+			}
+		}
+		if (!ObjectUtil.isEmpty(detail.getPodId())) {
+			BasicPortDesc pod = portClient.getPort(detail.getPodId());
+			if (pod != null) {
+				detail.setPodName(pod.getName());
+			}
+		}
+		if (!ObjectUtil.isEmpty(detail.getPolId())) {
+			BasicPortDesc pod = portClient.getPort(detail.getPolId());
+			if (pod != null) {
+				detail.setPolName(pod.getName());
+			}
+		}
+
 		// 手机端
 		if (StringUtil.isNotBlank(order.getSource())) {
 			if (!ObjectUtil.isEmpty(detail.getSalesman())) {
@@ -145,7 +165,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					detail.setDispatchDeptName(dept.getData());
 				}
 			}
-			if (!ObjectUtil.isEmpty(detail.getAgentId())) {
+			/*if (!ObjectUtil.isEmpty(detail.getAgentId())) {
 				R<CorpsDesc> agent = corpsDescClient.getCorpMessage(detail.getAgentId());
 				if (agent.isSuccess() && agent.getData() != null) {
 					detail.setAgentName(agent.getData().getCname());
@@ -156,7 +176,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				if (pod != null) {
 					detail.setPodName(pod.getName());
 				}
-			}
+			}*/
 		} else {
 			List<OrderFee> orderFeeList = orderFeeMapper.selectList(new LambdaQueryWrapper<OrderFee>()
 				.eq(OrderFee::getOrderId, order.getId())

+ 3 - 3
blade-service/blade-project/src/main/java/org/springblade/project/controller/ProjectController.java

@@ -340,11 +340,11 @@ public class ProjectController {
 		{
 		return R.data(Collections.EMPTY_LIST);
 		}*/
-		itemLambdaQueryWrapper.orderByDesc(ServiceProjectItem::getUpdateTime)
+		itemLambdaQueryWrapper.orderByDesc(ServiceProjectItem::getBeginTime)
 			.eq(deptid != null, ServiceProjectItem::getDeptid, deptid)
 			 .eq(ServiceProjectItem::getIsDeleted,0)
-			.in(ServiceProjectItem::getStatus, listStatus)
-		.eq(ServiceProjectItem::getBranch,"Y");
+			.in(ServiceProjectItem::getStatus, listStatus);
+//		.eq(ServiceProjectItem::getBranch,"Y");
 		Page<ServiceProjectItem> page = new Page<>(current, size);
 		IPage<ServiceProjectItem> iPage = serviceProjectItemService.page(page, itemLambdaQueryWrapper);
 		if (!CollectionUtils.isEmpty(iPage.getRecords())) {

+ 9 - 3
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java

@@ -165,6 +165,7 @@ public class PurchaseOrderController extends BladeController {
 					             @RequestParam(value = "creditStartDate",required = false) String creditStartDate,//信用证到期日-开始日期  credit_date
 					             @RequestParam(value = "creditEndDate",required = false) String creditEndDate,//信用证到期日-结束时间
 					             @RequestParam(value = "gathering",required = false) Integer gathering,//是否付款 0 已付款 1 未付款
+					             @RequestParam(value = "createFreight",required = false) Integer createFreight,//是否生成发货 0 否 1 是
 								 Order order
 								)
 	{
@@ -223,14 +224,19 @@ public class PurchaseOrderController extends BladeController {
 		queryWrapper.between(StringUtils.isNotBlank(requiredArrivalStartDate)&&StringUtils.isNotBlank(requiredArrivalEndDate),"required_arrival_date",requiredArrivalStartDate,requiredArrivalEndDate);
 		queryWrapper.between(StringUtils.isNotBlank(creditStartDate)&&StringUtils.isNotBlank(creditEndDate),"credit_date",creditStartDate,creditEndDate);
 		if (gathering != null && gathering == 0){
-			queryWrapper.eq("balance_amount",BigDecimal.ZERO);
+			queryWrapper.le("balance_amount",BigDecimal.ZERO);
+			queryWrapper.gt("settlment_amount",BigDecimal.ZERO);
 		}else if (gathering != null && gathering == 1){
-			queryWrapper.gt("balance_amount",BigDecimal.ZERO);
+			queryWrapper.eq("settlment_amount",BigDecimal.ZERO);
+		}
+
+		if (ObjectUtils.isNotNull(createFreight)){
+			queryWrapper.eq("create_freight",createFreight);
 		}
 		queryWrapper.orderByDesc("create_time");
 		Page<Order> page=new Page<>(current,size);
 		IPage<Order> pages = orderService.page(page,queryWrapper);
-		List<Order> orderList = orderService.list(queryWrapper);
+//		List<Order> orderList = orderService.list(queryWrapper);
 		List<Order> records = pages.getRecords();
 		if(CollectionUtils.isNotEmpty(records))
 		{