zhuwei преди 1 година
родител
ревизия
e717fabd38

+ 4 - 21
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/InterimPayCertificate.java

@@ -129,9 +129,10 @@ public class InterimPayCertificate extends BaseEntity {
     @ApiModelProperty(value = "每份表格独立的PDF地址")
     private String fileUrlList;
 
-/*    @TableField(exist = false)
-    private List<Map<String,String>> urlListData = new ArrayList<>();
-    public List<Map<String,String>> getUrlListData() {
+    @TableField(exist = false)
+    private Set<Map<String,String>> urlListData;
+    public Set<Map<String,String>> getUrlListData() {
+        urlListData = new HashSet<>();
         if(fileUrlList!=null && StringUtils.isNotEmpty(fileUrlList)){
             JSONObject data = JSONObject.parseObject(this.fileUrlList);
             for(String key:data.keySet()){
@@ -144,22 +145,4 @@ public class InterimPayCertificate extends BaseEntity {
         return urlListData;
     }
 
-    public void setUrlListData(List<Map<String,String>> urlListData) {
-        this.urlListData = urlListData;
-    }*/
-
-    public List<Map<String,String>> getUrlListData() {
-        if(StringUtils.isNotEmpty(fileUrlList)){
-           LinkedHashMap<String,String> titleUrlMap= JSON.parseObject(fileUrlList, LinkedHashMap.class);
-           if(Func.isNotEmpty(titleUrlMap)){
-               return titleUrlMap.entrySet().stream().map(kv->{
-                   Map<String,String> map=new HashMap<>();
-                   map.put("title",kv.getKey());
-                   map.put("url",kv.getValue());
-                   return map;
-               }).collect(Collectors.toList());
-           }
-        }
-        return null;
-    }
 }

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

@@ -1302,11 +1302,12 @@ public class EVisaServiceImpl implements EVisaService {
             } else if (responseHeadBean.getMessage().contains("is exist")) {
                 logger.info("【电签模块】{}", responseHeadBean.getMessage());
                 return "error";
+            }else{
+                return  responseBean.getHead().getMessage();
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
-
         return null;
     }
 

+ 1 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -324,9 +324,6 @@ public class ExcelTabController extends BladeController {
         String thmlUrl = file_path + filecode + ".html";
         String exceUrl = file_path + filecode + "123.xlsx";
 
-        Workbook wb = new Workbook();
-        wb.loadFromMHtml(file.getInputStream());
-
         ExcelInfoUtils.excelInfo(file.getInputStream(), exceUrl, thmlUrl, "1");
         // 上传excel文件
         BladeFile bladeFile = newIOSSClient.uploadFile(file.getOriginalFilename(), exceUrl);
@@ -1816,6 +1813,7 @@ public class ExcelTabController extends BladeController {
                         tabpdf2.delete();
                     }
                     FileUtils.mergePdfPublicMethods(datainfo, listPdf);
+
                     String netUrl = FileUtils.getNetUrl(listPdf);
                     return R.data(netUrl);
                 } else {

+ 45 - 2
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/ContractMeterPeriodController.java

@@ -16,6 +16,8 @@
  */
 package org.springblade.meter.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -23,12 +25,15 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 import javax.validation.Valid;
 
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.meter.dto.ContractMeterPeriodDTO;
+import org.springblade.meter.entity.InterimPayCertificate;
 import org.springblade.meter.entity.MeterPeriod;
+import org.springblade.meter.service.IInterimPayCertificateService;
 import org.springblade.meter.vo.ContractMeterPeriodVO;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -37,6 +42,7 @@ import org.springblade.meter.entity.ContractMeterPeriod;
 import org.springblade.meter.service.IContractMeterPeriodService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.time.LocalDate;
 import java.util.List;
 
 /**
@@ -52,7 +58,7 @@ import java.util.List;
 public class ContractMeterPeriodController extends BladeController {
 
 	private final IContractMeterPeriodService contractMeterPeriodService;
-
+	private final IInterimPayCertificateService interimPayCertificateService;
 
 	/**
 	 * 分页
@@ -72,7 +78,44 @@ public class ContractMeterPeriodController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "编辑合同计量期", notes = "传入合同段id与计量期集合")
 	public R edit(@Valid @RequestBody ContractMeterPeriodDTO dto) {
-		contractMeterPeriodService.edit(dto);
+
+		List<ContractMeterPeriod> list = dto.getList();
+		//如果为空,直接删除
+		if (list.size() == 0){
+			contractMeterPeriodService.remove(new LambdaQueryWrapper<ContractMeterPeriod>()
+					.eq(ContractMeterPeriod::getContractId,dto.getContractId()));
+		}else {
+			//存在数据,先删再存,循环排序
+			contractMeterPeriodService.removeByContrId(dto.getContractId());
+			LocalDate lastDate = null;
+			for (int i = 0; i < list.size(); i++) {
+				ContractMeterPeriod period = list.get(i);
+				//校验开始结束日期
+				if (period.getPeriodYear() == null || period.getPeriodMonth() == null || period.getStartDate() == null || period.getEndDate() == null) {
+					throw new ServiceException("请检查年份、月份、开始日期、结束日期,是否填写");
+				}
+				//判断本次开始日期是否是上次结束日期后一天
+				if (lastDate != null) {
+					if (lastDate.plusDays(1).compareTo(period.getStartDate()) != 0) {
+						throw new ServiceException("上一期结束日期和下一期的开始日期必须连续");
+					}
+				}
+				//判断判断开始日期是否大于结束日期
+				if (period.getEndDate().compareTo(period.getStartDate()) == -1){
+					throw new ServiceException("结束日期必须大于开始日期");
+				}
+				lastDate = period.getEndDate();
+				period.setSort(i);
+
+				InterimPayCertificate interimPayCertificate = this.interimPayCertificateService.getOne(Wrappers.<InterimPayCertificate>lambdaQuery().eq(InterimPayCertificate::getContractPeriodId, period.getId()));
+				if (interimPayCertificate != null) {
+					interimPayCertificate.setPeriodNumber(period.getPeriodNumber());
+					interimPayCertificate.setPrintDate(period.getFormPrintDate());
+					interimPayCertificateService.saveOrUpdate(interimPayCertificate);
+				}
+			}
+			this.contractMeterPeriodService.saveBatch(list);
+		}
 		return R.success("保存成功");
 	}
 

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

@@ -49,6 +49,7 @@ import org.springblade.manager.vo.ReportResult;
 import org.springblade.meter.dto.*;
 import org.springblade.meter.entity.*;
 import org.springblade.meter.mapper.MiddleMeterApplyMapper;
+import org.springblade.meter.service.IInterimPayCertificateService;
 import org.springblade.meter.service.IMaterialStartStatementService;
 import org.springblade.meter.service.impl.*;
 import org.springblade.meter.utils.CollectionUtils;
@@ -110,7 +111,7 @@ public class TaskController extends BladeController {
     private final ChangeTokenInventoryServiceTaskImpl changeTokenInventoryServiceTask;
 
     private final IMaterialStartStatementService materialStartStatementService;
-
+    private final IInterimPayCertificateService interimPayCertificateService;
     // 计量公式入口
     private final FormulaClient formulaClient;
 
@@ -668,8 +669,7 @@ public class TaskController extends BladeController {
                         taskParallel.setStatus(1);
                         taskParallel.setIsDeleted(0);
 
-                        sortList.add(maxSort);
-                        taskParallel.setSort(maxSort);
+                        taskParallel.setSort(sort); //sort固定
 
                         taskClient.saveTaskParallel(taskParallel);
 
@@ -754,15 +754,6 @@ public class TaskController extends BladeController {
                 List<TaskParallel> taskParallels = jdbcTemplate.query("SELECT * FROM u_task_parallel WHERE process_instance_id = '" + processInstanceId + "' ORDER BY sort", new BeanPropertyRowMapper<>(TaskParallel.class));
                 List<String> taskParallelsUserIds = taskParallels.stream().map(TaskParallel::getTaskUser).collect(Collectors.toList());
                 List<String> name = new ArrayList<>();
-
-                /*平行签废除,首先排除相同sort,只判断自己的顺序*/
-                TaskParallel current = taskParallels.stream().filter(f -> f.getTaskUser().equals(SecureUtil.getUserId().toString())).findAny().orElse(null);
-                if (current == null) {
-                    throw new ServiceException("获取当前用户任务信息失败");
-                }
-                Integer currentSort = current.getSort();
-                taskParallels.removeIf(f -> f.getSort().equals(currentSort) && !f.getTaskUser().equals(SecureUtil.getUserId().toString()));
-
                 for (TaskParallel parallel : taskParallels) {
                     if (parallel.getTaskUser().equals(SecureUtil.getUserId().toString())) {
                         break;
@@ -2156,25 +2147,46 @@ public class TaskController extends BladeController {
             if (isCurrentUserLastApprove) {
                 //TODO 重新生成报表,执行电签(电签失败直接return或抛出异常,不修改下方状态)
                 Long reportId = 0L;
-                MaterialStartStatement materialS = materialStartStatementService.getBaseMapper().selectOne(Wrappers.<MaterialStartStatement>lambdaQuery().eq(MaterialStartStatement::getContractId, task.getContractId()).eq(MaterialStartStatement::getMeterPeriodId, task.getFormDataId()).eq(MaterialStartStatement::getType, 1));
-                if (materialS == null || Func.isNull(materialS)) {
-                    MeterPeriod me = periodService.getById(task.getFormDataId());
-                    MaterialStartStatement data = new MaterialStartStatement();
-                    data.setMeterPeriodId(Func.toLong(task.getFormDataId()));
-                    data.setContractId(Func.toLong(task.getContractId()));
-                    data.setMeterPeriodId(Func.toLong(task.getFormDataId()));
-                    data.setPrintDate(me.getFormPrintDate());
-                    data.setRepaymentCause("材料预付款");
-                    data.setStatementName("材料预付款--" + me.getPeriodName());
-
-                    //计量任务类型 1=中间计量申请,2=材料计量单,3=开工预付款计量单,4=变更令
-                    if (task.getMeterTaskType() == 2) {
-                        data.setType(1);
+                if(task.getMeterTaskType()==3 || task.getMeterTaskType()==2){ //2材料,3开工
+                    MaterialStartStatement materialS = materialStartStatementService.getBaseMapper().selectOne(Wrappers.<MaterialStartStatement>lambdaQuery().eq(MaterialStartStatement::getContractId, task.getContractId()).eq(MaterialStartStatement::getMeterPeriodId, task.getFormDataId()).eq(MaterialStartStatement::getType, task.getMeterTaskType()-1));
+                    if (materialS == null || Func.isNull(materialS)) {
+                        MeterPeriod me = periodService.getById(task.getFormDataId());
+                        MaterialStartStatement data = new MaterialStartStatement();
+                        data.setMeterPeriodId(Func.toLong(task.getFormDataId()));
+                        data.setContractId(Func.toLong(task.getContractId()));
+                        data.setMeterPeriodId(Func.toLong(task.getFormDataId()));
+                        data.setPrintDate(me.getFormPrintDate());
+                        if(task.getMeterTaskType()==2){
+                            data.setRepaymentCause("材料预付款");
+                            data.setStatementName("材料预付款--" + me.getPeriodName());
+                            data.setType(1);
+                        }
+                        //计量任务类型 1=中间计量申请,2=材料计量单,3=开工预付款计量单,4=变更令
+                        if(task.getMeterTaskType()==3){
+                            data.setRepaymentCause("开工预付款");
+                            data.setStatementName("开工预付款--" + me.getPeriodName());
+                            data.setType(2);
+                        }
+                        materialStartStatementService.saveOrUpdate(data);
+                        reportId = data.getId();
+                    } else {
+                        reportId = materialS.getId();
                     }
-                    materialStartStatementService.addOrUpdate(data);
-                    reportId = data.getId();
-                } else {
-                    reportId = materialS.getId();
+                } else if ( task.getMeterTaskType()==1) { // 1中间
+                    InterimPayCertificate inData = interimPayCertificateService.getBaseMapper().selectOne(Wrappers.<InterimPayCertificate>lambdaQuery().eq(InterimPayCertificate::getContractId,task.getContractId()).eq(InterimPayCertificate::getContractPeriodId ,task.getFormDataId()));
+                    if (inData == null || Func.isNull(inData)) {
+                        InterimPayCertificate inData2 = new InterimPayCertificate();
+                        ContractMeterPeriod me = contractMeterPeriodService.getById(task.getFormDataId());
+                        inData2.setProjectId(me.getProjectId());
+                        inData2.setContractId(me.getContractId());
+                        inData2.setContractPeriodId(Func.toLong(task.getFormDataId()));
+                        inData2.setCertificateNumber(task.getFormDataId());
+                        inData2.setPeriodNumber(me.getPeriodNumber());
+                        inData2.setPrintDate(me.getFormPrintDate());
+                        interimPayCertificateService.save(inData2);
+                        reportId = inData2.getId();
+                    }
+                    reportId = inData.getId();
                 }
                 /**计量公式执行 0中间,1材料,2开工*/
                 meterPdfInfo(reportId + "", 1);
@@ -2567,129 +2579,7 @@ public class TaskController extends BladeController {
         return R.fail("操作失败");
     }
 
-    @GetMapping("/meterPdfInfoOld")
-    @ApiOperationSupport(order = 22)
-    @ApiOperation(value = "计量生成Pdf", notes = "计量生成Pdf")
-    public R meterPdfInfo(@RequestParam String ContractId, @RequestParam String FormDataId, @RequestParam Integer type) {
-        String file_path = CollectionUtils.getSysLocalFileUrl();
-        String fileUrl = "";
-        Long sid = 0l;
-        MaterialStartStatement materialS = materialStartStatementService.getBaseMapper().selectOne(Wrappers.<MaterialStartStatement>lambdaQuery().eq(MaterialStartStatement::getContractId, ContractId).eq(MaterialStartStatement::getMeterPeriodId, FormDataId).eq(MaterialStartStatement::getType, 1));
-        if (materialS == null || Func.isNull(materialS)) {
-            MeterPeriod me = periodService.getById(FormDataId);
-            MaterialStartStatement data = new MaterialStartStatement();
-            data.setMeterPeriodId(Func.toLong(FormDataId));
-            data.setPrintDate(me.getFormPrintDate());
-
-            data.setRepaymentCause("材料预付款");
-            data.setStatementName("材料预付款--" + me.getPeriodName());
-            materialStartStatementService.addOrUpdate(data);
-            sid = data.getId();
-        } else {
-            sid = materialS.getId();
-        }
-        List<ReportResult> sul = new ArrayList<>();
-        // 材料生成pdf
-
-        sul = formulaClient.formulaExecute3(Long.parseLong(ContractId), sid, type);
-        // 获取填报数据
-        List<String> dataListPdf = new ArrayList<>();
-
-        if (sul != null && sul.size() >= 1) {
-            for (ReportResult data : sul) {
-                Long excelId = data.getExcelId();
-                String exSql = "SELECT * from m_excel_tab where id=" + excelId + "";
-                Map<String, Object> exMap = jdbcTemplate.queryForMap(exSql);
-                if (exMap == null) {
-                    return R.fail("未获取到该表单的信息");
-                }
-                if (exMap.get("file_url") == null) {
-                    return R.fail("htmlUrl is null");
-                }
-                String pkeyId = sid + "" + excelId;
-                String pdfPath = file_path + "/pdf//" + pkeyId + ".pdf";
-                String excelPath = file_path + "/pdf//" + pkeyId + ".xlsx";
-
-                String excelUrl = exMap.get("file_url") + "";
-
-                File tabPdf = null;
-                try {
-                    tabPdf = ResourceUtil.getFile(pdfPath);
-                } catch (FileNotFoundException e) {
-                    throw new RuntimeException(e);
-                }
-                if (tabPdf.exists()) {
-                    tabPdf.delete();
-                }
-
-
-                //获取excel流 和 html流
-                try {
-                    InputStream exceInp = CommonUtil.getOSSInputStream(excelUrl);
-                    Workbook workbook = null;
-                    int index = excelUrl.lastIndexOf(".");
-                    String suffix = excelUrl.substring(index).toLowerCase();
-
-                    if (".xls".equals(suffix)) {
-                        workbook = new XSSFWorkbook(exceInp);
-                    } else if (".xlsx".equals(suffix)) {
-                        workbook = new XSSFWorkbook(exceInp);
-                    }
-                    //获取工作表
-                    Sheet sheet = workbook.getSheetAt(0);
-                    sheet.setForceFormulaRecalculation(true);
-
-                    // 写入数据
-                    List<Map<String, Object>> dataData = data.getData();
-                    if (dataData != null && dataData.size() >= 1) {
-                        for (Map<String, Object> dama : dataData) {
-
-                            // 循环Key
-                            for (String keys : dama.keySet()) {
-                                int y1 = Func.toInt(keys.split("_")[0]);
-                                int x1 = Func.toInt(keys.split("_")[1]);
-                                Row row = sheet.getRow(y1 - 1);
-                                if (row != null) {
-                                    Cell cell = row.getCell(x1 - 1);
-                                    String dataval = dama.get(keys) + "";
-                                    if (dataval.indexOf("第") >= 0 && dataval.indexOf("次支付") >= 0) {
-                                        String datare = dataval.replace("第", "").replace("次交付", "");
-                                        dataval = datare.replace("次支付", "");
-                                    }
-                                    cell.setCellValue(dataval);
-                                }
-                            }
-                        }
-                    }
 
-                    //输出流
-                    FileOutputStream outputStream = new FileOutputStream(excelPath);
-                    workbook.write(outputStream);
-                    CollectionUtils.excelToPdf(excelPath, pdfPath);
-                    dataListPdf.add(pdfPath);
-                    //关闭流
-                    IoUtil.closeQuietly(outputStream);
-                    IoUtil.closeQuietly(exceInp);
-                } catch (Exception e) {
-                    throw new RuntimeException(e);
-                }
-            }
-        }
-
-        Long dataId = SnowFlakeUtil.getId();
-        String lasPdf = file_path + "/pdf//" + dataId + "_last.pdf";
-
-        if (dataListPdf.size() > 0) {
-            CollectionUtils.mergePdfPublicMethods(dataListPdf, lasPdf);
-            BladeFile bladeFile2 = newIOSSClient.uploadFile(dataId + "_last.pdf", lasPdf);
-            fileUrl = bladeFile2.getLink();
-        }
-
-        String upSql = "update s_material_start_statement set raw_url='" + fileUrl + "' where contract_id=" + ContractId + " and type=1 and meter_period_id=" + FormDataId + "";
-        jdbcTemplate.execute(upSql);
-
-        return R.success(fileUrl);
-    }
 
     @GetMapping("/meterPdfInfo")
     @ApiOperationSupport(order = 22)
@@ -2886,10 +2776,10 @@ public class TaskController extends BladeController {
                     e.printStackTrace();
                     return "无效地址";
                 }
-            }, (v1, v2) -> v1, LinkedHashMap::new));
-            String upSql = "update " + REPORT_TYPE[this.type] + " set raw_url=?,file_url_list=? where id=" + this.id;
-            jdbcTemplate.update(upSql, this.pdfUrl, JSON.toJSONString(fileListMap));
-            return this.pdfUrl;
+            },(v1,v2)->v1,LinkedHashMap::new));
+            String upSql = "update "+REPORT_TYPE[this.type]+" set raw_url=?,file_url_list=? ,calculate_date=SYSDATE() where id="+this.id;
+            jdbcTemplate.update(upSql,this.pdfUrl , JSON.toJSONString(fileListMap));
+            return  this.pdfUrl;
         }
 
         public Report(Long id, Integer type) {

+ 2 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IContractMeterPeriodService.java

@@ -33,9 +33,10 @@ import java.util.List;
  */
 public interface IContractMeterPeriodService extends BaseService<ContractMeterPeriod> {
 
-
     void edit(ContractMeterPeriodDTO dto);
 
+    void removeByContrId(Long contractId);
+
     IPage<ContractMeterPeriodVO> periodPage(Long contractId, Query query);
 
     List<ContractMeterPeriodVO> allPeriod(Long contractId);

+ 8 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ContractMeterPeriodServiceImpl.java

@@ -18,15 +18,18 @@ package org.springblade.meter.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Query;
 import org.springblade.meter.dto.ContractMeterPeriodDTO;
 import org.springblade.meter.entity.ContractMeterPeriod;
+import org.springblade.meter.entity.InterimPayCertificate;
 import org.springblade.meter.entity.MeterPeriod;
 import org.springblade.meter.mapper.ContractMeterPeriodMapper;
 import org.springblade.meter.service.IContractMeterPeriodService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.meter.service.IInterimPayCertificateService;
 import org.springblade.meter.vo.ContractMeterPeriodVO;
 import org.springblade.meter.vo.MeterPeriodVO;
 import org.springframework.stereotype.Service;
@@ -44,7 +47,6 @@ import java.util.List;
 @Service
 public class ContractMeterPeriodServiceImpl extends BaseServiceImpl<ContractMeterPeriodMapper, ContractMeterPeriod> implements IContractMeterPeriodService {
 
-
     /**
      * 编辑计量期
      */
@@ -83,6 +85,11 @@ public class ContractMeterPeriodServiceImpl extends BaseServiceImpl<ContractMete
         }
     }
 
+    @Override
+    public void removeByContrId(Long contractId) {
+        baseMapper.remove(contractId);
+    }
+
     /**
      * 分页
      */

+ 18 - 2
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterPeriodServiceImpl.java

@@ -16,19 +16,27 @@
  */
 package org.springblade.meter.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
+import org.springblade.business.entity.Task;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.meter.dto.MeterPeriodDTO;
+import org.springblade.meter.entity.InterimPayCertificate;
 import org.springblade.meter.entity.MaterialMeterForm;
 import org.springblade.meter.entity.MaterialStartStatement;
 import org.springblade.meter.entity.MeterPeriod;
 import org.springblade.meter.mapper.MeterPeriodMapper;
+import org.springblade.meter.service.IInterimPayCertificateService;
 import org.springblade.meter.service.IMaterialMeterFormService;
 import org.springblade.meter.service.IMaterialStartStatementService;
 import org.springblade.meter.service.IMeterPeriodService;
@@ -38,6 +46,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -51,6 +60,7 @@ import java.util.stream.Collectors;
 @AllArgsConstructor
 public class MeterPeriodServiceImpl extends BaseServiceImpl<MeterPeriodMapper, MeterPeriod> implements IMeterPeriodService {
 
+    private final IMaterialStartStatementService materialStartStatementService;
 
     /**
      * 编辑计量期 材料开工计量期表
@@ -91,11 +101,17 @@ public class MeterPeriodServiceImpl extends BaseServiceImpl<MeterPeriodMapper, M
                 year = period.getPeriodYear();
                 month = period.getPeriodMonth();
                 period.setSort(i);
+
+                //由于在期数里的 期号,打印时间 发生改变 需要同步到 手册表中
+                MaterialStartStatement materialStartStatement = this.materialStartStatementService.getOne(Wrappers.<MaterialStartStatement>lambdaQuery().eq(MaterialStartStatement::getMeterPeriodId, period.getId()));
+                if (materialStartStatement != null) {
+                        materialStartStatement.setPeriodNumber(period.getPeriodNumber());
+                        materialStartStatement.setPrintDate(period.getFormPrintDate());
+                        materialStartStatementService.saveOrUpdate(materialStartStatement);
+                }
             }
             this.saveOrUpdateBatch(list);
         }
-
-
     }
 
     /**