master
liweidong-hj 4 months ago
parent 3a1a47a86e
commit 014187cf99
  1. 4
      src/main/java/com/nov/KgLowDurable/controller/DepartmentController.java
  2. 4
      src/main/java/com/nov/KgLowDurable/controller/LdConsumerFormController.java
  3. 3
      src/main/java/com/nov/KgLowDurable/controller/LdDemandEndController.java
  4. 1
      src/main/java/com/nov/KgLowDurable/controller/LdMaterialController.java
  5. 4
      src/main/java/com/nov/KgLowDurable/controller/LdOneOutStorageController.java
  6. 4
      src/main/java/com/nov/KgLowDurable/controller/LdOneOutStorageDetailController.java
  7. 4
      src/main/java/com/nov/KgLowDurable/controller/LdOnePutStorageController.java
  8. 3
      src/main/java/com/nov/KgLowDurable/controller/LdPurchaseEndController.java
  9. 50
      src/main/java/com/nov/KgLowDurable/controller/LdTwoInventoryRecordController.java
  10. 2
      src/main/java/com/nov/KgLowDurable/controller/LdTwoOutStorageController.java
  11. 9
      src/main/java/com/nov/KgLowDurable/controller/LdTwoOutStorageDetailController.java
  12. 1
      src/main/java/com/nov/KgLowDurable/controller/LdTwoPutStorageController.java
  13. 8
      src/main/java/com/nov/KgLowDurable/controller/LdTwoPutStorageDetailController.java
  14. 1
      src/main/java/com/nov/KgLowDurable/controller/MenuController.java
  15. 4
      src/main/java/com/nov/KgLowDurable/controller/UserController.java
  16. 1
      src/main/java/com/nov/KgLowDurable/enums/MaterialCategoryEnum.java
  17. 3
      src/main/java/com/nov/KgLowDurable/mapper/DepartmentMapper.java
  18. 3
      src/main/java/com/nov/KgLowDurable/mapper/LdApproveMapper.java
  19. 2
      src/main/java/com/nov/KgLowDurable/mapper/LdConsumerFormMapper.java
  20. 3
      src/main/java/com/nov/KgLowDurable/mapper/LdDemandEndMapper.java
  21. 2
      src/main/java/com/nov/KgLowDurable/mapper/LdDurableFormMapper.java
  22. 4
      src/main/java/com/nov/KgLowDurable/mapper/LdInventoryRecordMapper.java
  23. 2
      src/main/java/com/nov/KgLowDurable/mapper/LdMaterialMapper.java
  24. 2
      src/main/java/com/nov/KgLowDurable/mapper/LdOneFormMapper.java
  25. 3
      src/main/java/com/nov/KgLowDurable/mapper/LdOneOutStorageDemandEndMapper.java
  26. 1
      src/main/java/com/nov/KgLowDurable/mapper/LdOneOutStorageDetailMapper.java
  27. 3
      src/main/java/com/nov/KgLowDurable/mapper/LdOneOutStorageMapper.java
  28. 4
      src/main/java/com/nov/KgLowDurable/mapper/LdOnePutStorageDetailMapper.java
  29. 3
      src/main/java/com/nov/KgLowDurable/mapper/LdOnePutStorageMapper.java
  30. 4
      src/main/java/com/nov/KgLowDurable/mapper/LdOnePutStoragePurchaseEndMapper.java
  31. 1
      src/main/java/com/nov/KgLowDurable/mapper/LdPurchaseEndMapper.java
  32. 16
      src/main/java/com/nov/KgLowDurable/mapper/LdTwoInventoryRecordMapper.java
  33. 1
      src/main/java/com/nov/KgLowDurable/mapper/LdTwoOutStorageDetailMapper.java
  34. 1
      src/main/java/com/nov/KgLowDurable/mapper/LdTwoOutStorageMapper.java
  35. 3
      src/main/java/com/nov/KgLowDurable/mapper/LdTwoPutStorageDetailMapper.java
  36. 3
      src/main/java/com/nov/KgLowDurable/mapper/LdTwoPutStorageMapper.java
  37. 1
      src/main/java/com/nov/KgLowDurable/mapper/MenuMapper.java
  38. 3
      src/main/java/com/nov/KgLowDurable/mapper/UserMapper.java
  39. 6
      src/main/java/com/nov/KgLowDurable/pojo/dto/ApproveDto.java
  40. 5
      src/main/java/com/nov/KgLowDurable/pojo/dto/LdOneOutStorageDto.java
  41. 1
      src/main/java/com/nov/KgLowDurable/pojo/dto/LdOnePutStorageDto.java
  42. 2
      src/main/java/com/nov/KgLowDurable/pojo/dto/LdTwoOutStorageDto.java
  43. 1
      src/main/java/com/nov/KgLowDurable/pojo/dto/MenuDTO.java
  44. 1
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdApprove.java
  45. 2
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdDurableForm.java
  46. 2
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdInventoryRecord.java
  47. 1
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdMaterial.java
  48. 1
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdOneForm.java
  49. 2
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdTwoPutStorage.java
  50. 6
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdTwoPutStorageDetail.java
  51. 7
      src/main/java/com/nov/KgLowDurable/pojo/entity/User.java
  52. 4
      src/main/java/com/nov/KgLowDurable/pojo/vo/LdMaterialVO.java
  53. 5
      src/main/java/com/nov/KgLowDurable/pojo/vo/LdOneOutStorageDetailVO.java
  54. 2
      src/main/java/com/nov/KgLowDurable/pojo/vo/LdOneOutStorageInfoVO.java
  55. 5
      src/main/java/com/nov/KgLowDurable/pojo/vo/LdTwoPutStorageVO.java
  56. 7
      src/main/java/com/nov/KgLowDurable/pojo/vo/MenuVO.java
  57. 2
      src/main/java/com/nov/KgLowDurable/pojo/vo/QuarterVO.java
  58. 2
      src/main/java/com/nov/KgLowDurable/pojo/vo/UserInfoVO.java
  59. 2
      src/main/java/com/nov/KgLowDurable/service/IDepartmentService.java
  60. 5
      src/main/java/com/nov/KgLowDurable/service/ILdApproveService.java
  61. 3
      src/main/java/com/nov/KgLowDurable/service/ILdConsumerFormService.java
  62. 3
      src/main/java/com/nov/KgLowDurable/service/ILdDemandEndService.java
  63. 2
      src/main/java/com/nov/KgLowDurable/service/ILdDurableFormService.java
  64. 3
      src/main/java/com/nov/KgLowDurable/service/ILdInventoryRecordService.java
  65. 1
      src/main/java/com/nov/KgLowDurable/service/ILdMaterialService.java
  66. 4
      src/main/java/com/nov/KgLowDurable/service/ILdOneFormService.java
  67. 2
      src/main/java/com/nov/KgLowDurable/service/ILdOneOutStorageDemandEndService.java
  68. 5
      src/main/java/com/nov/KgLowDurable/service/ILdOneOutStorageDetailService.java
  69. 9
      src/main/java/com/nov/KgLowDurable/service/ILdOneOutStorageService.java
  70. 4
      src/main/java/com/nov/KgLowDurable/service/ILdOnePutStorageDetailService.java
  71. 1
      src/main/java/com/nov/KgLowDurable/service/ILdOnePutStoragePurchaseEndService.java
  72. 5
      src/main/java/com/nov/KgLowDurable/service/ILdOnePutStorageService.java
  73. 3
      src/main/java/com/nov/KgLowDurable/service/ILdPurchaseEndService.java
  74. 31
      src/main/java/com/nov/KgLowDurable/service/ILdTwoInventoryRecordService.java
  75. 1
      src/main/java/com/nov/KgLowDurable/service/ILdTwoOutStorageDetailService.java
  76. 1
      src/main/java/com/nov/KgLowDurable/service/ILdTwoOutStorageService.java
  77. 4
      src/main/java/com/nov/KgLowDurable/service/ILdTwoPutStorageDetailService.java
  78. 9
      src/main/java/com/nov/KgLowDurable/service/ILdTwoPutStorageService.java
  79. 3
      src/main/java/com/nov/KgLowDurable/service/IUserService.java
  80. 3
      src/main/java/com/nov/KgLowDurable/service/Impl/DepartmentServiceImpl.java
  81. 17
      src/main/java/com/nov/KgLowDurable/service/Impl/LdApproveServiceImpl.java
  82. 14
      src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageServiceImpl.java
  83. 1
      src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageServiceImpl.java
  84. 1
      src/main/java/com/nov/KgLowDurable/service/Impl/LdPurchaseEndServiceImpl.java
  85. 48
      src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoInventoryRecordServiceImpl.java
  86. 4
      src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoOutStorageDetailServiceImpl.java
  87. 2
      src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoOutStorageServiceImpl.java
  88. 1
      src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoPutStorageDetailServiceImpl.java
  89. 463
      src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoPutStorageServiceImpl.java
  90. 6
      src/main/java/com/nov/KgLowDurable/service/Impl/UserServiceImpl.java
  91. 2
      src/main/resources/mapper/LdApproveMapper.xml
  92. 22
      src/main/resources/mapper/LdTwoInventoryRecordMapper.xml

@ -2,17 +2,13 @@ package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.pojo.vo.DepartmentVO;
import com.nov.KgLowDurable.service.IDepartmentService;
import com.nov.KgLowDurable.util.Result;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiOperationSort;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;

@ -1,10 +1,6 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.pojo.entity.LdConsumerForm;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail;
import com.nov.KgLowDurable.pojo.vo.DepartmentVO;
import com.nov.KgLowDurable.pojo.vo.QuarterVO;
import com.nov.KgLowDurable.service.ILdConsumerFormService;
import com.nov.KgLowDurable.service.ILdDemandEndService;
import com.nov.KgLowDurable.util.Result;
import io.swagger.annotations.*;
import lombok.AllArgsConstructor;

@ -1,10 +1,8 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import com.nov.KgLowDurable.pojo.vo.DepartmentVO;
import com.nov.KgLowDurable.pojo.vo.QuarterVO;
import com.nov.KgLowDurable.service.ILdDemandEndService;
import com.nov.KgLowDurable.service.ILdPurchaseEndService;
import com.nov.KgLowDurable.util.Result;
import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
@ -12,7 +10,6 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;

@ -1,4 +1,3 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.enums.MaterialCategoryEnum;
import com.nov.KgLowDurable.pojo.entity.LdMaterial;

@ -1,16 +1,12 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.pojo.dto.LdOneOutStorageDto;
import com.nov.KgLowDurable.pojo.dto.LdOnePutStorageDto;
import com.nov.KgLowDurable.service.ILdOneOutStorageService;
import com.nov.KgLowDurable.service.ILdOnePutStorageService;
import com.nov.KgLowDurable.util.Result;
import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import java.util.Date;

@ -1,11 +1,7 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.enums.DepartmentEnum;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import com.nov.KgLowDurable.service.ILdOneOutStorageDetailService;
import com.nov.KgLowDurable.service.ILdOneOutStorageService;
import com.nov.KgLowDurable.service.ILdOnePutStorageDetailService;
import com.nov.KgLowDurable.util.Result;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiOperationSort;

@ -1,15 +1,11 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.pojo.dto.LdOnePutStorageDto;
import com.nov.KgLowDurable.pojo.entity.LdMaterial;
import com.nov.KgLowDurable.service.ILdOneFormService;
import com.nov.KgLowDurable.service.ILdOnePutStorageService;
import com.nov.KgLowDurable.util.Result;
import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import java.util.Date;

@ -1,8 +1,6 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdPurchaseEnd;
import com.nov.KgLowDurable.pojo.vo.QuarterVO;
import com.nov.KgLowDurable.service.ILdOneFormService;
import com.nov.KgLowDurable.service.ILdPurchaseEndService;
import com.nov.KgLowDurable.util.Result;
import io.swagger.annotations.*;
@ -11,7 +9,6 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;

@ -0,0 +1,50 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.pojo.dto.ApproveDto;
import com.nov.KgLowDurable.service.ILdTwoInventoryRecordService;
import com.nov.KgLowDurable.util.Result;
import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author liweidong
*/
@RestController
@AllArgsConstructor
@RequestMapping("/twoInventoryRecord")
public class LdTwoInventoryRecordController {
@Autowired
ILdTwoInventoryRecordService twoInventoryRecordService;
@GetMapping("/list")
@ApiOperationSort(1)
@ApiOperation(value = "获取二级出入库记录", notes = "出入库记录列表", httpMethod = "GET", response = Result.class)
@ApiImplicitParams({
@ApiImplicitParam(name = "consumerFormId", value = "易耗品库存ID", dataType = "Long", paramType = "query")
})
public Result list(@ApiParam(hidden = true)
@RequestParam(required = false) Long consumerFormId,
@RequestParam(required = false) String transactionType,
@RequestParam(required = false ,defaultValue = "1") Integer pageNum,
@RequestParam(required = false ,defaultValue = "10") Integer pageSize) {
return Result.OK(twoInventoryRecordService.getTwoInventoryRecordList(consumerFormId,transactionType,pageNum,pageSize));
}
@PostMapping("/approve")
@ApiOperationSort(2)
@ApiOperation(value = "审批通过", notes = "二级出库回调接口", httpMethod = "POST", response = Result.class)
public Result approve(@RequestBody ApproveDto approveDto) {
Long twoOutStorageId = approveDto.getTwoOutStorageId();
boolean approveResult = approveDto.getApproveResult();
return Result.OK(twoInventoryRecordService.approve(twoOutStorageId,approveResult));
}
}

@ -1,6 +1,5 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.pojo.dto.LdTwoOutStorageDto;
import com.nov.KgLowDurable.pojo.dto.LdTwoPutStorageDto;
import com.nov.KgLowDurable.service.ILdTwoOutStorageService;
import com.nov.KgLowDurable.util.Result;
import io.swagger.annotations.*;
@ -8,7 +7,6 @@ import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import java.util.Date;

@ -1,17 +1,8 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.pojo.vo.DepartmentVO;
import com.nov.KgLowDurable.service.IDepartmentService;
import com.nov.KgLowDurable.util.Result;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiOperationSort;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author liweidong

@ -6,7 +6,6 @@ import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import java.util.Date;

@ -1,14 +1,6 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import com.nov.KgLowDurable.service.ILdOnePutStorageDetailService;
import com.nov.KgLowDurable.util.Result;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiOperationSort;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@ -1,4 +1,3 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.pojo.entity.Menu;
import com.nov.KgLowDurable.service.IMenuService;

@ -1,6 +1,4 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.pojo.vo.DepartmentVO;
import com.nov.KgLowDurable.service.IDepartmentService;
import com.nov.KgLowDurable.service.IUserService;
import com.nov.KgLowDurable.util.Result;
import io.swagger.annotations.ApiOperation;
@ -12,8 +10,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author liweidong

@ -1,6 +1,5 @@
package com.nov.KgLowDurable.enums;
import lombok.Getter;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

@ -1,10 +1,7 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.Department;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.vo.DepartmentVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@ -1,10 +1,7 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.entity.LdDemandEnd;
import com.nov.KgLowDurable.pojo.vo.QuarterVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@ -1,9 +1,7 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.entity.LdConsumerForm;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@ -1,12 +1,9 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdDemandEnd;
import com.nov.KgLowDurable.pojo.entity.LdPurchaseEnd;
import com.nov.KgLowDurable.pojo.vo.QuarterVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**

@ -1,9 +1,7 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.entity.LdDurableForm;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@ -1,11 +1,7 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdInventoryRecord;
import com.nov.KgLowDurable.pojo.entity.LdMaterial;
import com.nov.KgLowDurable.pojo.vo.LdMaterialVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@ -1,10 +1,8 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdMaterial;
import com.nov.KgLowDurable.pojo.vo.LdMaterialVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@ -1,9 +1,7 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdOneForm;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@ -1,10 +1,7 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDemandEnd;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStoragePurchaseEnd;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@ -1,5 +1,4 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail;
import org.apache.ibatis.annotations.Param;

@ -1,10 +1,7 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorage;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorage;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;

@ -1,11 +1,7 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorage;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**

@ -1,10 +1,7 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdOneForm;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorage;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;

@ -1,11 +1,7 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdMaterial;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStoragePurchaseEnd;
import com.nov.KgLowDurable.pojo.vo.LdMaterialVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@ -3,7 +3,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdPurchaseEnd;
import com.nov.KgLowDurable.pojo.vo.QuarterVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@ -0,0 +1,16 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdTwoInventoryRecord;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 物料接口
* @author liweidong
*/
public interface LdTwoInventoryRecordMapper extends BaseMapper<LdTwoInventoryRecord> {
List<LdTwoInventoryRecord> selectByConsumerFormId(@Param("consumerFormId") Long consumerFormId,@Param("transactionType") String transactionType);
}

@ -2,7 +2,6 @@ package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdTwoOutStorageDetail;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@ -2,7 +2,6 @@ package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdTwoOutStorage;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;

@ -1,10 +1,7 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdTwoPutStorageDetail;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**

@ -1,11 +1,8 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorage;
import com.nov.KgLowDurable.pojo.entity.LdTwoPutStorage;
import com.nov.KgLowDurable.pojo.vo.LdTwoPutStorageVO;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;

@ -1,5 +1,4 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.Menu;

@ -1,10 +1,7 @@
package com.nov.KgLowDurable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nov.KgLowDurable.pojo.entity.Department;
import com.nov.KgLowDurable.pojo.entity.User;
import com.nov.KgLowDurable.pojo.vo.DepartmentVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@ -1,5 +1,4 @@
package com.nov.KgLowDurable.pojo.dto;
import lombok.Data;
import lombok.experimental.Accessors;
@ -15,6 +14,11 @@ public class ApproveDto {
* 一级入库ID
*/
private Long onePutStorageId;
/**
* 二级出库ID
*/
private Long twoOutStorageId;
/**
* 审批结果
*/

@ -1,14 +1,9 @@
package com.nov.KgLowDurable.pojo.dto;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorage;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorage;
import com.nov.KgLowDurable.pojo.vo.LdOneOutStorageDetailVO;
import com.nov.KgLowDurable.pojo.vo.LdOnePutStorageDetailVO;
import com.nov.KgLowDurable.pojo.vo.UserInfoVO;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;

@ -1,6 +1,5 @@
package com.nov.KgLowDurable.pojo.dto;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorage;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import com.nov.KgLowDurable.pojo.vo.LdOnePutStorageDetailVO;
import com.nov.KgLowDurable.pojo.vo.UserInfoVO;
import lombok.Data;

@ -2,11 +2,9 @@ package com.nov.KgLowDurable.pojo.dto;
import com.nov.KgLowDurable.pojo.entity.LdTwoOutStorage;
import com.nov.KgLowDurable.pojo.entity.LdTwoOutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdTwoPutStorage;
import com.nov.KgLowDurable.pojo.vo.UserInfoVO;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;

@ -1,5 +1,4 @@
package com.nov.KgLowDurable.pojo.dto;
import lombok.Data;
import java.io.Serializable;

@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;

@ -3,6 +3,7 @@ package com.nov.KgLowDurable.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
@ -108,6 +109,7 @@ public class LdDurableForm implements Serializable {
/**
* 归还时间
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date returnTime;

@ -1,11 +1,9 @@
package com.nov.KgLowDurable.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@ -4,7 +4,6 @@ package com.nov.KgLowDurable.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.nov.KgLowDurable.common.BaseEntity;
import lombok.Data;
import lombok.experimental.Accessors;

@ -4,7 +4,6 @@ package com.nov.KgLowDurable.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.nov.KgLowDurable.common.BaseEntity;
import lombok.Data;
import lombok.experimental.Accessors;

@ -7,8 +7,6 @@ import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
/**

@ -1,10 +1,4 @@
package com.nov.KgLowDurable.pojo.entity;
/**
* @author: liweidong
* @create: 2025-12-23
*/
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

@ -1,17 +1,10 @@
package com.nov.KgLowDurable.pojo.entity;
/**
* @author: liweidong
* @create: 2025-12-26
*/
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;

@ -1,9 +1,5 @@
package com.nov.KgLowDurable.pojo.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.nov.KgLowDurable.common.BaseEntity;
import lombok.Data;
import lombok.experimental.Accessors;

@ -1,7 +1,6 @@
package com.nov.KgLowDurable.pojo.vo;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import lombok.Data;
import lombok.experimental.Accessors;
@ -21,6 +20,8 @@ public class LdOneOutStorageDetailVO extends LdOneOutStorageDetail implements Se
/**
* 本次出库数量
*/
private BigDecimal outboundQuantity;
private BigDecimal theOutboundQuantity;
}

@ -2,8 +2,6 @@ package com.nov.KgLowDurable.pojo.vo;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorage;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorage;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import lombok.Data;
import lombok.experimental.Accessors;

@ -1,14 +1,9 @@
package com.nov.KgLowDurable.pojo.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.nov.KgLowDurable.pojo.entity.LdTwoPutStorage;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* @author: liweidong

@ -1,13 +1,8 @@
package com.nov.KgLowDurable.pojo.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.nov.KgLowDurable.pojo.entity.Menu;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.ArrayList;
import java.util.List;
/**

@ -2,8 +2,6 @@ package com.nov.KgLowDurable.pojo.vo;
import lombok.Data;
import java.util.List;
/**
* @author: liweidong
* @create: 2025-12-16

@ -3,8 +3,6 @@ package com.nov.KgLowDurable.pojo.vo;
import lombok.Data;
import java.util.List;
/**
* 视图实体类
*

@ -1,9 +1,7 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nov.KgLowDurable.pojo.entity.Department;
import com.nov.KgLowDurable.pojo.entity.LdConsumerForm;
import com.nov.KgLowDurable.pojo.vo.DepartmentVO;
import java.util.List;

@ -1,11 +1,6 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.entity.LdDemandEnd;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail;
import com.nov.KgLowDurable.pojo.vo.QuarterVO;
import java.util.List;

@ -1,9 +1,8 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.entity.LdConsumerForm;
import java.util.List;

@ -3,11 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.pojo.entity.LdDemandEnd;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdPurchaseEnd;
import com.nov.KgLowDurable.pojo.vo.DepartmentVO;
import com.nov.KgLowDurable.pojo.vo.QuarterVO;
import java.util.List;
import java.util.Map;

@ -1,7 +1,7 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.entity.LdDurableForm;

@ -1,10 +1,9 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.pojo.entity.LdInventoryRecord;
import java.util.List;
/**
* 出入库记录服务类

@ -1,7 +1,6 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.pojo.entity.LdMaterial;

@ -1,11 +1,7 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.pojo.entity.LdOneForm;
import java.util.List;

@ -1,8 +1,6 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDemandEnd;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStoragePurchaseEnd;
import java.util.List;

@ -1,11 +1,6 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import java.util.List;
/**

@ -1,20 +1,11 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.pojo.dto.LdOneOutStorageDto;
import com.nov.KgLowDurable.pojo.dto.LdOnePutStorageDto;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorage;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorage;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import com.nov.KgLowDurable.pojo.vo.LdOneOutStorageInfoVO;
import com.nov.KgLowDurable.pojo.vo.LdOnePutStorageInfoVO;
import java.util.Date;
import java.util.List;
/**
* @author liweidong

@ -1,10 +1,6 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import java.util.List;
/**

@ -1,7 +1,6 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStoragePurchaseEnd;
import java.util.List;

@ -1,15 +1,10 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.pojo.dto.LdOnePutStorageDto;
import com.nov.KgLowDurable.pojo.entity.LdOneForm;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorage;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import com.nov.KgLowDurable.pojo.vo.LdOnePutStorageInfoVO;
import java.util.Date;
import java.util.List;

@ -1,13 +1,10 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorage;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdPurchaseEnd;
import com.nov.KgLowDurable.pojo.vo.QuarterVO;
import java.util.List;
import java.util.Map;
/**

@ -0,0 +1,31 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.pojo.entity.LdTwoInventoryRecord;
/**
* 出入库记录服务类
*
* @author liweidong
*/
public interface ILdTwoInventoryRecordService extends IService<LdTwoInventoryRecord> {
/**
* 易耗品出入库记录
* @param consumerFormId
* @param transactionType
* @param pageNum
* @param pageSize
* @return
*/
PageInfo<LdTwoInventoryRecord> getTwoInventoryRecordList(Long consumerFormId, String transactionType, Integer pageNum, Integer pageSize);
/**
* 二级出库 审批回调接口
* @param twoOutStorageId
* @param approveResult
* @return
*/
boolean approve(Long twoOutStorageId, boolean approveResult);
}

@ -1,7 +1,6 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nov.KgLowDurable.pojo.entity.LdTwoOutStorageDetail;
import java.util.List;

@ -4,7 +4,6 @@ import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.pojo.dto.LdTwoOutStorageDto;
import com.nov.KgLowDurable.pojo.entity.LdTwoOutStorage;
import com.nov.KgLowDurable.pojo.vo.LdTwoOutStorageInfoVO;
import java.util.Date;

@ -1,9 +1,5 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdTwoPutStorageDetail;
import java.util.List;

@ -1,20 +1,11 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.pojo.dto.LdOnePutStorageDto;
import com.nov.KgLowDurable.pojo.dto.LdTwoPutStorageDto;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorage;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import com.nov.KgLowDurable.pojo.entity.LdTwoPutStorage;
import com.nov.KgLowDurable.pojo.vo.LdOnePutStorageInfoVO;
import com.nov.KgLowDurable.pojo.vo.LdTwoPutStorageInfoVO;
import com.nov.KgLowDurable.pojo.vo.LdTwoPutStorageVO;
import java.util.Date;
import java.util.List;
/**
* @author liweidong

@ -1,10 +1,7 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nov.KgLowDurable.pojo.entity.Department;
import com.nov.KgLowDurable.pojo.entity.User;
import com.nov.KgLowDurable.pojo.vo.DepartmentVO;
import com.nov.KgLowDurable.pojo.vo.UserInfoVO;
import java.util.List;

@ -2,12 +2,9 @@ package com.nov.KgLowDurable.service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nov.KgLowDurable.mapper.DepartmentMapper;
import com.nov.KgLowDurable.mapper.LdApproveMapper;
import com.nov.KgLowDurable.pojo.entity.Department;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.vo.DepartmentVO;
import com.nov.KgLowDurable.service.IDepartmentService;
import com.nov.KgLowDurable.service.ILdApproveService;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@ -1,31 +1,14 @@
package com.nov.KgLowDurable.service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.exception.CustomerException;
import com.nov.KgLowDurable.mapper.LdApproveMapper;
import com.nov.KgLowDurable.mapper.LdDemandEndMapper;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.entity.LdDemandEnd;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDemandEnd;
import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail;
import com.nov.KgLowDurable.pojo.vo.QuarterVO;
import com.nov.KgLowDurable.service.ILdApproveService;
import com.nov.KgLowDurable.service.ILdDemandEndService;
import com.nov.KgLowDurable.service.ILdOneOutStorageDemandEndService;
import com.nov.KgLowDurable.service.ILdOneOutStorageDetailService;
import com.nov.KgLowDurable.util.StringUtils;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 服务实现类

@ -119,11 +119,11 @@ public class LdOneOutStorageServiceImpl extends ServiceImpl<LdOneOutStorageMappe
if(null == oneForm){
throw new CustomerException(ldOneOutStorageDetail.getMaterialName()+"物资不存在,无法出库");
}
if (ldOneOutStorageDetail.getOutboundQuantity().compareTo(oneForm.getNum())>0){
if (ldOneOutStorageDetail.getTheOutboundQuantity().compareTo(oneForm.getNum())>0){
throw new CustomerException(ldOneOutStorageDetail.getMaterialName()+"物资数量不足,请合理出库");
}
// 计算数量 金额
BigDecimal result = oneForm.getNum().subtract(ldOneOutStorageDetail.getOutboundQuantity());
BigDecimal result = oneForm.getNum().subtract(ldOneOutStorageDetail.getTheOutboundQuantity());
BigDecimal product = result.multiply(oneForm.getUnitPrice());
oneForm.setNum(result);
oneForm.setAmount(product);
@ -133,7 +133,7 @@ public class LdOneOutStorageServiceImpl extends ServiceImpl<LdOneOutStorageMappe
LdInventoryRecord inventoryRecord = new LdInventoryRecord()
.setOneFromId(oneForm.getId())
.setTransactionType(BatchConstant.OUT_WAREHOUSE)
.setQuantity(ldOneOutStorageDetail.getOutboundQuantity())
.setQuantity(ldOneOutStorageDetail.getTheOutboundQuantity())
.setOperatorId(dto.getUserInfoVO().getUserId())
.setOperatorName(dto.getUserInfoVO().getName())
.setDepartmentId(dto.getUserInfoVO().getMainErDepartment())
@ -166,7 +166,7 @@ public class LdOneOutStorageServiceImpl extends ServiceImpl<LdOneOutStorageMappe
.setType(ldOneOutStorageDetail.getType())
.setUnit(ldOneOutStorageDetail.getUnit())
.setDemandQuantity(ldOneOutStorageDetail.getApplicationQuantity())
.setInboundQuantity(ldOneOutStorageDetail.getOutboundQuantity())
.setInboundQuantity(ldOneOutStorageDetail.getTheOutboundQuantity())
.setUnitPrice(oneForm.getUnitPrice())
.setDemandDepartment(ldOneOutStorageDetail.getDepartment())
.setDemandDepartmentName(ldOneOutStorageDetail.getDepartmentName())
@ -265,7 +265,7 @@ public class LdOneOutStorageServiceImpl extends ServiceImpl<LdOneOutStorageMappe
demandEndRelations.add(demandEndRelation);
// 计算已出库总量
calculateOutboundSumQuantity(detailEntity, detailVO.getLdDemandEndId(), detailVO.getOutboundQuantity());
calculateOutboundSumQuantity(detailEntity, detailVO.getLdDemandEndId(), detailVO.getTheOutboundQuantity());
}
}
@ -291,7 +291,7 @@ public class LdOneOutStorageServiceImpl extends ServiceImpl<LdOneOutStorageMappe
detailEntity.setOneOutStorageId(outOneStorageId);
detailEntity.setOneOutStorageNo(orderNo);
detailEntity.setOutStoragePerson(userInfo.getName());
detailEntity.setOutboundQuantity(detailVO.getOutboundQuantity());
detailEntity.setOutboundQuantity(detailVO.getTheOutboundQuantity());
detailEntity.setOutStorageTime(outStorageTime);
String outboundDetailCode = orderNoGen.generate("FID");
@ -416,7 +416,7 @@ public class LdOneOutStorageServiceImpl extends ServiceImpl<LdOneOutStorageMappe
detailEntity.setOneOutStorageId(outStorageId);
detailEntity.setOneOutStorageNo(orderNo);
detailEntity.setOutStoragePerson(userInfo.getName());
detailEntity.setOutboundQuantity(detailVO.getOutboundQuantity());
detailEntity.setOutboundQuantity(detailVO.getTheOutboundQuantity());
detailEntity.setOutStorageTime(new Date());
// 生成明细编号

@ -22,7 +22,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;

@ -13,7 +13,6 @@ import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;

@ -0,0 +1,48 @@
package com.nov.KgLowDurable.service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.nov.KgLowDurable.constant.BatchConstant;
import com.nov.KgLowDurable.exception.CustomerException;
import com.nov.KgLowDurable.mapper.LdInventoryRecordMapper;
import com.nov.KgLowDurable.mapper.LdTwoInventoryRecordMapper;
import com.nov.KgLowDurable.pojo.entity.*;
import com.nov.KgLowDurable.service.*;
import com.nov.KgLowDurable.util.StringUtils;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.List;
/**
* 服务实现类
*
* @author Chill
*/
@Service
@AllArgsConstructor
public class LdTwoInventoryRecordServiceImpl extends ServiceImpl<LdTwoInventoryRecordMapper, LdTwoInventoryRecord> implements ILdTwoInventoryRecordService {
@Autowired
LdTwoInventoryRecordMapper twoInventoryRecordMapper;
@Override
public PageInfo<LdTwoInventoryRecord> getTwoInventoryRecordList(Long consumerFormId, String transactionType, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum,pageSize);
// 查询全部
List<LdTwoInventoryRecord> ldTwoInventoryRecordList = twoInventoryRecordMapper.selectByConsumerFormId(consumerFormId,transactionType);
// 返回结果
PageInfo<LdTwoInventoryRecord> pageInfo = new PageInfo<>(ldTwoInventoryRecordList);
return pageInfo;
}
@Override
public boolean approve(Long twoOutStorageId, boolean approveResult) {
return false;
}
}

@ -1,15 +1,11 @@
package com.nov.KgLowDurable.service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nov.KgLowDurable.mapper.LdTwoOutStorageDetailMapper;
import com.nov.KgLowDurable.pojo.entity.LdTwoOutStorageDetail;
import com.nov.KgLowDurable.service.ILdTwoOutStorageDetailService;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**

@ -1,5 +1,4 @@
package com.nov.KgLowDurable.service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -22,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@ -11,7 +11,6 @@ import com.nov.KgLowDurable.service.ILdTwoPutStorageDetailService;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**

@ -1,5 +1,4 @@
package com.nov.KgLowDurable.service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -20,7 +19,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
@ -49,6 +47,9 @@ public class LdTwoPutStorageServiceImpl extends ServiceImpl<LdTwoPutStorageMappe
@Autowired
ILdDurableFormService durableFormService;
@Autowired
ILdTwoInventoryRecordService twoInventoryRecordService;
@Override
public PageInfo<LdTwoPutStorageVO> getTwoPutStorageList(Date startTime, Date endTime, String inOperator, String demandDepartment, Integer pageNum, Integer pageSize) {
@ -66,126 +67,374 @@ public class LdTwoPutStorageServiceImpl extends ServiceImpl<LdTwoPutStorageMappe
return new LdTwoPutStorageInfoVO().setLdTwoPutStorage(ldTwoPutStorage).setLdTwoPutStorageDetails(ldTwoPutStorageDetailList);
}
// @Override
// @Transactional(rollbackFor = Exception.class)
// public boolean submit(LdTwoPutStorageDto dto) {
// LdTwoPutStorage ldTwoPutStorage = twoPutStorageMapper.selectById(dto.getLdTwoPutStorage().getId());
// if(null == ldTwoPutStorage){
// throw new CustomerException("数据为空");
// }
// ldTwoPutStorage.setStatus(BatchConstant.ABOVE_WAREHOUSE);
// ldTwoPutStorage.setInOperatorId(dto.getUserInfoVO().getUserId());
// ldTwoPutStorage.setInOperatorName(dto.getUserInfoVO().getName());
// ldTwoPutStorage.setInDate(new Date());
// int updateReturt = twoPutStorageMapper.updateById(ldTwoPutStorage);
// if(updateReturt<=0){
// throw new CustomerException("提交失败");
// }
// //明细入库 加库存 做记录
// List<LdTwoPutStorageDetail> ldTwoPutStorageDetailList = twoPutStorageDetailService.getByTwoPutStorageId(dto.getLdTwoPutStorage().getId());
// for (LdTwoPutStorageDetail ldTwoPutStorageDetail : ldTwoPutStorageDetailList) {
// ldTwoPutStorageDetail.setInboundStatus(BatchConstant.ABOVE_WAREHOUSE).setInboundPerson(dto.getUserInfoVO().getName()).setInboundTime(new Date());
// boolean update = twoPutStorageDetailService.updateById(ldTwoPutStorageDetail);
// if(!update){
// throw new CustomerException("提交失败");
// }
// if(BatchConstant.CONSUMER.equals(ldTwoPutStorageDetail.getType())){
// // 查询易耗库存
// LdConsumerForm ldConsumerForm = consumerFormService.getByMaterialId(ldTwoPutStorageDetail.getMaterialId());
// if(null == ldConsumerForm){
// ldConsumerForm = new LdConsumerForm()
// .setMaterialId(ldTwoPutStorageDetail.getMaterialId())
// .setMaterialName(ldTwoPutStorageDetail.getMaterialName())
// .setMaterialCode(ldTwoPutStorageDetail.getMaterialCode())
// .setOnePutMaterialCode(ldTwoPutStorageDetail.getOnePutMaterialCode())
// .setModel(ldTwoPutStorageDetail.getModel())
// .setType(ldTwoPutStorageDetail.getType())
// .setUnit(ldTwoPutStorageDetail.getUnit())
// .setNum(ldTwoPutStorageDetail.getInboundQuantity())
// .setUnitPrice(ldTwoPutStorageDetail.getUnitPrice())
// .setAmount(ldTwoPutStorageDetail.getInboundQuantity()
// .multiply(ldTwoPutStorageDetail.getUnitPrice()))
// .setDepartmentId(ldTwoPutStorageDetail.getDemandDepartment())
// .setDepartment(ldTwoPutStorageDetail.getDemandDepartmentName());
// consumerFormService.save(ldConsumerForm);
// }else {
// // 数量 = 原数量 + 入库数量
// BigDecimal originalNum = ldConsumerForm.getNum() != null ? ldConsumerForm.getNum() : BigDecimal.ZERO;
// BigDecimal inboundQuantity = ldTwoPutStorageDetail.getInboundQuantity() != null ? ldTwoPutStorageDetail.getInboundQuantity() : BigDecimal.ZERO;
// BigDecimal newNum = originalNum.add(inboundQuantity);
// ldConsumerForm.setNum(newNum);
//
// // 金额 = 原金额 + 入库金额
// BigDecimal originalAmount = ldConsumerForm.getAmount() != null ? ldConsumerForm.getAmount() : BigDecimal.ZERO;
// BigDecimal inboundAmount = ldTwoPutStorageDetail.getInboundQuantity().multiply(ldTwoPutStorageDetail.getUnitPrice());
// BigDecimal newAmount = originalAmount.add(inboundAmount);
// ldConsumerForm.setAmount(newAmount);
//
// // 单价 = 新金额 / 新数量
// BigDecimal newUnitPrice = BigDecimal.ZERO;
// if (newNum.compareTo(BigDecimal.ZERO) != 0) {
// // 保留6位小数,四舍五入
// newUnitPrice = newAmount.divide(newNum, 4, RoundingMode.HALF_UP);
// }
// ldConsumerForm.setUnitPrice(newUnitPrice);
// consumerFormService.updateById(ldConsumerForm);
// }
//
// LdTwoInventoryRecord ldTwoInventoryRecord = new LdTwoInventoryRecord();
// ldTwoInventoryRecord.setConsumerFormId(ldConsumerForm.getId().longValue());
// ldTwoInventoryRecord.setTransactionType(BatchConstant.PUT_WAREHOUSE);
// ldTwoInventoryRecord.setQuantity(ldTwoPutStorageDetail.getInboundQuantity());
// ldTwoInventoryRecord.setMoney(ldTwoPutStorageDetail.getUnitPrice());
// ldTwoInventoryRecord.setOperatorId(dto.getUserInfoVO().getUserId());
// ldTwoInventoryRecord.setOperatorName(dto.getUserInfoVO().getName());
// ldTwoInventoryRecord.setOperationTime(new Date());
// ldTwoInventoryRecord.setDepartmentId(dto.getUserInfoVO().getMainErDepartment());
// ldTwoInventoryRecord.setDepartmentName(dto.getUserInfoVO().getMainErDepartmentName());
// boolean saveTwoInventoryRecord = twoInventoryRecordService.save(ldTwoInventoryRecord);
// if(!saveTwoInventoryRecord){
// throw new IllegalArgumentException("入库记录保存失败");
// }
// }else {
// // 耐用品 获取入库数量
// BigDecimal inboundQuantity = ldTwoPutStorageDetail.getInboundQuantity();
// // 验证数量
// if (inboundQuantity == null) {
// throw new IllegalArgumentException("入库数量不能为空");
// }
// // 验证是否为整数
// if (!isInteger(inboundQuantity)) {
// throw new IllegalArgumentException("耐用品入库数量必须是整数");
// }
// // 验证是否为正数
// if (inboundQuantity.compareTo(BigDecimal.ZERO) <= 0) {
// throw new IllegalArgumentException("入库数量必须大于0");
// }
// // 转换为整数
// int count = inboundQuantity.intValue();
//
// System.out.println("开始处理 " + count + " 个耐用品");
//
// List<LdDurableForm> durableList = new ArrayList<>();
// // 循环处理每个物品
// for (int i = 0; i < count; i++) {
// LdDurableForm ldDurableForm = new LdDurableForm()
// .setMaterialId(ldTwoPutStorageDetail.getMaterialId())
// .setMaterialName(ldTwoPutStorageDetail.getMaterialName())
// .setMaterialCode(ldTwoPutStorageDetail.getMaterialCode())
// .setOnePutMaterialCode(ldTwoPutStorageDetail.getOnePutMaterialCode())
// .setModel(ldTwoPutStorageDetail.getModel())
// .setType(ldTwoPutStorageDetail.getType())
// .setUnit(ldTwoPutStorageDetail.getUnit())
// .setNum(new BigDecimal(1))
// .setUnitPrice(ldTwoPutStorageDetail.getUnitPrice())
// .setAmount(ldTwoPutStorageDetail.getUnitPrice())
// .setDepartmentId(ldTwoPutStorageDetail.getDemandDepartment())
// .setDepartment(ldTwoPutStorageDetail.getDemandDepartmentName());
// durableList.add(ldDurableForm);
// }
// durableFormService.saveBatch(durableList);
// }
// }
//
// return true;
// }
//
// /**
// * 判断BigDecimal是否为整数
// */
// private boolean isInteger(BigDecimal value) {
// try {
// value.toBigIntegerExact();
// return true;
// } catch (ArithmeticException e) {
// return false;
// }
// }
@Override
@Transactional(rollbackFor = Exception.class)
public boolean submit(LdTwoPutStorageDto dto) {
// 参数校验
if (dto == null || dto.getLdTwoPutStorage() == null || dto.getUserInfoVO() == null) {
throw new CustomerException("参数不能为空");
}
// 1. 更新主表状态
LdTwoPutStorage ldTwoPutStorage = twoPutStorageMapper.selectById(dto.getLdTwoPutStorage().getId());
if(null == ldTwoPutStorage){
throw new CustomerException("数据为空");
}
ldTwoPutStorage.setStatus(BatchConstant.ABOVE_WAREHOUSE);
ldTwoPutStorage.setInOperatorId(dto.getUserInfoVO().getUserId());
ldTwoPutStorage.setInOperatorName(dto.getUserInfoVO().getName());
ldTwoPutStorage.setInDate(new Date());
int updateReturt = twoPutStorageMapper.updateById(ldTwoPutStorage);
if(updateReturt<=0){
throw new CustomerException("提交失败");
}
//明细入库 加库存
List<LdTwoPutStorageDetail> ldTwoPutStorageDetailList = twoPutStorageDetailService.getByTwoPutStorageId(dto.getLdTwoPutStorage().getId());
for (LdTwoPutStorageDetail ldTwoPutStorageDetail : ldTwoPutStorageDetailList) {
ldTwoPutStorageDetail.setInboundStatus(BatchConstant.ABOVE_WAREHOUSE).setInboundPerson(dto.getUserInfoVO().getName()).setInboundTime(new Date());
boolean update = twoPutStorageDetailService.updateById(ldTwoPutStorageDetail);
if(!update){
throw new CustomerException("提交失败");
if (null == ldTwoPutStorage) {
throw new CustomerException("入库单不存在");
}
// 状态检查(防止重复提交)
if (BatchConstant.ABOVE_WAREHOUSE.equals(ldTwoPutStorage.getStatus())) {
throw new CustomerException("该入库单已提交");
}
UserInfoVO userInfo = dto.getUserInfoVO();
Date now = new Date();
ldTwoPutStorage.setStatus(BatchConstant.ABOVE_WAREHOUSE)
.setInOperatorId(userInfo.getUserId())
.setInOperatorName(userInfo.getName())
.setInDate(now);
int updateResult = twoPutStorageMapper.updateById(ldTwoPutStorage);
if (updateResult <= 0) {
throw new CustomerException("入库单提交失败");
}
// 2. 批量处理明细
List<LdTwoPutStorageDetail> details = twoPutStorageDetailService.getByTwoPutStorageId(dto.getLdTwoPutStorage().getId());
if (CollectionUtils.isEmpty(details)) {
throw new CustomerException("入库明细为空");
}
// 批量更新明细状态
List<LdTwoPutStorageDetail> updatedDetails = new ArrayList<>();
for (LdTwoPutStorageDetail detail : details) {
detail.setInboundStatus(BatchConstant.ABOVE_WAREHOUSE)
.setInboundPerson(userInfo.getName())
.setInboundTime(now);
updatedDetails.add(detail);
}
boolean updateBatchResult = twoPutStorageDetailService.updateBatchById(updatedDetails);
if (!updateBatchResult) {
throw new CustomerException("明细更新失败");
}
// 3. 按类型分别处理
processConsumerGoods(details, userInfo); // 易耗品
processDurableGoods(details, userInfo); // 耐用品
return true;
}
/**
* 处理易耗品
*/
@Transactional(rollbackFor = Exception.class)
private void processConsumerGoods(List<LdTwoPutStorageDetail> details, UserInfoVO userInfo) {
Date now = new Date();
for (LdTwoPutStorageDetail detail : details) {
if (!BatchConstant.CONSUMER.equals(detail.getType())) {
continue;
}
if(BatchConstant.CONSUMER.equals(ldTwoPutStorageDetail.getType())){
// 查询易耗库存
LdConsumerForm ldConsumerForm = consumerFormService.getByMaterialId(ldTwoPutStorageDetail.getMaterialId());
if(null == ldConsumerForm){
ldConsumerForm = new LdConsumerForm()
.setMaterialId(ldTwoPutStorageDetail.getMaterialId())
.setMaterialName(ldTwoPutStorageDetail.getMaterialName())
.setMaterialCode(ldTwoPutStorageDetail.getMaterialCode())
.setOnePutMaterialCode(ldTwoPutStorageDetail.getOnePutMaterialCode())
.setModel(ldTwoPutStorageDetail.getModel())
.setType(ldTwoPutStorageDetail.getType())
.setUnit(ldTwoPutStorageDetail.getUnit())
.setNum(ldTwoPutStorageDetail.getInboundQuantity())
.setUnitPrice(ldTwoPutStorageDetail.getUnitPrice())
.setAmount(ldTwoPutStorageDetail.getInboundQuantity()
.multiply(ldTwoPutStorageDetail.getUnitPrice()))
.setDepartmentId(ldTwoPutStorageDetail.getDemandDepartment())
.setDepartment(ldTwoPutStorageDetail.getDemandDepartmentName());
consumerFormService.save(ldConsumerForm);
}else {
// 数量 = 原数量 + 入库数量
BigDecimal originalNum = ldConsumerForm.getNum() != null ? ldConsumerForm.getNum() : BigDecimal.ZERO;
BigDecimal inboundQuantity = ldTwoPutStorageDetail.getInboundQuantity() != null ? ldTwoPutStorageDetail.getInboundQuantity() : BigDecimal.ZERO;
BigDecimal newNum = originalNum.add(inboundQuantity);
ldConsumerForm.setNum(newNum);
// 金额 = 原金额 + 入库金额
BigDecimal originalAmount = ldConsumerForm.getAmount() != null ? ldConsumerForm.getAmount() : BigDecimal.ZERO;
BigDecimal inboundAmount = ldTwoPutStorageDetail.getInboundQuantity().multiply(ldTwoPutStorageDetail.getUnitPrice());
BigDecimal newAmount = originalAmount.add(inboundAmount);
ldConsumerForm.setAmount(newAmount);
// 单价 = 新金额 / 新数量
BigDecimal newUnitPrice = BigDecimal.ZERO;
if (newNum.compareTo(BigDecimal.ZERO) != 0) {
// 保留6位小数,四舍五入
newUnitPrice = newAmount.divide(newNum, 4, RoundingMode.HALF_UP);
}
ldConsumerForm.setUnitPrice(newUnitPrice);
consumerFormService.updateById(ldConsumerForm);
}
}else {
// 耐用品 获取入库数量
BigDecimal inboundQuantity = ldTwoPutStorageDetail.getInboundQuantity();
// 验证数量
if (inboundQuantity == null) {
throw new IllegalArgumentException("入库数量不能为空");
}
// 验证是否为整数
if (!isInteger(inboundQuantity)) {
throw new IllegalArgumentException("耐用品入库数量必须是整数");
}
// 验证是否为正数
if (inboundQuantity.compareTo(BigDecimal.ZERO) <= 0) {
throw new IllegalArgumentException("入库数量必须大于0");
}
// 转换为整数
int count = inboundQuantity.intValue();
System.out.println("开始处理 " + count + " 个耐用品");
List<LdDurableForm> durableList = new ArrayList<>();
// 循环处理每个物品
for (int i = 0; i < count; i++) {
LdDurableForm ldDurableForm = new LdDurableForm()
.setMaterialId(ldTwoPutStorageDetail.getMaterialId())
.setMaterialName(ldTwoPutStorageDetail.getMaterialName())
.setMaterialCode(ldTwoPutStorageDetail.getMaterialCode())
.setOnePutMaterialCode(ldTwoPutStorageDetail.getOnePutMaterialCode())
.setModel(ldTwoPutStorageDetail.getModel())
.setType(ldTwoPutStorageDetail.getType())
.setUnit(ldTwoPutStorageDetail.getUnit())
.setNum(new BigDecimal(1))
.setUnitPrice(ldTwoPutStorageDetail.getUnitPrice())
.setAmount(ldTwoPutStorageDetail.getInboundQuantity()
.multiply(ldTwoPutStorageDetail.getUnitPrice()))
.setDepartmentId(ldTwoPutStorageDetail.getDemandDepartment())
.setDepartment(ldTwoPutStorageDetail.getDemandDepartmentName());
durableList.add(ldDurableForm);
}
durableFormService.saveBatch(durableList);
// 参数校验
validateDetailForConsumer(detail);
// 处理库存
LdConsumerForm inventory = consumerFormService.getByMaterialId(detail.getMaterialId());
if (inventory == null) {
// 新增库存
inventory = buildNewConsumerInventory(detail);
consumerFormService.save(inventory);
} else {
// 更新库存
updateConsumerInventory(inventory, detail);
consumerFormService.updateById(inventory);
}
// 保存入库记录
saveInventoryRecord(inventory, detail, userInfo, now, BatchConstant.PUT_WAREHOUSE);
}
}
return true;
/**
* 处理耐用品
*/
@Transactional(rollbackFor = Exception.class)
private void processDurableGoods(List<LdTwoPutStorageDetail> details, UserInfoVO userInfo) {
List<LdDurableForm> durableList = new ArrayList<>();
Date now = new Date();
for (LdTwoPutStorageDetail detail : details) {
if (!BatchConstant.DURABLE.equals(detail.getType())) {
continue;
}
// 参数校验
validateDetailForDurable(detail);
BigDecimal inboundQuantity = detail.getInboundQuantity();
int count = inboundQuantity.intValue();
// 批量创建耐用品记录
for (int i = 0; i < count; i++) {
LdDurableForm durable = new LdDurableForm()
.setMaterialId(detail.getMaterialId())
.setMaterialName(detail.getMaterialName())
.setMaterialCode(detail.getMaterialCode())
.setOnePutMaterialCode(detail.getOnePutMaterialCode())
.setModel(detail.getModel())
.setType(detail.getType())
.setUnit(detail.getUnit())
.setNum(BigDecimal.ONE)
.setUnitPrice(detail.getUnitPrice())
.setAmount(detail.getUnitPrice())
.setDepartmentId(detail.getDemandDepartment())
.setDepartment(detail.getDemandDepartmentName());
durableList.add(durable);
}
}
if (!durableList.isEmpty()) {
durableFormService.saveBatch(durableList);
}
}
/**
* 判断BigDecimal是否为整数
* 校验易耗品明细
*/
private boolean isInteger(BigDecimal value) {
private void validateDetailForConsumer(LdTwoPutStorageDetail detail) {
if (detail.getInboundQuantity() == null || detail.getInboundQuantity().compareTo(BigDecimal.ZERO) <= 0) {
throw new CustomerException("易耗品入库数量必须大于0");
}
if (detail.getUnitPrice() == null || detail.getUnitPrice().compareTo(BigDecimal.ZERO) < 0) {
throw new CustomerException("单价不能为负数");
}
}
/**
* 校验耐用品明细
*/
private void validateDetailForDurable(LdTwoPutStorageDetail detail) {
if (detail.getInboundQuantity() == null) {
throw new CustomerException("入库数量不能为空");
}
// 验证是否为整数
try {
value.toBigIntegerExact();
return true;
detail.getInboundQuantity().intValueExact();
} catch (ArithmeticException e) {
return false;
throw new CustomerException("耐用品入库数量必须是整数");
}
if (detail.getInboundQuantity().compareTo(BigDecimal.ZERO) <= 0) {
throw new CustomerException("入库数量必须大于0");
}
}
/**
* 创建新的易耗品库存
*/
private LdConsumerForm buildNewConsumerInventory(LdTwoPutStorageDetail detail) {
BigDecimal amount = detail.getInboundQuantity().multiply(detail.getUnitPrice());
return new LdConsumerForm()
.setMaterialId(detail.getMaterialId())
.setMaterialName(detail.getMaterialName())
.setMaterialCode(detail.getMaterialCode())
.setOnePutMaterialCode(detail.getOnePutMaterialCode())
.setModel(detail.getModel())
.setType(detail.getType())
.setUnit(detail.getUnit())
.setNum(detail.getInboundQuantity())
.setUnitPrice(detail.getUnitPrice())
.setAmount(amount)
.setDepartmentId(detail.getDemandDepartment())
.setDepartment(detail.getDemandDepartmentName());
}
/**
* 更新易耗品库存
*/
private void updateConsumerInventory(LdConsumerForm inventory, LdTwoPutStorageDetail detail) {
BigDecimal originalNum = inventory.getNum() != null ? inventory.getNum() : BigDecimal.ZERO;
BigDecimal inboundQuantity = detail.getInboundQuantity() != null ? detail.getInboundQuantity() : BigDecimal.ZERO;
// 更新数量
BigDecimal newNum = originalNum.add(inboundQuantity);
inventory.setNum(newNum);
// 更新金额
BigDecimal originalAmount = inventory.getAmount() != null ? inventory.getAmount() : BigDecimal.ZERO;
BigDecimal inboundAmount = inboundQuantity.multiply(detail.getUnitPrice());
BigDecimal newAmount = originalAmount.add(inboundAmount);
inventory.setAmount(newAmount);
// 重新计算单价(加权平均)
if (newNum.compareTo(BigDecimal.ZERO) > 0) {
BigDecimal newUnitPrice = newAmount.divide(newNum, 6, RoundingMode.HALF_UP);
inventory.setUnitPrice(newUnitPrice);
}
}
/**
* 保存出入库记录
*/
private void saveInventoryRecord(LdConsumerForm inventory, LdTwoPutStorageDetail detail,
UserInfoVO userInfo, Date operationTime, String transactionType) {
LdTwoInventoryRecord record = new LdTwoInventoryRecord()
.setConsumerFormId(inventory.getId().longValue())
.setTransactionType(transactionType)
.setQuantity(detail.getInboundQuantity())
.setMoney(detail.getUnitPrice())
.setOperatorId(userInfo.getUserId())
.setOperatorName(userInfo.getName())
.setOperationTime(operationTime)
.setDepartmentId(userInfo.getMainErDepartment())
.setDepartmentName(userInfo.getMainErDepartmentName());
boolean saved = twoInventoryRecordService.save(record);
if (!saved) {
throw new CustomerException("出入库记录保存失败");
}
}
}

@ -1,16 +1,11 @@
package com.nov.KgLowDurable.service.Impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nov.KgLowDurable.mapper.DepartmentMapper;
import com.nov.KgLowDurable.mapper.UserMapper;
import com.nov.KgLowDurable.pojo.entity.Department;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.entity.User;
import com.nov.KgLowDurable.pojo.vo.DepartmentVO;
import com.nov.KgLowDurable.pojo.vo.UserInfoVO;
import com.nov.KgLowDurable.service.IDepartmentService;
import com.nov.KgLowDurable.service.ILdApproveService;
import com.nov.KgLowDurable.service.IUserService;
import com.nov.KgLowDurable.util.HttpUtils;
@ -18,7 +13,6 @@ import lombok.AllArgsConstructor;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;

@ -14,7 +14,7 @@
<result column="type" property="type"/>
</resultMap>
<select id="selectByFromId" resultType="com.nov.KgLowDurable.pojo.entity.LdApprove">
select * from ld_approve where type = #{type} and form_id = #{formId}
select * from ld_approve where type = #{type} and form_id = #{formId} order by level
</select>

@ -0,0 +1,22 @@
<?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.nov.KgLowDurable.mapper.LdTwoInventoryRecordMapper">
<!-- 通用查询映射结果 -->
<resultMap id="LdInventoryRecordMap" type="com.nov.KgLowDurable.pojo.entity.LdTwoInventoryRecord">
<id column="id" property="id" />
<result column="consumer_form_id" property="consumerFormId" />
<result column="transaction_type" property="transactionType" />
<result column="quantity" property="quantity" />
<result column="operator_id" property="operatorId" />
<result column="operator_name" property="operatorName" />
<result column="operation_time" property="operationTime" />
<result column="department_id" property="departmentId" />
<result column="department_name" property="departmentName" />
</resultMap>
<select id="selectByConsumerFormId" resultType="com.nov.KgLowDurable.pojo.entity.LdTwoInventoryRecord">
select * from ld_two_inventory_record where consumer_form_id = #{consumerFormId} and transaction_type = #{transactionType}
</select>
</mapper>
Loading…
Cancel
Save