diff --git a/src/main/java/com/nov/KgLowDurable/config/FileUploadConfig.java b/src/main/java/com/nov/KgLowDurable/config/FileUploadConfig.java index 688aed6..3a6eaa3 100644 --- a/src/main/java/com/nov/KgLowDurable/config/FileUploadConfig.java +++ b/src/main/java/com/nov/KgLowDurable/config/FileUploadConfig.java @@ -9,11 +9,11 @@ import org.springframework.stereotype.Component; public class FileUploadConfig { // 本地服务器地址 - @Value("${file.upload.server:http://10.90.100.231:8132}") + @Value("${file.upload.server:http://192.168.0.107:8083}") private String serverUrl; // 基础存储路径 - @Value("${file.upload.base-path:/opt/SmartParkFilesTest}") + @Value("${file.upload.base-path:D:/opt/SmartParkFilesTest}") private String basePath; // 允许的文件类型 diff --git a/src/main/java/com/nov/KgLowDurable/controller/LdConsumerFormController.java b/src/main/java/com/nov/KgLowDurable/controller/LdConsumerFormController.java index 39d38f5..11d5849 100644 --- a/src/main/java/com/nov/KgLowDurable/controller/LdConsumerFormController.java +++ b/src/main/java/com/nov/KgLowDurable/controller/LdConsumerFormController.java @@ -37,9 +37,11 @@ public class LdConsumerFormController { @RequestParam(required = false) String departmentId, @RequestParam(required = false) String materialName, @RequestParam(required = false ,defaultValue = "1") Integer pageNum, - @RequestParam(required = false ,defaultValue = "10") Integer pageSize) { + @RequestParam(required = false ,defaultValue = "10") Integer pageSize, + @RequestParam(required = false) Integer num + ) { - return Result.OK(consumerFormService.getConsumerFormList(departmentId,materialName,pageNum,pageSize)); + return Result.OK(consumerFormService.getConsumerFormList(departmentId,materialName,num,pageNum,pageSize)); } @GetMapping("/getConsumerFormList") @@ -47,8 +49,7 @@ public class LdConsumerFormController { @ApiOperation(value = "获取二级出库物资列表", notes = "根据部门获取二级出库物资列表", httpMethod = "GET", response = Result.class) public Result getConsumerFormList(@RequestParam String departmentId) { try { - List quarters = consumerFormService.getConsumerFormByDeptId(departmentId); - return Result.OK(quarters); + return Result.OK(consumerFormService.getConsumerFormByDeptId(departmentId)); } catch (Exception e) { return Result.error("获取二级出库物资列表失败"); } diff --git a/src/main/java/com/nov/KgLowDurable/controller/LdDurableFormController.java b/src/main/java/com/nov/KgLowDurable/controller/LdDurableFormController.java index 0c273fd..e29617f 100644 --- a/src/main/java/com/nov/KgLowDurable/controller/LdDurableFormController.java +++ b/src/main/java/com/nov/KgLowDurable/controller/LdDurableFormController.java @@ -34,9 +34,11 @@ public class LdDurableFormController { @RequestParam(required = false) String departmentId, @RequestParam(required = false) String materialName, @RequestParam(required = false ,defaultValue = "1") Integer pageNum, - @RequestParam(required = false ,defaultValue = "10") Integer pageSize) { + @RequestParam(required = false ,defaultValue = "10") Integer pageSize, + @RequestParam(required = false) Integer num + ) { - return Result.OK(durableFormService.getDurableFormList(departmentId,materialName,pageNum,pageSize)); + return Result.OK(durableFormService.getDurableFormList(departmentId,materialName,num,pageNum,pageSize)); } @@ -48,24 +50,4 @@ public class LdDurableFormController { return Result.OK(durableFormService.restoreAndScrap(dto)); } - @Autowired - SerialNumberUtil serialNumberUtil; - - @PostMapping("/test") - @ApiOperationSort(3) - @ApiOperation(value = "二级耐用品归还报废", notes = "修改耐用品状态", httpMethod = "POST", response = Result.class) - public Result test() { - for (int i = 0; i < 10; i++) { - String fi = serialNumberUtil.generateSimple("FI"); - String fo = serialNumberUtil.generateSimple("FO"); - String si = serialNumberUtil.generateSimple("SI"); - String fid = serialNumberUtil.generateSimple("FID"); - System.out.println("第"+i+"次"+":"+fi+" ,"+fo+", "+si+", "+fid); - } - List list = serialNumberUtil.generateBatchSimple("FID", 10); - System.out.println(list); - - return Result.OK(); - } - } diff --git a/src/main/java/com/nov/KgLowDurable/controller/LdOneFormController.java b/src/main/java/com/nov/KgLowDurable/controller/LdOneFormController.java index 41aed18..9d52bd5 100644 --- a/src/main/java/com/nov/KgLowDurable/controller/LdOneFormController.java +++ b/src/main/java/com/nov/KgLowDurable/controller/LdOneFormController.java @@ -1,10 +1,13 @@ package com.nov.KgLowDurable.controller; +import com.nov.KgLowDurable.pojo.entity.LdOneForm; import com.nov.KgLowDurable.service.ILdOneFormService; import com.nov.KgLowDurable.util.Result; import io.swagger.annotations.*; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * @author liweidong @@ -43,4 +46,15 @@ public class LdOneFormController { } + @PostMapping("/getOnePutOneForm") + @ApiOperationSort(3) + @ApiOperation(value = "获取一级出库库存", notes = "查询库存", httpMethod = "POST", response = Result.class) + public Result getOnePutOneForm(@RequestBody List oneFormList) { + + return Result.OK(oneFormService.getOnePutOneForm(oneFormList)); + } + + + + } diff --git a/src/main/java/com/nov/KgLowDurable/controller/LdTwoOutStorageDetailController.java b/src/main/java/com/nov/KgLowDurable/controller/LdTwoOutStorageDetailController.java index d829883..8646bd8 100644 --- a/src/main/java/com/nov/KgLowDurable/controller/LdTwoOutStorageDetailController.java +++ b/src/main/java/com/nov/KgLowDurable/controller/LdTwoOutStorageDetailController.java @@ -1,8 +1,18 @@ package com.nov.KgLowDurable.controller; +import com.nov.KgLowDurable.pojo.dto.LdTwoInventoryDto; +import com.nov.KgLowDurable.service.ILdTwoOutStorageDetailService; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * @author liweidong @@ -12,5 +22,21 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/twoOutStorageDetail") public class LdTwoOutStorageDetailController { + @Autowired + ILdTwoOutStorageDetailService twoOutStorageDetailService; + + /** + * 二级出库表格数据 + * @param materialDto + * @return + */ + @PostMapping("/getTwoOutInventory") + @ApiOperationSort(3) + @ApiOperation(value = "获取二级出库库存", notes = "查询库存", httpMethod = "POST", response = Result.class) + public Result getTwoOutInventory(@RequestBody List materialDto) { + + return Result.OK(twoOutStorageDetailService.getTwoOutInventory(materialDto)); + } + } diff --git a/src/main/java/com/nov/KgLowDurable/mapper/DepartmentMapper.java b/src/main/java/com/nov/KgLowDurable/mapper/DepartmentMapper.java index eec5231..a6a511a 100644 --- a/src/main/java/com/nov/KgLowDurable/mapper/DepartmentMapper.java +++ b/src/main/java/com/nov/KgLowDurable/mapper/DepartmentMapper.java @@ -2,6 +2,8 @@ package com.nov.KgLowDurable.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nov.KgLowDurable.pojo.entity.Department; import com.nov.KgLowDurable.pojo.vo.DepartmentVO; +import org.apache.ibatis.annotations.Param; + import java.util.List; @@ -13,4 +15,6 @@ public interface DepartmentMapper extends BaseMapper { List selectOnePutDepartment(); + + Department selectByDepartmentId(@Param("departmentId") String departmentId); } diff --git a/src/main/java/com/nov/KgLowDurable/mapper/LdConsumerFormMapper.java b/src/main/java/com/nov/KgLowDurable/mapper/LdConsumerFormMapper.java index e1dd280..a5a2e67 100644 --- a/src/main/java/com/nov/KgLowDurable/mapper/LdConsumerFormMapper.java +++ b/src/main/java/com/nov/KgLowDurable/mapper/LdConsumerFormMapper.java @@ -1,6 +1,7 @@ package com.nov.KgLowDurable.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nov.KgLowDurable.pojo.entity.LdConsumerForm; +import com.nov.KgLowDurable.pojo.vo.LdTwoInventoryVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -16,5 +17,7 @@ public interface LdConsumerFormMapper extends BaseMapper { List selectByDepartmentId(@Param("departmentId") String departmentId); - List selectConsumerFormList(@Param("departmentId") String departmentId, @Param("materialName") String materialName); + List selectConsumerFormList(@Param("departmentId") String departmentId, @Param("materialName") String materialName, @Param("num") Integer num); + + List selectByIds(@Param("consumerIds") List consumerIds); } diff --git a/src/main/java/com/nov/KgLowDurable/mapper/LdDurableFormMapper.java b/src/main/java/com/nov/KgLowDurable/mapper/LdDurableFormMapper.java index 6c9b3cf..5526228 100644 --- a/src/main/java/com/nov/KgLowDurable/mapper/LdDurableFormMapper.java +++ b/src/main/java/com/nov/KgLowDurable/mapper/LdDurableFormMapper.java @@ -1,6 +1,7 @@ package com.nov.KgLowDurable.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nov.KgLowDurable.pojo.entity.LdDurableForm; +import com.nov.KgLowDurable.pojo.vo.LdTwoInventoryVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -12,7 +13,9 @@ import java.util.List; public interface LdDurableFormMapper extends BaseMapper { - List selectDurableFormList(@Param("departmentId") String departmentId, @Param("materialName") String materialName); + List selectDurableFormList(@Param("departmentId") String departmentId, @Param("materialName") String materialName, @Param("num") Integer num); LdDurableForm selectByMaterialId(@Param("materialId") Long materialId); + + List selectByIds(@Param("durableIds") List durableIds); } diff --git a/src/main/java/com/nov/KgLowDurable/mapper/LdOnePutStorageDetailMapper.java b/src/main/java/com/nov/KgLowDurable/mapper/LdOnePutStorageDetailMapper.java index 9c31feb..7e5a890 100644 --- a/src/main/java/com/nov/KgLowDurable/mapper/LdOnePutStorageDetailMapper.java +++ b/src/main/java/com/nov/KgLowDurable/mapper/LdOnePutStorageDetailMapper.java @@ -15,7 +15,7 @@ public interface LdOnePutStorageDetailMapper extends BaseMapper selectSummaryDat(@Param("collect")List collect); + List selectSummaryData(@Param("collect")List collect); List selectByOnePutStorageId(@Param("onePutStorageId") Long onePutStorageId); } diff --git a/src/main/java/com/nov/KgLowDurable/mapper/UserMapper.java b/src/main/java/com/nov/KgLowDurable/mapper/UserMapper.java index 48e3eba..6002ca0 100644 --- a/src/main/java/com/nov/KgLowDurable/mapper/UserMapper.java +++ b/src/main/java/com/nov/KgLowDurable/mapper/UserMapper.java @@ -13,4 +13,6 @@ public interface UserMapper extends BaseMapper { List selectByDepartmentId(@Param("departmentId") String departmentId); + + User selectByLeaderInDept(@Param("topDepartmentId") String topDepartmentId); } diff --git a/src/main/java/com/nov/KgLowDurable/pojo/dto/LdTwoInventoryDto.java b/src/main/java/com/nov/KgLowDurable/pojo/dto/LdTwoInventoryDto.java new file mode 100644 index 0000000..8c68e16 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/pojo/dto/LdTwoInventoryDto.java @@ -0,0 +1,21 @@ +package com.nov.KgLowDurable.pojo.dto; + +import lombok.Data; + +/** + * @author: liweidong + * @create: 2026-01-07 + */ +@Data +public class LdTwoInventoryDto { + + /** + * 库存ID 耐用品/易耗品 + */ + private Long twoInventoryId; + + /** + * 物资类型 YH/NY + */ + private String type; +} diff --git a/src/main/java/com/nov/KgLowDurable/pojo/entity/LdTwoOutStorageDetail.java b/src/main/java/com/nov/KgLowDurable/pojo/entity/LdTwoOutStorageDetail.java index a98d000..f95a878 100644 --- a/src/main/java/com/nov/KgLowDurable/pojo/entity/LdTwoOutStorageDetail.java +++ b/src/main/java/com/nov/KgLowDurable/pojo/entity/LdTwoOutStorageDetail.java @@ -24,19 +24,25 @@ public class LdTwoOutStorageDetail implements Serializable { private Long id; /** - * 一级出库单ID + * 二级库存ID 易耗品/耐用品ID + */ + @TableField("two_inventory_id") + private Long twoInventoryId; + + /** + * 二级出库单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; diff --git a/src/main/java/com/nov/KgLowDurable/pojo/vo/LdTwoInventoryVO.java b/src/main/java/com/nov/KgLowDurable/pojo/vo/LdTwoInventoryVO.java new file mode 100644 index 0000000..2f13dc4 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/pojo/vo/LdTwoInventoryVO.java @@ -0,0 +1,82 @@ +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 lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 低值易耗品二级库库存表实体类 + * + * @author: liweidong + * @create: 2025-12-24 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class LdTwoInventoryVO implements Serializable { + + + /** + * ID + */ + private Integer id; + + /** + * 物资ID + */ + private Long materialId; + + /** + * 物资名称 + */ + private String materialName; + + /** + * 物资编码 + */ + private String materialCode; + + + /** + * 规格型号 + */ + private String model; + + /** + * 类别 易耗/耐用 + */ + private String type; + + /** + * 单位 + */ + private String unit; + + /** + * 数量 + */ + private BigDecimal num; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + + /** + * 部门 + */ + private String departmentId; + + /** + * 部门 + */ + private String department; + +} diff --git a/src/main/java/com/nov/KgLowDurable/service/IDepartmentService.java b/src/main/java/com/nov/KgLowDurable/service/IDepartmentService.java index db73070..ae57eb0 100644 --- a/src/main/java/com/nov/KgLowDurable/service/IDepartmentService.java +++ b/src/main/java/com/nov/KgLowDurable/service/IDepartmentService.java @@ -16,4 +16,11 @@ public interface IDepartmentService extends IService { * @return */ List getOnePutDepartment(); + + /** + * 根据ID查询部门 + * @param departmentId + * @return + */ + Department getByDepartmentId(String departmentId); } diff --git a/src/main/java/com/nov/KgLowDurable/service/ILdConsumerFormService.java b/src/main/java/com/nov/KgLowDurable/service/ILdConsumerFormService.java index 7b5e368..954461d 100644 --- a/src/main/java/com/nov/KgLowDurable/service/ILdConsumerFormService.java +++ b/src/main/java/com/nov/KgLowDurable/service/ILdConsumerFormService.java @@ -3,6 +3,8 @@ package com.nov.KgLowDurable.service; import com.baomidou.mybatisplus.extension.service.IService; import com.github.pagehelper.PageInfo; import com.nov.KgLowDurable.pojo.entity.LdConsumerForm; +import com.nov.KgLowDurable.pojo.vo.LdTwoInventoryVO; + import java.util.List; @@ -30,9 +32,17 @@ public interface ILdConsumerFormService extends IService { * 二级易耗品列表 * @param departmentId * @param materialName + * @param num * @param pageNum * @param pageSize * @return */ - PageInfo getConsumerFormList(String departmentId, String materialName, Integer pageNum, Integer pageSize); + PageInfo getConsumerFormList(String departmentId, String materialName, Integer num, Integer pageNum, Integer pageSize); + + /** + * 根据IDS 查询 + * @param consumerIds + * @return + */ + List getByIds(List consumerIds); } diff --git a/src/main/java/com/nov/KgLowDurable/service/ILdDurableFormService.java b/src/main/java/com/nov/KgLowDurable/service/ILdDurableFormService.java index f3253a2..4dfd594 100644 --- a/src/main/java/com/nov/KgLowDurable/service/ILdDurableFormService.java +++ b/src/main/java/com/nov/KgLowDurable/service/ILdDurableFormService.java @@ -3,8 +3,8 @@ package com.nov.KgLowDurable.service; import com.baomidou.mybatisplus.extension.service.IService; import com.github.pagehelper.PageInfo; import com.nov.KgLowDurable.pojo.dto.LdDurableFormDto; -import com.nov.KgLowDurable.pojo.entity.LdConsumerForm; import com.nov.KgLowDurable.pojo.entity.LdDurableForm; +import com.nov.KgLowDurable.pojo.vo.LdTwoInventoryVO; import java.util.List; @@ -19,11 +19,12 @@ public interface ILdDurableFormService extends IService { * 获取二级耐用品列表 * @param departmentId * @param materialName + * @param num * @param pageNum * @param pageSize * @return */ - PageInfo getDurableFormList(String departmentId, String materialName, Integer pageNum, Integer pageSize); + PageInfo getDurableFormList(String departmentId, String materialName, Integer num, Integer pageNum, Integer pageSize); /** * 归还 报废 接口 @@ -39,4 +40,10 @@ public interface ILdDurableFormService extends IService { */ LdDurableForm getByMaterialId(Long materialId); + /** + * 根据IDS 擦汗讯 + * @param durableIds + * @return + */ + List getByIds(List durableIds); } diff --git a/src/main/java/com/nov/KgLowDurable/service/ILdOneFormService.java b/src/main/java/com/nov/KgLowDurable/service/ILdOneFormService.java index b63aefb..9b385b2 100644 --- a/src/main/java/com/nov/KgLowDurable/service/ILdOneFormService.java +++ b/src/main/java/com/nov/KgLowDurable/service/ILdOneFormService.java @@ -42,4 +42,11 @@ public interface ILdOneFormService extends IService { * @return */ List getPutOneForm(String optionType); + + /** + * 查询一级入库 库存信息 + * @param oneFormList + * @return + */ + List getOnePutOneForm(List oneFormList); } diff --git a/src/main/java/com/nov/KgLowDurable/service/ILdTwoOutStorageDetailService.java b/src/main/java/com/nov/KgLowDurable/service/ILdTwoOutStorageDetailService.java index 12d0af7..28963a9 100644 --- a/src/main/java/com/nov/KgLowDurable/service/ILdTwoOutStorageDetailService.java +++ b/src/main/java/com/nov/KgLowDurable/service/ILdTwoOutStorageDetailService.java @@ -1,5 +1,6 @@ package com.nov.KgLowDurable.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.nov.KgLowDurable.pojo.dto.LdTwoInventoryDto; import com.nov.KgLowDurable.pojo.entity.LdTwoOutStorageDetail; import java.util.List; @@ -16,4 +17,11 @@ public interface ILdTwoOutStorageDetailService extends IService selectByTwoOutStorageId(Long twoOutStorageId); + + /** + * 获取二级出库表格数据 + * @param materialDto + * @return + */ + List getTwoOutInventory(List materialDto); } diff --git a/src/main/java/com/nov/KgLowDurable/service/IUserService.java b/src/main/java/com/nov/KgLowDurable/service/IUserService.java index b86ee12..11b1467 100644 --- a/src/main/java/com/nov/KgLowDurable/service/IUserService.java +++ b/src/main/java/com/nov/KgLowDurable/service/IUserService.java @@ -20,8 +20,8 @@ public interface IUserService extends IService { /** * 获取审批人 - * @param mainErDepartment - * @param type + * @param mainErDepartment -部门id + * @param type 类型:0-一级入库审批;1-二级出库审批;2-部门申请单审批 * @param formId * @return */ diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/DepartmentServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/DepartmentServiceImpl.java index 98c6664..de07409 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/DepartmentServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/DepartmentServiceImpl.java @@ -26,4 +26,9 @@ public class DepartmentServiceImpl extends ServiceImpl getOnePutDepartment() { return departmentMapper.selectOnePutDepartment(); } + + @Override + public Department getByDepartmentId(String departmentId) { + return departmentMapper.selectByDepartmentId(departmentId); + } } diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdConsumerFormServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdConsumerFormServiceImpl.java index a134385..87e4ebf 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdConsumerFormServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdConsumerFormServiceImpl.java @@ -3,12 +3,9 @@ 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.pojo.vo.LdTwoInventoryVO; import com.nov.KgLowDurable.service.ILdConsumerFormService; import com.nov.KgLowDurable.service.ILdDurableFormService; import lombok.AllArgsConstructor; @@ -42,10 +39,15 @@ public class LdConsumerFormServiceImpl extends ServiceImpl getConsumerFormList(String departmentId, String materialName, Integer pageNum, Integer pageSize) { + public PageInfo getConsumerFormList(String departmentId, String materialName, Integer num, Integer pageNum, Integer pageSize) { PageHelper.startPage(pageNum,pageSize); - List ldConsumerFormList = consumerFormMapper.selectConsumerFormList(departmentId,materialName); + List ldConsumerFormList = consumerFormMapper.selectConsumerFormList(departmentId,materialName,num); PageInfo pageInfo = new PageInfo<>(ldConsumerFormList); return pageInfo; } + + @Override + public List getByIds(List consumerIds) { + return consumerFormMapper.selectByIds(consumerIds); + } } diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdDurableFormServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdDurableFormServiceImpl.java index 23d53df..a3e9595 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdDurableFormServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdDurableFormServiceImpl.java @@ -4,13 +4,10 @@ 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.LdDurableFormMapper; import com.nov.KgLowDurable.pojo.dto.LdDurableFormDto; -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.pojo.vo.LdTwoInventoryVO; import com.nov.KgLowDurable.service.ILdDurableFormService; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; @@ -31,9 +28,9 @@ public class LdDurableFormServiceImpl extends ServiceImpl getDurableFormList(String departmentId, String materialName, Integer pageNum, Integer pageSize) { + public PageInfo getDurableFormList(String departmentId, String materialName, Integer num, Integer pageNum, Integer pageSize) { PageHelper.startPage(pageNum,pageSize); - List ldDurableFormList = durableFormMapper.selectDurableFormList(departmentId,materialName); + List ldDurableFormList = durableFormMapper.selectDurableFormList(departmentId,materialName,num); PageInfo pageInfo = new PageInfo<>(ldDurableFormList); return pageInfo; } @@ -65,4 +62,9 @@ public class LdDurableFormServiceImpl extends ServiceImpl getByIds(List durableIds) { + return durableFormMapper.selectByIds(durableIds); + } } diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneFormServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneFormServiceImpl.java index e78f04e..e658c83 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneFormServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneFormServiceImpl.java @@ -2,19 +2,17 @@ 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.LdMaterialMapper; +import com.nov.KgLowDurable.constant.BatchConstant; import com.nov.KgLowDurable.mapper.LdOneFormMapper; -import com.nov.KgLowDurable.pojo.entity.LdMaterial; import com.nov.KgLowDurable.pojo.entity.LdOneForm; -import com.nov.KgLowDurable.service.ILdMaterialService; import com.nov.KgLowDurable.service.ILdOneFormService; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; -import java.time.LocalDateTime; -import java.util.Arrays; -import java.util.List; +import java.math.BigDecimal; +import java.util.*; import java.util.stream.Collectors; /** @@ -53,4 +51,58 @@ public class LdOneFormServiceImpl extends ServiceImpl getPutOneForm(String optionType) { return oneFormMapper.selectOneFormByNum(optionType); } + + @Override + public List getOnePutOneForm(List oneFormList) { + + + //收集所有数据 + List list = new ArrayList<>(); + for (LdOneForm oneForm : oneFormList) { + List formList = oneFormMapper.selectByMaterialId(oneForm.getMaterialId(), oneForm.getType()); + list.addAll(formList); + } + + //分组并求和 + List mergedList = list.stream() + // 按 materialId 和 type 分组 + .collect(Collectors.groupingBy( + form -> form.getMaterialId() + "_" + form.getType(), + LinkedHashMap::new, // 保持顺序 + Collectors.collectingAndThen( + Collectors.toList(), + forms -> { + //取第一条作为模板 + LdOneForm template = createNewForm(forms.get(0)); + //求和NUM字段 + BigDecimal totalNum = forms.stream() + .map(f -> f.getNum() != null ? f.getNum() : BigDecimal.ZERO) + .reduce(BigDecimal.ZERO, BigDecimal::add); + template.setNum(totalNum); + return template; + } + ) + )) + .values().stream() + .collect(Collectors.toList()); + + return mergedList; + } + + private LdOneForm createNewForm(LdOneForm source) { + LdOneForm newForm = new LdOneForm(); + + // 复制所有需要的字段 + newForm.setId(source.getId()); + newForm.setMaterialId(source.getMaterialId()); + newForm.setMaterialName(source.getMaterialName()); + newForm.setMaterialCode(source.getMaterialCode()); + newForm.setModel(source.getModel()); + newForm.setType(source.getType()); + newForm.setNum(source.getNum()); + newForm.setUnit(source.getUnit()); + return newForm; + } + + } diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageServiceImpl.java index f7f8323..6440690 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageServiceImpl.java @@ -436,6 +436,15 @@ public class LdOneOutStorageServiceImpl extends ServiceImpl ldOneOutStorageDetailList = oneOutStorageDetailService.getByOneOutStorageId(ldOneOutStorage.getId()); + for (LdOneOutStorageDetail oneOutStorageDetail : ldOneOutStorageDetailList) { + List oneOutDetailList = oneOutStorageDetailService.selectByDemandEndId(oneOutStorageDetail.getLdDemandEndId()); + BigDecimal sum = oneOutDetailList.stream() + .map(LdOneOutStorageDetail::getOutboundQuantity) + .filter(Objects::nonNull) + .reduce(BigDecimal.ZERO, BigDecimal::add); + oneOutStorageDetail.setOutboundQuantity(sum); + } + LdOneOutStorageInfoVO ldOneOutStorageInfoVO = new LdOneOutStorageInfoVO(); ldOneOutStorageInfoVO.setLdOneOutStorage(ldOneOutStorage); ldOneOutStorageInfoVO.setLdOneOutStorageDetails(ldOneOutStorageDetailList); diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageDetailServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageDetailServiceImpl.java index fe1540e..3c0f638 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageDetailServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageDetailServiceImpl.java @@ -46,7 +46,7 @@ public class LdOnePutStorageDetailServiceImpl extends ServiceImpl getSummaryData(List collect) { - return onePutStorageDetailMapper.selectSummaryDat(collect); + return onePutStorageDetailMapper.selectSummaryData(collect); } @Override diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoInventoryRecordServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoInventoryRecordServiceImpl.java index 448a56a..72b1d10 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoInventoryRecordServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoInventoryRecordServiceImpl.java @@ -74,7 +74,7 @@ public class LdTwoInventoryRecordServiceImpl extends ServiceImpl ldTwoOutStorageDetailList = twoOutStorageDetailService.selectByTwoOutStorageId(approveDto.getTwoOutStorageId()); for (LdTwoOutStorageDetail twoOutStorageDetail : ldTwoOutStorageDetailList) { if(BatchConstant.CONSUMER.equals(twoOutStorageDetail.getType())){ - LdConsumerForm consumerForm = consumerFormService.getByMaterialId(twoOutStorageDetail.getMaterialId()); + LdConsumerForm consumerForm = consumerFormService.getById(twoOutStorageDetail.getTwoInventoryId()); //计算差值 BigDecimal difference = consumerForm.getNum().subtract(twoOutStorageDetail.getNum()); consumerForm.setNum(difference); @@ -97,7 +97,7 @@ public class LdTwoInventoryRecordServiceImpl extends ServiceImpl selectByTwoOutStorageId(Long twoOutStorageId) { return twoOutStorageDetailMapper.selectByTwoOutStorageId(twoOutStorageId); } + + @Override + public List getTwoOutInventory(List materialDto) { + // 获取易耗品类型的twoInventoryId列表 + List consumerIds = materialDto.stream() + .filter(dto -> BatchConstant.CONSUMER.equals(dto.getType())) + .map(LdTwoInventoryDto::getTwoInventoryId) + .collect(Collectors.toList()); + + // 获取耐用型类型的twoInventoryId列表 + List durableIds = materialDto.stream() + .filter(dto -> BatchConstant.DURABLE.equals(dto.getType())) + .map(LdTwoInventoryDto::getTwoInventoryId) + .collect(Collectors.toList()); + + List twoInventoryList = new ArrayList<>(); + + if(!CollectionUtils.isEmpty(consumerIds)){ + twoInventoryList = consumerFormService.getByIds(consumerIds); + } + if(!CollectionUtils.isEmpty(durableIds)){ + twoInventoryList = durableFormService.getByIds(durableIds); + } + return twoInventoryList; + } } + + + + + + + + + + + + + + + + diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/UserServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/UserServiceImpl.java index 5edeb48..becdf66 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/UserServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/UserServiceImpl.java @@ -3,17 +3,23 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.Role; import com.nov.KgLowDurable.pojo.entity.User; 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; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.apache.http.util.EntityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; @@ -26,6 +32,7 @@ import java.util.Map; */ @Service @AllArgsConstructor +@Slf4j public class UserServiceImpl extends ServiceImpl implements IUserService { @Autowired @@ -34,6 +41,9 @@ public class UserServiceImpl extends ServiceImpl implements IU @Autowired ILdApproveService ldApproveService; + @Autowired + IDepartmentService departmentService; + @Override public UserInfoVO getUserInfo() throws Exception { // Map headers = new HashMap() {{ @@ -81,8 +91,82 @@ public class UserServiceImpl extends ServiceImpl implements IU return data; } + + + /** + * 模拟数据 - 直接使用JSON字符串 + */ + private static final String MOCK_APPROVAL_DATA = "{\n" + + " \"success\": true,\n" + + " \"message\": \"获取审批列表成功\",\n" + + " \"code\": 200,\n" + + " \"result\": {\n" + + " \"1\": [\n" + + " {\n" + + " \"userId\": \"LiuXu\",\n" + + " \"name\": \"刘旭\",\n" + + " \"department\": \"青岛空管站/实业公司/IT事业部/产品研发室\",\n" + + " \"mainDepartment\": \"82\",\n" + + " \"mainErDepartment\": \"20\",\n" + + " \"leaderInDept\": \",\",\n" + + " \"gender\": \"女\",\n" + + " \"phone\": \"17853572157\",\n" + + " \"mail\": null,\n" + + " \"roleList\": null,\n" + + " \"roleNames\": null,\n" + + " \"checked\": false,\n" + + " \"manageNum\": \"1\",\n" + + " \"deptId\": null,\n" + + " \"deptList\": null,\n" + + " \"postName\": null,\n" + + " \"virPostName\": null,\n" + + " \"apprStatus\": null,\n" + + " \"isCanAbnormal\": false,\n" + + " \"userSort\": 1000,\n" + + " \"isDel\": false,\n" + + " \"mainErDepartmentName\": null\n" + + " }\n" + + " ],\n" + + " \"2\": [\n" + + " {\n" + + " \"userId\": \"AnXingHe\",\n" + + " \"name\": \"安星河\",\n" + + " \"department\": \"青岛空管站/实业公司/IT事业部/产品研发室\",\n" + + " \"mainDepartment\": \"82\",\n" + + " \"mainErDepartment\": \"20\",\n" + + " \"leaderInDept\": \",20,\",\n" + + " \"gender\": \"男\",\n" + + " \"phone\": \"13526109603\",\n" + + " \"mail\": null,\n" + + " \"roleList\": null,\n" + + " \"roleNames\": null,\n" + + " \"checked\": false,\n" + + " \"manageNum\": \"1\",\n" + + " \"deptId\": null,\n" + + " \"deptList\": null,\n" + + " \"postName\": null,\n" + + " \"virPostName\": null,\n" + + " \"apprStatus\": null,\n" + + " \"isCanAbnormal\": false,\n" + + " \"userSort\": 1000,\n" + + " \"isDel\": false,\n" + + " \"mainErDepartmentName\": null\n" + + " }\n" + + " ]\n" + + " },\n" + + " \"timestamp\": 1767767650684\n" + + "}"; + @Override public boolean getApprover(String mainErDepartment, String type,Long formId) { + // 参数校验 + if (!StringUtils.hasText(type)) { + throw new IllegalArgumentException("审批类型不能为空"); + } + if (formId == null || formId <= 0) { + throw new IllegalArgumentException("表单ID必须大于0"); + } + log.info("模拟获取审批人,参数: deptId={}, type={}, formId={}", mainErDepartment, type, formId); // Map headers = new HashMap() {{ // put("Content-Type", "application/json"); // }}; @@ -95,8 +179,8 @@ public class UserServiceImpl extends ServiceImpl implements IU // try { // resp = EntityUtils.toString( // HttpUtils.doGet( -// "http://192.168.198.1:8105", -// "/dsTasking/processAuthorized", +// "http://10.90.100.231:8132", +// "/ld-person-form/getApprove", // "GET", // headers, // querys @@ -105,64 +189,109 @@ public class UserServiceImpl extends ServiceImpl implements IU // } catch (Exception e) { // e.printStackTrace(); // } -// -// JSONObject obj = JSON.parseObject(resp); -// -// if (!"200".equals(obj.getString("code"))) { -// throw new RuntimeException("失败: " + obj.getString("message")); -// } -// -// ApproverUser approverUser = JSON.toJavaObject(obj.getJSONObject("data"), ApproverUser.class); + + try { + // 1.解析模拟数据 + JSONObject obj = JSON.parseObject(MOCK_APPROVAL_DATA); + + if (!"200".equals(obj.getString("code")) || !obj.getBooleanValue("success")) { + String message = obj.getString("message"); + throw new RuntimeException("获取审批人失败: " + message); + } + + // 2.获取审批结果数据 + JSONObject result = obj.getJSONObject("result"); + if (result == null || result.isEmpty()) { + throw new RuntimeException("未找到审批人数据"); + } + + // 3.保存审批人信息到数据库 + List approversToSave = new ArrayList<>(); + + // 遍历所有审批层级(1, 2, 3...) + for (String level : result.keySet()) { + // 获取该层级的所有用户 + List users = result.getJSONArray(level).toJavaList(User.class); + if (CollectionUtils.isEmpty(users)) { + log.warn("层级 {} 没有审批人", level); + continue; + } + + for (int i = 0; i < users.size(); i++) { + User user = users.get(i); + LdApprove ldApprove = createLdApprove(user, level, formId, type); + approversToSave.add(ldApprove); + } + } + + // 5. 批量保存审批人 + boolean saveSuccess = false; + if (!CollectionUtils.isEmpty(approversToSave)) { + saveSuccess = ldApproveService.saveBatch(approversToSave); + } else { + throw new RuntimeException("未找到审批人信息"); + } + + return saveSuccess; + + } catch (Exception e) { + throw new RuntimeException("处理审批人数据失败: " + e.getMessage(), e); + } + + } + + /** + * 创建审批记录实体 + */ + private LdApprove createLdApprove(User user, String level, Long formId, String type) { LdApprove ldApprove = new LdApprove(); ldApprove.setFormId(formId.intValue()); - ldApprove.setUserId("LiuXu"); - ldApprove.setUserName("刘旭"); - ldApprove.setLevel("1"); + ldApprove.setUserId(user.getUserId()); + ldApprove.setUserName(user.getName()); + ldApprove.setLevel(level); ldApprove.setStatus("0"); ldApprove.setOptTime(LocalDateTime.now()); ldApprove.setType(type); - boolean save = ldApproveService.save(ldApprove); - return save; + + return ldApprove; } @Override public User getDeptApprove(String department) { -// Map headers = new HashMap() {{ -// put("Content-Type", "application/json"); -// }}; -// -// Map querys = new HashMap() {{ -// put("deptId",department); -// }}; -// -// String resp = null; -// try { -// resp = EntityUtils.toString( -// HttpUtils.doGet( -// "http://10.90.100.231:8132", -// "/lowDurableTest/ld-approver/getDeptApprove", -// "GET", -// headers, -// querys -// ).getEntity() -// ); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// -// JSONObject obj = JSON.parseObject(resp); -// -// if (!"200".equals(obj.getString("code"))) { -// throw new RuntimeException("失败: " + obj.getString("message")); -// } -// -// UserInfoVO approverUser = JSON.toJavaObject(obj.getJSONObject("data"), UserInfoVO.class); - User user = new User(); - user.setUserId("负责人ID"); - user.setName("负责人名称"); + + String topDepartmentId = getTopDepartmentId(department); + + User user = userMapper.selectByLeaderInDept(topDepartmentId); + + if(null == user){ + throw new RuntimeException(department+":部门负责人获取失败"); + } + return user; } + public String getTopDepartmentId(String departmentId) { + int maxDepth = 20; + int currentDepth = 0; + String currentId = departmentId; + while (currentDepth < maxDepth) { + Department dept = departmentService.getByDepartmentId(currentId); + if (dept == null) { + throw new RuntimeException("部门不存在: " + currentId); + } + String parentId = dept.getParentid(); + //如果是顶级部门 返回当前部门ID + if ("0".equals(parentId) || "1".equals(parentId)) { + return dept.getId(); + } + //否则继续查询父部门 + currentId = parentId; + currentDepth++; + } + + throw new RuntimeException("部门负责人获取失败,查询深度超过限制: " + departmentId); + } + @Override public List getUserByDeptId(String departmentId) { return userMapper.selectByDepartmentId(departmentId); diff --git a/src/main/resources/mapper/DepartmentMapper.xml b/src/main/resources/mapper/DepartmentMapper.xml index e763609..a6a9d3c 100644 --- a/src/main/resources/mapper/DepartmentMapper.xml +++ b/src/main/resources/mapper/DepartmentMapper.xml @@ -15,6 +15,9 @@ WHERE parentid = 1 AND id NOT IN (12, 20, 50, 51, 52, 60); + diff --git a/src/main/resources/mapper/LdConsumerFormMapper.xml b/src/main/resources/mapper/LdConsumerFormMapper.xml index 165e804..445db98 100644 --- a/src/main/resources/mapper/LdConsumerFormMapper.xml +++ b/src/main/resources/mapper/LdConsumerFormMapper.xml @@ -31,10 +31,20 @@ and department_id = #{departmentId} + + and num > #{num} + AND material_name LIKE CONCAT('%', #{materialName}, '%') + + diff --git a/src/main/resources/mapper/LdDurableFormMapper.xml b/src/main/resources/mapper/LdDurableFormMapper.xml index c9ae609..34ed55a 100644 --- a/src/main/resources/mapper/LdDurableFormMapper.xml +++ b/src/main/resources/mapper/LdDurableFormMapper.xml @@ -27,6 +27,9 @@ and department_id = #{departmentId} + + and num > #{num} + AND material_name LIKE CONCAT('%', #{materialName}, '%') @@ -34,6 +37,12 @@ + diff --git a/src/main/resources/mapper/LdMaterialMapper.xml b/src/main/resources/mapper/LdMaterialMapper.xml index 1c928a3..8dc19dd 100644 --- a/src/main/resources/mapper/LdMaterialMapper.xml +++ b/src/main/resources/mapper/LdMaterialMapper.xml @@ -19,6 +19,7 @@ and material_name = #{materialName} + order by id desc diff --git a/src/main/resources/mapper/LdOnePutStorageDetailMapper.xml b/src/main/resources/mapper/LdOnePutStorageDetailMapper.xml index 7f8c770..19e5728 100644 --- a/src/main/resources/mapper/LdOnePutStorageDetailMapper.xml +++ b/src/main/resources/mapper/LdOnePutStorageDetailMapper.xml @@ -69,7 +69,7 @@ WHERE inbound_detail_code LIKE CONCAT(#{prefix}, #{date}, '%') - SELECT ld_purchase_end_id, material_id, diff --git a/src/main/resources/mapper/LdTwoOutStorageDetailMapper.xml b/src/main/resources/mapper/LdTwoOutStorageDetailMapper.xml index 7c31ded..ab8a7e7 100644 --- a/src/main/resources/mapper/LdTwoOutStorageDetailMapper.xml +++ b/src/main/resources/mapper/LdTwoOutStorageDetailMapper.xml @@ -5,6 +5,7 @@ + diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml index 640da47..242893a 100644 --- a/src/main/resources/mapper/UserMapper.xml +++ b/src/main/resources/mapper/UserMapper.xml @@ -38,6 +38,9 @@ +