| src/main/java/com/ruoyi/common/enums/StockQualifiedRecordTypeEnum.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/device/controller/DeviceMaintenanceFileController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/device/mapper/DeviceMaintenanceFileMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/device/pojo/DeviceMaintenanceFile.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/device/service/DeviceMaintenanceFileService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceFileServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/service/ShippingInfoService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/common/enums/StockQualifiedRecordTypeEnum.java
@@ -12,7 +12,8 @@ DEFECTIVE_PASS("6", "ä¸åæ ¼å¤ç-è®©æ¥æ¾è¡"), PURCHASE_STOCK_IN("7", "éè´-å ¥åº"), SALE_STOCK_OUT("8", "éå®-åºåº"), QUALITYINSPECT_STOCK_IN("11", "è´¨æ£-åæ ¼å ¥åº"); QUALITYINSPECT_STOCK_IN("11", "è´¨æ£-åæ ¼å ¥åº"), SALE_SHIP_STOCK_OUT("11", "éå®-åè´§åºåº"); private final String code; private final String value; @@ -22,4 +23,4 @@ this.value = value; } } } src/main/java/com/ruoyi/device/controller/DeviceMaintenanceFileController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,68 @@ package com.ruoyi.device.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.device.pojo.DeviceMaintenanceFile; import com.ruoyi.device.service.DeviceMaintenanceFileService; import com.ruoyi.framework.web.domain.AjaxResult; import io.swagger.annotations.Api; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * <p> * 设å¤ä¿å »éä»¶ å端æ§å¶å¨ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-27 09:48:09 */ @RestController @RequestMapping("/maintenanceTaskFile") @Api(tags = "设å¤ä¿å »éä»¶") public class DeviceMaintenanceFileController { @Resource private DeviceMaintenanceFileService deviceMaintenanceFileService; /** * æ°å¢ * @param deviceMaintenanceFile * @return */ @PostMapping("/add") public AjaxResult add(@RequestBody DeviceMaintenanceFile deviceMaintenanceFile) { return AjaxResult.success(deviceMaintenanceFileService.save(deviceMaintenanceFile)); } /** * å é¤ * @param ids * @return */ @DeleteMapping("/del") public AjaxResult delQualityUnqualified(@RequestBody List<Integer> ids) { if(CollectionUtils.isEmpty(ids)){ return AjaxResult.error("è¯·éæ©è³å°ä¸æ¡æ°æ®"); } //å 餿£éªéä»¶ return AjaxResult.success(deviceMaintenanceFileService.removeBatchByIds(ids)); } /** *å页æ¥è¯¢ * @param page * @param deviceMaintenanceFile * @return */ @GetMapping("/listPage") public AjaxResult qualityInspectFileListPage(Page page, DeviceMaintenanceFile deviceMaintenanceFile) { return AjaxResult.success(deviceMaintenanceFileService.page(page, Wrappers.<DeviceMaintenanceFile>lambdaQuery().eq(DeviceMaintenanceFile::getDeviceMaintenanceId,deviceMaintenanceFile.getDeviceMaintenanceId()))); } } src/main/java/com/ruoyi/device/mapper/DeviceMaintenanceFileMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.ruoyi.device.mapper; import com.ruoyi.device.pojo.DeviceMaintenanceFile; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; /** * <p> * 设å¤ä¿å »éä»¶ Mapper æ¥å£ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-27 09:48:09 */ @Mapper public interface DeviceMaintenanceFileMapper extends BaseMapper<DeviceMaintenanceFile> { } src/main/java/com/ruoyi/device/pojo/DeviceMaintenanceFile.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,65 @@ package com.ruoyi.device.pojo; import com.baomidou.mybatisplus.annotation.FieldFill; 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 java.io.Serializable; import java.time.LocalDateTime; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; /** * <p> * 设å¤ä¿å »éä»¶ * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-27 09:48:09 */ @Getter @Setter @TableName("device_maintenance_file") @ApiModel(value = "DeviceMaintenanceFile对象", description = "设å¤ä¿å »è®°å½éä»¶") public class DeviceMaintenanceFile implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty("æä»¶åç§°") private String name; @ApiModelProperty("æä»¶è·¯å¾") private String url; @ApiModelProperty("æä»¶å¤§å°") private Integer fileSize; @ApiModelProperty("设å¤ä¿å »è®°å½ID") private Integer deviceMaintenanceId; @ApiModelProperty("å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty("åå»ºç¨æ·") @TableField(fill = FieldFill.INSERT) private Long createUser; @ApiModelProperty("ä¿®æ¹æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; @ApiModelProperty("ä¿®æ¹ç¨æ·") @TableField(fill = FieldFill.INSERT_UPDATE) private Long updateUser; @ApiModelProperty("ç§æ·ID") @TableField(fill = FieldFill.INSERT) private Long tenantId; } src/main/java/com/ruoyi/device/service/DeviceMaintenanceFileService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.device.service; import com.ruoyi.device.pojo.DeviceMaintenanceFile; import com.baomidou.mybatisplus.extension.service.IService; /** * <p> * 设å¤ä¿å »éä»¶ æå¡ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-27 09:48:09 */ public interface DeviceMaintenanceFileService extends IService<DeviceMaintenanceFile> { } src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceFileServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.ruoyi.device.service.impl; import com.ruoyi.device.mapper.DeviceMaintenanceFileMapper; import com.ruoyi.device.pojo.DeviceMaintenanceFile; import com.ruoyi.device.service.DeviceMaintenanceFileService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; /** * <p> * 设å¤ä¿å »éä»¶ æå¡å®ç°ç±» * </p> * * @author è¯å¯¼è½¯ä»¶ï¼æ±èï¼æéå ¬å¸ * @since 2026-01-27 09:48:09 */ @Service public class DeviceMaintenanceFileServiceImpl extends ServiceImpl<DeviceMaintenanceFileMapper, DeviceMaintenanceFile> implements DeviceMaintenanceFileService { } src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -16,6 +16,7 @@ import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.other.service.impl.TempFileServiceImpl; import com.ruoyi.procurementrecord.utils.StockUtils; import com.ruoyi.sales.dto.ShippingInfoDto; import com.ruoyi.sales.mapper.ShipmentApprovalMapper; import com.ruoyi.sales.mapper.ShippingInfoMapper; @@ -50,19 +51,14 @@ @Autowired private ShippingInfoService shippingInfoService; @Autowired private ShipmentApprovalMapper shipmentApprovalMapper; @Autowired private ISalesLedgerProductService salesLedgerProductService; @Autowired private TempFileServiceImpl tempFileService; @Autowired private CommonFileServiceImpl commonFileService; @Autowired private ApproveProcessServiceImpl approveProcessService; @Autowired private StockUtils stockUtils; @GetMapping("/listPage") @@ -100,20 +96,9 @@ @Transactional(rollbackFor = Exception.class) @Log(title = "åè´§ä¿¡æ¯ç®¡ç", businessType = BusinessType.UPDATE) public AjaxResult deductStock(@RequestBody ShippingInfoDto req) throws IOException { ShippingInfo byId = shippingInfoService.getById(req.getId()); if (byId == null) { return AjaxResult.error("åè´§ä¿¡æ¯ä¸åå¨"); } byId.setExpressNumber(req.getExpressNumber()); byId.setExpressCompany(req.getExpressCompany()); byId.setStatus("å·²åè´§"); byId.setShippingCarNumber(req.getShippingCarNumber()); boolean update = shippingInfoService.updateById(req); // è¿ç§»æä»¶ if(CollectionUtils.isNotEmpty(req.getTempFileIds())){ tempFileService.migrateTempFilesToFormal(req.getId(), req.getTempFileIds(), FileNameType.SHIP.getValue()); } return update ? AjaxResult.success() : AjaxResult.error(); return shippingInfoService.deductStock( req) ? AjaxResult.success() : AjaxResult.error(); } @PostMapping("/update") @@ -134,9 +119,8 @@ @Transactional(rollbackFor = Exception.class) @Log(title = "åè´§ä¿¡æ¯ç®¡ç", businessType = BusinessType.DELETE) public AjaxResult delete(@RequestBody List<Long> ids) { commonFileService.deleteByBusinessIds(ids, FileNameType.SHIP.getValue()); boolean delete = shippingInfoService.removeBatchByIds(ids); return delete ? AjaxResult.success("å 餿å") : AjaxResult.error("å é¤å¤±è´¥"); return shippingInfoService.delete(ids) ? AjaxResult.success("å 餿å") : AjaxResult.error("å é¤å¤±è´¥"); } @Autowired src/main/java/com/ruoyi/sales/service/ShippingInfoService.java
@@ -3,7 +3,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.sales.dto.ShippingInfoDto; import com.ruoyi.sales.pojo.ShippingInfo; import java.io.IOException; import java.util.List; /** * @author :yys @@ -11,4 +15,8 @@ */ public interface ShippingInfoService extends IService<ShippingInfo>{ IPage<ShippingInfo> listPage(Page page, ShippingInfo req); boolean deductStock(ShippingInfoDto req) throws IOException; boolean delete(List<Long> ids); } src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -3,12 +3,25 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.enums.FileNameType; import com.ruoyi.common.enums.StockQualifiedRecordTypeEnum; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.other.service.impl.TempFileServiceImpl; import com.ruoyi.procurementrecord.utils.StockUtils; import com.ruoyi.sales.dto.ShippingInfoDto; import com.ruoyi.sales.mapper.SalesLedgerProductMapper; import com.ruoyi.sales.mapper.ShippingInfoMapper; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.pojo.ShippingInfo; import com.ruoyi.sales.service.ICommonFileService; import com.ruoyi.sales.service.ShippingInfoService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.IOException; import java.util.List; /** * @author :yys @@ -21,10 +34,50 @@ @Autowired private ShippingInfoMapper shippingInfoMapper; @Autowired private TempFileServiceImpl tempFileService; @Autowired private SalesLedgerProductMapper salesLedgerProductMapper; @Autowired private StockUtils stockUtils; @Autowired private CommonFileServiceImpl commonFileService; @Override public IPage<ShippingInfo> listPage(Page page, ShippingInfo req) { IPage<ShippingInfo> listPage = shippingInfoMapper.listPage(page, req); return listPage; } @Override public boolean deductStock(ShippingInfoDto req) throws IOException { ShippingInfo byId = this.getById(req.getId()); if (byId == null) { throw new RuntimeException("åè´§ä¿¡æ¯ä¸åå¨"); } byId.setExpressNumber(req.getExpressNumber()); byId.setExpressCompany(req.getExpressCompany()); byId.setStatus("å·²åè´§"); byId.setShippingCarNumber(req.getShippingCarNumber()); boolean update = this.updateById(req); //æ£ååºå SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(req.getSalesLedgerProductId()); stockUtils.substractStock(salesLedgerProduct.getProductModelId(), salesLedgerProduct.getQuantity(), StockQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode(), req.getId()); // è¿ç§»æä»¶ if(CollectionUtils.isNotEmpty(req.getTempFileIds())){ tempFileService.migrateTempFilesToFormal(req.getId(), req.getTempFileIds(), FileNameType.SHIP.getValue()); } return update ; } @Override public boolean delete(List<Long> ids) { commonFileService.deleteByBusinessIds(ids, FileNameType.SHIP.getValue()); for (Long id : ids) { stockUtils.deleteStockRecord(id, StockQualifiedRecordTypeEnum.SALE_SHIP_STOCK_OUT.getCode()); } boolean delete = this.removeBatchByIds(ids); return delete; } }