| src/main/java/com/ruoyi/sales/controller/BusinessOpportunityController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/controller/CommonFileController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/mapper/BusinessDescriptionMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/pojo/BusinessDescription.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/pojo/BusinessOpportunity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/pojo/CommonFile.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/service/impl/CommonFileServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/sales/controller/BusinessOpportunityController.java
@@ -1,16 +1,23 @@ package com.ruoyi.sales.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.sales.mapper.BusinessDescriptionMapper; import com.ruoyi.sales.pojo.BusinessDescription; import com.ruoyi.sales.pojo.BusinessOpportunity; import com.ruoyi.sales.service.BusinessOpportunityService; import com.ruoyi.sales.service.impl.CommonFileServiceImpl; import io.jsonwebtoken.lang.Collections; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -27,23 +34,53 @@ @Autowired private BusinessOpportunityService businessOpportunityService; @Autowired private BusinessDescriptionMapper BusinessDescriptionMapper; @Autowired private CommonFileServiceImpl commonFileService; @GetMapping("/listPage") @ApiOperation("åæºå表") public AjaxResult listPage(Page page, BusinessOpportunity businessOpportunity) { return AjaxResult.success(businessOpportunityService.listPage(page, businessOpportunity)); IPage<BusinessOpportunity> businessOpportunityIPage = businessOpportunityService.listPage(page, businessOpportunity); businessOpportunityIPage.getRecords().forEach(item -> { item.setBusinessCommonFiles(commonFileService.getFileList(item.getId(),9)); item.setBusinessDescription(BusinessDescriptionMapper.selectList(Wrappers.lambdaQuery(BusinessDescription.class) .eq(BusinessDescription::getBusinessOpportunityId, item.getId()))); }); return AjaxResult.success(businessOpportunityIPage); } @PostMapping("/add") @ApiOperation("æ·»å åæº") @Log(title = "åæºç®¡ç-æ·»å åæº", businessType = BusinessType.INSERT) public AjaxResult add(@RequestBody BusinessOpportunity businessOpportunity) { return businessOpportunityService.save(businessOpportunity) ? success() : error(); @Transactional(rollbackFor = Exception.class) public AjaxResult add(@RequestBody BusinessOpportunity businessOpportunity) throws Exception{ businessOpportunityService.save(businessOpportunity); BusinessDescription businessDescription = new BusinessDescription(); BeanUtils.copyProperties(businessOpportunity, businessDescription); businessDescription.setBusinessOpportunityId(businessOpportunity.getId()); // è¿ç§»ä¸´æ¶æä»¶å°æ£å¼æä»¶ commonFileService.migrateTempFilesToFormal(businessOpportunity.getId(), businessOpportunity.getTempFileIds()); return BusinessDescriptionMapper.insert(businessDescription) > 0 ? success() : error(); } @PostMapping("/addDescription") @ApiOperation("æ·»å åæºæè¿°") @Log(title = "åæºç®¡ç-æ·»å åæºæè¿°", businessType = BusinessType.INSERT) public AjaxResult addDescription(@RequestBody BusinessDescription businessDescription) throws Exception{ // è¿ç§»ä¸´æ¶æä»¶å°æ£å¼æä»¶ commonFileService.migrateTempFilesToFormal(businessDescription.getBusinessOpportunityId(), businessDescription.getTempFileIds()); return BusinessDescriptionMapper.insert(businessDescription) > 0 ? success() : error(); } @PostMapping("/update") @ApiOperation("ä¿®æ¹åæº") @Log(title = "åæºç®¡ç-ä¿®æ¹åæº", businessType = BusinessType.UPDATE) public AjaxResult update(@RequestBody BusinessOpportunity businessOpportunity) { public AjaxResult update(@RequestBody BusinessOpportunity businessOpportunity) throws Exception{ // è¿ç§»ä¸´æ¶æä»¶å°æ£å¼æä»¶ commonFileService.migrateTempFilesToFormal(businessOpportunity.getId(), businessOpportunity.getTempFileIds()); return businessOpportunityService.updateById(businessOpportunity) ? success() : error(); } src/main/java/com/ruoyi/sales/controller/CommonFileController.java
@@ -33,9 +33,5 @@ return toAjax(commonFileService.delCommonFileByIds(ids)); } public void migrateTempFilesToFormal(Long businessId, List<String> tempFileIds) throws IOException{ } } src/main/java/com/ruoyi/sales/mapper/BusinessDescriptionMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,11 @@ package com.ruoyi.sales.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.sales.pojo.BusinessDescription; /** * @author :yys * @date : 2025/12/12 11:38 */ public interface BusinessDescriptionMapper extends BaseMapper<BusinessDescription> { } src/main/java/com/ruoyi/sales/pojo/BusinessDescription.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,72 @@ package com.ruoyi.sales.pojo; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import java.util.Date; import java.util.List; /** * @author :yys * @date : 2025/12/12 11:36 */ @Data @TableName("business_description") @ApiModel public class BusinessDescription { private static final long serialVersionUID = 1L; @TableField(exist = false) @ApiModelProperty(value = "ä¸´æ¶æä»¶id") private List<String> tempFileIds; /** * åºå· */ @TableId(type = IdType.AUTO) private Long id; @ApiModelProperty(value = "åæºä¸»è¡¨id") private Long businessOpportunityId; @ApiModelProperty(value = "ç¶æ") private String status; @ApiModelProperty(value = "å®¢æ·æè¿°") private String description; @ApiModelProperty(value = "å½å ¥äºº") private String entryPerson; @ApiModelProperty(value = "å½å ¥æ¥æ") @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date entryDate; @ApiModelProperty(value = "å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty(value = "åå»ºç¨æ·") @TableField(fill = FieldFill.INSERT) private Integer createUser; @ApiModelProperty(value = "ä¿®æ¹æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; @ApiModelProperty(value = "ä¿®æ¹ç¨æ·") @TableField(fill = FieldFill.INSERT_UPDATE) private Integer updateUser; @ApiModelProperty(value = "ç§æ·ID") @TableField(fill = FieldFill.INSERT) private Long tenantId; } src/main/java/com/ruoyi/sales/pojo/BusinessOpportunity.java
@@ -10,6 +10,7 @@ import java.time.LocalDateTime; import java.util.Date; import java.util.List; /** * @author :yys @@ -21,6 +22,18 @@ public class BusinessOpportunity extends DateQueryDto { private static final long serialVersionUID = 1L; @TableField(exist = false) @ApiModelProperty(value = "éä»¶") private List<CommonFile> businessCommonFiles; @TableField(exist = false) @ApiModelProperty(value = "ä¸´æ¶æä»¶id") private List<String> tempFileIds; @ApiModelProperty(value = "åæºæè¿°") @TableField(exist = false) private List<BusinessDescription> businessDescription; /** * åºå· */ @@ -36,11 +49,12 @@ @ApiModelProperty(value = "客æ·åç§°") private String customerName; @ApiModelProperty(value = "å®¢æ·æè¿°") @TableField(exist = false) private String description; @ApiModelProperty(value = "åæºæ¥æº") private String businessSource; @ApiModelProperty(value = "å®¢æ·æè¿°") private String description; @ApiModelProperty(value = "å½å ¥äºº") private String entryPerson; src/main/java/com/ruoyi/sales/pojo/CommonFile.java
@@ -1,6 +1,7 @@ package com.ruoyi.sales.pojo; import com.baomidou.mybatisplus.annotation.*; import com.ruoyi.common.enums.FileNameType; import lombok.Data; import java.time.LocalDateTime; @@ -27,9 +28,12 @@ /** æä»¶è·¯å¾ */ private String url; /** å ³è表 */ /** å ³è表类åFileNameType * 1ï¼éå® 2ï¼éè´ 3ï¼å票 4ï¼éè´å°è´¦ 5ï¼è®¡éå¨å ·å°è´¦ 6ï¼è®¡éå¨å ·å°è´¦è®°å½ 7ï¼åå审æ¹èç¹å®¡æ ¸ 8ï¼åå审æ¹ä¸»æ°æ® 9: åæº * */ private Integer type; /** å建æ¶é´ */ @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; src/main/java/com/ruoyi/sales/service/impl/CommonFileServiceImpl.java
@@ -1,5 +1,6 @@ package com.ruoyi.sales.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.other.mapper.TempFileMapper; @@ -38,6 +39,13 @@ @Value("${file.upload-dir}") private String uploadDir; public List<CommonFile> getFileList(Long id,Integer type) { LambdaQueryWrapper<CommonFile> commonFileLambdaQueryWrapper = new LambdaQueryWrapper<>(); commonFileLambdaQueryWrapper.eq(CommonFile::getCommonId, id) .eq(CommonFile::getType, type); return list(commonFileLambdaQueryWrapper); } @Override @@ -122,13 +130,6 @@ Path formalFilePath = formalDirPath.resolve(formalFilename); try { // æ§è¡æä»¶è¿ç§»ï¼ä½¿ç¨ååæä½ç¡®ä¿å®å ¨æ§ï¼ // Files.move( // Paths.get(tempFile.getTempPath()), // formalFilePath, // StandardCopyOption.REPLACE_EXISTING, // StandardCopyOption.ATOMIC_MOVE // ); // ååç§»å¨å¤±è´¥ï¼ä½¿ç¨å¤å¶+å é¤ Files.copy(Paths.get(tempFile.getTempPath()), formalFilePath, StandardCopyOption.REPLACE_EXISTING); Files.deleteIfExists(Paths.get(tempFile.getTempPath())); @@ -142,6 +143,7 @@ fileRecord.setCreateTime(LocalDateTime.now()); fileRecord.setType(tempFile.getType()); commonFileMapper.insert(fileRecord); tempFileMapper.deleteById(tempFileId); log.info("æä»¶è¿ç§»æå: {} -> {}", tempFile.getTempPath(), formalFilePath); } catch (IOException e) { src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -480,13 +480,6 @@ Path formalFilePath = formalDirPath.resolve(formalFilename); try { // æ§è¡æä»¶è¿ç§»ï¼ä½¿ç¨ååæä½ç¡®ä¿å®å ¨æ§ï¼ // Files.move( // Paths.get(tempFile.getTempPath()), // formalFilePath, // StandardCopyOption.REPLACE_EXISTING, // StandardCopyOption.ATOMIC_MOVE // ); // ååç§»å¨å¤±è´¥ï¼ä½¿ç¨å¤å¶+å é¤ Files.copy(Paths.get(tempFile.getTempPath()), formalFilePath, StandardCopyOption.REPLACE_EXISTING); Files.deleteIfExists(Paths.get(tempFile.getTempPath()));