Parcourir la source

2022年10月31日21:47:24

纪新园 il y a 3 ans
Parent
commit
8c4f0a33c6
15 fichiers modifiés avec 469 ajouts et 188 suppressions
  1. 11 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/CorpsDescVO.java
  2. 21 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java
  3. 17 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderItems.java
  4. 15 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderVO.java
  5. 3 0
      blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Settlement.java
  6. 1 1
      blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java
  7. 4 1
      blade-service/blade-client/src/main/java/org/springblade/client/corps/feign/CorpsDescClient.java
  8. 19 1
      blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.xml
  9. 1 0
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java
  10. 3 2
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsTypeServiceImpl.java
  11. 1 1
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java
  12. 76 35
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/partsapp/AppPartsController.java
  13. 22 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java
  14. 266 143
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  15. 9 4
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

+ 11 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/CorpsDescVO.java

@@ -74,4 +74,15 @@ public class CorpsDescVO extends CorpsDesc {
 	@ApiModelProperty(value = "首字母")
 	private String initials;
 
+	/**
+	 * 排序 0 正序  1 倒序
+	 */
+	@TableField(exist = false)
+	private String sort;
+	/**
+	 * 排序具体字段
+	 */
+	@TableField(exist = false)
+	private String typeSort;
+
 }

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

@@ -998,5 +998,26 @@ public class Order implements Serializable {
 	private List<Settlement> settlementList;
 
 
+	/**
+	 * 本次收款
+	 */
+	@TableField(exist = false)
+	private BigDecimal currentAmount;
+
+
+	/**
+	 * 收款账户
+	 */
+	@TableField(exist = false)
+	private String account;
+
+
+	/**
+	 * 收款单号
+	 */
+	@TableField(exist = false)
+	private String receiptNo;
+
+
 
 }

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

@@ -713,6 +713,23 @@ public class OrderItems implements Serializable {
 	@ApiModelProperty(value = "分摊金额(国际)")
 	private BigDecimal internationalAmount;
 
+	/**
+	 * 商品名称
+	 */
+	@TableField(exist = false)
+	private String goodsName;
+
+	/**
+	 * 采购价
+	 */
+	@TableField(exist = false)
+	private BigDecimal purchasePrice;
+
+	/**
+	 * 图片
+	 */
+	@TableField(exist = false)
+	private String url;
 
 
 

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

@@ -16,6 +16,7 @@
  */
 package org.springblade.purchase.sales.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import io.swagger.annotations.ApiModelProperty;
 import org.springblade.purchase.sales.entity.Order;
 import lombok.Data;
@@ -142,4 +143,18 @@ public class OrderVO extends Order {
 	 */
 	@ApiModelProperty(value = "是否收款 0 已收款 1 未收款")
 	private Integer gathering;
+
+	/**
+	 * 排序
+	 */
+	@TableField(exist = false)
+	private String sort;
+
+	/**
+	 * 字段
+	 */
+	@TableField(exist = false)
+	private String typeSort;
+
+
 }

+ 3 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Settlement.java

@@ -288,6 +288,9 @@ public class Settlement  implements Serializable {
 	@ApiModelProperty(value = "账单id")
 	private Long accId;
 
+	@ApiModelProperty(value = "账户")
+	private String account;
+
 
 
 }

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

@@ -97,7 +97,7 @@ public class AuditProecessController extends BladeController {
 		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(StringUtils.isBlank(auditProecess.getAuditStatus()), AuditProecess::getAuditStatus, "N");
 
 		IPage pages = auditProecessService.page(Condition.getPage(query), lambdaQueryWrapper);
 		List<AuditProecess> auditProecessList = pages.getRecords();

+ 4 - 1
blade-service/blade-client/src/main/java/org/springblade/client/corps/feign/CorpsDescClient.java

@@ -75,7 +75,10 @@ public class CorpsDescClient implements ICorpsDescClient {
 
 	@Override
 	public CorpsDesc getCorpId(Long Id) {
-		return service.getCorpId(Id);
+		CorpsDesc corpsDesc = service.getCorpId(Id);
+		//获取客户地址
+		corpsDesc.setCorpsAddrList(corpsAddrService.list(new QueryWrapper<CorpsAddr>().eq("pid", corpsDesc.getId()).eq("is_deleted", 0).eq("status", 0)));
+		return corpsDesc;
 	}
 
 	/**

+ 19 - 1
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.xml

@@ -193,7 +193,25 @@
             </foreach>
             )
         </if>
-        ORDER BY cname ASC
+        <if test="CorpsDesc.sort!=null and CorpsDesc.sort != '' and CorpsDesc.sort == '1'">
+            <if test="CorpsDesc.typeSort!=null and CorpsDesc.typeSort != '' and CorpsDesc.typeSort == '1'">
+                ORDER BY cname ASC
+            </if>
+            <if test="CorpsDesc.typeSort!=null and CorpsDesc.typeSort != '' and CorpsDesc.typeSort == '2'">
+                ORDER BY tel ASC
+            </if>
+        </if>
+        <if test="CorpsDesc.sort!=null and CorpsDesc.sort != '' and CorpsDesc.sort == '2'">
+            <if test="CorpsDesc.typeSort!=null and CorpsDesc.typeSort != '' and CorpsDesc.typeSort == '1'">
+                ORDER BY cname DESC
+            </if>
+            <if test="CorpsDesc.typeSort!=null and CorpsDesc.typeSort != '' and CorpsDesc.typeSort == '2'">
+                ORDER BY tel DESC
+            </if>
+        </if>
+        <if test="CorpsDesc.sort == null and CorpsDesc.sort == ''">
+            ORDER BY cname ASC
+        </if>
     </select>
     <select id="selectShippingCompany" resultMap="corpsDescResultMap">
         SELECT * FROM basic_corps_desc

+ 1 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -179,6 +179,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 			desc.setCorpsAddrList(corpsAddrService.list(new QueryWrapper<CorpsAddr>().eq("pid", corpsDesc.getId()).eq("is_deleted", 0).eq("status", 0)));
 			//获取客户类别
 			List<String> longs = corpsTypeDescMapper.selectTypeId(corpsDesc.getId());
+			desc.setCorpsTypeId(String.join(",", longs));
 			StringBuilder corpsTypeName = new StringBuilder();
 			if(ObjectUtils.isNotNull(longs)){
 				for (String id:longs) {

+ 3 - 2
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsTypeServiceImpl.java

@@ -19,6 +19,7 @@ package org.springblade.client.corps.service.impl;
 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 org.springblade.client.corps.mapper.CorpsTypeMapper;
@@ -64,12 +65,12 @@ public class CorpsTypeServiceImpl extends ServiceImpl<CorpsTypeMapper, CorpsType
 				}
 				//获取创建人中文名
 				R<User> createUser = userClient.userInfoById(item.getCreateUser());
-				if (createUser.isSuccess()) {
+				if (createUser.isSuccess() && ObjectUtils.isNotNull(createUser.getData())) {
 					item.setCreateUserName(createUser.getData().getName());
 				}
 				//获取修改人中文名
 				R<User> updateUser = userClient.userInfoById(item.getCreateUser());
-				if (updateUser.isSuccess()) {
+				if (updateUser.isSuccess() && ObjectUtils.isNotNull(updateUser.getData())) {
 					item.setUpdateUserName(updateUser.getData().getName());
 				}
 			});

+ 1 - 1
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java

@@ -742,7 +742,7 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 					}
 				});
 			}
-			if (CollectionUtils.isEmpty(stockGoodsList)) {
+			if (!CollectionUtils.isEmpty(stockGoodsList)) {
 				stockGoodsList.forEach(k -> {
 					// 新增
 					if (k.getId() == null) {

+ 76 - 35
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/partsapp/AppPartsController.java

@@ -21,50 +21,33 @@ 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.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import com.trade.purchase.order.enums.OrderTypeEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.CorpsDesc;
-import org.springblade.client.entity.FeesDesc;
 import org.springblade.client.entity.StorageDesc;
 import org.springblade.client.feign.ICorpsDescClient;
-import org.springblade.client.feign.IFeesDescClient;
 import org.springblade.client.feign.IStorageClient;
 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.core.tool.utils.ObjectUtil;
-import org.springblade.deliver.goods.entity.Delivery;
-import org.springblade.deliver.goods.feign.IDeliveryClient;
-import org.springblade.finance.feign.IFinanceClient;
-import org.springblade.finance.vojo.Acc;
 import org.springblade.purchase.sales.entity.Order;
-import org.springblade.purchase.sales.entity.OrderFees;
 import org.springblade.purchase.sales.entity.OrderItems;
-import org.springblade.purchase.sales.excel.SaleOrderExcel;
-import org.springblade.purchase.sales.service.*;
-import org.springblade.purchase.sales.vo.OrderItemsVO;
-import org.springblade.purchase.sales.vo.OrderStatisticAnalysisVO;
+import org.springblade.purchase.sales.service.IOrderItemsService;
+import org.springblade.purchase.sales.service.IOrderService;
 import org.springblade.purchase.sales.vo.OrderVO;
 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.List;
-import java.util.stream.Collectors;
 
 /**
  * 国内销售或采购订单表 控制器
@@ -86,12 +69,13 @@ public class AppPartsController extends BladeController {
 
 	/**
 	 * 获得app首页营业收入和采购支出(配件系统)
+	 *
 	 * @param tenantId
 	 * @return
 	 */
 	@GetMapping("/revenueExpenditure")
 	@ApiOperation(value = "营业收入和采购支出", notes = "传入order")
-	public R revenueExpenditure(@RequestParam("tenantId") String tenantId){
+	public R revenueExpenditure(@RequestParam("tenantId") String tenantId) {
 		return R.data(orderService.revenueExpenditure(tenantId));
 	}
 
@@ -146,7 +130,33 @@ public class AppPartsController extends BladeController {
 		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.getOrderRemark()), Order::getOrderRemark, order.getOrderRemark());//备注
-		lambdaQueryWrapper.orderByDesc(Order::getId);
+		if ("0".equals(order.getSort())) {
+			if ("1".equals(order.getTypeSort())) {
+				lambdaQueryWrapper.orderByAsc(Order::getCorpId);
+			} else if ("2".equals(order.getTypeSort())) {
+				lambdaQueryWrapper.orderByAsc(Order::getSysNo);
+			} else if ("3".equals(order.getTypeSort())) {
+				lambdaQueryWrapper.orderByAsc(Order::getStorageAmount);
+			} else if ("4".equals(order.getTypeSort())) {
+				lambdaQueryWrapper.orderByAsc(Order::getBusinesDate);
+			} else if ("5".equals(order.getTypeSort())) {
+				lambdaQueryWrapper.orderByAsc(Order::getConfirmStatus);
+			}
+		} else if ("1".equals(order.getSort())) {
+			if ("1".equals(order.getTypeSort())) {
+				lambdaQueryWrapper.orderByDesc(Order::getCorpId);
+			} else if ("2".equals(order.getTypeSort())) {
+				lambdaQueryWrapper.orderByDesc(Order::getSysNo);
+			} else if ("3".equals(order.getTypeSort())) {
+				lambdaQueryWrapper.orderByDesc(Order::getStorageAmount);
+			} else if ("4".equals(order.getTypeSort())) {
+				lambdaQueryWrapper.orderByDesc(Order::getBusinesDate);
+			} else if ("5".equals(order.getTypeSort())) {
+				lambdaQueryWrapper.orderByDesc(Order::getConfirmStatus);
+			}
+		} else {
+			lambdaQueryWrapper.orderByDesc(Order::getId);
+		}
 		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
 
 		String corpIds = "";//客户拼接
@@ -155,20 +165,20 @@ public class AppPartsController extends BladeController {
 		String createUserIds = "";//创建人
 		String storageIds = "";//仓库
 
-		for (Order orders : page.getRecords()){
-			if (ObjectUtil.isNotEmpty(orders.getCorpId())){
+		for (Order orders : page.getRecords()) {
+			if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
 				corpIds = corpIds + orders.getCorpId() + ",";
 			}
-			if (ObjectUtil.isNotEmpty(orders.getCorpId())){
+			if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
 				belongToCorpIds = belongToCorpIds + orders.getBelongToCorpId() + ",";
 			}
-			if (ObjectUtil.isNotEmpty(orders.getCorpId())){
+			if (ObjectUtil.isNotEmpty(orders.getCorpId())) {
 				productionPlantIds = productionPlantIds + orders.getProductionPlant() + ",";
 			}
-			if (ObjectUtil.isNotEmpty(orders.getCreateUser())){
+			if (ObjectUtil.isNotEmpty(orders.getCreateUser())) {
 				createUserIds = createUserIds + orders.getCreateUser() + ",";
 			}
-			if (ObjectUtil.isNotEmpty(orders.getStorageId())){
+			if (ObjectUtil.isNotEmpty(orders.getStorageId())) {
 				storageIds = storageIds + orders.getStorageId() + ",";
 			}
 		}
@@ -184,7 +194,7 @@ public class AppPartsController extends BladeController {
 				if (item.getCorpId() != null) {
 					if (ObjectUtil.isNotEmpty(corpsDescList)) {
 						CorpsDesc corpsDesc = corpsDescList.stream().filter(d -> d.getId().equals(item.getCorpId())).findFirst().orElse(null);
-						if (ObjectUtils.isNotNull(corpsDesc)){
+						if (ObjectUtils.isNotNull(corpsDesc)) {
 							item.setCorpsName(corpsDesc.getCname());
 						}
 //						item.setCorpsName(corpsDescList.stream().filter(e -> e.getId().equals(item.getCorpId())).findFirst().get().getCname());
@@ -193,7 +203,7 @@ public class AppPartsController extends BladeController {
 				if (item.getBelongToCorpId() != null) {
 					if (ObjectUtil.isNotEmpty(belongToCorpList)) {
 						CorpsDesc corpsDesc = belongToCorpList.stream().filter(d -> d.getId().equals(item.getBelongToCorpId())).findFirst().orElse(null);
-						if (ObjectUtils.isNotNull(corpsDesc)){
+						if (ObjectUtils.isNotNull(corpsDesc)) {
 							item.setBelongToCorpName(corpsDesc.getCname());
 						}
 //						item.setBelongToCorpName(belongToCorpList.stream().filter(e -> e.getId().equals(item.getBelongToCorpId())).findFirst().get().getCname());
@@ -202,27 +212,27 @@ public class AppPartsController extends BladeController {
 				if (item.getProductionPlant() != null) {
 					if (ObjectUtil.isNotEmpty(productionPlantList)) {
 						CorpsDesc corpsDesc = productionPlantList.stream().filter(d -> d.getId().equals(item.getProductionPlant())).findFirst().orElse(null);
-						if (ObjectUtils.isNotNull(corpsDesc)){
+						if (ObjectUtils.isNotNull(corpsDesc)) {
 							item.setProductionPlantName(corpsDesc.getCname());
 						}
 //						item.setProductionPlantName(productionPlantList.stream().filter(e -> e.getId().equals(item.getProductionPlant())).findFirst().get().getCname());
 					}
 				}
 				//制单人
-				if (item.getCreateUser() != null){
+				if (item.getCreateUser() != null) {
 					if (ObjectUtil.isNotEmpty(createUserList)) {
 						User user = createUserList.stream().filter(d -> d.getId().equals(item.getCreateUser())).findFirst().orElse(null);
-						if (ObjectUtils.isNotNull(user)){
+						if (ObjectUtils.isNotNull(user)) {
 							item.setCreateUserName(user.getName());
 						}
 //						item.setCreateUserName(createUserList.stream().filter(e -> e.getId().equals(item.getCreateUser())).findFirst().get().getName());
 					}
 				}
 				//仓库信息
-				if (item.getStorageId() != null){
-					if (ObjectUtil.isNotEmpty(storageList)){
+				if (item.getStorageId() != null) {
+					if (ObjectUtil.isNotEmpty(storageList)) {
 						StorageDesc storageDesc = storageList.stream().filter(d -> d.getId().equals(item.getStorageId())).findFirst().orElse(null);
-						if (ObjectUtils.isNotNull(storageDesc)){
+						if (ObjectUtils.isNotNull(storageDesc)) {
 							item.setStorageName(storageDesc.getCname());
 						}
 //						item.setStorageName((storageList.stream().filter(e -> e.getId().equals(item.getStorageId()))).findFirst().get().getCname());
@@ -242,4 +252,35 @@ public class AppPartsController extends BladeController {
 		return R.data(page);
 	}
 
+
+	/**
+	 * 销售,采购确认入账
+	 */
+	@PostMapping("/confirm")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入order")
+	public R submitApp(@Valid @RequestBody Order order) {
+		return orderService.saveOrderconfirm(order);
+	}
+
+	/**
+	 * 销售,采购撤销入账
+	 */
+	@PostMapping("/revoke")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入order")
+	public R revoke(@Valid @RequestBody Order order) {
+		return orderService.revoke(order);
+	}
+
+	/**
+	 * 销售确认出库提醒
+	 */
+	@PostMapping("/remind")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入order")
+	public R remind(@Valid @RequestBody Order order) {
+		return orderService.remind(order);
+	}
+
 }

+ 22 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java

@@ -27,6 +27,7 @@ import org.springblade.purchase.sales.vo.*;
 import org.springblade.stock.entity.StockGoods;
 
 import java.math.BigDecimal;
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -314,4 +315,25 @@ public interface IOrderService extends IService<Order> {
 	 * @return
 	 */
 	Order getOrderMessageParts(Order order);
+
+	/**
+	 *
+	 * @param order
+	 * @return
+	 */
+	R saveOrderconfirm(Order order);
+
+	/**
+	 *
+	 * @param order
+	 * @return
+	 */
+	R remind(Order order);
+
+	/**
+	 *
+	 * @param order
+	 * @return
+	 */
+	R revoke(Order order);
 }

+ 266 - 143
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -69,6 +69,9 @@ import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.math.MathContext;
 import java.math.RoundingMode;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -499,38 +502,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			order.setUpdateUser(SecureUtil.getUserId());
 			baseMapper.updateById(order);
 		}
+		if(ObjectUtils.isNotNull(order.getCorpId())){
+			CorpsDesc corpsDesc = corpsDescClient.getCorpId(order.getCorpId());
+			if (ObjectUtils.isNotNull(corpsDesc)){
+				if (ObjectUtils.isNotNull(corpsDesc.getCorpsAddrList()) && corpsDesc.getCorpsAddrList().size()>0){
+					order.setArrivalAddress(corpsDesc.getCorpsAddrList().get(0).getDetailedAddress());
+				}
+			}
+		}
 		// 保存订单明细
 		if (CollectionUtils.isNotEmpty(order.getOrderItemsList())) {
 			for (OrderItems orderItems : order.getOrderItemsList()) {
 				orderItems.setAmount(orderItems.getStorageInQuantity().multiply(orderItems.getPrice(), MathContext.DECIMAL32));
-				BigDecimal stockPrice = new BigDecimal("0.00");
-				BigDecimal surplusRouteQuantity = new BigDecimal("0.00");
-				BigDecimal balanceQuantity = new BigDecimal("0.00");
-				BigDecimal balanceAmount = new BigDecimal("0.00");
-				//获取本商品库存
-				R<StockGoodsVO> r = stockGoodsClient.selectStock(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
-				if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
-					if ("XS".equals(order.getBillType())) {
-						surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
-						balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
-						balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
-						stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
-						r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
-						r.getData().setOutAmount(r.getData().getOutAmount().add(orderItems.getAmount()));
-					} else {
-						surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
-						balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
-						balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
-						stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
-						r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
-						r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
-					}
-					r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
-					r.getData().setBalanceQuantity(balanceQuantity);
-					r.getData().setBalanceAmount(balanceAmount);
-					r.getData().setStockPrice(stockPrice);
-					stockGoodsClient.updateStock(r.getData());
-				}
 			}
 			List<OrderItems> orderItemsList = orderItemsService.saveOrderItemsMessage(order.getOrderItemsList(), date, order.getId());
 			order.setOrderItemsList(orderItemsList);
@@ -542,9 +525,24 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			order.setStorageQuantity(orderItemsList.stream().map(OrderItems::getStorageInQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 		}
 		baseMapper.updateById(order);
-		/*if (order.getSettlementList().size() > 0) {
+		if (ObjectUtils.isNotNull(order.getCurrentAmount()) && !order.getCurrentAmount().equals(new BigDecimal(0))) {
+			List<Settlement> settlementList = new ArrayList<>();
+			Settlement settlement = new Settlement();
+			settlement.setDc("d");
+			settlement.setSettlementDate(new Date());
+			settlement.setAccount(order.getAccount());
+			settlement.setAmount(order.getCurrentAmount());
+			settlementList.add(settlement);
+			order.setSettlementList(settlementList);
 			this.paymentApply(order, order.getBillType(), order.getTradeType());
-		}*/
+		} else {
+			//获取订单结算信息
+			/*List<Settlement> settlementList = financeClient.selectListBySrcId(order.getId());
+			order.setSettlementList(settlementList);*/
+			if (ObjectUtils.isNotNull(order.getSettlmentAmount()) && order.getSettlementList().size() > 0) {
+				this.paymentApply(order, order.getBillType(), order.getTradeType());
+			}
+		}
 		return R.data(order);
 	}
 
@@ -1695,7 +1693,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	 * 发货客户统计
 	 */
 	@Override
-	public IPage<OrderStatisticsVo> corpStatistics(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo){
+	public IPage<OrderStatisticsVo> corpStatistics(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo) {
 		return page.setRecords(baseMapper.corpStatistics(page, statisticsVo));
 	}
 
@@ -1703,7 +1701,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	 * 发货客户统计导出
 	 */
 	@Override
-	public List<CorpStatisticsExcel> corpStatisticsExport(OrderStatisticsVo statisticsVo){
+	public List<CorpStatisticsExcel> corpStatisticsExport(OrderStatisticsVo statisticsVo) {
 		return baseMapper.corpStatisticsExport(statisticsVo);
 	}
 
@@ -1711,7 +1709,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	 * 发货业务员统计
 	 */
 	@Override
-	public IPage<OrderStatisticsVo> salesmanStatistics(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo){
+	public IPage<OrderStatisticsVo> salesmanStatistics(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo) {
 		return page.setRecords(baseMapper.salesmanStatistics(page, statisticsVo));
 	}
 
@@ -1719,7 +1717,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	 * 发货业务员统计导出
 	 */
 	@Override
-	public List<SalesmanStatisticsExcel> salesmanStatisticsExport(OrderStatisticsVo statisticsVo){
+	public List<SalesmanStatisticsExcel> salesmanStatisticsExport(OrderStatisticsVo statisticsVo) {
 		return baseMapper.salesmanStatisticsExport(statisticsVo);
 	}
 
@@ -1727,7 +1725,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	 * 业务员利润统计
 	 */
 	@Override
-	public IPage<OrderStatisticsVo> salesmanProfit(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo){
+	public IPage<OrderStatisticsVo> salesmanProfit(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo) {
 		return page.setRecords(baseMapper.salesmanProfit(page, statisticsVo));
 	}
 
@@ -1735,7 +1733,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	 * 业务员利润导出
 	 */
 	@Override
-	public List<SalesmanProfitExcel> salesmanProfitExport(OrderStatisticsVo statisticsVo){
+	public List<SalesmanProfitExcel> salesmanProfitExport(OrderStatisticsVo statisticsVo) {
 		return baseMapper.salesmanProfitExport(statisticsVo);
 	}
 
@@ -1743,7 +1741,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	 * 客户利润统计
 	 */
 	@Override
-	public IPage<OrderStatisticsVo> customerProfit(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo){
+	public IPage<OrderStatisticsVo> customerProfit(IPage<OrderStatisticsVo> page, OrderStatisticsVo statisticsVo) {
 		return page.setRecords(baseMapper.customerProfit(page, statisticsVo));
 	}
 
@@ -1751,7 +1749,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	 * 客户利润导出
 	 */
 	@Override
-	public List<CustomerProfitExcel> customerProfitExport(OrderStatisticsVo statisticsVo){
+	public List<CustomerProfitExcel> customerProfitExport(OrderStatisticsVo statisticsVo) {
 		return baseMapper.customerProfitExport(statisticsVo);
 	}
 
@@ -1973,6 +1971,22 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				orderMessage.setProductionPlantList(corpMessage.getData());
 			}
 		}
+		DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+		try {
+			if (ObjectUtils.isNotNull(orderMessage.getRequiredDeliveryDate())){
+				String datestr = format.format(new Date());
+				Date date = format.parse(datestr);
+				orderMessage.setRequiredDeliveryDate(date);
+			}
+			if (ObjectUtils.isNotNull(orderMessage.getAdvanceCollectionDate())){
+				String datestr = format.format(new Date());
+				Date date = format.parse(datestr);
+				orderMessage.setAdvanceCollectionDate(date);
+			}
+		}catch (Exception e){
+			System.err.println(e);
+		}
+
 		// 获取订单明细信息
 		List<OrderItems> orderItemsList = orderItemsService.getOrderItems(orderMessage);
 		if (CollectionUtils.isNotEmpty(orderItemsList)) {
@@ -1980,6 +1994,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				GoodsDesc goodsDesc = goodsDescClient.getGoodsDescDetail(orderItems.getItemId());
 				if (ObjectUtils.isNotNull(goodsDesc)) {
 					orderItems.setCname(goodsDesc.getCname());
+					orderItems.setGoodsName(goodsDesc.getCname());
+					orderItems.setPurchasePrice(goodsDesc.getPurchasePrice());
+					orderItems.setUrl(goodsDesc.getUrl());
 				}
 			}
 			BigDecimal orderQuantity = orderItemsList.stream().map(OrderItems::getOrderQuantity)
@@ -2008,6 +2025,118 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
+	public R saveOrderconfirm(Order order) {
+		Order selectOrder = baseMapper.selectById(order.getId());
+		if (ObjectUtils.isNotNull(selectOrder)) {
+			LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			orderItemsLambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0)
+				.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
+				.eq(OrderItems::getPid, order.getId());
+			List<OrderItems> orderItemsList = orderItemsService.list(orderItemsLambdaQueryWrapper);
+			for (OrderItems orderItems : orderItemsList) {
+				BigDecimal stockPrice = new BigDecimal("0.00");
+				BigDecimal surplusRouteQuantity = new BigDecimal("0.00");
+				BigDecimal balanceQuantity = new BigDecimal("0.00");
+				BigDecimal balanceAmount = new BigDecimal("0.00");
+				//获取本商品库存
+				R<StockGoodsVO> r = stockGoodsClient.selectStock(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
+				if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
+					if ("XS".equals(order.getBillType())) {
+						surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
+						balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
+						balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
+						stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
+						r.getData().setOutQuantity(r.getData().getOutQuantity().add(orderItems.getStorageInQuantity()));
+						r.getData().setOutAmount(r.getData().getOutAmount().add(orderItems.getAmount()));
+					} else {
+						surplusRouteQuantity = surplusRouteQuantity.add(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
+						balanceQuantity = balanceQuantity.add(surplusRouteQuantity);
+						balanceAmount = balanceAmount.add(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
+						stockPrice = stockPrice.add(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
+						r.getData().setInQuantity(r.getData().getInQuantity().add(orderItems.getStorageInQuantity()));
+						r.getData().setInAmount(r.getData().getInAmount().add(orderItems.getAmount()));
+					}
+					r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
+					r.getData().setBalanceQuantity(balanceQuantity);
+					r.getData().setBalanceAmount(balanceAmount);
+					r.getData().setStockPrice(stockPrice);
+					stockGoodsClient.updateStock(r.getData());
+				}
+			}
+		}
+		selectOrder.setConfirmStatus(1);
+		baseMapper.updateById(selectOrder);
+		return R.data(selectOrder);
+	}
+
+	@Override
+	public R remind(Order order) {
+		LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		orderItemsLambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0)
+			.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
+			.eq(OrderItems::getPid, order.getId());
+		List<OrderItems> orderItemsList = orderItemsService.list(orderItemsLambdaQueryWrapper);
+		for (OrderItems orderItems : orderItemsList) {
+			//获取本商品库存
+			R<StockGoodsVO> r = stockGoodsClient.selectStock(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
+			if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
+				if ("XS".equals(order.getBillType())) {
+					if (r.getData().getSurplusRouteQuantity().compareTo(orderItems.getStorageInQuantity()) < 0) {
+						return R.data("是否负库存销售?");
+					}
+				}
+			}
+		}
+//		return R.data(R.fail("是否负库存销售?"));
+		return R.data("");
+	}
+
+	@Override
+	public R revoke(Order order) {
+		Order selectOrder = baseMapper.selectById(order.getId());
+		if (ObjectUtils.isNotNull(selectOrder)) {
+			LambdaQueryWrapper<OrderItems> orderItemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			orderItemsLambdaQueryWrapper.eq(OrderItems::getIsDeleted, 0)
+				.eq(OrderItems::getTenantId, AuthUtil.getTenantId())
+				.eq(OrderItems::getPid, order.getId());
+			List<OrderItems> orderItemsList = orderItemsService.list(orderItemsLambdaQueryWrapper);
+			for (OrderItems orderItems : orderItemsList) {
+				BigDecimal stockPrice = new BigDecimal("0.00");
+				BigDecimal surplusRouteQuantity = new BigDecimal("0.00");
+				BigDecimal balanceQuantity = new BigDecimal("0.00");
+				BigDecimal balanceAmount = new BigDecimal("0.00");
+				//获取本商品库存
+				R<StockGoodsVO> r = stockGoodsClient.selectStock(null, orderItems.getStorageId(), orderItems.getItemId(), null, null, null, null, null, null);
+				if (r.isSuccess() && ObjectUtils.isNotNull(r.getData())) {
+					if ("XS".equals(order.getBillType())) {
+						surplusRouteQuantity = surplusRouteQuantity.subtract(r.getData().getSurplusRouteQuantity().add(orderItems.getStorageInQuantity()));
+						balanceQuantity = balanceQuantity.subtract(surplusRouteQuantity);
+						balanceAmount = balanceAmount.subtract(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
+						stockPrice = stockPrice.subtract(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
+						r.getData().setOutQuantity(r.getData().getOutQuantity().subtract(orderItems.getStorageInQuantity()));
+						r.getData().setOutAmount(r.getData().getOutAmount().subtract(orderItems.getAmount()));
+					} else {
+						surplusRouteQuantity = surplusRouteQuantity.subtract(r.getData().getSurplusRouteQuantity().subtract(orderItems.getStorageInQuantity()));
+						balanceQuantity = balanceQuantity.subtract(surplusRouteQuantity);
+						balanceAmount = balanceAmount.subtract(balanceQuantity.multiply(orderItems.getPrice(), MathContext.DECIMAL32));
+						stockPrice = stockPrice.subtract(balanceAmount.divide(balanceQuantity), MathContext.DECIMAL32);
+						r.getData().setInQuantity(r.getData().getInQuantity().subtract(orderItems.getStorageInQuantity()));
+						r.getData().setInAmount(r.getData().getInAmount().subtract(orderItems.getAmount()));
+					}
+					r.getData().setSurplusRouteQuantity(surplusRouteQuantity);
+					r.getData().setBalanceQuantity(balanceQuantity);
+					r.getData().setBalanceAmount(balanceAmount);
+					r.getData().setStockPrice(stockPrice);
+					stockGoodsClient.updateStock(r.getData());
+				}
+			}
+		}
+		selectOrder.setConfirmStatus(0);
+		baseMapper.updateById(selectOrder);
+		return R.data(selectOrder);
+	}
+
+	@Override
 	public MonthSales monthSales(OrderVO order) {
 		MonthSales monthSales = new MonthSales();
 		if (AuthUtil.getTenantId().equals("673511")) {
@@ -2487,113 +2616,107 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				orderFeesService.submitPay(order.getId());
 			}
 		} else {
-			applyDTO.setBillType(billType);
-			applyDTO.setTradeType(order.getTradeType());
-			applyDTO.setBelongCompany(order.getBelongToCorpName());
-			applyDTO.setUrl(order.getUrl());
-			applyDTO.setPageStatus(order.getPageStatus());
-			applyDTO.setPageLabel(order.getPageLabel());
-			applyDTO.setCheckType(order.getCheckType());
-			applyDTO.setAccDate(order.getBusinesDate());
-			if (OrderTypeEnum.PURCHASE.getType().equals(billType)) {
-				applyDTO.setDc("C");
-			} else if (OrderTypeEnum.SALES.getType().equals(billType)) {
-				applyDTO.setDc("D");
-			}
-			applyDTO.setSettlementList(order.getSettlementList());
-
-			amount = amount.add(order.getBalanceAmount());
-			quantity = quantity.add(new BigDecimal(1));
-			price = price.add(amount);
-
-			applyDTO.setSrcParentId(order.getId());
-			applyDTO.setSrcSysno(order.getSysNo());
-			applyDTO.setItemType(itemType);
-			applyDTO.setCorpId(order.getCorpId());
-			applyDTO.setSrcId(order.getId());
-			applyDTO.setSrcFeesId(order.getId());
-			applyDTO.setCurrency("CNY");
-			applyDTO.setExchangeRate(order.getExchangeRate());
-			applyDTO.setTaxRate(BigDecimal.ZERO);
-			applyDTO.setSrcType(1);
-			applyDTO.setTradeType(order.getTradeType());
-			applyDTO.setChargeMember(order.getChargeMember());
-			applyDTO.setUnit("条");
-			applyDTO.setRemarks(order.getOrderRemark());
-			//获取费用id
-			R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
-			if (fees.isSuccess() && fees.getData() != null) {
-				applyDTO.setCostType(fees.getData().getId().toString());
-			}
-			applyDTO.setQuantity(new BigDecimal(1));
-			applyDTO.setPrice(order.getDebitAmount());
-			applyDTO.setAmount(order.getDebitAmount());
-			applyDTO.setSrcDate(order.getBusinesDate());
-			applyDTO.setSrcBillNo(order.getBillNo());
-			applyDTO.setAccSysNo(order.getOrderNo());
-			applyDTO.setSrcRefno(order.getOrderNo());
-			applyDTO.setRetrieval(order.getAdvanceCollectionDate());
-			applyDTO.setCorpName(order.getCorpsName());
-
-			applyDTO.setAmount(amount);
-			applyDTO.setPrice(price);
-			applyDTO.setQuantity(quantity);
-			applyDTO.setReceivedAmount(order.getSettlmentAmount());
-			List<Settlement> settlementList = order.getSettlementList().stream().filter(o -> o.getAccId() != null ).collect(Collectors.toList());
-			if (settlementList.size() > 0) {
-				applyDTO.setId(settlementList.get(0).getAccId());
-			}
-			/*Items items = new Items();
-			items.setSrcOrderno(order.getOrgOrderNo());
-			items.setItemType(itemType);
-			items.setCorpId(order.getCorpId());
-			items.setSrcParentId(order.getId());
-			items.setCurrency("CNY");
-			items.setExchangeRate(new BigDecimal(1));
-			items.setTaxRate(BigDecimal.ZERO);
-			items.setSrcType(1);
-			items.setTradeType(order.getTradeType());
-			items.setChargeMember(order.getChargeMember());
-
-			items.setAmount(amount);
-			items.setQuantity(quantity);
-			items.setPrice(price);
-			items.setUnit("条");
-			items.setRemarks(order.getOrderRemark());
-			items.setCostType(fees.getData().getId().toString());*/
-
-			//生成账单
-			R paymentApply = financeClient.paymentApplyParts(applyDTO);
-			if (!paymentApply.isSuccess()) {
-				throw new RuntimeException(paymentApply.getMsg());
-			}
-			//给角色为财务的人发送消息
-			R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
-			if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
-				R<List<User>> userList = userClient.listUserByRoleId(Long.valueOf(clientDeptIds.getData()));
-				if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
-					for (User datum : userList.getData()) {
-						//循环发送消息
-						Message sendMessage = new Message();
-						sendMessage.setParameter(String.valueOf(order.getId()));
-						sendMessage.setUserName(AuthUtil.getUserName());
-						sendMessage.setUserId(AuthUtil.getUserId());
-						sendMessage.setToUserId(datum.getId());
-						sendMessage.setToUserName(datum.getName());
-						sendMessage.setMessageType(1);
-						sendMessage.setTenantId(AuthUtil.getTenantId());
-						sendMessage.setCreateUser(AuthUtil.getUserId());
-						sendMessage.setCreateTime(new Date());
-						sendMessage.setUrl(order.getUrl());
-						sendMessage.setPageLabel(order.getPageLabel());
-						sendMessage.setPageStatus(order.getPageStatus());
-						sendMessage.setMessageBody(order.getBelongToCorpName() + " 您的客户:" + order.getCorpsName() + "的销售订单 " + order.getOrderNo() + "审核通过,请查看");
-						R save = messageClient.save(sendMessage);
-						if (!save.isSuccess()) {
-							throw new SecurityException("发送消息失败");
+			if (ObjectUtils.isNotNull(order.getSettlementList()) && order.getSettlementList().size() > 0) {
+				applyDTO.setBillType(billType);
+				applyDTO.setTradeType(order.getTradeType());
+				applyDTO.setBelongCompany(order.getBelongToCorpName());
+				applyDTO.setUrl(order.getUrl());
+				applyDTO.setPageStatus(order.getPageStatus());
+				applyDTO.setPageLabel(order.getPageLabel());
+				applyDTO.setCheckType(order.getCheckType());
+				applyDTO.setAccDate(order.getBusinesDate());
+				if (OrderTypeEnum.PURCHASE.getType().equals(billType)) {
+					applyDTO.setDc("C");
+				} else if (OrderTypeEnum.SALES.getType().equals(billType)) {
+					applyDTO.setDc("D");
+				}
+				applyDTO.setSettlementList(order.getSettlementList());
+
+				amount = amount.add(order.getStorageAmount());
+				quantity = quantity.add(new BigDecimal(1));
+				price = price.add(amount);
+
+				applyDTO.setSrcParentId(order.getId());
+				applyDTO.setSrcSysno(order.getOrderNo());
+				applyDTO.setItemType(itemType);
+				applyDTO.setCorpId(order.getCorpId());
+				applyDTO.setSrcId(order.getId());
+				applyDTO.setSrcFeesId(order.getId());
+				applyDTO.setCurrency("CNY");
+				applyDTO.setExchangeRate(order.getExchangeRate());
+				applyDTO.setTaxRate(BigDecimal.ZERO);
+				applyDTO.setSrcType(1);
+				applyDTO.setTradeType(order.getTradeType());
+				applyDTO.setChargeMember(order.getChargeMember());
+				applyDTO.setUnit("条");
+				applyDTO.setRemarks(order.getOrderRemark());
+				//获取费用id
+				R<FeesDesc> fees = feesDescClient.getFeesByName("货款");
+				if (fees.isSuccess() && fees.getData() != null) {
+					applyDTO.setCostType(fees.getData().getId().toString());
+				}
+				applyDTO.setQuantity(new BigDecimal(1));
+				applyDTO.setPrice(order.getDebitAmount());
+				applyDTO.setAmount(order.getDebitAmount());
+				applyDTO.setSrcDate(order.getBusinesDate());
+				applyDTO.setSrcBillNo(order.getBillNo());
+				applyDTO.setAccSysNo(order.getOrderNo());
+				applyDTO.setSrcRefno(order.getOrderNo());
+				applyDTO.setRetrieval(order.getAdvanceCollectionDate());
+				applyDTO.setCorpName(order.getCorpsName());
+
+				applyDTO.setAmount(amount);
+				applyDTO.setPrice(price);
+				applyDTO.setQuantity(quantity);
+				applyDTO.setReceivedAmount(order.getSettlmentAmount());
+				List<Settlement> settlementList = order.getSettlementList().stream().filter(o -> o.getAccId() != null).collect(Collectors.toList());
+				if (settlementList.size() > 0) {
+					applyDTO.setId(settlementList.get(0).getAccId());
+				}
+
+				//生成账单
+				R paymentApply = financeClient.paymentApplyParts(applyDTO);
+				if (!paymentApply.isSuccess()) {
+					throw new RuntimeException(paymentApply.getMsg());
+				}
+
+				BigDecimal receivedAmount = order.getSettlementList().stream().map(Settlement::getAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
+				receivedAmount = receivedAmount.add(order.getSettlmentAmount());
+				amount = amount.subtract(receivedAmount);
+
+				Order order1 = new Order();
+				order1.setId(order.getId());
+				order1.setSettlmentAmount(receivedAmount);
+				order1.setBalanceAmount(amount);
+				baseMapper.updateById(order1);
+				//给角色为财务的人发送消息
+				/*R<String> clientDeptIds = sysClient.getRoleIds(SecureUtil.getTenantId(), "财务");
+				if (clientDeptIds.isSuccess() && StringUtils.isNotBlank(clientDeptIds.getData())) {
+					R<List<User>> userList = userClient.listUserByRoleId(Long.valueOf(clientDeptIds.getData()));
+					if (userList.isSuccess() && CollectionUtils.isNotEmpty(userList.getData())) {
+						for (User datum : userList.getData()) {
+							//循环发送消息
+							Message sendMessage = new Message();
+							sendMessage.setParameter(String.valueOf(order.getId()));
+							sendMessage.setUserName(AuthUtil.getUserName());
+							sendMessage.setUserId(AuthUtil.getUserId());
+							sendMessage.setToUserId(datum.getId());
+							sendMessage.setToUserName(datum.getName());
+							sendMessage.setMessageType(1);
+							sendMessage.setTenantId(AuthUtil.getTenantId());
+							sendMessage.setCreateUser(AuthUtil.getUserId());
+							sendMessage.setCreateTime(new Date());
+							sendMessage.setUrl(order.getUrl());
+							sendMessage.setPageLabel(order.getPageLabel());
+							sendMessage.setPageStatus(order.getPageStatus());
+							sendMessage.setMessageBody(order.getBelongToCorpName() + " 您的客户:" + order.getCorpsName() + "的销售订单 " + order.getOrderNo() + "审核通过,请查看");
+							R save = messageClient.save(sendMessage);
+							if (!save.isSuccess()) {
+								throw new SecurityException("发送消息失败");
+							}
 						}
 					}
-				}
+				}*/
 			}
 		}
 	}

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

@@ -2302,6 +2302,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			acc.setUpdateUser(AuthUtil.getUserId());
 			accMapper.updateById(acc);
 		}
+		Long id = acc.getId();
+		Long srcId = acc.getSrcId();
 		BigDecimal settlementAmount = new BigDecimal(0.00);
 		for (Settlement settlement : dto.getSettlementList()) {
 			if (settlement.getId() == null) {
@@ -2330,6 +2332,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 				model.setCreateUser(AuthUtil.getUserId());
 				model.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
 				model.setAccId(acc.getId());
+				model.setAccount(settlement.getAccount());
 				baseMapper.insert(model);
 
 				Items items = new Items();
@@ -2340,22 +2343,24 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 				items.setCreateTime(new Date());
 				items.setCreateUser(AuthUtil.getUserId());
 				items.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+				items.setTradeType(dto.getTradeType());
 				itemsMapper.insert(items);
 
 				settlementAmount = settlementAmount.add(settlement.getAmount());
 			}
 			acc.setSettlementAmount(settlementAmount);
+			acc.setId(id);
 			accMapper.updateById(acc);
 
-			BigDecimal amount = new BigDecimal("0.00");
+			/*BigDecimal amount = new BigDecimal("0.00");
 			BigDecimal receivedAmount = new BigDecimal("0.00");
 			receivedAmount = settlementAmount.add(dto.getReceivedAmount());
-			amount = amount.add(acc.getAmount().subtract(receivedAmount));
+			amount = amount.add(dto.getAmount().subtract(receivedAmount));
 			Order order = new Order();
-			order.setId(acc.getSrcId());
+			order.setId(srcId);
 			order.setSettlmentAmount(receivedAmount);
 			order.setBalanceAmount(amount);
-			orderDescClient.updateOrder(order);
+			orderDescClient.updateOrder(order);*/
 
 		}
 	}