Browse Source

库存盘点改报表
固定资产查询接口
车辆信息查询接口
物料信息查询接口
固定资产回写监听

shenji 2 years ago
parent
commit
94dc71295d
16 changed files with 363 additions and 44 deletions
  1. 64 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/activiti/listener/ListenerAssets.java
  2. 36 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/controller/ActivitiController.java
  3. 8 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/controller/AssetsController.java
  4. 19 28
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/controller/CarController.java
  5. 17 6
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/controller/InventoryRecordsController.java
  6. 2 2
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/entity/InventoryRecords.java
  7. 13 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/mapper/ActivitiMapper.java
  8. 4 3
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/mapper/AssetsMapper.java
  9. 24 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/mapper/xml/ActivitiMapper.xml
  10. 19 1
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/mapper/xml/AssetsMapper.xml
  11. 17 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/service/IActivitiService.java
  12. 4 1
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/service/IAssetsService.java
  13. 8 1
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/service/IInventoryRecordsService.java
  14. 42 0
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/service/impl/ActivitiServiceImpl.java
  15. 10 1
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/service/impl/AssetsServiceImpl.java
  16. 76 1
      jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/service/impl/InventoryRecordsServiceImpl.java

+ 64 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/activiti/listener/ListenerAssets.java

@@ -0,0 +1,64 @@
+package org.jeecg.modules.activiti.listener;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import org.activiti.engine.delegate.*;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.oa.service.IActivitiService;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+//流程监听,固资在转移、报废等操作时回写状态
+@Component
+public class ListenerAssets implements TaskListener, ExecutionListener {
+
+    private Expression json;
+
+    @Resource
+    private IActivitiService activitiService;
+
+    /**
+     * 执行监听
+     *
+     * @param delegateExecution
+     * @throws Exception
+     */
+    @Override
+    public void notify(DelegateExecution delegateExecution) throws Exception {
+        String jsonString = json.getExpressionText();
+        JSONObject jsonObject = JSON.parseObject(jsonString);
+        String state = oConvertUtils.getString(jsonObject.get("state"));
+
+        String eventName = delegateExecution.getEventName();
+        if ("start".equals(eventName)) {
+            // 流程开始
+        } else if ("end".equals(eventName)) {
+            // 流程结束
+            String processInstanceId = delegateExecution.getProcessInstanceId();
+            String processBusinessKey = delegateExecution.getProcessBusinessKey();
+            Map<String, Object> variables = delegateExecution.getVariables();
+            String asset_encoding = String.valueOf(variables.get("asset_encoding"));
+            this.activitiService.updateAssets(asset_encoding,state);
+
+        } else if ("take".equals(eventName)) {
+            // 连线监听器
+        }
+    }
+
+    /**
+     * 任务监听
+     *
+     * @param delegateTask
+     */
+    @Override
+    public void notify(DelegateTask delegateTask) {
+        String eventName = delegateTask.getEventName();
+        if ("create".endsWith(eventName)) {
+        } else if ("assignment".endsWith(eventName)) {
+        } else if ("complete".endsWith(eventName)) {
+        } else if ("delete".endsWith(eventName)) {
+        }
+    }
+}

+ 36 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/controller/ActivitiController.java

@@ -0,0 +1,36 @@
+package org.jeecg.modules.oa.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.modules.oa.service.IActivitiService;
+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;
+import java.util.Map;
+
+/**
+ * 流程相关 表单设计实体类操作
+ */
+@Api(tags="流程相关表单")
+@RestController
+@RequestMapping("/oa/activiti")
+@Slf4j
+public class ActivitiController {
+   @Autowired
+   private IActivitiService activitiService;
+
+    @AutoLog(value = "根据表名,查询已审批通过的数据,供其他流程新增时下拉选择")
+    @ApiOperation(value="根据表名,查询已审批通过的数据,供其他流程新增时下拉选择", notes="根据表名,查询已审批通过的数据,供其他流程新增时下拉选择")
+    @GetMapping(value = "/getSelectionList")
+    public Result<?> getSelectionList(@RequestParam(name="tableName",required=true) String tableName,@RequestParam(name="state",required=false) String state) {
+        List<Map<String,Object>> objList = activitiService.getSelectionList(tableName,state);
+        return Result.ok(objList);
+    }
+}

+ 8 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/controller/AssetsController.java

@@ -158,4 +158,12 @@ public class AssetsController extends JeecgController<Assets, IAssetsService> {
 		 List<Assets> assets = assetsService.list();
 		 return Result.ok(assets);
 	 }
+
+	 @AutoLog(value = "新增资产-通过状态筛选")
+	 @ApiOperation(value="新增资产-通过状态筛选", notes="新增资产-通过状态筛选")
+	 @GetMapping(value = "/getByState")
+	 public Result<?> getByState(@RequestParam(name="state",required=false) String state) {
+		 List<Assets> assets = assetsService.getByState(state);
+		 return Result.ok(assets);
+	 }
 }

+ 19 - 28
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/controller/CarController.java

@@ -1,40 +1,25 @@
 package org.jeecg.modules.oa.controller;
 
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.modules.oa.entity.Car;
-import org.jeecg.modules.oa.service.ICarService;
-
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.oa.entity.Car;
+import org.jeecg.modules.oa.service.ICarService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
-import com.alibaba.fastjson.JSON;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+import java.util.List;
 
  /**
  * @Description: 车辆信息
@@ -167,5 +152,11 @@ public class CarController extends JeecgController<Car, ICarService> {
     public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
         return super.importExcel(request, response, Car.class);
     }
-
+	 @AutoLog(value = "车辆下拉")
+	 @ApiOperation(value="车辆下拉", notes="车辆下拉")
+	 @GetMapping(value = "/getSelectionList")
+	 public Result<?> getSelectionList() {
+		 List<Car> objList = this.carService.list();
+		 return Result.ok(objList);
+	 }
 }

+ 17 - 6
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/controller/InventoryRecordsController.java

@@ -1,17 +1,20 @@
 package org.jeecg.modules.oa.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
-import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.modules.oa.entity.InventoryRecords;
 import org.jeecg.modules.oa.service.IInventoryRecordsService;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
@@ -19,8 +22,9 @@ import org.springframework.web.servlet.ModelAndView;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
+import java.util.List;
 
- /**
+/**
  * @Description: 盘点表
  * @Author: jeecg-boot
  * @Date:   2022-10-17
@@ -50,9 +54,8 @@ public class InventoryRecordsController extends JeecgController<InventoryRecords
 								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 								   HttpServletRequest req) {
-		QueryWrapper<InventoryRecords> queryWrapper = QueryGenerator.initQueryWrapper(inventoryRecords, req.getParameterMap());
 		Page<InventoryRecords> page = new Page<InventoryRecords>(pageNo, pageSize);
-		IPage<InventoryRecords> pageList = inventoryRecordsService.page(page, queryWrapper);
+		IPage<InventoryRecords> pageList = inventoryRecordsService.queryPageList(req.getParameterMap(), pageNo, pageSize);
 		return Result.ok(pageList);
 	}
 	
@@ -137,7 +140,15 @@ public class InventoryRecordsController extends JeecgController<InventoryRecords
     */
     @RequestMapping(value = "/exportXls")
     public ModelAndView exportXls(HttpServletRequest request, InventoryRecords inventoryRecords) {
-        return super.exportXls(request, inventoryRecords, InventoryRecords.class, "盘点表");
+		LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+		List<InventoryRecords> exportList = inventoryRecordsService.list(request.getParameterMap());;
+
+		ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		mv.addObject(NormalExcelConstants.FILE_NAME, "盘点表"); //此处设置的filename无效 ,前端会重更新设置一下
+		mv.addObject(NormalExcelConstants.CLASS, InventoryRecords.class);
+		mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("盘点表" + "报表", "导出人:" + sysUser.getRealname(), "盘点表"));
+		mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
+		return mv;
     }
 
     /**

+ 2 - 2
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/entity/InventoryRecords.java

@@ -52,7 +52,7 @@ public class InventoryRecords implements Serializable {
     @ApiModelProperty(value = "所属部门")
     private java.lang.String sysOrgCode;
 	/**盘点日期*/
-	@Excel(name = "盘点日期", width = 15)
+//	@Excel(name = "盘点日期", width = 15)
     @ApiModelProperty(value = "盘点日期")
     private java.lang.String checkDate;
 	/**资产编码*/
@@ -84,7 +84,7 @@ public class InventoryRecords implements Serializable {
     @ApiModelProperty(value = "使用年限")
     private java.lang.String durableYears;
 	/**存放地点*/
-	@Excel(name = "存放地点", width = 15)
+//	@Excel(name = "存放地点", width = 15)
     @ApiModelProperty(value = "存放地点")
     private java.lang.String storageLocation;
 	/**使用人*/

+ 13 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/mapper/ActivitiMapper.java

@@ -0,0 +1,13 @@
+package org.jeecg.modules.oa.mapper;
+
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface ActivitiMapper {
+
+    List<Map<String, Object>> getSelectionList(@Param("tableName") String tableName,@Param(value="state")String state);
+
+    void updateAssets(@Param("assetEncoding") String assetEncoding, @Param(value="state") String state);
+}

+ 4 - 3
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/mapper/AssetsMapper.java

@@ -1,10 +1,10 @@
 package org.jeecg.modules.oa.mapper;
 
-import java.util.List;
-
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.oa.entity.Assets;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
 
 /**
  * @Description: 新增资产
@@ -14,4 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface AssetsMapper extends BaseMapper<Assets> {
 
+    List<Assets> selectByState(@Param(value="state")String state);
 }

+ 24 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/mapper/xml/ActivitiMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.jeecg.modules.oa.mapper.ActivitiMapper">
+    <select id="getSelectionList" resultType="java.util.Map" parameterType="java.lang.String">
+        SELECT
+        t.*
+        FROM
+        ${tableName} t
+        left join act_z_business b on b.table_id = t.id
+        WHERE
+        b.table_name = #{tableName}
+        and
+        b.result = 2
+        <if test="state!=null and state!=''">
+            AND t.state=#{state}
+        </if>
+        ORDER BY
+        t.create_time DESC
+    </select>
+
+    <update id="updateAssets" parameterType="java.lang.String">
+        update add_assets set asset_state=#{state} where asset_number = #{assetEncoding}
+    </update>
+</mapper>

+ 19 - 1
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/mapper/xml/AssetsMapper.xml

@@ -1,5 +1,23 @@
 <?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="org.jeecg.modules.oa.mapper.AssetsMapper">
-
+    <select id="selectByState" resultType="org.jeecg.modules.oa.entity.Assets" parameterType="java.lang.String">
+        SELECT
+        a.*
+        FROM
+        add_assets a
+        left join act_z_business b on b.table_id = a.id
+        WHERE
+        b.table_name = 'add_assets'
+        and
+        b.result = 2
+        <if test="state!=null and state!=''">
+            AND a.asset_state in
+            <foreach item="item" index="index" collection="state.split(',')" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        ORDER BY
+        a.create_time DESC
+    </select>
 </mapper>

+ 17 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/service/IActivitiService.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.oa.service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 新增资产
+ * @Author: jeecg-boot
+ * @Date:   2022-10-21
+ * @Version: V1.0
+ */
+public interface IActivitiService {
+
+    List<Map<String,Object>> getSelectionList(String tableName, String state);
+
+    void updateAssets(String asset_encoding, String expressionText);
+}

+ 4 - 1
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/service/IAssetsService.java

@@ -1,7 +1,9 @@
 package org.jeecg.modules.oa.service;
 
-import org.jeecg.modules.oa.entity.Assets;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.oa.entity.Assets;
+
+import java.util.List;
 
 /**
  * @Description: 新增资产
@@ -11,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IAssetsService extends IService<Assets> {
 
+    List<Assets> getByState(String state);
 }

+ 8 - 1
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/service/IInventoryRecordsService.java

@@ -1,7 +1,11 @@
 package org.jeecg.modules.oa.service;
 
-import org.jeecg.modules.oa.entity.InventoryRecords;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.oa.entity.InventoryRecords;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 盘点表
@@ -11,4 +15,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IInventoryRecordsService extends IService<InventoryRecords> {
 
+    IPage<InventoryRecords> queryPageList(Map<String, String[]> parameterMap, Integer pageNo, Integer pageSize);
+
+    List<InventoryRecords> list(Map<String, String[]> parameterMap);
 }

+ 42 - 0
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/service/impl/ActivitiServiceImpl.java

@@ -0,0 +1,42 @@
+package org.jeecg.modules.oa.service.impl;
+
+import org.jeecg.modules.oa.mapper.ActivitiMapper;
+import org.jeecg.modules.oa.service.IActivitiService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 新增资产
+ * @Author: jeecg-boot
+ * @Date:   2022-10-21
+ * @Version: V1.0
+ */
+@Service
+public class ActivitiServiceImpl implements IActivitiService {
+    @Resource
+    private ActivitiMapper activitiMapper;
+
+    /**
+     * 根据表名查询已审核的数据
+     * @param tableName
+     * @param state
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getSelectionList(String tableName, String state) {
+        return this.activitiMapper.getSelectionList(tableName, state);
+    }
+
+    /**
+     * 更新固资状态
+     * @param assetEncoding
+     * @param state
+     */
+    @Override
+    public void updateAssets(String assetEncoding, String state) {
+        this.activitiMapper.updateAssets(assetEncoding,state);
+    }
+}

+ 10 - 1
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/service/impl/AssetsServiceImpl.java

@@ -1,11 +1,13 @@
 package org.jeecg.modules.oa.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.modules.oa.entity.Assets;
 import org.jeecg.modules.oa.mapper.AssetsMapper;
 import org.jeecg.modules.oa.service.IAssetsService;
 import org.springframework.stereotype.Service;
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * @Description: 新增资产
@@ -15,5 +17,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  */
 @Service
 public class AssetsServiceImpl extends ServiceImpl<AssetsMapper, Assets> implements IAssetsService {
+    @Resource
+    private AssetsMapper assetsMapper;
 
+    @Override
+    public List<Assets> getByState(String state) {
+        List<Assets> assets = this.assetsMapper.selectByState(state);
+        return assets;
+    }
 }

+ 76 - 1
jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/oa/service/impl/InventoryRecordsServiceImpl.java

@@ -1,11 +1,24 @@
 package org.jeecg.modules.oa.service.impl;
 
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang.StringUtils;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.oa.entity.Assets;
 import org.jeecg.modules.oa.entity.InventoryRecords;
 import org.jeecg.modules.oa.mapper.InventoryRecordsMapper;
+import org.jeecg.modules.oa.service.IAssetsService;
 import org.jeecg.modules.oa.service.IInventoryRecordsService;
 import org.springframework.stereotype.Service;
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 盘点表
@@ -16,4 +29,66 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class InventoryRecordsServiceImpl extends ServiceImpl<InventoryRecordsMapper, InventoryRecords> implements IInventoryRecordsService {
 
+    @Resource
+    private IAssetsService assetsService;
+
+    @Override
+    public IPage<InventoryRecords> queryPageList(Map<String, String[]> parameterMap, Integer pageNo, Integer pageSize) {
+        Page<Assets> page = new Page<Assets>(pageNo, pageSize);
+        QueryWrapper<Assets> queryWrapper = getAssetsQueryWrapper(parameterMap);
+
+        IPage<Assets> assetsIPage = assetsService.page(page, queryWrapper);
+        List<Assets> assetsList = assetsIPage.getRecords();
+
+        List<InventoryRecords> inventoryRecordsList = convertAssetsToRecords(assetsList);
+        Page<InventoryRecords> inventoryRecordsPage = new Page<InventoryRecords>(pageNo, pageSize);
+        inventoryRecordsPage.setRecords(inventoryRecordsList);
+        return inventoryRecordsPage;
+    }
+
+    private List<InventoryRecords> convertAssetsToRecords(List<Assets> assetsList) {
+        List<InventoryRecords> inventoryRecordsList = new ArrayList<>();
+        assetsList.forEach(assets -> {
+            InventoryRecords inventory = new InventoryRecords();
+            inventory.setAssetEncoding(assets.getAssetNumber());
+            inventory.setAssetName(assets.getAssetName());
+            inventory.setAssetsCategory(assets.getAssetsCategory());
+            inventory.setSpecificationsModels(assets.getSpecificationsModels());
+            inventory.setOriginalValue(assets.getUnitPrice());
+            inventory.setCarAcquisitionDate(assets.getAcquisitionDate());
+            if(StringUtils.isNotBlank(assets.getAcquisitionDate())) {
+                inventory.setDurableYears(String.valueOf(DateUtil.ageOfNow(assets.getAcquisitionDate())));
+            }
+            inventory.setStorageLocation(assets.getUseDepartment());
+            inventory.setUsePersonnel(assets.getPurchasingStaff());
+            inventory.setUseDepartment(assets.getUseDepartment());
+            inventory.setAssetState(assets.getAssetState());
+
+            inventoryRecordsList.add(inventory);
+        });
+        return inventoryRecordsList;
+    }
+
+    private QueryWrapper<Assets> getAssetsQueryWrapper(Map<String, String[]> parameterMap) {
+        QueryWrapper<Assets> queryWrapper = QueryGenerator.initQueryWrapper(new Assets(), parameterMap);
+        List<Assets> passedAssets = assetsService.getByState("");
+        List<String> ids = passedAssets.stream().map(Assets::getId).collect(Collectors.toList());
+        queryWrapper.in("id", ids);
+        if(parameterMap.containsKey("assetsCategory")) {
+            queryWrapper.eq("assets_category", parameterMap.get("assetsCategory")[0]);
+        }
+        if(parameterMap.containsKey("assetState")) {
+            queryWrapper.eq("asset_state", parameterMap.get("assetState")[0]);
+        }
+        return queryWrapper;
+    }
+
+    @Override
+    public List<InventoryRecords> list(Map<String, String[]> parameterMap) {
+        QueryWrapper<Assets> queryWrapper = getAssetsQueryWrapper(parameterMap);
+        List<Assets> assetsList = this.assetsService.list(queryWrapper);
+        return this.convertAssetsToRecords(assetsList);
+    }
+
+
 }