diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/BusProcessModelHisController.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/BusProcessModelHisController.java index 499f5b59..523b387c 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/BusProcessModelHisController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/controller/BusProcessModelHisController.java @@ -5,12 +5,24 @@ import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessEvaluationHis; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessModelHis; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessEvaluationHisService; import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessModelHisService; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URL; +import java.net.URLConnection; import java.util.List; +import java.util.Scanner; /** *
@@ -24,9 +36,91 @@ import java.util.List; @RequestMapping("/busProcessModel") public class BusProcessModelHisController { + private static final Logger logger = LoggerFactory.getLogger(BusProcessModelHisController.class); + + @Value("${buss.edit.file.path}") + private String standEditFilePath;//文件存储路径 + @Autowired private IBusProcessModelHisService busProcessModelHisService; + @ApiOperation(value = "|onlyOffice接收文件") + @PostMapping("/recieveFile") + public void recieveFile(HttpServletRequest request, HttpServletResponse response, String fileNm, String standNo, String pid, String taskId){ + logger.info("**********进入onlyoffice接收文档接口************"); + try { + PrintWriter writer = response.getWriter(); + String body = ""; + try { + Scanner scanner = new Scanner(request.getInputStream()); + scanner.useDelimiter("\\A"); + body = scanner.hasNext() ? scanner.next() : ""; + scanner.close(); + } catch (Exception ex) { + writer.write("get request.getInputStream error:" + ex.getMessage()); + return; + } + + if (body.isEmpty()) { + writer.write("empty request.getInputStream"); + return; + } + + net.sf.json.JSONObject jsonObj = net.sf.json.JSONObject.fromObject(body); + logger.info("**********onlyoffice接收文档接口获得结果body************" + body); + int status = (Integer) jsonObj.get("status"); + + int saved = 0; + if (status == 2 || status == 3)//MustSave, Corrupted + { + String downloadUri = (String) jsonObj.get("url"); + + try { + logger.info("**********onlyoffice接收文档接口获得downloadUri************" + downloadUri); + if (StringUtils.isNotEmpty(downloadUri)) { + File file = new File(standEditFilePath + standNo + "\\" + fileNm); + downloadNetFile(downloadUri, file); + // 更新在线编辑当前节点编辑状态 + busProcessModelHisService.modelHisOneUpdStatus(pid,taskId); + } + } catch (Exception ex) { + saved = 1; + logger.info("**********onlyoffice接收文档接口异常************" + ex.getMessage()); + logger.error(ex.getMessage(),ex); + } + } else if (status == 4) { + logger.info("**********onlyoffice接收文档接口开始修改文件状态状态4************"); + + logger.info("**********onlyoffice接收文档接口修改文件状态成功状态4************"); + } + logger.info("onlyoffice编辑完成--------------"); + writer.write("{\"error\":" + saved + "}"); + + } catch (IOException e) { + logger.info("**********onlyoffice接收文档接口异常************" + e.getMessage()); + logger.error(e.getMessage(),e); + return; + } + } + + public void downloadNetFile(String downloadUrl, File file) { + try { + FileOutputStream fileOutputStream = new FileOutputStream(file); + URL url = new URL(downloadUrl); + URLConnection connection = url.openConnection(); + InputStream inputStream = connection.getInputStream(); + int length = 0; + byte[] bytes = new byte[1024]; + while ((length = inputStream.read(bytes)) != -1) { + fileOutputStream.write(bytes, 0, length); + } + fileOutputStream.close(); + inputStream.close(); + } catch (IOException e) { + logger.error("download error ! url :{}, exception:{}", downloadUrl, e); + } + } + @GetMapping("/processModelHisOneUpdStatus") public BusProcessModelHis modelHisOneUpdStatus(String pid,String taskId) { BusProcessModelHis modelHisOne = busProcessModelHisService.modelHisOneUpdStatus(pid,taskId); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/Utils/PoiWord.java b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/Utils/PoiWord.java index a4d2b681..b175a985 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/Utils/PoiWord.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/bussLibrary/Utils/PoiWord.java @@ -492,6 +492,7 @@ public class PoiWord { XWPFParagraph breakParagraph2 = doc.createParagraph(); breakParagraph2.setAlignment(ParagraphAlignment.CENTER); + breakParagraph2.setPageBreak(true); XWPFRun breakParagraphRun2 = breakParagraph2.createRun(); breakParagraphRun1.setText(object.getString("standEnName") == null ? "" : object.getString("standEnName")); @@ -513,7 +514,6 @@ public class PoiWord { contentParagraphRun1.setFontSize(16); contentParagraphRun1.setFontFamily("黑体"); contentParagraphRun1.addCarriageReturn(); - contentParagraph1.setPageBreak(true); doc.write(out); out.close(); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/enterpriseStandardSystemRevisionPlan/ProcessStep4After.java b/src/main/java/com/ydw/bat/wkflow/listener/enterpriseStandardSystemRevisionPlan/ProcessStep4After.java index 62859964..fbd6d832 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/enterpriseStandardSystemRevisionPlan/ProcessStep4After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/enterpriseStandardSystemRevisionPlan/ProcessStep4After.java @@ -52,7 +52,7 @@ public class ProcessStep4After implements TaskListener { lawsUserInfoService.delPlan(object.getString("esId1")+","+object.getString("esId2")); EsRevisePlanDTO esRevisePlanDTO=new EsRevisePlanDTO(); esRevisePlanDTO.setEsName(object.getString("esName")); - esRevisePlanDTO.setUnit(object.getString("unit")); + esRevisePlanDTO.setUnit(object.getString("unitId")); esRevisePlanDTO.setDrafter(object.getString("drafter")); esRevisePlanDTO.setResPerson(object.getString("resPerson")); esRevisePlanDTO.setPlanStatus(object.getString("planStatus")); @@ -78,7 +78,7 @@ public class ProcessStep4After implements TaskListener { //立项 EsRevisePlanDTO esRevisePlanDTO=new EsRevisePlanDTO(); esRevisePlanDTO.setEsName(object.getString("esName")); - esRevisePlanDTO.setUnit(object.getString("unit")); + esRevisePlanDTO.setUnit(object.getString("unitId")); esRevisePlanDTO.setDrafter(object.getString("drafter")); esRevisePlanDTO.setResPerson(object.getString("resPerson")); esRevisePlanDTO.setPlanStatus(object.getString("planStatus"));