Procházet zdrojové kódy

2022年9月1日18:28:18

纪新园 před 3 roky
rodič
revize
1d5ea4c1f0
22 změnil soubory, kde provedl 900 přidání a 108 odebrání
  1. 17 11
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsDesc.java
  2. 6 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderFees.java
  3. 10 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderDescClient.java
  4. 9 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderFeesClient.java
  5. 98 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/PurchaseOrderBExcel.java
  6. 13 0
      blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/feign/IFinanceClient.java
  7. 6 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderFees.java
  8. 26 11
      blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java
  9. 117 29
      blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java
  10. 49 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescController.java
  11. 1 2
      blade-service/blade-project/src/main/java/org/springblade/project/handler/TaskCompleteJobHandler.java
  12. 1 0
      blade-service/blade-project/src/main/java/org/springblade/project/mapper/ServiceProjectItemMapper.xml
  13. 18 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderFeesController.java
  14. 80 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/entrance/EntranceOrderController.java
  15. 16 4
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderDescClient.java
  16. 4 2
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  17. 15 0
      blade-service/blade-stock/src/main/java/org/springblade/stock/controller/StockGoodsController.java
  18. 113 11
      blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java
  19. 9 4
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java
  20. 112 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/excel/PurchaseOrderAExcel.java
  21. 7 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/component/impl/DefaultOrderSaveImpl.java
  22. 173 34
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java

+ 17 - 11
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsDesc.java

@@ -314,19 +314,19 @@ public class CorpsDesc implements Serializable {
 
 	private String localBankAddress;
 
-    private String foreignBankAddress;
+	private String foreignBankAddress;
 
-    private String swiftCode;
+	private String swiftCode;
 
-    private String cnaps;
-    //总返利
-    private BigDecimal profitReturn;
-    //已用返利
-    private BigDecimal usedProfit;
-    //可用返利
-    private BigDecimal surplusProfit;
-    //本月待到账返利
-    private BigDecimal monthProfit;
+	private String cnaps;
+	//总返利
+	private BigDecimal profitReturn;
+	//已用返利
+	private BigDecimal usedProfit;
+	//可用返利
+	private BigDecimal surplusProfit;
+	//本月待到账返利
+	private BigDecimal monthProfit;
 
 	/**
 	 * 道路经营许可证号
@@ -378,4 +378,10 @@ public class CorpsDesc implements Serializable {
 	@ApiModelProperty(value = "首字母")
 	private String initials;
 
+	/**
+	 * 纳税人识别号
+	 */
+	@ApiModelProperty(value = "纳税人识别号")
+	private String taxpayerDifferenceCode;
+
 }

+ 6 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderFees.java

@@ -192,5 +192,11 @@ public class OrderFees implements Serializable {
 	@ApiModelProperty(value = "生成货款")
 	private Integer submitPay;
 
+	/**
+	 * 开票金额
+	 */
+	@ApiModelProperty(value = "开票金额")
+	private BigDecimal invoiceAmount;
+
 
 }

+ 10 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderDescClient.java

@@ -3,6 +3,7 @@ package org.springblade.purchase.sales.feign;
 import org.springblade.common.constant.LauncherConstant;
 import org.springblade.core.tool.api.R;
 import org.springblade.purchase.sales.entity.Order;
+import org.springblade.purchase.sales.entity.OrderFiles;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -27,6 +28,7 @@ public interface IOrderDescClient {
 	String GET_BY_CG_LIST = API_PREFIX + "/getByCgList";
 	String RELEASE_STOCK = API_PREFIX + "/releaseStock";
 	String GET_BY_BILLNO = API_PREFIX + "/getByBillNo";
+	String GET_BY_ORDER_FILES=API_PREFIX+"/getByOrderFiles";
 
 	/**
 	 * 修改采购订单状态
@@ -64,4 +66,12 @@ public interface IOrderDescClient {
 	 */
 	@PostMapping(GET_BY_BILLNO)
 	List<Order> getByBillNo(@RequestBody Order order);
+
+	/**
+	 * 获取订单附件
+	 * @param pId
+	 * @return
+	 */
+	@GetMapping(GET_BY_ORDER_FILES)
+	List<OrderFiles> getOrderFiles(@RequestParam("srcBillId")Long srcBillId);
 }

+ 9 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/feign/IOrderFeesClient.java

@@ -41,4 +41,13 @@ public interface IOrderFeesClient {
 	 */
 	@GetMapping("/orderfees/updateOrderFees")
 	R updateOrder(@RequestParam("id") Long id);
+
+	/**
+	 * 修改订单费用明细审核状态
+	 *
+	 * @param id
+	 * @return
+	 */
+	@GetMapping("/orderfees/updateInvoiceAmount")
+	R updateInvoiceAmount(@RequestParam("id") Long id,@RequestParam("invoiceAmount") BigDecimal invoiceAmount);
 }

+ 98 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/PurchaseOrderBExcel.java

@@ -0,0 +1,98 @@
+package org.springblade.purchase.sales.vo;
+
+
+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 PurchaseOrderBExcel {
+
+	/**
+	 * 合同号
+	 */
+	@ExcelProperty(value = "合同号")
+	private String orgOrderNo;
+	/**
+	 * 提单号
+	 */
+	@ExcelProperty(value = "提单号")
+	private String billNo;
+
+	@ExcelProperty(value = "供应商")
+	private String strCorpName;
+
+	/**
+	 * 所属公司
+	 */
+	@ExcelProperty(value = "所属公司")
+	private String belongToCorpName;
+
+	/**
+	 * 合同日期
+	 */
+	@ExcelProperty(value = "合同日期")
+	private Date businesDate;
+
+	/**
+	 * 合同金额
+	 */
+	@ExcelProperty(value = "合同金额")
+	private BigDecimal orderAmount;
+
+	/**
+	 * 件数
+	 */
+	@ExcelProperty(value = "件数")
+	private BigDecimal orderQuantity;
+	/**
+	 * 码单重量
+	 */
+	@ExcelProperty(value = "码单重量")
+	private BigDecimal billWeight;
+	/**
+	 * 发票重量
+	 */
+	@ExcelProperty(value = "发票重量")
+	private BigDecimal invoiceWeight;
+	/**
+	 * 已收数量
+	 */
+	@ExcelProperty(value = "已收数量")
+	private BigDecimal storageQuantity;
+
+	@ExcelProperty(value = "已收重量")
+	private BigDecimal actualWeight;
+	/**
+	 * 销售金额
+	 */
+	@ExcelProperty(value = "销售金额")
+	private BigDecimal amount;
+	/**
+	 * 已付金额
+	 */
+	@ExcelProperty(value = "已付金额")
+	private BigDecimal settlmentAmount;
+	/**
+	 * 业务员
+	 */
+	@ExcelProperty(value = "业务员")
+	private String salesName;
+
+	/**
+	 * 付款/开证日期
+	 */
+	@ExcelProperty(value = "客户首付日期")
+	private Date accountsCollectionDate;
+}

+ 13 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/feign/IFinanceClient.java

@@ -1,7 +1,9 @@
 package org.springblade.finance.feign;
 
+import io.swagger.annotations.ApiOperation;
 import org.springblade.core.tool.api.R;
 import org.springblade.finance.dto.ApplyDTO;
+import org.springblade.finance.dto.SettlementDTO;
 import org.springblade.finance.vojo.Acc;
 import org.springblade.finance.vojo.Settlement;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -74,4 +76,15 @@ public interface IFinanceClient {
 							   @RequestParam(value = "billType") String billType,
 							   @RequestParam(value = "tradeType") String tradeType);
 
+	/**
+	 * 保存收付款信息
+	 * @param dto
+	 * @return
+	 */
+	@PostMapping("/settlement/saveOrEdit")
+	R saveOrEdit(@RequestBody SettlementDTO dto);
+
+	@GetMapping("/settlement/details")
+	R<Settlement> details(@RequestParam(value = "id") Long id);
+
 }

+ 6 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderFees.java

@@ -181,4 +181,10 @@ public class OrderFees extends OrderBase {
 	@ApiModelProperty(value = "生成货款")
 	private Integer submitPay;
 
+	/**
+	 * 开票金额
+	 */
+	@ApiModelProperty(value = "开票金额")
+	private BigDecimal invoiceAmount;
+
 }

+ 26 - 11
blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java

@@ -19,6 +19,7 @@ package org.springblade.check.controller;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
@@ -42,6 +43,7 @@ import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.finance.feign.IFinanceClient;
 import org.springblade.finance.vojo.Settlement;
 import org.springblade.purchase.sales.entity.Order;
+import org.springblade.purchase.sales.entity.OrderFiles;
 import org.springblade.purchase.sales.feign.IOrderDescClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
@@ -89,12 +91,12 @@ public class AuditProecessController extends BladeController {
 		lambdaQueryWrapper.eq(StringUtils.isNotBlank(auditProecess.getProcessType()), AuditProecess::getProcessType, auditProecess.getProcessType());//业务类型
 		lambdaQueryWrapper.eq(StringUtils.isNotBlank(auditProecess.getAuditStatus()), AuditProecess::getAuditStatus, auditProecess.getAuditStatus());//审核状态
 		lambdaQueryWrapper.eq(auditProecess.getCorpId() != null, AuditProecess::getCorpId, auditProecess.getCorpId());//往来单位
-		lambdaQueryWrapper.like(StringUtils.isNotBlank(auditProecess.getBillNo()),AuditProecess::getBillNo, auditProecess.getBillNo());//业务编号
+		lambdaQueryWrapper.like(StringUtils.isNotBlank(auditProecess.getBillNo()), AuditProecess::getBillNo, auditProecess.getBillNo());//业务编号
 		lambdaQueryWrapper.eq(auditProecess.getSendUserId() != null, AuditProecess::getSendUserId, auditProecess.getSendUserId());//请核人id
 		lambdaQueryWrapper.gt(auditProecess.getApplybegintime() != null, AuditProecess::getSendTime, auditProecess.getApplybegintime());//请核时间
 		lambdaQueryWrapper.le(auditProecess.getApplyendtime() != null, AuditProecess::getSendTime, auditProecess.getApplyendtime());
 		lambdaQueryWrapper.orderByDesc(AuditProecess::getSendTime);
-		lambdaQueryWrapper.ne(auditProecess.getAuditStatus() != null ,AuditProecess::getAuditStatus,"N");
+		lambdaQueryWrapper.ne(auditProecess.getAuditStatus() != null, AuditProecess::getAuditStatus, "N");
 
 		IPage pages = auditProecessService.page(Condition.getPage(query), lambdaQueryWrapper);
 		List<AuditProecess> auditProecessList = pages.getRecords();
@@ -110,7 +112,7 @@ public class AuditProecessController extends BladeController {
 						auditOrderVO.setOrderDate(order.getCreateTime());
 						auditOrderVO.setOrderNo(order.getOrderNo());
 						auditOrderVO.setAmountReceivable(order.getDebitAmount());
-						if (order.getCorpId() != null ) {
+						if (order.getCorpId() != null) {
 							auditOrderVO.setCorpsName(corpsDescClient.getCorpMessage(order.getCorpId()).getData().getCname());
 						}
 					}
@@ -234,7 +236,7 @@ public class AuditProecessController extends BladeController {
 		}
 		//平台代理订单审核
 		else if ("dldd".equals(proecess.getCheckType())) {
-				auditProecessService.agencyOrderProcess(auditProecess);
+			auditProecessService.agencyOrderProcess(auditProecess);
 		}
 		// 办公用品采购
 		else if ("ocg".equals(proecess.getCheckType()) || "oly".equals(proecess.getCheckType())) {
@@ -358,20 +360,21 @@ public class AuditProecessController extends BladeController {
 		int count = auditProecessService.count(auditProecessLambdaQueryWrapper);
 		return R.data(count);
 	}
+
 	@PostMapping("/update")
 	@ApiOperationSupport(order = 10)
 	@ApiOperation(value = "修改", notes = "传入auditProecess")
 	public R update(@Valid @RequestBody AuditProecessDTO auditProecess) {
 		LambdaQueryWrapper<AuditProecess> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(AuditProecess::getIsDelete,0);
+		lambdaQueryWrapper.eq(AuditProecess::getIsDelete, 0);
 		lambdaQueryWrapper.eq(AuditProecess::getTenantId, SecureUtil.getTenantId());
-		lambdaQueryWrapper.eq(AuditProecess::getProcessType,auditProecess.getProcessType());
-		lambdaQueryWrapper.eq(AuditProecess::getCheckType,auditProecess.getCheckType());
-		lambdaQueryWrapper.eq(AuditProecess::getBillId,auditProecess.getBillId());
-		lambdaQueryWrapper.eq(AuditProecess::getPageLabel,auditProecess.getPageLabel());
-		lambdaQueryWrapper.eq(AuditProecess::getAuditStatus,'S');
+		lambdaQueryWrapper.eq(AuditProecess::getProcessType, auditProecess.getProcessType());
+		lambdaQueryWrapper.eq(AuditProecess::getCheckType, auditProecess.getCheckType());
+		lambdaQueryWrapper.eq(AuditProecess::getBillId, auditProecess.getBillId());
+		lambdaQueryWrapper.eq(AuditProecess::getPageLabel, auditProecess.getPageLabel());
+		lambdaQueryWrapper.eq(AuditProecess::getAuditStatus, 'S');
 		List<AuditProecess> list = auditProecessService.list(lambdaQueryWrapper);
-		if (CollectionUtils.isNotEmpty(list)){
+		if (CollectionUtils.isNotEmpty(list)) {
 			for (AuditProecess proecess : list) {
 				proecess.setIsDelete(1);
 				auditProecessService.updateById(proecess);
@@ -380,4 +383,16 @@ public class AuditProecessController extends BladeController {
 		return R.success("删除成功");
 	}
 
+	@GetMapping("/getByOrderFiles")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "查询", notes = "传入srcBillId")
+	public R getByOrderFiles(@RequestParam(value = "srcBillId") Long srcBillId) {
+		List<OrderFiles> orderFilesList = orderDescClient.getOrderFiles(srcBillId);
+		if (ObjectUtils.isNotNull(orderFilesList)) {
+			return R.data(orderFilesList);
+		} else {
+			return R.success("暂无数据");
+		}
+	}
+
 }

+ 117 - 29
blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java

@@ -16,15 +16,20 @@
  */
 package org.springblade.check.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.trade.purchase.extra.feign.IClaimClient;
 import com.trade.purchase.extra.feign.ILeadsClient;
 import com.trade.purchase.office.feign.IOfficeOrderClient;
 import io.seata.spring.annotation.GlobalTransactional;
+import jodd.util.ObjectUtil;
 import lombok.AllArgsConstructor;
 import org.springblade.check.dto.AuditProecessDTO;
 import org.springblade.check.entity.AuditPathsActs;
@@ -41,6 +46,7 @@ import org.springblade.client.feign.IMessageClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.finance.dto.SettlementDTO;
 import org.springblade.finance.feign.IFinanceClient;
 import org.springblade.finance.vojo.Settlement;
 import org.springblade.project.entity.ServiceProject;
@@ -53,6 +59,7 @@ import org.springblade.school.feign.ISalaryClient;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
+import org.springblade.system.user.feign.IUserSearchClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -101,6 +108,10 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 
 	private final ILeadsClient leadsClient;
 
+	private final ISysClient iSysClient;
+
+	private final IUserSearchClient iUserSearchClient;
+
 	@Override
 	public IPage<AuditProecessVO> selectAuditProecessPage(IPage<AuditProecessVO> page, AuditProecessVO auditProecess) {
 		return page.setRecords(baseMapper.selectAuditProecessPage(page, auditProecess));
@@ -419,6 +430,82 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 				if (!save.isSuccess()) {
 					throw new SecurityException("发送消息失败");
 				}
+
+				if (!"681169".equals(AuthUtil.getTenantId())){
+					Settlement settlement = new Settlement();
+					settlement.setId(auditProecess.getSrcBillId());
+					R settlementR = financeClient.details(auditProecess.getSrcBillId());
+					if (settlementR.isSuccess()) {
+						ObjectMapper objectMapper = new ObjectMapper();
+						Settlement settlement1 = objectMapper.convertValue(settlementR.getData(), Settlement.class);
+						SettlementDTO settlementDTO = new SettlementDTO();
+						settlementDTO.setId(settlement1.getId());
+						settlementDTO.setItemsList(settlement1.getItemsList());
+						settlementDTO.setSrcOrderno(settlement1.getSrcOrderno());
+						settlementDTO.setAmount(settlement1.getAmount());
+						settlementDTO.setBillType("付费");
+						settlementDTO.setCaseOverPayment(settlement1.getCaseOverPayment());
+						settlementDTO.setCheckStatus(settlement1.getCheckStatus());
+						settlementDTO.setCorpId(settlement1.getCorpId());
+						settlementDTO.setCreateTime(settlement1.getCreateTime());
+						settlementDTO.setCreateUser(settlement1.getCreateUser());
+						settlementDTO.setCreateUserName(settlement1.getCreateUserName());
+						settlementDTO.setCustomerModel(settlement1.getCustomerModel());
+						settlementDTO.setDc(settlement1.getDc());
+
+						settlementDTO.setFinanceStatus(settlement1.getFinanceStatus());
+
+						settlementDTO.setPageLabel(settlement1.getPageLabel());
+						settlementDTO.setOverPayment(settlement1.getOverPayment());
+						settlementDTO.setPageStatus(settlement1.getPageStatus());
+						settlementDTO.setSettlementType(settlement1.getSettlementType());
+						settlementDTO.setSrcBillId(settlement1.getSrcBillId());
+						settlementDTO.setSysNo(settlement1.getSysNo());
+						settlementDTO.setTenantId(settlement1.getTenantId());
+						settlementDTO.setUrl(settlement1.getUrl());
+						R saveR = financeClient.saveOrEdit(settlementDTO);
+						if (saveR.isSuccess()) {
+
+							R roleId = iSysClient.getRoleIds(AuthUtil.getTenantId(), "财务出纳");
+							if (roleId.isSuccess() && ObjectUtils.isNotNull(roleId.getData())) {
+								R<List<User>> userList = iUserSearchClient.listByRole(roleId.getData().toString());
+								if (userList.isSuccess() && ObjectUtils.isNotNull(userList.getData())) {
+									for (User user : userList.getData()) {
+										//信息
+										Message message = new Message();
+										message.setParameter(String.valueOf(auditProecess.getBillId()));
+										message.setUserName(AuthUtil.getUserName());
+										message.setUserId(AuthUtil.getUserId());
+										message.setToUserId(user.getId());
+										message.setToUserName(user.getName());
+										message.setMessageType(1);
+										message.setTenantId(AuthUtil.getTenantId());
+										message.setCreateUser(AuthUtil.getUserId());
+										message.setCreateTime(new Date());
+										message.setUrl(auditProecess.getUrl());
+										message.setPageLabel(auditProecess.getPageLabel());
+										message.setPageStatus(auditProecess.getPageStatus());
+										message.setMessageBody("付费请核已通过" + ",采购订单号:" + proecessTemp.getBillNo() + ",请继续操作");
+										R messageR = messageClient.save(message);
+										if (!messageR.isSuccess()) {
+											throw new SecurityException("发送消息失败");
+										}
+									}
+								}else {
+									throw new SecurityException("发送消息失败102");
+								}
+
+							} else {
+								throw new SecurityException("发送消息失败101");
+							}
+
+						} else {
+							throw new SecurityException("生成账单保存失败");
+						}
+					} else {
+						throw new SecurityException("生成账单失败");
+					}
+				}
 			}
 			//不通过
 			else if (operate == 2) {
@@ -954,9 +1041,9 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 		List<AuditProecess> auditProecessList = proecessList.stream().filter(e -> e.getBatchNo() == max).collect(Collectors.toList());
 		//如果最新审批记录 第一级已经操作,就禁止撤回
 		long count = auditProecessList.stream().filter(
-				e -> e.getBatchNo() == max &&
-					e.getLevelId() == 1 &&
-					("A".equals(e.getAuditStatus()) || "B".equals(e.getAuditStatus())))
+			e -> e.getBatchNo() == max &&
+				e.getLevelId() == 1 &&
+				("A".equals(e.getAuditStatus()) || "B".equals(e.getAuditStatus())))
 			.count();
 		if (count > 0) {
 			throw new SecurityException("第一级审批已经开始,禁止撤回");
@@ -1459,20 +1546,20 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 			else if (operate == 2) {
 				auditProecess.setAuditStatus("B");
 //				if (auditProecess.getLevelId() == 1) {
-					R submit;
-					if ("fybx".equals(proecessTemp.getCheckType())) {
-						submit = claimClient.passCancel(auditProecess.getSrcBillId());
-						sendMessage.setMessageBody("您的费用报销请核未通过,驳回原因:" + auditProecess.getAuditMsg());
-					} else if ("jjd".equals(proecessTemp.getCheckType())) {
-						submit = handoverClient.passCancel(auditProecess.getSrcBillId());
-						sendMessage.setMessageBody("您的交接单请核未通过,驳回原因:" + auditProecess.getAuditMsg());
-					} else {
-						throw new SecurityException("此审批类型未查到相关审批类型");
-					}
+				R submit;
+				if ("fybx".equals(proecessTemp.getCheckType())) {
+					submit = claimClient.passCancel(auditProecess.getSrcBillId());
+					sendMessage.setMessageBody("您的费用报销请核未通过,驳回原因:" + auditProecess.getAuditMsg());
+				} else if ("jjd".equals(proecessTemp.getCheckType())) {
+					submit = handoverClient.passCancel(auditProecess.getSrcBillId());
+					sendMessage.setMessageBody("您的交接单请核未通过,驳回原因:" + auditProecess.getAuditMsg());
+				} else {
+					throw new SecurityException("此审批类型未查到相关审批类型");
+				}
 
-					if (!submit.isSuccess()) {
-						throw new SecurityException("修改原数据失败");
-					}
+				if (!submit.isSuccess()) {
+					throw new SecurityException("修改原数据失败");
+				}
 //				}
 				R save = messageClient.save(sendMessage);
 				if (!save.isSuccess()) {
@@ -1511,20 +1598,20 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 			else if (operate == 2) {
 				auditProecess.setAuditStatus("B");
 //				if (auditProecess.getLevelId() == 2) {
-					R submit;
-					if ("fybx".equals(proecessTemp.getCheckType())) {
-						submit = claimClient.passCancel(auditProecess.getSrcBillId());
-						sendMessage.setMessageBody("您的费用报销请核未通过,驳回原因:" + auditProecess.getAuditMsg());
-					} else if ("jjd".equals(proecessTemp.getCheckType())) {
-						submit = handoverClient.passCancel(auditProecess.getSrcBillId());
-						sendMessage.setMessageBody("您的交接单请核未通过,驳回原因:" + auditProecess.getAuditMsg());
-					} else {
-						throw new SecurityException("此审批类型未查到相关审批类型");
-					}
+				R submit;
+				if ("fybx".equals(proecessTemp.getCheckType())) {
+					submit = claimClient.passCancel(auditProecess.getSrcBillId());
+					sendMessage.setMessageBody("您的费用报销请核未通过,驳回原因:" + auditProecess.getAuditMsg());
+				} else if ("jjd".equals(proecessTemp.getCheckType())) {
+					submit = handoverClient.passCancel(auditProecess.getSrcBillId());
+					sendMessage.setMessageBody("您的交接单请核未通过,驳回原因:" + auditProecess.getAuditMsg());
+				} else {
+					throw new SecurityException("此审批类型未查到相关审批类型");
+				}
 
-					if (!submit.isSuccess()) {
-						throw new SecurityException("修改原数据失败");
-					}
+				if (!submit.isSuccess()) {
+					throw new SecurityException("修改原数据失败");
+				}
 //				}
 				R save = messageClient.save(sendMessage);
 				if (!save.isSuccess()) {
@@ -1716,6 +1803,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 
 	/**
 	 * 销售机会审批
+	 *
 	 * @param auditProecess
 	 */
 	@Override

+ 49 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/controller/CorpsDescController.java

@@ -1,6 +1,7 @@
 package org.springblade.client.corps.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.core.toolkit.StringUtils;
@@ -673,4 +674,52 @@ public class CorpsDescController extends BladeController {
 		return R.data(mapList);
 	}
 
+	/**
+	 * 分页 客户详情
+	 */
+	@GetMapping("/listAll")
+	public R<List<CorpsDescVO>> listAll() {
+		QueryWrapper<CorpsDesc> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("is_deleted",0);
+		queryWrapper.eq("tenant_id",AuthUtil.getTenantId());
+		queryWrapper.eq("corp_type","GS");
+		List<CorpsDesc> pages = corpsDescService.list(queryWrapper);
+		List<CorpsDescVO> corpsDescVOList = new ArrayList<>();
+		if (CollectionUtils.isNotEmpty(pages)) {
+			corpsDescVOList = BeanUtil.copy(pages, CorpsDescVO.class);
+			corpsDescVOList.forEach(item -> {
+				if (StringUtils.isNotBlank(item.getAdminProfiles())) {
+					List<String> list = Arrays.asList(item.getAdminProfiles().split(","));
+					StringBuffer stringBuffer = new StringBuffer();
+					if (CollectionUtils.isNotEmpty(list)) {
+						list.forEach(items -> {
+							R<User> user = userClient.userInfoById(Long.valueOf(items));
+							if (user.isSuccess() && user.getData() != null) {
+								stringBuffer.append(user.getData().getName()).append(",");
+							}
+						});
+					}
+					item.setAdminProfilesName(stringBuffer.toString());
+				}
+				if (StringUtils.isNotBlank(item.getBelongtocompany())) {
+					CorpsDesc desc = corpsDescService.getById(item.getBelongtocompany());
+					item.setBelongCompany(desc.getCname());
+				}
+
+				List<Long> typeIdList = corpsTypeDescService.list(new LambdaQueryWrapper<CorpsTypeDesc>().eq(CorpsTypeDesc::getCorpId, item.getId()))
+					.stream().map(CorpsTypeDesc::getCorpTypeId).collect(Collectors.toList());
+
+				if (CollectionUtil.isNotEmpty(typeIdList)) {
+					String typeName = corpsTypeService.list(new LambdaQueryWrapper<CorpsType>()
+						.in(CorpsType::getId, typeIdList)
+						.eq(CorpsType::getCorpType, item.getCorpType())
+						.eq(CorpsType::getIsDeleted, 0)
+					).stream().map(CorpsType::getCname).collect(Collectors.joining(","));
+					item.setCorpsTypeName(typeName);
+				}
+			});
+		}
+		return R.data(corpsDescVOList);
+	}
+
 }

+ 1 - 2
blade-service/blade-project/src/main/java/org/springblade/project/handler/TaskCompleteJobHandler.java

@@ -25,8 +25,7 @@ import java.util.concurrent.*;
 @AllArgsConstructor
 public class TaskCompleteJobHandler {
 
-	@Autowired
-	private ServiceProjectItemService serviceProjectItemService;
+	private final ServiceProjectItemService serviceProjectItemService;
 
 	private final IMessageClient iMessageClient;
 

+ 1 - 0
blade-service/blade-project/src/main/java/org/springblade/project/mapper/ServiceProjectItemMapper.xml

@@ -60,6 +60,7 @@
 		  a.id=b.p_id
 	AND b.tenant_id = #{tenantId}
 	and b.is_deleted = 0
+	and b.branch = 'N'
     AND b.STATUS IN ( '0', '1', '2', '3', '4', '5', '6' )
         <if test='userName != null and userName!= ""'>
             AND b.user_name = #{userName}

+ 18 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderFeesController.java

@@ -17,6 +17,7 @@
 package org.springblade.purchase.sales.controller;
 
 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;
@@ -34,6 +35,7 @@ import org.springblade.purchase.sales.vo.OrderFeesVO;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.math.BigDecimal;
 
 /**
  * 订单费用明细表 控制器
@@ -149,4 +151,20 @@ public class OrderFeesController extends BladeController {
 		return R.status(true);
 	}
 
+	@GetMapping("/updateInvoiceAmount")
+	R updateInvoiceAmount(@RequestParam("id") Long id,@RequestParam("invoiceAmount") BigDecimal invoiceAmount) {
+		if (id == null) {
+			throw new SecurityException("修改发票金额失败");
+		}
+		OrderFees orderFees = orderFeesService.getById(id);
+		if (ObjectUtils.isNotNull(orderFees)){
+			orderFees.setInvoiceAmount(invoiceAmount);
+			orderFeesService.updateById(orderFees);
+			return R.status(true);
+		}else{
+			return R.status(false);
+		}
+
+	}
+
 }

+ 80 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/entrance/EntranceOrderController.java

@@ -16,11 +16,13 @@ import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IGoodsDescClient;
 import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.excel.util.ExcelUtil;
 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.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.deliver.goods.entity.Delivery;
 import org.springblade.deliver.goods.feign.IDeliveryClient;
@@ -33,10 +35,12 @@ import org.springblade.purchase.sales.service.*;
 import org.springblade.purchase.sales.vo.OrderItemBillNoVO;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
 import org.springblade.purchase.sales.vo.OrderVO;
+import org.springblade.purchase.sales.vo.PurchaseOrderBExcel;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.math.BigDecimal;
 import java.util.*;
@@ -365,4 +369,80 @@ public class EntranceOrderController extends BladeController {
 		return R.status(orderFeesService.removeById(orderFees.getSrcParentId()));
 	}
 
+	/**
+	 * 自定义分页 进口销售单控制器
+	 */
+	@GetMapping("/selOrderExportB")
+	public void selOrderExportB(OrderVO order, Query query, HttpServletResponse response) {
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Order::getTenantId,SecureUtil.getTenantId());//租户id
+		lambdaQueryWrapper.eq(Order::getIsDeleted,0);//订单是否有效
+		lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.SALES.getType());//订单类型
+		lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.IMPORT.getType());//贸易类型
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()),Order::getOrderNo,order.getOrderNo());//订单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()),Order::getCorpId,order.getCorpId());//客户id
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getStorageId()), Order::getStorageId, order.getStorageId());//仓库id
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getContractStartDate()),Order::getBusinesDate,order.getContractStartDate());//合同日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getContractEndDate()),Order::getBusinesDate,order.getContractEndDate());//合同日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSrcOrderNo()),Order::getSrcOrderNo,order.getSrcOrderNo());//订单来源
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getShippingAddress()),Order::getShippingAddress,order.getShippingAddress());//发货地址
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getArrivalAddress()),Order::getArrivalAddress,order.getArrivalAddress());//到货地址
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getActualDeliveryDateStart()),Order::getActualDeliveryDate,order.getActualDeliveryDateStart());//发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getActualDeliveryDateEnd()),Order::getActualDeliveryDate,order.getActualDeliveryDateEnd());//发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDeliveryStartDate()),Order::getRequiredDeliveryDate,order.getDeliveryStartDate());//要求发货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDeliveryEndDate()),Order::getRequiredDeliveryDate,order.getDeliveryEndDate());//要求发货日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getArrivalDateStart()),Order::getRequiredArrivalDate,order.getArrivalDateStart());//要求到货日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getArrivalDateEnd()),Order::getRequiredArrivalDate,order.getArrivalDateEnd());//要求到货日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderStatus()),Order::getOrderStatus,order.getOrderStatus());//单据状态
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSysNo()),Order::getSysNo,order.getSysNo());//系统编号
+		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()),Order::getCreateUser,order.getCreateUser());//制单人
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getCreateTimeStart()),Order::getCreateTime,order.getCreateTimeStart());//制单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getCreateTimeEnd()),Order::getCreateTime,order.getCreateTimeEnd());//制单日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getDateValidityStart()),Order::getDateValidity,order.getDateValidityStart());//有效日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getDateValidityEnd()),Order::getDateValidity,order.getDateValidityEnd());//有效日期结束
+		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getOrderStartDate()),Order::getAdvanceCollectionDate,order.getOrderStartDate());//首付日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getOrderEndDate()),Order::getAdvanceCollectionDate,order.getOrderEndDate());//首付日期结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfLoad()),Order::getPortOfLoad,order.getPortOfLoad());//装货港
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPortOfDestination()),Order::getPortOfDestination,order.getPortOfDestination());//目的港
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPlannedDeliveryStart()), Order::getPlannedDeliveryDate,order.getPlannedDeliveryStart());//计划交货开始
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getPlannedDeliveryEnd()), Order::getPlannedDeliveryDate,order.getPlannedDeliveryEnd());//计划交货结束
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getBillNo()),Order::getBillNo,order.getBillNo());//提单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderRemark()),Order::getOrderRemark,order.getOrderRemark());//备注
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderAmount()),Order::getOrderAmount,order.getOrderAmount());//合同金额
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getSalesName()),Order::getSalesName,order.getSalesName());//业务员
+		lambdaQueryWrapper.orderByDesc(Order::getId);
+		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
+		List<Order> records = page.getRecords();
+			records.stream().forEach(item ->{
+				if (item.getCorpId() != null){
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getCorpId());//客户
+					if (corpMessage.isSuccess() && corpMessage.getData() != null){
+						item.setCorpsName(corpMessage.getData().getCname());
+					}
+				}
+				if (item.getBelongToCorpId() != null){
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(item.getBelongToCorpId());//销售公司
+					if (corpMessage.isSuccess() && corpMessage.getData() != null){
+						item.setBelongToCorpName(corpMessage.getData().getCname());
+					}
+				}
+				R<User> user = userClient.userInfoById(item.getCreateUser());//制单人
+				if (user.isSuccess() && user.getData() != null){
+					item.setCreateUserName(user.getData().getName());
+				}
+				//获取订单明细
+				List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", item.getId()).eq("is_deleted", 0));
+				if (CollectionUtils.isNotEmpty(list)){
+					item.setOrderQuantity(list.stream().filter(e->e.getOrderQuantity()!=null).map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//数量合计
+					item.setAmount(list.stream().filter(e->e.getAmount()!=null).map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//销售金额
+					item.setPurchaseAmount(list.stream().filter(e->e.getPurchaseAmount()!=null).map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//采购金额
+					item.setActualQuantity(list.stream().filter(e->e.getActualQuantity()!=null).map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//发货数量
+					item.setActualWeight(list.stream().map(OrderItems::getActualWeight).reduce(BigDecimal.ZERO, BigDecimal::add));//已发重量(吨)
+				}
+
+			});
+		List<PurchaseOrderBExcel> list = BeanUtil.copy(records, PurchaseOrderBExcel.class);
+		ExcelUtil.export(response, "销售订单", "销售订单", list, PurchaseOrderBExcel.class);
+	}
+
 }

+ 16 - 4
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderDescClient.java

@@ -1,6 +1,7 @@
 package org.springblade.purchase.sales.feign;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -11,11 +12,10 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
 import org.springblade.purchase.sales.entity.Order;
+import org.springblade.purchase.sales.entity.OrderFiles;
+import org.springblade.purchase.sales.service.IOrderFilesService;
 import org.springblade.purchase.sales.service.IOrderService;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
 import java.math.BigDecimal;
@@ -32,6 +32,8 @@ public class OrderDescClient implements IOrderDescClient {
 
 	private final IOrderService iOrderService;
 
+	private final IOrderFilesService iOrderFilesService;
+
 	@Override
 	@PostMapping(UPDATE_ORDER)
 	public R updateOrder(Order order) {
@@ -154,5 +156,15 @@ public class OrderDescClient implements IOrderDescClient {
 		return iOrderService.list(orderLambdaQueryWrapper);
 	}
 
+	@Override
+	@GetMapping(GET_BY_ORDER_FILES)
+	public List<OrderFiles> getOrderFiles(@RequestParam("srcBillId")Long srcBillId) {
+		QueryWrapper<OrderFiles> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("pid",srcBillId);
+		queryWrapper.eq("is_deleted",0);
+		queryWrapper.eq("status",0);
+		return iOrderFilesService.list(queryWrapper);
+	}
+
 
 }

+ 4 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -163,7 +163,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				.eq(Order::getOrderNo, order.getOrderNo())
 				.eq(Order::getTradeType, order.getTradeType())
 				.eq(Order::getBillType, order.getBillType())
-				.eq(Order::getTenantId, AuthUtil.getTenantId());
+				.eq(Order::getTenantId, AuthUtil.getTenantId())
+				.eq(Order::getIsDeleted, 0);
 			Integer count = baseMapper.selectCount(orderLambdaQueryWrapper);
 			if (count != null && count > 0) {
 				throw new SecurityException("合同号:" + order.getOrderNo() + "已存在,禁止重复添加");
@@ -177,7 +178,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				.eq(Order::getOrderNo, order.getOrderNo())
 				.eq(Order::getTradeType, order.getTradeType())
 				.eq(Order::getBillType, order.getBillType())
-				.eq(Order::getTenantId, AuthUtil.getTenantId());
+				.eq(Order::getTenantId, AuthUtil.getTenantId())
+				.eq(Order::getIsDeleted, 0);
 			Integer count = baseMapper.selectCount(orderLambdaQueryWrapper);
 			if (count != null && count > 0) {
 				throw new SecurityException("合同号:" + order.getOrderNo() + "已存在,禁止重复添加");

+ 15 - 0
blade-service/blade-stock/src/main/java/org/springblade/stock/controller/StockGoodsController.java

@@ -17,8 +17,10 @@
 package org.springblade.stock.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
@@ -254,6 +256,19 @@ public class StockGoodsController extends BladeController {
 	}
 
 	/**
+	 * 通过提单号查询库存
+	 */
+	@GetMapping("/listByBillNo")
+	public R<List<StockGoods>> page(@RequestParam(value = "billNo",required = false) String billNo) {
+		QueryWrapper<StockGoods> queryWrapper = new QueryWrapper<>();
+		queryWrapper.like(ObjectUtils.isNotNull(billNo),"billNo", billNo);
+		queryWrapper.like("tenant_id", AuthUtil.getTenantId());
+		queryWrapper.like("is_deleted", 0);
+		List<StockGoods> pages = stockGoodsService.list(queryWrapper);
+		return R.data(pages);
+	}
+
+	/**
 	 * 新增 库存账
 	 */
 	@PostMapping("/save")

+ 113 - 11
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java

@@ -17,8 +17,10 @@
 package org.springblade.finance.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
@@ -58,9 +60,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.validation.Valid;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 结算表 控制器
@@ -280,7 +280,7 @@ public class SettlementController extends BladeController {
 		if (CollectionUtils.isEmpty(dto.getItemsList())) {
 			throw new SecurityException("传入数据不能为空");
 		}
-		return R.data(settlementService.apply(dto.getItemsList(), dto.getBillType(), dto.getUrl(), dto.getPageStatus(), dto.getPageLabel(), dto.getCheckType(),dto.getTradeType()));
+		return R.data(settlementService.apply(dto.getItemsList(), dto.getBillType(), dto.getUrl(), dto.getPageStatus(), dto.getPageLabel(), dto.getCheckType(), dto.getTradeType()));
 	}
 
 	/**
@@ -323,7 +323,7 @@ public class SettlementController extends BladeController {
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "付销售-收款结算-生成-销售收费账单", notes = "传入销售申请对象")
 	public R paymentApply(@RequestBody ApplyDTO dto) {
-		settlementService.paymentApply(dto.getItemsList(), dto.getBillType(), dto.getBelongCompany(),dto.getTradeType());
+		settlementService.paymentApply(dto.getItemsList(), dto.getBillType(), dto.getBelongCompany(), dto.getTradeType());
 		return R.success("操作成功");
 	}
 
@@ -365,9 +365,9 @@ public class SettlementController extends BladeController {
 			.eq(Acc::getIsDeleted, 0);
 		List<Acc> accList = accService.list(accLambdaQueryWrapper);
 		return R.data(accList.stream().filter(e -> e.getSettlementAmount() != null).reduce(BigDecimal.ZERO, (x, y) -> {
-			if (!y.getExchangeRate().equals(BigDecimal.ZERO)){
+			if (!y.getExchangeRate().equals(BigDecimal.ZERO)) {
 				return x.add(y.getSettlementAmount().multiply(y.getExchangeRate()));
-			}else{
+			} else {
 				return x.add(y.getSettlementAmount());
 			}
 		}, BigDecimal::add));
@@ -447,6 +447,7 @@ public class SettlementController extends BladeController {
 		List<JdyTool.Employee> employeeList = settlementService.getEmployeeList(accountName, search);
 		return R.data(employeeList);
 	}
+
 	/**
 	 * 分页 结算表
 	 */
@@ -459,8 +460,8 @@ public class SettlementController extends BladeController {
 		settlementLambdaQueryWrapper.eq(Settlement::getTenantId, AuthUtil.getTenantId());
 		settlementLambdaQueryWrapper.eq(Settlement::getIsDeleted, 0);
 		settlementLambdaQueryWrapper.ne(Settlement::getCheckStatus, "请核成功");
-		settlementLambdaQueryWrapper.ge(Func.isNotEmpty(settlement.getSettlementStartDate()), Settlement::getSettlementDate,settlement.getSettlementStartDate());//日期开始
-		settlementLambdaQueryWrapper.le(Func.isNotEmpty(settlement.getSettlementEndDate()),Settlement::getSettlementDate,settlement.getSettlementEndDate());//日期结束
+		settlementLambdaQueryWrapper.ge(Func.isNotEmpty(settlement.getSettlementStartDate()), Settlement::getSettlementDate, settlement.getSettlementStartDate());//日期开始
+		settlementLambdaQueryWrapper.le(Func.isNotEmpty(settlement.getSettlementEndDate()), Settlement::getSettlementDate, settlement.getSettlementEndDate());//日期结束
 		return R.data(settlementService.count(settlementLambdaQueryWrapper));
 	}
 
@@ -485,8 +486,8 @@ public class SettlementController extends BladeController {
 	//查询订单信息
 	@GetMapping("/selectFinanceAcc")
 	public List<Acc> selectFinanceAcc(@RequestParam(value = "srcParentId") Long srcParentId,
-									   @RequestParam(value = "billType") String billType,
-									   @RequestParam(value = "tradeType") String tradeType) {
+									  @RequestParam(value = "billType") String billType,
+									  @RequestParam(value = "tradeType") String tradeType) {
 		LambdaQueryWrapper<Acc> accLambdaQueryWrapper = new LambdaQueryWrapper<>();
 		accLambdaQueryWrapper
 			.eq(Acc::getSrcFeesId, srcParentId)
@@ -525,4 +526,105 @@ public class SettlementController extends BladeController {
 		return date + " 23:59:59";
 	}
 
+	/**
+	 * 详情
+	 */
+	@GetMapping("/details")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "id")
+	public R<Settlement> details(@RequestParam(value = "id", required = true) Long id) throws Exception {
+		/*	JdyTool.test();*/
+		Settlement detail = settlementService.getById(id);
+
+		if (ObjectUtil.isNotEmpty(detail.getUpdateUser())) {
+			R<User> user = iUserClient.userInfoById(detail.getUpdateUser());
+			if (user.isSuccess() && user.getData() != null) {
+				detail.setUpdateUserName(user.getData().getName());
+			}
+		}
+
+		if (ObjectUtil.isNotEmpty(detail.getUpdateUser())) {
+			R<User> user = iUserClient.userInfoById(detail.getCreateUser());
+			if (user.isSuccess() && user.getData() != null) {
+				detail.setCreateUserName(user.getData().getName());
+			}
+		}
+
+		LambdaQueryWrapper<Items> itemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		itemsLambdaQueryWrapper.eq(Items::getPid, detail.getId()).eq(Items::getIsDeleted, 0);
+		List<Items> list = itemsService.list(itemsLambdaQueryWrapper);
+
+		LambdaQueryWrapper<InvoiceItem> itemLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		itemLambdaQueryWrapper.eq(InvoiceItem::getPid, detail.getId()).eq(InvoiceItem::getIsDeleted, 0);
+		List<InvoiceItem> invoiceItemList = iInvoiceItemService.list(itemLambdaQueryWrapper);
+		detail.setInvoiceItemList(invoiceItemList);
+		if (CollectionUtils.isNotEmpty(list)) {
+			list.forEach(e -> {
+				if (ObjectUtil.isNotEmpty(detail.getUpdateUser())) {
+					R<User> user = iUserClient.userInfoById(e.getUpdateUser());
+					if (user.isSuccess() && user.getData() != null) {
+						e.setUpdateUserName(user.getData().getName());
+					}
+				}
+				if (ObjectUtil.isNotEmpty(detail.getUpdateUser())) {
+					R<User> user = iUserClient.userInfoById(e.getCreateUser());
+					if (user.isSuccess() && user.getData() != null) {
+						e.setCreateUserName(user.getData().getName());
+					}
+				}
+
+				//客户名称
+				if (ObjectUtil.isNotEmpty(e.getCorpId())) {
+					e.setCorpName(corpsDescClient.getCorpMessage(e.getCorpId()).getData().getCname());
+				}
+				//费用名称
+				if (StringUtil.isNotBlank(e.getCostType())) {
+					e.setItemName(iFeesDescClient.detail(Long.valueOf(e.getCostType())).getData().getCname());
+				}
+			});
+		}
+
+		detail.setItemsList(list);
+		//获取客户中文名
+		if (detail.getCorpId() != null) {
+			R<List<Map<String, Object>>> corpMessage = corpsDescClient.getCorpsMessage(detail.getCorpId().toString());
+			if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+				detail.setCustomerModel(corpMessage.getData());
+			}
+		}
+
+		List<CorpsBank> corpsBanks = corpsDescClient.listBankByCorpId(detail.getCorpId());
+		detail.setBankList(corpsBanks);
+		//制单人
+		detail.setCreateUserName(iUserClient.userInfoById(detail.getCreateUser()).getData().getRealName());
+
+		return R.data(detail);
+	}
+
+	/**
+	 * 撤销审核
+	 */
+	@GetMapping("/feesDetails")
+	public R<List<Map<String, Object>>> repealCancel(@RequestParam(value = "id") Long id) {
+		if (id == null) {
+			throw new SecurityException("缺少必要的参数");
+		}
+		List<Map<String, Object>> list = new ArrayList<>();
+		QueryWrapper<Items> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("Src_fees_id", id);
+		queryWrapper.eq("is_deleted", 0);
+		queryWrapper.eq("tenant_id", AuthUtil.getTenantId());
+		List<Items> items = itemsService.list(queryWrapper);
+		for (Items item : items) {
+			Map<String, Object> map = new HashMap<>();
+			Settlement settlement = settlementService.getById(item.getPid());
+			if (ObjectUtils.isNotNull(settlement)) {
+				map.put("amount", settlement.getAmount());
+				map.put("invoice_time", settlement.getInvoiceTime());
+				list.add(map);
+			}
+		}
+		return R.data(list);
+	}
+
 }

+ 9 - 4
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -1031,7 +1031,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			settlementDTO.setCreateUserName(AuthUtil.getUserName());
 			if (CollectionUtils.isNotEmpty(itemsList)) {
 				itemsList.forEach(e -> {
-
+					e.setId(null);
 					e.setPid(model.getId());
 					e.setTenantId(AuthUtil.getTenantId());
 					e.setCreateTime(new Date());
@@ -1204,8 +1204,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			.eq(InvoiceItem::getIsDeleted, 0)
 			.eq(InvoiceItem::getTenantId, AuthUtil.getTenantId());
 
-		int count = invoiceItemMapper.selectCount(invoiceItemLambdaQueryWrapper);
-		if (count == 0) {
+		InvoiceItem invoiceItem = invoiceItemMapper.selectOne(invoiceItemLambdaQueryWrapper);
+		if (ObjectUtils.isNull(invoiceItem)) {
 			throw new SecurityException("未查到开票信息,禁止操作");
 		}
 
@@ -1232,10 +1232,15 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 				Acc acc = accMapper.selectById(accId);
 				if (acc == null) {
 					throw new SecurityException("操作账单失败");
-				}
+				}//
 				//增加明细开票金额
 				acc.setInvoiceAmount(acc.getInvoiceAmount() != null ? acc.getInvoiceAmount().add(e.getThisAmount()) : new BigDecimal("0").add(e.getThisAmount()));
 				accMapper.updateById(acc);
+				if (ObjectUtils.isNotNull(acc.getSrcFeesId())){
+					orderFeesClient.updateInvoiceAmount(acc.getSrcFeesId(),acc.getInvoiceAmount());
+				}else{
+					throw new SecurityException("更新费用明细失败");
+				}
 			});
 			select.setFoundStatus("核销完成");
 			baseMapper.updateById(select);

+ 112 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/excel/PurchaseOrderAExcel.java

@@ -0,0 +1,112 @@
+package com.trade.purchase.excel;
+
+
+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 PurchaseOrderAExcel {
+
+	/**
+	 * 合同号
+	 */
+	@ExcelProperty(value = "合同号")
+	private String orgOrderNo;
+	/**
+	 * 提单号
+	 */
+	@ExcelProperty(value = "提单号")
+	private String billNo;
+
+	@ExcelProperty(value = "供应商")
+	private String strCorpName;
+
+	/**
+	 * 所属公司
+	 */
+	@ExcelProperty(value = "所属公司")
+	private String belongToCorpName;
+
+	/**
+	 * 合同日期
+	 */
+	@ExcelProperty(value = "合同日期")
+	private Date businesDate;
+
+	/**
+	 * 合同金额
+	 */
+	@ExcelProperty(value = "合同金额")
+	private BigDecimal orderAmount;
+
+	/**
+	 * 件数
+	 */
+	@ExcelProperty(value = "件数")
+	private BigDecimal orderQuantity;
+	/**
+	 * 码单重量
+	 */
+	@ExcelProperty(value = "码单重量")
+	private BigDecimal billWeight;
+	/**
+	 * 发票重量
+	 */
+	@ExcelProperty(value = "发票重量")
+	private BigDecimal invoiceWeight;
+	/**
+	 * 已收数量
+	 */
+	@ExcelProperty(value = "已收数量")
+	private BigDecimal storageQuantity;
+
+	@ExcelProperty(value = "已收重量")
+	private BigDecimal actualWeight;
+	/**
+	 * 销售金额
+	 */
+	@ExcelProperty(value = "销售金额")
+	private BigDecimal amount;
+	/**
+	 * 已付金额
+	 */
+	@ExcelProperty(value = "已付金额")
+	private BigDecimal settlmentAmount;
+	/**
+	 * 业务员
+	 */
+	@ExcelProperty(value = "业务员")
+	private String salesName;
+
+	/**
+	 * 要求发货日期
+	 */
+	@ExcelProperty(value = "要求发货日期")
+	private Date requiredDeliveryDate;
+	/**
+	 * 要求到货日期
+	 */
+	@ExcelProperty(value = "要求到货日期")
+	private Date requiredArrivalDate;
+
+	/**
+	 * 付款/开证日期
+	 */
+	@ExcelProperty(value = "付款/开证日期")
+	private Date accountsCollectionDate;
+
+	@ExcelProperty(value = "信用证到期日")
+	private Date latestDate;
+}

+ 7 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/component/impl/DefaultOrderSaveImpl.java

@@ -23,6 +23,7 @@ import org.springblade.client.feign.ISerialClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.system.feign.IDictBizClient;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
@@ -147,6 +148,9 @@ public class DefaultOrderSaveImpl implements IOrderSave {
 			{
 				order.setOrgOrderNo(order.getOrderNo());
 			}
+			if ("橡胶".equals(order.getOrderType())){
+				order.setOrderAmount(order.getSalesPrice().multiply(order.getCartonWeight()));
+			}
 			//订单编号转大写
 			//order.setOrderNo(order.getOrderNo().toUpperCase());
 			//order.setSysNo(order.getSysNo().toUpperCase());
@@ -155,6 +159,9 @@ public class DefaultOrderSaveImpl implements IOrderSave {
 			order.setCreateUser(AuthUtil.getUserId());
 			orderService.insert(order);
 		} else {
+			if ("橡胶".equals(order.getOrderType())){
+				order.setOrderAmount(order.getSalesPrice().multiply(order.getCartonWeight()));
+			}
 			//防止有人改成小写的字母
 			//order.setOrderNo(order.getOrderNo().toUpperCase());
 			//order.setSysNo(order.getSysNo().toUpperCase());

+ 173 - 34
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java

@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.trade.purchase.excel.PurchaseOrderAExcel;
 import com.trade.purchase.excel.PurchaseOrderExcel;
 import com.trade.purchase.order.dto.OrderSubmitDto;
 import com.trade.purchase.order.entity.*;
@@ -453,44 +454,182 @@ public class PurchaseOrderController extends BladeController {
 		ExcelUtil.export(response, "采购订单", "采购订单", list, PurchaseOrderExcel.class);
 	}
 
-/*	*//**
-	 * 自定义分页 销售或采购订单表
-	 *//*
-	@GetMapping("/page")
-	@ApiOperationSupport(order = 3)
-	@ApiOperation(value = "分页", notes = "传入order")
-	public R<IPage<OrderVO>> page(OrderVO order, Query query) {
-		order.setIsDeleted(0);
-		order.setTenantId(AuthUtil.getTenantId());
-		order.setBillType(OrderTypeEnum.PURCHASE.getType());
-		order.setTradeType(OrderTypeEnum.IMPORT.getType());
-		IPage<OrderVO> pages = orderService.selectOrderPage(Condition.getPage(query), order);
-		return R.data(pages);
-	}*/
-
 	/**
-	 * 新增 销售或采购订单表
+	 * 销售或采购订单表导出
 	 */
-	/*@PostMapping("/save")
-	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "新增", notes = "传入order")
-	public R<String> save(@Valid @RequestBody OrderSubmitDto submitDto) {
-		return orderService.saveOrderMessage(submitDto);
-	}*/
+	@GetMapping("/selOrderExportA")
+	public void selOrderExportA( @RequestParam(name = "current", defaultValue = "1") Integer current,
+					  @RequestParam(name = "size", defaultValue = "10") Integer size,
+					  @RequestParam(value = "billNo",required = false) String billNo,//提单号
+					  @RequestParam(value = "orderNo",required = false) String orderNo,//合同号
+					  @RequestParam(value = "tradeType",required = false) String tradeType,//贸易类型
+					  @RequestParam(value = "strCorpName",required = false) String strCorpName,//供应商名称
+					  @RequestParam(value = "corpId",required = false) String corpId,//供应商id
+					  @RequestParam(value = "strPurchaserName",required = false) String strPurchaserName,//采购商名称
+					  @RequestParam(value = "salesName",required = false) String salesName,//业务员
 
-	/**
-	 * 修改 销售或采购订单表
-	 */
-	/*@PostMapping("/update")
-	@ApiOperationSupport(order = 5)
-	@ApiOperation(value = "修改", notes = "传入order")
-	public R<String> update(@Valid @RequestBody Order order) {
-		if (order.getId() == null) {
-			return R.fail(ERROR_MSG);
+					  @RequestParam(value = "banksAccountName",required = false) String banksAccountName,//公司户头
+					  @RequestParam(value = "packageRemarks",required = false) String packageRemarks,//包装要求
+					  @RequestParam(value = "createUser",required = false) Long createUser,//制单人
+					  @RequestParam(value = "paymentType",required = false) String paymentType,//付款方式
+					  @RequestParam(value = "createStartTime",required = false) String createStartTime,//制单日期
+					  @RequestParam(value = "createEndTime",required = false) String createEndTime,//制单日期
+
+
+					  @RequestParam(value = "businesStartDate",required = false) String businesStartDate,//订单开始时间  busines_date
+					  @RequestParam(value = "businesEndDate",required = false) String businesEndDate,//订单结束时间
+					  @RequestParam(value = "accountsCollectionStartDate",required = false) String accountsCollectionStartDate,//应收(付)款开始时间  accounts_collection_date
+					  @RequestParam(value = "accountsCollectionEndDate",required = false) String accountsCollectionEndDate,//应收(付)款结束时间
+
+					  @RequestParam(value = "dateOfStartArrival",required = false) String dateOfStartArrival,//实际到港开始日期 date_of_arrival
+					  @RequestParam(value = "dateOfEndArrival",required = false) String dateOfEndArrival,//实际到港结束时间,
+
+					  @RequestParam(value = "requiredDeliveryStartDate",required = false) String requiredDeliveryStartDate,//要求发货开始日期  required_delivery_date
+					  @RequestParam(value = "requiredDeliveryEndDate",required = false) String requiredDeliveryEndDate,//要求发货结束时间
+
+					  @RequestParam(value = "requiredArrivalStartDate",required = false) String requiredArrivalStartDate,//要求到货开始日期  required_arrival_date
+					  @RequestParam(value = "requiredArrivalEndDate",required = false) String requiredArrivalEndDate,//要求到货结束日期
+
+					  @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,HttpServletResponse response
+	)
+	{
+
+		QueryWrapper<Order> queryWrapper =new QueryWrapper<>();
+		queryWrapper.eq("trade_type",tradeType);
+
+		//供应商
+		if(StringUtils.isNotBlank(strCorpName))
+		{
+			List<CorpsDesc> corpsDescs = corpsDescClient.listCorpByName(strCorpName);
+			if(CollectionUtils.isNotEmpty(corpsDescs))
+			{
+				List<Long> corpIds = corpsDescs.stream().map(CorpsDesc::getId).collect(Collectors.toList());
+				queryWrapper.in("corp_id",corpIds);
+			}
+		}
+		//采购商
+		if(StringUtils.isNotBlank(strPurchaserName))
+		{
+			List<CorpsDesc> corpsDescs = corpsDescClient.listCorpByName(strPurchaserName);
+			if(CollectionUtils.isNotEmpty(corpsDescs))
+			{
+				List<Long> purchaserIds = corpsDescs.stream().map(CorpsDesc::getId).collect(Collectors.toList());
+				queryWrapper.in("purchaser_id",purchaserIds);
+			}
 		}
-		order.setIsDeleted(1);
-		return R.status(orderService.updateById(order));
-	}*/
+		queryWrapper.like(StringUtils.isNotBlank(banksAccountName),"banks_account_name",banksAccountName);
+		queryWrapper.like(StringUtils.isNotBlank(packageRemarks),"package_remarks",packageRemarks);
+		queryWrapper.like(StringUtils.isNotBlank(salesName),"sales_name",salesName);
+		queryWrapper.like(StringUtils.isNotBlank(orderNo),"order_no",orderNo);
+		queryWrapper.like(StringUtils.isNotBlank(paymentType),"payment_type",paymentType);
+		queryWrapper.eq(StringUtils.isNotBlank(corpId),"corp_id",corpId);
+		queryWrapper.eq("tenant_id",AuthUtil.getTenantId());
+		queryWrapper.eq(createUser!=null,"create_user",createUser);
+		queryWrapper.eq("bill_type",OrderTypeEnum.PURCHASE.getType());
+		queryWrapper.eq("trade_type",order.getTradeType());
+		queryWrapper.like(StringUtils.isNotBlank(billNo),"bill_no",billNo);
+		queryWrapper.between(StringUtils.isNotBlank(createStartTime)&&StringUtils.isNotBlank(createEndTime),"create_time",createStartTime,createEndTime);
+		queryWrapper.between(StringUtils.isNotBlank(businesStartDate)&&StringUtils.isNotBlank(businesEndDate),"busines_date",businesStartDate,businesEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(accountsCollectionStartDate)&&StringUtils.isNotBlank(accountsCollectionEndDate),"accounts_collection_date",accountsCollectionStartDate,accountsCollectionEndDate);
+		queryWrapper.between(StringUtils.isNotBlank(dateOfStartArrival)&&StringUtils.isNotBlank(dateOfEndArrival),"date_of_arrival",dateOfStartArrival,dateOfEndArrival);
+		queryWrapper.between(StringUtils.isNotBlank(requiredDeliveryStartDate)&&StringUtils.isNotBlank(requiredDeliveryEndDate),"required_delivery_date",requiredDeliveryStartDate,requiredDeliveryEndDate);
+		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.le("balance_amount",BigDecimal.ZERO);
+			queryWrapper.gt("settlment_amount",BigDecimal.ZERO);
+		}else if (gathering != null && gathering == 1){
+			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> records = pages.getRecords();
+		if(CollectionUtils.isNotEmpty(records))
+		{
+			records.forEach(e->{
+				//所属公司
+				if(e.getBelongToCorpId()!=null)
+				{
+					R<CorpsDesc> corpMessage3 = corpsDescClient.getCorpMessage(e.getBelongToCorpId());
+					if(corpMessage3.getData()!=null)
+					{
+						e.setBelongToCorpName(corpMessage3.getData().getCname());
+					}
+				}
+
+				//制单人名字
+				if(e.getCreateUser()!=null)
+				{
+					R<User> userR = userClient.userInfoById(e.getCreateUser());
+					if(userR.isSuccess())
+					{
+						e.setCreateUserName(userR.getData().getRealName());
+					}
+				}
+
+				//修改制单人名字
+				if(e.getUpdateUser()!=null)
+				{
+					R<User> userR = userClient.userInfoById(e.getUpdateUser());
+					if(userR.isSuccess())
+					{
+						e.setUpdateUserName(userR.getData().getRealName());
+					}
+				}
+
+				//获取供应商中文名
+				if (e.getCorpId() != null){
+					R<CorpsDesc> corpMessage1 = corpsDescClient.getCorpMessage(e.getCorpId());
+					if(corpMessage1.getData()!=null)
+					{
+						e.setStrCorpName(corpMessage1.getData().getCname());
+					}
+
+				}
+				//获取采购商中文名
+				if (e.getPurchaserId() != null){
+					R<CorpsDesc> corpMessage2 = corpsDescClient.getCorpMessage(e.getPurchaserId());
+					if(corpMessage2.getData()!=null)
+					{
+						e.setStrPurchaserName(corpMessage2.getData().getCname());
+					}
+				}
+
+				List<OrderItems> orderItemsList = orderItemsService.list(new LambdaQueryWrapper<OrderItems>().eq(OrderItems::getIsDeleted, 0).eq(OrderItems::getPid, e.getId()));
+				if(CollectionUtils.isNotEmpty(orderItemsList))
+				{
+					//子项总件数
+					BigDecimal orderQuantity = orderItemsList.stream().map(OrderItems::getOrderQuantity)
+						.filter(Objects::nonNull)
+						.reduce(BigDecimal.ZERO, BigDecimal::add);
+					e.setOrderQuantity(orderQuantity);
+
+					//子项总收货数
+					BigDecimal actualQuantity = orderItemsList.stream().map(OrderItems::getActualQuantity)
+						.filter(Objects::nonNull)
+						.reduce(BigDecimal.ZERO, BigDecimal::add);
+					e.setActualQuantity(actualQuantity);
+
+					//已收重量
+					BigDecimal actualWeight = orderItemsList.stream().map(OrderItems::getActualWeight)
+						.filter(Objects::nonNull)
+						.reduce(BigDecimal.ZERO, BigDecimal::add);
+					e.setActualWeight(actualWeight);
+				}
+			});
+		}
+		List<PurchaseOrderAExcel> list = BeanUtil.copy(records, PurchaseOrderAExcel.class);
+		ExcelUtil.export(response, "采购订单", "采购订单", list, PurchaseOrderAExcel.class);
+	}
 
 	/**
 	 * 新增或修改 销售或采购订单表