src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
@@ -157,7 +157,14 @@ * å建æ¶é´ */ private LocalDateTime createTime; /** * è®¾å¤æ¥ä¿®id */ private Long deviceRepairId; /** * æ¥ä¿®éé¢ */ private BigDecimal maintenancePrice; private static final long serialVersionUID = 1L; src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -10,6 +10,8 @@ import com.ruoyi.approve.service.IApproveNodeService; import com.ruoyi.common.enums.FileNameType; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.device.mapper.DeviceRepairMapper; import com.ruoyi.device.pojo.DeviceRepair; import com.ruoyi.other.service.impl.TempFileServiceImpl; import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.mapper.SysUserMapper; @@ -43,6 +45,9 @@ @Autowired private CommonFileMapper fileMapper; @Autowired private DeviceRepairMapper deviceRepairMapper; public ApproveProcess getApproveById(String id) { @@ -135,11 +140,21 @@ approveProcess.setApproveUserCurrentId(approveNode1.getApproveNodeUserId()); approveProcess.setApproveUserCurrentName(approveNode1.getApproveNodeUser()); } if (approveProcess.getApproveStatus() != 1){ if(approveProcess.getApproveStatus().equals(2) || approveProcess.getApproveStatus().equals(3) || approveProcess.getApproveStatus().equals(4)){ approveProcess.setApproveOverTime(new Date()); } approveProcessMapper.updateById(approveProcess); DeviceRepair deviceRepair = deviceRepairMapper.selectById(approveProcess.getDeviceRepairId()); if(deviceRepair == null) throw new RuntimeException("è®¾å¤æ¥ä¿®ä¸åå¨"); if(approveProcess.getApproveStatus().equals(2)){ // åæ deviceRepair.setStatus(1); }else if(approveProcess.getApproveStatus().equals(3)){ // æç» deviceRepair.setStatus(2); } deviceRepairMapper.updateById(deviceRepair); // ç»å®éä»¶ if(!CollectionUtils.isEmpty(approveNode.getTempFileIds()) && approveNode.getApproveNodeStatus() == 1){ tempFileService.migrateTempFilesToFormal(approveNode.getId(), approveNode.getTempFileIds(), FileNameType.ApproveNode.getValue()); src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -74,16 +74,14 @@ if(CollectionUtils.isEmpty(sysUsers)) throw new RuntimeException("å®¡æ ¸ç¨æ·ä¸åå¨"); if(sysDept == null) throw new RuntimeException("é¨é¨ä¸åå¨"); if(sysUser == null) throw new RuntimeException("ç³è¯·äººä¸åå¨"); // String today = LocalDate.now().format(DATE_FORMAT); String approve_process = OrderUtils.countTodayByCreateTime(approveProcessMapper, ""); // Long approveId = dailyRedisCounter.incrementAndGetByDb(); // String formattedCount = String.format("%03d", approveId); String today = LocalDate.now().format(DATE_FORMAT); Long approveId = dailyRedisCounter.incrementAndGetByDb(); String formattedCount = String.format("%03d", approveId); //æµç¨ ID // String approveID = today + formattedCount; String approveID = today + formattedCount; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); ApproveProcess approveProcess = new ApproveProcess(); BeanUtils.copyProperties(approveProcessVO, approveProcess); approveProcess.setApproveId(approve_process); approveProcess.setApproveId(approveID); approveProcess.setApproveUser(approveProcessVO.getApproveUser()); approveProcess.setApproveUserName(sysUser.getNickName()); approveProcess.setApproveDeptId(approveProcessVO.getApproveDeptId()); @@ -91,6 +89,8 @@ approveProcess.setApproveUserNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(","))); approveProcess.setApproveTime(StringUtils.isEmpty(approveProcessVO.getApproveTime()) ? null : dateFormat.parse(approveProcessVO.getApproveTime())); approveProcess.setApproveReason(approveProcessVO.getApproveReason()); approveProcess.setDeviceRepairId(approveProcessVO.getDeviceRepairId()); approveProcess.setMaintenancePrice(approveProcessVO.getMaintenancePrice()); approveProcess.setApproveOverTime(null); approveProcess.setApproveStatus(0); approveProcess.setApproveDelete(0); @@ -113,7 +113,7 @@ } save(approveProcess); //åå§å审æ¹èç¹ approveNodeService.initApproveNodes(approveProcessVO.getApproveUserIds(),approve_process,approveProcessVO.getApproveDeptId()); approveNodeService.initApproveNodes(approveProcessVO.getApproveUserIds(),approveID,approveProcessVO.getApproveDeptId()); // éä»¶ç»å® tempFileService.migrateTempFilesToFormal(approveProcess.getId(), approveProcessVO.getTempFileIds(), FileNameType.ApproveProcess.getValue()); } src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java
@@ -14,24 +14,37 @@ @Data public class ApproveProcessVO { /** * ä¸´æ¶æä»¶idå表 */ private List<String> tempFileIds; /** * å®¡æ¹æµç¨id */ private Long id; private String approveId; /** * 审æ¹é¨é¨id */ private Long approveDeptId; private String approveDeptName; /** * å®¡æ¹æ¶é´ */ private String approveTime; /** * ç³è¯·äººid */ // ç³è¯·äºº private Long approveUser; /** * 审æ¹äººidå表 */ // 审æ¹äºº private String approveUserIds; /** * 审æ¹çç± */ private String approveReason; @Excel(name = "å¼å§æ¶é´", dateFormat = "yyyy-MM-dd",width = 30) @@ -54,4 +67,12 @@ * 审æ¹ç±»å */ private Integer approveType; /** * è®¾å¤æ¥ä¿®id */ private Long deviceRepairId; /** * æ¥ä¿®éé¢ */ private BigDecimal maintenancePrice; } src/main/java/com/ruoyi/basic/controller/SupplierManageFileController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,63 @@ package com.ruoyi.basic.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.pojo.SupplierManageFile; import com.ruoyi.basic.service.SupplierManageFileService; import com.ruoyi.framework.web.domain.AjaxResult; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * ä¾åºåéä»¶ */ @RestController @RequestMapping("/basic/supplierManageFile") public class SupplierManageFileController { @Resource private SupplierManageFileService supplierManageFileService; /** * æ°å¢ * @param supplierManageFile * @return */ @PostMapping("/add") public AjaxResult add(@RequestBody SupplierManageFile supplierManageFile) { return AjaxResult.success(supplierManageFileService.save(supplierManageFile)); } /** * å é¤ * @param ids * @return */ @DeleteMapping("/del") public AjaxResult delSupplierManageFile(@RequestBody List<Integer> ids) { if(CollectionUtils.isEmpty(ids)){ return AjaxResult.error("è¯·éæ©è³å°ä¸æ¡æ°æ®"); } //å 餿£éªéä»¶ return AjaxResult.success(supplierManageFileService.removeBatchByIds(ids)); } /** *å页æ¥è¯¢ * @param page * @param supplierManageFile * @return */ @GetMapping("/listPage") public AjaxResult supplierManageFileListPage(Page page, SupplierManageFile supplierManageFile) { return AjaxResult.success(supplierManageFileService.supplierManageFileListPage(page, supplierManageFile)); } } src/main/java/com/ruoyi/basic/mapper/SupplierManageFileMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package com.ruoyi.basic.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.pojo.SupplierManageFile; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @Mapper public interface SupplierManageFileMapper extends BaseMapper<SupplierManageFile> { IPage<SupplierManageFile> supplierManageFileListPage(Page page, @Param("supplierManageFile") SupplierManageFile supplierManageFile); } src/main/java/com/ruoyi/basic/pojo/Customer.java
@@ -31,6 +31,10 @@ */ @Excel(name = "客æ·åç§°") private String customerName; /** 客æ·åç±»ï¼é¶å®å®¢æ·ï¼è¿éåå®¢æ· */ @Excel(name = "客æ·åç±»") private String customerType; /** * 纳ç¨äººè¯å«å· src/main/java/com/ruoyi/basic/pojo/SupplierManage.java
@@ -56,6 +56,9 @@ @JsonFormat(pattern = "yyyy-MM-dd") // @Excel(name = "ç»´æ¤æ¶é´", width = 30, dateFormat = "yyyy-MM-dd") private LocalDate maintainTime; @Excel(name = "æ¯å¦ç½åå") @ApiModelProperty(value = "æ¯å¦ç½ååï¼0æ¯ 1å¦ï¼") private Integer isWhite; @ApiModelProperty(value = "å建æ¶é´") @TableField(fill = FieldFill.INSERT) src/main/java/com/ruoyi/basic/pojo/SupplierManageFile.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,60 @@ package com.ruoyi.basic.pojo; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.time.LocalDateTime; /** * ä¾åºå管ç--éä»¶ * supplier_manage_file */ @TableName(value = "supplier_manage_file") @Data public class SupplierManageFile implements Serializable { private static final long serialVersionUID = 1L; /** * åºå· */ @TableId(type = IdType.AUTO) private Long id; @ApiModelProperty(value = "æä»¶åç§°") private String name; @ApiModelProperty(value = "æä»¶è·¯å¾") private String url; @ApiModelProperty(value = "æä»¶å¤§å°") private int fileSize; @ApiModelProperty(value = "ä¾åºåID") @NotBlank(message = "ä¾åºåidä¸è½ä¸ºç©º!") private Long supplierId; @ApiModelProperty(value = "å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty(value = "ä¿®æ¹æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; @ApiModelProperty(value = "åå»ºç¨æ·") @TableField(fill = FieldFill.INSERT) private Integer createUser; @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/basic/service/SupplierManageFileService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package com.ruoyi.basic.service; 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.basic.pojo.SupplierManageFile; public interface SupplierManageFileService extends IService<SupplierManageFile> { IPage<SupplierManageFile> supplierManageFileListPage(Page page, SupplierManageFile supplierManageFile); } src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -74,9 +74,13 @@ // 2. æå»ºæ¥è¯¢æ¡ä»¶ï¼å¢å¼ºç©ºå¼å®å ¨ï¼ LambdaQueryWrapper<Customer> queryWrapper = new LambdaQueryWrapper<>(); String customerName = customer.getCustomerName(); String customerType = customer.getCustomerType(); if (StringUtils.isNotBlank(customerName)) { queryWrapper.like(Customer::getCustomerName, customerName); } if (StringUtils.isNotBlank(customerType)) { queryWrapper.like(Customer::getCustomerType, customerType); } // 3. æ§è¡å页æ¥è¯¢ï¼ä¿çåé¡µå æ°æ®ï¼ IPage<Customer> customerPage = customerMapper.selectPage(page, queryWrapper); src/main/java/com/ruoyi/basic/service/impl/SupplierManageFileServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ package com.ruoyi.basic.service.impl; 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.basic.mapper.SupplierManageFileMapper; import com.ruoyi.basic.pojo.SupplierManageFile; import com.ruoyi.basic.service.SupplierManageFileService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @AllArgsConstructor @Service public class SupplierManageFileServiceImpl extends ServiceImpl<SupplierManageFileMapper, SupplierManageFile> implements SupplierManageFileService { private SupplierManageFileMapper supplierManageFileMapper; @Override public IPage<SupplierManageFile> supplierManageFileListPage(Page page, SupplierManageFile supplierManageFile) { return supplierManageFileMapper.supplierManageFileListPage(page, supplierManageFile); } } src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
@@ -1,21 +1,33 @@ package com.ruoyi.device.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.approve.pojo.ApproveProcess; import com.ruoyi.approve.service.IApproveProcessService; import com.ruoyi.approve.vo.ApproveProcessVO; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.device.dto.DeviceRepairDto; import com.ruoyi.device.pojo.DeviceLedger; import com.ruoyi.device.pojo.DeviceRepair; import com.ruoyi.device.service.IDeviceLedgerService; import com.ruoyi.device.service.IDeviceRepairService; import com.ruoyi.framework.security.LoginUser; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.project.system.domain.SysDept; import com.ruoyi.project.system.domain.SysUser; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.List; @Api(tags = "è®¾å¤æ¥ä¿®ç®¡ç") @RequestMapping("/device/repair") @@ -27,6 +39,8 @@ @Autowired private IDeviceLedgerService deviceLedgerService; @Autowired private IApproveProcessService approveProcessService; @ApiModelProperty("è®¾å¤æ¥ä¿®å表") @GetMapping("/page") @@ -35,9 +49,40 @@ } @PostMapping() @Transactional(rollbackFor = Exception.class) @ApiModelProperty("æ·»å è®¾å¤æ¥ä¿®") public AjaxResult add( @RequestBody DeviceRepair deviceRepair) { return deviceRepairService.saveDeviceRepair(deviceRepair); public AjaxResult add( @RequestBody DeviceRepair deviceRepair) throws Exception { deviceRepairService.saveDeviceRepair(deviceRepair); ApproveProcessVO approveProcessVO = new ApproveProcessVO(); LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser user = loginUser.getUser(); // è·åå½åç»å½å ¬å¸ Long tenantId = loginUser.getTenantId(); if(null != tenantId){ LambdaQueryWrapper<DeviceRepair> QueryWrapper = new LambdaQueryWrapper<>(); QueryWrapper.eq(DeviceRepair::getDeviceLedgerId,deviceRepair.getDeviceLedgerId()) .eq(DeviceRepair::getRemark,deviceRepair.getRemark()) .eq(DeviceRepair::getDeviceName,deviceRepair.getDeviceName()) .eq(DeviceRepair::getApproverId,deviceRepair.getApproverId()) .eq(DeviceRepair::getRepairTime,deviceRepair.getRepairTime()); DeviceRepair one = deviceRepairService.getOne(QueryWrapper); if(ObjectUtils.isEmpty(one)){ return AjaxResult.error("è®¾å¤æ¥ä¿®ä¸åå¨"); } //è·åå½åç»å½é¨é¨id approveProcessVO.setApproveDeptId(tenantId); //è·åå½åç»å½ç¨æ·id approveProcessVO.setApproveUser(loginUser.getUserId()); //è·åå½åæ¶é´ approveProcessVO.setApproveTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); approveProcessVO.setApproveType(4); approveProcessVO.setApproveUserIds(deviceRepair.getApproverId().toString()); approveProcessVO.setApproveReason(deviceRepair.getRemark()); approveProcessVO.setDeviceRepairId(one.getId()); approveProcessVO.setMaintenancePrice(deviceRepair.getMaintenancePrice()); approveProcessService.addApprove(approveProcessVO); } return AjaxResult.success(); } @ApiModelProperty("æ ¹æ®idæ¥è¯¢è®¾å¤æ¥ä¿®") @@ -62,6 +107,17 @@ @DeleteMapping("/{ids}") @ApiModelProperty("å é¤è®¾å¤æ¥ä¿®") public AjaxResult delete(@PathVariable("ids") Long[] ids) { LambdaQueryWrapper<ApproveProcess> QueryWrapper = new LambdaQueryWrapper<>(); QueryWrapper.in(ApproveProcess::getDeviceRepairId,ids); List<ApproveProcess> approveProcessList = approveProcessService.list(QueryWrapper); if(!approveProcessList.isEmpty()){ approveProcessList.forEach(approveProcess -> { if (approveProcess.getApproveStatus() != 0){ //æåºå¼å¸¸ throw new RuntimeException("ææ£å¨å¤çä¸çå®¡æ¹æµç¨ï¼ä¸è½å é¤"); } }); } boolean b = deviceRepairService.removeBatchByIds(Arrays.asList(ids)); if (!b) { return AjaxResult.error("å é¤å¤±è´¥"); src/main/java/com/ruoyi/device/dto/DeviceRepairDto.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -68,7 +69,7 @@ @ApiModelProperty("ç§æ·id") @TableField(fill = FieldFill.INSERT) private Long tenantId; @ApiModelProperty("ç»´ä¿®ä»·æ ¼") private String maintenancePrice; } src/main/java/com/ruoyi/device/pojo/DeviceRepair.java
@@ -4,10 +4,9 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.Api; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import nonapi.io.github.classgraph.json.Id; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; @@ -24,9 +23,9 @@ @ApiModelProperty("设å¤å°è´¦id") private Long deviceLedgerId; @ApiModelProperty("设å¤åç§°") private String deviceName; @ApiModelProperty("设å¤åå·") private String deviceModel; @ApiModelProperty("æ¥ä¿®æ¶é´") @@ -49,7 +48,7 @@ @ApiModelProperty("ç»´ä¿®ç»æ") private String maintenanceResult; @ApiModelProperty("ç¶æ 0 å¾ ç»´ä¿® 1å®ç» 2 失败") @ApiModelProperty("ç¶æ:0å®¡æ ¸ä¸,1å®¡æ ¸éè¿,2å®¡æ ¸å¤±è´¥,3ç»´ä¿®ä¸,4ç»´ä¿®éè¿,5维修失败") private Integer status; @ApiModelProperty("å建æ¶é´") @@ -75,6 +74,8 @@ @ApiModelProperty("ç§æ·id") @TableField(fill = FieldFill.INSERT) private Long tenantId; @ApiModelProperty("ç»´ä¿®ä»·æ ¼") private BigDecimal maintenancePrice; @ApiModelProperty("审æ¹äººid") private Integer approverId; } src/main/java/com/ruoyi/procurementrecord/controller/ProcurementExceptionRecordController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,46 @@ package com.ruoyi.procurementrecord.controller; import com.baomidou.mybatisplus.core.metadata.IPage; 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.procurementrecord.dto.*; import com.ruoyi.procurementrecord.mapper.ProcurementExceptionRecordMapper; import com.ruoyi.procurementrecord.pojo.ProcurementExceptionRecord; import com.ruoyi.procurementrecord.service.ProcurementRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * @author :yys * @date : 2025/7/7 14:32 */ @RestController @Api(tags = "éè´å¼å¸¸è®°å½") @RequestMapping("/procurementExceptionRecord") public class ProcurementExceptionRecordController extends BaseController { @Autowired private ProcurementExceptionRecordMapper procurementExceptionRecordMapper; @PostMapping("/add") @Transactional public AjaxResult add(@RequestBody ProcurementExceptionRecord procurementExceptionRecord) { return AjaxResult.success(procurementExceptionRecordMapper.insert(procurementExceptionRecord)); } @PostMapping("/update") @Transactional public AjaxResult updatePro(@RequestBody ProcurementExceptionRecord procurementExceptionRecord) { return AjaxResult.success(procurementExceptionRecordMapper.updateById(procurementExceptionRecord)); } } src/main/java/com/ruoyi/procurementrecord/controller/ProcurementRecordController.java
@@ -119,7 +119,11 @@ IPage<ProcurementPageDto> result = procurementRecordService.listPage(page, procurementDto); return AjaxResult.success(result); } @GetMapping("/listReport") @ApiOperation(value = "æ¥è¯¢åºåå¾è¡¨æ°æ®") public AjaxResult listReport() { return AjaxResult.success(procurementRecordService.getReportList()); } @GetMapping("/listPageByProduction") @Log(title = "çäº§å ¥åº-å ¥åºç®¡ç-å ¥åºæ¥è¯¢", businessType = BusinessType.OTHER) @ApiOperation(value = "å ¥åºæ¥è¯¢") src/main/java/com/ruoyi/procurementrecord/dto/InventoryInformationDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.ruoyi.procurementrecord.dto; import lombok.Data; import java.math.BigDecimal; /** * åè´§æ ¸ç®ä¿¡æ¯Dto-èµäº§æ¥è¡¨ */ @Data public class InventoryInformationDto { /** * æ»åºåæ°é */ private Integer totalInventoryCount; /** * æ»åºåéé¢ */ private BigDecimal totalInventoryValue; /** * åºåå卿°é */ private Integer inventoryChangeCount; /** * åºååå¨éé¢ */ private BigDecimal inventoryChangeValue; } src/main/java/com/ruoyi/procurementrecord/dto/ProcurementAddDto.java
@@ -21,5 +21,6 @@ private Integer type; private String typeName; private Integer purchaseLedgerId; } src/main/java/com/ruoyi/procurementrecord/mapper/ProcurementExceptionRecordMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,9 @@ package com.ruoyi.procurementrecord.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.procurementrecord.pojo.ProcurementExceptionRecord; public interface ProcurementExceptionRecordMapper extends BaseMapper<ProcurementExceptionRecord> { } src/main/java/com/ruoyi/procurementrecord/service/ProcurementRecordService.java
@@ -57,4 +57,5 @@ int updateManagementByCustom(ProcurementManagementUpdateDto procurementDto); BigDecimal getProcurementAmount(Long salesProductId); InventoryInformationDto getReportList(); } src/main/java/com/ruoyi/procurementrecord/service/impl/ProcurementRecordServiceImpl.java
@@ -416,6 +416,68 @@ } @Override public InventoryInformationDto getReportList() { InventoryInformationDto inventoryInformationDto = new InventoryInformationDto(); IPage<ProcurementPageDto> procurementPageDtoIPage = this.listPage(new Page<>(1, -1), new ProcurementPageDto()); if(CollectionUtils.isEmpty(procurementPageDtoIPage.getRecords())){ return inventoryInformationDto; } // è®¡ç®æ»åºåæ°é inventoryInformationDto.setTotalInventoryCount(procurementPageDtoIPage.getRecords().stream() .map(ProcurementPageDto::getInboundNum0) .reduce(BigDecimal.ZERO, BigDecimal::add) .intValue()); // è®¡ç®æ»åºåéé¢-ProcurementPageDtoéæ¯ä¸ªå¯¹è±¡çinboundNum0å¼åtaxInclusiveUnitPriceçä¹ç§¯ï¼ä¹åç¸å å¾å°æ»åºåéé¢ BigDecimal totalInventoryValue = procurementPageDtoIPage.getRecords().stream() // è¿æ»¤ç©ºå¯¹è±¡ï¼é¿å NPE .filter(Objects::nonNull) // å¤çæ¯ä¸ªå¯¹è±¡ç空å¼ï¼null转为0 .map(dto -> { // å ¥åºæ°éï¼null â 0 BigDecimal inboundNum0 = Optional.ofNullable(dto.getInboundNum0()).orElse(BigDecimal.ZERO); // å«ç¨åä»·ï¼null â 0 BigDecimal taxInclusiveUnitPrice = Optional.ofNullable(dto.getTaxInclusiveUnitPrice()).orElse(BigDecimal.ZERO); // 计ç®å个对象çåºåéé¢ï¼æ°é à å«ç¨åä»· return inboundNum0.multiply(taxInclusiveUnitPrice); }) // ææå个é颿±åï¼åå§å¼ä¸º0 .reduce(BigDecimal.ZERO, BigDecimal::add); // 设置æ»åºåéé¢ inventoryInformationDto.setTotalInventoryValue(totalInventoryValue); // 计ç®åºåå卿°é-ProcurementPageDtoéæ¯ä¸ªå¯¹è±¡çinboundNumå¼åinboundNum0å¼çå·®å¼ï¼ä¹åç¸å å¾å°åºåå卿°é inventoryInformationDto.setInventoryChangeCount(procurementPageDtoIPage.getRecords().stream() // è¿æ»¤ç©ºå¯¹è±¡ï¼é¿å NPE .filter(Objects::nonNull) // å¤çæ¯ä¸ªå¯¹è±¡ç空å¼ï¼null转为0 .map(dto -> { // å ¥åºæ°éï¼null â 0 BigDecimal inboundNum = Optional.ofNullable(dto.getInboundNum()).orElse(BigDecimal.ZERO); // å¾ åºåºæ°éï¼null â 0 BigDecimal inboundNum0 = Optional.ofNullable(dto.getInboundNum0()).orElse(BigDecimal.ZERO); // 计ç®å个对象çåºåå卿°éï¼æ°é - å¾ åºåºæ°é return inboundNum.subtract(inboundNum0); }) // ææå个å卿°éæ±åï¼åå§å¼ä¸º0 .reduce(BigDecimal.ZERO, BigDecimal::add) .intValue()); // 计ç®åºååå¨éé¢ProcurementPageDtoéæ¯ä¸ªå¯¹è±¡çtaxInclusiveTotalPriceå¼çå BigDecimal inventoryChangeValue = procurementPageDtoIPage.getRecords().stream() // è¿æ»¤ç©ºå¯¹è±¡ï¼é¿å NPE .filter(Objects::nonNull) // å¤çæ¯ä¸ªå¯¹è±¡ç空å¼ï¼null转为0 .map(dto -> { // å«ç¨æ»ä»·ï¼null â 0 BigDecimal taxInclusiveTotalPrice = Optional.ofNullable(dto.getTaxInclusiveTotalPrice()).orElse(BigDecimal.ZERO); // 计ç®å个对象çå ¥åºåºåéé¢ï¼å«ç¨æ»ä»· return taxInclusiveTotalPrice; }) // ææå个åå¨é颿±åï¼åå§å¼ä¸º0 .reduce(BigDecimal.ZERO, BigDecimal::add); // 设置åºååå¨éé¢ inventoryInformationDto.setInventoryChangeValue(inventoryChangeValue.subtract(totalInventoryValue)); return inventoryInformationDto; } @Override public IPage<ProcurementPageDto> listPageByProduction(Page page, ProcurementPageDto procurementDto) { IPage<ProcurementPageDto> procurementPageDtoIPage = procurementRecordMapper.listPageByProduction(page, procurementDto); List<ProcurementPageDto> procurementPageDtos = procurementPageDtoIPage.getRecords(); src/main/java/com/ruoyi/purchase/controller/PurchaseLedgerController.java
@@ -1,5 +1,6 @@ package com.ruoyi.purchase.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.poi.ExcelUtil; @@ -11,6 +12,8 @@ import com.ruoyi.purchase.dto.PurchaseLedgerDto; import com.ruoyi.purchase.pojo.PurchaseLedger; import com.ruoyi.purchase.service.IPurchaseLedgerService; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.service.ISalesLedgerProductService; import com.ruoyi.sales.service.ISalesLedgerService; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; @@ -19,6 +22,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; import java.util.stream.Collectors; /** * éè´å°è´¦Controller @@ -33,6 +37,7 @@ private IPurchaseLedgerService purchaseLedgerService; private ISalesLedgerService salesLedgerService; private ISalesLedgerProductService salesLedgerProductService; /** * æ¥è¯¢éè´å°è´¦å表 @@ -77,7 +82,41 @@ public AjaxResult addOrEditPurchase(@RequestBody PurchaseLedgerDto purchaseLedgerDto) throws IOException { return toAjax(purchaseLedgerService.addOrEditPurchase(purchaseLedgerDto)); } /** * æ°å¢éè´æ¨¡æ¿ */ @PostMapping("/addPurchaseTemplate") public AjaxResult addPurchaseTemplate(@RequestBody PurchaseLedgerDto purchaseLedgerDto) throws IOException { return toAjax(purchaseLedgerService.addPurchaseTemplate(purchaseLedgerDto)); } /** * æ¥è¯¢éè´æ¨¡æ¿ */ @GetMapping("/getPurchaseTemplateList") public AjaxResult getPurchaseTemplateList() { PurchaseLedgerDto purchaseLedgerDto = new PurchaseLedgerDto(); purchaseLedgerDto.setApprovalStatus(3); IPage<PurchaseLedgerDto> purchaseLedgerDtoIPage = purchaseLedgerService.selectPurchaseLedgerListPage(new Page(1, -1), purchaseLedgerDto); List<PurchaseLedgerDto> purchaseLedgers = purchaseLedgerDtoIPage.getRecords(); purchaseLedgers.forEach(purchaseLedgerDto1 -> { LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedgerDto1.getId()) .eq(SalesLedgerProduct::getType, 2); List<SalesLedgerProduct> list = salesLedgerProductService.list(queryWrapper); if (!list.isEmpty()) { purchaseLedgerDto1.setProductData(list); } }); return AjaxResult.success(purchaseLedgers); } /** * ä¿®æ¹éè´å°è´¦å®¡æ¹ç¶æ */ @PostMapping("/updateApprovalStatus") public AjaxResult addOrEditPurchase(@RequestBody PurchaseLedger purchaseLedger){ return toAjax(purchaseLedgerService.updateById(purchaseLedger)); } /** * æ¥è¯¢éè´å°è´¦å产åç¶åå表 */ @@ -149,7 +188,10 @@ */ @GetMapping("/listPage") public AjaxResult listPage(Page page, PurchaseLedgerDto purchaseLedger) { return AjaxResult.success(purchaseLedgerService.selectPurchaseLedgerListPage(page ,purchaseLedger)); IPage<PurchaseLedgerDto> purchaseLedgerDtoIPage = purchaseLedgerService.selectPurchaseLedgerListPage(page ,purchaseLedger); //è¿æ»¤æapprovalStatus=3çè®°å½ purchaseLedgerDtoIPage.getRecords().removeIf(purchaseLedgerDto -> purchaseLedgerDto.getApprovalStatus() == 3); return AjaxResult.success(purchaseLedgerDtoIPage); } @ApiOperation("çæéè´åºåå·") src/main/java/com/ruoyi/purchase/dto/PurchaseLedgerDto.java
@@ -40,6 +40,11 @@ */ @Excel(name = "ä¾åºååç§°") private String supplierName; /** * æ¯å¦ç½åå */ @Excel(name = "æ¯å¦ç½åå") private Integer isWhite; /** * å½å ¥äººå§åid @@ -180,5 +185,10 @@ @ApiModelProperty(value = "仿¬¾æ¹å¼") private String paymentMethod; @ApiModelProperty("审æ¹ç¶æ") private Integer approvalStatus; @ApiModelProperty(value = "模æ¿åç§°") private String templateName; @ApiModelProperty(value = "审æ¹äººid") private Integer approverId; } src/main/java/com/ruoyi/purchase/pojo/PurchaseLedger.java
@@ -148,10 +148,14 @@ @TableField(exist = false) private Integer type; @ApiModelProperty(value = "仿¬¾æ¹å¼") private String paymentMethod; @ApiModelProperty("审æ¹ç¶æ") private Integer approvalStatus; @ApiModelProperty(value = "模æ¿åç§°") private String templateName; @ApiModelProperty(value = "审æ¹äººid") private Integer approverId; } src/main/java/com/ruoyi/purchase/service/IPurchaseLedgerService.java
@@ -39,4 +39,6 @@ List<InvoiceRegistrationProduct> getProductBySalesNo(Long id); String getPurchaseNo(); int addPurchaseTemplate(PurchaseLedgerDto purchaseLedgerDto) throws IOException; } src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -122,7 +122,49 @@ } return purchaseLedgerMapper.selectList(queryWrapper); } @Override @Transactional(rollbackFor = Exception.class) public int addPurchaseTemplate(PurchaseLedgerDto purchaseLedgerDto)throws IOException { //å½å ¥äºº SysUser sysUser = userMapper.selectUserById(purchaseLedgerDto.getRecorderId()); SupplierManage supplierManage = supplierManageMapper.selectById(purchaseLedgerDto.getSupplierId()); PurchaseLedger purchaseLedger = new PurchaseLedger(); // BeanUtils.copyProperties(purchaseLedger,purchaseLedgerDto); LoginUser loginUser = SecurityUtils.getLoginUser(); if(ObjectUtils.isNotEmpty(loginUser) && null != loginUser.getTenantId()) { purchaseLedger.setTenantId(loginUser.getTenantId()); } purchaseLedger.setPaymentMethod(purchaseLedgerDto.getPaymentMethod()); purchaseLedger.setRecorderId(purchaseLedgerDto.getRecorderId()); purchaseLedger.setSupplierId(purchaseLedgerDto.getSupplierId()); purchaseLedger.setTemplateName(purchaseLedgerDto.getTemplateName()); // purchaseLedger.setSalesLedgerPId(purchaseLedgerDto.getSalesLedgerId()); purchaseLedger.setApprovalStatus(3); purchaseLedger.setSupplierName(supplierManage.getSupplierName()); purchaseLedger.setRecorderName(sysUser.getNickName()); purchaseLedger.setPhoneNumber(sysUser.getPhonenumber()); purchaseLedger.setPurchaseContractNumber(UUID.randomUUID().toString().replaceAll("-", "")); purchaseLedger.setEntryDate(Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant())); int insert = purchaseLedgerMapper.insert(purchaseLedger); LambdaQueryWrapper<PurchaseLedger> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(PurchaseLedger::getSupplierName, purchaseLedger.getSupplierName()) .eq(PurchaseLedger::getPurchaseContractNumber, purchaseLedger.getPurchaseContractNumber()) .eq(PurchaseLedger::getApprovalStatus,3); PurchaseLedger purchaseLedger1 = purchaseLedgerMapper.selectOne(queryWrapper); if(ObjectUtils.isNotEmpty(purchaseLedgerDto.getProductData())) { // 4. å¤çåè¡¨æ°æ® List<SalesLedgerProduct> salesLedgerProductList = purchaseLedgerDto.getProductData(); salesLedgerProductList.forEach(salesLedgerProduct -> { salesLedgerProduct.setSalesLedgerId(purchaseLedger1.getId()); salesLedgerProduct.setType(2); }); salesLedgerProductList.forEach(salesLedgerProductMapper::insert); } return insert; } @Override @Transactional(rollbackFor = Exception.class) public int addOrEditPurchase(PurchaseLedgerDto purchaseLedgerDto) throws IOException { @@ -169,7 +211,7 @@ PurchaseLedger purchaseLedgerDB = purchaseLedgerMapper.selectById(purchaseLedger.getId()); List<AccountExpense> accountExpenseDBs = accountExpenseService.getByInvoiceNumberList(purchaseLedger.getPurchaseContractNumber()); if (!CollectionUtils.isEmpty(accountExpenseDBs)) { accountExpenseDBs.forEach(accountExpenseDB -> { accountExpenseDBs.forEach(accountExpenseDB ->{ accountExpenseDB.setExpenseDate(purchaseLedgerDB.getEntryDate()); accountExpenseDB.setExpenseType("0"); accountExpenseDB.setSupplierName(purchaseLedgerDB.getSupplierName()); @@ -383,7 +425,7 @@ @Override public int deletePurchaseLedgerByIds(Long[] ids) { if (ids == null || ids.length == 0) { throw new BaseException("请éä¸è³å°ä¸æ¡æ°æ®"); throw new BaseException("请éä¸è³å°ä¸æ¡æ°æ®"); } // æ¹éå é¤å ³èçéè´å°è´¦äº§å LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>(); @@ -392,11 +434,11 @@ salesLedgerProductMapper.delete(queryWrapper); // æ¹éå é¤å ³èçéè´å°è´¦çæ¥ç¥¨ç»è®° LambdaQueryWrapper<TicketRegistration> ticketRegistrationLambdaQueryWrapper = new LambdaQueryWrapper<>(); ticketRegistrationLambdaQueryWrapper.in(TicketRegistration::getPurchaseLedgerId, ids); ticketRegistrationLambdaQueryWrapper.in(TicketRegistration::getSalesLedgerId,ids); ticketRegistrationMapper.delete(ticketRegistrationLambdaQueryWrapper); // æ¹éå é¤å ³èçéè´å°è´¦çæ¥ç¥¨ç»è®°è®°å½ LambdaQueryWrapper<ProductRecord> productRecordLambdaQueryWrapper = new LambdaQueryWrapper<>(); productRecordLambdaQueryWrapper.in(ProductRecord::getPurchaseLedgerId, ids); productRecordLambdaQueryWrapper.in(ProductRecord::getPurchaseLedgerId,ids); productRecordMapper.delete(productRecordLambdaQueryWrapper); // æ¹éå é¤ä»æ¬¾ç»è®° LambdaQueryWrapper<PaymentRegistration> paymentRegistrationLambdaQueryWrapper = new LambdaQueryWrapper<>(); @@ -439,7 +481,7 @@ // 3.æ¥è¯¢ä¸ä¼ æä»¶ LambdaQueryWrapper<CommonFile> salesLedgerFileWrapper = new LambdaQueryWrapper<>(); salesLedgerFileWrapper.eq(CommonFile::getCommonId, purchaseLedger.getId()) .eq(CommonFile::getType, FileNameType.PURCHASE.getValue()); .eq(CommonFile::getType,FileNameType.PURCHASE.getValue()); List<CommonFile> salesLedgerFiles = commonFileMapper.selectList(salesLedgerFileWrapper); // 4. è½¬æ¢ DTO src/main/java/com/ruoyi/sales/controller/ShipmentApprovalController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,77 @@ package com.ruoyi.sales.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.sales.mapper.ShipmentApprovalMapper; import com.ruoyi.sales.mapper.ShippingInfoMapper; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.pojo.ShipmentApproval; import com.ruoyi.sales.pojo.ShippingInfo; import com.ruoyi.sales.service.ISalesLedgerProductService; import com.ruoyi.sales.service.ShipmentApprovalService; import com.ruoyi.sales.service.ShippingInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; @RestController @RequestMapping("/shipmentApproval") @Api(tags = "å货审æ¹ç®¡ç") public class ShipmentApprovalController extends BaseController { @Autowired private ShipmentApprovalService shipmentApprovalService; @Autowired private ShipmentApprovalMapper shipmentApprovalMapper; @Autowired private ISalesLedgerProductService salesLedgerProductService; @GetMapping("/listPage") @ApiOperation("å货审æ¹å表") public AjaxResult listPage(Page page, ShipmentApproval req) { IPage<ShipmentApproval> listPage = shipmentApprovalService.listPage(page,req); return AjaxResult.success(listPage); } @PostMapping("/update") @ApiOperation("å货审æ¹,æ´æ°å货审æ¹ç¶æ") @Transactional(rollbackFor = Exception.class) public AjaxResult update(@RequestBody ShipmentApproval req) { ShipmentApproval shipmentApproval = shipmentApprovalMapper.selectById(req.getId()); if (shipmentApproval == null) { return AjaxResult.error("å货审æ¹ä¸åå¨"); } shipmentApproval.setApproveStatus(req.getApproveStatus()); boolean update = shipmentApprovalService.updateById(shipmentApproval); if(update){ SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(shipmentApproval.getSalesLedgerProductId()); salesLedgerProduct.setApproveStatus(req.getApproveStatus()); salesLedgerProductService.updateById(salesLedgerProduct); } return update ? AjaxResult.success() : AjaxResult.error(); } /** * 导åºåè´§ä¿¡æ¯ç®¡ç */ @PostMapping("/export") @ApiOperation("导åºå货审æ¹") public void export(HttpServletResponse response) { List<ShipmentApproval> list = shipmentApprovalService.list(null); ExcelUtil<ShipmentApproval> util = new ExcelUtil<ShipmentApproval>(ShipmentApproval.class); util.exportExcel(response, list, "å货审æ¹"); } } src/main/java/com/ruoyi/sales/controller/ShippingInfoController.java
@@ -1,5 +1,6 @@ package com.ruoyi.sales.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.poi.ExcelUtil; @@ -7,13 +8,20 @@ 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.ShipmentApprovalMapper; import com.ruoyi.sales.mapper.ShippingInfoMapper; import com.ruoyi.sales.pojo.SalesLedger; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.pojo.ShipmentApproval; import com.ruoyi.sales.pojo.ShippingInfo; import com.ruoyi.sales.service.ISalesLedgerProductService; import com.ruoyi.sales.service.ISalesLedgerService; import com.ruoyi.sales.service.ShippingInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; @@ -30,6 +38,10 @@ @Autowired private ShippingInfoService shippingInfoService; @Autowired private ShipmentApprovalMapper shipmentApprovalMapper; @Autowired private ISalesLedgerProductService salesLedgerProductService; @GetMapping("/listPage") @@ -41,8 +53,33 @@ @PostMapping("/add") @ApiOperation("æ·»å åè´§ä¿¡æ¯") @Transactional(rollbackFor = Exception.class) public AjaxResult add(@RequestBody ShippingInfo req) { LambdaQueryWrapper<ShippingInfo> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ShippingInfo::getSalesLedgerId, req.getSalesLedgerId()); wrapper.eq(ShippingInfo::getSalesLedgerProductId, req.getSalesLedgerProductId()); List<ShippingInfo> list = shippingInfoService.list(wrapper); if(!CollectionUtils.isEmpty(list)){ return AjaxResult.error("åè´§ä¿¡æ¯å·²åå¨"); } boolean save = shippingInfoService.save(req); if(save){ ShippingInfo shippingInfo = shippingInfoService.getOne(wrapper); ShipmentApproval shipmentApproval = new ShipmentApproval(); shipmentApproval.setSalesLedgerId(req.getSalesLedgerId()); shipmentApproval.setSalesLedgerProductId(req.getSalesLedgerProductId()); shipmentApproval.setApproveUserId(req.getApproverId()); shipmentApproval.setApproveStatus(2); shipmentApproval.setShippingInfoId(shippingInfo.getId()); shipmentApprovalMapper.insert(shipmentApproval); SalesLedgerProduct salesLedgerProduct = salesLedgerProductService.getById(req.getSalesLedgerProductId()); if(salesLedgerProduct != null){ salesLedgerProduct.setApproveStatus(2); salesLedgerProductService.updateById(salesLedgerProduct); } } return save ? AjaxResult.success() : AjaxResult.error(); } src/main/java/com/ruoyi/sales/mapper/SalesLedgerProductMapper.java
@@ -2,6 +2,9 @@ import com.ruoyi.common.config.MyBaseMapper; import com.ruoyi.sales.pojo.SalesLedgerProduct; import org.apache.ibatis.annotations.Param; import java.util.List; /** * 产åä¿¡æ¯Mapperæ¥å£ @@ -10,4 +13,5 @@ * @date 2025-05-08 */ public interface SalesLedgerProductMapper extends MyBaseMapper<SalesLedgerProduct> { List<SalesLedgerProduct> selectSalesLedgerProductList(@Param("salesLedgerProduct") SalesLedgerProduct salesLedgerProduct); } src/main/java/com/ruoyi/sales/mapper/ShipmentApprovalMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ package com.ruoyi.sales.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.sales.pojo.ShipmentApproval; import com.ruoyi.sales.pojo.ShippingInfo; import org.apache.ibatis.annotations.Param; import java.util.List; public interface ShipmentApprovalMapper extends BaseMapper<ShipmentApproval> { IPage<ShipmentApproval> listPage(Page page,@Param("req") ShipmentApproval req); } src/main/java/com/ruoyi/sales/pojo/SalesLedger.java
@@ -140,5 +140,9 @@ @ApiModelProperty(value = "仿¬¾æ¹å¼") private String paymentMethod; @TableField(exist = false) @ApiModelProperty(value = "çäº§ç¶æ") private String productionStatus = "æªå¼å§"; } src/main/java/com/ruoyi/sales/pojo/SalesLedgerProduct.java
@@ -12,6 +12,7 @@ import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.Date; /** * 产åä¿¡æ¯å¯¹è±¡ sales_ledger_product @@ -184,4 +185,28 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "ç»è®°æ¥æ", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private LocalDateTime registerDate; /** * å货车çå· */ @Excel(name = "å货车çå·") @TableField(exist = false) private String shippingCarNumber; /** * åè´§æ¥æ */ @Excel(name = "åè´§æ¥æ", width = 30, dateFormat = "yyyy-MM-dd") @TableField(exist = false) @JsonFormat(pattern = "yyyy-MM-dd") private Date shippingDate; @TableField(exist = false) @ApiModelProperty(value = "çäº§ç¶æ") private String productionStatus = "æªå¼å§"; /** * å货审æ¹ç¶æ */ // @TableField(exist = false) @ApiModelProperty(value = "审æ¹ç¶æ") private Integer approveStatus; } src/main/java/com/ruoyi/sales/pojo/ShipmentApproval.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,352 @@ package com.ruoyi.sales.pojo; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.framework.aspectj.lang.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Date; import java.util.List; @Data @TableName("shipment_approval") public class ShipmentApproval { @TableId(type = IdType.AUTO) private Long id; @ApiModelProperty(value = "åè´§ä¿¡æ¯id") private Long shippingInfoId; @ApiModelProperty(value = "éå®å°è´¦id") private Long salesLedgerId; @ApiModelProperty(value = "é宿¥ä»·äº§å表id") private Long salesLedgerProductId; @ApiModelProperty(value = "ç³è¯·é¨é¨id") private Long approveDeptId; @ApiModelProperty(value = "ç³è¯·é¨é¨åç§°") @Excel(name = "ç³è¯·é¨é¨") private String approveDeptName; @ApiModelProperty(value = "审æ¹ç¨æ·id") private Integer approveUserId; @ApiModelProperty(value = "审æ¹ç¨æ·åç§°") @Excel(name = "审æ¹ç¨æ·") private String approveUserNames; /** * 审æ¹ç¶æ */ @ApiModelProperty(value = "审æ¹ç¶æï¼0æªåºåº,1å·²åºåº,2å¾ å®¡æ ¸,3å®¡æ ¸å®æ,4å®¡æ ¸å¤±è´¥") @Excel(name = "审æ¹ç¶æ", readConverterExp = "0=æªåºåº,1=å·²åºåº,2=å¾ å®¡æ ¸,3=å®¡æ ¸å®æ,4=å®¡æ ¸å¤±è´¥") private Integer approveStatus; @ApiModelProperty(value = "å建æ¶é´") @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; @ApiModelProperty(value = "ä¿®æ¹æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; @ApiModelProperty(value = "åå»ºç¨æ·") @TableField(fill = FieldFill.INSERT) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Integer createUser; @ApiModelProperty(value = "ä¿®æ¹ç¨æ·") @TableField(fill = FieldFill.INSERT_UPDATE) private Integer updateUser; @ApiModelProperty(value = "ç§æ·ID") @TableField(fill = FieldFill.INSERT) private Long tenantId; @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") @Excel(name = "åè´§æ¥æ", width = 30, dateFormat = "yyyy-MM-dd") @TableField(exist = false) private Date shippingDate; @Excel(name = "å货车çå·") @TableField(exist = false) private String shippingCarNumber; /** * é¢è¦æ°é */ @TableField(exist = false) private BigDecimal warnNum; /** * 产å大类 */ @Excel(name = "产å大类") @TableField(exist = false) private String productCategory; /** * è§æ ¼åå· */ @Excel(name = "è§æ ¼åå·") @TableField(exist = false) private String specificationModel; /** * åä½ */ @Excel(name = "åä½") @TableField(exist = false) private String unit; /** * æ°é */ @Excel(name = "æ°é") @TableField(exist = false) private BigDecimal quantity; @Excel(name = "æä½åºåæ°é") @TableField(exist = false) private BigDecimal minStock; /** * ç¨ç */ @Excel(name = "ç¨ç") @TableField(exist = false) private BigDecimal taxRate; /** * å«ç¨åä»· */ @Excel(name = "å«ç¨åä»·") @TableField(exist = false) private BigDecimal taxInclusiveUnitPrice; /** * å«ç¨æ»ä»· */ @Excel(name = "å«ç¨æ»ä»·") @TableField(exist = false) private BigDecimal taxInclusiveTotalPrice; /** * ä¸å«ç¨æ»ä»· */ @Excel(name = "ä¸å«ç¨æ»ä»·") @TableField(exist = false) private BigDecimal taxExclusiveTotalPrice; /** * å票类å */ @TableField(exist = false) private String invoiceType; /** * å°è´¦ç±»å 1.éå® 2ï¼éè´ */ @TableField(exist = false) private Integer type; /** * æ¬æ¬¡æ¥ç¥¨æ° */ @TableField(exist = false) private BigDecimal ticketsNum; /** * æ¬æ¬¡æ¥ç¥¨éé¢(å ) */ @TableField(exist = false) private BigDecimal ticketsAmount; /** * æªæ¥ç¥¨æ° */ @TableField(exist = false) private BigDecimal futureTickets; /** * æªæ¥ç¥¨éé¢(å ) */ @TableField(exist = false) private BigDecimal futureTicketsAmount; @ApiModelProperty(value = "å¼ç¥¨æ°") @TableField(exist = false) private BigDecimal invoiceNum; @ApiModelProperty(value = "æªå¼ç¥¨æ°") @TableField(exist = false) private BigDecimal noInvoiceNum; @ApiModelProperty(value = "å¼ç¥¨éé¢") @TableField(exist = false) private BigDecimal invoiceAmount; @ApiModelProperty(value = "æªå¼ç¥¨éé¢") @TableField(exist = false) private BigDecimal noInvoiceAmount; @ApiModelProperty(value = "æ¬æ¬¡å¼ç¥¨æ°") @TableField(exist = false) private BigDecimal currentInvoiceNum; @TableField(exist = false) @ApiModelProperty(value = "æ¬æ¬¡å¼ç¥¨éé¢") private BigDecimal currentInvoiceAmount; /** * 产åid */ @TableField(exist = false) private Long productId; /** * 产åè§æ ¼id */ @TableField(exist = false) private Long productModelId; @ApiModelProperty(value = "åå§æªå¼ç¥¨æ°") @TableField(exist = false) private BigDecimal originalNoInvoiceNum; @ApiModelProperty(value = "ä¸´æ¶æªå¼ç¥¨æ°") @TableField(exist = false) private BigDecimal tempNoInvoiceNum; @ApiModelProperty(value = "ä¸´æ¶æªå¼ç¥¨éé¢") @TableField(exist = false) private BigDecimal tempnoInvoiceAmount; @ApiModelProperty(value = "ä¸´æ¶æªæ¥ç¥¨æ°") @TableField(exist = false) private BigDecimal tempFutureTickets; @ApiModelProperty(value = "ä¸´æ¶æªæ¥ç¥¨éé¢") @TableField(exist = false) private BigDecimal tempFutureTicketsAmount; @ApiModelProperty("ç»è®°äºº") @TableField(exist = false) private String register; @ApiModelProperty("ç»è®°æ¥æ") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "ç»è®°æ¥æ", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") @TableField(exist = false) private LocalDateTime registerDate; /** * éå®ååå· */ @Excel(name = "éå®ååå·") @TableField(exist = false) private String salesContractNo; /** * 客æ·ååå· */ @Excel(name = "客æ·ååå·") @TableField(exist = false) private String customerContractNo; /** * 项ç®åç§° */ @Excel(name = "项ç®åç§°") @TableField(exist = false) private String projectName; /** * å½å ¥æ¥æ */ @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") @TableField(exist = false) private Date entryDate; /** * ä¸å¡å */ @Excel(name = "ä¸å¡å") @TableField(exist = false) private String salesman; @TableField(exist = false) private Long customerId; /** * 客æ·åç§° */ @Excel(name = "客æ·åç§°") @TableField(exist = false) private String customerName; /** * å½å ¥äºº */ @TableField(exist = false) private String entryPerson; @TableField(exist = false) @ApiModelProperty(value = "å½å ¥äºº") @Excel(name = "å½å ¥äºº") private String entryPersonName; /** * 夿³¨ */ @Excel(name = "夿³¨") @TableField(exist = false) private String remarks; /** * éä»¶ææï¼å卿件åçç¸å ³ä¿¡æ¯ */ @TableField(exist = false) private String attachmentMaterials; /** * ååéé¢ï¼äº§åå«ç¨æ»ä»·ï¼ */ @Excel(name = "ååéé¢") @TableField(exist = false) private BigDecimal contractAmount; @TableField(exist = false) @ApiModelProperty(value = "æªå¼ç¥¨éé¢(å )") @Excel(name = "æªå¼ç¥¨éé¢") private BigDecimal noInvoiceAmountTotal = BigDecimal.ZERO; @ApiModelProperty(value = "ç¾è®¢æ¥æ") @TableField(exist = false) private LocalDate executionDate; @TableField(exist = false) @ApiModelProperty(value = "å·²å¼ç¥¨éé¢(å )") @Excel(name = "å·²å¼ç¥¨éé¢") private BigDecimal invoiceTotal = BigDecimal.ZERO; @TableField(exist = false) @ApiModelProperty(value = "忬¾éé¢") private BigDecimal receiptPaymentAmountTotal = BigDecimal.ZERO; @TableField(exist = false) @ApiModelProperty(value = "å¾ åæ¬¾éé¢") private BigDecimal noReceiptAmount = BigDecimal.ZERO; @ApiModelProperty(value = "仿¬¾æ¹å¼") @TableField(exist = false) private String paymentMethod; @TableField(exist = false) @ApiModelProperty(value = "çäº§ç¶æ") private String productionStatus = "æªå¼å§"; } src/main/java/com/ruoyi/sales/pojo/ShippingInfo.java
@@ -23,7 +23,8 @@ @ApiModelProperty(value = "éå®å°è´¦id") private Long salesLedgerId; @ApiModelProperty(value = "é宿¥ä»·äº§å表id") private Long salesLedgerProductId; @TableField(exist = false) @ApiModelProperty(value = "éå®ååå·") @Excel(name = "éå®ååå·") @@ -64,5 +65,8 @@ @ApiModelProperty(value = "ç§æ·ID") @TableField(fill = FieldFill.INSERT) private Long tenantId; @ApiModelProperty(value = "审æ¹äººid") @TableField(exist = false) private Integer approverId; } src/main/java/com/ruoyi/sales/service/ShipmentApprovalService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.ruoyi.sales.service; 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.pojo.ShipmentApproval; import com.ruoyi.sales.pojo.ShippingInfo; public interface ShipmentApprovalService extends IService<ShipmentApproval>{ IPage<ShipmentApproval> listPage(Page page, ShipmentApproval req); } src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -12,10 +12,12 @@ import com.ruoyi.sales.mapper.InvoiceRegistrationProductMapper; import com.ruoyi.sales.mapper.SalesLedgerMapper; import com.ruoyi.sales.mapper.SalesLedgerProductMapper; import com.ruoyi.sales.pojo.InvoiceRegistrationProduct; import com.ruoyi.sales.pojo.SalesLedger; import com.ruoyi.sales.pojo.SalesLedgerProduct; import com.ruoyi.sales.service.ISalesLedgerProductService; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -24,10 +26,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.Set; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -66,11 +65,11 @@ @Override public List<SalesLedgerProduct> selectSalesLedgerProductList(SalesLedgerProduct salesLedgerProduct) { LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedgerProduct.getSalesLedgerId()) .eq(SalesLedgerProduct::getType, salesLedgerProduct.getType()); List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(queryWrapper); if (!CollectionUtils.isEmpty(salesLedgerProducts)) { // LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>(); // queryWrapper.eq(SalesLedgerProduct::getSalesLedgerId, salesLedgerProduct.getSalesLedgerId()) // .eq(SalesLedgerProduct::getType, salesLedgerProduct.getType()); List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectSalesLedgerProductList(salesLedgerProduct); if(!CollectionUtils.isEmpty(salesLedgerProducts)){ InvoiceRegistrationProductDto invoiceRegistrationProductDto = new InvoiceRegistrationProductDto(); invoiceRegistrationProductDto.setSalesLedgerId(salesLedgerProduct.getSalesLedgerId().intValue()); List<InvoiceRegistrationProductDto> invoiceRegistrationProductDtoList = invoiceRegistrationProductMapper.invoiceRegistrationProductList(invoiceRegistrationProductDto); @@ -80,8 +79,8 @@ BigDecimal invoiceNum = BigDecimal.ZERO; BigDecimal invoiceAmount = BigDecimal.ZERO; for (InvoiceRegistrationProductDto registrationProductDto : invoiceRegistrationProductDtoList) { if (ledgerProduct.getId().intValue() == registrationProductDto.getSalesLedgerProductId()) { invoiceNum = invoiceNum.add(registrationProductDto.getInvoiceNum()); if(ledgerProduct.getId().intValue() == registrationProductDto.getSalesLedgerProductId()){ invoiceNum = invoiceNum.add(registrationProductDto.getInvoiceNum()); invoiceAmount = invoiceAmount.add(registrationProductDto.getInvoiceAmount()); } } @@ -104,7 +103,7 @@ // 1. å æ¥è¯¢è¦å é¤çå表记å½ï¼è·å对åºç salesLedgerId List<SalesLedgerProduct> deletedProducts = salesLedgerProductMapper.selectBatchIds(Arrays.asList(ids)); if (deletedProducts.isEmpty()) { return 0; return 0; // 没æå¯å é¤çæ°æ® } // å¯è½å±äºå¤ä¸ªä¸»è¡¨ src/main/java/com/ruoyi/sales/service/impl/ShipmentApprovalServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,32 @@ package com.ruoyi.sales.service.impl; 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.sales.mapper.ShipmentApprovalMapper; import com.ruoyi.sales.mapper.ShippingInfoMapper; import com.ruoyi.sales.pojo.ShipmentApproval; import com.ruoyi.sales.pojo.ShippingInfo; import com.ruoyi.sales.service.ShipmentApprovalService; import com.ruoyi.sales.service.ShippingInfoService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * @author :yys * @date : 2025/10/22 9:33 */ @Service @Slf4j public class ShipmentApprovalServiceImpl extends ServiceImpl<ShipmentApprovalMapper, ShipmentApproval> implements ShipmentApprovalService { @Autowired private ShipmentApprovalMapper shipmentApprovalMapper; @Override public IPage<ShipmentApproval> listPage(Page page, ShipmentApproval req) { IPage<ShipmentApproval> listPage = shipmentApprovalMapper.listPage(page, req); return listPage; } } src/main/resources/mapper/basic/SupplierManageFileMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,9 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.ruoyi.basic.mapper.SupplierManageFileMapper"> <select id="supplierManageFileListPage" resultType="com.ruoyi.basic.pojo.SupplierManageFile"> select * from supplier_manage_file where supplier_id = #{supplierManageFile.supplierId} </select> </mapper> src/main/resources/mapper/basic/SupplierManageMapper.xml
@@ -22,12 +22,16 @@ T1.update_time, T1.update_user, T1.tenant_id, T1.is_white, T2.nick_name AS maintainUserName FROM supplier_manage T1 LEFT JOIN sys_user T2 ON T1.maintain_user_id = T2.user_id <where> <if test="supplierManageDto.supplierName != null and supplierManageDto.supplierName != '' "> AND T1.supplier_name LIKE CONCAT('%',#{supplierManageDto.supplierName},'%') </if> <if test="supplierManageDto.isWhite != null"> AND T1.is_white = #{supplierManageDto.isWhite} </if> </where> </select> @@ -50,6 +54,7 @@ T1.update_time, T1.update_user, T1.tenant_id, T1.is_white, T2.nick_name AS maintainUserName FROM supplier_manage T1 LEFT JOIN sys_user T2 ON T1.maintain_user_id = T2.user_id @@ -57,6 +62,9 @@ <if test="supplierManageDto.supplierName != null and supplierManageDto.supplierName != '' "> AND T1.supplier_name LIKE CONCAT('%',#{supplierManageDto.supplierName},'%') </if> <if test="supplierManageDto.isWhite != null"> AND T1.is_white = #{supplierManageDto.isWhite} </if> </where> </select> src/main/resources/mapper/device/DeviceRepairMapper.xml
@@ -14,6 +14,7 @@ dr.maintenance_name, dr.maintenance_time, dr.maintenance_result, dr.maintenance_price, dr.status, dr.create_time, dr.update_time, @@ -59,6 +60,7 @@ dr.maintenance_name, dr.maintenance_time, dr.maintenance_result, dr.maintenance_price, dr.status, dr.create_time, dr.update_time, src/main/resources/mapper/measuringinstrumentledger/SparePartsMapper.xml
@@ -2,11 +2,12 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.measuringinstrumentledger.mapper.SparePartsMapper"> <select id="listPage" resultType="com.ruoyi.measuringinstrumentledger.dto.SparePartsDto"> select sp.*,sp1.name as parentName from spare_parts sp select sp.*,sp1.name as parentName from spare_parts sp left join spare_parts sp1 on sp1.id = sp.parent_id <where> <if test="spareParts.name != null"> and name like concat('%',#{spareParts.name},'%') <if test="spareParts.name != null and spareParts.name != ''"> and sp.name like concat('%',#{spareParts.name},'%') </if> </where> </select> src/main/resources/mapper/procurementrecord/ProcurementExceptionRecordMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.procurementrecord.mapper.ProcurementExceptionRecordMapper"> </mapper> src/main/resources/mapper/procurementrecord/ProcurementRecordMapper.xml
@@ -137,6 +137,7 @@ sum(t1.total_price) as totalPrice, sum(t1.inbound_num) as inboundNum, sum(t1.inbound_num) as inboundNum0, t1.inbound_num as totalInboundNum, t1.create_time, t1.update_time, t1.create_by, @@ -171,7 +172,7 @@ and t1.create_time <= #{req.endDate} </if> </where> group by t2.product_category,t2.specification_model,t1.unit_price group by t3.supplier_name,t2.product_category,t2.specification_model,t1.unit_price order by t1.create_time desc </select> <select id="listCopy" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy"> src/main/resources/mapper/purchase/ProductRecordMapper.xml
@@ -28,10 +28,10 @@ left join product_model pm on pm.id = pr.product_model_id WHERE type = 2 <if test="c.salesContractNo != null and c.salesContractNo != ''"> and sl.sales_contract_no = #{c.salesContractNo} and sl.sales_contract_no like concat('%',#{c.salesContractNo},'%') </if> <if test="c.supplierName != null and c.supplierName != ''"> and pl.supplier_name = #{c.supplierName} and pl.supplier_name like concat('%',#{c.supplierName},'%') </if> <if test="c.createdAtStart != null and c.createdAtStart != ''"> and pr.created_at >= date_format(#{c.createdAtStart},'%Y-%m-%d hh:mm:ss') src/main/resources/mapper/purchase/PurchaseLedgerMapper.xml
@@ -14,21 +14,30 @@ pl.id, pl.purchase_contract_number , pl.sales_contract_no, pl.supplier_id, pl.supplier_name, pl.project_name, pl.contract_amount, sum(pr.tickets_amount)as receipt_payment_amount, pl.contract_amount-sum(pr.tickets_amount) AS unReceipt_payment_amount, pl.entry_date, pl.execution_date, pl.recorder_id, pl.recorder_name, pl.template_name, pl.approver_id, sm.is_white, pl.approval_status, pl.payment_method from purchase_ledger pl left join product_record pr on pl.id = pr.purchase_ledger_id left join supplier_manage sm on pl.supplier_id = sm.id <where> 1 = 1 <if test="c.purchaseContractNumber != null and c.purchaseContractNumber != ''"> and pl.purchase_contract_number like concat('%',#{c.purchaseContractNumber},'%') </if> <if test="c.approvalStatus != null and c.approvalStatus != ''"> and pl.approval_status = #{c.approvalStatus} </if> <if test="c.supplierName != null and c.supplierName != ''"> and pl.supplier_name like concat('%',#{c.supplierName},'%') @@ -51,6 +60,7 @@ pl.recorder_name, pl.contract_amount order by pl.entry_date desc </select> <select id="getPaymentRegistrationDtoById" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto"> SELECT src/main/resources/mapper/quality/QualityInspectMapper.xml
@@ -8,16 +8,16 @@ where inspect_type=#{qualityInspect.inspectType} <if test="qualityInspect.supplier != null and qualityInspect.supplier != '' "> AND supplier = #{qualityInspect.supplier} AND supplier like concat('%',#{qualityInspect.supplier},'%') </if> <if test="qualityInspect.customer != null and qualityInspect.customer != '' "> AND customer = #{qualityInspect.customer} AND customer like concat('%',#{qualityInspect.customer},'%') </if> <if test="qualityInspect.process != null and qualityInspect.process != '' "> AND process = #{qualityInspect.process} AND process like concat('%',#{qualityInspect.process},'%') </if> <if test="qualityInspect.productName != null and qualityInspect.productName != '' "> AND product_name = #{qualityInspect.productName} AND product_name like concat('%',#{qualityInspect.productName},'%') </if> <if test="qualityInspect.entryDateStart != null and qualityInspect.entryDateStart != '' "> AND check_time >= DATE_FORMAT(#{qualityInspect.entryDateStart},'%Y-%m-%d') src/main/resources/mapper/sales/SalesLedgerMapper.xml
@@ -58,13 +58,10 @@ T1.contract_amount, T1.execution_date, T2.nick_name AS entry_person_name, T1.payment_method, t3.shipping_car_number, t3.shipping_date T1.payment_method FROM sales_ledger T1 LEFT JOIN sys_user T2 ON T1.entry_person = T2.user_id left join shipping_info t3 on T1.id = t3.sales_ledger_id <where> <if test="salesLedgerDto.customerName != null and salesLedgerDto.customerName != '' "> AND T1.customer_name LIKE CONCAT('%',#{salesLedgerDto.customerName},'%') src/main/resources/mapper/sales/SalesLedgerProductMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.sales.mapper.SalesLedgerProductMapper"> <select id="selectSalesLedgerProductList" resultType="com.ruoyi.sales.pojo.SalesLedgerProduct"> SELECT T1.*, t3.shipping_car_number, t3.shipping_date FROM sales_ledger_product T1 left join shipping_info t3 on T1.id = t3.sales_ledger_id <where> 1=1 <if test="salesLedgerProduct.salesLedgerId != null and salesLedgerProduct.salesLedgerId != '' "> AND T1.sales_ledger_id = #{salesLedgerProduct.salesLedgerId} </if> <if test="salesLedgerProduct.type != null and salesLedgerProduct.type != '' "> AND T1.type = #{salesLedgerProduct.type} </if> </where> </select> </mapper> src/main/resources/mapper/sales/ShipmentApprovalMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.sales.mapper.ShipmentApprovalMapper"> <select id="listPage" resultType="com.ruoyi.sales.pojo.ShipmentApproval"> SELECT *, si.shipping_car_number, T2.nick_name AS entry_person_name FROM shipment_approval sa LEFT JOIN shipping_info si ON sa.shipping_info_id = si.id LEFT JOIN sales_ledger sl ON sa.sales_ledger_id = sl.id LEFT JOIN sales_ledger_product slp ON sa.sales_ledger_product_id = slp.id LEFT JOIN sys_user T2 ON sl.entry_person = T2.user_id <where> 1=1 <if test="req.approveStatus != null and req.approveStatus != '' "> AND sa.approve_status = #{req.approveStatus} </if> <if test="req.salesContractNo != null and req.salesContractNo != '' "> AND sl.sales_contract_no LIKE CONCAT('%',#{req.salesContractNo},'%') </if> </where> </select> </mapper>