Quellcode durchsuchen

2022年8月18日 19:35

wangzhuo vor 3 Jahren
Ursprung
Commit
2c321e7c91

+ 15 - 9
blade-service-api/blade-check-api/src/main/java/org/springblade/check/entity/AuditProecess.java

@@ -51,6 +51,12 @@ public class AuditProecess implements Serializable {
 	*/
 		@ApiModelProperty(value = "业务id")
 		private Long billId;
+
+	/**
+	 * 申请表id
+	 */
+		private Long srcBillId;
+
 	/**
 	* 单据编号
 	*/
@@ -137,7 +143,6 @@ public class AuditProecess implements Serializable {
 		@TableField(exist = false)
 	    private Integer operate;
 
-		private Long srcBillId;
 	    @ApiModelProperty(value = "审批类型")
 		private String processType;
 
@@ -169,26 +174,27 @@ public class AuditProecess implements Serializable {
 	/**
 	 * 订单日期
 	 */
-	@TableField(exist = false)
-	private Date orderDate;
+		@TableField(exist = false)
+		private Date orderDate;
 
 	/**
 	 * 订单号
 	 */
-	@TableField(exist = false)
-	private String orderNo;
+		@TableField(exist = false)
+		private String orderNo;
 
 	/**
 	 * 客户名称
 	 */
-	@TableField(exist = false)
-	private String corpsName;
+		@TableField(exist = false)
+		private String corpsName;
 
 	/**
 	 * 请核人真实姓名
 	 */
-	@TableField(exist = false)
-	private String sendRealName;
+		@TableField(exist = false)
+		private String sendRealName;
+
 	/**
 	 * 数量
 	 */

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

@@ -379,44 +379,4 @@ public class AuditProecessController extends BladeController {
 		return R.success("删除成功");
 	}
 
-	/**
-	 * 审批流记录
-	 * @param auditProecess
-	 * @return
-	 */
-	@GetMapping("/appList")
-	@ApiOperationSupport(order = 2)
-	@ApiOperation(value = "app用户审批记录", notes = "传入auditProecess")
-	public R appList(AuditProecess auditProecess) {
-		LambdaQueryWrapper<AuditProecess> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-		lambdaQueryWrapper.eq(AuditProecess::getIsDelete, 0);//是否删除
-		lambdaQueryWrapper.like(AuditProecess::getAuditUserId, String.valueOf(AuthUtil.getUserId()));//审核人id
-		lambdaQueryWrapper.eq(StringUtils.isNotBlank(auditProecess.getProcessType()), AuditProecess::getProcessType, auditProecess.getProcessType());//业务类型
-		lambdaQueryWrapper.eq(StringUtils.isNotBlank(auditProecess.getAuditStatus()), AuditProecess::getAuditStatus, auditProecess.getAuditStatus());//审核状态
-		lambdaQueryWrapper.eq(auditProecess.getCorpId() != null, AuditProecess::getCorpId, auditProecess.getCorpId());//往来单位
-		lambdaQueryWrapper.like(StringUtils.isNotBlank(auditProecess.getBillNo()),AuditProecess::getBillNo, auditProecess.getBillNo());//业务编号
-		lambdaQueryWrapper.gt(auditProecess.getApplybegintime() != null, AuditProecess::getSendTime, auditProecess.getApplybegintime());//请核时间
-		lambdaQueryWrapper.le(auditProecess.getApplyendtime() != null, AuditProecess::getSendTime, auditProecess.getApplyendtime());
-		lambdaQueryWrapper.orderByDesc(AuditProecess::getSendTime);
-
-		List<AuditProecess> auditProecessList = auditProecessService.list(lambdaQueryWrapper);
-		if (CollectionUtils.isNotEmpty(auditProecessList)) {
-			auditProecessList.forEach(auditOrderVO -> {
-				//采购销售表相关数据
-				if (auditOrderVO.getBillId() != null) {
-					Order order = orderDescClient.getById(auditOrderVO.getBillId());
-					if (order != null) {
-						auditOrderVO.setOrderDate(order.getCreateTime());
-						auditOrderVO.setOrderNo(order.getOrderNo());
-						auditOrderVO.setAmountReceivable(order.getDebitAmount());
-						if (order.getCorpId() != null ) {
-							auditOrderVO.setCorpsName(corpsDescClient.getCorpMessage(order.getCorpId()).getData().getCname());
-						}
-					}
-				}
-			});
-		}
-		return R.data(auditProecessList);
-	}
-
 }

+ 40 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsDescController.java

@@ -33,6 +33,7 @@ import org.springblade.client.goods.excel.GoodsExcel;
 import org.springblade.client.goods.excel.GoodsExcels;
 import org.springblade.client.goods.excel.GoodsInfoExcel;
 import org.springblade.client.goods.excel.GoodsOutExcel;
+import org.springblade.client.goods.mapper.GoodsFilesMapper;
 import org.springblade.client.goods.service.*;
 import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.core.boot.ctrl.BladeController;
@@ -92,6 +93,8 @@ public class GoodsDescController extends BladeController {
 
 	private final ICorpsDescService corpsDescService;
 
+	private final GoodsFilesMapper goodsFilesMapper;
+
 	/**
 	 * 详情
 	 */
@@ -476,4 +479,41 @@ public class GoodsDescController extends BladeController {
 			this.selectChildById(item.getId(), idList);
 		});
 	}
+
+
+	/**
+	 * 获得所有商品类别
+	 * @return typeList
+	 */
+	@GetMapping("/goodsTypeList")
+	public R<?> GoodsTypeList() {
+		LambdaQueryWrapper<GoodsType> typeLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		typeLambdaQueryWrapper.eq(GoodsType::getTenantId, AuthUtil.getTenantId());
+		typeLambdaQueryWrapper.eq(GoodsType::getIsDeleted, 0);
+		List<GoodsType> typeList = goodsDescType.list(typeLambdaQueryWrapper);
+		return R.data(typeList);
+	}
+
+	/**
+	 * 根据类别id获得属于该类别的所有商品数据
+	 * @return list
+	 */
+	@GetMapping("/getGoodsList")
+	public R<?> getGoodsList(GoodsDesc goodsDesc) {
+		LambdaQueryWrapper<GoodsDesc> LambdaQueryWrapper = new LambdaQueryWrapper<>();
+		LambdaQueryWrapper.eq(GoodsDesc::getTenantId, AuthUtil.getTenantId());
+		LambdaQueryWrapper.eq(GoodsDesc::getIsDeleted, 0);
+		LambdaQueryWrapper.eq(GoodsDesc::getGoodsTypeId, goodsDesc.getGoodsTypeId());
+		List<GoodsDesc> List = goodsDescService.list(LambdaQueryWrapper);
+
+		List.forEach(good -> {
+			List<GoodsFiles> filesList = goodsFilesMapper.selectList(new LambdaQueryWrapper<GoodsFiles>()
+				.eq(GoodsFiles::getPid, good.getId())
+				.eq(GoodsFiles::getIsDeleted, 0)
+			);
+			good.setFilesList(filesList);
+		});
+
+		return R.data(List);
+	}
 }

+ 4 - 0
blade-service/blade-project/pom.xml

@@ -84,6 +84,10 @@
             <version>2.8.2.RELEASE</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-excel</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

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

@@ -5,18 +5,23 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.feign.ICorpsDescClient;
+import org.springblade.core.excel.util.ExcelUtil;
 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.CollectionUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.project.entity.ServiceProject;
 import org.springblade.project.entity.ServiceProjectFiles;
 import org.springblade.project.entity.ServiceProjectItem;
+import org.springblade.project.excel.CommissionExcel;
+import org.springblade.project.excel.StatisticsExcel;
 import org.springblade.project.service.ServiceProjectFilesService;
 import org.springblade.project.service.ServiceProjectItemService;
 import org.springblade.project.service.ServiceProjectService;
@@ -32,6 +37,7 @@ import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
+import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -892,7 +898,7 @@ public class ProjectController {
 	 * @param beginTimeEnd
 	 * @param actualDateStart
 	 * @param actualDateEnd
-	 * @param corpName
+	 * @param userName
 	 * @param status
 	 * @param branch
 	 * @return
@@ -973,5 +979,72 @@ public class ProjectController {
 		return R.data(serviceProjectItem.getId());
 	}
 
+	/**
+	 * 统计主营业务-任务、提成统计导出
+	 *
+	 * @param beginTimeStart
+	 * @param beginTimeEnd
+	 * @param userName
+	 * @param taskStatus
+	 * @param branch
+	 */
+	@GetMapping("/statisticsExport")
+	@ApiOperation(value = "任务 提成统计导出", notes = "任务 提成统计导出")
+	public void statisticsExport(@RequestParam(name = "beginTimeStart", required = false) String beginTimeStart,
+								 @RequestParam(name = "beginTimeEnd", required = false) String beginTimeEnd,
+								 @RequestParam(name = "userName", required = false) String userName,
+								 @RequestParam(name = "taskStatus", required = false) String taskStatus,
+								 @RequestParam(name = "branch") String branch,
+								 @RequestParam(name = "type") String type,
+								 HttpServletResponse response
+	){
+		LambdaQueryWrapper<ServiceProjectItem> itemLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		itemLambdaQueryWrapper
+			.eq(ServiceProjectItem::getTenantId, AuthUtil.getTenantId())
+			.ge(StringUtils.isNotBlank(beginTimeStart), ServiceProjectItem::getBeginTime, beginTimeStart)
+			.le(StringUtils.isNotBlank(beginTimeEnd), ServiceProjectItem::getBeginTime, beginTimeEnd);
 
+		// 承做人
+		if (StringUtils.isNotBlank(userName)) {
+			List<User> userList = userClient.userInfoByName(userName, AuthUtil.getTenantId());
+			if (ObjectUtils.isNotNull(userList)) {
+				itemLambdaQueryWrapper.eq(ObjectUtils.isNotNull(userList), ServiceProjectItem::getUserid, userList.get(0).getId());
+			}
+		}
+		taskStatus = null;
+		itemLambdaQueryWrapper.orderByDesc(ServiceProjectItem::getUserid)
+			.eq(ServiceProjectItem::getIsDeleted, 0)
+			.eq(StringUtils.isNotBlank(taskStatus), ServiceProjectItem::getStatus, taskStatus)
+			.eq(ServiceProjectItem::getBranch, branch);
+		List<ServiceProjectItem> list = serviceProjectItemService.list(itemLambdaQueryWrapper);
+
+		if (!CollectionUtils.isEmpty(list)) {
+			list.forEach(e -> {
+				Long corpId = serviceProjectService.getOne(new LambdaQueryWrapper<ServiceProject>()
+					.eq(ServiceProject::getId, e.getPId())).getCorpId();
+				R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(corpId);
+				if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+					e.setCornName(corpMessage.getData().getCname());
+				}
+				//承做人
+				R<User> userR = userClient.userInfoById(e.getUserid());
+				if (userR.isSuccess()) {
+					e.setUserName(userR.getData().getRealName());
+				}
+			});
+		}
+
+		if (type.equals("RW")){
+			List<StatisticsExcel> excelList = new ArrayList<>();
+			if (ObjectUtil.isNotEmpty(list)){
+				excelList = BeanUtil.copy(list, StatisticsExcel.class);
+			}
+			ExcelUtil.export(response, "任务统计", "任务统计", excelList, StatisticsExcel.class);
+		}else if (type.equals("TC")){
+			List<CommissionExcel> excelList = BeanUtil.copy(list, CommissionExcel.class);
+			ExcelUtil.export(response, "提成统计", "提成统计", excelList, CommissionExcel.class);
+		}else {
+			throw new RuntimeException("用户无导出权限!");
+		}
+	}
 }

+ 51 - 0
blade-service/blade-project/src/main/java/org/springblade/project/excel/CommissionExcel.java

@@ -0,0 +1,51 @@
+package org.springblade.project.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 com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class CommissionExcel implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 承做人
+	 */
+	@ExcelProperty(value = "承做人")
+	private String userName;
+
+	/**
+	 * 业务日期
+	 */
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+	@ExcelProperty(value = "业务日期")
+	private Data beginTime;
+
+	/**
+	 * 客户名称
+	 */
+	@ExcelProperty(value = "客户名称")
+	private String cornName;
+
+	/**
+	 * 任务名称
+	 */
+	@ExcelProperty(value = "任务名称")
+	private String pname;
+
+	/**
+	 * 提成金额
+	 */
+	@ExcelProperty(value = "提成金额")
+	private BigDecimal commission;
+}

+ 53 - 0
blade-service/blade-project/src/main/java/org/springblade/project/excel/StatisticsExcel.java

@@ -0,0 +1,53 @@
+package org.springblade.project.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 com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class StatisticsExcel implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 承做人
+	 */
+	@ExcelProperty(value = "承做人")
+	private String userName;
+
+	/**
+	 * 业务日期
+	 */
+	@ExcelProperty(value = "业务日期")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	private Date beginTime;
+
+	/**
+	 * 客户名称
+	 */
+	@ExcelProperty(value = "客户名称")
+	private String cornName;
+
+	/**
+	 * 任务名称
+	 */
+	@ExcelProperty(value = "任务名称")
+	private String pName;
+
+	/**
+	 * 状态
+	 */
+	@ExcelProperty(value = "状态")
+	private Integer taskStatus;
+}