master
liweidong-hj 6 months ago
parent 23377618ba
commit 3a1a47a86e
  1. 15
      src/main/java/com/nov/KgLowDurable/constant/BatchConstant.java
  2. 45
      src/main/java/com/nov/KgLowDurable/controller/DepartmentController.java
  3. 39
      src/main/java/com/nov/KgLowDurable/controller/LdConsumerFormController.java
  4. 10
      src/main/java/com/nov/KgLowDurable/controller/LdDemandEndController.java
  5. 27
      src/main/java/com/nov/KgLowDurable/controller/LdDurableFormController.java
  6. 1
      src/main/java/com/nov/KgLowDurable/controller/LdOneFormController.java
  7. 3
      src/main/java/com/nov/KgLowDurable/controller/LdOneOutStorageController.java
  8. 62
      src/main/java/com/nov/KgLowDurable/controller/LdTwoOutStorageController.java
  9. 25
      src/main/java/com/nov/KgLowDurable/controller/LdTwoOutStorageDetailController.java
  10. 45
      src/main/java/com/nov/KgLowDurable/controller/UserController.java
  11. 33
      src/main/java/com/nov/KgLowDurable/controller/UserInfoController.java
  12. 19
      src/main/java/com/nov/KgLowDurable/mapper/DepartmentMapper.java
  13. 1
      src/main/java/com/nov/KgLowDurable/mapper/LdApproveMapper.java
  14. 6
      src/main/java/com/nov/KgLowDurable/mapper/LdConsumerFormMapper.java
  15. 7
      src/main/java/com/nov/KgLowDurable/mapper/LdDemandEndMapper.java
  16. 4
      src/main/java/com/nov/KgLowDurable/mapper/LdDurableFormMapper.java
  17. 2
      src/main/java/com/nov/KgLowDurable/mapper/LdOneFormMapper.java
  18. 17
      src/main/java/com/nov/KgLowDurable/mapper/LdTwoOutStorageDetailMapper.java
  19. 21
      src/main/java/com/nov/KgLowDurable/mapper/LdTwoOutStorageMapper.java
  20. 19
      src/main/java/com/nov/KgLowDurable/mapper/UserMapper.java
  21. 37
      src/main/java/com/nov/KgLowDurable/pojo/dto/LdTwoOutStorageDto.java
  22. 49
      src/main/java/com/nov/KgLowDurable/pojo/entity/Department.java
  23. 5
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdConsumerForm.java
  24. 13
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdDemandEnd.java
  25. 15
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdDurableForm.java
  26. 5
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdOneForm.java
  27. 16
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdOneOutStorage.java
  28. 6
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdOnePutStorage.java
  29. 5
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdPurchaseEnd.java
  30. 89
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdTwoInventoryRecord.java
  31. 100
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdTwoOutStorage.java
  32. 102
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdTwoOutStorageDetail.java
  33. 4
      src/main/java/com/nov/KgLowDurable/pojo/entity/LdTwoPutStorage.java
  34. 74
      src/main/java/com/nov/KgLowDurable/pojo/entity/User.java
  35. 26
      src/main/java/com/nov/KgLowDurable/pojo/vo/DepartmentVO.java
  36. 6
      src/main/java/com/nov/KgLowDurable/pojo/vo/LdOnePutStorageInfoVO.java
  37. 35
      src/main/java/com/nov/KgLowDurable/pojo/vo/LdTwoOutStorageInfoVO.java
  38. 21
      src/main/java/com/nov/KgLowDurable/service/IDepartmentService.java
  39. 9
      src/main/java/com/nov/KgLowDurable/service/ILdApproveService.java
  40. 20
      src/main/java/com/nov/KgLowDurable/service/ILdConsumerFormService.java
  41. 8
      src/main/java/com/nov/KgLowDurable/service/ILdDemandEndService.java
  42. 12
      src/main/java/com/nov/KgLowDurable/service/ILdDurableFormService.java
  43. 2
      src/main/java/com/nov/KgLowDurable/service/ILdOneFormService.java
  44. 20
      src/main/java/com/nov/KgLowDurable/service/ILdTwoOutStorageDetailService.java
  45. 42
      src/main/java/com/nov/KgLowDurable/service/ILdTwoOutStorageService.java
  46. 38
      src/main/java/com/nov/KgLowDurable/service/IUserInfoService.java
  47. 46
      src/main/java/com/nov/KgLowDurable/service/IUserService.java
  48. 32
      src/main/java/com/nov/KgLowDurable/service/Impl/DepartmentServiceImpl.java
  49. 7
      src/main/java/com/nov/KgLowDurable/service/Impl/LdApproveServiceImpl.java
  50. 18
      src/main/java/com/nov/KgLowDurable/service/Impl/LdConsumerFormServiceImpl.java
  51. 80
      src/main/java/com/nov/KgLowDurable/service/Impl/LdDemandEndServiceImpl.java
  52. 16
      src/main/java/com/nov/KgLowDurable/service/Impl/LdDurableFormServiceImpl.java
  53. 1
      src/main/java/com/nov/KgLowDurable/service/Impl/LdInventoryRecordServiceImpl.java
  54. 2
      src/main/java/com/nov/KgLowDurable/service/Impl/LdOneFormServiceImpl.java
  55. 7
      src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageServiceImpl.java
  56. 27
      src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageServiceImpl.java
  57. 7
      src/main/java/com/nov/KgLowDurable/service/Impl/LdPurchaseEndServiceImpl.java
  58. 30
      src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoOutStorageDetailServiceImpl.java
  59. 141
      src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoOutStorageServiceImpl.java
  60. 2
      src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoPutStorageServiceImpl.java
  61. 51
      src/main/java/com/nov/KgLowDurable/service/Impl/UserServiceImpl.java
  62. 2
      src/main/java/com/nov/KgLowDurable/util/OrderNoGen.java
  63. 20
      src/main/resources/mapper/DepartmentMapper.xml
  64. 3
      src/main/resources/mapper/LdApproveMapper.xml
  65. 13
      src/main/resources/mapper/LdConsumerFormMapper.xml
  66. 12
      src/main/resources/mapper/LdDemandEndMapper.xml
  67. 11
      src/main/resources/mapper/LdDurableFormMapper.xml
  68. 1
      src/main/resources/mapper/LdOneFormMapper.xml
  69. 11
      src/main/resources/mapper/LdOneOutStorageDetailMapper.xml
  70. 3
      src/main/resources/mapper/LdOneOutStorageMapper.xml
  71. 6
      src/main/resources/mapper/LdOnePutStorageDetailMapper.xml
  72. 1
      src/main/resources/mapper/LdOnePutStorageMapper.xml
  73. 3
      src/main/resources/mapper/LdPurchaseEndMapper.xml
  74. 26
      src/main/resources/mapper/LdTwoOutStorageDetailMapper.xml
  75. 35
      src/main/resources/mapper/LdTwoOutStorageMapper.xml
  76. 1
      src/main/resources/mapper/LdTwoPutStorageMapper.xml
  77. 43
      src/main/resources/mapper/UserMapper.xml

@ -64,12 +64,23 @@ public interface BatchConstant {
/**
* 耐用品
*/
String DURABLE = "1";
String DURABLE = "NY";
/**
* 易耗品
*/
String CONSUMER = "2";
String CONSUMER = "YH";
/** 审批类型*/
/**
* 入库类型
*/
String PUT_STORAGE_TYPE = "0";
/**
* 出库类型
*/
String OUT_STORAGE_TYPE = "1";

@ -0,0 +1,45 @@
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;
/**
* @author liweidong
*/
@RestController
@AllArgsConstructor
@RequestMapping("/department")
public class DepartmentController {
@Autowired
IDepartmentService departmentService;
@GetMapping("/getOnePutDepartment")
@ApiOperationSort(1)
@ApiOperation(value = "获取一级出库部门", notes = "获取指定部门", httpMethod = "GET", response = Result.class)
public Result getOnePutDepartment() {
try {
List<DepartmentVO> quarters = departmentService.getOnePutDepartment();
return Result.OK(quarters);
} catch (Exception e) {
return Result.error("获取部门列表失败");
}
}
}

@ -1,15 +1,21 @@
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;
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;
/**
* @author liweidong
@ -19,5 +25,38 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/consumerForm")
public class LdConsumerFormController {
@Autowired
ILdConsumerFormService consumerFormService;
@GetMapping("/list")
@ApiOperationSort(1)
@ApiOperation(value = "二级易耗品列表", notes = "获取二级易耗列表,支持条件筛选", httpMethod = "GET", response = Result.class)
@ApiImplicitParams({
@ApiImplicitParam(name = "departmentId", value = "部门ID", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "materialName", value = "物资名称", dataType = "string", paramType = "query")
})
public Result list(@ApiParam(hidden = true)
@RequestParam(required = false) String departmentId,
@RequestParam(required = false) String materialName,
@RequestParam(required = false ,defaultValue = "1") Integer pageNum,
@RequestParam(required = false ,defaultValue = "10") Integer pageSize) {
return Result.OK(consumerFormService.getConsumerFormList(departmentId,materialName,pageNum,pageSize));
}
@GetMapping("/getConsumerFormList")
@ApiOperationSort(2)
@ApiOperation(value = "获取二级出库物资列表", notes = "根据部门获取二级出库物资列表", httpMethod = "GET", response = Result.class)
public Result getConsumerFormList(@RequestParam String departmentId) {
try {
List<LdConsumerForm> quarters = consumerFormService.getConsumerFormByDeptId(departmentId);
return Result.OK(quarters);
} catch (Exception e) {
return Result.error("获取二级出库物资列表失败");
}
}
}

@ -1,6 +1,7 @@
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;
@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
/**
@ -63,7 +65,7 @@ public class LdDemandEndController {
})
public Result getDepartment(@RequestParam String year, @RequestParam String quarter) {
try {
List<String> quarters = demandEndService.getDepartment(year,quarter);
List<DepartmentVO> quarters = demandEndService.getDepartment(year,quarter);
return Result.OK(quarters);
} catch (Exception e) {
return Result.error("获取部门列表失败");
@ -76,11 +78,11 @@ public class LdDemandEndController {
@ApiOperation(value = "获取需求单数据", notes = "根据年份,季度,部门查询", httpMethod = "GET", response = Result.class)
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "采购单ID", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "department", value = "部门", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "departmentId", value = "部门ID", dataType = "string", paramType = "query"),
})
public Result getDemandEndData(@RequestParam String ids,@RequestParam String department) {
public Result getDemandEndData(@RequestParam String ids,@RequestParam String departmentId) {
try {
List<LdOneOutStorageDetail> quarters = demandEndService.getDemandEndData(ids,department);
Map<String, List<LdOneOutStorageDetail>> quarters = demandEndService.getDemandEndData(ids,departmentId);
return Result.OK(quarters);
} catch (Exception e) {
return Result.error("获取需求单数据失败");

@ -1,6 +1,12 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.service.ILdDurableFormService;
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.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@ -9,8 +15,27 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@AllArgsConstructor
@RequestMapping("/durableForm ")
@RequestMapping("/durableForm")
public class LdDurableFormController {
@Autowired
ILdDurableFormService durableFormService;
@GetMapping("/list")
@ApiOperationSort(1)
@ApiOperation(value = "二级耐用品列表", notes = "获取二级耐用品列表,支持条件筛选", httpMethod = "GET", response = Result.class)
@ApiImplicitParams({
@ApiImplicitParam(name = "departmentId", value = "部门ID", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "materialName", value = "物资名称", dataType = "string", paramType = "query")
})
public Result list(@ApiParam(hidden = true)
@RequestParam(required = false) String departmentId,
@RequestParam(required = false) String materialName,
@RequestParam(required = false ,defaultValue = "1") Integer pageNum,
@RequestParam(required = false ,defaultValue = "10") Integer pageSize) {
return Result.OK(durableFormService.getDurableFormList(departmentId,materialName,pageNum,pageSize));
}
}

@ -1,5 +1,4 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.service.ILdMaterialService;
import com.nov.KgLowDurable.service.ILdOneFormService;
import com.nov.KgLowDurable.util.Result;
import io.swagger.annotations.*;

@ -8,6 +8,7 @@ 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;
@ -34,7 +35,9 @@ public class LdOneOutStorageController {
@ApiImplicitParam(name = "shipperName", value = "出库人", dataType = "string", paramType = "query"),
})
public Result list(@ApiParam(hidden = true)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@RequestParam(required = false) Date startTime,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@RequestParam(required = false) Date endTime,
@RequestParam(required = false) String shipperName,
@RequestParam(required = false ,defaultValue = "1") Integer pageNum,

@ -0,0 +1,62 @@
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.*;
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;
/**
* @author liweidong
*/
@RestController
@AllArgsConstructor
@RequestMapping("/twoOutStorage")
public class LdTwoOutStorageController {
@Autowired
ILdTwoOutStorageService twoOutStorageService;
@GetMapping("/list")
@ApiOperationSort(1)
@ApiOperation(value = "获取二级库存列表", notes = "获取二级库存列表,支持条件筛选", httpMethod = "GET", response = Result.class)
public Result list(@ApiParam(hidden = true)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@RequestParam(required = false) Date startTime,
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@RequestParam(required = false) Date endTime,
@RequestParam(required = false) String shipperName,
@RequestParam(required = false) String departmentId,
@RequestParam(required = false ,defaultValue = "1") Integer pageNum,
@RequestParam(required = false ,defaultValue = "10") Integer pageSize) {
return Result.OK(twoOutStorageService.getTwoOutStorageList(startTime,endTime,shipperName,departmentId,pageNum,pageSize));
}
@PostMapping("/submit")
@ApiOperationSort(2)
@ApiOperation(value = "提交", notes = "二级入库提交")
public Result submit(@RequestBody LdTwoOutStorageDto dto) {
return Result.OK(twoOutStorageService.submit(dto));
}
@GetMapping("/detail")
@ApiOperationSort(3)
@ApiOperation(value = "获取二级出库详情", notes = "根据二级出库ID获取详细信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "twoOutStorageId", value = "二级出库单Id", dataType = "Long", paramType = "query"),
})
public Result detail(@RequestParam Long twoOutStorageId) {
return Result.OK(twoOutStorageService.getDetail(twoOutStorageId));
}
}

@ -0,0 +1,25 @@
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
*/
@RestController
@AllArgsConstructor
@RequestMapping("/twoOutStorageDetail")
public class LdTwoOutStorageDetailController {
}

@ -0,0 +1,45 @@
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;
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;
/**
* @author liweidong
*/
@RestController
@AllArgsConstructor
@RequestMapping("/user")
public class UserController {
@Autowired
IUserService userService;
@GetMapping("/getUserInfo")
@ApiOperationSort(1)
@ApiOperation(value = "用户信息", notes = "获取用户信息", httpMethod = "GET", response = Result.class)
public Result list(@RequestParam(required = false) String materialName) throws Exception {
return Result.OK(userService.getUserInfo());
}
@GetMapping("/getUserByDeptId")
@ApiOperationSort(2)
@ApiOperation(value = "获取二级出库领用人", notes = "根据部门信息获取领用人", httpMethod = "GET", response = Result.class)
public Result getUserByDeptId(@RequestParam(required = false) String departmentId) {
return Result.OK(userService.getUserByDeptId(departmentId));
}
}

@ -1,33 +0,0 @@
package com.nov.KgLowDurable.controller;
import com.nov.KgLowDurable.pojo.entity.LdMaterial;
import com.nov.KgLowDurable.service.ILdMaterialService;
import com.nov.KgLowDurable.service.IUserInfoService;
import com.nov.KgLowDurable.util.Result;
import com.nov.KgLowDurable.util.StringUtils;
import io.swagger.annotations.*;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
/**
* @author liweidong
*/
@RestController
@AllArgsConstructor
@RequestMapping("/userInfo")
public class UserInfoController {
private final IUserInfoService userInfoService;
@GetMapping("/getUserInfo")
@ApiOperationSort(1)
@ApiOperation(value = "用户信息", notes = "获取用户信息", httpMethod = "GET", response = Result.class)
public Result list(@RequestParam(required = false) String materialName) throws Exception {
return Result.OK(userInfoService.getUserInfo());
}
}

@ -0,0 +1,19 @@
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;
/**
*
* @author liweidong
*/
public interface DepartmentMapper extends BaseMapper<Department> {
List<DepartmentVO> selectOnePutDepartment();
}

@ -15,4 +15,5 @@ import java.util.List;
public interface LdApproveMapper extends BaseMapper<LdApprove> {
List<LdApprove> selectByFromId(@Param("formId") Long formId,@Param("type") String type);
}

@ -4,6 +4,8 @@ import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.entity.LdConsumerForm;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
@ -13,4 +15,8 @@ public interface LdConsumerFormMapper extends BaseMapper<LdConsumerForm> {
LdConsumerForm selectByMaterialId(@Param("materialId") Long materialId);
List<LdConsumerForm> selectByDepartmentId(@Param("departmentId") String departmentId);
List<LdConsumerForm> selectConsumerFormList(@Param("departmentId") String departmentId, @Param("materialName") String materialName);
}

@ -6,6 +6,7 @@ import com.nov.KgLowDurable.pojo.vo.QuarterVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
@ -19,7 +20,9 @@ public interface LdDemandEndMapper extends BaseMapper<LdDemandEnd> {
List<QuarterVO> getAllQuarter();
List<String> selectByYearAndQuarter(@Param("year") String year, @Param("quarter")String quarter);
List<LdDemandEnd>selectByYearAndQuarter(@Param("year") String year, @Param("quarter")String quarter);
List<LdDemandEnd> selectByIdList(@Param("idList")List<Long> idList,
@Param("departmentId")String departmentId);
List<LdDemandEnd> selectByIdList(@Param("idList")List<Long> idList);
}

@ -2,6 +2,9 @@ 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;
/**
@ -11,4 +14,5 @@ import com.nov.KgLowDurable.pojo.entity.LdDurableForm;
public interface LdDurableFormMapper extends BaseMapper<LdDurableForm> {
List<LdDurableForm> selectDurableFormList(@Param("departmentId") String departmentId, @Param("materialName") String materialName);
}

@ -26,7 +26,7 @@ public interface LdOneFormMapper extends BaseMapper<LdOneForm> {
* @param materialId
* @return
*/
LdOneForm selectByMaterialId(@Param("materialId")Long materialId);
List<LdOneForm> selectByMaterialId(@Param("materialId")Long materialId);
LdOneForm selectByMaterialCode(@Param("materialCode")String materialCode);

@ -0,0 +1,17 @@
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;
/**
*
* @author liweidong
*/
public interface LdTwoOutStorageDetailMapper extends BaseMapper<LdTwoOutStorageDetail> {
List<LdTwoOutStorageDetail> selectByTwoOutStorageId(@Param("twoOutStorageId") Long twoOutStorageId);
}

@ -0,0 +1,21 @@
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;
/**
*
* @author liweidong
*/
public interface LdTwoOutStorageMapper extends BaseMapper<LdTwoOutStorage> {
List<LdTwoOutStorage> selectTwoOutStorageList(@Param("startTime") Date startTime,
@Param("endTime") Date endTime,
@Param("shipperName") String shipperName,
@Param("departmentId") String departmentId);
}

@ -0,0 +1,19 @@
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;
/**
*
* @author liweidong
*/
public interface UserMapper extends BaseMapper<User> {
List<User> selectByDepartmentId(@Param("departmentId") String departmentId);
}

@ -0,0 +1,37 @@
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;
/**
* 二级出库Dto类
*
* @author liweidong
*/
@Data
@Accessors(chain = true)
public class LdTwoOutStorageDto implements Serializable {
/**
* 二级出库基础信息
*/
private LdTwoOutStorage ldTwoOutStorage;
/**
* 二级出库明细信息
*/
private List<LdTwoOutStorageDetail> ldTwoOutStorageDetailList;
private UserInfoVO userInfoVO;
}

@ -0,0 +1,49 @@
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.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 部门实体类
* @author: liweidong
* @create: 2025-12-26
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName(value = "t_department")
public class Department implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 部门ID - 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private String id;
/**
* 部门名称
*/
private String name;
/**
* 父部门ID
*/
private String parentid;
/**
* 排序字段
*/
private Long order;
/**
* OA上部门id
*/
private Long oaId;
}

@ -78,6 +78,11 @@ public class LdConsumerForm implements Serializable {
*/
private BigDecimal amount;
/**
* 部门
*/
private String departmentId;
/**
* 部门
*/

@ -49,12 +49,6 @@ public class LdDemandEnd implements Serializable {
*/
private String model;
/**
* 类型1易耗品 2耐用品
*/
private String type;
/**
* 单位
*/
@ -85,9 +79,16 @@ public class LdDemandEnd implements Serializable {
*/
private Date optTime;
/**
* 申请部门名称
*/
private String departmentId;
/**
* 申请部门
*/
private String department;
}

@ -9,6 +9,7 @@ import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 低值耐用品二级库库存表实体类
@ -79,6 +80,11 @@ public class LdDurableForm implements Serializable {
*/
private BigDecimal amount;
/**
* 部门ID
*/
private String departmentId;
/**
* 部门
*/
@ -95,7 +101,14 @@ public class LdDurableForm implements Serializable {
private String remark;
/**
* 是否出借0-1-
* 是否出借0-1- 2-报废
*/
private String isBorrow;
/**
* 归还时间
*/
private Date returnTime;
}

@ -30,11 +30,6 @@ public class LdOneForm implements Serializable {
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/**
* 库存编码
*/
private Integer stockCode;
/**
* 物资ID
*/

@ -34,11 +34,6 @@ public class LdOneOutStorage implements Serializable {
*/
private String demandEndInfo;
/**
* 仓库名称
*/
private String warehouseName;
/**
* 出库单号
@ -61,17 +56,6 @@ public class LdOneOutStorage implements Serializable {
private String materialType;
/**
* 部门
*/
private String department;
/**
* 二级入库确认
*/
private String secondaryInventory;
/**
* 状态暂存/提交
*/

@ -32,12 +32,6 @@ public class LdOnePutStorage implements Serializable {
*/
private String purchaseEndInfo;
/**
* 仓库名称
*/
private String warehouseName;
/**
* 入库单号
*/

@ -47,11 +47,6 @@ public class LdPurchaseEnd implements Serializable {
*/
private String model;
/**
* 类型1易耗品 2耐用品
*/
private String type;
/**
* 单位

@ -0,0 +1,89 @@
package com.nov.KgLowDurable.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 二级出入库记录表实体类
*
* @author
* @since
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ld_two_inventory_record")
public class LdTwoInventoryRecord implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 易耗品库存ID
*/
@TableField("consumer_form_id")
private Long consumerFormId;
/**
* 交易类型1-出库 2-入库
*/
@TableField("transaction_type")
private String transactionType;
/**
* 数量
*/
@TableField("quantity")
private BigDecimal quantity;
/**
* 单价
*/
@TableField("money")
private BigDecimal money;
/**
* 操作人ID
*/
@TableField("operator_id")
private String operatorId;
/**
* 操作人姓名
*/
@TableField("operator_name")
private String operatorName;
/**
* 操作时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField("operation_time")
private Date operationTime;
/**
* 部门ID
*/
@TableField("department_id")
private String departmentId;
/**
* 部门名称
*/
@TableField("department_name")
private String departmentName;
}

@ -0,0 +1,100 @@
package com.nov.KgLowDurable.pojo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* 二级库出库表实体类
* @author: liweidong
* @create: 2025-12-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ld_two_out_storage")
public class LdTwoOutStorage implements Serializable {
private static final long serialVersionUID = 1L;
/**
* ID - 主键自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 出库单号
*/
@TableField("order_no")
private String orderNo;
/**
* 出库申请日期
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@TableField("out_date")
private Date outDate;
/**
* 事由
*/
private String reason;
/**
* 物资类型办公物资/其他物资
*/
@TableField("material_type")
private String materialType;
/**
* 部门ID
*/
@TableField("department_id")
private String departmentId;
/**
* 部门
*/
private String department;
/**
* 申请人id
*/
@TableField("proposer_id")
private String proposerId;
/**
* 申请人姓名
*/
@TableField("proposer_name")
private String proposerName;
/**
* 出库人ID
*/
@TableField("shipper_id")
private String shipperId;
/**
* 出库人名称
*/
@TableField("shipper_name")
private String shipperName;
/**
* 审批编号
*/
@TableField("sp_no")
private String spNo;
/**
* 出库状态0-未出库1-已出库2-已驳回
*/
private String status;
}

@ -0,0 +1,102 @@
package com.nov.KgLowDurable.pojo.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* @author liweidong
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ld_two_out_storage_detail")
public class LdTwoOutStorageDetail implements Serializable {
private static final long serialVersionUID = 1L;
/**
* ID - 主键自增
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 一级出库单ID
*/
@TableField("two_out_storage_id")
private Long twoOutStorageId;
/**
* 一级出库单号
*/
@TableField("two_out_storage_no")
private String twoOutStorageNo;
/**
* 一级出库明细编号
*/
@TableField("two_out_detail_code")
private String twoOutDetailCode;
/**
* 物资ID
*/
@TableField("material_id")
private Long materialId;
/**
* 物资名称
*/
@TableField("material_name")
private String materialName;
/**
* 物资编码
*/
@TableField("material_code")
private String materialCode;
/**
* 规格型号
*/
@TableField("model")
private String model;
/**
* 类别耐用品/易耗品
*/
@TableField("type")
private String type;
/**
* 计量单位
*/
@TableField("unit")
private String unit;
/**
* 数量 出库数量
*/
@TableField("num")
private String num;
/**
* 物品详细描述
*/
@TableField("remark")
private String remark;
/**
* 出库情况已出库/未出库
*/
@TableField("shipper_status")
private String shipperStatus;
/**
* 提交时间
*/
@TableField("opt_time")
private Date optTime;
}

@ -33,10 +33,6 @@ public class LdTwoPutStorage implements Serializable {
*/
private String demandEndInfo;
/**
* 仓库名称
*/
private String warehouseName;
/**
* 入库单号

@ -1,25 +1,34 @@
package com.nov.KgLowDurable.pojo.entity;
/**
* @author: liweidong
* @create: 2025-12-26
*/
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/**
* 用户表
* 用户表实体类
*
* @author liweidong
* @TableName t_user
*/
@Data
@TableName(value = "t_user")
public class Tuser implements Serializable {
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 企业微信帐号
* 企业微信帐号 - 主键
*/
@TableId(value = "userId", type = IdType.INPUT)
private String userId;
@ -27,171 +36,140 @@ public class Tuser implements Serializable {
/**
* 姓名
*/
@TableField(value = "name")
private String name;
/**
* 部门
*/
@TableField(value = "department")
private String department;
/**
* 主部门Id
*/
@TableField(value = "main_department")
private String mainDepartment;
/**
* 主部门的二级部门id
*/
@TableField(value = "main_er_department")
private String mainErDepartment;
/**
* 科室负责人部门
*/
@TableField(value = "leader_in_dept")
private String leaderInDept;
/**
* 性别
*/
@TableField(value = "gender")
private String gender;
/**
* 联系电话
*/
@TableField(value = "phone")
private String phone;
/**
* 邮箱
*/
@TableField(value = "mail")
private String mail;
/**
* 姓名代号
*/
@TableField(value = "name_code")
private String nameCode;
/**
* 门禁卡号
*/
@TableField(value = "card_no")
private String cardNo;
/**
* 卡号--开智能柜
*/
@TableField(value = "cabinet_card_no")
private String cabinetCardNo;
/**
* 身份证号码
*/
@TableField(value = "cert_no")
private String certNo;
/**
* 出生日期
*/
@TableField(value = "birthday")
private LocalDate birthday;
private Date birthday;
/**
* 通信地址
*/
@TableField(value = "address")
private String address;
/**
* 民族
*/
@TableField(value = "nation")
private String nation;
/**
* 参加工作时间
*/
@TableField(value = "work_time")
private LocalDate workTime;
private Date workTime;
/**
* 学历
*/
@TableField(value = "school_record")
private String schoolRecord;
/**
* 毕业院校
*/
@TableField(value = "graduation_school")
private String graduationSchool;
/**
* 毕业专业
*/
@TableField(value = "graduation_major")
private String graduationMajor;
/**
* 毕业时间
*/
@TableField(value = "graduation_time")
private LocalDate graduationTime;
private Date graduationTime;
/**
* 入职时间
*/
@TableField(value = "entry_time")
private LocalDate entryTime;
private Date entryTime;
/**
* 是否删除 0 1
*/
@TableField(value = "is_del")
private Boolean del;
private Boolean isDel = false;
/**
* 操作人
*/
@TableField(value = "opt_user")
private String optUser;
/**
* 操作时间
*/
@TableField(value = "opt_time")
private LocalDateTime optTime;
private Date optTime;
/**
* OA的userId
*/
@TableField(value = "oa_user_id")
private Long oaUserId;
/**
* 车牌号
*/
@TableField(value = "car_number")
private String carNumber;
/**
* 是否是值班人员 1 0否
*/
@TableField(value = "is_duty")
private Boolean duty;
private Boolean isDuty = false;
/**
* 考勤排序 小到大
*/
@TableField(value = "user_sort")
private Integer userSort;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
private Integer userSort = 1000;
}

@ -0,0 +1,26 @@
package com.nov.KgLowDurable.pojo.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author: liweidong
* @create: 2025-12-26
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DepartmentVO {
/**
* 部门ID
*/
private String departmentId;
/**
* 部门名称
*/
private String department;
}

@ -1,4 +1,5 @@
package com.nov.KgLowDurable.pojo.vo;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorage;
import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail;
import lombok.Data;
@ -26,4 +27,9 @@ public class LdOnePutStorageInfoVO implements Serializable {
*/
private List<LdOnePutStorageDetail> ldOnePutStorageDetailList;
/**
* 一级入库审批人列表
*/
private List<LdApprove> approveList;
}

@ -0,0 +1,35 @@
package com.nov.KgLowDurable.pojo.vo;
import com.nov.KgLowDurable.pojo.entity.*;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
/**
* 二级出库详情VO
*
* @author liweidong
*/
@Data
@Accessors(chain = true)
public class LdTwoOutStorageInfoVO implements Serializable {
/**
* 二级出库
*/
private LdTwoOutStorage ldTwoOutStorage;
/**
* 二级出库明细
*/
private List<LdTwoOutStorageDetail> ldTwoOutStorageDetailList;
/**
* 二级出库审批人列表
*/
private List<LdApprove> approveList;
}

@ -0,0 +1,21 @@
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;
/**
* 审批
* @author liweidong
*/
public interface IDepartmentService extends IService<Department> {
/**
* 获取一级出库指定部门
* @return
*/
List<DepartmentVO> getOnePutDepartment();
}

@ -15,6 +15,11 @@ import java.util.List;
*/
public interface ILdApproveService extends IService<LdApprove> {
/**
* 根据表单ID获取审批人
* @param formId
* @param type
* @return
*/
List<LdApprove> getByFromId(Long formId,String type);
}

@ -1,8 +1,11 @@
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;
/**
* 审批
@ -16,4 +19,21 @@ public interface ILdConsumerFormService extends IService<LdConsumerForm> {
* @return
*/
LdConsumerForm getByMaterialId(Long materialId);
/**
* 获取二级出库物资列表
* @param departmentId
* @return
*/
List<LdConsumerForm> getConsumerFormByDeptId(String departmentId);
/**
* 二级易耗品列表
* @param departmentId
* @param materialName
* @param pageNum
* @param pageSize
* @return
*/
PageInfo<LdConsumerForm> getConsumerFormList(String departmentId, String materialName, Integer pageNum, Integer pageSize);
}

@ -5,9 +5,11 @@ 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;
/**
@ -38,13 +40,13 @@ public interface ILdDemandEndService extends IService<LdDemandEnd> {
* @param quarter
* @return
*/
List<String> getDepartment(String year, String quarter);
List<DepartmentVO> getDepartment(String year, String quarter);
/**
* 获取需求单数据
* @param ids
* @param department
* @param departmentId
* @return
*/
List<LdOneOutStorageDetail> getDemandEndData(String ids, String department);
Map<String, List<LdOneOutStorageDetail>> getDemandEndData(String ids, String departmentId);
}

@ -1,5 +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.LdDurableForm;
@ -10,6 +11,13 @@ import com.nov.KgLowDurable.pojo.entity.LdDurableForm;
*/
public interface ILdDurableFormService extends IService<LdDurableForm> {
/**
* 获取二级耐用品列表
* @param departmentId
* @param materialName
* @param pageNum
* @param pageSize
* @return
*/
PageInfo<LdDurableForm> getDurableFormList(String departmentId, String materialName, Integer pageNum, Integer pageSize);
}

@ -31,7 +31,7 @@ public interface ILdOneFormService extends IService<LdOneForm> {
* @param materialId
* @return
*/
LdOneForm getByMaterialId(Long materialId);
List<LdOneForm> getByMaterialId(Long materialId);
/**
* 根据物资编码查询

@ -0,0 +1,20 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nov.KgLowDurable.pojo.entity.LdTwoOutStorageDetail;
import java.util.List;
/**
* 审批
* @author liweidong
*/
public interface ILdTwoOutStorageDetailService extends IService<LdTwoOutStorageDetail> {
/**
* 根据二级出库ID查询详情
* @param twoOutStorageId
* @return
*/
List<LdTwoOutStorageDetail> selectByTwoOutStorageId(Long twoOutStorageId);
}

@ -0,0 +1,42 @@
package com.nov.KgLowDurable.service;
import com.baomidou.mybatisplus.extension.service.IService;
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;
/**
* 审批
* @author liweidong
*/
public interface ILdTwoOutStorageService extends IService<LdTwoOutStorage> {
/**
* 二级出库列表
* @param startTime
* @param endTime
* @param shipperName
* @param departmentId
* @param pageNum
* @param pageSize
* @return
*/
PageInfo<LdTwoOutStorage> getTwoOutStorageList(Date startTime, Date endTime, String shipperName, String departmentId, Integer pageNum, Integer pageSize);
/**
* 二级出库提交
* @param dto
* @return
*/
boolean submit(LdTwoOutStorageDto dto);
/**
* 二级出库详情
* @param twoOutStorageId
* @return
*/
LdTwoOutStorageInfoVO getDetail(Long twoOutStorageId);
}

@ -1,38 +0,0 @@
package com.nov.KgLowDurable.service;
import com.nov.KgLowDurable.pojo.entity.Tuser;
import com.nov.KgLowDurable.pojo.vo.ApproverUser;
import com.nov.KgLowDurable.pojo.vo.UserInfoVO;
import java.util.List;
/**
* 用户
*
* @author Chill
*/
public interface IUserInfoService {
/**
* 获取用户信息
* @return
*/
UserInfoVO getUserInfo() throws Exception;
/**
* 获取审批人
* @param mainErDepartment
* @param type
* @param ldOnePutStorageId
* @return
*/
boolean getApprover(String mainErDepartment, String type,Long ldOnePutStorageId);
/**
* 获取部门负责人
* @param department
* @return
*/
Tuser getDeptApprove(String department);
}

@ -0,0 +1,46 @@
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;
/**
* 审批
* @author liweidong
*/
public interface IUserService extends IService<User> {
/**
* 获取用户信息
* @return
*/
UserInfoVO getUserInfo() throws Exception;
/**
* 获取审批人
* @param mainErDepartment
* @param type
* @param formId
* @return
*/
boolean getApprover(String mainErDepartment, String type,Long formId);
/**
* 获取部门负责人
* @param department
* @return
*/
User getDeptApprove(String department);
/**
* 根据部门Id获取领用人
* @param departmentId
* @return
*/
List<User> getUserByDeptId(String departmentId);
}

@ -0,0 +1,32 @@
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;
import java.util.List;
/**
* 服务实现类
* @author liweidong
*/
@Service
@AllArgsConstructor
public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Department> implements IDepartmentService {
@Autowired
DepartmentMapper departmentMapper;
@Override
public List<DepartmentVO> getOnePutDepartment() {
return departmentMapper.selectOnePutDepartment();
}
}

@ -35,6 +35,11 @@ import java.util.stream.Collectors;
@AllArgsConstructor
public class LdApproveServiceImpl extends ServiceImpl<LdApproveMapper, LdApprove> implements ILdApproveService {
@Autowired
LdApproveMapper ldApproveMapper;
@Override
public List<LdApprove> getByFromId(Long formId,String type) {
return ldApproveMapper.selectByFromId(formId,type);
}
}

@ -1,16 +1,21 @@
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.mapper.LdApproveMapper;
import com.nov.KgLowDurable.mapper.LdConsumerFormMapper;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.entity.LdConsumerForm;
import com.nov.KgLowDurable.pojo.entity.LdDemandEnd;
import com.nov.KgLowDurable.service.ILdApproveService;
import com.nov.KgLowDurable.service.ILdConsumerFormService;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 服务实现类
* @author liweidong
@ -26,4 +31,17 @@ public class LdConsumerFormServiceImpl extends ServiceImpl<LdConsumerFormMapper,
public LdConsumerForm getByMaterialId(Long materialId) {
return consumerFormMapper.selectByMaterialId(materialId);
}
@Override
public List<LdConsumerForm> getConsumerFormByDeptId(String departmentId) {
return consumerFormMapper.selectByDepartmentId(departmentId);
}
@Override
public PageInfo<LdConsumerForm> getConsumerFormList(String departmentId, String materialName, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum,pageSize);
List<LdConsumerForm> ldConsumerFormList = consumerFormMapper.selectConsumerFormList(departmentId,materialName);
PageInfo<LdConsumerForm> pageInfo = new PageInfo<>(ldConsumerFormList);
return pageInfo;
}
}

@ -7,6 +7,7 @@ import com.nov.KgLowDurable.exception.CustomerException;
import com.nov.KgLowDurable.mapper.LdDemandEndMapper;
import com.nov.KgLowDurable.mapper.LdPurchaseEndMapper;
import com.nov.KgLowDurable.pojo.entity.*;
import com.nov.KgLowDurable.pojo.vo.DepartmentVO;
import com.nov.KgLowDurable.pojo.vo.QuarterVO;
import com.nov.KgLowDurable.service.*;
import com.nov.KgLowDurable.util.StringUtils;
@ -16,9 +17,7 @@ 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.*;
import java.util.stream.Collectors;
/**
@ -39,6 +38,12 @@ public class LdDemandEndServiceImpl extends ServiceImpl<LdDemandEndMapper, LdDem
@Autowired
ILdOneOutStorageDetailService oneOutStorageDetailService;
@Autowired
ILdMaterialService materialService;
@Autowired
ILdOneFormService oneFormService;
@Override
public PageInfo<LdDemandEnd> getDemandEndList(String demandNo, Integer pageNum, Integer pageSize) {
@ -54,15 +59,28 @@ public class LdDemandEndServiceImpl extends ServiceImpl<LdDemandEndMapper, LdDem
}
@Override
public List<String> getDepartment(String year, String quarter) {
return demandEndMapper.selectByYearAndQuarter(year,quarter);
public List<DepartmentVO> getDepartment(String year, String quarter) {
List<LdDemandEnd> ldDemandEndList = demandEndMapper.selectByYearAndQuarter(year, quarter);
return ldDemandEndList.stream()
.filter(item -> item != null && item.getDepartmentId() != null && !item.getDepartmentId().trim().isEmpty())
.collect(Collectors.toMap(
LdDemandEnd::getDepartmentId,
item -> new DepartmentVO(item.getDepartmentId(), item.getDepartment()),
(existing, replacement) -> existing,
LinkedHashMap::new
))
.values()
.stream()
.collect(Collectors.toList());
}
@Override
public List<LdOneOutStorageDetail> getDemandEndData(String ids, String department) {
public Map<String, List<LdOneOutStorageDetail>> getDemandEndData(String ids, String departmentId) {
if(StringUtils.isEmpty(ids)){
throw new CustomerException("ids不能为空");
}
Map<String, List<LdOneOutStorageDetail>> map = new HashMap<>();
List<Long> idList = Arrays.stream(ids.split(",")).map(Long::valueOf).collect(Collectors.toList());
//查询一级出库是否有该需求单
List<LdOneOutStorageDemandEnd> oneOutStorageDemandEndList = oneOutStorageDemandEndService.selectByDemandEndId(idList);
@ -74,24 +92,66 @@ public class LdDemandEndServiceImpl extends ServiceImpl<LdDemandEndMapper, LdDem
.collect(Collectors.toList());
//查询一级出库明细
List<LdOneOutStorageDetail> oneOutStorageDetailList = oneOutStorageDetailService.selectByOneOutStorageIds(oneOutStorageIds);
return oneOutStorageDetailList;
Map<Long, Long> materialIdCount = oneOutStorageDetailList.stream()
.collect(Collectors.groupingBy(
LdOneOutStorageDetail::getMaterialId,
Collectors.counting()
));
List<LdOneOutStorageDetail> duplicateList = oneOutStorageDetailList.stream()
.filter(item -> materialIdCount.get(item.getMaterialId()) > 1)
.collect(Collectors.toList());
List<LdOneOutStorageDetail> uniqueList = oneOutStorageDetailList.stream()
.filter(item -> materialIdCount.get(item.getMaterialId()) == 1)
.collect(Collectors.toList());
map.put("duplicateList",duplicateList);
map.put("uniqueList",uniqueList);
return map;
}
//获取需求单数据
List<LdDemandEnd> demandEndList = demandEndMapper.selectByIdList(idList);
List<LdDemandEnd> demandEndList = demandEndMapper.selectByIdList(idList,departmentId);
List<LdOneOutStorageDetail> list = new ArrayList<>();
for (LdDemandEnd ldDemandEnd : demandEndList) {
List<LdOneForm> oneFormList = oneFormService.getByMaterialId(ldDemandEnd.getMaterialId());
if(!CollectionUtils.isEmpty(oneFormList)){
for (LdOneForm oneForm : oneFormList) {
LdOneOutStorageDetail oneOutStorageDetail = new LdOneOutStorageDetail();
oneOutStorageDetail.setMaterialId(ldDemandEnd.getMaterialId());
oneOutStorageDetail.setMaterialName(ldDemandEnd.getMaterialName());
oneOutStorageDetail.setMaterialCode(oneForm.getMaterialCode());
oneOutStorageDetail.setModel(ldDemandEnd.getModel());
oneOutStorageDetail.setType(ldDemandEnd.getType());
oneOutStorageDetail.setType(oneForm.getType());
oneOutStorageDetail.setUnit(ldDemandEnd.getUnit());
oneOutStorageDetail.setApplicationQuantity(new BigDecimal(ldDemandEnd.getNum()));
oneOutStorageDetail.setLdDemandEndId(ldDemandEnd.getId());
oneOutStorageDetail.setDepartment(ldDemandEnd.getDepartmentId());
oneOutStorageDetail.setDepartmentName(ldDemandEnd.getDepartment());
list.add(oneOutStorageDetail);
}
}
}
Map<Long, Long> materialIdCount = list.stream()
.collect(Collectors.groupingBy(
LdOneOutStorageDetail::getMaterialId,
Collectors.counting()
));
List<LdOneOutStorageDetail> duplicateList = list.stream()
.filter(item -> materialIdCount.get(item.getMaterialId()) > 1)
.collect(Collectors.toList());
List<LdOneOutStorageDetail> uniqueList = list.stream()
.filter(item -> materialIdCount.get(item.getMaterialId()) == 1)
.collect(Collectors.toList());
map.put("duplicateList",duplicateList);
map.put("uniqueList",uniqueList);
return list;
return map;
}
}

@ -1,15 +1,21 @@
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.mapper.LdApproveMapper;
import com.nov.KgLowDurable.mapper.LdDurableFormMapper;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.entity.LdConsumerForm;
import com.nov.KgLowDurable.pojo.entity.LdDurableForm;
import com.nov.KgLowDurable.service.ILdApproveService;
import com.nov.KgLowDurable.service.ILdDurableFormService;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 服务实现类
* @author liweidong
@ -18,6 +24,14 @@ import org.springframework.stereotype.Service;
@AllArgsConstructor
public class LdDurableFormServiceImpl extends ServiceImpl<LdDurableFormMapper, LdDurableForm> implements ILdDurableFormService {
@Autowired
LdDurableFormMapper durableFormMapper;
@Override
public PageInfo<LdDurableForm> getDurableFormList(String departmentId, String materialName, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum,pageSize);
List<LdDurableForm> ldDurableFormList = durableFormMapper.selectDurableFormList(departmentId,materialName);
PageInfo<LdDurableForm> pageInfo = new PageInfo<>(ldDurableFormList);
return pageInfo;
}
}

@ -110,7 +110,6 @@ public class LdInventoryRecordServiceImpl extends ServiceImpl<LdInventoryRecordM
oneFormService.updateById(oneForm);
}else {
oneForm = new LdOneForm();
oneForm.setStockCode(111);
oneForm.setMaterialId(onePutStorageDetail.getMaterialId());
oneForm.setMaterialName(onePutStorageDetail.getMaterialName());
oneForm.setMaterialCode(onePutStorageDetail.getMaterialCode());

@ -40,7 +40,7 @@ public class LdOneFormServiceImpl extends ServiceImpl<LdOneFormMapper, LdOneForm
}
@Override
public LdOneForm getByMaterialId(Long materialId) {
public List<LdOneForm> getByMaterialId(Long materialId) {
return oneFormMapper.selectByMaterialId(materialId);
}

@ -50,7 +50,7 @@ public class LdOneOutStorageServiceImpl extends ServiceImpl<LdOneOutStorageMappe
ILdOneOutStorageDemandEndService oneOutStorageDemandEndService;
@Autowired
IUserInfoService userInfoService;
IUserService userService;
@Autowired
ILdOneFormService oneFormService;
@ -144,7 +144,8 @@ public class LdOneOutStorageServiceImpl extends ServiceImpl<LdOneOutStorageMappe
String materialCode = null;
LdTwoPutStorageDetail maxLdTwoPutStorageDetail = twoPutStorageDetailService.selectByMaterialCode(ldOneOutStorageDetail.getMaterialCode()+ldOneOutStorageDetail.getDepartmentName());
if(null == maxLdTwoPutStorageDetail){
materialCode = ldOneOutStorageDetail.getMaterialCode() + ldOneOutStorageDetail.getDepartmentName() + "001";
DepartmentEnum departmentEnum = DepartmentEnum.getByName(ldOneOutStorageDetail.getDepartmentName());
materialCode = ldOneOutStorageDetail.getMaterialCode() + departmentEnum.getCode() + "001";
}else {
materialCode = String.format("%s%03d",
materialCode.substring(0, 9), // 取前9位:04002YHBG
@ -300,7 +301,7 @@ public class LdOneOutStorageServiceImpl extends ServiceImpl<LdOneOutStorageMappe
BatchConstant.NO_SHIPPED_OUT :
BatchConstant.SHIPPED_OUT
);
Tuser userinfo = userInfoService.getDeptApprove(detailVO.getDepartment());
User userinfo = userService.getDeptApprove(detailVO.getDepartment());
detailEntity.setDepartmentPeopleId(userinfo.getUserId());
detailEntity.setDepartmentPeopleName(userinfo.getName());
return detailEntity;

@ -48,7 +48,7 @@ public class LdOnePutStorageServiceImpl extends ServiceImpl<LdOnePutStorageMappe
OrderNoGen orderNoGen;
@Autowired
IUserInfoService userInfoService;
IUserService userService;
@Autowired
ILdOnePutStoragePurchaseEndService onePutStoragePurchaseEndService;
@ -56,6 +56,9 @@ public class LdOnePutStorageServiceImpl extends ServiceImpl<LdOnePutStorageMappe
@Autowired
ILdApproveService approveService;
@Autowired
ILdApproveService ldApproveService;
@Override
public PageInfo<LdOnePutStorage> getOnePutStorageList(Date startTime, Date endTime, String inOperator, Integer pageNum, Integer pageSize) {
@ -110,14 +113,13 @@ public class LdOnePutStorageServiceImpl extends ServiceImpl<LdOnePutStorageMappe
throw new CustomerException("入库ID有误");
}
List<LdOnePutStorageDetail> ldOnePutStorageDetailList = onePutStorageDetailService.getByOnePutStorageId(ldOnePutStorage.getId());
if(!BatchConstant.APPROVE.equals(ldOnePutStorage.getStatus())){
for (LdOnePutStorageDetail onePutStorageDetail : ldOnePutStorageDetailList) {
onePutStorageDetail.setInboundQuantity(BigDecimal.valueOf(0));
}
}
List<LdApprove> approveList = ldApproveService.getByFromId(onePutStorageId,BatchConstant.PUT_STORAGE_TYPE);
LdOnePutStorageInfoVO ldOnePutStorageInfoVO = new LdOnePutStorageInfoVO();
ldOnePutStorageInfoVO.setLdOnePutStorage(ldOnePutStorage);
ldOnePutStorageInfoVO.setLdOnePutStorageDetailList(ldOnePutStorageDetailList);
ldOnePutStorageInfoVO.setApproveList(approveList);
return ldOnePutStorageInfoVO;
}
@ -153,7 +155,7 @@ public class LdOnePutStorageServiceImpl extends ServiceImpl<LdOnePutStorageMappe
// 4. 处理并保存明细
processAndSaveDetails(dto);
// 5. 提交审批(如果需要)
// 5. 提交审批
submitForApproval(dto);
return true;
@ -195,8 +197,8 @@ public class LdOnePutStorageServiceImpl extends ServiceImpl<LdOnePutStorageMappe
*/
private void setApproverInfo(LdOnePutStorageDto dto, UserInfoVO userInfo) {
try {
boolean tuser = userInfoService.getApprover(
userInfo.getMainErDepartment(), "0",dto.getId()
boolean tuser = userService.getApprover(
null, "0",dto.getId()
);
} catch (Exception e) {
throw new CustomerException("获取审批人失败: " + e.getMessage());
@ -303,9 +305,16 @@ public class LdOnePutStorageServiceImpl extends ServiceImpl<LdOnePutStorageMappe
detailEntity.setInboundDetailCode(inboundDetailCode);
//生成物资编码
if(detailEntity.getMaterialCode().contains(BatchConstant.CONSUMER) ||
detailEntity.getMaterialCode().contains(BatchConstant.DURABLE)){
detailEntity.setMaterialCode(detailEntity.getMaterialCode());
}else {
detailEntity.setMaterialCode(detailEntity.getMaterialCode()+detailEntity.getType());
}
}
/**
* 提交审批
*/

@ -42,6 +42,9 @@ public class LdPurchaseEndServiceImpl extends ServiceImpl<LdPurchaseEndMapper, L
@Autowired
ILdOnePutStoragePurchaseEndService onePutStoragePurchaseEndService;
@Autowired
ILdMaterialService materialService;
@Override
public PageInfo<LdPurchaseEnd> getPurchaseEndList(String purchaseNo, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum,pageSize);
@ -88,11 +91,13 @@ public class LdPurchaseEndServiceImpl extends ServiceImpl<LdPurchaseEndMapper, L
List<LdOnePutStorageDetail> list = new ArrayList<>();
for (LdPurchaseEnd ldPurchaseEnd : ldPurchaseEndList) {
LdMaterial material = materialService.getById(ldPurchaseEnd.getMaterialId());
LdOnePutStorageDetail onePutStorageDetail = new LdOnePutStorageDetail();
onePutStorageDetail.setMaterialId(ldPurchaseEnd.getMaterialId());
onePutStorageDetail.setMaterialName(ldPurchaseEnd.getMaterialName());
onePutStorageDetail.setMaterialCode(material.getMaterialCode());
onePutStorageDetail.setModel(ldPurchaseEnd.getModel());
onePutStorageDetail.setType(ldPurchaseEnd.getType());
onePutStorageDetail.setType(ldPurchaseEnd.getMoney().compareTo(new BigDecimal("600")) >= 0 ? "NY" : "YH");
onePutStorageDetail.setUnit(ldPurchaseEnd.getUnit());
onePutStorageDetail.setRequiredQuantity(new BigDecimal(ldPurchaseEnd.getNum()));
onePutStorageDetail.setUnitPrice(ldPurchaseEnd.getMoney());

@ -0,0 +1,30 @@
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;
/**
* 服务实现类
* @author liweidong
*/
@Service
@AllArgsConstructor
public class LdTwoOutStorageDetailServiceImpl extends ServiceImpl<LdTwoOutStorageDetailMapper, LdTwoOutStorageDetail> implements ILdTwoOutStorageDetailService {
@Autowired
LdTwoOutStorageDetailMapper twoOutStorageDetailMapper;
@Override
public List<LdTwoOutStorageDetail> selectByTwoOutStorageId(Long twoOutStorageId) {
return twoOutStorageDetailMapper.selectByTwoOutStorageId(twoOutStorageId);
}
}

@ -0,0 +1,141 @@
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.LdTwoOutStorageMapper;
import com.nov.KgLowDurable.pojo.dto.LdTwoOutStorageDto;
import com.nov.KgLowDurable.pojo.entity.LdApprove;
import com.nov.KgLowDurable.pojo.entity.LdTwoOutStorage;
import com.nov.KgLowDurable.pojo.entity.LdTwoOutStorageDetail;
import com.nov.KgLowDurable.pojo.vo.LdTwoOutStorageInfoVO;
import com.nov.KgLowDurable.pojo.vo.UserInfoVO;
import com.nov.KgLowDurable.service.ILdApproveService;
import com.nov.KgLowDurable.service.ILdTwoOutStorageDetailService;
import com.nov.KgLowDurable.service.ILdTwoOutStorageService;
import com.nov.KgLowDurable.service.IUserService;
import com.nov.KgLowDurable.util.OrderNoGen;
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;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* 服务实现类
* @author liweidong
*/
@Service
@AllArgsConstructor
public class LdTwoOutStorageServiceImpl extends ServiceImpl<LdTwoOutStorageMapper, LdTwoOutStorage> implements ILdTwoOutStorageService {
@Autowired
LdTwoOutStorageMapper twoOutStorageMapper;
@Autowired
OrderNoGen orderNoGen;
@Autowired
ILdTwoOutStorageDetailService twoOutStorageDetailService;
@Autowired
IUserService userService;
@Autowired
ILdApproveService approveService;
@Override
public PageInfo<LdTwoOutStorage> getTwoOutStorageList(Date startTime, Date endTime, String shipperName, String departmentId, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum,pageSize);
// 查询全部
List<LdTwoOutStorage> ldErstockOutList = twoOutStorageMapper.selectTwoOutStorageList(startTime,endTime,shipperName,departmentId);
// 返回结果
PageInfo<LdTwoOutStorage> pageInfo = new PageInfo<>(ldErstockOutList);
return pageInfo;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean submit(LdTwoOutStorageDto dto) {
if(null == dto.getLdTwoOutStorage()){
throw new CustomerException("基础数据不能为空");
}
if(CollectionUtils.isEmpty(dto.getLdTwoOutStorageDetailList())){
throw new CustomerException("出库明细数据不能为空");
}
UserInfoVO userInfo = dto.getUserInfoVO();
LdTwoOutStorage ldTwoOutStorage = dto.getLdTwoOutStorage();
// 生成出库单号
String orderNo = orderNoGen.generate("SO");
ldTwoOutStorage.setOrderNo(orderNo);
// 设置出库操作人
ldTwoOutStorage.setShipperId(userInfo.getUserId());
ldTwoOutStorage.setShipperName(userInfo.getName());
//设置状态
ldTwoOutStorage.setStatus(BatchConstant.NO_SHIPPED_OUT);
// 保存主表
int insertResult = twoOutStorageMapper.insert(ldTwoOutStorage);
if (insertResult <= 0) {
throw new CustomerException("一级出库单保存失败");
}
Long outOneStorageId = ldTwoOutStorage.getId();
if (outOneStorageId == null) {
throw new CustomerException("获取二级出库单ID失败");
}
//处理二级出库明细
List<LdTwoOutStorageDetail> list = new ArrayList<>();
List<LdTwoOutStorageDetail> ldTwoOutStorageDetailList = dto.getLdTwoOutStorageDetailList();
for (LdTwoOutStorageDetail ldTwoOutStorageDetail : ldTwoOutStorageDetailList) {
ldTwoOutStorageDetail.setTwoOutStorageId(outOneStorageId);
ldTwoOutStorageDetail.setTwoOutStorageNo(ldTwoOutStorage.getOrderNo());
ldTwoOutStorageDetail.setTwoOutDetailCode(orderNoGen.generate("SOD"));
ldTwoOutStorageDetail.setShipperStatus(BatchConstant.NO_SHIPPED_OUT);
ldTwoOutStorageDetail.setOptTime(new Date());
list.add(ldTwoOutStorageDetail);
}
boolean saveDetailResult = twoOutStorageDetailService.saveBatch(list);
if (!saveDetailResult) {
throw new CustomerException("二级出库明细保存失败");
}
//获取审批人
try {
boolean approver = userService.getApprover(ldTwoOutStorage.getDepartmentId(),
"1", ldTwoOutStorage.getId());
} catch (Exception e) {
throw new CustomerException("获取审批人失败: " + e.getMessage());
}
// 5. todo 提交审批
return true;
}
@Override
public LdTwoOutStorageInfoVO getDetail(Long twoOutStorageId) {
//基础信息
LdTwoOutStorage ldTwoOutStorage = twoOutStorageMapper.selectById(twoOutStorageId);
//明细信息
List<LdTwoOutStorageDetail> ldTwoOutStorageDetailList = twoOutStorageDetailService.selectByTwoOutStorageId(twoOutStorageId);
//审批信息
List<LdApprove> ldApproveList = approveService.getByFromId(twoOutStorageId, BatchConstant.OUT_STORAGE_TYPE);
return new LdTwoOutStorageInfoVO()
.setApproveList(ldApproveList)
.setLdTwoOutStorage(ldTwoOutStorage)
.setLdTwoOutStorageDetailList(ldTwoOutStorageDetailList);
}
}

@ -106,6 +106,7 @@ public class LdTwoPutStorageServiceImpl extends ServiceImpl<LdTwoPutStorageMappe
.setUnitPrice(ldTwoPutStorageDetail.getUnitPrice())
.setAmount(ldTwoPutStorageDetail.getInboundQuantity()
.multiply(ldTwoPutStorageDetail.getUnitPrice()))
.setDepartmentId(ldTwoPutStorageDetail.getDemandDepartment())
.setDepartment(ldTwoPutStorageDetail.getDemandDepartmentName());
consumerFormService.save(ldConsumerForm);
}else {
@ -165,6 +166,7 @@ public class LdTwoPutStorageServiceImpl extends ServiceImpl<LdTwoPutStorageMappe
.setUnitPrice(ldTwoPutStorageDetail.getUnitPrice())
.setAmount(ldTwoPutStorageDetail.getInboundQuantity()
.multiply(ldTwoPutStorageDetail.getUnitPrice()))
.setDepartmentId(ldTwoPutStorageDetail.getDemandDepartment())
.setDepartment(ldTwoPutStorageDetail.getDemandDepartmentName());
durableList.add(ldDurableForm);
}

@ -1,32 +1,39 @@
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.Tuser;
import com.nov.KgLowDurable.pojo.vo.ApproverUser;
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.IUserInfoService;
import com.nov.KgLowDurable.service.IUserService;
import com.nov.KgLowDurable.util.HttpUtils;
import lombok.AllArgsConstructor;
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.security.auth.message.AuthException;
import java.time.LocalDateTime;
import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 服务实现类
*
* @author Chill
* @author liweidong
*/
@Service
@AllArgsConstructor
public class UserInfoServiceImpl implements IUserInfoService {
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
@Autowired
UserMapper userMapper;
@Autowired
ILdApproveService ldApproveService;
@ -71,13 +78,12 @@ public class UserInfoServiceImpl implements IUserInfoService {
}
@Override
public boolean getApprover(String mainErDepartment, String type,Long ldOnePutStorageId) {
public boolean getApprover(String mainErDepartment, String type,Long formId) {
// Map<String, String> headers = new HashMap<String, String>() {{
// put("Content-Type", "application/json");
// }};
//
// Map<String, String> querys = new HashMap<String, String>() {{
// put("deptId",mainErDepartment);
// put("type",type);
// }};
//
@ -103,22 +109,20 @@ public class UserInfoServiceImpl implements IUserInfoService {
// }
//
// ApproverUser approverUser = JSON.toJavaObject(obj.getJSONObject("data"), ApproverUser.class);
List<Tuser> tuserList = new ArrayList<>();
LdApprove ldApprove = new LdApprove();
ldApprove.setFormId(ldOnePutStorageId.intValue());
ldApprove.setFormId(formId.intValue());
ldApprove.setUserId("LiuXu");
ldApprove.setUserName("刘旭");
ldApprove.setLevel("1");
ldApprove.setStatus("0");
ldApprove.setOptTime(LocalDateTime.now());
ldApprove.setType("0");
ldApprove.setType(type);
boolean save = ldApproveService.save(ldApprove);
return save;
}
@Override
public Tuser getDeptApprove(String department) {
public User getDeptApprove(String department) {
// Map<String, String> headers = new HashMap<String, String>() {{
// put("Content-Type", "application/json");
// }};
@ -149,11 +153,14 @@ public class UserInfoServiceImpl implements IUserInfoService {
// }
//
// UserInfoVO approverUser = JSON.toJavaObject(obj.getJSONObject("data"), UserInfoVO.class);
Tuser tuser = new Tuser();
tuser.setUserId("负责人ID");
tuser.setName("负责人名称");
return tuser;
User user = new User();
user.setUserId("负责人ID");
user.setName("负责人名称");
return user;
}
@Override
public List<User> getUserByDeptId(String departmentId) {
return userMapper.selectByDepartmentId(departmentId);
}
}

@ -150,7 +150,7 @@ public class OrderNoGen {
throw new IllegalArgumentException("前缀不能为null");
}
// 可随时增加
if (!prefix.matches("^(FI|FID|FO|SI|SO)$")) {
if (!prefix.matches("^(FI|FID|FO|SI|SO|SOD)$")) {
throw new IllegalArgumentException(
"前缀必须为以下值之一:FI(一级库入库),FID(一级入库明细), FO(一级库出库), SI(二级库入库), SO(二级库出库)"
);

@ -0,0 +1,20 @@
<?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.DepartmentMapper">
<resultMap id="departmentResultMap" type="com.nov.KgLowDurable.pojo.entity.Department">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="parentid" property="parentid"/>
<result column="order" property="order"/>
<result column="oa_id" property="oaId"/>
</resultMap>
<select id="selectOnePutDepartment" resultType="com.nov.KgLowDurable.pojo.vo.DepartmentVO">
SELECT id as departmentId, name department
FROM t_department
WHERE parentid = 1
AND id NOT IN (12, 20, 50, 51, 52, 60);
</select>
</mapper>

@ -13,6 +13,9 @@
<result column="opt_time" property="optTime"/>
<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>
</mapper>

@ -15,6 +15,7 @@
<result column="num" property="num"/>
<result column="unit_price" property="unitPrice"/>
<result column="amount" property="amount"/>
<result column="department_id" property="departmentId"/>
<result column="department" property="department"/>
<result column="picture" property="picture"/>
<result column="remark" property="remark"/>
@ -23,6 +24,18 @@
<select id="selectByMaterialId" resultType="com.nov.KgLowDurable.pojo.entity.LdConsumerForm">
select * from ld_consumer_form where material_id = #{materialId}
</select>
<select id="selectByDepartmentId" resultType="com.nov.KgLowDurable.pojo.entity.LdConsumerForm">
select * from ld_consumer_form where department_id = #{departmentId}
</select>
<select id="selectConsumerFormList" resultType="com.nov.KgLowDurable.pojo.entity.LdConsumerForm">
select * from ld_consumer_form where 1=1
<if test="departmentId != null">
and department_id = #{departmentId}
</if>
<if test="materialName != null and materialName != ''">
AND material_name LIKE CONCAT('%', #{materialName}, '%')
</if>
</select>
</mapper>

@ -9,19 +9,19 @@
<result column="material_id" property="materialId"/>
<result column="material_name" property="materialName"/>
<result column="model" property="model"/>
<result column="type" property="type"/>
<result column="unit" property="unit"/>
<result column="num" property="num"/>
<result column="money" property="money"/>
<result column="year" property="year"/>
<result column="quarter" property="quarter"/>
<result column="opt_time" property="optTime"/>
<result column="department_id" property="departmentId"/>
<result column="department" property="department"/>
</resultMap>
<!-- 基础查询SQL -->
<sql id="baseColumnList">
id, demand_no, material_name, material_id, model, type, unit, num, money, year, quarter, opt_time ,department
id, demand_no, material_name, material_id, model, unit, num, money, year, quarter, opt_time ,department_id,department
</sql>
<select id="selectDemandEndList" resultType="com.nov.KgLowDurable.pojo.entity.LdDemandEnd">
@ -44,9 +44,9 @@
ORDER BY year DESC, quarter DESC;
</select>
<select id="selectByYearAndQuarter" resultType="java.lang.String">
<select id="selectByYearAndQuarter" resultType="com.nov.KgLowDurable.pojo.entity.LdDemandEnd">
SELECT
department
<include refid="baseColumnList" />
FROM ld_demand_end
WHERE `year` = #{year}
AND quarter = #{quarter}
@ -55,11 +55,13 @@
<select id="selectByIdList" resultType="com.nov.KgLowDurable.pojo.entity.LdDemandEnd">
SELECT
<include refid="baseColumnList" />
FROM ld_demand_end where id IN
FROM ld_demand_end where department_id = #{departmentId}
AND id IN
<foreach collection="idList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper>

@ -15,11 +15,22 @@
<result column="num" property="num"/>
<result column="unit_price" property="unitPrice"/>
<result column="amount" property="amount"/>
<result column="department_id" property="departmentId"/>
<result column="department" property="department"/>
<result column="picture" property="picture"/>
<result column="remark" property="remark"/>
<result column="is_borrow" property="isBorrow"/>
<result column="return_time" property="returnTime"/>
</resultMap>
<select id="selectDurableFormList" resultType="com.nov.KgLowDurable.pojo.entity.LdDurableForm">
select * from ld_durable_form where 1=1
<if test="departmentId != null">
and department_id = #{departmentId}
</if>
<if test="materialName != null and materialName != ''">
AND material_name LIKE CONCAT('%', #{materialName}, '%')
</if>
</select>
</mapper>

@ -5,7 +5,6 @@
<!-- 通用查询映射结果 -->
<resultMap id="menuResultMap" type="com.nov.KgLowDurable.pojo.entity.LdOneForm">
<id column="id" property="id"/>
<result column="stock_code" property="stockCode"/>
<result column="material_id" property="materialId"/>
<result column="material_name" property="materialName"/>
<result column="material_code" property="materialCode"/>

@ -51,12 +51,21 @@
</select>
<select id="selectByOneOutStorageIds" resultType="com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail">
SELECT
<include refid="baseColumnList" />
material_id,
material_code,
material_name,
model,
type,
unit,
application_quantity,
SUM(outbound_quantity) as outbound_quantity
FROM ld_one_out_storage_detail
where one_out_storage_id in
<foreach collection="oneOutStorageIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
GROUP BY material_id,material_code, material_name, model, type, unit, application_quantity
ORDER BY material_code;
</select>
<select id="selectByDemandEndId" resultType="com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail">
select

@ -6,13 +6,10 @@
<resultMap id="menuResultMap" type="com.nov.KgLowDurable.pojo.entity.LdOneOutStorage">
<id column="id" property="id"/>
<result column="demand_end_info" property="demandEndInfo"/>
<result column="warehouse_name" property="warehouseName"/>
<result column="order_no" property="orderNo"/>
<result column="out_date" property="outDate"/>
<result column="reason" property="reason"/>
<result column="material_type" property="materialType"/>
<result column="department" property="department"/>
<result column="secondary_inventory" property="secondaryInventory"/>
<result column="status" property="status"/>
<result column="shipper_id" property="shipperId"/>
<result column="shipper_name" property="shipperName"/>

@ -74,6 +74,7 @@
ld_purchase_end_id,
material_id,
material_name,
material_code,
model,
type,
unit,
@ -82,10 +83,15 @@
SUM(inbound_quantity) as inbound_quantity
FROM ld_one_put_storage_detail
WHERE ld_purchase_end_id IS NOT NULL
and one_put_storage_id in
<foreach collection="collect" item="id" open="(" separator="," close=")">
#{id}
</foreach>
GROUP BY
ld_purchase_end_id,
material_id,
material_name,
material_code,
model,
type,
unit,

@ -6,7 +6,6 @@
<resultMap id="menuResultMap" type="com.nov.KgLowDurable.pojo.entity.LdOnePutStorage">
<id column="id" property="id"/>
<result column="purchase_end_info" property="purchaseEndInfo"/>
<result column="warehouse_name" property="warehouseName"/>
<result column="order_no" property="orderNo"/>
<result column="in_date" property="inDate"/>
<result column="source" property="source"/>

@ -9,7 +9,6 @@
<result column="material_id" property="materialId"/>
<result column="material_name" property="materialName"/>
<result column="model" property="model"/>
<result column="type" property="type"/>
<result column="unit" property="unit"/>
<result column="num" property="num"/>
<result column="money" property="money"/>
@ -20,7 +19,7 @@
<!-- 基础查询SQL -->
<sql id="baseColumnList">
id, purchase_no, material_name, material_id, model, type, unit, num, money, year, quarter, opt_time
id, purchase_no, material_name, material_id, model, unit, num, money, year, quarter, opt_time
</sql>
<select id="selectPurchaseEndList" resultType="com.nov.KgLowDurable.pojo.entity.LdPurchaseEnd">

@ -0,0 +1,26 @@
<?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.LdTwoOutStorageDetailMapper">
<!-- 二级库出库明细表查询映射结果 -->
<resultMap id="ldTwoOutStorageDetailResultMap" type="com.nov.KgLowDurable.pojo.entity.LdTwoOutStorageDetail">
<id column="id" property="id"/>
<result column="two_out_storage_id" property="twoOutStorageId"/>
<result column="two_out_storage_no" property="twoOutStorageNo"/>
<result column="two_out_detail_code" property="twoOutDetailCode"/>
<result column="material_id" property="materialId"/>
<result column="material_name" property="materialName"/>
<result column="material_code" property="materialCode"/>
<result column="model" property="model"/>
<result column="type" property="type"/>
<result column="unit" property="unit"/>
<result column="num" property="num"/>
<result column="remark" property="remark"/>
<result column="shipper_status" property="shipperStatus"/>
<result column="opt_time" property="optTime"/>
</resultMap>
<select id="selectByTwoOutStorageId" resultType="com.nov.KgLowDurable.pojo.entity.LdTwoOutStorageDetail">
select * from ld_two_out_storage_detail where two_out_storage_id = #{twoOutStorageId}
</select>
</mapper>

@ -0,0 +1,35 @@
<?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.LdTwoOutStorageMapper">
<!-- 二级库出库表查询映射结果 -->
<resultMap id="ldTwoOutStorageResultMap" type="com.nov.KgLowDurable.pojo.entity.LdTwoOutStorage">
<id column="id" property="id"/>
<result column="order_no" property="orderNo"/>
<result column="out_date" property="outDate"/>
<result column="reason" property="reason"/>
<result column="material_type" property="materialType"/>
<result column="department_id" property="departmentId"/>
<result column="department" property="department"/>
<result column="proposer_id" property="proposerId"/>
<result column="proposer_name" property="proposerName"/>
<result column="shipper_id" property="shipperId"/>
<result column="shipper_name" property="shipperName"/>
<result column="sp_no" property="spNo"/>
<result column="status" property="status"/>
</resultMap>
<select id="selectTwoOutStorageList" resultType="com.nov.KgLowDurable.pojo.entity.LdTwoOutStorage">
select * from ld_two_out_storage where 1=1
<if test="startTime !=null and endTime !=null">
and out_date between #{startTime} and #{endTime}
</if>
<if test="shipperName !=null and shipperName!=''">
AND shipper_name LIKE CONCAT('%', #{shipperName}, '%')
</if>
<if test="departmentId !=null ">
AND department_id = #{departmentId}
</if>
order by out_date
</select>
</mapper>

@ -6,7 +6,6 @@
<resultMap id="ldTwoPutStorageResultMap" type="com.nov.KgLowDurable.pojo.entity.LdTwoPutStorage">
<id column="id" property="id"/>
<result column="demand_end_info" property="demandEndInfo"/>
<result column="warehouse_name" property="warehouseName"/>
<result column="order_no" property="orderNo"/>
<result column="in_date" property="inDate"/>
<result column="source" property="source"/>

@ -0,0 +1,43 @@
<?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.UserMapper">
<!-- 用户表查询映射结果 -->
<resultMap id="userResultMap" type="com.nov.KgLowDurable.pojo.entity.User">
<id column="userId" property="userId"/>
<result column="name" property="name"/>
<result column="department" property="department"/>
<result column="main_department" property="mainDepartment"/>
<result column="main_er_department" property="mainErDepartment"/>
<result column="leader_in_dept" property="leaderInDept"/>
<result column="gender" property="gender"/>
<result column="phone" property="phone"/>
<result column="mail" property="mail"/>
<result column="name_code" property="nameCode"/>
<result column="card_no" property="cardNo"/>
<result column="cabinet_card_no" property="cabinetCardNo"/>
<result column="cert_no" property="certNo"/>
<result column="birthday" property="birthday"/>
<result column="address" property="address"/>
<result column="nation" property="nation"/>
<result column="work_time" property="workTime"/>
<result column="school_record" property="schoolRecord"/>
<result column="graduation_school" property="graduationSchool"/>
<result column="graduation_major" property="graduationMajor"/>
<result column="graduation_time" property="graduationTime"/>
<result column="entry_time" property="entryTime"/>
<result column="is_del" property="isDel"/>
<result column="opt_user" property="optUser"/>
<result column="opt_time" property="optTime"/>
<result column="oa_user_id" property="oaUserId"/>
<result column="car_number" property="carNumber"/>
<result column="is_duty" property="isDuty"/>
<result column="user_sort" property="userSort"/>
</resultMap>
<select id="selectByDepartmentId" resultType="com.nov.KgLowDurable.pojo.entity.User">
select * from t_user where main_er_department = #{departmentId} and is_del=0
</select>
</mapper>
Loading…
Cancel
Save