diff --git a/src/main/java/com/xkrs/controller/PictureController.java b/src/main/java/com/xkrs/controller/PictureController.java new file mode 100644 index 0000000..e9fb95d --- /dev/null +++ b/src/main/java/com/xkrs/controller/PictureController.java @@ -0,0 +1,62 @@ +package com.xkrs.controller; + +import com.xkrs.dao.PictureDao; +import com.xkrs.encapsulation.PromptMessageEnum; +import com.xkrs.model.entity.PictureEntity; +import com.xkrs.model.entity.SpecEntity; +import com.xkrs.model.qo.FileQo; +import com.xkrs.model.qo.PictureQo; +import com.xkrs.service.PictureService; +import org.apache.poi.openxml4j.exceptions.InvalidFormatException; +import org.springframework.context.i18n.LocaleContextHolder; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.Locale; + +import static com.xkrs.encapsulation.OutputEncapsulation.outputEncapsulationObject; + +/** + * @Author: XinYi Song + * @Date: 2022/1/20 16:01 + */ +@RestController +public class PictureController { + + @Resource + private PictureService pictureService; + + @Resource + private PictureDao pictureDao; + + /** + * 上传图片 + */ + @PostMapping("/insertPicture") + public String insertPicture(PictureQo pictureQo, @RequestParam("filePicture") MultipartFile filePicture) throws IOException { + return pictureService.insertPicture(pictureQo, filePicture); + } + + /** + * 查询图片 + */ + @PostMapping("/selectPicture") + public String selectPicture(@RequestBody PictureQo pictureQo) throws IOException, InvalidFormatException { + Locale locale = LocaleContextHolder.getLocale(); + String lotNo = pictureQo.getLotNo(); + String machineNo = pictureQo.getMachineNo(); + String materialNo = pictureQo.getMaterialNo(); + String modelNo = pictureQo.getModelNo(); + String partNo = pictureQo.getPartNo(); + PictureEntity pictureEntity = pictureDao.selectPicture(lotNo, machineNo, materialNo, modelNo, partNo).get(); + if (pictureEntity == null) { + return outputEncapsulationObject(PromptMessageEnum.DATA_NONE, "暂时没有该零件的图片!", locale); + } + return outputEncapsulationObject(PromptMessageEnum.SUCCESS, pictureEntity, locale); + } +} diff --git a/src/main/java/com/xkrs/dao/PictureDao.java b/src/main/java/com/xkrs/dao/PictureDao.java new file mode 100644 index 0000000..5118456 --- /dev/null +++ b/src/main/java/com/xkrs/dao/PictureDao.java @@ -0,0 +1,46 @@ +package com.xkrs.dao; + +import com.xkrs.model.entity.PictureEntity; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Optional; + +/** + * @Author: XinYi Song + * @Date: 2022/1/19 16:41 + */ +@Component +public interface PictureDao extends JpaRepository, JpaSpecificationExecutor { + + /** + * 查询图片信息 + * + * @param lotNo 批次号 + * @param machineNo 机器号 + * @param materialNo 物料号 + * @param modelNo 模具号 + * @param partNo 零件号 + * @return + */ + @Query(value = "SELECT * FROM qc_inspection_picture WHERE lot_no = ? AND machine_no = ? AND material_no = ? AND model_no = ? AND part_no = ? ", nativeQuery = true) + Optional selectPicture(String lotNo, String machineNo, String materialNo, String modelNo, String partNo); + + /** + * 修改图片路径信息 + * + * @param lotNo 批次号 + * @param machineNo 机器号 + * @param materialNo 物料号 + * @param modelNo 模具号 + * @param partNo 零件号 + * @param picturePath 图片路径 + */ + @Modifying(clearAutomatically = true) + @Query(value = "UPDATE qc_inspection_picture SET picture_path = ?6 where lot_no = ?1 and machine_no = ?2 and material_no = ?3 and model_no = ?4 and part_no = ?5",nativeQuery = true) + void updatePicturePath(String lotNo, String machineNo, String materialNo, String modelNo, String partNo, String picturePath); +} diff --git a/src/main/java/com/xkrs/model/qo/PictureQo.java b/src/main/java/com/xkrs/model/qo/PictureQo.java new file mode 100644 index 0000000..ad7a310 --- /dev/null +++ b/src/main/java/com/xkrs/model/qo/PictureQo.java @@ -0,0 +1,82 @@ +package com.xkrs.model.qo; + +import com.xkrs.model.validation.PictureQoInsert; + +import javax.validation.constraints.NotBlank; + +public class PictureQo { + + /** + * 批次号 + */ + @NotBlank(message = "{PictureEntity.lotNo.blank}", groups = {PictureQoInsert.class}) + private String lotNo; + + /** + * 机器号 + */ + @NotBlank(message = "{PictureEntity.machineNo.blank}", groups = {PictureQoInsert.class}) + private String machineNo; + + /** + * 物料号 + */ + @NotBlank(message = "{PictureEntity.materialNo.blank}", groups = {PictureQoInsert.class}) + private String materialNo; + + /** + * 模具号 + */ + @NotBlank(message = "{PictureEntity.modelNo.blank}", groups = {PictureQoInsert.class}) + private String modelNo; + + /** + * 零件号 + */ + @NotBlank(message = "{PictureEntity.partNo.blank}", groups = {PictureQoInsert.class}) + private String partNo; + + public PictureQo() { + } + + public String getLotNo() { + return lotNo; + } + + public void setLotNo(String lotNo) { + this.lotNo = lotNo; + } + + public String getMachineNo() { + return machineNo; + } + + public void setMachineNo(String machineNo) { + this.machineNo = machineNo; + } + + public String getMaterialNo() { + return materialNo; + } + + public void setMaterialNo(String materialNo) { + this.materialNo = materialNo; + } + + public String getModelNo() { + return modelNo; + } + + public void setModelNo(String modelNo) { + this.modelNo = modelNo; + } + + public String getPartNo() { + return partNo; + } + + public void setPartNo(String partNo) { + this.partNo = partNo; + } + +} diff --git a/src/main/java/com/xkrs/model/validation/PictureQoInsert.java b/src/main/java/com/xkrs/model/validation/PictureQoInsert.java new file mode 100644 index 0000000..7036491 --- /dev/null +++ b/src/main/java/com/xkrs/model/validation/PictureQoInsert.java @@ -0,0 +1,8 @@ +package com.xkrs.model.validation; + +/** + * @Author: XinYi Song + * @Date: 2022/1/20 15:26 + */ +public interface PictureQoInsert { +} diff --git a/src/main/java/com/xkrs/service/PictureService.java b/src/main/java/com/xkrs/service/PictureService.java new file mode 100644 index 0000000..50386e7 --- /dev/null +++ b/src/main/java/com/xkrs/service/PictureService.java @@ -0,0 +1,19 @@ +package com.xkrs.service; + +import com.xkrs.model.qo.PictureQo; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; + +/** + * @Author: XinYi Song + * @Date: 2022/1/20 15:24 + */ +public interface PictureService { + + /** + * 添加图片 + */ + String insertPicture(PictureQo pictureQo, MultipartFile pictureFile)throws IOException; + +} diff --git a/src/main/java/com/xkrs/service/impl/PictureServiceImpl.java b/src/main/java/com/xkrs/service/impl/PictureServiceImpl.java new file mode 100644 index 0000000..b4343e6 --- /dev/null +++ b/src/main/java/com/xkrs/service/impl/PictureServiceImpl.java @@ -0,0 +1,48 @@ +package com.xkrs.service.impl; + +import com.xkrs.dao.PictureDao; +import com.xkrs.encapsulation.PromptMessageEnum; +import com.xkrs.model.entity.PictureEntity; +import com.xkrs.model.qo.PictureQo; +import com.xkrs.service.PictureService; +import com.xkrs.util.ExcelUploadUtil; +import org.springframework.context.i18n.LocaleContextHolder; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.Locale; + +import static com.xkrs.encapsulation.OutputEncapsulation.outputEncapsulationObject; + +@Service +public class PictureServiceImpl implements PictureService { + + @Resource + private PictureDao pictureDao; + + @Override + public String insertPicture(PictureQo pictureQo, MultipartFile pictureFile) throws IOException { + Locale locale = LocaleContextHolder.getLocale(); + String lotNo = pictureQo.getLotNo(); + String machineNo = pictureQo.getMachineNo(); + String materialNo = pictureQo.getMaterialNo(); + String modelNo = pictureQo.getModelNo(); + String partNo = pictureQo.getPartNo(); + PictureEntity pictureEntity = pictureDao.selectPicture(lotNo, machineNo, materialNo, modelNo, partNo).get(); + if (pictureEntity != null) { + return outputEncapsulationObject(PromptMessageEnum.DATA_EXIT, "请勿重复添加!", locale); + } + String file = ExcelUploadUtil.memoryFile(pictureFile); + PictureEntity pictureEntity1 = new PictureEntity(); + pictureEntity1.setLotNo(lotNo); + pictureEntity1.setMachineNo(machineNo); + pictureEntity1.setMaterialNo(materialNo); + pictureEntity1.setModelNo(modelNo); + pictureEntity1.setPartNo(partNo); + pictureEntity1.setPicturePath(file); + pictureDao.save(pictureEntity1); + return outputEncapsulationObject(PromptMessageEnum.SUCCESS, "添加成功!", locale); + } +} diff --git a/src/main/java/com/xkrs/util/ExcelUploadUtil.java b/src/main/java/com/xkrs/util/ExcelUploadUtil.java index d0096d5..c498ddf 100644 --- a/src/main/java/com/xkrs/util/ExcelUploadUtil.java +++ b/src/main/java/com/xkrs/util/ExcelUploadUtil.java @@ -29,7 +29,8 @@ public class ExcelUploadUtil { */ public static String memoryFile(MultipartFile fileExcel) throws IOException { //String uploadPath = "http://139.199.98.175:2088/wfTaskImage/"; - String uploadPath = "http://192.168.2.9:2088/"; +// String uploadPath = "http://192.168.2.9:2088/"; + String uploadPath = "http://118.24.27.47:4096/"; //获取原始文件名 String originalFilename = fileExcel.getOriginalFilename(); if (originalFilename != null && !"".equals(originalFilename)) {