Sfoglia il codice sorgente

添加审批流 修改客户导入bug

1021934019@qq.com 4 anni fa
parent
commit
e2c7ea002d
16 ha cambiato i file con 355 aggiunte e 96 eliminazioni
  1. 3 0
      blade-ops-api/blade-flow-api/src/main/java/org/springblade/flow/core/entity/BladeFlow.java
  2. 12 0
      blade-ops/blade-flow/src/main/java/org/springblade/flow/business/controller/WorkController.java
  3. 9 0
      blade-ops/blade-flow/src/main/java/org/springblade/flow/business/service/FlowBusinessService.java
  4. 24 0
      blade-ops/blade-flow/src/main/java/org/springblade/flow/business/service/impl/FlowBusinessServiceImpl.java
  5. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/GoodsSpecification.java
  6. 41 0
      blade-service-api/blade-project-api/src/main/java/org/springblade/project/feign/IProjectItemClient.java
  7. 6 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderItems.java
  8. 6 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderItems.java
  9. 25 3
      blade-service/blade-client/src/main/java/org/springblade/client/corps/excel/CorpsExcel.java
  10. 54 43
      blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java
  11. 33 6
      blade-service/blade-client/src/main/java/org/springblade/client/goods/excel/GoodsExcel.java
  12. 59 43
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java
  13. 6 0
      blade-service/blade-desk/pom.xml
  14. 5 0
      blade-service/blade-desk/src/main/java/org/springblade/desk/entity/ProcessLeave.java
  15. 16 0
      blade-service/blade-desk/src/main/java/org/springblade/desk/service/impl/LeaveServiceImpl.java
  16. 55 0
      blade-service/blade-project/src/main/java/org/springblade/project/feign/ProjectItemClient.java

+ 3 - 0
blade-ops-api/blade-flow-api/src/main/java/org/springblade/flow/core/entity/BladeFlow.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.flow.core.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
 import org.springblade.flow.core.constant.ProcessConstant;
 
@@ -175,5 +176,7 @@ public class BladeFlow implements Serializable {
 	public boolean isPass() {
 		return ProcessConstant.PASS_ALIAS.equals(flag) || ProcessConstant.PASS_COMMENT.equals(comment);
 	}
+	@TableField(exist = false)
+	private Long itemId;
 
 }

+ 12 - 0
blade-ops/blade-flow/src/main/java/org/springblade/flow/business/controller/WorkController.java

@@ -144,4 +144,16 @@ public class WorkController {
 		return R.success("删除任务成功");
 	}
 
+	/**
+	 * 审核完成任务
+	 *
+	 * @param flow 请假信息
+	 */
+	@PostMapping("checkCompleteTask")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "完成任务", notes = "传入流程信息")
+	public R checkCompleteTask(@ApiParam("任务信息") @RequestBody BladeFlow flow,Long itemId) {
+		return R.status(flowBusinessService.checkCompleteTask(flow,itemId));
+	}
+
 }

+ 9 - 0
blade-ops/blade-flow/src/main/java/org/springblade/flow/business/service/FlowBusinessService.java

@@ -69,4 +69,13 @@ public interface FlowBusinessService {
 	 * @return boolean
 	 */
 	boolean completeTask(BladeFlow leave);
+
+
+	/**
+	 * 请核完成任务
+	 *
+	 * @param leave 请假信息
+	 * @return boolean
+	 */
+	boolean checkCompleteTask(BladeFlow leave,Long itemId);
 }

+ 24 - 0
blade-ops/blade-flow/src/main/java/org/springblade/flow/business/service/impl/FlowBusinessServiceImpl.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.flow.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import lombok.AllArgsConstructor;
 import org.flowable.engine.HistoryService;
@@ -38,6 +39,7 @@ import org.springblade.flow.core.utils.TaskUtil;
 import org.springblade.flow.engine.constant.FlowEngineConstant;
 import org.springblade.flow.engine.utils.FlowCache;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.LinkedList;
 import java.util.List;
@@ -262,6 +264,28 @@ public class FlowBusinessServiceImpl implements FlowBusinessService {
 		return true;
 	}
 
+	@Override
+	@Transactional
+	public boolean checkCompleteTask(BladeFlow flow, Long itemId)
+	{
+		String taskId = flow.getTaskId();
+		String processInstanceId = flow.getProcessInstanceId();
+		String comment = Func.toStr(flow.getComment(), ProcessConstant.PASS_COMMENT);
+		// 增加评论
+		if (StringUtil.isNoneBlank(processInstanceId, comment)) {
+			taskService.addComment(taskId, processInstanceId, comment);
+		}
+		// 创建变量
+		Map<String, Object> variables = flow.getVariables();
+		if (variables == null) {
+			variables = Kv.create();
+		}
+		variables.put(ProcessConstant.PASS_KEY, flow.isPass());
+		// 完成任务
+		taskService.complete(taskId, variables);
+		return true;
+	}
+
 	/**
 	 * 构建流程
 	 *

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/GoodsSpecification.java

@@ -68,7 +68,7 @@ public class GoodsSpecification implements Serializable {
 	* 描述
 	*/
 		@ApiModelProperty(value = "描述")
-		private String describe;
+		private String description;
 	/**
 	* 备注
 	*/

+ 41 - 0
blade-service-api/blade-project-api/src/main/java/org/springblade/project/feign/IProjectItemClient.java

@@ -0,0 +1,41 @@
+package org.springblade.project.feign;
+
+
+import org.springblade.core.tool.api.R;
+import org.springblade.project.entity.ServiceProjectItem;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Date;
+import java.util.List;
+
+@FeignClient(
+	value = "trade-project"
+)
+/**
+ * 商品信息对外访问API
+ */
+public interface IProjectItemClient {
+
+	/**
+	 * 修改主营项目明细状态
+	 * */
+	@PostMapping("client/updateItemStatus")
+	public R  check(@RequestParam(name = "id", required = true) Long itemId
+		,@RequestParam(name = "status", required = true) int status
+		,@RequestParam(name = "accountName", required = false) String accountName
+		,@RequestParam(name = "accountBank", required = false) String accountBank
+		,@RequestParam(name = "payTime", required = false) Date payTime
+		,@RequestParam(name = "accountNo", required = false) String accountNo);
+
+
+	/**
+	 * 通过id查询主营项目明细
+	 * */
+	@GetMapping("client/findItemById")
+	public ServiceProjectItem findItemById(@RequestParam(name = "id", required = true) Long itemId);
+
+
+}

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

@@ -322,4 +322,10 @@ public class OrderItems implements Serializable {
 	 */
 	@ApiModelProperty(value = "商品类别名称")
 	private String priceCategoryNames;
+
+	/**
+	 * 箱号
+	 */
+	@ApiModelProperty(value = "箱号")
+	private String cntrNo;
 }

+ 6 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderItems.java

@@ -301,4 +301,10 @@ public class OrderItems extends OrderBase {
 	 */
 	@ApiModelProperty(value = "商品类别名称")
 	private String priceCategoryNames;
+
+	/**
+	 * 箱号
+	 */
+	@ApiModelProperty(value = "箱号")
+	private String cntrNo;
 }

+ 25 - 3
blade-service/blade-client/src/main/java/org/springblade/client/corps/excel/CorpsExcel.java

@@ -16,12 +16,34 @@ import java.math.BigDecimal;
 public class CorpsExcel implements Serializable {
 	private static final long serialVersionUID = 1L;
 
-	@ExcelProperty("客户编号")
+	@ExcelProperty("客户编号(必填)")
 	private String code;
 
-	@ExcelProperty("客户名称")
+	@ExcelProperty("客户名称(必填)")
 	private String cname;
 
+
+
+	@ExcelProperty("英文名")
+	private String enname;
+
+	@ExcelProperty("代理品牌")
+	private String goodtypes;
+
+	@ExcelProperty("所属公司")
+	private String belongtocompany;
+
+	@ExcelProperty("企业类型")
+	private String companytype;
+
+	@ExcelProperty("代理区域")
+	private String belongtoarea;
+
+	@ExcelProperty("职位")
+	private String position;
+
+
+
 	@ExcelProperty("联系人")
 	private String attn;
 
@@ -49,6 +71,6 @@ public class CorpsExcel implements Serializable {
 	@ExcelProperty("外币银行账号")
 	private String accountNoFcy;
 
-	@ExcelProperty("类型id,可以不填")
+	@ExcelProperty("typeId,不用填写")
 	private String typeId;
 }

+ 54 - 43
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -168,52 +168,63 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 	@Transactional
 	public void importUser(List<CorpsExcel> data, Boolean isCovered)
 	{
-		if(org.springframework.util.CollectionUtils.isEmpty(data))
-		{
-			throw new SecurityException("导入数据不能为空");
-		}
-		data.forEach(e->{
-			CorpsDesc corpsDesc=new CorpsDesc();
-			corpsDesc.setCode(e.getCode());
-			corpsDesc.setCname(e.getCname());
-			corpsDesc.setAttn(e.getAttn());
-			corpsDesc.setAttn(e.getAttn());
-			corpsDesc.setTel(e.getTel());
-			corpsDesc.setAddr(e.getAddr());
-			corpsDesc.setAccountBank(e.getAccountBank());
-			corpsDesc.setAccountName(e.getAccountName());
-			corpsDesc.setAccountNo(e.getAccountNo());
-			corpsDesc.setAccountBankFcy(e.getAccountBankFcy());
-			corpsDesc.setAccountNameFcy(e.getAccountNameFcy());
-			corpsDesc.setTenantId(AuthUtil.getTenantId());
-			corpsDesc.setAccountNoFcy(e.getAccountNoFcy());
-			//名称相等视为重复数据
-			LambdaQueryWrapper<CorpsDesc> queryWrapper = new LambdaQueryWrapper<>();
-			queryWrapper.eq(CorpsDesc::getCname,corpsDesc.getCname());
-			CorpsDesc selectOne = baseMapper.selectOne(queryWrapper);
-			if(selectOne==null)
+		try {
+			if(org.springframework.util.CollectionUtils.isEmpty(data))
 			{
-				corpsDesc.setCreateTime(new Date());
-				corpsDesc.setCreateUser(AuthUtil.getUserId());
-				corpsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
-				baseMapper.insert(corpsDesc);
-
-				CorpsTypeDesc middle=new CorpsTypeDesc();
-				middle.setCorpId(corpsDesc.getId());
-				middle.setCorpTypeId(Long.valueOf(e.getTypeId()));
-				middle.setCreateTime(new Date());
-				middle.setCreateUser(AuthUtil.getUserId());
-				middle.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
-				middleMapper.insert(middle);
-			}
-			else
-			{
-				selectOne.setUpdateTime(new Date());
-				selectOne.setUpdateUser(AuthUtil.getUserId());
-				baseMapper.updateById(selectOne);
+				throw new SecurityException("导入数据不能为空");
 			}
+			data.forEach(e->{
+				CorpsDesc corpsDesc=new CorpsDesc();
+				corpsDesc.setCode(e.getCode());
+				corpsDesc.setCname(e.getCname());
+				corpsDesc.setAttn(e.getAttn());
+				corpsDesc.setAttn(e.getAttn());
+				corpsDesc.setTel(e.getTel());
+				corpsDesc.setAddr(e.getAddr());
+				corpsDesc.setAccountBank(e.getAccountBank());
+				corpsDesc.setAccountName(e.getAccountName());
+				corpsDesc.setAccountNo(e.getAccountNo());
+				corpsDesc.setAccountBankFcy(e.getAccountBankFcy());
+				corpsDesc.setAccountNameFcy(e.getAccountNameFcy());
+				corpsDesc.setTenantId(AuthUtil.getTenantId());
+				corpsDesc.setAccountNoFcy(e.getAccountNoFcy());
+				corpsDesc.setEnname(e.getEnname());
+				corpsDesc.setGoodtypes(e.getGoodtypes());
+				corpsDesc.setBelongtocompany(e.getBelongtocompany());
+				corpsDesc.setBelongtoarea(e.getBelongtoarea());
+				corpsDesc.setCompanytype(e.getCompanytype());
+				corpsDesc.setPosition(e.getPosition());
+				//名称相等视为重复数据
+				LambdaQueryWrapper<CorpsDesc> queryWrapper = new LambdaQueryWrapper<>();
+				queryWrapper.eq(CorpsDesc::getCname,corpsDesc.getCname());
+				CorpsDesc selectOne = baseMapper.selectOne(queryWrapper);
+				if(selectOne==null)
+				{
+					corpsDesc.setCreateTime(new Date());
+					corpsDesc.setCreateUser(AuthUtil.getUserId());
+					corpsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+					baseMapper.insert(corpsDesc);
 
-		});
+					CorpsTypeDesc middle=new CorpsTypeDesc();
+					middle.setCorpId(corpsDesc.getId());
+					middle.setCorpTypeId(Long.valueOf(e.getTypeId()));
+					middle.setCreateTime(new Date());
+					middle.setCreateUser(AuthUtil.getUserId());
+					middle.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+					middleMapper.insert(middle);
+				}
+				else
+				{
+					corpsDesc.setId(selectOne.getId());
+					corpsDesc.setUpdateTime(new Date());
+					corpsDesc.setUpdateUser(AuthUtil.getUserId());
+					baseMapper.updateById(corpsDesc);
+				}
+
+			});
+		} catch (Exception e) {
+			throw new SecurityException("请检查导入数据");
+		}
 	}
 
 

+ 33 - 6
blade-service/blade-client/src/main/java/org/springblade/client/goods/excel/GoodsExcel.java

@@ -15,14 +15,35 @@ import java.io.Serializable;
 public class GoodsExcel implements Serializable {
 	private static final long serialVersionUID = 1L;
 
-	@ExcelProperty("商品编码")
+	@ExcelProperty("商品编码(必填)")
 	private String code;
 
-	@ExcelProperty("商品名称")
+	@ExcelProperty("商品名称(必填)")
 	private String cname;
 
-	@ExcelProperty("规格编码")
-	private String Typeno;
+	@ExcelProperty("英文名称")
+	private String ename;
+
+	@ExcelProperty("中文描述")
+	private String nameDescription;
+
+	@ExcelProperty("英文描述")
+	private String cnameDescription;
+
+	@ExcelProperty("海关编码")
+	private String customCode;
+
+	@ExcelProperty("海关中文")
+	private String customName;
+
+	@ExcelProperty("海关英文")
+	private String customEname;
+
+	@ExcelProperty("退税率(小数 或者 整数)")
+	private String customRate;
+
+	@ExcelProperty("规格编码(必填)")
+	private String typeNo;
 
 	@ExcelProperty("品牌")
 	private String brand;
@@ -33,7 +54,7 @@ public class GoodsExcel implements Serializable {
 	@ExcelProperty("规格尺寸")
 	private String specs;
 
-	@ExcelProperty("0:商品/产品  1:事务")
+	@ExcelProperty("type,不需要填")
 	private String type;
 
 
@@ -53,6 +74,12 @@ public class GoodsExcel implements Serializable {
 	@ExcelProperty("备注")
 	private String remarks;
 
-	@ExcelProperty("分类id,可以为空")
+	@ExcelProperty("分类id,不用填写")
 	private String typeId;
+
+
+
+
+
+
 }

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

@@ -37,6 +37,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.*;
 
 /**
@@ -320,51 +321,66 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 	@Transactional
 	public void importGoods(List<GoodsExcel> data, Boolean isCovered)
 	{
-		if(org.springframework.util.CollectionUtils.isEmpty(data))
-		{
-			throw new SecurityException("导入数据不能为空");
-		}
-		data.forEach(e->{
-			GoodsDesc goodsDesc=new GoodsDesc();
-			goodsDesc.setCode(e.getCode());
-			goodsDesc.setCname(e.getCname());
-			goodsDesc.setTypeno(e.getTypeno());
-			goodsDesc.setBrand(e.getBrand());
-			goodsDesc.setBrandItem(e.getBrandItem());
-			goodsDesc.setSpecs(e.getSpecs());
-			goodsDesc.setType(0L);
-			goodsDesc.setCategory(e.getCategory());
-			goodsDesc.setCategoryitem(e.getCategoryitem());
-			goodsDesc.setUnit(e.getUnit());
-			goodsDesc.setPackgeunit(e.getPackgeunit());
-			goodsDesc.setRemarks(e.getRemarks());
-			goodsDesc.setGoodsTypeId(e.getTypeId());
-			//如果名称相等 就认为重复
-			LambdaQueryWrapper<GoodsDesc> queryWrapper = new LambdaQueryWrapper<>();
-			queryWrapper.eq(GoodsDesc::getCname,goodsDesc.getCname());
-			GoodsDesc one = goodsDescMapper.selectOne(queryWrapper);
-			if(one==null)
-			{
-				goodsDesc.setCreateTime(new Date());
-				goodsDesc.setCreateUser(AuthUtil.getUserId());
-				goodsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
-				goodsDescMapper.insert(goodsDesc);
-
-				GoodsTypeDesc goodsTypeDes=new GoodsTypeDesc();
-				goodsTypeDes.setGoodsId(goodsDesc.getId());
-				goodsTypeDes.setGoodsTypeId(Long.valueOf(e.getTypeId()));
-				goodsTypeDes.setCreateTime(new Date());
-				goodsTypeDes.setCreateUser(AuthUtil.getUserId());
-				goodsTypeDes.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
-				goodsTypeDescMapper.insert(goodsTypeDes);
-			}
-			else
+		try {
+			if(org.springframework.util.CollectionUtils.isEmpty(data))
 			{
-				one.setUpdateTime(new Date());
-				one.setUpdateUser(AuthUtil.getUserId());
-				goodsDescMapper.updateById(one);
+				throw new SecurityException("导入数据不能为空");
 			}
-		});
+			data.forEach(e->{
+				GoodsDesc goodsDesc=new GoodsDesc();
+				goodsDesc.setCode(e.getCode());
+				goodsDesc.setCname(e.getCname());
+				goodsDesc.setTypeno(e.getTypeNo());
+				goodsDesc.setBrand(e.getBrand());
+				goodsDesc.setBrandItem(e.getBrandItem());
+				goodsDesc.setSpecs(e.getSpecs());
+				goodsDesc.setType(0L);
+				goodsDesc.setCategory(e.getCategory());
+				goodsDesc.setCategoryitem(e.getCategoryitem());
+				goodsDesc.setUnit(e.getUnit());
+				goodsDesc.setPackgeunit(e.getPackgeunit());
+				goodsDesc.setRemarks(e.getRemarks());
+				goodsDesc.setGoodsTypeId(e.getTypeId());
+				goodsDesc.setEname(e.getEname());
+				goodsDesc.setNameDescription(e.getNameDescription());
+				goodsDesc.setCnameDescription(e.getCnameDescription());
+				goodsDesc.setCustomCode(e.getCustomCode());
+				goodsDesc.setCustomName(e.getCustomName());
+				goodsDesc.setCustomEname(e.getCustomEname());
+				if(e.getCustomRate()!=null)
+				{
+					goodsDesc.setCustomRate(new BigDecimal(e.getCustomRate()));
+				}
+				//如果名称相等 就认为重复
+				LambdaQueryWrapper<GoodsDesc> queryWrapper = new LambdaQueryWrapper<>();
+				queryWrapper.eq(GoodsDesc::getCname,goodsDesc.getCname());
+				GoodsDesc one = goodsDescMapper.selectOne(queryWrapper);
+				if(one==null)
+				{
+					goodsDesc.setCreateTime(new Date());
+					goodsDesc.setCreateUser(AuthUtil.getUserId());
+					goodsDesc.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+					goodsDescMapper.insert(goodsDesc);
+
+					GoodsTypeDesc goodsTypeDes=new GoodsTypeDesc();
+					goodsTypeDes.setGoodsId(goodsDesc.getId());
+					goodsTypeDes.setGoodsTypeId(Long.valueOf(e.getTypeId()));
+					goodsTypeDes.setCreateTime(new Date());
+					goodsTypeDes.setCreateUser(AuthUtil.getUserId());
+					goodsTypeDes.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+					goodsTypeDescMapper.insert(goodsTypeDes);
+				}
+				else
+				{
+					goodsDesc.setId(one.getId());
+					goodsDesc.setUpdateTime(new Date());
+					goodsDesc.setUpdateUser(AuthUtil.getUserId());
+					goodsDescMapper.updateById(goodsDesc);
+				}
+			});
+		} catch (Exception e) {
+			throw new SecurityException("请仔细检查导入数据");
+		}
 	}
 
 }

+ 6 - 0
blade-service/blade-desk/pom.xml

@@ -55,6 +55,12 @@
             <groupId>com.qiniu</groupId>
             <artifactId>qiniu-java-sdk</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-project-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
         <!--<dependency>
             <groupId>org.springblade</groupId>
             <artifactId>blade-starter-transaction</artifactId>

+ 5 - 0
blade-service/blade-desk/src/main/java/org/springblade/desk/entity/ProcessLeave.java

@@ -75,4 +75,9 @@ public class ProcessLeave extends FlowEntity {
 	 */
 	private Date applyTime;
 
+	/**
+	 * 关联表id
+	 */
+	private Long itemId;
+
 }

+ 16 - 0
blade-service/blade-desk/src/main/java/org/springblade/desk/service/impl/LeaveServiceImpl.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.desk.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springblade.core.log.exception.ServiceException;
@@ -33,6 +34,8 @@ import org.springblade.flow.core.entity.BladeFlow;
 import org.springblade.flow.core.feign.IFlowClient;
 import org.springblade.flow.core.utils.FlowUtil;
 import org.springblade.flow.core.utils.TaskUtil;
+import org.springblade.project.entity.ServiceProjectItem;
+import org.springblade.project.feign.IProjectItemClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -48,6 +51,8 @@ public class LeaveServiceImpl extends BaseServiceImpl<LeaveMapper, ProcessLeave>
 
 	private final IFlowClient flowClient;
 
+	private final IProjectItemClient projectItemClient;
+
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	// @GlobalTransactional
@@ -82,6 +87,17 @@ public class LeaveServiceImpl extends BaseServiceImpl<LeaveMapper, ProcessLeave>
 	@Transactional
 	public boolean startCheckProcess(ProcessLeave check)
 	{
+		ServiceProjectItem item = projectItemClient.findItemById(check.getItemId());
+		if(item.getStatus()>0)
+		{
+			throw new ServiceException("已请核的禁止重复提交");
+		}
+		R res = projectItemClient.check(check.getItemId(), 1, null, null, null, null);
+		if(!res.isSuccess())
+		{
+			throw new ServiceException("请求调用请核失败");
+		}
+
 		String businessTable = FlowUtil.getBusinessTable(ProcessConstant.LEAVE_KEY);
 		if (Func.isEmpty(check.getId())) {
 			// 保存leave

+ 55 - 0
blade-service/blade-project/src/main/java/org/springblade/project/feign/ProjectItemClient.java

@@ -0,0 +1,55 @@
+package org.springblade.project.feign;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.client.entity.GoodsDesc;
+import org.springblade.client.feign.IGoodsDescClient;
+
+import org.springblade.client.vo.GoodsDescVO;
+import org.springblade.core.secure.utils.SecureUtil;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.project.entity.ServiceProjectItem;
+import org.springblade.project.service.ServiceProjectItemService;
+import org.springblade.project.service.ServiceProjectService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.Date;
+import java.util.List;
+
+@Slf4j
+@NonDS
+@ApiIgnore()
+@RestController()
+@AllArgsConstructor
+public class ProjectItemClient implements IProjectItemClient
+{
+	@Autowired
+	private ServiceProjectService serviceProjectService;
+	@Autowired
+	private ServiceProjectItemService serviceProjectItemService;
+
+	@Override
+	@PostMapping("client/updateItemStatus")
+	public R check(Long itemId, int status, String accountName, String accountBank, Date payTime, String accountNo)
+	{
+		serviceProjectService.updateItemStatus(itemId,status,accountName,accountBank,accountNo,payTime);
+		return R.success("操作成功");
+	}
+
+	@Override
+	@GetMapping("client/findItemById")
+	public ServiceProjectItem findItemById(Long itemId)
+	{
+		return	serviceProjectItemService.getById(itemId);
+	}
+
+
+}