zhuwei 3 mesi fa
parent
commit
83bd6a53d7
15 ha cambiato i file con 229 aggiunte e 46 eliminazioni
  1. 2 2
      blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/oss/OssBuilder.java
  2. 5 1
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/EntrustInfo.java
  3. 1 1
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TaskApprovalVO.java
  4. 31 14
      blade-service/blade-business/src/main/java/org/springblade/business/controller/EntrustInfoController.java
  5. 2 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/EntrustInfoMapper.java
  6. 8 1
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/EntrustInfoMapper.xml
  7. 5 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/IEntrustInfoService.java
  8. 16 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/EntrustInfoServiceImpl.java
  9. 1 2
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java
  10. 18 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSampleInfoServiceImpl.java
  11. 6 4
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/controller/EVisaController.java
  12. 104 0
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/controller/EVisaJLController.java
  13. 15 18
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/service/impl/EVisaServiceImpl.java
  14. 14 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java
  15. 1 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java

+ 2 - 2
blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/oss/OssBuilder.java

@@ -84,8 +84,8 @@ public class OssBuilder {
     public OssTemplateRe template(String code) {
         String tenantId = AuthUtil.getTenantId();
         Oss oss = getOss(tenantId, code);
-        //oss.setEndpoint("http://183.247.216.148:9000/");
-       oss.setEndpoint("https://oss-cn-shenzhen.aliyuncs.com/");
+        oss.setEndpoint("http://183.247.216.148:9000/");
+       //oss.setEndpoint("https://oss-cn-shenzhen.aliyuncs.com/");
         Oss ossCached = ossPool.get(tenantId);
         OssTemplateRe template = templatePool.get(tenantId);
         // 若为空或者不一致,则重新加载

+ 5 - 1
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/EntrustInfo.java

@@ -141,6 +141,10 @@ public class EntrustInfo extends BaseEntity {
 	@ApiModelProperty(value = "样品操作状态")
 	private String sampleStatus;
 
-
+	/**
+	 * 委托单类型
+	 */
+	@ApiModelProperty(value = "委托单类型 1=客户 2=rfId")
+	private Integer entrustType;
 
 }

+ 1 - 1
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TaskApprovalVO.java

@@ -26,7 +26,7 @@ public class TaskApprovalVO {
     @ApiModelProperty("数据源")
     private String formDataId;
 
-    // 1=填报数据(质量填报,试验上报)   2=工程文件 3=日志资料 4=档案数据   5=计量支付证书  6=计量 材料  7= 计量 中间支付  8委托单
+    // 1=填报数据(质量填报,试验上报) 2=工程文件 3=日志资料 4=档案数据   5=计量支付证书  6=计量 材料  7= 计量 中间支付  8委托单
     @ApiModelProperty("上报类型")
     private Integer approvalType;
 

+ 31 - 14
blade-service/blade-business/src/main/java/org/springblade/business/controller/EntrustInfoController.java

@@ -19,9 +19,7 @@ package org.springblade.business.controller;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
 import org.springblade.business.entity.EntrustInfo;
 import org.springblade.business.service.IEntrustInfoService;
@@ -40,6 +38,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 委托单信息表 控制器
@@ -117,17 +116,21 @@ public class  EntrustInfoController extends BladeController {
 	@ApiOperation(value = "修改", notes = "传入entrustInfo")
 	@Transactional
 	public R update(@Valid @RequestBody EntrustInfo entrustInfo) {
-		if(Func.isNotEmpty(entrustInfo.getRepealType()) && entrustInfo.getRepealType()==1){
-			entrustInfo.setSampleStatus("6");
-			entrustInfo.setRepealTime(new Date());
-		}
-		if(Func.isNotEmpty(entrustInfo.getRepealType()) && entrustInfo.getRepealType()==2){
-			entrustInfo.setSampleStatus("5");
-		}
-		if ("".equals(entrustInfo.getSampleStatus())){
-			entrustInfo.setSampleStatus(null);
-		}
-		return R.status(entrustInfoService.updateById(entrustInfo));
+			// rfid--绑定 需要判断 委托单的状态和创建情况
+
+
+			if(Func.isNotEmpty(entrustInfo.getRepealType()) && entrustInfo.getRepealType()==1){
+				entrustInfo.setSampleStatus("6");
+				entrustInfo.setRepealTime(new Date());
+			}
+			if(Func.isNotEmpty(entrustInfo.getRepealType()) && entrustInfo.getRepealType()==2){
+				entrustInfo.setSampleStatus("5");
+			}
+			if ("".equals(entrustInfo.getSampleStatus())){
+				entrustInfo.setSampleStatus(null);
+			}
+
+		    return R.status(entrustInfoService.updateById(entrustInfo));
 	}
 
 	/**
@@ -218,4 +221,18 @@ public class  EntrustInfoController extends BladeController {
 	public R checkSample(Long sampleId){
 		return  entrustInfoService.checkSample(sampleId);
 	}
+
+	/**
+	 * rfid 获取数据
+	 */
+	@GetMapping("/selectRfidListById")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "自定义分页", notes = "传入entrustInfo")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "rids", value = "rids", required = true),
+			@ApiImplicitParam(name = "state", value = "流程所在状态", required = true)
+	})
+	public R getRfiList(String rids,String state) {
+		return entrustInfoService.getRfiList(rids,state);
+	}
 }

+ 2 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/EntrustInfoMapper.java

@@ -57,4 +57,6 @@ public interface EntrustInfoMapper extends BaseMapper<EntrustInfo> {
 	Integer selectCountBySampleId(Long sampleId);
 
 	List<EntrustInfo> checkDelete(@Param("ids") List<Long> ids);
+
+	List<EntrustInfo> getRfiList(@Param("ids") List<String> ids,@Param("state") String state);
 }

+ 8 - 1
blade-service/blade-business/src/main/java/org/springblade/business/mapper/EntrustInfoMapper.xml

@@ -57,7 +57,7 @@
         SELECT a.*,b.node_id as nodeId,b.material_name as materialName ,
           (SELECT max(c.id) from u_trial_self_inspection_record c where c.entrust_id = a.id) as testId
                from u_entrust_info a LEFT JOIN u_trial_sample_info b on a.sample_id=b.id
-        where a.is_deleted = 0 and b.is_deleted=0
+        where a.is_deleted = 0 and b.is_deleted=0 and entrust_type!=2
         <if test="param2.nodeId != null">
             and b.node_id = #{param2.nodeId}
         </if>
@@ -178,4 +178,11 @@
         and id not in(SELECT entrust_id from u_trial_self_inspection_record where is_deleted=0)
     </delete>
 
+    <select id="getRfiList" resultType="org.springblade.business.entity.TrialSampleInfo">
+        SELECT b.id,a.* from u_trial_sample_info a ,u_entrust_info b where a.id=b.sample_id and b.entrust_type=2 and a.is_deleted=0 and sample_status=#{state} and  b.is_deleted=0 and a.rf_id in
+        <foreach collection="ids" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
+
 </mapper>

+ 5 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/IEntrustInfoService.java

@@ -26,6 +26,8 @@ import org.springblade.business.vo.TrialSampleDataInfoVO;
 import org.springblade.core.mp.base.BaseService;
 import org.springblade.core.tool.api.R;
 
+import java.util.List;
+
 /**
  * 委托单信息表 服务类
  *
@@ -43,6 +45,9 @@ public interface IEntrustInfoService extends BaseService<EntrustInfo> {
 	 */
 	IPage<EntrustInfoVO> selectEntrustInfoPage(IPage<EntrustInfoVO> page, EntrustInfoVO entrustInfo);
 
+	// 获取rids
+	R getRfiList(String rids,String state);
+
 	EntrustDataInfoVO getReportDetail(String id);
 
 	/**

+ 16 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/EntrustInfoServiceImpl.java

@@ -38,6 +38,7 @@ import org.springblade.manager.feign.WbsTreePrivateClient;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -61,6 +62,21 @@ public class EntrustInfoServiceImpl extends BaseServiceImpl<EntrustInfoMapper, E
 		return page.setRecords(baseMapper.selectEntrustInfoPage(page, entrustInfo));
 	}
 
+	@Override
+	public R getRfiList(String rids,String state) {
+
+		if(Func.isNull(rids) || Func.isEmpty(rids)){
+			return R.fail("ids不能为null");
+		}
+		if(Func.isNull(state) || Func.isEmpty(state)){
+			return R.fail("state不能为null");
+		}
+
+		List<String> longList = Func.toStrList(rids);
+		List<EntrustInfo> entrustInfos = baseMapper.getRfiList(longList,state);
+		return R.data(entrustInfos);
+	}
+
 	@Override
 	public EntrustDataInfoVO getReportDetail(String id) {
 		return baseMapper.getReportDetail(id);

+ 1 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -1592,7 +1592,6 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                     }
 
                     if (type == 1) {
-
                         //重新保存
                         long startTime_1 = System.currentTimeMillis();
                         result = this.saveNodePdf(typeMap.get(task.getFormDataId()), queryMap.get(task.getFormDataId()), contractId, projectId, header);
@@ -1611,7 +1610,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                         List<TaskParallel> taskParallelList = finalTaskParallelGroupMap.get(task.getProcessInstanceId());
                         for (TaskParallel taskParallel : taskParallelList) {
                             //待审批的不进行重签, 存在待审批,但是电签状态是失败的
-                            if (!(new Integer(1)).equals(taskParallel.getStatus()) || (taskParallel.getEVisaStatus() != null && taskParallel.getEVisaStatus() == 99)) {
+                            if ((new Integer(2)).equals(taskParallel.getStatus()) || Func.isNotEmpty(taskParallel.getEVisaStatus()) || Func.isNotEmpty(taskParallel.getEVisaContent()) ) {
                                 TaskApprovalVO approvalVO = new TaskApprovalVO();
                                 approvalVO.setTaskId(task.getId().toString());
                                 approvalVO.setFlag("OK");

+ 18 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSampleInfoServiceImpl.java

@@ -15,12 +15,14 @@ import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.time.DateUtils;
 import org.springblade.business.dto.TrialSampleInfoDTO;
+import org.springblade.business.entity.EntrustInfo;
 import org.springblade.business.entity.TrialSampleInfo;
 import org.springblade.business.entity.TrialSamplingRecord;
 import org.springblade.business.entity.TrialSelfInspectionRecord;
 import org.springblade.business.excel.TrialSampleInfoExcel;
 import org.springblade.business.mapper.TrialSampleInfoMapper;
 import org.springblade.business.mapper.TrialSamplingRecordMapper;
+import org.springblade.business.service.IEntrustInfoService;
 import org.springblade.business.service.ITrialSampleInfoService;
 import org.springblade.business.utils.PDFUtil;
 import org.springblade.business.utils.StringSPUtils;
@@ -62,6 +64,7 @@ public class TrialSampleInfoServiceImpl extends BaseServiceImpl<TrialSampleInfoM
     private final NewIOSSClient newIOSSClient;
     private final TrialSamplingRecordMapper trialSamplingRecordMapper;
     private final JdbcTemplate jdbcTemplate;
+    private final IEntrustInfoService entrustInfoService;
 
     @Override
     public boolean sampleVerification(String specificationNumber, String id, String contractId, String nodeId) {
@@ -152,6 +155,21 @@ public class TrialSampleInfoServiceImpl extends BaseServiceImpl<TrialSampleInfoM
                 }
             }
         }
+
+        //rfId 创建委托单
+        if(Func.isNotEmpty(obj.getRfId())){
+            List<EntrustInfo> entrustInfoList = entrustInfoService.getBaseMapper().selectList(Wrappers.<EntrustInfo>lambdaQuery().eq(EntrustInfo::getSampleId,trialSampleInfo.getId()).eq(EntrustInfo::getStatus,2));
+            if(entrustInfoList==null || entrustInfoList.size()<=0){
+                EntrustInfo entrustInfo = new EntrustInfo();
+                entrustInfo.setSampleId(trialSampleInfo.getId());
+                entrustInfo.setStatus(1);
+                entrustInfo.setSampleStatus("1");
+                entrustInfo.setContractId(obj.getContractId()+"");
+                entrustInfo.setEntrustType(2);
+                entrustInfoService.save(entrustInfo);
+            }
+        }
+
         return true;
     }
 

+ 6 - 4
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/controller/EVisaController.java

@@ -61,15 +61,17 @@ public class EVisaController {
 
     // 电签主类
 
-    @Scheduled(cron = "0/10 * * * * ?")
+    @Scheduled(cron = "0/30 * * * * ?")
     public void SignInfo() {
         //执行代码
 
         log.info("扫描开始");
-       // String sql = "SELECT * from u_task_batch where json_data like '%1840658122872455168%' and is_deleted<>5  LIMIT 10";
-        String sql = "SELECT * from u_task_batch where is_deleted<>5 and id in(SELECT max(id) as id from u_task_batch where is_deleted<>5 GROUP BY JSON_EXTRACT(json_data, '$.formDataId')) LIMIT 10 ";
+       // String sql = "SELECT * from u_task_batch where json_data like '%1840658122872455168%' a
+        // nd is_deleted<>5  LIMIT 10";
+        String sql = "SELECT * from u_task_batch where is_deleted=0 and id in(SELECT max(id) as id from u_task_batch where is_deleted=0 GROUP BY JSON_EXTRACT(json_data, '$.formDataId')) LIMIT 10 ";
+        //String sql = "SELECT * from u_task_batch where is_deleted=5 and `status`=2";
         List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
-        if (maps != null && maps.size() >= 1 ) {//&& SystemUtils.isLinux()
+        if (maps != null && maps.size() >= 1 && SystemUtils.isLinux()) {//&& SystemUtils.isLinux()
             for (Map<String, Object> dataInfo : maps) {
                 if (executor.getQueue().size()<=40 ) {
                     String jsonData = dataInfo.get("json_data") + "";

+ 104 - 0
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/controller/EVisaJLController.java

@@ -0,0 +1,104 @@
+package org.springblade.evisa.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springblade.business.entity.Task;
+import org.springblade.business.feign.TaskClient;
+import org.springblade.business.vo.TaskApprovalVO;
+import org.springblade.evisa.service.EVisaService;
+import org.springblade.evisa.vo.EVisaTaskApprovalVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.io.FileNotFoundException;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+
+/**
+ * 清表基础数据表 控制器
+ *
+ * @author BladeX
+ * @since 2022-05-18
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/evisaInfo")
+@Api(value = "电签类", tags = "电签类接口")
+@Slf4j
+public class EVisaJLController {
+
+    @Autowired
+    StringRedisTemplate RedisTemplate;
+
+    // jdbc
+    private final JdbcTemplate jdbcTemplate;
+
+    //电签服务类
+    private final EVisaService eVisaService;
+
+    // 线程池
+    @Resource(name = "taskExecutor1")
+    private ThreadPoolExecutor executor;
+
+    private final TaskClient taskClient;
+
+    // 电签主类
+    public void SignInfo() {
+        //执行代码
+
+        log.info("扫描开始");
+        String sql = "SELECT * from u_task_batch where is_deleted=0 and id in(SELECT max(id) as id from u_task_batch where is_deleted=0 GROUP BY JSON_EXTRACT(json_data, '$.formDataId')) LIMIT 10 ";
+        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
+        if (maps != null && maps.size() >= 1 ) {//&& SystemUtils.isLinux()
+            for (Map<String, Object> dataInfo : maps) {
+                if (executor.getQueue().size()<=40 ) {
+                    String jsonData = dataInfo.get("json_data") + "";
+                    TaskApprovalVO taskApprovalVO = JSON.parseObject(jsonData, TaskApprovalVO.class);
+                    String taskBatchId = dataInfo.get("id").toString();
+                    Long userId = Long.valueOf(dataInfo.get("create_user") + "");
+                    String nickName = dataInfo.get("nick_name") + "";
+                    Boolean aBoolean = RedisTemplate.hasKey("sign-" + taskApprovalVO.getFormDataId());
+                    taskApprovalVO.setId(taskBatchId);
+                    taskApprovalVO.setUserId(userId);
+                    taskApprovalVO.setNickName(nickName);
+
+                    if (!aBoolean) {
+                        RedisTemplate.opsForValue().set("sign-" + taskApprovalVO.getFormDataId(), "1",1800, TimeUnit.SECONDS);
+                        CompletableFuture<Void> runAsync = CompletableFuture.runAsync(() -> {
+                            try {
+                                /*===============执行批量任务===============*/
+                                this.checkIsExsitTaskBatch(taskApprovalVO);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                        }, executor);
+                    }
+                }
+            }
+        }
+        System.out.println("队列数量" + executor.getQueue().size());
+        System.out.println("活跃数量" + executor.getActiveCount());
+        System.out.println("总共数量" + executor.getTaskCount());
+        System.out.println("完成数量" + executor.getCompletedTaskCount());
+    }
+
+    @Transactional
+    public void checkIsExsitTaskBatch(TaskApprovalVO taskApprovalVO){
+
+    }
+
+}

+ 15 - 18
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/service/impl/EVisaServiceImpl.java

@@ -427,12 +427,9 @@ public class EVisaServiceImpl implements EVisaService {
             return NOT_PFX_SGIN;
         }
 
-        //上锁
-        //if (DistributedRedisLock.acquire(task.getUserId().toString(), batch)) {
         try {
             //获取需要签章的数据
             List<TaskApprovalVO.ApprovalFile> files = taskFile.getApprovalFileList();
-
             //这里的文件只会是一张拼接好的PDF
             for (TaskApprovalVO.ApprovalFile file : files) {
 
@@ -462,28 +459,28 @@ public class EVisaServiceImpl implements EVisaService {
                 String contractId = Func.toStrArray(dataInfo)[0];
                 String projectId = Func.toStrArray(dataInfo)[1];
 
+
                 if (taskFile.getRemarkType().equals("2")) {
+                    // 查询任务下所有
                     String sqlinfo = " SELECT * from ( SELECT a.id as keyWord,a.project_id,a.pyzbx ,a.pyzby,(SELECT acc_code from blade_user where id='" + task.getUserId() + "' and is_deleted=0  ) as sealId from m_textdict_info a where  a.type =2 and a.id in (" + ids + ")  and sig_role_id in (SELECT DISTINCT c.role_id from m_project_assignment_user c  where c.contract_id=" + contractId + " and user_id=" + task.getUserId() + " and c.is_deleted=0 ) ) x where x.sealId is not null ";
                     System.out.println("东方中讯-个人-user-id" + task.getUserId() + "--SQL=" + sqlinfo);
                     List<Map<String, Object>> maps2 = jdbcTemplate.queryForList(sqlinfo);
-                    if (maps2 != null && !maps2.isEmpty()) {
-                        List<Map<String, Object>> maps = new ArrayList<>();
-                        Map<String, List<Map<String, Object>>> peopleByAge = maps2.stream()
+                    List<Map<String, Object>> maps = new ArrayList<>();
+                    Map<String, List<Map<String, Object>>> peopleByAge = maps2.stream()
                                 .collect(Collectors.groupingBy( hada ->(Func.toStr(hada.get("keyWord")))));
-
-                        for(String keyId :peopleByAge.keySet()){
-                            List<Map<String, Object>> keyList = peopleByAge.get(keyId);
-                            if(keyList!=null && keyList.size()==1){
-                                maps.addAll(keyList);
-                            }else if(keyList!=null && keyList.size()>=2){
-                                for(Map<String, Object> datax : keyList){
-                                    if((datax.get("project_id")+"").equals(projectId)){
-                                        maps.add(datax);
-                                    }
+                    if (maps2 != null && !maps2.isEmpty()) {
+                    for(String keyId :peopleByAge.keySet()){
+                        List<Map<String, Object>> keyList = peopleByAge.get(keyId);
+                        if(keyList!=null && keyList.size()==1){
+                            maps.addAll(keyList);
+                        }else if(keyList!=null && keyList.size()>=2){
+                            for(Map<String, Object> datax : keyList){
+                                if((datax.get("project_id")+"").equals(projectId)){
+                                    maps.add(datax);
                                 }
                             }
                         }
-
+                    }
                         String fileUrl = pdfUrl;
                         for (Map<String, Object> dataMap : maps) {
                             HashMap<String, Object> daMa = new HashMap<>();
@@ -879,7 +876,7 @@ public class EVisaServiceImpl implements EVisaService {
     private Object[] signPdfByAXQZ(SealPdfVO pdfVO, byte[] fileByte) {
         Object[] result = new Object[3];
         try {
-            PaperlessClient paperlessClient = new PaperlessClient(SIGN_HOST, SIGN_PORT, 300000, 1800000);
+            PaperlessClient paperlessClient = new PaperlessClient(SIGN_HOST, SIGN_PORT, 18000000, 72000000);
             paperlessClient.setSSL(false);
             //*****************************************************************************
             CompoundSealPdfListDetachedRequest compoundSealPdfListDetachedRequest = new CompoundSealPdfListDetachedRequest();

+ 14 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -1213,9 +1213,15 @@ public class ExecutorMeter extends FormulaExecutor {
                      /*材料预付款关联*/
                      clsbdfk.setCurrentPeriodPay(materialSum);
                      payItemZj.add(clsbdfk);
-                     payItemZj.add(new InterimPaymentCertificate("扣回材料预付款"));
+
+                     // 扣回材料预付款
+                     InterimPaymentCertificate paymentCer = new InterimPaymentCertificate("扣回材料预付款",MINUS_ONE);
+                     paymentCer.setNoApply(1);
+                     payItemZj.add(paymentCer);
+
                       blj=new InterimPaymentCertificate("保留金",MINUS_ONE);
                      payItemZj.add(blj);
+
                      InterimPaymentCertificate thblj=new InterimPaymentCertificate("返回保留金");
                      thblj.setNoApply(1);
                      payItemZj.add(thblj);
@@ -1314,6 +1320,12 @@ public class ExecutorMeter extends FormulaExecutor {
                              ic.setCurrentPeriodEndPay(addFc.apply(ic.getCurrentPeriodPay(),ic.getPreviousPeriodEndPay()));
                              certificate.setPreviousPeriodEndPay(ic.getPreviousPeriodEndPay());
                              certificate.setCurrentPeriodEndPay(ic.getCurrentPeriodEndPay());
+                         }else if("扣回材料预付款".equals(certificate.getChapterSeq())){
+                             certificate.setCurrentPeriodPay(ic.getCurrentPeriodPay());
+                             ic.setPreviousPeriodEndPay(icPre.getCurrentPeriodEndPay());
+                             ic.setCurrentPeriodEndPay(addFc.apply(ic.getCurrentPeriodPay(),ic.getPreviousPeriodEndPay()));
+                             certificate.setPreviousPeriodEndPay(ic.getPreviousPeriodEndPay());
+                             certificate.setCurrentPeriodEndPay(ic.getCurrentPeriodEndPay());
                          }
                          BeanUtils.copyProperties(certificate,ic);
                          /*同时兼容几个表后,支付章名称和章节号有点混乱,需要注意纠正*/
@@ -1876,7 +1888,7 @@ public class ExecutorMeter extends FormulaExecutor {
                 cs.setChapterNumber(k);
                 cs.setContractMoney(sum[0].toPlainString());
                 cs.setChangeMoney(sum[1].toPlainString());
-                cs.setCurrentPeriodPay(StringUtils.handleNull(currentMoney.get(k)));
+                cs.setCurrentPeriodPay(StringUtils.handleNumNull(currentMoney.get(k)));
                 cs.setCurrentPeriodEndPay(StringUtils.handleNull(endMoney.get(k)));
                 cs.setItemPercent(ratioFc.apply(cs.getChangeMoney(), baseInfo.getContractAmount().toString()));
                 cs.setItemProgress(ratioFc.apply(cs.getCurrentPeriodEndPay(), cs.getChangeMoney()));

+ 1 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java

@@ -4073,7 +4073,7 @@ public class TaskController extends BladeController {
     @Transactional
     public void addSignTaskBatch(Report report) {
         try {
-            String selSql = "select * from  u_task_parallel a set a.e_visa_status=null,e_visa_content=null where a.process_instance_id = (select b.process_instance_id from u_task b where  b.`status` in(1,2) and b.form_data_id=" + report.getPeriodId() +  ") and a.status=1 and a.e_visa_status is NULL and a.e_visa_content is null ";
+            String selSql = "select * from  u_task_parallel a where a.process_instance_id = (select b.process_instance_id from u_task b where  b.`status` in(1,2) and b.form_data_id=" + report.getPeriodId() +  ") and a.status=1 and a.e_visa_status is NULL and a.e_visa_content is null ";
             List<Map<String, Object>> mapList = jdbcTemplate.queryForList(selSql);
             if(Func.isEmpty(mapList) || mapList.size()==0) {
                 // 修改个人电签状态