wangzhuo 3 лет назад
Родитель
Сommit
e333775ba9
15 измененных файлов с 205 добавлено и 11 удалено
  1. 14 0
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/entity/Notice.java
  2. 3 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/SalesDetailsVo.java
  3. 28 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/controller/NoticeController.java
  4. 8 0
      blade-service/blade-desk/src/main/java/org/springblade/desk/service/INoticeService.java
  5. 35 0
      blade-service/blade-desk/src/main/java/org/springblade/desk/service/impl/NoticeServiceImpl.java
  6. 13 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java
  7. 5 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.java
  8. 35 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml
  9. 5 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java
  10. 8 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  11. 12 0
      blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java
  12. 8 0
      blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.java
  13. 18 0
      blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml
  14. 8 0
      blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java
  15. 5 0
      blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java

+ 14 - 0
blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/entity/Notice.java

@@ -73,4 +73,18 @@ public class Notice extends TenantEntity {
 	 */
 	@TableField(exist = false)
 	private List<CommonFile> fileList;
+
+	/**
+	 * 通告开始日期
+	 */
+	@TableField(exist = false)
+	private String releaseTimeStart;
+
+	/**
+	 * 通告结束日期
+	 */
+	@TableField(exist = false)
+	private String releaseTimeEnd;
+
+
 }

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

@@ -107,4 +107,7 @@ public class SalesDetailsVo implements Serializable {
 
 	//政策
 	private String priceType;
+
+	//判断是否是app
+	private String IsItAnApp;
 }

+ 28 - 10
blade-service/blade-desk/src/main/java/org/springblade/desk/controller/NoticeController.java

@@ -16,19 +16,25 @@
  */
 package org.springblade.desk.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
+import org.springblade.client.entity.CommonFile;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.BladePage;
 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.tenant.annotation.TenantDS;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.core.tool.utils.RsaUtil;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.desk.entity.Notice;
 import org.springblade.desk.feign.INoticeClient;
 import org.springblade.desk.service.INoticeService;
@@ -37,6 +43,7 @@ import org.springblade.desk.wrapper.NoticeWrapper;
 import org.springframework.web.bind.annotation.*;
 import springfox.documentation.annotations.ApiIgnore;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -63,6 +70,7 @@ public class NoticeController extends BladeController {
 	@ApiOperation(value = "详情", notes = "传入notice")
 	public R<NoticeVO> detail(Notice notice) {
 		Notice detail = noticeService.getOne(Condition.getQueryWrapper(notice));
+		detail.setFileList(noticeService.fileList(detail.getId()));
 		return R.data(NoticeWrapper.build().entityVO(detail));
 	}
 
@@ -76,13 +84,22 @@ public class NoticeController extends BladeController {
 	})
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入notice")
-	public R<IPage<NoticeVO>> list(@ApiIgnore @RequestParam Map<String, Object> notice, Query query) {
-		IPage<Notice> pages = noticeService.page(Condition.getPage(query), Condition.getQueryWrapper(notice, Notice.class));
-		if (ObjectUtil.isNotEmpty(pages)){
-			pages.getRecords().stream().forEach(item -> {
-				item.setFileList(noticeService.fileList(item.getId()));
-			});
+	public R<IPage<NoticeVO>> list(Notice notice, Query query) {
+		LambdaQueryWrapper<Notice> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Notice::getTenantId, AuthUtil.getTenantId());
+		lambdaQueryWrapper.eq(Notice::getIsDeleted, 0);
+		lambdaQueryWrapper.like(StringUtil.isNotBlank(notice.getTitle()), Notice::getTitle, notice.getTitle());//标题
+		lambdaQueryWrapper.eq(ObjectUtil.isNotEmpty(notice.getCategory()), Notice::getCategory, notice.getCategory());//通知类型
+		lambdaQueryWrapper.ge(StringUtil.isNotBlank(notice.getReleaseTimeStart()), Notice::getReleaseTime, notice.getReleaseTimeStart());//通告开始日期
+		lambdaQueryWrapper.le(StringUtil.isNotBlank(notice.getReleaseTimeEnd()), Notice::getReleaseTime, notice.getReleaseTimeEnd());//通告结束日期
+
+		//根据角色设置权限
+		String role = AuthUtil.getUserRole();
+		if (!role.contains("admin")){//admin能看全部,不是admin根据登录人查询
+			lambdaQueryWrapper.in(Notice::getSendRange,AuthUtil.getUserId());
 		}
+
+		IPage<Notice> pages = noticeService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(NoticeWrapper.build().pageVO(pages));
 	}
 
@@ -108,7 +125,7 @@ public class NoticeController extends BladeController {
 	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "新增", notes = "传入notice")
 	public R save(@RequestBody Notice notice) {
-		return R.status(noticeService.save(notice));
+		return R.data(noticeService.saveNotice(notice));
 	}
 
 	/**
@@ -128,7 +145,8 @@ public class NoticeController extends BladeController {
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入notice")
 	public R submit(@RequestBody Notice notice) {
-		return R.status(noticeService.saveOrUpdate(notice));
+		return R.data(noticeService.saveNotice(notice));
+//		return R.status(noticeService.saveOrUpdate(notice));
 	}
 
 	/**
@@ -157,7 +175,7 @@ public class NoticeController extends BladeController {
 	 * 附件上传
 	 */
 	@PostMapping("/file")
-	@ApiOperationSupport(order = 15)
+	@ApiOperationSupport(order = 9)
 	@ApiOperation(value = "附件上传", notes = "传入fileList")
 	public R file(@RequestBody Notice notice) {
 		return R.status(noticeService.file(notice));
@@ -167,7 +185,7 @@ public class NoticeController extends BladeController {
 	 * 附件列表
 	 */
 	@GetMapping("/file-list")
-	@ApiOperationSupport(order = 16)
+	@ApiOperationSupport(order = 10)
 	@ApiOperation(value = "附件列表", notes = "传入id")
 	public R fileList(Long id) {
 		return R.data(noticeService.fileList(id));

+ 8 - 0
blade-service/blade-desk/src/main/java/org/springblade/desk/service/INoticeService.java

@@ -32,6 +32,14 @@ import java.util.List;
 public interface INoticeService extends BaseService<Notice> {
 
 	/**
+	 * 保存订单
+	 *
+	 * @param notice
+	 * @return
+	 */
+	Long saveNotice(Notice notice);
+
+	/**
 	 * 自定义分页
 	 * @param page
 	 * @param notice

+ 35 - 0
blade-service/blade-desk/src/main/java/org/springblade/desk/service/impl/NoticeServiceImpl.java

@@ -17,7 +17,9 @@
 package org.springblade.desk.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
+import org.springblade.client.constant.LandConstant;
 import org.springblade.client.entity.CommonFile;
 import org.springblade.client.feign.ICommonFileClient;
 import org.springblade.core.mp.base.BaseServiceImpl;
@@ -29,8 +31,10 @@ import org.springblade.desk.mapper.NoticeMapper;
 import org.springblade.desk.service.INoticeService;
 import org.springblade.desk.vo.NoticeVO;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Collections;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -45,6 +49,37 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> imp
 	private final ICommonFileClient commonFileClient;
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class)
+	public Long saveNotice(Notice notice) {
+		if (ObjectUtil.isEmpty(notice.getId())) {
+			notice.setTenantId(AuthUtil.getTenantId());
+			notice.setIsDeleted(0);
+			notice.setCreateUser(AuthUtil.getUserId());
+			notice.setCreateTime(new Date());
+			baseMapper.insert(notice);
+		}else {
+			notice.setUpdateUser(AuthUtil.getUserId());
+			notice.setUpdateTime(new Date());
+			baseMapper.updateById(notice);
+		}
+
+		List<CommonFile> fileList = notice.getFileList();
+		if (ObjectUtil.isNotEmpty(fileList)){
+			fileList.forEach(file -> {
+				if (ObjectUtil.isEmpty(file.getId())) {
+					file.setPid(notice.getId());
+					file.setSource("LAND_NOTICE_FEE");
+				}
+			});
+		}
+		commonFileClient.saveList(fileList);
+
+		baseMapper.updateById(notice);
+		return notice.getId();
+	}
+
+	@Override
 	public IPage<NoticeVO> selectNoticePage(IPage<NoticeVO> page, NoticeVO notice) {
 		// 若不使用mybatis-plus自带的分页方法,则不会自动带入tenantId,所以我们需要自行注入
 		notice.setTenantId(AuthUtil.getTenantId());

+ 13 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -685,6 +685,19 @@ public class ExportOrderController extends BladeController {
 	}
 
 	/**
+	 * app销售人员提成列表和检索条件查询
+	 * @param detailsVo
+	 * @return
+	 */
+	@GetMapping("/salesCommissionList")
+	@ApiOperation(value = "销售人员提成", notes = "销售人员提成")
+	public R<List<SalesDetailsVo>> salesCommissionList(SalesDetailsVo detailsVo){
+		detailsVo.setTenantId(SecureUtil.getTenantId());
+		List<SalesDetailsVo> list = orderService.salesAppCommissionList(detailsVo);
+		return R.data(list);
+	}
+
+	/**
 	 * 统计分析 销售人员提成列表和检索条件查询
 	 * @param detailsVo
 	 * @param query

+ 5 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.java

@@ -90,6 +90,11 @@ public interface OrderMapper extends BaseMapper<Order> {
 	List<SalesDetailsExcel> salesDetailsExport(@Param("detailsVo") SalesDetailsVo detailsVo);
 
 	/**
+	 * APP销售人员提成列表和检索条件查询
+	 */
+	List<SalesDetailsVo> salesAppCommission(@Param("detailsVo") SalesDetailsVo detailsVo);
+
+	/**
 	 * 统计分析 销售人员提成列表和检索条件查询
 	 */
 	List<SalesDetailsVo> salesCommission(IPage<SalesDetailsVo> page,@Param("detailsVo") SalesDetailsVo detailsVo);

+ 35 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderMapper.xml

@@ -639,6 +639,40 @@ ORDER BY
         order by BO.create_time desc
     </select>
 
+    <select id="salesAppCommission" resultType="org.springblade.purchase.sales.vo.SalesDetailsVo">
+        SELECT
+        bo.id as orderId,
+        boi.id as itemsId,
+        bgd.brand as brand,
+        bo.saleman as salesName,
+        bo.create_time as careteTime,
+        bgd.size as specs,
+        boi.Actual_quantity as quantity,
+        zboi.price_type as priceType
+        FROM business_delivery bo
+        LEFT JOIN business_delivery_items boi on boi.pid = bo.id
+        LEFT JOIN basic_goods_desc bgd on bgd.id = boi.item_id
+        LEFT JOIN business_order_items zboi ON zboi.id = boi.src_id
+        <where>
+            bo.bill_type = 'FH'
+            AND bo.is_deleted = 0
+            AND bo.tenant_id = #{detailsVo.tenantId}
+            <if test="detailsVo.brand != null and detailsVo.brand != ''">
+                AND bgd.Brand like concat('%', #{detailsVo.brand}, '%')
+            </if>
+            <if test="detailsVo.salesName != null and detailsVo.salesName != ''">
+                AND bo.saleman like concat('%', #{detailsVo.salesName}, '%')
+            </if>
+            <if test="detailsVo.beginCreateTime !=null and detailsVo.beginCreateTime != ''">
+                and bo.create_time >= #{detailsVo.beginCreateTime}
+            </if>
+            <if test="detailsVo.endCreateTime !=null and detailsVo.endCreateTime != ''">
+                and bo.create_time &lt;= #{detailsVo.endCreateTime}
+            </if>
+        </where>
+        order BY boi.Actual_quantity desc
+    </select>
+
     <select id="salesCommission" resultType="org.springblade.purchase.sales.vo.SalesDetailsVo">
         SELECT
             bo.id as orderId,
@@ -670,7 +704,7 @@ ORDER BY
                 and bo.create_time &lt;= #{detailsVo.endCreateTime}
             </if>
         </where>
-        order by bo.create_time desc
+        order BY bo.create_time desc
     </select>
 
     <select id="salesCommissionList" resultType="org.springblade.purchase.sales.excel.SalesCommissionExcel">

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

@@ -179,6 +179,11 @@ public interface IOrderService extends IService<Order> {
 	List<SalesDetailsExcel> salesDetailsExport(SalesDetailsVo detailsVo);
 
 	/**
+	 * app销售人员提成列表和检索条件查询
+	 */
+	List<SalesDetailsVo> salesAppCommissionList(SalesDetailsVo detailsVo);
+
+	/**
 	 * 统计分析 销售人员提成列表和检索条件查询
 	 */
 	IPage<SalesDetailsVo> salesCommission(IPage<SalesDetailsVo> page, SalesDetailsVo detailsVo);

+ 8 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -1380,6 +1380,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	/**
+	 * app销售人员提成列表和检索条件查询
+	 */
+	@Override
+	public List<SalesDetailsVo> salesAppCommissionList(SalesDetailsVo detailsVo) {
+		return baseMapper.salesAppCommission(detailsVo);
+	}
+
+	/**
 	 * 统计分析 销售人员提成列表和检索条件查询
 	 */
 	@Override

+ 12 - 0
blade-service/blade-system/src/main/java/org/springblade/system/controller/DeptController.java

@@ -149,6 +149,18 @@ public class DeptController extends BladeController {
 	}
 
 	/**
+	 * 获得部门和角色的树状结构
+	 */
+	@GetMapping("/treeUser")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "角色和部门树形结构", notes = "树形结构")
+	@PreAuth(AuthConstant.PERMIT_ALL)
+	public R<List<DeptVO>> treeUser(BladeUser bladeUser) {
+		List<DeptVO> tree = deptService.treeUser(Func.toStrWithEmpty(AuthUtil.getTenantId(), bladeUser.getTenantId()));
+		return R.data(tree);
+	}
+
+	/**
 	 * 新增或修改
 	 */
 	@PostMapping("/submit")

+ 8 - 0
blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.java

@@ -58,6 +58,14 @@ public interface DeptMapper extends BaseMapper<Dept> {
 	List<DeptVO> lazyTree(String tenantId, Long parentId);
 
 	/**
+	 * 获取树形节点
+	 *
+	 * @param tenantId
+	 * @return
+	 */
+	List<DeptVO> treeUser(String tenantId);
+
+	/**
 	 * 获取部门名
 	 *
 	 * @param ids

+ 18 - 0
blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml

@@ -99,6 +99,24 @@
         ORDER BY dept.sort
     </select>
 
+    <select id="treeUser" resultMap="treeNodeResultMap">
+        SELECT id, parent_id, title, `value`, `key`
+        FROM(
+            SELECT BU.id, BD.id as parent_id, BU.name as title, BU.id as "value", BU.id as "key",BU.tenant_id
+            FROM blade_user BU
+            LEFT JOIN blade_dept BD ON BU.dept_id IN (BD.ID)
+            WHERE BU.is_deleted = 0 AND BD.id != ''
+            UNION ALL
+            select id, parent_id, dept_name as title, id as "value", id as "key" ,tenant_id
+            from blade_dept where is_deleted = 0
+        ) f
+        <where>
+            <if test="tenantId != null and tenantId != ''">
+                tenant_id = #{tenantId}
+            </if>
+        </where>
+    </select>
+
     <select id="getDeptNames" resultType="java.lang.String">
         SELECT
         dept_name

+ 8 - 0
blade-service/blade-system/src/main/java/org/springblade/system/service/IDeptService.java

@@ -58,6 +58,14 @@ public interface IDeptService extends IService<Dept> {
 	List<DeptVO> lazyTree(String tenantId, Long parentId);
 
 	/**
+	 * 部门和角色树形结构
+	 *
+	 * @param tenantId
+	 * @return
+	 */
+	List<DeptVO> treeUser(String tenantId);
+
+	/**
 	 * 获取部门ID
 	 *
 	 * @param tenantId

+ 5 - 0
blade-service/blade-system/src/main/java/org/springblade/system/service/impl/DeptServiceImpl.java

@@ -92,6 +92,11 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
 	}
 
 	@Override
+	public List<DeptVO> treeUser(String tenantId) {
+		return ForestNodeMerger.merge(baseMapper.treeUser(tenantId));
+	}
+
+	@Override
 	public String getDeptIds(String tenantId, String deptNames) {
 		List<Dept> deptList = baseMapper.selectList(Wrappers.<Dept>query().lambda().eq(Dept::getTenantId, tenantId).in(Dept::getDeptName, Func.toStrList(deptNames)));
 		if (deptList != null && deptList.size() > 0) {