Explorar el Código

出口、达沃特、学校修改

lazhaoqian hace 3 años
padre
commit
b8422bdebd
Se han modificado 18 ficheros con 587 adiciones y 20 borrados
  1. 26 3
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/Order.java
  2. 28 1
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java
  3. 2 2
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java
  4. 29 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/dealer/DealerOrderController.java
  5. 6 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/excel/orderItemStat.java
  6. 89 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/excel/orderItemStatExcel.java
  7. 6 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.java
  8. 55 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.xml
  9. 6 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java
  10. 39 2
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java
  11. 7 4
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  12. 75 0
      blade-service/blade-school/src/main/java/org/springblade/school/controller/SalaryItemController.java
  13. 37 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/AdjustmentExcel.java
  14. 57 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/CustomPerformance.java
  15. 6 0
      blade-service/blade-school/src/main/java/org/springblade/school/excel/WageExcel.java
  16. 18 0
      blade-service/blade-school/src/main/java/org/springblade/school/service/ISalaryItemService.java
  17. 95 3
      blade-service/blade-school/src/main/java/org/springblade/school/service/impl/SalaryItemServiceImpl.java
  18. 6 3
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java

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

@@ -708,12 +708,15 @@ public class Order implements Serializable {
 	private BigDecimal actualWeight;
 	@TableField(exist = false)
 	private String checkType;
-
+	/**
+	 * 本次使用返利
+	 */
 	private BigDecimal thisUsedProfit;
-
+	/**
+	 * 产生返利
+	 */
 	private BigDecimal createProfit;
 
-
 	//请核标识  1采购 2销售
 	@TableField(exist = false)
 	private Integer checkFlag;
@@ -896,5 +899,25 @@ public class Order implements Serializable {
 	@ApiModelProperty(value = "特批提交时间")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date specialCheckTime;
+	/**
+	 * 出口正式客户
+	 */
+	@ApiModelProperty(value = "出口正式客户")
+	private String client;
+	/**
+	 * 出口正式客户地址
+	 */
+	@ApiModelProperty(value = "出口正式客户地址")
+	private String clientAddress;
+	/**
+	 * 出口正式客户联系人
+	 */
+	@ApiModelProperty(value = "出口正式客户联系人")
+	private String clientAttn;
+	/**
+	 * 出口客户地址联系人
+	 */
+	@ApiModelProperty(value = "出口客户地址联系人")
+	private String clientMessage;
 
 }

+ 28 - 1
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/Order.java

@@ -726,5 +726,32 @@ public class Order extends OrderBase {
 	@ApiModelProperty(value = "生成收发货时间")
 	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date createFreightTime;
-
+	/**
+	 * 出口正式客户
+	 */
+	@ApiModelProperty(value = "出口正式客户")
+	private String client;
+	/**
+	 * 出口正式客户地址
+	 */
+	@ApiModelProperty(value = "出口正式客户地址")
+	private String clientAddress;
+	/**
+	 * 出口正式客户联系人
+	 */
+	@ApiModelProperty(value = "出口正式客户联系人")
+	private String clientAttn;
+	/**
+	 * 出口客户地址联系人
+	 */
+	@ApiModelProperty(value = "出口客户地址联系人")
+	private String clientMessage;
+	/**
+	 * 本次使用返利
+	 */
+	private BigDecimal thisUsedProfit;
+	/**
+	 * 产生返利
+	 */
+	private BigDecimal createProfit;
 }

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

@@ -355,7 +355,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 
 
 		//计算返利
-		if ("GN".equals(delivery.getTradeType())) {
+		/*if ("GN".equals(delivery.getTradeType())) {
 			Order order = new Order();
 			order.setOrderNo(delivery.getSrcOrderNo());
 			order.setBillType(delivery.getBillType());
@@ -381,7 +381,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 				this.createProfit(saleOrder, delivery.getCreateProfit().negate());
 			}
 
-		}
+		}*/
 
 
 		String billStatus = null;//订单状态

+ 29 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/dealer/DealerOrderController.java

@@ -20,6 +20,7 @@ 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.metadata.OrderItem;
+import com.baomidou.mybatisplus.core.toolkit.BeanUtils;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -34,12 +35,15 @@ 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.client.vo.CorpListVo;
 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.StringUtil;
 import org.springblade.deliver.goods.entity.Delivery;
@@ -49,6 +53,8 @@ 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.orderItemStat;
+import org.springblade.purchase.sales.excel.orderItemStatExcel;
 import org.springblade.purchase.sales.service.*;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
 import org.springblade.purchase.sales.vo.OrderStatisticAnalysisVO;
@@ -57,6 +63,7 @@ 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;
@@ -455,5 +462,27 @@ public class DealerOrderController extends BladeController {
 											@RequestParam(value = "tradeType")  String tradeType) {
 		return R.data(orderItemsService.historyPrice(itemId,typeId,billType,tradeType));
 	}
+	@GetMapping("/orderItemStat")
+	@ApiOperationSupport(order = 15)
+	@ApiOperation(value = "经销商销售统计", notes = "传入order")
+	public R orderItemStat(OrderVO order,Query query) {
+		order.setBillType(OrderTypeEnum.SALES.getType());//订单类型
+		order.setTradeType(OrderTypeEnum.DEALER.getType());//贸易类型
+		return R.data(orderItemsService.orderItemStat(order,Condition.getPage(query)));
+	}
+	@GetMapping("/orderItemStat/export")
+	@ApiOperationSupport(order = 16)
+	@ApiOperation(value = "经销商销售统计", notes = "传入order")
+	public void orderItemStatExport(OrderVO order, HttpServletResponse response) {
+		order.setBillType(OrderTypeEnum.SALES.getType());//订单类型
+		order.setTradeType(OrderTypeEnum.DEALER.getType());//贸易类型
+		List<orderItemStat> orderItemStats = orderItemsService.orderItemStatExport(order);
+		List<orderItemStatExcel> list = new ArrayList<>();
+		if (CollectionUtils.isNotEmpty(orderItemStats)){
+			list = BeanUtil.copy(orderItemStats, orderItemStatExcel.class);
+		}
+		ExcelUtil.export(response, "销售统计表", "销售统计表", list, orderItemStatExcel.class);
+	}
+
 
 }

+ 6 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/excel/orderItemStat.java

@@ -1,6 +1,9 @@
 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;
@@ -11,6 +14,9 @@ import java.util.Date;
  * 经销商销售统计
  */
 @Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
 public class orderItemStat implements Serializable {
 	private static final long serialVersionUID = 1L;
 

+ 89 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/excel/orderItemStatExcel.java

@@ -0,0 +1,89 @@
+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 orderItemStatExcel implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 行号
+	 */
+	@ExcelProperty(value = "行号")
+	private Long rankNo;
+	/**
+	 *单据日期
+	 */
+	@ExcelProperty(value = "单据日期")
+	private Date businesDate;
+	/**
+	 *单位全名
+	 */
+	@ExcelProperty(value = "单位全名")
+	private String corpName;
+	/**
+	 *商品全名
+	 */
+	@ExcelProperty(value = "商品全名")
+	private String goodName;
+	/**
+	 *规格
+	 */
+	@ExcelProperty(value = "规格")
+	private String typeno;
+	/**
+	 *级别
+	 */
+	@ExcelProperty(value = "级别")
+	private String level;
+	/**
+	 *花纹
+	 */
+	@ExcelProperty(value = "花纹")
+	private String brandItem;
+	/**
+	 *批号
+	 */
+	@ExcelProperty(value = "批号")
+	private String lotNo;
+	/**
+	 *销售数量
+	 */
+	@ExcelProperty(value = "销售数量")
+	private BigDecimal orderQuantity;
+	/**
+	 *单价
+	 */
+	@ExcelProperty(value = "单价")
+	private BigDecimal price;
+	/**
+	 *金额
+	 */
+	@ExcelProperty(value = "金额")
+	private BigDecimal amount;
+	/**
+	 *仓库全名
+	 */
+	@ExcelProperty(value = "仓库全名")
+	private String storageName;
+	/**
+	 *摘要
+	 */
+	@ExcelProperty(value = "摘要")
+	private String remarks;
+}

+ 6 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.java

@@ -159,5 +159,10 @@ public interface OrderItemsMapper extends BaseMapper<OrderItems> {
 	 * 经销商销售统计
 	 * @return
 	 */
-	List<orderItemStat> orderItemStat(@Param("order")OrderVO order);
+	List<orderItemStat> orderItemStat(@Param("order")OrderVO order,IPage page);
+	/**
+	 * 经销商销售统计
+	 * @return
+	 */
+	List<orderItemStat> orderItemStatExport(@Param("order")OrderVO order);
 }

+ 55 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.xml

@@ -401,4 +401,59 @@ WHERE
 	    ) temp,
 	    ( SELECT @rank := 0 ) b
     </select>
+    <select id="orderItemStatExport" resultType="org.springblade.purchase.sales.excel.orderItemStat">
+        SELECT
+        @rank := @rank + 1 AS rankNo,
+        CURRENT_DATE AS Systemtime,
+        temp.*
+        FROM
+        (
+        SELECT
+        bo.busines_date AS businesDate,
+        bo.corp_id AS corpId,
+        bi.item_id AS itemId,
+        bi.order_quantity AS orderQuantity,
+        bi.price AS price,
+        bi.lot_no AS lotNo,
+        bi.amount AS amount,
+        bi.remarks AS remarks,
+        bi.id AS id,
+        bi.pid AS pid,
+        bo.storage_id
+        FROM
+        business_order_items bi
+        LEFT JOIN business_order bo ON bi.pid = bo.id
+        WHERE
+        bi.is_deleted = 0
+        AND bo.is_deleted = 0
+        <if test="order.corpId!=null">
+            and bo.corp_id = #{order.corpId}
+        </if>
+        <if test="order.itemId!=null">
+            and bi.item_id = #{order.itemId}
+        </if>
+        <if test="order.storageId!=null">
+            and bo.storage_id = #{order.storageId}
+        </if>
+        <if test="order.orderNo!=null and order.orderNo != ''">
+            and bo.order_no like CONCAT(CONCAT('%', #{order.orderNo}), '%')
+        </if>
+        <if test="order.billType!=null and order.billType != ''">
+            and bo.bill_type = #{order.billType}
+        </if>
+        <if test="order.tradeType!=null and order.tradeType != ''">
+            and bo.trade_type = #{order.tradeType}
+        </if>
+        <if test="order.tenantId!=null and order.tenantId != ''">
+            and bo.tenant_id = #{order.tenantId}
+        </if>
+        <if test="order.orderStartDate!=null and order.orderStartDate != ''">
+            and bo.busines_date &gt;= #{order.orderStartDate}
+        </if>
+        <if test="order.orderEndDate!=null and order.orderEndDate != ''">
+            and bo.busines_date &lt;= #{order.orderEndDate}
+        </if>
+        ) temp,
+        ( SELECT @rank := 0 ) b
+    </select>
 </mapper>

+ 6 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java

@@ -153,6 +153,11 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 * 经销商销售统计
 	 * @return
 	 */
-	List<orderItemStat> orderItemStat(OrderVO order);
+	IPage<orderItemStat> orderItemStat(OrderVO order,IPage<orderItemStat> page);
+	/**
+	 * 经销商销售统计
+	 * @return
+	 */
+	List<orderItemStat> orderItemStatExport(OrderVO order);
 
 }

+ 39 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java

@@ -482,11 +482,48 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 	}
 
 	@Override
-	public List<orderItemStat> orderItemStat(OrderVO order) {
+	public IPage<orderItemStat> orderItemStat(OrderVO order,IPage<orderItemStat> page) {
 		if (StringUtils.isBlank(order.getTenantId())){
 			order.setTenantId(SecureUtil.getTenantId());
 		}
-		List<orderItemStat> orderItemStatList = baseMapper.orderItemStat(order);
+		List<orderItemStat> orderItemStatList = baseMapper.orderItemStat(order,page);
+		if (CollectionUtils.isNotEmpty(orderItemStatList)){
+			orderItemStatList.stream().forEach(e ->{
+				//获取商品信息
+				if (e.getItemId() != null){
+					R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(e.getItemId());
+					if (goodsMessage.isSuccess() && goodsMessage.getData() != null){
+						e.setGoodName(goodsMessage.getData().getCname());//品名
+						e.setTypeno(goodsMessage.getData().getTypeno());//规格
+						e.setLevel(goodsMessage.getData().getLevel());//级别
+						e.setBrandItem(goodsMessage.getData().getBrandItem());//花纹
+					}
+				}
+				//获取仓库信息
+				if (e.getStorageId() != null){
+					StorageDesc storageDesc = iStorageClient.findById(e.getStorageId());
+					if (storageDesc != null){
+						e.setStorageName(storageDesc.getCname());
+					}
+				}
+				//获取客户信息
+				if (e.getCorpId() != null){
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(e.getCorpId());
+					if (corpMessage.isSuccess() && corpMessage.getData() != null){
+						e.setCorpName(corpMessage.getData().getCname());
+					}
+				}
+			});
+		}
+		return page.setRecords(orderItemStatList);
+	}
+
+	@Override
+	public List<orderItemStat> orderItemStatExport(OrderVO order) {
+		if (StringUtils.isBlank(order.getTenantId())){
+			order.setTenantId(SecureUtil.getTenantId());
+		}
+		List<orderItemStat> orderItemStatList = baseMapper.orderItemStatExport(order);
 		if (CollectionUtils.isNotEmpty(orderItemStatList)){
 			orderItemStatList.stream().forEach(e ->{
 				//获取商品信息

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

@@ -269,7 +269,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				BigDecimal reduce = list.stream().reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getPurchaseAmount().multiply(y.getOrderQuantity())), BigDecimal::add);
 				// 金额求和
 				BigDecimal amount = list.stream().map(OrderItems::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-				BigDecimal grossProfit = amount.subtract(reduce.add(order.getPredictOceanFreight())).subtract(order.getThisUsedProfit() == null ? BigDecimal.ZERO : order.getThisUsedProfit());
+				//毛利额 = 销售金额-采购金额-预计海运费-本次使用返利+应收费用(除包装费)
+				BigDecimal grossProfit = amount.subtract(reduce.add(order.getPredictOceanFreight())).subtract(order.getCreateProfit() == null ? BigDecimal.ZERO : order.getCreateProfit());
 
 				// 毛利额添加应收费用(除包装费)
 				Long feeId = 0L;
@@ -1335,9 +1336,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		List<OrderFees> orderFeesList = orderFeesService.list(new QueryWrapper<OrderFees>().eq("pid", order.getId())
 			.eq("fees_type", "1").eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).orderByAsc("id"));
 		if (CollectionUtils.isNotEmpty(orderFeesList)) {
-			bigDecimal = bigDecimal.add(orderFeesList.stream().map(OrderFees::getAmount)
-				.filter(Objects::nonNull)
-				.reduce(BigDecimal.ZERO, BigDecimal::add));
+			//订单费用 需要转换为订单同样的汇率
+			BigDecimal reduce = orderFeesList.stream().filter(Objects::nonNull).reduce(BigDecimal.ZERO, (x, y) -> {
+				return x.add(y.getAmount().multiply(y.getExchangeRate()));
+			}, BigDecimal::add);
+			bigDecimal = bigDecimal.add(reduce.divide(order.getExchangeRate(), 5, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP));
 		}
 		if (bigDecimal.compareTo(new BigDecimal(BigInteger.ZERO)) > 0) {
 			String parse = NumToWords.parse(bigDecimal.toString());

+ 75 - 0
blade-service/blade-school/src/main/java/org/springblade/school/controller/SalaryItemController.java

@@ -1774,4 +1774,79 @@ public class SalaryItemController extends BladeController {
 		}
 		return salaryItemService.importLeadAssessExcel(excelList,false,id,file);
 	}
+
+	/**
+	 * 导入自定义学期绩效工资模板
+	 */
+	@GetMapping("/export/customPerformance")
+	@ApiOperationSupport(order = 98)
+	@ApiOperation(value = "导入模板-工资管理-小学部-自定义学期绩效工资模板")
+	public void exportCustomPerformance(HttpServletResponse response) {
+		List<CustomPerformance> list = new ArrayList<CustomPerformance>();
+		ExcelUtil.export(response, "自定义学期绩效工资", "自定义学期绩效工资", list, CustomPerformance.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-导入自定义学期绩效工资
+	 *
+	 * */
+	@PostMapping("/import/customPerformance")
+	@ApiOperationSupport(order = 99)
+	@ApiOperation(value = "导入-工资管理-小学部-导入自定义学期绩效工资", notes = "传入excel")
+	public R importCustomPerformance(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		//校验模板
+		String excelPattern = null;
+		try {
+			excelPattern = ExcelCheck.checkExcelPattern(file, new CustomPerformance());
+		} catch (Exception e) {
+			throw new SecurityException("校验Excel失败");
+		}
+		if (StringUtils.isNotBlank(excelPattern)){
+			throw new SecurityException(excelPattern);
+		}
+		//导入数据
+		List<CustomPerformance> excelList = ExcelUtil.read(file, CustomPerformance.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importCustomPerformance(excelList,false,id,file);
+	}
+	/**
+	 * 导入日常考核工资调整模板
+	 */
+	@GetMapping("/export/adjustmentExcel")
+	@ApiOperationSupport(order = 100)
+	@ApiOperation(value = "导入模板-工资管理-小学部-日常考核工资调整模板")
+	public void exportAdjustmentExcel(HttpServletResponse response) {
+		List<AdjustmentExcel> list = new ArrayList<AdjustmentExcel>();
+		ExcelUtil.export(response, "日常考核工资调整", "日常考核工资调整", list, AdjustmentExcel.class);
+	}
+	/**
+	 * 导入-工资管理-小学部-导入日常考核工资调整
+	 *
+	 * */
+	@PostMapping("/import/adjustmentExcel")
+	@ApiOperationSupport(order = 101)
+	@ApiOperation(value = "导入-工资管理-小学部-导入日常考核工资调整", notes = "传入excel")
+	public R importAdjustmentExcel(@RequestParam("file") MultipartFile file,@RequestParam("id") Long id)
+	{
+		//校验模板
+		String excelPattern = null;
+		try {
+			excelPattern = ExcelCheck.checkExcelPattern(file, new AdjustmentExcel());
+		} catch (Exception e) {
+			throw new SecurityException("校验Excel失败");
+		}
+		if (StringUtils.isNotBlank(excelPattern)){
+			throw new SecurityException(excelPattern);
+		}
+		//导入数据
+		List<AdjustmentExcel> excelList = ExcelUtil.read(file, AdjustmentExcel.class);
+		if(CollectionUtils.isEmpty(excelList))
+		{
+			throw new SecurityException("数据不能为空");
+		}
+		return salaryItemService.importAdjustmentExcel(excelList,false,id,file);
+	}
 }

+ 37 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/AdjustmentExcel.java

@@ -0,0 +1,37 @@
+package org.springblade.school.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;
+
+/**
+ * 通济学校-工资管理-小学部-日常考核工资调整 模板
+ */
+@Data
+@ColumnWidth(15)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class AdjustmentExcel implements Serializable {
+
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	@ColumnWidth(35)
+	private String idNumber;
+	/**
+	 * 日常考核工资调整
+	 */
+	@ExcelProperty(value = "日常考核工资调整")
+	private BigDecimal pauseNoPayTwo;
+}

+ 57 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/CustomPerformance.java

@@ -0,0 +1,57 @@
+package org.springblade.school.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;
+
+/**
+ * 通济学校-工资管理-小学部-自定义学期绩效工资导入模板
+ */
+@Data
+@ColumnWidth(15)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class CustomPerformance implements Serializable {
+	/**
+	 * 姓名
+	 */
+	@ExcelProperty(value = "姓名(必填)")
+	private String cname;
+	/**
+	 * 身份证号
+	 */
+	@ExcelProperty(value = "身份证号(必填)")
+	@ColumnWidth(35)
+	private String idNumber;
+	/**
+	 * 学期绩效工资1
+	 */
+	@ExcelProperty(value = "学期绩效工资1")
+	private BigDecimal customNine;
+	/**
+	 * 学期绩效工资2
+	 */
+	@ExcelProperty(value = "学期绩效工资2")
+	private String customize;
+	/**
+	 * 学期绩效工资3
+	 */
+	@ExcelProperty(value = "学期绩效工资3")
+	private BigDecimal customizeOne;
+	/**
+	 * 学期绩效工资4
+	 */
+	@ExcelProperty(value = "学期绩效工资4")
+	private BigDecimal customizeTwo;
+	/**
+	 * 学期绩效工资5
+	 */
+	@ExcelProperty(value = "学期绩效工资5")
+	private BigDecimal customizeThree;
+
+}

+ 6 - 0
blade-service/blade-school/src/main/java/org/springblade/school/excel/WageExcel.java

@@ -4,6 +4,7 @@ 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;
@@ -243,6 +244,11 @@ public class WageExcel implements Serializable {
 	@ExcelProperty(value = "日常考核工资")
 	private BigDecimal dailyAssessmentSalary;
 	/**
+	 * 日常考核工资调整
+	 */
+	@ExcelProperty(value = "日常考核工资调整")
+	private BigDecimal pauseNoPayTwo;
+	/**
 	 * 绩效工资标准
 	 */
 	@ExcelProperty(value = "绩效工资标准")

+ 18 - 0
blade-service/blade-school/src/main/java/org/springblade/school/service/ISalaryItemService.java

@@ -395,5 +395,23 @@ public interface ISalaryItemService extends IService<SalaryItem> {
 	 * @return
 	 */
 	R importLeadAssessExcel(List<LeadAssessExcel> data, Boolean isCovered, Long id,MultipartFile file);
+	/**
+	 * 自定义学期绩效工资导入
+	 * @param data
+	 * @param isCovered
+	 * @param id
+	 * @param file
+	 * @return
+	 */
+	R importCustomPerformance(List<CustomPerformance> data, Boolean isCovered, Long id,MultipartFile file);
+	/**
+	 * 日常考核工资调整导入
+	 * @param data
+	 * @param isCovered
+	 * @param id
+	 * @param file
+	 * @return
+	 */
+	R importAdjustmentExcel(List<AdjustmentExcel> data, Boolean isCovered, Long id,MultipartFile file);
 
 }

+ 95 - 3
blade-service/blade-school/src/main/java/org/springblade/school/service/impl/SalaryItemServiceImpl.java

@@ -2324,6 +2324,98 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		}
 	}
 
+	@Override
+	public R importCustomPerformance(List<CustomPerformance> data, Boolean isCovered, Long id, MultipartFile file) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			CustomPerformance customPerformance = data.get(i);
+			if (StringUtils.isBlank(customPerformance.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(customPerformance.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(customPerformance,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+				//更新计算工资
+				this.countSalary(salaryItem);
+			}
+		}
+		//保存上传记录
+		this.saveAccessory(file,id);
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+
+	@Override
+	public R importAdjustmentExcel(List<AdjustmentExcel> data, Boolean isCovered, Long id, MultipartFile file) {
+		if(org.springframework.util.CollectionUtils.isEmpty(data))
+		{
+			throw new SecurityException("导入数据不能为空");
+		}
+		int message = 0; //导入成功条数
+		StringBuffer errMsg= new StringBuffer();
+		for(int i=0;i<data.size();i++)
+		{
+			AdjustmentExcel adjustmentExcel = data.get(i);
+			if (StringUtils.isBlank(adjustmentExcel.getIdNumber())){
+				errMsg.append("第"+(i+2)+"行,身份证号码为空,");
+				continue;
+			}
+			if (StringUtils.isBlank(adjustmentExcel.getCname())){
+				errMsg.append("第"+(i+2)+"行,姓名为空,");
+				continue;
+			}
+			SalaryItem salaryItem = new SalaryItem();
+			BeanUtil.copy(adjustmentExcel,salaryItem);
+			//根据身份证号查询教职工信息是否存在存在更新不存在新增
+			SalaryItem item = baseMapper.selectOne(new QueryWrapper<SalaryItem>().eq("id_number", salaryItem.getIdNumber()).eq("tenant_id", SecureUtil.getTenantId())
+				.eq("is_deleted", 0).eq("pid",id));
+			if (item != null){
+				salaryItem.setPid(id);
+				salaryItem.setId(item.getId());
+				salaryItem.setUpdateUser(SecureUtil.getUserId());
+				salaryItem.setUpdateTime(new Date());
+				baseMapper.updateById(salaryItem);
+				message = ++ message;
+				//更新计算工资
+				this.countSalary(salaryItem);
+			}
+		}
+		//保存上传记录
+		this.saveAccessory(file,id);
+		if (message >0 && message == data.size()){
+			return R.success("全部导入成功");
+		}else if (message >0 && message != data.size()){
+			return R.success("导入部分成功,成功"+ message +"条,导入失败"+(data.size()-message)+"条");
+		}else {
+			return R.success("导入失败");
+		}
+	}
+
 	/**
 	 *工资计算
 	 *
@@ -2339,7 +2431,7 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 		//7.班主任津贴=班主任补贴+班额津贴-校车考核-班级微信群考核-财务考核+班主任考核津贴
 		//8.补贴项=微信+产假工资+周末工作量工资+补贴1+…+补贴10
 		//9.扣除项=出勤+督查+超额电话费+学习强国+宿舍管理费+生育津贴+扣除1+…+扣除10
-		//10.应发工资=基本工资+工作量工资+日常考核工资+奖励工资+职务津贴+班主任津贴+补贴项-扣除项+保险(个人部分)+公积金(个人部分).. 大于700 保险(个人部分) 不加
+		//10.应发工资=基本工资+工作量工资+日常考核工资+日常考核工资调整+奖励工资+职务津贴+班主任津贴+补贴项-扣除项+保险(个人部分)+公积金(个人部分).. 大于700 保险(个人部分) 不加
 		//11.实发工资=应发工资-个人所得税-个人保险-公积金个人
 		SalaryItem item = baseMapper.selectById(salaryItem.getId());
 		if (item != null){
@@ -2361,9 +2453,9 @@ public class SalaryItemServiceImpl extends ServiceImpl<SalaryItemMapper, SalaryI
 			//应发工资  保险(个人部分)提取 享受公办待遇不减个人保险
 			if (StringUtils.isNotBlank(item.getEnjoyOfficeTreatment()) && item.getEnjoyOfficeTreatment().equals("是")){
 				item.setSalary(item.getBasicsSalary().add(item.getWorkloadSalary()).add(item.getDailyAssessmentSalary()).add(item.getAwardSalary()).add(item.getDutyAllowances()).add(item.getClassTeacherSubsidy())
-					.add(item.getSubsidy()).subtract(item.getDeductions()).add(item.getReservedFundsPersonage()));
+					.add(item.getSubsidy()).subtract(item.getDeductions()).add(item.getReservedFundsPersonage()).add(item.getPauseNoPayTwo()));
 			}else {
-				item.setSalary(item.getBasicsSalary().add(item.getWorkloadSalary()).add(item.getDailyAssessmentSalary()).add(item.getAwardSalary()).add(item.getDutyAllowances()).add(item.getClassTeacherSubsidy()).add(item.getSubsidy()).subtract(item.getDeductions()).add(item.getInsurancePersonage()).add(item.getReservedFundsPersonage()));
+				item.setSalary(item.getBasicsSalary().add(item.getWorkloadSalary()).add(item.getDailyAssessmentSalary()).add(item.getAwardSalary()).add(item.getDutyAllowances()).add(item.getClassTeacherSubsidy()).add(item.getSubsidy()).subtract(item.getDeductions()).add(item.getInsurancePersonage()).add(item.getReservedFundsPersonage()).add(item.getPauseNoPayTwo()));
 			}
 			//实发工资
 			item.setfSalary(item.getSalary().subtract(item.getPersonageTaxes()).subtract(item.getInsurancePersonage()).subtract(item.getReservedFundsPersonage()));

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

@@ -478,9 +478,12 @@ public class PurchaseOrderController extends BladeController {
 	@ApiOperationSupport(order = 12)
 	@ApiOperation(value = "分页", notes = "传入orderItems")
 	public R<IPage<OrderItems>> list(OrderItems orderItems, Query query) {
-		orderItems.setIsDeleted(0);
-		orderItems.setTenantId(SecureUtil.getTenantId());
-		IPage<OrderItems> pages = orderItemsService.page(Condition.getPage(query), Condition.getQueryWrapper(orderItems));
+		LambdaQueryWrapper<OrderItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(OrderItems::getIsDeleted,0);
+		lambdaQueryWrapper.eq(OrderItems::getTenantId,SecureUtil.getTenantId());
+		lambdaQueryWrapper.eq(Func.isNotEmpty(orderItems.getPid()),OrderItems::getPid,orderItems.getPid());
+		lambdaQueryWrapper.eq(Func.isNotEmpty(orderItems.getId()),OrderItems::getId,orderItems.getId());
+		IPage<OrderItems> pages = orderItemsService.page(Condition.getPage(query), lambdaQueryWrapper);
 		if (CollectionUtils.isNotEmpty(pages.getRecords())){
 			pages.getRecords().forEach(item -> {