From 203b0054e4c6974608776950473ddd8bd9c075aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=98=89=E4=BC=9F?= <1724121454@qq.com>
Date: Mon, 12 Jul 2021 09:22:07 +0800
Subject: [PATCH] =?UTF-8?q?=E9=99=84=E4=BB=B6=E4=B8=8A=E4=BC=A0=EF=BC=8C?=
=?UTF-8?q?=E5=BC=82=E5=B8=B8bug=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
anomaly/pom.xml | 5 +
.../controller/AbnormalBillController.java | 22 +
.../controller/UploadPicturesController.java | 124 ++++++
.../anomaly/mapper/UploadPicturesMapper.java | 18 +
.../mesnac/anomaly/model/AbnormalBill.java | 34 +-
.../mesnac/anomaly/model/UploadPictures.java | 216 +++++++++
.../anomaly/service/AbnormalBillService.java | 16 +-
.../anomaly/service/FileUploadedService.java | 22 +
.../service/UploadPicturesService.java | 28 ++
.../service/impl/AbnormalBillServiceImpl.java | 86 +++-
.../service/impl/FileUploadedServiceImpl.java | 167 +++++++
.../impl/UploadPicturesServiceImpl.java | 46 ++
.../resources/mapper/UploadPicturesMapper.xml | 418 ++++++++++++++++++
.../src/main/resources/application-local.yml | 15 +-
pom.xml | 6 +
15 files changed, 1204 insertions(+), 19 deletions(-)
create mode 100644 anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/UploadPicturesController.java
create mode 100644 anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/UploadPicturesMapper.java
create mode 100644 anomaly/src/main/java/com/foreverwin/mesnac/anomaly/model/UploadPictures.java
create mode 100644 anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/FileUploadedService.java
create mode 100644 anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/UploadPicturesService.java
create mode 100644 anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/FileUploadedServiceImpl.java
create mode 100644 anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/UploadPicturesServiceImpl.java
create mode 100644 anomaly/src/main/resources/mapper/UploadPicturesMapper.xml
diff --git a/anomaly/pom.xml b/anomaly/pom.xml
index 061f313a..1796024e 100644
--- a/anomaly/pom.xml
+++ b/anomaly/pom.xml
@@ -71,5 +71,10 @@
org.springframework
spring-web
+
+ commons-net
+ commons-net
+ 3.1
+
\ No newline at end of file
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java
index 4311eb88..093937dd 100644
--- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/AbnormalBillController.java
@@ -6,6 +6,7 @@ import com.foreverwin.mesnac.anomaly.dto.AbnormalBillDto;
import com.foreverwin.mesnac.anomaly.model.AbnormalBill;
import com.foreverwin.mesnac.anomaly.model.AbnormalBillDispose;
import com.foreverwin.mesnac.anomaly.service.AbnormalBillService;
+import com.foreverwin.mesnac.anomaly.service.FileUploadedService;
import com.foreverwin.mesnac.common.dto.SfcDispatchDto;
import com.foreverwin.mesnac.common.service.SfcDispatchCommonService;
import com.foreverwin.modular.core.util.FrontPage;
@@ -13,6 +14,8 @@ import com.foreverwin.modular.core.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -30,6 +33,10 @@ public class AbnormalBillController {
@Autowired
private SfcDispatchCommonService sfcDispatchCommonService;
+ @Autowired
+ private FileUploadedService fileUploadedService;
+
+
/**
* 根据id查询
@@ -291,4 +298,19 @@ public class AbnormalBillController {
public R findResrceBySfc(SfcDispatchDto sfcDispatch){
return R.ok(sfcDispatchCommonService.findResrceBySfc(sfcDispatch));
}
+
+ @GetMapping("/show")
+ public R showFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
+ return R.ok(fileUploadedService.showFile(request,response));
+ }
+
+ @PostMapping("/delete")
+ public R delete(String ftpPath,String fileName){
+ return R.ok(fileUploadedService.deleteFile(ftpPath,fileName));
+ }
+
+ @GetMapping("/findUploadPictureByAbnormalBo")
+ public R findUploadPictureByAbnormalBo(AbnormalBill abnormalBill){
+ return R.ok(abnormalBillService.findUploadPictureByAbnormalBo(abnormalBill));
+ }
}
\ No newline at end of file
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/UploadPicturesController.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/UploadPicturesController.java
new file mode 100644
index 00000000..4eddbb96
--- /dev/null
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/UploadPicturesController.java
@@ -0,0 +1,124 @@
+package com.foreverwin.mesnac.anomaly.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.foreverwin.mesnac.anomaly.model.UploadPictures;
+import com.foreverwin.mesnac.anomaly.service.UploadPicturesService;
+import com.foreverwin.modular.core.util.FrontPage;
+import com.foreverwin.modular.core.util.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ *
+ * @author Leon.L
+ * @since 2021-07-11
+ */
+@RestController
+@RequestMapping("/Z-UPLOAD-PICTURES")
+public class UploadPicturesController {
+
+ @Autowired
+ public UploadPicturesService uploadPicturesService;
+
+ /**
+ * 根据id查询
+ *
+ * @param id 主键
+ * @return
+ */
+ @ResponseBody
+ @GetMapping("/{id:.+}")
+ public R getUploadPicturesById(@PathVariable String id) {
+ return R.ok( uploadPicturesService.getById(id));
+ }
+
+ /**
+ * 查询所有数据
+ *
+ * @return
+ */
+ @ResponseBody
+ @GetMapping("")
+ public R getUploadPicturesList(UploadPictures uploadPictures){
+ List result;
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.setEntity(uploadPictures);
+ result = uploadPicturesService.list(queryWrapper);
+ return R.ok(result);
+ }
+
+ /**
+ * 分页查询数据
+ *
+ * @param frontPage 分页信息
+ * @return
+ */
+ @ResponseBody
+ @GetMapping("/page")
+ public R page(FrontPage frontPage, UploadPictures uploadPictures){
+ IPage result;
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.setEntity(uploadPictures);
+ if (frontPage.getGlobalQuery() != null && !"".equals(frontPage.getGlobalQuery().trim())) {
+ //TODO modify global query
+ queryWrapper.lambda().and(wrapper -> wrapper
+ .like(UploadPictures::getHandle, frontPage.getGlobalQuery())
+ .or().like(UploadPictures::getSite, frontPage.getGlobalQuery())
+ .or().like(UploadPictures::getPicturePath, frontPage.getGlobalQuery())
+ .or().like(UploadPictures::getPictureAddress, frontPage.getGlobalQuery())
+ .or().like(UploadPictures::getObjectBo, frontPage.getGlobalQuery())
+ .or().like(UploadPictures::getNum, frontPage.getGlobalQuery())
+ .or().like(UploadPictures::getType, frontPage.getGlobalQuery())
+ .or().like(UploadPictures::getCreatedUser, frontPage.getGlobalQuery())
+ .or().like(UploadPictures::getModifiedUser, frontPage.getGlobalQuery())
+ );
+ }
+ result = uploadPicturesService.page(frontPage.getPagePlus(), queryWrapper);
+ return R.ok(result);
+ }
+
+ /**
+ * 新增
+ * @param uploadPictures 传递的实体
+ * @return null 失败 实体成功
+ */
+ @PostMapping
+ public R save(@RequestBody UploadPictures uploadPictures) {
+ return R.ok(uploadPicturesService.save(uploadPictures));
+ }
+
+ /**
+ * 修改
+ * @param uploadPictures 传递的实体
+ * @return null 失败 实体成功
+ */
+ @PutMapping
+ public R updateById(@RequestBody UploadPictures uploadPictures) {
+ return R.ok(uploadPicturesService.updateById(uploadPictures));
+ }
+
+ /**
+ * 根据id删除对象
+ * @param id 实体ID
+ * @return 0 失败 1 成功
+ */
+ @ResponseBody
+ @RequestMapping(method = RequestMethod.DELETE, value = "/{id:.+}")
+ public R removeById(@PathVariable("id") String id){
+ return R.ok(uploadPicturesService.removeById(id));
+ }
+
+ /**
+ * 批量删除对象
+ * @param ids 实体集合ID
+ * @return 0 失败 1 成功
+ */
+ @ResponseBody
+ @RequestMapping(method = RequestMethod.POST, value = "/delete-batch")
+ public R removeByIds(List ids){
+ return R.ok(uploadPicturesService.removeByIds(ids));
+ }
+}
\ No newline at end of file
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/UploadPicturesMapper.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/UploadPicturesMapper.java
new file mode 100644
index 00000000..d4fe2ba7
--- /dev/null
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/UploadPicturesMapper.java
@@ -0,0 +1,18 @@
+package com.foreverwin.mesnac.anomaly.mapper;
+
+import com.foreverwin.mesnac.anomaly.model.UploadPictures;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author Leon.L
+ * @since 2021-07-11
+ */
+@Repository
+public interface UploadPicturesMapper extends BaseMapper {
+
+}
\ No newline at end of file
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/model/AbnormalBill.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/model/AbnormalBill.java
index b0ab7eac..148aaa4b 100644
--- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/model/AbnormalBill.java
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/model/AbnormalBill.java
@@ -200,6 +200,14 @@ public class AbnormalBill extends Model {
@TableField("MODIFIED_DATE_TIME")
private LocalDateTime modifiedDateTime;
+ @TableField(exist = false)
+ private String filePath;
+
+ @TableField(exist = false)
+ private String fileName;
+
+ @TableField(exist = false)
+ private String fileNum;
public String getHandle() {
return handle;
@@ -481,7 +489,31 @@ public class AbnormalBill extends Model {
this.modifiedDateTime = modifiedDateTime;
}
-public static final String HANDLE = "HANDLE";
+ public String getFilePath() {
+ return filePath;
+ }
+
+ public void setFilePath(String filePath) {
+ this.filePath = filePath;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public String getFileNum() {
+ return fileNum;
+ }
+
+ public void setFileNum(String fileNum) {
+ this.fileNum = fileNum;
+ }
+
+ public static final String HANDLE = "HANDLE";
public static final String SITE = "SITE";
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/model/UploadPictures.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/model/UploadPictures.java
new file mode 100644
index 00000000..a445753f
--- /dev/null
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/model/UploadPictures.java
@@ -0,0 +1,216 @@
+package com.foreverwin.mesnac.anomaly.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ *
+ *
+ *
+ * @author Leon.L
+ * @since 2021-07-11
+ */
+
+@TableName("Z_UPLOAD_PICTURES")
+
+public class UploadPictures extends Model {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "HANDLE", type = IdType.INPUT)
+ private String handle;
+ /**
+ * 站点
+ */
+ @TableField("SITE")
+ private String site;
+ /**
+ * 图片路径
+ */
+ @TableField("PICTURE_PATH")
+ private String picturePath;
+ /**
+ * 图片路径详细地址
+ */
+ @TableField("PICTURE_ADDRESS")
+ private String pictureAddress;
+ /**
+ * 单号
+ */
+ @TableField("OBJECT_BO")
+ private String objectBo;
+ /**
+ * 数量
+ */
+ @TableField("NUM")
+ private String num;
+ /**
+ * 类型
+ */
+ @TableField("TYPE")
+ private String type;
+ /**
+ * 创建人
+ */
+ @TableField("CREATED_USER")
+ private String createdUser;
+ /**
+ * 创建时间
+ */
+ @TableField("CREATED_DATE_TIME")
+ private LocalDateTime createdDateTime;
+ /**
+ * 修改人
+ */
+ @TableField("MODIFIED_USER")
+ private String modifiedUser;
+ /**
+ * 修改日期
+ */
+ @TableField("MODIFIED_DATE_TIME")
+ private LocalDateTime modifiedDateTime;
+
+
+ public String getHandle() {
+ return handle;
+ }
+
+ public void setHandle(String handle) {
+ this.handle = handle;
+ }
+
+ public String getSite() {
+ return site;
+ }
+
+ public void setSite(String site) {
+ this.site = site;
+ }
+
+ public String getPicturePath() {
+ return picturePath;
+ }
+
+ public void setPicturePath(String picturePath) {
+ this.picturePath = picturePath;
+ }
+
+ public String getPictureAddress() {
+ return pictureAddress;
+ }
+
+ public void setPictureAddress(String pictureAddress) {
+ this.pictureAddress = pictureAddress;
+ }
+
+ public String getObjectBo() {
+ return objectBo;
+ }
+
+ public void setObjectBo(String objectBo) {
+ this.objectBo = objectBo;
+ }
+
+ public String getNum() {
+ return num;
+ }
+
+ public void setNum(String num) {
+ this.num = num;
+ }
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getCreatedUser() {
+ return createdUser;
+ }
+
+ public void setCreatedUser(String createdUser) {
+ this.createdUser = createdUser;
+ }
+
+ public LocalDateTime getCreatedDateTime() {
+ return createdDateTime;
+ }
+
+ public void setCreatedDateTime(LocalDateTime createdDateTime) {
+ this.createdDateTime = createdDateTime;
+ }
+
+ public String getModifiedUser() {
+ return modifiedUser;
+ }
+
+ public void setModifiedUser(String modifiedUser) {
+ this.modifiedUser = modifiedUser;
+ }
+
+ public LocalDateTime getModifiedDateTime() {
+ return modifiedDateTime;
+ }
+
+ public void setModifiedDateTime(LocalDateTime modifiedDateTime) {
+ this.modifiedDateTime = modifiedDateTime;
+ }
+
+public static final String HANDLE = "HANDLE";
+
+public static final String SITE = "SITE";
+
+public static final String PICTURE_PATH = "PICTURE_PATH";
+
+public static final String PICTURE_ADDRESS = "PICTURE_ADDRESS";
+
+public static final String OBJECT_BO = "OBJECT_BO";
+
+public static final String NUM = "NUM";
+
+public static final String TYPE = "TYPE";
+
+public static final String CREATED_USER = "CREATED_USER";
+
+public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME";
+
+public static final String MODIFIED_USER = "MODIFIED_USER";
+
+public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME";
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.handle;
+ }
+
+ @Override
+ public String toString() {
+ return "UploadPictures{" +
+ "handle = " + handle +
+ ", site = " + site +
+ ", picturePath = " + picturePath +
+ ", pictureAddress = " + pictureAddress +
+ ", objectBo = " + objectBo +
+ ", num = " + num +
+ ", type = " + type +
+ ", createdUser = " + createdUser +
+ ", createdDateTime = " + createdDateTime +
+ ", modifiedUser = " + modifiedUser +
+ ", modifiedDateTime = " + modifiedDateTime +
+ "}";
+ }
+}
\ No newline at end of file
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AbnormalBillService.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AbnormalBillService.java
index 93fe07d4..f47fc8f9 100644
--- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AbnormalBillService.java
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/AbnormalBillService.java
@@ -6,6 +6,7 @@ import com.foreverwin.mesnac.anomaly.dto.AbnormalBillDisposeDto;
import com.foreverwin.mesnac.anomaly.dto.AbnormalBillDto;
import com.foreverwin.mesnac.anomaly.model.AbnormalBill;
import com.foreverwin.mesnac.anomaly.model.AbnormalBillDispose;
+import com.foreverwin.mesnac.anomaly.model.UploadPictures;
import com.foreverwin.modular.core.util.FrontPage;
import java.util.HashMap;
@@ -46,7 +47,7 @@ public interface AbnormalBillService extends IService {
* @param abnormalBill
* @param abnormalBillDispose
*/
- void generateAbnormalBill(AbnormalBill abnormalBill, AbnormalBillDispose abnormalBillDispose,List dutyCauseType,List dutyType);
+ String generateAbnormalBill(AbnormalBill abnormalBill, AbnormalBillDispose abnormalBillDispose,List dutyCauseType,List dutyType);
void cancelBrowse(String handle,String cancelBrowse,String code);
@@ -98,4 +99,17 @@ public interface AbnormalBillService extends IService {
*/
void anomalyShutDown(AbnormalBill abnormalBill,AbnormalBillDispose abnormalBillDispose);
+ /**
+ * 放置图片
+ * @param abnormalBill
+ */
+ public void fileUpload(AbnormalBill abnormalBill);
+
+ /**
+ * 查看照片
+ * @param abnormalBill
+ * @return
+ */
+ public UploadPictures findUploadPictureByAbnormalBo(AbnormalBill abnormalBill);
+
}
\ No newline at end of file
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/FileUploadedService.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/FileUploadedService.java
new file mode 100644
index 00000000..62d0cd53
--- /dev/null
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/FileUploadedService.java
@@ -0,0 +1,22 @@
+package com.foreverwin.mesnac.anomaly.service;
+
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @Description TODO
+ * @Author zhaojiawei
+ * @Since 2021-07-11
+ */
+public interface FileUploadedService {
+
+ public void uploadAttachment(MultipartFile fileItem, String site, String taskNo, String fileType);
+
+ public String showFile(HttpServletRequest request, HttpServletResponse response) throws Exception ;
+
+ public boolean deleteFile(String pathname, String filename);
+
+
+}
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/UploadPicturesService.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/UploadPicturesService.java
new file mode 100644
index 00000000..49b343ec
--- /dev/null
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/UploadPicturesService.java
@@ -0,0 +1,28 @@
+package com.foreverwin.mesnac.anomaly.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.foreverwin.mesnac.anomaly.model.UploadPictures;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.foreverwin.modular.core.util.FrontPage;
+
+import java.util.List;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author Leon.L
+ * @since 2021-07-11
+ */
+public interface UploadPicturesService extends IService {
+
+ /**
+ * 分页查询
+ * @param frontPage
+ * @return
+ */
+ IPage selectPage(FrontPage frontPage, UploadPictures uploadPictures);
+
+ List selectList(UploadPictures uploadPictures);
+}
\ No newline at end of file
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java
index 125e4ef8..a3533e55 100644
--- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/AbnormalBillServiceImpl.java
@@ -89,6 +89,9 @@ public class AbnormalBillServiceImpl extends ServiceImpl dutyCauseType,
List dutyType) {
- this.generateAbnormalBill(abnormalBill,abnormalBillDispose,dutyCauseType,dutyType);
+ String message = this.generateAbnormalBill(abnormalBill, abnormalBillDispose, dutyCauseType, dutyType);
this.saveOrUpdate(abnormalBill);
abnormalBillDisposeService.saveOrUpdate(abnormalBillDispose);
- return abnormalBill.getAbnormalNo();
+ return message;
}
@Override
@@ -122,7 +125,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl ncGroupAndNcCodes,
List dutyCauseType,
List dutyType) {
- this.generateAbnormalBill(abnormalBill,abnormalBillDispose,dutyCauseType,dutyType);
+ String message = this.generateAbnormalBill(abnormalBill, abnormalBillDispose, dutyCauseType, dutyType);
//获取当前时间
LocalDateTime now = LocalDateTime.now();
//生成不良代码和不良代码组,并把它放到hashMap里面,ncCode是存放在异常单里面的ncCode
@@ -167,13 +170,13 @@ public class AbnormalBillServiceImpl extends ServiceImpl ncByNG = ncCodeService.findNcByNG(abnormalBill.getMessageType(), abnormalBill.getNcCode());
if(ncByNG == null || ncByNG.size() <= 0){
@@ -181,7 +184,7 @@ public class AbnormalBillServiceImpl extends ServiceImpl dutyCauseType,List dutyType) {
+ public String generateAbnormalBill(AbnormalBill abnormalBill, AbnormalBillDispose abnormalBillDispose,List dutyCauseType,List dutyType) {
String site = CommonMethods.getSite();
+ String message = null;
LocalDateTime currentTime = LocalDateTime.now();
String user = CommonMethods.getUser();
- if(StringUtil.isBlank(abnormalBill.getAbnormalNo())){
+ if(StringUtil.isBlank(abnormalBill.getAbnormalNo())) {
throw BusinessException.build("异常单号不存在");
-
}
-
-
-
abnormalBill.setHandle(HandleEnum.Z_ABNORMAL_BILL.getHandle(site,abnormalBill.getAbnormalNo()));
//更新的时候,判断该异常当的状态是否为新建
AbnormalBill abnormalBill1 = abnormalBillMapper.selectById(abnormalBill.getHandle());
@@ -395,6 +395,9 @@ public class AbnormalBillServiceImpl extends ServiceImpl 0){
abnormalCauseService.saveOrUpdateBatch(causeTypes);
}
+ //放置图片
+ this.fileUpload(abnormalBill);
+
+ return message;
}
@@ -518,4 +525,57 @@ public class AbnormalBillServiceImpl extends ServiceImpl name = null;
+ if(StringUtil.notBlank(abnormalBill.getFileName())){
+ name = Arrays.asList(abnormalBill.getFileName().split(","));
+ }
+ if(name != null && name.size() != 0){
+ //String uuid = UUID.randomUUID().toString();
+ UploadPictures uploadPictures = new UploadPictures();
+ uploadPictures.setHandle("UploadPicturesBO:"+abnormalBill.getSite()+","+abnormalBill.getAbnormalNo());
+ uploadPictures.setSite(abnormalBill.getSite());
+ uploadPictures.setPicturePath(abnormalBill.getFilePath());
+ StringBuilder pictureAddress = new StringBuilder();
+ for (int i = 0; i <= name.size() -1; i++) {
+ if(i != name.size() -1){
+ pictureAddress.append(abnormalBill.getFilePath()).append("/").append(name.get(i)).append(",");
+ }else{
+ pictureAddress.append(abnormalBill.getFilePath()).append("/").append(name.get(i));
+ }
+ }
+ uploadPictures.setPictureAddress(pictureAddress.toString());
+ uploadPictures.setObjectBo(abnormalBill.getHandle());
+ uploadPictures.setNum(abnormalBill.getFileNum());
+ uploadPictures.setType("ABNORMAL");
+ uploadPictures.setCreatedUser(user);
+ uploadPictures.setCreatedDateTime(now);
+ uploadPictures.setModifiedUser(user);
+ uploadPictures.setModifiedDateTime(now);
+ uploadPicturesService.saveOrUpdate(uploadPictures);
+ }
+ }
+
+ @Override
+ public UploadPictures findUploadPictureByAbnormalBo(AbnormalBill abnormalBill) {
+ String site = CommonMethods.getSite();
+ UploadPictures uploadPictures = new UploadPictures();
+ uploadPictures.setSite(site);
+ uploadPictures.setObjectBo(abnormalBill.getHandle());
+ List uploadPictures1 = uploadPicturesService.selectList(uploadPictures);
+ if(uploadPictures1 != null && uploadPictures1.size() == 1){
+ return uploadPictures1.get(0);
+ }
+ return null;
+ }
+}
+
+
+
+
+
+
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/FileUploadedServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/FileUploadedServiceImpl.java
new file mode 100644
index 00000000..a5e970f1
--- /dev/null
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/FileUploadedServiceImpl.java
@@ -0,0 +1,167 @@
+package com.foreverwin.mesnac.anomaly.service.impl;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.extra.ftp.Ftp;
+import com.foreverwin.mesnac.anomaly.service.FileUploadedService;
+import com.foreverwin.modular.core.exception.BusinessException;
+import com.foreverwin.modular.core.util.CommonMethods;
+import org.apache.commons.net.ftp.FTP;
+import org.apache.commons.net.ftp.FTPClient;
+import org.apache.commons.net.ftp.FTPReply;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * @Description TODO
+ * @Author zhaojiawei
+ * @Since 2021-07-10
+ */
+@Service("FileUploaded")
+@Transactional(rollbackFor = Exception.class)
+@ConditionalOnProperty( prefix = "ftp",name = {"host","port","username","password"})
+public class FileUploadedServiceImpl implements FileUploadedService {
+
+ @Value("${ftp.host}")
+ private String host;
+ @Value("${ftp.port}")
+ private Integer port;
+ @Value("${ftp.username}")
+ private String username;
+ @Value("${ftp.password}")
+ private String password;
+
+ private final static Logger logger = LoggerFactory.getLogger("FileUploadedServiceImpl");
+
+ /**
+ * 附件上传
+ *
+ * @param fileItem
+ * @return
+ */
+ @Override
+ public void uploadAttachment(MultipartFile fileItem,String site,String taskNo,String fileType) {
+ if (StrUtil.isBlank(site)) {
+ site = CommonMethods.getSite();
+ }
+ //上传附件目录:年/月/日
+ String path = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd"))+"/"+taskNo;
+ //上传附件名称
+ String fileName = fileItem.getOriginalFilename();
+ try {
+ Ftp ftp = new Ftp(host, port,username,password);
+
+ ftp.upload(path, fileName, fileItem.getInputStream());
+ ftp.close();
+ } catch (IOException e) {
+ logger.info(e.getMessage());
+ throw BusinessException.build("" + e.getMessage());
+ }
+
+ }
+
+ public String showFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
+ String path = request.getParameter("PATH");
+// InputStream in = null;
+ OutputStream out = null;
+ try {
+ String coderPath = new String(path.getBytes("ISO8859_1"));
+ String newPath = new String(coderPath.getBytes("GBK"), FTPClient.DEFAULT_CONTROL_ENCODING);
+ //
+ // in = ftpClient.getFtp(path);
+// in = ftpClient.getFtp(newPath);
+ FTPClient ftpClient = new FTPClient();
+ ftpClient.connect(host,port);
+ ftpClient.login(username,password);
+ if(!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())){
+ ftpClient.disconnect();
+ }
+ ftpClient.enterLocalActiveMode();
+ // 设置文件类型为二进制,与ASCII有区别
+ ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
+ // 设置编码格式
+ ftpClient.setControlEncoding("GBK");
+ // 提取绝对地址的目录以及文件名
+ path = path.replace("ftp://"+path+":"+port+"/", "");
+ String dir = path.substring(0, path.lastIndexOf("/"));
+ String file = path.substring(path.lastIndexOf("/")+1);
+ // 进入文件所在目录,注意编码格式,以能够正确识别中文目录
+ boolean cdStatus = ftpClient.changeWorkingDirectory(new String(dir.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING));
+ // 检验文件是否存在
+ InputStream in = ftpClient.retrieveFileStream(new String(file.getBytes("GBK"),FTP.DEFAULT_CONTROL_ENCODING));
+ if(in == null || ftpClient.getReplyCode() == FTPReply.FILE_UNAVAILABLE){
+ return "该文件不存在";
+ }
+
+ ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+ byte[] buffer = new byte[1024];
+ int len = 0;
+ while( (len=in.read(buffer)) != -1 ){
+ outStream.write(buffer, 0, len);
+ }
+ byte[] data = outStream.toByteArray();
+ out = response.getOutputStream();
+ out.write(data);
+ out.flush();
+ }catch (Exception e){
+ return "图片获取失败"+e.getMessage();
+ }finally {
+ out.close();
+// in.close();
+ }
+
+ return "渲染图片成功";
+ }
+
+ @Override
+ public boolean deleteFile(String pathname, String filename){
+ boolean flag = false;
+ FTPClient ftpClient = null;
+ try {
+ //System.out.println("开始删除文件");
+ ftpClient = new FTPClient();
+ ftpClient.connect(host,port);
+ ftpClient.login(username,password);
+ if(!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())){
+ ftpClient.disconnect();
+ }
+ ftpClient.enterLocalActiveMode();
+ // 设置文件类型为二进制,与ASCII有区别
+ ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
+ // 设置编码格式
+ ftpClient.setControlEncoding("GBK");
+ //切换FTP目录
+ ftpClient.changeWorkingDirectory(pathname);
+ ftpClient.dele(filename);
+ ftpClient.logout();
+ flag = true;
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ } finally {
+ if(ftpClient.isConnected()){
+ try{
+ ftpClient.disconnect();
+ }catch(IOException e){
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+
+}
diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/UploadPicturesServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/UploadPicturesServiceImpl.java
new file mode 100644
index 00000000..470ad05e
--- /dev/null
+++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/UploadPicturesServiceImpl.java
@@ -0,0 +1,46 @@
+package com.foreverwin.mesnac.anomaly.service.impl;
+
+import com.foreverwin.modular.core.util.FrontPage;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.foreverwin.mesnac.anomaly.model.UploadPictures;
+import com.foreverwin.mesnac.anomaly.mapper.UploadPicturesMapper;
+import com.foreverwin.mesnac.anomaly.service.UploadPicturesService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author Leon.L
+ * @since 2021-07-11
+ */
+@Service
+@Transactional(rollbackFor = Exception.class)
+public class UploadPicturesServiceImpl extends ServiceImpl implements UploadPicturesService {
+
+
+ @Autowired
+ private UploadPicturesMapper uploadPicturesMapper;
+
+ @Override
+ public IPage selectPage(FrontPage frontPage, UploadPictures uploadPictures) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.setEntity(uploadPictures);
+ return super.page(frontPage.getPagePlus(), queryWrapper);
+ }
+
+ @Override
+ public List selectList(UploadPictures uploadPictures) {
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.setEntity(uploadPictures);
+ return super.list(queryWrapper);
+ }
+
+
+}
\ No newline at end of file
diff --git a/anomaly/src/main/resources/mapper/UploadPicturesMapper.xml b/anomaly/src/main/resources/mapper/UploadPicturesMapper.xml
new file mode 100644
index 00000000..2aee9399
--- /dev/null
+++ b/anomaly/src/main/resources/mapper/UploadPicturesMapper.xml
@@ -0,0 +1,418 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HANDLE, SITE, PICTURE_PATH, PICTURE_ADDRESS, OBJECT_BO, NUM, TYPE, CREATED_USER, CREATED_DATE_TIME, MODIFIED_USER, MODIFIED_DATE_TIME
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ INSERT INTO Z_UPLOAD_PICTURES
+
+ HANDLE,
+ SITE,
+ PICTURE_PATH,
+ PICTURE_ADDRESS,
+ OBJECT_BO,
+ NUM,
+ TYPE,
+ CREATED_USER,
+ CREATED_DATE_TIME,
+ MODIFIED_USER,
+ MODIFIED_DATE_TIME,
+ VALUES
+
+ #{handle},
+ #{site},
+ #{picturePath},
+ #{pictureAddress},
+ #{objectBo},
+ #{num},
+ #{type},
+ #{createdUser},
+ #{createdDateTime},
+ #{modifiedUser},
+ #{modifiedDateTime},
+
+
+
+
+ INSERT INTO Z_UPLOAD_PICTURES
+
+
+ VALUES
+
+ #{handle},
+ #{site},
+ #{picturePath},
+ #{pictureAddress},
+ #{objectBo},
+ #{num},
+ #{type},
+ #{createdUser},
+ #{createdDateTime},
+ #{modifiedUser},
+ #{modifiedDateTime},
+
+
+
+
+
+ UPDATE Z_UPLOAD_PICTURES
+ SITE=#{et.site},
+ PICTURE_PATH=#{et.picturePath},
+ PICTURE_ADDRESS=#{et.pictureAddress},
+ OBJECT_BO=#{et.objectBo},
+ NUM=#{et.num},
+ TYPE=#{et.type},
+ CREATED_USER=#{et.createdUser},
+ CREATED_DATE_TIME=#{et.createdDateTime},
+ MODIFIED_USER=#{et.modifiedUser},
+ MODIFIED_DATE_TIME=#{et.modifiedDateTime},
+ WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL}
+
+
+
+
+ UPDATE Z_UPLOAD_PICTURES
+ SITE=#{et.site},
+ PICTURE_PATH=#{et.picturePath},
+ PICTURE_ADDRESS=#{et.pictureAddress},
+ OBJECT_BO=#{et.objectBo},
+ NUM=#{et.num},
+ TYPE=#{et.type},
+ CREATED_USER=#{et.createdUser},
+ CREATED_DATE_TIME=#{et.createdDateTime},
+ MODIFIED_USER=#{et.modifiedUser},
+ MODIFIED_DATE_TIME=#{et.modifiedDateTime},
+ WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL}
+
+
+
+
+ UPDATE Z_UPLOAD_PICTURES
+ SITE=#{et.site},
+ PICTURE_PATH=#{et.picturePath},
+ PICTURE_ADDRESS=#{et.pictureAddress},
+ OBJECT_BO=#{et.objectBo},
+ NUM=#{et.num},
+ TYPE=#{et.type},
+ CREATED_USER=#{et.createdUser},
+ CREATED_DATE_TIME=#{et.createdDateTime},
+ MODIFIED_USER=#{et.modifiedUser},
+ MODIFIED_DATE_TIME=#{et.modifiedDateTime},
+
+
+
+
+ HANDLE=#{ew.entity.handle}
+ AND SITE=#{ew.entity.site}
+ AND PICTURE_PATH=#{ew.entity.picturePath}
+ AND PICTURE_ADDRESS=#{ew.entity.pictureAddress}
+ AND OBJECT_BO=#{ew.entity.objectBo}
+ AND NUM=#{ew.entity.num}
+ AND TYPE=#{ew.entity.type}
+ AND CREATED_USER=#{ew.entity.createdUser}
+ AND CREATED_DATE_TIME=#{ew.entity.createdDateTime}
+ AND MODIFIED_USER=#{ew.entity.modifiedUser}
+ AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime}
+
+
+ ${ew.sqlSegment}
+
+
+
+
+ ${ew.sqlSegment}
+
+
+
+
+ DELETE FROM Z_UPLOAD_PICTURES WHERE HANDLE=#{handle}
+
+
+
+ DELETE FROM Z_UPLOAD_PICTURES
+
+
+
+
+ ${k} = #{cm[${k}]}
+
+
+
+
+
+
+
+ DELETE FROM Z_UPLOAD_PICTURES
+
+
+
+
+ HANDLE=#{ew.entity.handle}
+
+ AND SITE=#{ew.entity.site}
+ AND PICTURE_PATH=#{ew.entity.picturePath}
+ AND PICTURE_ADDRESS=#{ew.entity.pictureAddress}
+ AND OBJECT_BO=#{ew.entity.objectBo}
+ AND NUM=#{ew.entity.num}
+ AND TYPE=#{ew.entity.type}
+ AND CREATED_USER=#{ew.entity.createdUser}
+ AND CREATED_DATE_TIME=#{ew.entity.createdDateTime}
+ AND MODIFIED_USER=#{ew.entity.modifiedUser}
+ AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime}
+
+
+ ${ew.sqlSegment}
+
+
+
+
+ ${ew.sqlSegment}
+
+
+
+
+ DELETE FROM Z_UPLOAD_PICTURES WHERE HANDLE IN (
+ #{item}
+ )
+
+
+
+
diff --git a/console/src/main/resources/application-local.yml b/console/src/main/resources/application-local.yml
index 756104aa..7d58d3c6 100644
--- a/console/src/main/resources/application-local.yml
+++ b/console/src/main/resources/application-local.yml
@@ -47,8 +47,15 @@ wechat:
postUrl: https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
#ftp文档服务器
+#ftp:
+# host: 10.4.1.53
+# port: 21
+# username:
+# password:
+
ftp:
- host: 10.4.1.53
- port: 21
- username:
- password:
+ host: 106.52.244.124
+ port: 21
+ username: zjw
+ password: zhaojiawei
+
diff --git a/pom.xml b/pom.xml
index abc37b8d..b3841d93 100644
--- a/pom.xml
+++ b/pom.xml
@@ -52,6 +52,12 @@
+
+ commons-net
+ commons-net
+ 3.1
+
+
org.springframework.boot
spring-boot-starter-tomcat