Browse Source

优化资产信息、资产盘点功能;新增资产信息字段

LinWuTai 1 year ago
parent
commit
f705540f96

+ 9 - 1
ruoyi-admin/pom.xml

@@ -105,7 +105,15 @@
                     <failOnMissingWebXml>false</failOnMissingWebXml>
                     <warName>${project.artifactId}</warName>
                 </configuration>   
-           </plugin>   
+           </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>11</source>
+                    <target>11</target>
+                </configuration>
+            </plugin>
         </plugins>
         <finalName>${project.artifactId}</finalName>
     </build>

+ 17 - 17
ruoyi-admin/src/main/java/com/ruoyi/asset/domain/TbAssetInformation.java

@@ -42,6 +42,13 @@ public class TbAssetInformation extends BaseEntity
     @Excel(name = "资产编号")
     private String number;
 
+    /** epc */
+    @Excel(name = "epc")
+    private String epc;
+
+    /** epc补充长度 */
+    private Integer epcReplenishLength;
+
     /** 图片路径 */
 //    @Excel(name = "图片路径")
     private String imageUrl;
@@ -179,25 +186,18 @@ public class TbAssetInformation extends BaseEntity
     @Excel(name = "入账时间", width = 40, dateFormat = "yyyy-MM-dd")
     private Date paymentReceivingTime;
 
-    /** 预留字段e */
-  //  @Excel(name = "预留字段e")
-    private String reservedColumnE;
-
-    /** 预留字段f */
-  //  @Excel(name = "预留字段f")
-    private String reservedColumnF;
+    /** 预计使用期限 */
+    @Excel(name = "预计使用期限")
+    private Integer lifeExpectancy;
 
-    /** 预留字段g */
- //   @Excel(name = "预留字段g")
-    private String reservedColumnG;
+    /** 预计使用期限单位 */
+    @Excel(name = "预计使用期限单位")
+    private String lifeUnits;
 
-    /** 预留字段h */
-   // @Excel(name = "预留字段h")
-    private String reservedColumnH;
-
-    /** 预留字段i */
-   // @Excel(name = "预留字段i")
-    private String reservedColumnI;
+    /** 开始使用日期 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "开始使用日期")
+    private Date startDate;
 
     /** 预留字段j */
    // @Excel(name = "预留字段j")

+ 10 - 0
ruoyi-admin/src/main/java/com/ruoyi/asset/mapper/TbAssetInformationMapper.java

@@ -32,6 +32,14 @@ public interface TbAssetInformationMapper
     TbAssetInformation selectTbAssetInformationByAssetNumber(String assetNumber);
 
     /**
+     * 查询资产信息
+     *
+     * @param epc epc
+     * @return 资产信息
+     */
+    TbAssetInformation selectTbAssetInformationByEpc(String epc);
+
+    /**
      * 查询资产信息列表
      * 
      * @param tbAssetInformation 资产信息
@@ -81,4 +89,6 @@ public interface TbAssetInformationMapper
     public boolean updateProperty(TbAssetInformation information);
 
     List<String> selectNumberByLocations(@Param("locations") List<String> locations);
+
+    List<TbAssetInformation> selectAssetInformationByLocations(@Param("locations") List<String> locations);
 }

+ 2 - 0
ruoyi-admin/src/main/java/com/ruoyi/asset/service/ITbAssetInformationService.java

@@ -38,6 +38,8 @@ public interface ITbAssetInformationService
      */
     List<TbAssetInformation> selectTbAssetInformationList(TbAssetInformation tbAssetInformation);
 
+    List<TbAssetInformation> selectTbAssetInformationList2(TbAssetInformation tbAssetInformation);
+
     List<TbAssetInformation> selectInfoList(TbAssetInformation tbAssetInformation);
 
     /**

+ 35 - 8
ruoyi-admin/src/main/java/com/ruoyi/asset/service/impl/TbAssetInformationServiceImpl.java

@@ -6,6 +6,8 @@ import java.util.List;
 import java.util.Set;
 
 import cn.hutool.core.collection.ListUtil;
+import cn.hutool.core.util.CharsetUtil;
+import cn.hutool.core.util.HexUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.ruoyi.asset.domain.TbLocation;
@@ -92,6 +94,14 @@ public class TbAssetInformationServiceImpl implements ITbAssetInformationService
     }
 
     @Override
+    public List<TbAssetInformation> selectTbAssetInformationList2(TbAssetInformation tbAssetInformation) {
+        String locationNumber = tbAssetInformation.getLocationNumber();
+        List<String> childrens = new RecursionUtil().getNumberWithChildren(locationMapper, locationNumber);
+        tbAssetInformation.setNlist(childrens);
+        return tbAssetInformationMapper.selectTbAssetInformationList(tbAssetInformation);
+    }
+
+    @Override
     public List<TbAssetInformation> selectInfoList(TbAssetInformation tbAssetInformation){
         String locationNumber = tbAssetInformation.getLocationNumber();
         List<String> childrens = new RecursionUtil().getNumberWithChildren(locationMapper, locationNumber);
@@ -111,10 +121,9 @@ public class TbAssetInformationServiceImpl implements ITbAssetInformationService
     {
         tbAssetInformation.setCreateTime(DateUtils.getNowDate());
         tbAssetInformation.setCreateBy(SecurityUtils.getUsername());
-        String number = tbAssetInformation.getNumber();
-        String hNumber = checkHNumber(number);
-        tbAssetInformation.setNumber(hNumber);
-        tbAssetInformation.setCode(hNumber);
+
+        setEpc(tbAssetInformation);
+
         return tbAssetInformationMapper.insertTbAssetInformation(tbAssetInformation);
     }
 
@@ -127,14 +136,32 @@ public class TbAssetInformationServiceImpl implements ITbAssetInformationService
     @Override
     public int updateTbAssetInformation(TbAssetInformation tbAssetInformation)
     {
-        String number = tbAssetInformation.getNumber();
-        String hNumber = checkHNumber(number);
-        tbAssetInformation.setNumber(hNumber);
-        tbAssetInformation.setCode(hNumber);
+        setEpc(tbAssetInformation);
+
         tbAssetInformation.setUpdateTime(DateUtils.getNowDate());
         return tbAssetInformationMapper.updateTbAssetInformation(tbAssetInformation);
     }
 
+    private void setEpc(TbAssetInformation tbAssetInformation) {
+        String number = tbAssetInformation.getNumber();
+        tbAssetInformation.setCode(number);
+
+        // 将编码转为16进制
+        String epc = HexUtil.encodeHexStr(number, CharsetUtil.CHARSET_UTF_8);
+        // epc补充位
+        int epcReplenishLength = epc.length() % 4;
+        int remainder = epcReplenishLength % 4;
+        if (remainder != 0) {
+            int padding = 4 - remainder;
+            epc = epc + "0".repeat(padding);
+        }
+        // 将epc大写
+        epc = epc.toUpperCase();
+
+        tbAssetInformation.setEpc(epc);
+        tbAssetInformation.setEpcReplenishLength(epcReplenishLength);
+    }
+
     /**
      * 判断是否为16进制,并将传入编号所有英文大写
      *

+ 3 - 0
ruoyi-admin/src/main/java/com/ruoyi/inventory/mapper/TbAssetInventoryMapper.java

@@ -3,6 +3,7 @@ package com.ruoyi.inventory.mapper;
 import java.util.List;
 import com.ruoyi.inventory.domain.TbAssetInventory;
 import com.ruoyi.inventory.domain.dto.TbAssetInventoryDTO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 资产盘点记录Mapper接口
@@ -22,6 +23,8 @@ public interface TbAssetInventoryMapper
 
     public TbAssetInventory selectTbAssetInventoryByNumber(String orderNumber);
 
+    public List<String> selectOrderNumberByIds(@Param("ids") List<Long> ids);
+
     /**
      * 查询资产盘点记录列表
      * 

+ 9 - 0
ruoyi-admin/src/main/java/com/ruoyi/inventory/mapper/TbInventoryDetailMapper.java

@@ -2,6 +2,7 @@ package com.ruoyi.inventory.mapper;
 
 import java.util.List;
 import com.ruoyi.inventory.domain.TbInventoryDetail;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 资产盘点明细Mapper接口
@@ -52,6 +53,14 @@ public interface TbInventoryDetailMapper
     public int deleteTbInventoryDetailById(Long id);
 
     /**
+     * 删除资产盘点明细
+     *
+     * @param orderNumbers 资产编码
+     * @return 结果
+     */
+    public int deleteTbInventoryDetailByOrderNumbers(@Param("orderNumbers") List<String> orderNumbers);
+
+    /**
      * 批量删除资产盘点明细
      * 
      * @param ids 需要删除的数据主键集合

+ 15 - 4
ruoyi-admin/src/main/java/com/ruoyi/inventory/service/impl/TbAssetInventoryServiceImpl.java

@@ -109,7 +109,10 @@ public class TbAssetInventoryServiceImpl implements ITbAssetInventoryService
             //根据位置获取包含自身及子位置,递归
             List<String> locations = new RecursionUtil().getNumberWithChildren(locationMapper, location);
             //获取所在位置内的资产
-            List<String> rfidList = informationMapper.selectNumberByLocations(locations);
+            // List<String> rfidList = informationMapper.selectNumberByLocations(locations);
+            List<TbAssetInformation> informationList = informationMapper.selectAssetInformationByLocations(locations);
+            List<String> rfidList = informationList.stream().map(TbAssetInformation::getEpc).collect(Collectors.toList());
+
             //对比盘点
             List<String> intersection = new ArrayList<>(rfidList);
             intersection.retainAll(epcList);
@@ -162,6 +165,8 @@ public class TbAssetInventoryServiceImpl implements ITbAssetInventoryService
     @Override
     public int deleteTbAssetInventoryByIds(Long[] ids)
     {
+        List<String> orderNumbers = tbAssetInventoryMapper.selectOrderNumberByIds(List.of(ids));
+        tbInventoryDetailMapper.deleteTbInventoryDetailByOrderNumbers(orderNumbers);
         return tbAssetInventoryMapper.deleteTbAssetInventoryByIds(ids);
     }
 
@@ -174,6 +179,12 @@ public class TbAssetInventoryServiceImpl implements ITbAssetInventoryService
     @Override
     public int deleteTbAssetInventoryById(Long id)
     {
+        TbAssetInventory tbAssetInventory = tbAssetInventoryMapper.selectTbAssetInventoryById(id);
+        if (tbAssetInventory == null) {
+            return 0;
+        }
+        String orderNumber = tbAssetInventory.getOrderNumber();
+        tbInventoryDetailMapper.deleteTbInventoryDetailByOrderNumbers(Collections.singletonList(orderNumber));
         return tbAssetInventoryMapper.deleteTbAssetInventoryById(id);
     }
 
@@ -229,7 +240,7 @@ public class TbAssetInventoryServiceImpl implements ITbAssetInventoryService
             return ;
         }
         //该位置下资产rfid list
-        List<String> _list = informations.stream().map(TbAssetInformation::getNumber).collect(Collectors.toList());
+        List<String> _list = informations.stream().map(TbAssetInformation::getEpc).collect(Collectors.toList());
 
         //已盘点,1
         List<String> green = (List<String>) CollectionUtil.intersection(_list, list);
@@ -250,9 +261,9 @@ public class TbAssetInventoryServiceImpl implements ITbAssetInventoryService
     }
 
     private void setInventoryDetail(List<String> list, TbInventoryDetail detail, String orderNumber, Long isUpdate){
-        for (String number : list) {
+        for (String epc : list) {
             detail.setOrderNumber(orderNumber);
-            TbAssetInformation tbAssetInformation = informationMapper.selectTbAssetInformationByAssetNumber(number);
+            TbAssetInformation tbAssetInformation = informationMapper.selectTbAssetInformationByEpc(epc);
             if (tbAssetInformation == null) {
                 continue;
             }

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/visitor/controller/VController.java

@@ -36,7 +36,7 @@ public class VController extends BaseController {
 
     @GetMapping("/asset/list")
     public AjaxResult assetAll() {
-        return success(tbAssetInformationService.selectTbAssetInformationList(new TbAssetInformation()));
+        return success(tbAssetInformationService.selectTbAssetInformationList2(new TbAssetInformation()));
     }
 
     /*

+ 107 - 75
ruoyi-admin/src/main/resources/mapper/asset/TbAssetInformationMapper.xml

@@ -47,16 +47,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="quantity"    column="quantity"    />
         <result property="units"    column="units"    />
         <result property="paymentReceivingTime"    column="payment_receiving_time"    />
-        <result property="reservedColumnE"    column="reserved_column_e"    />
-        <result property="reservedColumnF"    column="reserved_column_f"    />
-        <result property="reservedColumnG"    column="reserved_column_g"    />
-        <result property="reservedColumnH"    column="reserved_column_h"    />
-        <result property="reservedColumnI"    column="reserved_column_i"    />
+        <result property="epc"    column="epc"    />
+        <result property="epcReplenishLength"    column="epc_replenish_length"    />
+        <result property="lifeExpectancy"    column="life_expectancy"    />
+        <result property="lifeUnits"    column="life_units"    />
+        <result property="startDate"    column="start_date"    />
         <result property="reservedColumnJ"    column="reserved_column_j"    />
     </resultMap>
 
     <sql id="selectTbAssetInformationVo">
-        select id, code, name, number, image_url, category_number, specifications_model, abc_category, manage_status, user_department, department, responsible_person, location_number, property, purchase_date, commissioning_date, original_value, durable_years, net_value, residual_value, accumulated_depreciation, last_depreciation_date, depreciation_method, contract_number, factory_number, manufacturer, supplier, purpose, maintenance_date, maintenance_tel, maintenance_user, corporation, record_status, remark, create_by, create_time, update_by, update_time, is_whitelist, quantity, units, payment_receiving_time, reserved_column_e, reserved_column_f, reserved_column_g, reserved_column_h, reserved_column_i, reserved_column_j from tb_asset_information
+        select id, code, name, number, image_url, category_number, specifications_model, abc_category, manage_status, user_department, department, responsible_person, location_number, property, purchase_date, commissioning_date, original_value, durable_years, net_value, residual_value, accumulated_depreciation, last_depreciation_date, depreciation_method, contract_number, factory_number, manufacturer, supplier, purpose, maintenance_date, maintenance_tel, maintenance_user, corporation, record_status, remark, create_by, create_time, update_by, update_time, is_whitelist, quantity, units, payment_receiving_time, epc, epc_replenish_length, life_expectancy, life_units, start_date, reserved_column_j from tb_asset_information
     </sql>
 
     <sql id="selectTbAssetInformation">
@@ -100,6 +100,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             a.quantity,
             a.units,
             a.payment_receiving_time paymentReceivingTime,
+            a.epc,
+            a.epc_replenish_length epcReplenishLength,
+            a.life_expectancy lifeExpectancy,
+            a.life_units lifeUnits,
+            a.start_date startDate,
             b.id locationId,
             b.name locationName,
             b.label locationLabel,
@@ -117,53 +122,67 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
 
     <select id="selectInfoList" parameterType="TbAssetInformation" resultType="TbAssetInformation">
-        SELECT a.id,
-               a.code,
-               a.name,
-               a.number,
-               a.image_url imageUrl,
-               e.name categoryNumber,
-               a.specifications_model specificationsModel,
-               a.abc_category abcCategory,
-               a.manage_status manageStatus,
-               b.dept_name userDepartment,
-               a.department,
-               a.responsible_person responsiblePerson,
-               a.location_number locationNumber,
-               a.property,
-               a.purchase_date purchaseDate,
-               a.commissioning_date commissioningDate,
-               a.original_value originalValue,
-               a.durable_years durableYears,
-               a.net_value netValue,
-               a.residual_value residualValue,
-               a.accumulated_depreciation accumulatedDepreciation,
-               a.last_depreciation_date lastDepreciationDate,
-               a.depreciation_method depreciationMethod,
-               a.contract_number contractNumber,
-               a.factory_number factoryNumber,
-               a.manufacturer,
-               a.supplier,
-               a.purpose,
-               a.maintenance_date maintenanceDate,
-               a.maintenance_tel maintenanceTel,
-               a.maintenance_user maintenanceUser,
-               d.dept_name Corporation,
-               a.record_status recordStatus,
-               a.remark,
-               a.create_by createBy,
-               a.create_time createTime,
-               a.update_by updateBy,
-               a.update_time updateTime,
-               a.is_whitelist isWhitelist,
-               a.quantity,
-               a.units
-        from tb_asset_information a
-        left join tb_asset_category e on a.category_number = e.number
-        left join sys_dept b on a.user_department = b.dept_id
-        left join sys_dept d on a.corporation = d.dept_id
+        SELECT
+            a.id, a.code, a.name, a.number,
+            a.image_url imageUrl,
+            a.category_number categoryNumber,
+            a.specifications_model specificationsModel,
+            a.abc_category abcCategory,
+            a.manage_status manageStatus,
+            a.user_department userDepartment,
+            a.department,
+            a.responsible_person responsiblePerson,
+            a.location_number locationNumber,
+            a.property,
+            a.purchase_date purchaseDate,
+            a.commissioning_date commissioningDate,
+            a.original_value originalValue,
+            a.durable_years durableYears,
+            a.net_value netValue,
+            a.residual_value residualValue,
+            a.accumulated_depreciation accumulatedDepreciation,
+            a.last_depreciation_date lastDepreciationDate,
+            a.depreciation_method depreciationMethod,
+            a.contract_number contractNumber,
+            a.factory_number factoryNumber,
+            a.manufacturer,
+            a.supplier,
+            a.purpose,
+            a.maintenance_tel maintenanceTel,
+            a.maintenance_date maintenanceDate,
+            a.maintenance_user maintenanceUser,
+            a.corporation,
+            a.record_status recordStatus,
+            a.remark,
+            a.create_by createBy,
+            a.create_time createTime,
+            a.update_by updateBy,
+            a.update_time updateTime,
+            a.is_whitelist isWhitelist,
+            a.quantity,
+            a.units,
+            a.payment_receiving_time paymentReceivingTime,
+            a.epc,
+            a.epc_replenish_length epcReplenishLength,
+            a.life_expectancy lifeExpectancy,
+            a.life_units lifeUnits,
+            a.start_date startDate,
+            b.id locationId,
+            b.name locationName,
+            b.label locationLabel,
+            c.id categoryId,
+            c.name categoryName,
+            d.dept_name userDepartmentName,
+            e.dept_name departmentName,
+            f.dept_name corporationName
+        FROM `tb_asset_information` a
+        LEFT JOIN tb_location b ON a.location_number = b.number
+        LEFT JOIN tb_asset_category c ON a.category_number = c.number
+        LEFT JOIN sys_dept d ON a.user_department = d.dept_id
+        LEFT JOIN sys_dept e ON a.department = e.dept_id
+        LEFT JOIN sys_dept f ON a.corporation = f.dept_id
         <where>
-            <if test="locationNumber != null  and locationNumber != ''"> and location_number in
+            <if test="locationNumber != null  and locationNumber != ''"> and a.location_number in
                 <foreach collection="nlist" item="item" open="(" separator="," close=")">
                     #{item}
                 </foreach>
@@ -215,9 +234,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 <!--            <if test="paymentReceivingTime != null"> and payment_receiving_time = #{paymentReceivingTime}</if>-->
 <!--            <if test="reservedColumnE != null  and reservedColumnE != ''"> and reserved_column_e = #{reservedColumnE}</if>-->
 <!--            <if test="reservedColumnF != null  and reservedColumnF != ''"> and reserved_column_f = #{reservedColumnF}</if>-->
-<!--            <if test="reservedColumnG != null  and reservedColumnG != ''"> and reserved_column_g = #{reservedColumnG}</if>-->
-<!--            <if test="reservedColumnH != null  and reservedColumnH != ''"> and reserved_column_h = #{reservedColumnH}</if>-->
-<!--            <if test="reservedColumnI != null  and reservedColumnI != ''"> and reserved_column_i = #{reservedColumnI}</if>-->
+<!--            <if test="lifeExpectancy != null  and lifeExpectancy != ''"> and life_expectancy = #{lifeExpectancy}</if>-->
+<!--            <if test="lifeUnits != null  and lifeUnits != ''"> and life_units = #{lifeUnits}</if>-->
+<!--            <if test="startDate != null"> and start_date = #{startDate}</if>-->
 <!--            <if test="reservedColumnJ != null  and reservedColumnJ != ''"> and reserved_column_j = #{reservedColumnJ}</if>-->
 <!--        </where>-->
 <!--    </select>-->
@@ -264,11 +283,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="quantity != null  and quantity != ''"> and a.quantity = #{quantity}</if>
             <if test="units != null  and units != ''"> and a.units = #{units}</if>
             <if test="paymentReceivingTime != null"> and a.payment_receiving_time = #{paymentReceivingTime}</if>
-            <if test="reservedColumnE != null  and reservedColumnE != ''"> and a.reserved_column_e = #{reservedColumnE}</if>
-            <if test="reservedColumnF != null  and reservedColumnF != ''"> and a.reserved_column_f = #{reservedColumnF}</if>
-            <if test="reservedColumnG != null  and reservedColumnG != ''"> and a.reserved_column_g = #{reservedColumnG}</if>
-            <if test="reservedColumnH != null  and reservedColumnH != ''"> and a.reserved_column_h = #{reservedColumnH}</if>
-            <if test="reservedColumnI != null  and reservedColumnI != ''"> and a.reserved_column_i = #{reservedColumnI}</if>
+            <if test="epc != null  and epc != ''"> and a.epc = #{epc}</if>
+            <if test="epcReplenishLength != null"> and a.epc_replenish_length = #{epcReplenishLength}</if>
+            <if test="lifeExpectancy != null"> and a.life_expectancy = #{lifeExpectancy}</if>
+            <if test="lifeUnits != null  and lifeUnits != ''"> and a.life_units = #{lifeUnits}</if>
+            <if test="startDate != null"> and a.start_date = #{startDate}</if>
             <if test="reservedColumnJ != null  and reservedColumnJ != ''"> and a.reserved_column_j = #{reservedColumnJ}</if>
         </where>
     </select>
@@ -280,6 +299,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{item}
         </foreach>
     </select>
+
+    <select id="selectAssetInformationByLocations" parameterType="String" resultType="TbAssetInformation">
+        <include refid="selectTbAssetInformation"/>
+        where a.location_number in
+        <foreach item="item" collection="locations" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
     
 <!--    <select id="selectTbAssetInformationById" parameterType="Long" resultMap="TbAssetInformationResult">-->
 <!--        <include refid="selectTbAssetInformationVo"/>-->
@@ -317,6 +344,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectTbAssetInformation"></include>
         where a.number = #{assetNumber}
     </select>
+
+    <select id="selectTbAssetInformationByEpc" parameterType="String" resultType="TbAssetInformation">
+        <include refid="selectTbAssetInformation"></include>
+        where a.epc = #{epc}
+    </select>
         
     <insert id="insertTbAssetInformation" parameterType="TbAssetInformation" useGeneratedKeys="true" keyProperty="id">
         insert into tb_asset_information
@@ -362,11 +394,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="quantity != null">quantity,</if>
             <if test="units != null">units,</if>
             <if test="paymentReceivingTime != null">payment_receiving_time,</if>
-            <if test="reservedColumnE != null">reserved_column_e,</if>
-            <if test="reservedColumnF != null">reserved_column_f,</if>
-            <if test="reservedColumnG != null">reserved_column_g,</if>
-            <if test="reservedColumnH != null">reserved_column_h,</if>
-            <if test="reservedColumnI != null">reserved_column_i,</if>
+            <if test="epc != null">epc,</if>
+            <if test="epcReplenishLength != null">epc_replenish_length,</if>
+            <if test="lifeExpectancy != null">life_expectancy,</if>
+            <if test="lifeUnits != null">life_units,</if>
+            <if test="startDate != null">start_date,</if>
             <if test="reservedColumnJ != null">reserved_column_j,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -411,11 +443,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="quantity != null">#{quantity},</if>
             <if test="units != null">#{units},</if>
             <if test="paymentReceivingTime != null">#{paymentReceivingTime},</if>
-            <if test="reservedColumnE != null">#{reservedColumnE},</if>
-            <if test="reservedColumnF != null">#{reservedColumnF},</if>
-            <if test="reservedColumnG != null">#{reservedColumnG},</if>
-            <if test="reservedColumnH != null">#{reservedColumnH},</if>
-            <if test="reservedColumnI != null">#{reservedColumnI},</if>
+            <if test="epc != null">#{epc},</if>
+            <if test="epcReplenishLength != null">#{epcReplenishLength},</if>
+            <if test="lifeExpectancy != null">#{lifeExpectancy},</if>
+            <if test="lifeUnits != null">#{lifeUnits},</if>
+            <if test="startDate != null">#{startDate},</if>
             <if test="reservedColumnJ != null">#{reservedColumnJ},</if>
          </trim>
     </insert>
@@ -464,11 +496,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="quantity != null">quantity = #{quantity},</if>
             <if test="units != null">units = #{units},</if>
             <if test="paymentReceivingTime != null">payment_receiving_time = #{paymentReceivingTime},</if>
-            <if test="reservedColumnE != null">reserved_column_e = #{reservedColumnE},</if>
-            <if test="reservedColumnF != null">reserved_column_f = #{reservedColumnF},</if>
-            <if test="reservedColumnG != null">reserved_column_g = #{reservedColumnG},</if>
-            <if test="reservedColumnH != null">reserved_column_h = #{reservedColumnH},</if>
-            <if test="reservedColumnI != null">reserved_column_i = #{reservedColumnI},</if>
+            <if test="epc != null">epc= #{epc},</if>
+            <if test="epcReplenishLength != null">epc_replenish_length = #{epcReplenishLength},</if>
+            <if test="lifeExpectancy != null">life_expectancy = #{lifeExpectancy},</if>
+            <if test="lifeUnits != null">life_units = #{lifeUnits},</if>
+            <if test="startDate != null">start_date = #{startDate},</if>
             <if test="reservedColumnJ != null">reserved_column_j = #{reservedColumnJ},</if>
         </trim>
         where id = #{id}

+ 8 - 0
ruoyi-admin/src/main/resources/mapper/inventory/TbAssetInventoryMapper.xml

@@ -44,6 +44,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where id = #{id}
     </select>
 
+    <select id="selectOrderNumberByIds" parameterType="Long" resultType="String">
+        select DISTINCT order_number from tb_asset_inventory
+        where id in
+        <foreach item="id" collection="ids" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
+
     <select id="selectTbAssetInventoryByNumber" parameterType="String" resultMap="TbAssetInventoryResult">
         <include refid="selectTbAssetInventoryVo"/>
         where order_number = #{orderNumber}

+ 7 - 0
ruoyi-admin/src/main/resources/mapper/inventory/TbInventoryDetailMapper.xml

@@ -62,6 +62,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         delete from tb_inventory_detail where id = #{id}
     </delete>
 
+    <delete id="deleteTbInventoryDetailByOrderNumbers" parameterType="String">
+        delete from tb_inventory_detail where order_number in
+        <foreach item="orderNumber" collection="orderNumbers" open="(" separator="," close=")">
+            #{orderNumber}
+        </foreach>
+    </delete>
+
     <delete id="deleteTbInventoryDetailByIds" parameterType="String">
         delete from tb_inventory_detail where id in 
         <foreach item="id" collection="array" open="(" separator="," close=")">

+ 295 - 177
ruoyi-ui/src/views/asset/information/index.vue

@@ -20,7 +20,7 @@
           <treeselect v-model="queryParams.userDepartment" :options="deptOptions" :normalizer="normalizer" placeholder="选择使用部门" />
         </div>
       </el-form-item>
-      <el-form-item label="管理部门" prop="department">
+      <el-form-item v-if="isExist('管理部门')"  label="管理部门" prop="department">
         <div style="display: inline-block; width: 183px">
           <treeselect v-model="queryParams.department" :options="deptOptions" :normalizer="normalizer" placeholder="选择管理部门" />
         </div>
@@ -28,12 +28,12 @@
       <el-form-item label="所在位置" prop="locationNumber">
         <treeselect v-model="queryParams.locationNumber" :options="locationList" :normalizer="tenantIdnormalizer" placeholder="选择位置" />
       </el-form-item>
-      <el-form-item label="所属公司" prop="corporation">
+      <el-form-item v-if="isExist('所属公司')"  label="所属公司" prop="corporation">
         <div style="display: inline-block; width: 183px">
           <treeselect v-model="queryParams.corporation" :options="deptOptions" :normalizer="normalizer" placeholder="选择所属公司" />
         </div>
       </el-form-item>
-      <el-form-item label="入账时间" prop="paymentReceivingTime">
+      <el-form-item v-if="isExist('入账时间')" label="入账时间" prop="paymentReceivingTime">
         <el-date-picker clearable v-model="queryParams.paymentReceivingTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择入账时间"> </el-date-picker>
       </el-form-item>
       <el-form-item v-if="isExist('管理状态')" label="管理状态" prop="manageStatus">
@@ -129,47 +129,47 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item> -->
-      <!-- <el-form-item label="预留字段e" prop="reservedColumnE">
+      <el-form-item label="EPC" prop="epc" v-if="isExist('epc')">
         <el-input
-          v-model="queryParams.reservedColumnE"
-          placeholder="请输入预留字段e"
+          v-model="queryParams.epc"
+          placeholder="请输入epc"
           clearable
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="预留字段f" prop="reservedColumnF">
+      <!-- <el-form-item label="epc补充长度" prop="epcReplenishLength">
         <el-input
-          v-model="queryParams.reservedColumnF"
-          placeholder="请输入预留字段f"
+          v-model="queryParams.epcReplenishLength"
+          placeholder="请输入epc补充长度"
           clearable
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
-      <el-form-item label="预留字段g" prop="reservedColumnG">
+      </el-form-item> -->
+      <el-form-item label="开始使用日期" prop="startDate">
         <el-input
-          v-model="queryParams.reservedColumnG"
-          placeholder="请输入预留字段g"
+          v-model="queryParams.startDate"
+          placeholder="请输入开始使用日期"
           clearable
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="预留字段h" prop="reservedColumnH">
+      <!-- <el-form-item label="预计使用期限" prop="lifeExpectancy">
         <el-input
-          v-model="queryParams.reservedColumnH"
-          placeholder="请输入预留字段h"
+          v-model="queryParams.lifeExpectancy"
+          placeholder="请输入预计使用期限"
           clearable
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="预留字段i" prop="reservedColumnI">
+      <el-form-item label="预计使用期限单位" prop="lifeUnits">
         <el-input
-          v-model="queryParams.reservedColumnI"
-          placeholder="请输入预留字段i"
+          v-model="queryParams.lifeUnits"
+          placeholder="请输入预计使用期限单位"
           clearable
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item>
-      <el-form-item label="预留字段j" prop="reservedColumnJ">
+      </el-form-item> -->
+      <!-- <el-form-item label="预留字段j" prop="reservedColumnJ">
         <el-input
           v-model="queryParams.reservedColumnJ"
           placeholder="请输入预留字段j"
@@ -214,6 +214,11 @@
       <!-- <el-table-column label="编号" align="center" prop="id" /> -->
       <el-table-column label="资产编号" align="center" prop="number" />
       <el-table-column label="资产名称" align="center" prop="name" />
+      <el-table-column label="EPC" align="center" prop="epc" v-if="isExist('epc')" width="180">
+        <template slot-scope="scope">
+          <div>{{scope.row.epc}}<br/>&lceil;补位:{{scope.row.epcReplenishLength}}&rfloor;</div>
+        </template>
+      </el-table-column>
       <el-table-column label="资产条码" v-if="isExist('资产条码')" align="center" prop="code" />
       <el-table-column label="照片" align="center" prop="imageUrl" width="100">
         <template slot-scope="scope">
@@ -230,24 +235,24 @@
           <span>{{ scope.row.userDepartment != null ? companyName(scope.row.userDepartment) : '' }}</span>
         </template> -->
       </el-table-column>
-      <el-table-column label="管理部门" align="center" prop="departmentName">
+      <el-table-column v-if="isExist('管理部门')" label="管理部门" align="center" prop="departmentName">
         <!-- <template slot-scope="scope">
           <span>{{ scope.row.department != null ? companyName(scope.row.department) : '' }}</span>
         </template> -->
       </el-table-column>
-      <el-table-column label="所在位置" align="center" prop="locationName">
+      <el-table-column label="所在位置" align="center" prop="locationName" width="120">
         <!-- <template slot-scope="scope">
           <span>{{ locationName(scope.row.locationNumber) }}</span>
         </template> -->
       </el-table-column>
-      <el-table-column label="所属公司" align="center" prop="corporationName">
+      <el-table-column v-if="isExist('所属公司')" label="所属公司" align="center" prop="corporationName">
         <!-- <template slot-scope="scope">
           <span>{{ scope.row.corporation != null ? companyName(scope.row.corporation) : '' }}</span>
         </template> -->
       </el-table-column>
       <el-table-column label="数量" align="center" prop="quantity" />
-      <el-table-column label="计量单位" align="center" prop="units" />
-      <el-table-column label="入账时间" align="center" prop="paymentReceivingTime" />
+      <el-table-column label="计量" align="center" prop="units" />
+      <el-table-column v-if="isExist('入账时间')" label="入账时间" align="center" prop="paymentReceivingTime" />
       <el-table-column v-if="isExist('备注')" label="备注" align="center" prop="remark" />
       <el-table-column v-if="isExist('管理状态')" label="管理状态" align="center" prop="manageStatus">
         <template slot-scope="scope">
@@ -305,13 +310,16 @@
           <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isWhitelist" />
         </template>
       </el-table-column>
-      <!-- <el-table-column label="预留字段e" align="center" prop="reservedColumnE" />
-      <el-table-column label="预留字段f" align="center" prop="reservedColumnF" />
-      <el-table-column label="预留字段g" align="center" prop="reservedColumnG" />
-      <el-table-column label="预留字段h" align="center" prop="reservedColumnH" />
-      <el-table-column label="预留字段i" align="center" prop="reservedColumnI" />
-      <el-table-column label="预留字段j" align="center" prop="reservedColumnJ" /> -->
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <!-- <el-table-column label="epc补充长度" align="center" prop="epcReplenishLength"/> -->
+      <el-table-column v-if="isExist('开始使用日期')" label="开始使用日期" align="center" prop="startDate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="预计使用期限" v-if="isExist('预计使用期限')" align="center" prop="lifeExpectancy" />
+      <el-table-column label="预计使用期限单位" v-if="isExist('预计使用期限单位')" align="center" prop="lifeUnits" />
+      <!-- <el-table-column label="预留字段j" align="center" prop="reservedColumnJ" /> -->
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
         <template slot-scope="scope">
           <el-button size="mini" type="text" icon="el-icon-printer" @click="handPrinter(scope.row)" v-hasPermi="['asset:information:query']">打印</el-button>
           <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['asset:information:edit']">修改</el-button>
@@ -323,140 +331,246 @@
     <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList" />
 
     <!-- 添加或修改资产信息对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+    <el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="130px">
+        <el-row :gutter="10">
+          <el-col :span="8">
+            <el-form-item label="资产编号" prop="number">
+              <el-input v-model="form.number" placeholder="请输入资产编号" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="资产名称" prop="name">
+              <el-input v-model="form.name" placeholder="请输入资产名称" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="资产分类" prop="categoryNumber">
+              <el-select v-model="form.categoryNumber" placeholder="请选择资产分类">
+                <el-option v-for="item in categoryList" :key="item.number" :label="item.name" :value="item.number"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="8">
+            <el-form-item label="所在位置" prop="locationNumber">
+              <treeselect v-model="form.locationNumber" :options="locationList" :normalizer="tenantIdnormalizer" placeholder="选择位置" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="数量" prop="quantity">
+              <el-input v-model="form.quantity" placeholder="请输入数量" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="计量" prop="units">
+              <el-input v-model="form.units" placeholder="请输入计量单位" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="8">
+            <el-form-item label="使用部门" prop="userDepartment">
+              <treeselect v-model="form.userDepartment" :options="deptOptions" :normalizer="normalizer" placeholder="选择使用部门" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="24">
+            <el-form-item label="照片">
+              <image-upload-temp v-model="form.imageUrl" :limit="1" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="8">
+            <el-form-item v-if="isExist('原值')" label="原值" prop="originalValue">
+              <el-input v-model="form.originalValue" placeholder="请输入原值" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('净值')" label="净值" prop="netValue">
+              <el-input v-model="form.netValue" placeholder="请输入净值" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('残值')" label="残值" prop="residualValue">
+              <el-input v-model="form.residualValue" placeholder="请输入残值" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="8">
+            <el-form-item v-if="isExist('规格型号')" label="规格型号" prop="specificationsModel">
+              <el-input v-model="form.specificationsModel" placeholder="请输入规格型号" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('资产用途')" label="资产用途" prop="purpose">
+              <el-input v-model="form.purpose" type="textarea" placeholder="请输入内容" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('资产性质')" label="资产性质" prop="property">
+              <el-select v-model="form.property" placeholder="请选择资产性质" clearable>
+                <el-option v-for="dict in dict.type.sys_asset_property" :key="dict.value" :label="dict.label" :value="dict.value" />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="8">
+            <el-form-item v-if="isExist('所属公司')" label="所属公司" prop="corporation">
+              <treeselect v-model="form.corporation" :options="deptOptions" :normalizer="normalizer" placeholder="选择所属公司" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('管理部门')" label="管理部门" prop="department">
+              <treeselect v-model="form.department" :options="deptOptions" :normalizer="normalizer" placeholder="选择管理部门" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('责任人')" label="责任人" prop="responsiblePerson">
+              <el-input v-model="form.responsiblePerson" placeholder="请输入责任人" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="8">
+            <el-form-item v-if="isExist('开始使用日期')" label="开始使用日期" prop="startDate">
+              <el-date-picker clearable v-model="form.startDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择开始使用日期"> </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('预计使用期限')" label="预计使用期限" prop="lifeExpectancy">
+              <el-input v-model="form.lifeExpectancy" placeholder="请输入预计使用期限" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('预计使用期限')" label="预计使用期限单位" prop="lifeUnits">
+              <el-input v-model="form.lifeUnits" placeholder="请输入预计使用期限单位" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="8">
+            <el-form-item v-if="isExist('ABC分类')" label="ABC分类" prop="abcCategory">
+              <el-input v-model="form.abcCategory" placeholder="请输入ABC分类" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('启用日期')" label="启用日期" prop="commissioningDate">
+              <el-date-picker clearable v-model="form.commissioningDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择启用日期"> </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('入账时间')" label="入账时间" prop="paymentReceivingTime">
+              <el-date-picker clearable v-model="form.paymentReceivingTime" type="date" value-format="yyyy-MM-dd" placeholder="请输入入账时间"> </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="8">
+            <el-form-item v-if="isExist('折旧方式')" label="折旧方式" prop="depreciationMethod">
+              <el-input v-model="form.depreciationMethod" placeholder="请输入折旧方式" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('累计折旧')" label="累计折旧" prop="accumulatedDepreciation">
+              <el-input v-model="form.accumulatedDepreciation" placeholder="请输入累计折旧" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('最近折旧日期')" label="最近折旧日期" prop="lastDepreciationDate">
+              <el-date-picker clearable v-model="form.lastDepreciationDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择最近折旧日期"> </el-date-picker>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="8">
+            <el-form-item v-if="isExist('使用年限')" label="使用年限" prop="durableYears">
+              <el-input v-model="form.durableYears" placeholder="请输入使用年限" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('购置日期')" label="购置日期" prop="purchaseDate">
+              <el-date-picker clearable v-model="form.purchaseDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择购置日期"> </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('记录状态')" label="记录状态" prop="recordStatus">
+              <el-select v-model="form.recordStatus" placeholder="请选择记录状态">
+                <el-option v-for="dict in dict.type.asset_record_status" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="8">
+            <el-form-item v-if="isExist('维保到期日期')" label="维保到期日期" prop="maintenanceDate">
+              <el-date-picker clearable v-model="form.maintenanceDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择维保到期日期"> </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('维修电话')" label="维修电话" prop="maintenanceTel">
+              <el-input v-model="form.maintenanceTel" placeholder="请输入维修电话" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('维修人员')" label="维修人员" prop="maintenanceUser">
+              <el-input v-model="form.maintenanceUser" placeholder="请输入维修人员" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="8">
+            <el-form-item v-if="isExist('制造商')" label="制造商" prop="manufacturer">
+              <el-input v-model="form.manufacturer" placeholder="请输入制造商" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('供应商')" label="供应商" prop="supplier">
+              <el-input v-model="form.supplier" placeholder="请输入供应商" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('出厂编号')" label="出厂编号" prop="factoryNumber">
+              <el-input v-model="form.factoryNumber" placeholder="请输入出厂编号" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="16">
+            <el-form-item v-if="isExist('合同编号')" label="合同编号" prop="contractNumber">
+              <el-input v-model="form.contractNumber" placeholder="请输入合同编号" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item v-if="isExist('是否白名单')" label="是否白名单" prop="isWhitelist">
+              <el-select v-model="form.isWhitelist" placeholder="请输入是否白名单">
+                <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="10">
+          <el-col :span="24">
+            <el-form-item v-if="isExist('备注')" label="备注" prop="remark">
+              <el-input type="textarea" v-model="form.remark" placeholder="请输入备注" />
+            </el-form-item>
+          </el-col>
+        </el-row>
         <!-- <el-form-item  label="资产条码" prop="code">
           <el-input v-model="form.code" placeholder="请输入资产条码" />
         </el-form-item> -->
-        <el-form-item label="资产名称" prop="name">
-          <el-input v-model="form.name" placeholder="请输入资产名称" />
-        </el-form-item>
-        <el-form-item label="资产编号" prop="number">
-          <el-input v-model="form.number" placeholder="请输入资产编号" />
-        </el-form-item>
-        <el-form-item label="照片">
-          <image-upload-temp v-model="form.imageUrl" :limit="1" />
-        </el-form-item>
-        <el-form-item label="资产分类" prop="categoryNumber">
-          <el-select v-model="form.categoryNumber" placeholder="请选择资产分类">
-            <el-option v-for="item in categoryList" :key="item.number" :label="item.name" :value="item.number"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="使用部门" prop="userDepartment">
-          <treeselect v-model="form.userDepartment" :options="deptOptions" :normalizer="normalizer" placeholder="选择使用部门" />
-        </el-form-item>
-        <el-form-item label="管理部门" prop="department">
-          <treeselect v-model="form.department" :options="deptOptions" :normalizer="normalizer" placeholder="选择管理部门" />
-        </el-form-item>
-        <el-form-item label="所在位置" prop="locationNumber">
-          <treeselect v-model="form.locationNumber" :options="locationList" :normalizer="tenantIdnormalizer" placeholder="选择位置" />
-        </el-form-item>
-        <el-form-item label="所属公司" prop="corporation">
-          <treeselect v-model="form.corporation" :options="deptOptions" :normalizer="normalizer" placeholder="选择所属公司" />
-        </el-form-item>
-        <el-form-item label="数量" prop="quantity">
-          <el-input v-model="form.quantity" placeholder="请输入数量" />
-        </el-form-item>
-        <el-form-item label="计量单位" prop="units">
-          <el-input v-model="form.units" placeholder="请输入计量单位" />
-        </el-form-item>
-        <el-form-item label="入账时间" prop="paymentReceivingTime">
-          <el-date-picker clearable v-model="form.paymentReceivingTime" type="date" value-format="yyyy-MM-dd" placeholder="请输入入账时间"> </el-date-picker>
-        </el-form-item>
-        <el-form-item v-if="isExist('备注')" label="备注" prop="remark">
-          <el-input v-model="form.remark" placeholder="请输入备注" />
-        </el-form-item>
-        <el-form-item v-if="isExist('资产性质')" label="资产性质" prop="property">
-          <el-select v-model="form.property" placeholder="请选择资产性质" clearable>
-            <el-option v-for="dict in dict.type.sys_asset_property" :key="dict.value" :label="dict.label" :value="dict.value" />
-          </el-select>
-        </el-form-item>
-        <el-form-item v-if="isExist('规格型号')" label="规格型号" prop="specificationsModel">
-          <el-input v-model="form.specificationsModel" placeholder="请输入规格型号" />
-        </el-form-item>
-        <el-form-item v-if="isExist('ABC分类')" label="ABC分类" prop="abcCategory">
-          <el-input v-model="form.abcCategory" placeholder="请输入ABC分类" />
-        </el-form-item>
-        <el-form-item v-if="isExist('责任人')" label="责任人" prop="responsiblePerson">
-          <el-input v-model="form.responsiblePerson" placeholder="请输入责任人" />
+        <!-- <el-form-item label="epc" prop="epc">
+          <el-input v-model="form.epc" placeholder="请输入epc" />
         </el-form-item>
-        <el-form-item v-if="isExist('购置日期')" label="购置日期" prop="purchaseDate">
-          <el-date-picker clearable v-model="form.purchaseDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择购置日期"> </el-date-picker>
-        </el-form-item>
-        <el-form-item v-if="isExist('启用日期')" label="启用日期" prop="commissioningDate">
-          <el-date-picker clearable v-model="form.commissioningDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择启用日期"> </el-date-picker>
-        </el-form-item>
-        <el-form-item v-if="isExist('原值')" label="原值" prop="originalValue">
-          <el-input v-model="form.originalValue" placeholder="请输入原值" />
-        </el-form-item>
-        <el-form-item v-if="isExist('使用年限')" label="使用年限" prop="durableYears">
-          <el-input v-model="form.durableYears" placeholder="请输入使用年限" />
-        </el-form-item>
-        <el-form-item v-if="isExist('净值')" label="净值" prop="netValue">
-          <el-input v-model="form.netValue" placeholder="请输入净值" />
-        </el-form-item>
-        <el-form-item v-if="isExist('残值')" label="残值" prop="residualValue">
-          <el-input v-model="form.residualValue" placeholder="请输入残值" />
-        </el-form-item>
-        <el-form-item v-if="isExist('累计折旧')" label="累计折旧" prop="accumulatedDepreciation">
-          <el-input v-model="form.accumulatedDepreciation" placeholder="请输入累计折旧" />
-        </el-form-item>
-        <el-form-item v-if="isExist('最近折旧日期')" label="最近折旧日期" prop="lastDepreciationDate">
-          <el-date-picker clearable v-model="form.lastDepreciationDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择最近折旧日期"> </el-date-picker>
-        </el-form-item>
-        <el-form-item v-if="isExist('折旧方式')" label="折旧方式" prop="depreciationMethod">
-          <el-input v-model="form.depreciationMethod" placeholder="请输入折旧方式" />
-        </el-form-item>
-        <el-form-item v-if="isExist('合同编号')" label="合同编号" prop="contractNumber">
-          <el-input v-model="form.contractNumber" placeholder="请输入合同编号" />
-        </el-form-item>
-        <el-form-item v-if="isExist('出厂编号')" label="出厂编号" prop="factoryNumber">
-          <el-input v-model="form.factoryNumber" placeholder="请输入出厂编号" />
-        </el-form-item>
-        <el-form-item v-if="isExist('制造商')" label="制造商" prop="manufacturer">
-          <el-input v-model="form.manufacturer" placeholder="请输入制造商" />
-        </el-form-item>
-        <el-form-item v-if="isExist('供应商')" label="供应商" prop="supplier">
-          <el-input v-model="form.supplier" placeholder="请输入供应商" />
-        </el-form-item>
-        <el-form-item v-if="isExist('资产用途')" label="资产用途" prop="purpose">
-          <el-input v-model="form.purpose" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item v-if="isExist('维保到期日期')" label="维保到期日期" prop="maintenanceDate">
-          <el-date-picker clearable v-model="form.maintenanceDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择维保到期日期"> </el-date-picker>
-        </el-form-item>
-        <el-form-item v-if="isExist('维修电话')" label="维修电话" prop="maintenanceTel">
-          <el-input v-model="form.maintenanceTel" placeholder="请输入维修电话" />
-        </el-form-item>
-        <el-form-item v-if="isExist('维修人员')" label="维修人员" prop="maintenanceUser">
-          <el-input v-model="form.maintenanceUser" placeholder="请输入维修人员" />
-        </el-form-item>
-        <el-form-item v-if="isExist('记录状态')" label="记录状态" prop="recordStatus">
-          <el-select v-model="form.recordStatus" placeholder="请选择记录状态">
-            <el-option v-for="dict in dict.type.asset_record_status" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item v-if="isExist('是否白名单')" label="是否白名单" prop="isWhitelist">
-          <el-select v-model="form.isWhitelist" placeholder="请输入是否白名单">
-            <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
-          </el-select>
-        </el-form-item>
-        <!-- <el-form-item label="预留字段e" prop="reservedColumnE">
-          <el-input v-model="form.reservedColumnE" placeholder="请输入预留字段e" />
-        </el-form-item>
-        <el-form-item label="预留字段f" prop="reservedColumnF">
-          <el-input v-model="form.reservedColumnF" placeholder="请输入预留字段f" />
-        </el-form-item>
-        <el-form-item label="预留字段g" prop="reservedColumnG">
-          <el-input v-model="form.reservedColumnG" placeholder="请输入预留字段g" />
-        </el-form-item>
-        <el-form-item label="预留字段h" prop="reservedColumnH">
-          <el-input v-model="form.reservedColumnH" placeholder="请输入预留字段h" />
-        </el-form-item>
-        <el-form-item label="预留字段i" prop="reservedColumnI">
-          <el-input v-model="form.reservedColumnI" placeholder="请输入预留字段i" />
-        </el-form-item>
-        <el-form-item label="预留字段j" prop="reservedColumnJ">
+        <el-form-item label="epc补充长度" prop="epcReplenishLength">
+          <el-input v-model="form.epcReplenishLength" placeholder="请输入epc补充长度" />
+        </el-form-item> -->
+        <!-- <el-form-item label="预留字段j" prop="reservedColumnJ">
           <el-input v-model="form.reservedColumnJ" placeholder="请输入预留字段j" />
         </el-form-item> -->
       </el-form>
@@ -494,6 +608,13 @@
             <el-checkbox label="是否白名单" border></el-checkbox>
             <el-checkbox label="资产条码" border></el-checkbox>
             <el-checkbox label="备注" border></el-checkbox>
+            <el-checkbox label="epc" border></el-checkbox>
+            <el-checkbox label="入账时间" border></el-checkbox>
+            <el-checkbox label="开始使用日期" border></el-checkbox>
+            <el-checkbox label="预计使用期限" border></el-checkbox>
+            <el-checkbox label="预计使用期限单位" border></el-checkbox>
+            <el-checkbox label="管理部门" border></el-checkbox>
+            <el-checkbox label="所属公司" border></el-checkbox>
           </el-checkbox-group>
         </div>
       </template>
@@ -638,21 +759,18 @@ export default {
         quantity: null,
         units: null,
         paymentReceivingTime: null,
-        reservedColumnE: null,
-        reservedColumnF: null,
-        reservedColumnG: null,
-        reservedColumnH: null,
-        reservedColumnI: null,
+        epc: null,
+        epcReplenishLength: null,
+        lifeExpectancy: null,
+        lifeUnits: null,
+        startDate: null,
         reservedColumnJ: null,
       },
       // 表单参数
       form: {},
       // 表单校验
       rules: {
-        number: [
-          { required: true, message: '资产编号不能为空', trigger: 'blur' },
-          { pattern: /^[A-Fa-f0-9]+$/, message: '资产编号格式仅限[A-Fa-f0-9]' },
-        ],
+        number: [{ required: true, message: '资产编号不能为空', trigger: 'blur' }],
         specificationsModel: [{ required: true, message: '规格型号不能为空', trigger: 'blur' }],
         manageStatus: [{ required: true, message: '管理状态不能为空', trigger: 'change' }],
         recordStatus: [{ required: true, message: '记录状态不能为空', trigger: 'change' }],
@@ -833,11 +951,11 @@ export default {
         quantity: null,
         units: null,
         paymentReceivingTime: null,
-        reservedColumnE: null,
-        reservedColumnF: null,
-        reservedColumnG: null,
-        reservedColumnH: null,
-        reservedColumnI: null,
+        epc: null,
+        epcReplenishLength: null,
+        lifeExpectancy: null,
+        lifeUnits: null,
+        startDate: null,
         reservedColumnJ: null,
       }
       this.printForm = {

+ 11 - 3
ruoyi-ui/src/views/order/order/index.vue

@@ -392,7 +392,6 @@ export default {
       })
       listOrder(this.queryParams).then((response) => {
         this.orderList = response.rows
-        console.log('单据列表', this.orderList)
         this.total = response.total
         this.loading = false
       })
@@ -505,14 +504,22 @@ export default {
     handleSelectionChange(selection) {
       selection.forEach((item) => {
         if (item.recordStatus > 0) {
-          this.$modal.msgWarning('已提交单据不可修改/删除')
+          this.$modal.msgWarning('已提交单据 ' + item.orderNumber + ' 不可修改/删除')
           this.$refs.table.toggleRowSelection(item, false)
         }
       })
       selection = selection.filter((item) => item.recordStatus < 1)
-      this.ids = selection.map((item) => item.id && item.recordStatus < 1)
+      selection.forEach(item => {
+        if (item.recordStatus < 1) {
+          this.ids.push(item.id)
+        }
+      })
+      if (selection.length === 0) {
+        this.ids = []
+      }
       this.single = selection.length !== 1
       this.multiple = !selection.length
+      console.log('多选数据', selection, this.ids)
     },
     /** 新增按钮操作 */
     handleAdd() {
@@ -526,6 +533,7 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset()
+      console.log('修改表单信息:', row)
       const id = row.id || this.ids
       getOrder(id).then((response) => {
         this.form = response.data

+ 3 - 3
ruoyi-ui/src/views/system/dept/index.vue

@@ -56,9 +56,9 @@
       :default-expand-all="isExpandAll"
       :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
     >
-      <el-table-column prop="deptName" label="部门名称" width="260"></el-table-column>
-      <el-table-column prop="deptId" label="部门编号" width="260"></el-table-column>
-      <el-table-column prop="orderNum" label="排序" width="200"></el-table-column>
+      <el-table-column prop="deptName" label="部门名称" width="460"></el-table-column>
+      <el-table-column prop="deptId" label="部门编号" width="160"></el-table-column>
+      <el-table-column prop="orderNum" label="排序" width="100"></el-table-column>
       <el-table-column prop="status" label="状态" width="100">
         <template slot-scope="scope">
           <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>