Browse Source

修改学校和出口贸易

lazhaoqian 3 years ago
parent
commit
baeecfaa6e

+ 2 - 1
blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/feign/IPriceBankClient.java

@@ -55,6 +55,7 @@ public interface IPriceBankClient {
 					  @RequestParam(value = "dateTime",required = false) String dateTime,
 					  @RequestParam(value = "purchaseAmount",required = false) BigDecimal purchaseAmount,
 					  @RequestParam(value = "priorityReferrer",required = false) Integer priorityReferrer,
-					  @RequestParam(value = "referrerReason",required = false) String referrerReason);
+					  @RequestParam(value = "referrerReason",required = false) String referrerReason,
+					@RequestParam(value = "remarks",required = false) String remarks);
 
 }

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

@@ -210,7 +210,8 @@ public class AuditProecessController extends BladeController {
 		//采购 或者 销售 订单请核
 		else if (proecess.getCheckType().equals("xsqh") || proecess.getCheckType().equals("cgqh")) {
 			auditProecessService.orderCheckProcess(auditProecess);
-		} else if (proecess.getCheckType().equals("xsgz")) {
+		} else if (proecess.getCheckType().equals("xsgz") || proecess.getCheckType().equals("czgz") //通济学校 小学 初中 高中 后勤工资审核
+		|| proecess.getCheckType().equals("gzgz") ||proecess.getCheckType().equals("hqgz")) {
 			auditProecessService.salaryCheck(auditProecess);
 		} else {
 			throw new SecurityException("此审批类型未查到相关审批类型");

+ 61 - 9
blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java

@@ -177,6 +177,22 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 						"" + auditProecessDTO.getBillNo() + "," + "订单日期:" + orderDate + ",请审核。"
 						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
 					);
+				} else if ("小学部工资审批".equals(auditProecessDTO.getProcessType())) {
+					message.setMessageBody("您有小学部工资审核,请审核,"
+						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
+					);
+				}else if ("初中部工资审批".equals(auditProecessDTO.getProcessType())) {
+					message.setMessageBody("您有初中部工资审核,请审核,"
+						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
+					);
+				}else if ("高中部工资审批".equals(auditProecessDTO.getProcessType())) {
+					message.setMessageBody("您有高中部工资审核,请审核,"
+						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
+					);
+				}else if ("后勤部工资审批".equals(auditProecessDTO.getProcessType())) {
+					message.setMessageBody("您有后勤部工资审核,请审核,"
+						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
+					);
 				}
 
 
@@ -865,7 +881,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 	}
 
 	/**
-	 * 小学部工资审核
+	 * 工资审核
 	 *
 	 * @param auditProecess
 	 */
@@ -957,9 +973,23 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 				message.setToUserId(Long.valueOf(proecess.getAuditUserId()));
 				message.setMessageType(1);
 				message.setTenantId(AuthUtil.getTenantId());
-				message.setMessageBody("您有小学部工资审核请审核。"
-					+ "提交人:" + auditProecess1.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecess1.getSendTime())
-				);
+				if (auditProecess1.getCheckType().equals("xsgz")){
+					message.setMessageBody("您有小学部工资审核请审核。"
+						+ "提交人:" + auditProecess1.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecess1.getSendTime())
+					);
+				}else if (auditProecess1.getCheckType().equals("czgz")){
+					message.setMessageBody("您有初中部工资审核请审核。"
+						+ "提交人:" + auditProecess1.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecess1.getSendTime())
+					);
+				}else if (auditProecess1.getCheckType().equals("gzgz")){
+					message.setMessageBody("您有高中部工资审核请审核。"
+						+ "提交人:" + auditProecess1.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecess1.getSendTime())
+					);
+				}else if (auditProecess1.getCheckType().equals("hqgz")){
+					message.setMessageBody("您有后勤部工资审核请审核。"
+						+ "提交人:" + auditProecess1.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecess1.getSendTime())
+					);
+				}
 				message.setCreateUser(AuthUtil.getUserId());
 				message.setUrl("/approveData/index");
 				message.setCreateTime(new Date());
@@ -977,7 +1007,15 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 				if (!r.isSuccess()) {
 					throw new SecurityException("修改原数据失败");
 				}
-				sendMessage.setMessageBody("您的小学部工资请核未通过,驳回原因:" + auditProecess.getAuditMsg());
+				if (auditProecess1.getCheckType().equals("xsgz")){
+					sendMessage.setMessageBody("您的小学部工资请核未通过,驳回原因:" + auditProecess.getAuditMsg());
+				}else if (auditProecess1.getCheckType().equals("czgz")){
+					sendMessage.setMessageBody("您的初中部工资请核未通过,驳回原因:" + auditProecess.getAuditMsg());
+				}else if (auditProecess1.getCheckType().equals("gzgz")){
+					sendMessage.setMessageBody("您的高中部工资请核未通过,驳回原因:" + auditProecess.getAuditMsg());
+				}else if (auditProecess1.getCheckType().equals("hqgz")){
+					sendMessage.setMessageBody("您的后勤部工资请核未通过,驳回原因:" + auditProecess.getAuditMsg());
+				}
 				R save = messageClient.save(sendMessage);
 				if (!save.isSuccess()) {
 					throw new SecurityException("发送消息失败");
@@ -995,8 +1033,15 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 				if (!r.isSuccess()) {
 					throw new SecurityException(r.getMsg());
 				}
-				sendMessage.setMessageBody("您的小学部工资请核已通过,请继续操作");
-
+				if (auditProecess1.getCheckType().equals("xsgz")){
+					sendMessage.setMessageBody("您的小学部工资请核已通过,请继续操作");
+				}else if (auditProecess1.getCheckType().equals("czgz")){
+					sendMessage.setMessageBody("您的初中部工资请核已通过,请继续操作");
+				}else if (auditProecess1.getCheckType().equals("gzgz")){
+					sendMessage.setMessageBody("您的高中部工资请核已通过,请继续操作");
+				}else if (auditProecess1.getCheckType().equals("hqgz")){
+					sendMessage.setMessageBody("您的后勤部工资请核已通过,请继续操作");
+				}
 				R save = messageClient.save(sendMessage);
 				if (!save.isSuccess()) {
 					throw new SecurityException("发送消息失败");
@@ -1010,8 +1055,15 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 				if (!r.isSuccess()) {
 					throw new SecurityException("修改原数据失败");
 				}
-				sendMessage.setMessageBody("您的小学部工资请核未通过,驳回原因:" + auditProecess.getAuditMsg());
-
+				if (auditProecess1.getCheckType().equals("xsgz")){
+					sendMessage.setMessageBody("您的小学部工资请核未通过,驳回原因:" + auditProecess.getAuditMsg());
+				}else if (auditProecess1.getCheckType().equals("czgz")){
+					sendMessage.setMessageBody("您的初中部工资请核未通过,驳回原因:" + auditProecess.getAuditMsg());
+				}else if (auditProecess1.getCheckType().equals("gzgz")){
+					sendMessage.setMessageBody("您的高中部工资请核未通过,驳回原因:" + auditProecess.getAuditMsg());
+				}else if (auditProecess1.getCheckType().equals("hqgz")){
+					sendMessage.setMessageBody("您的后勤部工资请核未通过,驳回原因:" + auditProecess.getAuditMsg());
+				}
 				R save = messageClient.save(sendMessage);
 				if (!save.isSuccess()) {
 					throw new SecurityException("发送消息失败");

+ 4 - 1
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/feign/PriceBankClient.java

@@ -66,7 +66,8 @@ public class PriceBankClient implements IPriceBankClient{
 						   String dateTime,
 						   BigDecimal purchaseAmount,
 						   Integer priorityReferrer,
-						   String referrerReason) {
+						   String referrerReason,
+						   String remarks) {
 
 		Date date = new Date();
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -99,6 +100,7 @@ public class PriceBankClient implements IPriceBankClient{
 			bank.setUpdateUser(SecureUtil.getUserId());
 			bank.setUpdateTime(new Date());
 			bank.setEndTime(date);
+			bank.setRemarks(remarks);
 			flag = priceBankMapper.updateById(bank);
 		}else {
 			//获取商品信息
@@ -118,6 +120,7 @@ public class PriceBankClient implements IPriceBankClient{
 				bank.setTradeType(tradeType);
 				bank.setEndTime(date);
 				bank.setPrice(price);
+				bank.setRemarks(remarks);
 				bank.setPriceTime(new Date());
 				bank.setExchangeRate(exchangeRate);
 				bank.setGreenback(greenback);

+ 139 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/excel/EnquiryExcel.java

@@ -0,0 +1,139 @@
+package org.springblade.purchase.sales.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 io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 出口报价订单导出
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class EnquiryExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 客户名称
+	 */
+	@ExcelProperty(value = "客户名称")
+	private String corpsName;
+	/**
+	 * 订单日期
+	 */
+	@ExcelProperty(value = "报价日期")
+	private Date businesDate;
+	/**
+	 * 订单号
+	 */
+	@ExcelProperty(value = "订单号")
+	private String orderNo;
+	/**
+	 * 有效期
+	 */
+	@ExcelProperty(value = "有效期")
+	private Date dateValidity;
+
+	/**
+	 * 价格条款
+	 */
+	@ExcelProperty(value = "价格条款")
+	private String priceTerms;
+	/**
+	 * 付款方式
+	 */
+	@ExcelProperty(value = "收款方式")
+	private String paymentType;
+	/**
+	 * 运输方式
+	 */
+	@ExcelProperty(value = "运输方式")
+	private String transport;
+	/**
+	 * 箱型
+	 */
+	@ExcelProperty(value = "箱型")
+	private String boxPile;
+	/**
+	 * 箱量
+	 */
+	@ExcelProperty(value = "箱量")
+	private BigDecimal boxNumber;
+	/**
+	 * 订单状态
+	 */
+	@ExcelProperty(value = "订单状态")
+	private String orderStatus;
+	/**
+	 * 装货港
+	 */
+	@ExcelProperty(value = "起运港")
+	private String portOfLoad;
+	/**
+	 * 目的港
+	 */
+	@ExcelProperty(value = "目的港")
+	private String portOfDestination;
+	/**
+	 * 数量合计
+	 */
+	@ExcelProperty(value = "数量合计")
+	private BigDecimal orderQuantity;
+	/**
+	 * 毛利润
+	 */
+	@ExcelProperty(value = "产品毛利")
+	private BigDecimal grossProfit;
+	/**
+	 * 毛利率
+	 */
+	@ExcelProperty(value = "产品利率")
+	private BigDecimal grossProfitRate;
+	/**
+	 * 销售金额
+	 */
+	@ExcelProperty(value = "销售金额")
+	private BigDecimal amount;
+	/**
+	 * 采购金额
+	 */
+	@ExcelProperty(value = "采购金额")
+	private BigDecimal purchaseAmount;
+	/**
+	 * 系统编号
+	 */
+	@ExcelProperty(value = "系统编号")
+	private String sysNo;
+	/**
+	 * 创建人中文名
+	 */
+	@ExcelProperty(value = "制单人")
+	private String createUserName;
+	/**
+	 * 创建时间
+	 */
+	@ExcelProperty(value = "制单时间")
+	private Date createTime;
+	/**
+	 * 订单备注
+	 */
+	@ExcelProperty(value = "备注")
+	private String orderRemark;
+	/**
+	 * 采购备注
+	 */
+	@ExcelProperty(value = "采购备注")
+	private String purchaseRemark;
+	/**
+	 * 船务备注
+	 */
+	@ExcelProperty(value = "销售备注")
+	private String shippingRemark;
+}

+ 160 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/excel/ExportOrderExcel.java

@@ -0,0 +1,160 @@
+package org.springblade.purchase.sales.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.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 出口销售订单导出
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class ExportOrderExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 客户名称
+	 */
+	@ExcelProperty(value = "客户名称")
+	private String corpsName;
+	/**
+	 * 订单日期
+	 */
+	@ExcelProperty(value = "订单日期")
+	private Date businesDate;
+	/**
+	 * 订单号
+	 */
+	@ExcelProperty(value = "销售订单号")
+	private String orderNo;
+	/**
+	 * 计划交货日期
+	 */
+	@ExcelProperty(value = "预交日期")
+	private Date plannedDeliveryDate;
+
+	/**
+	 * 价格条款
+	 */
+	@ExcelProperty(value = "价格条款")
+	private String priceTerms;
+	/**
+	 * 付款方式
+	 */
+	@ExcelProperty(value = "收款方式")
+	private String paymentType;
+	/**
+	 * 运输方式
+	 */
+	@ExcelProperty(value = "运输方式")
+	private String transport;
+	/**
+	 * 箱型
+	 */
+	@ExcelProperty(value = "箱型")
+	private String boxPile;
+	/**
+	 * 箱量
+	 */
+	@ExcelProperty(value = "箱量")
+	private BigDecimal boxNumber;
+	/**
+	 * 起订量
+	 */
+	@ExcelProperty(value = "起订量")
+	private BigDecimal minOrder;
+	/**
+	 * 预计海运费
+	 */
+	@ExcelProperty(value = "预计海运费")
+	private BigDecimal predictOceanFreight;
+	/**
+	 * 参考海运费
+	 */
+	@ExcelProperty(value = "参考海运费")
+	private BigDecimal referenceOceanFreight;
+
+	/**
+	 * 海运费
+	 */
+	@ExcelProperty(value = "实际海运费")
+	private BigDecimal oceanFreight;
+	/**
+	 * 订单状态
+	 */
+	@ExcelProperty(value = "订单状态")
+	private String orderStatus;
+	/**
+	 * 装货港
+	 */
+	@ExcelProperty(value = "起运港")
+	private String portOfLoad;
+	/**
+	 * 目的港
+	 */
+	@ExcelProperty(value = "目的港")
+	private String portOfDestination;
+	/**
+	 * 数量合计
+	 */
+	@ExcelProperty(value = "数量合计")
+	private BigDecimal orderQuantity;
+	/**
+	 * 发货数量
+	 */
+	@ExcelProperty(value = "发货数量")
+	private BigDecimal actualQuantity;
+	/**
+	 * 毛利润
+	 */
+	@ExcelProperty(value = "产品毛利")
+	private BigDecimal grossProfit;
+	/**
+	 * 毛利率
+	 */
+	@ExcelProperty(value = "产品利率")
+	private BigDecimal grossProfitRate;
+	/**
+	 * 销售金额
+	 */
+	@ExcelProperty(value = "销售金额")
+	private BigDecimal amount;
+	/**
+	 * 系统编号
+	 */
+	@ExcelProperty(value = "系统编号")
+	private String sysNo;
+	/**
+	 * 创建人中文名
+	 */
+	@ExcelProperty(value = "制单人")
+	private String createUserName;
+	/**
+	 * 创建时间
+	 */
+	@ExcelProperty(value = "制单时间")
+	private Date createTime;
+	/**
+	 * 订单备注
+	 */
+	@ExcelProperty(value = "备注")
+	private String orderRemark;
+	/**
+	 * 船务备注
+	 */
+	@ExcelProperty(value = "销售备注")
+	private String shippingRemark;
+	/**
+	 * 采购备注
+	 */
+	@ExcelProperty(value = "采购备注")
+	private String purchaseRemark;
+
+}

+ 79 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportEnquiryController.java

@@ -1,5 +1,6 @@
 package org.springblade.purchase.sales.export;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -13,6 +14,7 @@ import lombok.AllArgsConstructor;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.feign.ICorpsDescClient;
 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.SecureUtil;
@@ -20,14 +22,18 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
+import org.springblade.purchase.sales.excel.EnquiryExcel;
+import org.springblade.purchase.sales.excel.ExportOrderExcel;
 import org.springblade.purchase.sales.service.*;
 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.ArrayList;
 import java.util.List;
 
 /**
@@ -235,4 +241,77 @@ public class ExportEnquiryController extends BladeController {
 		order.setTradeType(OrderTypeEnum.EXPORT.getType());
 		return R.data(orderService.affirm(order));
 	}
+	/**
+	 * 自定义分页 出口询价
+	 */
+	@GetMapping("/export")
+	@ApiOperationSupport(order = 13)
+	@ApiOperation(value = "报价单导出", notes = "报价单导出")
+	public void export(OrderVO order, Query query, HttpServletResponse response) {
+		List<EnquiryExcel> enquiryExcels = new ArrayList<>();
+		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Order::getTenantId,SecureUtil.getTenantId());//租户id
+		lambdaQueryWrapper.eq(Order::getIsDeleted,0);//订单是否有效
+		lambdaQueryWrapper.eq(Order::getBillType,OrderTypeEnum.ENQUIRY.getType());//订单类型
+		lambdaQueryWrapper.eq(Order::getTradeType,OrderTypeEnum.EXPORT.getType());//贸易类型
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()),Order::getOrderNo,order.getOrderNo());//订单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()),Order::getCorpId,order.getCorpId());//客户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::getBusinesDate,order.getOrderStartDate());//订单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getOrderEndDate()),Order::getBusinesDate,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.orderByDesc(Order::getId);
+		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(page.getRecords())){
+			page.getRecords().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().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//数量合计
+					item.setAmount(list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//销售金额
+					item.setPurchaseAmount(list.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//采购金额
+					item.setActualQuantity(list.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//发货数量
+				}
+
+			});
+			enquiryExcels = JSON.parseArray(JSON.toJSONString(page.getRecords()), EnquiryExcel.class);
+		}
+		ExcelUtil.export(response, "报价单", "报价单", enquiryExcels, EnquiryExcel.class);
+	}
 }

+ 88 - 3
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -28,6 +28,7 @@ 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.ExportOrderExcel;
 import org.springblade.purchase.sales.excel.ProfitItemExcel;
 import org.springblade.purchase.sales.service.*;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
@@ -337,6 +338,11 @@ public class ExportOrderController extends BladeController {
 					item.setPartsCost(list.stream().filter(e -> e.getPartsCost() != null).reduce(BigDecimal.ZERO,(x,y) ->{
 						return x.add(y.getPartsCost().multiply(y.getOrderQuantity()));
 					},BigDecimal::add));//配件成本金额和
+				}else {
+					item.setAmount(BigDecimal.ZERO);
+					item.setProcurementCost(BigDecimal.ZERO);
+					item.setPurchasePrice(BigDecimal.ZERO);
+					item.setPartsCost(BigDecimal.ZERO);
 				}
 				//获取应收费用
 				List<OrderFees> feesList = orderFeesService.list(new QueryWrapper<OrderFees>().eq("pid", item.getId()).eq("is_deleted", 0).eq("tenant_id", item.getTenantId()).eq("fees_type", 1));
@@ -359,9 +365,13 @@ public class ExportOrderController extends BladeController {
 				//产品利润 销售金额-采购成本金额-配件成本金额
 				item.setGrossProfit(item.getAmount().subtract(item.getProcurementCost()).subtract(item.getPartsCost()));
 				//产品利率
-				item.setGrossProfitRate(item.getGrossProfit().divide(item.getAmount(),2,BigDecimal.ROUND_HALF_UP));
+				if (item.getAmount().compareTo(BigDecimal.ZERO) >0){
+					item.setGrossProfitRate(item.getGrossProfit().divide(item.getAmount(),2,BigDecimal.ROUND_HALF_UP));
+				}else {
+					item.setGrossProfitRate(BigDecimal.ZERO);
+				}
 				//计算单票利润=单票利润+费用应收-费用应付
-				item.setSingleTicketMargin(item.getAmount().add(item.getFd()).subtract(item.getFc()));
+				item.setSingleTicketMargin(item.getGrossProfit().add(item.getFd()).subtract(item.getFc()));
 			});
 		}
 		return R.data(page);
@@ -450,9 +460,84 @@ public class ExportOrderController extends BladeController {
 				//产品利率
 				item.setGrossProfitRate(item.getGrossProfit().divide(item.getAmount(),2,BigDecimal.ROUND_HALF_UP));
 				//计算单票利润=单票利润+费用应收-费用应付
-				item.setSingleTicketMargin(item.getAmount().add(item.getFd()).subtract(item.getFc()));
+				item.setSingleTicketMargin(item.getGrossProfit().add(item.getFd()).subtract(item.getFc()));
 			});
+			profitItemExcelList = JSON.parseArray(JSON.toJSONString(page.getRecords()), ProfitItemExcel.class);
 		}
 		ExcelUtil.export(response, "销售利润", "销售利润", profitItemExcelList, ProfitItemExcel.class);
 	}
+	/**
+	 * 自定义分页 销售或采购订单表
+	 */
+	@GetMapping("/export")
+	@ApiOperationSupport(order = 14)
+	@ApiOperation(value = "销售订单导出", notes = "销售订单导出")
+	public void export(OrderVO order, Query query, HttpServletResponse response) {
+		List<ExportOrderExcel> exportOrderExcels = new ArrayList<>();
+		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.EXPORT.getType());//贸易类型
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getOrderNo()),Order::getOrderNo,order.getOrderNo());//订单号
+		lambdaQueryWrapper.like(Func.isNotEmpty(order.getCorpId()),Order::getCorpId,order.getCorpId());//客户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::getBusinesDate,order.getOrderStartDate());//订单日期开始
+		lambdaQueryWrapper.le(Func.isNotEmpty(order.getOrderEndDate()),Order::getBusinesDate,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.getOrderRemark()),Order::getOrderRemark,order.getOrderRemark());//备注
+		lambdaQueryWrapper.orderByDesc(Order::getId);
+		IPage<Order> page = orderService.page(Condition.getPage(query), lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(page.getRecords())){
+			page.getRecords().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().map(OrderItems::getOrderQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//数量合计
+					item.setAmount(list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//销售金额
+					item.setPurchaseAmount(list.stream().map(OrderItems::getPurchaseAmount).reduce(BigDecimal.ZERO,BigDecimal::add));//采购金额
+					item.setActualQuantity(list.stream().map(OrderItems::getActualQuantity).reduce(BigDecimal.ZERO,BigDecimal::add));//发货数量
+				}
+
+			});
+			exportOrderExcels = JSON.parseArray(JSON.toJSONString(page.getRecords()), ExportOrderExcel.class);
+		}
+		ExcelUtil.export(response, "销售订单", "销售订单", exportOrderExcels, ExportOrderExcel.class);
+	}
 }

+ 1 - 0
blade-service/blade-school/src/main/java/org/springblade/school/controller/SalaryController.java

@@ -149,6 +149,7 @@ public class SalaryController extends BladeController {
 	/**
 	 * 工资请核
 	 * @param salary
+	 * checkType 审批类型 小学工资 xsgz 初中工资 czgz 小学 高中工资 gzgz 后勤工资 hqgz
 	 * @return
 	 */
 	@PostMapping("checkOrder")

+ 23 - 7
blade-service/blade-school/src/main/java/org/springblade/school/service/impl/SalaryServiceImpl.java

@@ -157,8 +157,16 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
 			if (selectById == null) {
 				throw new SecurityException("审批失败,未查到单据");
 			}
-
-			AuditPathsActs pathsActs = iCheckClient.getActsByActId(5, "status");
+			AuditPathsActs pathsActs = new AuditPathsActs();
+			if (salary.getCheckType().equals("xsgz")){
+				pathsActs = iCheckClient.getActsByActId(5, "status");
+			}else if (salary.getCheckType().equals("czgz")){
+				pathsActs = iCheckClient.getActsByActId(6, "status");
+			}else if (salary.getCheckType().equals("gzgz")){
+				pathsActs = iCheckClient.getActsByActId(7, "status");
+			}else if (salary.getCheckType().equals("hqgz")){
+				pathsActs = iCheckClient.getActsByActId(8, "status");
+			}
 			//没开启审批流直接走 通过流程
 			if (pathsActs == null || pathsActs.getIsEnable() == 2) {
 				throw new SecurityException("当前租户未查询到审批流配置");
@@ -167,7 +175,7 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
 				//获取明细表数据
 				List<SalaryItem> salaryItemList = salaryItemMapper.selectList(new QueryWrapper<SalaryItem>().eq("pid", salary.getId()).eq("is_deleted", 0));
 				List<SalaryItem> list = new ArrayList<>();
-				if (CollectionUtils.isNotEmpty(salaryItemList)){
+				/*if (CollectionUtils.isNotEmpty(salaryItemList)){
 					salaryItemList.stream().forEach(item ->{
 						BigDecimal summarize = item.getSalaryWithdrawalStandard().add(item.getRankWithdrawalStandard()); //工资拨付标准+职级拨付标准+其他剩余所有标准
 						//职级拨付标准+职级标准(也就是职级拨付标准)+工资基数标准+工作量工资标准+日常考核标准+绩效工资标准-虚拟工作量工资标准+双休日工作量工资标准-虚拟双休日工作量工资标准+其他剩余所有标准
@@ -178,7 +186,7 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
 							list.add(item);
 						}
 					});
-				}
+				}*/
 				if (CollectionUtils.isNotEmpty(list)){
 					return R.data(200,list,"请核失败");
 				}
@@ -196,7 +204,15 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
 				auditProecessDTO.setPageStatus(salary.getPageStatus());
 				auditProecessDTO.setPageLabel(salary.getPageLabel());
 				//增加审批类型
-				auditProecessDTO.setProcessType("小学部工资审批");
+				if (salary.getCheckType().equals("xsgz")){
+					auditProecessDTO.setProcessType("小学部工资审批");
+				}else if (salary.getCheckType().equals("czgz")){
+					auditProecessDTO.setProcessType("初中部工资审批");
+				}else if (salary.getCheckType().equals("gzgz")){
+					auditProecessDTO.setProcessType("高中部工资审批");
+				}else if (salary.getCheckType().equals("hqgz")){
+					auditProecessDTO.setProcessType("后勤部工资审批");
+				}
 				auditProecessDTO.setPathsLevelsList(auditPathsLevels);
 				auditProecessDTO.setActId(1);
 				auditProecessDTO.setSrcBillId(selectById.getId());
@@ -223,7 +239,7 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
 		Salary salary = baseMapper.selectOne(orderLambdaQueryWrapper);
 		if(salary == null)
 		{
-			throw new SecurityException("审批驳回失败");
+			throw new SecurityException("审批失败");
 		}
 		salary.setStatus(3);
 		baseMapper.updateById(salary);
@@ -239,7 +255,7 @@ public class SalaryServiceImpl extends ServiceImpl<SalaryMapper, Salary> impleme
 		Salary salary = baseMapper.selectOne(orderLambdaQueryWrapper);
 		if(salary == null)
 		{
-			throw new SecurityException("审批驳回失败");
+			throw new SecurityException("审批失败");
 		}
 		salary.setStatus(0);
 		baseMapper.updateById(salary);

+ 1 - 1
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -500,7 +500,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					orderItemsService.updateById(item);
 				}
 				priceBankClient.updatePrice(item.getItemId(),item.getPrice(),SecureUtil.getTenantId(),item.getCorpId(),item.getItemType(),OrderTypeEnum.PURCHASE.getType(),order.getTradeType(),
-					item.getExchangeRate(),item.getGreenback(),item.getCurrency(),item.getCoefficient(),item.getTaxRate(),format,item.getPurchaseAmount(),item.getPriorityReferrer(),item.getReferrerReason());
+					item.getExchangeRate(),item.getGreenback(),item.getCurrency(),item.getCoefficient(),item.getTaxRate(),format,item.getPurchaseAmount(),item.getPriorityReferrer(),item.getReferrerReason(),item.getRemarks());
 			});
 		}
 		return R.data(order);