Browse Source

审批单自定义

guarantee-lsq 2 năm trước cách đây
mục cha
commit
24ea799752
16 tập tin đã thay đổi với 573 bổ sung197 xóa
  1. 5 0
      platform-common/src/main/java/com/platform/common/constant/CommonConstants.java
  2. 65 0
      platform-dao/src/main/java/com/platform/dao/dto/activiti/SbScrapFormActiviti.java
  3. 46 40
      platform-dao/src/main/java/com/platform/dao/dto/customize/CustomFieldTemplateDataDTO.java
  4. 6 1
      platform-dao/src/main/java/com/platform/dao/entity/customize/CustomFieldTemplateData.java
  5. 34 0
      platform-dao/src/main/java/com/platform/dao/enums/CustomFieldTemplateDataStatusEnum.java
  6. 30 0
      platform-dao/src/main/java/com/platform/dao/enums/CustomFieldTemplateDataTypeEnum.java
  7. 50 23
      platform-dao/src/main/java/com/platform/dao/vo/query/customize/CustomFieldTemplateDataVO.java
  8. 65 60
      platform-dao/src/main/resources/mapper/customize/CustomFieldTemplateDataMapper.xml
  9. 5 0
      platform-rest/src/main/java/com/platform/rest/controller/customize/CustomFieldTemplateController.java
  10. 11 0
      platform-rest/src/main/java/com/platform/rest/controller/customize/CustomFieldTemplateDataController.java
  11. 73 40
      platform-service/src/main/java/com/platform/service/business/impl/SbScrapActivitiServiceImpl.java
  12. 18 8
      platform-service/src/main/java/com/platform/service/customize/CustomFieldTemplateDataService.java
  13. 12 8
      platform-service/src/main/java/com/platform/service/customize/CustomFieldTemplateService.java
  14. 143 14
      platform-service/src/main/java/com/platform/service/customize/impl/CustomFieldTemplateDataServiceImpl.java
  15. 8 1
      platform-service/src/main/java/com/platform/service/customize/impl/CustomFieldTemplateServiceImpl.java
  16. 2 2
      platform-service/src/main/java/com/platform/service/upms/impl/ScheduleJobServiceImpl.java

+ 5 - 0
platform-common/src/main/java/com/platform/common/constant/CommonConstants.java

@@ -253,4 +253,9 @@ public interface CommonConstants {
     String REPAIR_STRATEGY_MODEL_DISPATCH_SB_MANAGER = "3"; // 派送给设备管理者进行维修
 
 
+    /**
+     * 审批表单
+     */
+    String SB_SCRAP_FORM = "SB_SCRAP_FORM"; // 设备报废单
+
 }

+ 65 - 0
platform-dao/src/main/java/com/platform/dao/dto/activiti/SbScrapFormActiviti.java

@@ -0,0 +1,65 @@
+package com.platform.dao.dto.activiti;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+@Data
+public class SbScrapFormActiviti implements Serializable {
+
+    private String id;
+    /**
+     * 单号
+     */
+    private String no;
+    /**
+     * 设备Id
+     */
+    private String sbId;
+    /**
+     * 设备编号
+     */
+    private String sbNo;
+    /**
+     * 设备原值/购置价值
+     */
+    private Double initialValue;
+    /**
+     * 当前价值
+     */
+    private Double currentValue;
+    /**
+     * 投用日期
+     */
+    private LocalDate startDate;
+    /**
+     * 预计工作年限(年为单位)
+     */
+    private Double workYear;
+    /**
+     * 报废原因
+     */
+    private String reason;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 状态
+     */
+    private Integer status;
+    /**
+     * 申请人
+     */
+    private String applyUserId;
+    /**
+     * 申请人名称
+     */
+    private String applyUserName;
+    /**
+     * 实例ID
+     */
+    private String processInstanceId;
+
+    private String sbName;
+}

+ 46 - 40
platform-dao/src/main/java/com/platform/dao/dto/customize/CustomFieldTemplateDataDTO.java

@@ -5,6 +5,7 @@ import com.platform.common.validation.group.UpdateGroup;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+
 import javax.validation.constraints.*;
 import java.io.Serializable;
 import java.time.LocalDateTime;
@@ -21,70 +22,75 @@ import java.time.LocalDate;
 @EqualsAndHashCode(callSuper = true)
 public class CustomFieldTemplateDataDTO extends BaseDTO implements Serializable {
 
-      /**
+    /**
      * id
      */
-        @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
+    @NotNull(groups = {UpdateGroup.class}, message = "ID不能为空")
     private String id;
-          /**
+    /**
      * 类型
      */
-          private Integer type;
-          /**
+    private Integer type;
+    /**
      * 所属对象id
      */
-          private String objId;
-          /**
+    private String objId;
+    /**
      * 模板数据
      */
-          private String data;
-          /**
+    private String data;
+    /**
      * 备注
      */
-          private String remark;
-          /**
+    private String remark;
+    /**
      * 创建日期
      */
-        private LocalDateTime createdTime;
-      /**
-       * 创建日期开始
-       */
-      private LocalDateTime createdTimeStart;
-      /**
-       * 创建日期结束
-       */
-      private LocalDateTime createdTimeEnd;
-          /**
+    private LocalDateTime createdTime;
+    /**
+     * 创建日期开始
+     */
+    private LocalDateTime createdTimeStart;
+    /**
+     * 创建日期结束
+     */
+    private LocalDateTime createdTimeEnd;
+    /**
      * 更新日期
      */
-        private LocalDateTime updateTime;
-      /**
-       * 更新日期开始
-       */
-      private LocalDateTime updateTimeStart;
-      /**
-       * 更新日期结束
-       */
-      private LocalDateTime updateTimeEnd;
-          /**
+    private LocalDateTime updateTime;
+    /**
+     * 更新日期开始
+     */
+    private LocalDateTime updateTimeStart;
+    /**
+     * 更新日期结束
+     */
+    private LocalDateTime updateTimeEnd;
+    /**
      * 创建人
      */
-          private String createdUserId;
-          /**
+    private String createdUserId;
+    /**
      * 创建人名称
      */
-          private String createdUserName;
-          /**
+    private String createdUserName;
+    /**
      * 更新人
      */
-          private String updateUserId;
-          /**
+    private String updateUserId;
+    /**
      * 更新人名称
      */
-          private String updateUserName;
-        /**
+    private String updateUserName;
+    /**
      * 关键字
      */
-  private String keyword;
+    private String keyword;
+
+    /**
+     * 审批状态 1 待发起  2 审批中 3 已完成 4 审批拒绝
+     */
+    private Integer status;
 
 }

+ 6 - 1
platform-dao/src/main/java/com/platform/dao/entity/customize/CustomFieldTemplateData.java

@@ -25,7 +25,7 @@ public class CustomFieldTemplateData implements Serializable{
     /**
      * id
      */
-        @Id
+    @Id
     private String id;
     /**
      * 类型
@@ -74,4 +74,9 @@ public class CustomFieldTemplateData implements Serializable{
     @Transient
     private DataScope dataScope;
 
+    /**
+     * 审批状态 1 待发起  2 审批中 3 已完成 4 审批拒绝
+     */
+    private Integer status;
+
 }

+ 34 - 0
platform-dao/src/main/java/com/platform/dao/enums/CustomFieldTemplateDataStatusEnum.java

@@ -0,0 +1,34 @@
+package com.platform.dao.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Description 自定义模板数据类型
+ * @Author liangshiqian
+ * @Date 2022/6/9
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Getter
+@AllArgsConstructor
+public enum CustomFieldTemplateDataStatusEnum {
+
+    /**
+     * 待发起
+     */
+    APPLY(1),
+    /**
+     * 审核中
+     */
+    VERIFYING(2),
+    /**
+     * 审批通过
+     */
+    SUCCESS(3),
+    /**
+     * 审批拒绝
+     */
+    FAIL(3);
+    private Integer value;
+
+}

+ 30 - 0
platform-dao/src/main/java/com/platform/dao/enums/CustomFieldTemplateDataTypeEnum.java

@@ -0,0 +1,30 @@
+package com.platform.dao.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Description 自定义模板数据类型
+ * @Author liangshiqian
+ * @Date 2022/6/9
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
+ */
+@Getter
+@AllArgsConstructor
+public enum CustomFieldTemplateDataTypeEnum {
+
+    /**
+     * 设备属性
+     */
+    SB_FIELD_TYPE(1),
+    /**
+     * 备件属性
+     */
+    SPARE_FIELD_TYPE(2),
+    /**
+     * 审批单
+     */
+    ACTIVITY_FORM(3);
+    private Integer value;
+
+}

+ 50 - 23
platform-dao/src/main/java/com/platform/dao/vo/query/customize/CustomFieldTemplateDataVO.java

@@ -6,6 +6,7 @@ import com.platform.common.bean.BaseDTO;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+
 import javax.validation.constraints.*;
 import java.io.Serializable;
 import java.time.LocalDateTime;
@@ -20,53 +21,79 @@ import java.time.LocalDate;
 @Data
 @Accessors(chain = true)
 @EqualsAndHashCode(callSuper = true)
-public class CustomFieldTemplateDataVO extends BaseVO implements Serializable{
+public class CustomFieldTemplateDataVO extends BaseVO implements Serializable {
 
     /**
      * id
      */
-        private String id;
-        /**
+    private String id;
+    /**
      * 类型
      */
-        private Integer type;
-        /**
+    private Integer type;
+    /**
      * 所属对象id
      */
-        private String objId;
-        /**
+    private String objId;
+    /**
      * 模板数据
      */
-        private String data;
-        /**
+    private String data;
+    /**
      * 备注
      */
-        private String remark;
-        /**
+    private String remark;
+    /**
      * 创建日期
      */
-        private LocalDateTime createdTime;
-        /**
+    private LocalDateTime createdTime;
+    /**
      * 更新日期
      */
-        private LocalDateTime updateTime;
-        /**
+    private LocalDateTime updateTime;
+    /**
      * 创建人
      */
-        private String createdUserId;
-        /**
+    private String createdUserId;
+    /**
      * 创建人名称
      */
-        private String createdUserName;
-        /**
+    private String createdUserName;
+    /**
      * 更新人
      */
-        private String updateUserId;
-        /**
+    private String updateUserId;
+    /**
      * 更新人名称
      */
-        private String updateUserName;
-    
+    private String updateUserName;
+
+    /**
+     * 审批状态 1 待发起  2 审批中 3 已完成 4 审批拒绝
+     */
+    private Integer status;
+
+    /**
+     * 设备名称
+     */
+    private String sbName;
+
+    /**
+     * 审批单号
+     */
+    private String no;
+    /**
+     * 设备编号
+     */
+    private String sbNo;
+    /**
+     * 原因
+     */
+    private String reason;
+    /**
+     * data的备注
+     */
+    private String dataRemark;
 
 
 }

+ 65 - 60
platform-dao/src/main/resources/mapper/customize/CustomFieldTemplateDataMapper.xml

@@ -3,16 +3,17 @@
 <mapper namespace="com.platform.dao.mapper.customize.CustomFieldTemplateDataMapper">
     <sql id="Base_Column_List">
                              fieldTemplateData.id,
-                                     fieldTemplateData.type,
-                                     fieldTemplateData.obj_id,
-                                     fieldTemplateData.data,
-                                     fieldTemplateData.remark,
-                                     fieldTemplateData.created_time,
-                                     fieldTemplateData.update_time,
-                                     fieldTemplateData.created_user_id,
-                                     fieldTemplateData.created_user_name,
-                                     fieldTemplateData.update_user_id,
-                                     fieldTemplateData.update_user_name
+                             fieldTemplateData.type,
+                             fieldTemplateData.obj_id,
+                             fieldTemplateData.data,
+                             fieldTemplateData.remark,
+                             fieldTemplateData.created_time,
+                             fieldTemplateData.update_time,
+                             fieldTemplateData.created_user_id,
+                             fieldTemplateData.created_user_name,
+                             fieldTemplateData.update_user_id,
+                             fieldTemplateData.update_user_name,
+                             fieldTemplateData.status
                         </sql>
     <sql id="Ref_Column_List">
                                                                          fieldTemplateData.type,
@@ -21,60 +22,64 @@
                                      fieldTemplateData.remark,
                                                                                                                                                                                                                                                                                                 </sql>
     <sql id="List_Condition">
-                                    <if test="id != null and id != ''">
-                    and fieldTemplateData.id = #{id}
-                </if>
-                                                <if test="type != null">
-                    and fieldTemplateData.type = #{type}
-                </if>
-                                                <if test="objId != null and objId != ''">
-                    and fieldTemplateData.obj_id = #{objId}
-                </if>
-                                                <if test="data != null and data != ''">
-                    and fieldTemplateData.data = #{data}
-                </if>
-                                                <if test="remark != null and remark != ''">
-                    and fieldTemplateData.remark = #{remark}
-                </if>
-                                                <if test="createdTimeStart != null">
-                    and fieldTemplateData.created_time <![CDATA[>=]]>; #{createdTimeStart}
-                </if>
-                <if test="createdTimeEnd != null">
-                    and fieldTemplateData.created_time <![CDATA[<=]]> #{createdTimeEnd}
-                </if>
-                <if test="createdTime != null">
-                    and fieldTemplateData.created_time = #{createdTime}
-                </if>
-                                                <if test="updateTimeStart != null">
-                    and fieldTemplateData.update_time <![CDATA[>=]]>; #{updateTimeStart}
-                </if>
-                <if test="updateTimeEnd != null">
-                    and fieldTemplateData.update_time <![CDATA[<=]]> #{updateTimeEnd}
-                </if>
-                <if test="updateTime != null">
-                    and fieldTemplateData.update_time = #{updateTime}
-                </if>
-                                                <if test="createdUserId != null and createdUserId != ''">
-                    and fieldTemplateData.created_user_id = #{createdUserId}
-                </if>
-                                                <if test="createdUserName != null and createdUserName != ''">
-                    and fieldTemplateData.created_user_name = #{createdUserName}
-                </if>
-                                                <if test="updateUserId != null and updateUserId != ''">
-                    and fieldTemplateData.update_user_id = #{updateUserId}
-                </if>
-                                                <if test="updateUserName != null and updateUserName != ''">
-                    and fieldTemplateData.update_user_name = #{updateUserName}
-                </if>
-                            <if test="keyword != null and keyword != ''">
+        <if test="id != null and id != ''">
+            and fieldTemplateData.id = #{id}
+        </if>
+        <if test="type != null">
+            and fieldTemplateData.type = #{type}
+        </if>
+        <if test="objId != null and objId != ''">
+            and fieldTemplateData.obj_id = #{objId}
+        </if>
+        <if test="data != null and data != ''">
+            and fieldTemplateData.data = #{data}
+        </if>
+        <if test="remark != null and remark != ''">
+            and fieldTemplateData.remark = #{remark}
+        </if>
+        <if test="createdTimeStart != null">
+            and fieldTemplateData.created_time <![CDATA[>=]]>; #{createdTimeStart}
+        </if>
+        <if test="createdTimeEnd != null">
+            and fieldTemplateData.created_time <![CDATA[<=]]> #{createdTimeEnd}
+        </if>
+        <if test="createdTime != null">
+            and fieldTemplateData.created_time = #{createdTime}
+        </if>
+        <if test="updateTimeStart != null">
+            and fieldTemplateData.update_time <![CDATA[>=]]>; #{updateTimeStart}
+        </if>
+        <if test="updateTimeEnd != null">
+            and fieldTemplateData.update_time <![CDATA[<=]]> #{updateTimeEnd}
+        </if>
+        <if test="updateTime != null">
+            and fieldTemplateData.update_time = #{updateTime}
+        </if>
+        <if test="createdUserId != null and createdUserId != ''">
+            and fieldTemplateData.created_user_id = #{createdUserId}
+        </if>
+        <if test="createdUserName != null and createdUserName != ''">
+            and fieldTemplateData.created_user_name = #{createdUserName}
+        </if>
+        <if test="updateUserId != null and updateUserId != ''">
+            and fieldTemplateData.update_user_id = #{updateUserId}
+        </if>
+        <if test="updateUserName != null and updateUserName != ''">
+            and fieldTemplateData.update_user_name = #{updateUserName}
+        </if>
+        <if test="keyword != null and keyword != ''">
             and fieldTemplateData.id like concat(concat('%',#{keyword}),'%')
         </if>
+        <if test="status != null">
+            and fieldTemplateData.status = #{status}
+        </if>
     </sql>
-    <select id="selectList" parameterType="com.platform.dao.dto.customize.CustomFieldTemplateDataDTO" resultType="com.platform.dao.vo.query.customize.CustomFieldTemplateDataVO">
+    <select id="selectList" parameterType="com.platform.dao.dto.customize.CustomFieldTemplateDataDTO"
+            resultType="com.platform.dao.vo.query.customize.CustomFieldTemplateDataVO">
         select fieldTemplateData.*
-                                                                                                                                                                                                                                            from t_custom_field_template_data as fieldTemplateData
-                                                                                                                                                                                                                                            <where>
-            <include refid="List_Condition" />
+        from t_custom_field_template_data as fieldTemplateData
+        <where>
+            <include refid="List_Condition"/>
         </where>
     </select>
 </mapper>

+ 5 - 0
platform-rest/src/main/java/com/platform/rest/controller/customize/CustomFieldTemplateController.java

@@ -177,4 +177,9 @@ public class CustomFieldTemplateController {
     ExcelUtil.exportResponseDict(response, ExportCustomFieldTemplateVO.class, BeanConverterUtil.copyListProperties(list, ExportCustomFieldTemplateVO.class), "自定义报表");
   }
 
+    @GetMapping("/custom/{remark}")
+    public R<CustomFieldTemplate> remark(@PathVariable("remark") String remark){
+        return new R<>(customFieldTemplateService.getTemplateByRemark(remark));
+    }
+
 }

+ 11 - 0
platform-rest/src/main/java/com/platform/rest/controller/customize/CustomFieldTemplateDataController.java

@@ -56,6 +56,17 @@ public class CustomFieldTemplateDataController {
       return new R<>(customFieldTemplateDataService.saveModelByDTO(customFieldTemplateDataDTO));
   }
 
+    /**
+     * 新增自定义表单记录
+     * @param customFieldTemplateDataDTO 自定义报表DTO
+     * @return R
+     */
+    @SysLog("新增自定义报表")
+    @PostMapping("/form")
+    public R saveForm(@Validated({AddGroup.class}) @RequestBody CustomFieldTemplateDataDTO customFieldTemplateDataDTO) {
+        return new R<>(customFieldTemplateDataService.saveModelFormByDTO(customFieldTemplateDataDTO));
+    }
+
   /**
    * 修改记录
    *

+ 73 - 40
platform-service/src/main/java/com/platform/service/business/impl/SbScrapActivitiServiceImpl.java

@@ -1,45 +1,22 @@
 package com.platform.service.business.impl;
 
-import cn.hutool.core.collection.CollectionUtil;
-import com.platform.activiti.dao.entity.ActApplyInfo;
-import com.platform.activiti.dao.entity.ActAuditRecord;
 import com.platform.activiti.dao.entity.ActAuditRequest;
-import com.platform.activiti.enums.ActApplyEnum;
-import com.platform.common.constant.CommonConstants;
-import com.platform.common.enums.ResultCode;
 import com.platform.common.exception.BusinessException;
-import com.platform.common.model.UserInfo;
-import com.platform.common.util.SecurityUtils;
-import com.platform.dao.entity.activiti.ActivitiUserModel;
+import com.platform.common.util.JsonUtils;
+import com.platform.dao.dto.activiti.SbScrapFormActiviti;
+import com.platform.dao.entity.customize.CustomFieldTemplateData;
 import com.platform.dao.entity.sb.SbInfo;
-import com.platform.dao.entity.sb.SbScrapForm;
-import com.platform.dao.entity.upms.SysUser;
 import com.platform.dao.enums.ActivitiFormStatusEnum;
+import com.platform.dao.enums.CustomFieldTemplateDataStatusEnum;
 import com.platform.dao.enums.SbInfoStatusEnum;
+import com.platform.dao.mapper.customize.CustomFieldTemplateDataMapper;
 import com.platform.dao.mapper.sb.SbInfoMapper;
 import com.platform.dao.mapper.sb.SbScrapFormMapper;
-import com.platform.service.activiti.ActivitiAssignStrategy;
-import com.platform.service.activiti.ActivitiUserModelService;
-import com.platform.service.business.ActivitiBaseService;
-import com.platform.service.sb.SbInfoService;
-import com.platform.service.sb.SbScrapFormService;
-import com.platform.service.upms.SysUserService;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.activiti.engine.*;
-import org.activiti.engine.history.HistoricDetail;
-import org.activiti.engine.history.HistoricProcessInstance;
-import org.activiti.engine.history.HistoricVariableUpdate;
-import org.activiti.engine.repository.Model;
-import org.activiti.engine.runtime.ProcessInstance;
-import org.activiti.engine.task.Task;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 
-import java.time.LocalDateTime;
-import java.util.*;
-import java.util.stream.Collectors;
-
 /**
  * @Description 工作流业务
  * @Author chenyuehu
@@ -50,9 +27,8 @@ import java.util.stream.Collectors;
 @AllArgsConstructor
 @Service("sbScrapActivitiServiceImpl")
 public class SbScrapActivitiServiceImpl extends ActivitiBaseServiceAbstract {
-
-    private SbScrapFormMapper sbScrapFormMapper;
     private SbInfoMapper sbInfoMapper;
+    private CustomFieldTemplateDataMapper customFieldTemplateDataMapper;
 
     /**
      * 检查业务是否可以发起,比如检查业务状态等
@@ -61,7 +37,21 @@ public class SbScrapActivitiServiceImpl extends ActivitiBaseServiceAbstract {
      */
     @Override
     protected void doCheck(ActAuditRequest actAuditRequest) {
-        SbScrapForm sbScrapForm = sbScrapFormMapper.selectByPrimaryKey(actAuditRequest.getId());
+        CustomFieldTemplateData sbScrapForm = customFieldTemplateDataMapper.selectByPrimaryKey(actAuditRequest.getId());
+        if (sbScrapForm == null || StringUtils.isBlank(sbScrapForm.getData())) {
+            throw new BusinessException("报废单不存在");
+        }
+        if (!sbScrapForm.getStatus().equals(CustomFieldTemplateDataStatusEnum.APPLY.getValue())) {
+            throw new BusinessException("只要草稿状态下的报废单,才可以提交申请");
+        }
+        SbInfo sbInfo = sbInfoMapper.selectByPrimaryKey(sbScrapForm.getObjId());
+        if (sbInfo == null) {
+            throw new BusinessException("设备不存在");
+        }
+        if (sbInfo.getStatus().equals(SbInfoStatusEnum.IN_SCRAP.getValue()) || sbInfo.getStatus().equals(SbInfoStatusEnum.SCRAPED.getValue()) || sbInfo.getStatus().equals(SbInfoStatusEnum.IN_USE.getValue())) {
+            throw new BusinessException("设备状态无法报废");
+        }
+        /*SbScrapForm sbScrapForm = sbScrapFormMapper.selectByPrimaryKey(actAuditRequest.getId());
         if (sbScrapForm == null) {
             throw new BusinessException("报废单不存在");
         }
@@ -74,7 +64,7 @@ public class SbScrapActivitiServiceImpl extends ActivitiBaseServiceAbstract {
         }
         if (sbInfo.getStatus().equals(SbInfoStatusEnum.IN_SCRAP.getValue()) || sbInfo.getStatus().equals(SbInfoStatusEnum.SCRAPED.getValue()) || sbInfo.getStatus().equals(SbInfoStatusEnum.IN_USE.getValue())) {
             throw new BusinessException("设备状态无法报废");
-        }
+        }*/
     }
 
     /**
@@ -84,7 +74,20 @@ public class SbScrapActivitiServiceImpl extends ActivitiBaseServiceAbstract {
      */
     @Override
     protected void doUpdate(ActAuditRequest actAuditRequest) {
-        SbScrapForm updInfo = sbScrapFormMapper.selectByPrimaryKey(actAuditRequest.getId());
+        CustomFieldTemplateData updInfo = customFieldTemplateDataMapper.selectByPrimaryKey(actAuditRequest.getId());
+        updInfo.setId(actAuditRequest.getId());
+        updInfo.setStatus(ActivitiFormStatusEnum.EXECUTING.getValue());
+        SbScrapFormActiviti activiti = JsonUtils.jsonToModel(updInfo.getData(),SbScrapFormActiviti.class);
+        activiti.setStatus(ActivitiFormStatusEnum.EXECUTING.getValue());
+        activiti.setProcessInstanceId(actAuditRequest.getProcessInstanceId());
+        updInfo.setData(JsonUtils.objectToJson(activiti));
+        customFieldTemplateDataMapper.updateByPrimaryKeySelective(updInfo);
+
+        SbInfo sbInfo = new SbInfo();
+        sbInfo.setStatus(SbInfoStatusEnum.IN_SCRAP.getValue());
+        sbInfo.setId(updInfo.getObjId());
+        sbInfoMapper.updateByPrimaryKeySelective(sbInfo);
+        /*SbScrapForm updInfo = sbScrapFormMapper.selectByPrimaryKey(actAuditRequest.getId());
         updInfo.setId(actAuditRequest.getId());
         updInfo.setStatus(ActivitiFormStatusEnum.EXECUTING.getValue());
         updInfo.setProcessInstanceId(actAuditRequest.getProcessInstanceId());
@@ -93,7 +96,7 @@ public class SbScrapActivitiServiceImpl extends ActivitiBaseServiceAbstract {
         SbInfo sbInfo = new SbInfo();
         sbInfo.setStatus(SbInfoStatusEnum.IN_SCRAP.getValue());
         sbInfo.setId(updInfo.getSbId());
-        sbInfoMapper.updateByPrimaryKeySelective(sbInfo);
+        sbInfoMapper.updateByPrimaryKeySelective(sbInfo);*/
     }
 
     /**
@@ -103,9 +106,15 @@ public class SbScrapActivitiServiceImpl extends ActivitiBaseServiceAbstract {
      */
     @Override
     protected void doRefuse(ActAuditRequest actAuditRequest) {
-        SbScrapForm updInfo = sbScrapFormMapper.selectByPrimaryKey(actAuditRequest.getId());
+        CustomFieldTemplateData updInfo = customFieldTemplateDataMapper.selectByPrimaryKey(actAuditRequest.getId());
         updInfo.setStatus(ActivitiFormStatusEnum.REFUSE.getValue());
-        sbScrapFormMapper.updateByPrimaryKeySelective(updInfo);
+        SbScrapFormActiviti activiti = JsonUtils.jsonToModel(updInfo.getData(),SbScrapFormActiviti.class);
+        activiti.setStatus(ActivitiFormStatusEnum.REFUSE.getValue());
+        updInfo.setData(JsonUtils.objectToJson(activiti));
+        customFieldTemplateDataMapper.updateByPrimaryKeySelective(updInfo);
+        /*SbScrapForm updInfo = sbScrapFormMapper.selectByPrimaryKey(actAuditRequest.getId());
+        updInfo.setStatus(ActivitiFormStatusEnum.REFUSE.getValue());
+        sbScrapFormMapper.updateByPrimaryKeySelective(updInfo);*/
     }
 
     /**
@@ -115,14 +124,25 @@ public class SbScrapActivitiServiceImpl extends ActivitiBaseServiceAbstract {
      */
     @Override
     protected void doFinish(ActAuditRequest actAuditRequest) {
-        SbScrapForm updInfo = sbScrapFormMapper.selectByPrimaryKey(actAuditRequest.getId());
+        CustomFieldTemplateData updInfo = customFieldTemplateDataMapper.selectByPrimaryKey(actAuditRequest.getId());
+        updInfo.setStatus(ActivitiFormStatusEnum.FINISH.getValue());
+        SbScrapFormActiviti activiti = JsonUtils.jsonToModel(updInfo.getData(),SbScrapFormActiviti.class);
+        activiti.setStatus(ActivitiFormStatusEnum.FINISH.getValue());
+        updInfo.setData(JsonUtils.objectToJson(activiti));
+        customFieldTemplateDataMapper.updateByPrimaryKeySelective(updInfo);
+
+        SbInfo sbInfo = new SbInfo();
+        sbInfo.setStatus(SbInfoStatusEnum.SCRAPED.getValue());
+        sbInfo.setId(updInfo.getObjId());
+        sbInfoMapper.updateByPrimaryKeySelective(sbInfo);
+        /*SbScrapForm updInfo = sbScrapFormMapper.selectByPrimaryKey(actAuditRequest.getId());
         updInfo.setStatus(ActivitiFormStatusEnum.FINISH.getValue());
         sbScrapFormMapper.updateByPrimaryKeySelective(updInfo);
 
         SbInfo sbInfo = new SbInfo();
         sbInfo.setStatus(SbInfoStatusEnum.SCRAPED.getValue());
         sbInfo.setId(updInfo.getSbId());
-        sbInfoMapper.updateByPrimaryKeySelective(sbInfo);
+        sbInfoMapper.updateByPrimaryKeySelective(sbInfo);*/
     }
 
     /**
@@ -132,7 +152,20 @@ public class SbScrapActivitiServiceImpl extends ActivitiBaseServiceAbstract {
      */
     @Override
     protected void doStop(ActAuditRequest actAuditRequest) {
-        SbScrapForm updInfo = sbScrapFormMapper.selectByPrimaryKey(actAuditRequest.getId());
+        CustomFieldTemplateData updInfo = customFieldTemplateDataMapper.selectByPrimaryKey(actAuditRequest.getId());
+        updInfo.setId(actAuditRequest.getId());
+        SbScrapFormActiviti activiti = JsonUtils.jsonToModel(updInfo.getData(),SbScrapFormActiviti.class);
+        activiti.setStatus(ActivitiFormStatusEnum.NOT_EXECUTE.getValue());
+        activiti.setProcessInstanceId(null);
+        updInfo.setData(JsonUtils.objectToJson(activiti));
+        updInfo.setStatus(ActivitiFormStatusEnum.NOT_EXECUTE.getValue());
+        customFieldTemplateDataMapper.updateByPrimaryKeySelective(updInfo);
+
+        SbInfo sbInfo = new SbInfo();
+        sbInfo.setStatus(SbInfoStatusEnum.IN_STORE.getValue());
+        sbInfo.setId(updInfo.getObjId());
+        sbInfoMapper.updateByPrimaryKeySelective(sbInfo);
+        /*SbScrapForm updInfo = sbScrapFormMapper.selectByPrimaryKey(actAuditRequest.getId());
         updInfo.setId(actAuditRequest.getId());
         updInfo.setProcessInstanceId(null);
         updInfo.setStatus(ActivitiFormStatusEnum.NOT_EXECUTE.getValue());
@@ -141,6 +174,6 @@ public class SbScrapActivitiServiceImpl extends ActivitiBaseServiceAbstract {
         SbInfo sbInfo = new SbInfo();
         sbInfo.setStatus(SbInfoStatusEnum.IN_STORE.getValue());
         sbInfo.setId(updInfo.getSbId());
-        sbInfoMapper.updateByPrimaryKeySelective(sbInfo);
+        sbInfoMapper.updateByPrimaryKeySelective(sbInfo);*/
     }
 }

+ 18 - 8
platform-service/src/main/java/com/platform/service/customize/CustomFieldTemplateDataService.java

@@ -5,6 +5,7 @@ import com.platform.dao.dto.customize.CustomFieldTemplateDataDTO;
 import com.platform.dao.entity.customize.CustomFieldTemplateData;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.service.base.IBaseService;
+
 import java.util.List;
 
 /**
@@ -15,16 +16,17 @@ import java.util.List;
  */
 public interface CustomFieldTemplateDataService extends IBaseService<CustomFieldTemplateData, CustomFieldTemplateDataDTO> {
 
-   /**
-    * 批量删除
-    *
-    * @param ids :
-    * @return :
-    */
+    /**
+     * 批量删除
+     *
+     * @param ids :
+     * @return :
+     */
     int batchDelete(List<String> ids);
 
     /**
      * 分页查询
+     *
      * @param record
      * @param pageNum
      * @param pageSize
@@ -32,5 +34,13 @@ public interface CustomFieldTemplateDataService extends IBaseService<CustomField
      */
     AbstractPageResultBean<CustomFieldTemplateDataVO> selectPageList(CustomFieldTemplateDataDTO record, int pageNum, int pageSize);
 
-                        void updateTypeById(String id,Integer type);
-                                                                                                                        }
+    void updateTypeById(String id, Integer type);
+
+    /**
+     * 保存对象
+     *
+     * @param model
+     * @return
+     */
+    CustomFieldTemplateData saveModelFormByDTO(CustomFieldTemplateDataDTO model);
+}

+ 12 - 8
platform-service/src/main/java/com/platform/service/customize/CustomFieldTemplateService.java

@@ -5,6 +5,7 @@ import com.platform.dao.dto.customize.CustomFieldTemplateDTO;
 import com.platform.dao.entity.customize.CustomFieldTemplate;
 import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.service.base.IBaseService;
+
 import java.util.List;
 
 /**
@@ -15,16 +16,17 @@ import java.util.List;
  */
 public interface CustomFieldTemplateService extends IBaseService<CustomFieldTemplate, CustomFieldTemplateDTO> {
 
-   /**
-    * 批量删除
-    *
-    * @param ids :
-    * @return :
-    */
+    /**
+     * 批量删除
+     *
+     * @param ids :
+     * @return :
+     */
     int batchDelete(List<String> ids);
 
     /**
      * 分页查询
+     *
      * @param record
      * @param pageNum
      * @param pageSize
@@ -32,5 +34,7 @@ public interface CustomFieldTemplateService extends IBaseService<CustomFieldTemp
      */
     AbstractPageResultBean<CustomFieldTemplateVO> selectPageList(CustomFieldTemplateDTO record, int pageNum, int pageSize);
 
-                                    void updateTypeById(String id,Integer type);
-                                                                                                            }
+    void updateTypeById(String id, Integer type);
+
+    CustomFieldTemplate getTemplateByRemark(String remark);
+}

+ 143 - 14
platform-service/src/main/java/com/platform/service/customize/impl/CustomFieldTemplateDataServiceImpl.java

@@ -1,19 +1,30 @@
 package com.platform.service.customize.impl;
+
+import com.github.pagehelper.PageHelper;
 import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.constant.CommonConstants;
+import com.platform.common.exception.DeniedException;
+import com.platform.common.util.*;
 import com.platform.dao.bean.MyPage;
-import com.github.pagehelper.PageHelper;
-import com.platform.dao.vo.query.customize.CustomFieldTemplateDataVO;
+import com.platform.dao.dto.activiti.SbScrapFormActiviti;
 import com.platform.dao.dto.customize.CustomFieldTemplateDataDTO;
 import com.platform.dao.entity.customize.CustomFieldTemplateData;
+import com.platform.dao.entity.sb.SbInfo;
+import com.platform.dao.enums.CustomFieldTemplateDataStatusEnum;
+import com.platform.dao.enums.CustomFieldTemplateDataTypeEnum;
+import com.platform.dao.enums.SbInfoStatusEnum;
 import com.platform.dao.mapper.customize.CustomFieldTemplateDataMapper;
+import com.platform.dao.mapper.sb.SbInfoMapper;
+import com.platform.dao.vo.query.customize.CustomFieldTemplateDataVO;
+import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.customize.CustomFieldTemplateDataService;
+import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
-import com.platform.service.base.impl.BaseServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
-import lombok.AllArgsConstructor;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -25,6 +36,7 @@ import java.util.List;
 @AllArgsConstructor
 @Service("customFieldTemplateDataService")
 public class CustomFieldTemplateDataServiceImpl extends BaseServiceImpl<CustomFieldTemplateDataMapper, CustomFieldTemplateData, CustomFieldTemplateDataDTO> implements CustomFieldTemplateDataService {
+    private SbInfoMapper sbInfoMapper;
 
     @Override
     public int batchDelete(List<String> ids) {
@@ -37,22 +49,139 @@ public class CustomFieldTemplateDataServiceImpl extends BaseServiceImpl<CustomFi
 
     @Override
     public AbstractPageResultBean<CustomFieldTemplateDataVO> selectPageList(CustomFieldTemplateDataDTO record, int pageNum, int pageSize) {
+        // 填充数据标识
+        boolean resultWriteFlag = Boolean.FALSE;
         PageHelper.startPage(pageNum, pageSize);
-        return new MyPage(mapper.selectList(record));
+        // 根据type类型获取数据
+        if(record.getType() != null){
+            // 审批单数据
+            if(record.getType() == CustomFieldTemplateDataTypeEnum.ACTIVITY_FORM.getValue()){
+                if(StringUtils.isNotBlank(record.getRemark())){
+                    resultWriteFlag = Boolean.TRUE;
+                }
+                record.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
+            }
+        }
+        AbstractPageResultBean<CustomFieldTemplateDataVO> pageInfos = new MyPage(mapper.selectList(record));
+        if(resultWriteFlag){
+            resultWrite(pageInfos,record.getRemark());
+        }
+        return pageInfos;
+    }
+
+    private void resultWrite(AbstractPageResultBean<CustomFieldTemplateDataVO> pageInfos,String type){
+        if(pageInfos != null && pageInfos.getRows() != null && pageInfos.getRows().size() > 0){ // 统一判断
+            switch (type){
+                case CommonConstants.SB_SCRAP_FORM:  // 设备报废单
+                    sbScrapWrite(pageInfos);
+                    break;
+            }
+        }
+    }
+
+    /**
+     * 设备报废单的反写
+     * @param pageInfos
+     */
+    private void sbScrapWrite(AbstractPageResultBean<CustomFieldTemplateDataVO> pageInfos){
+        for(CustomFieldTemplateDataVO vo : pageInfos.getRows()){
+            SbScrapFormActiviti activiti = JsonUtils.jsonToModel(vo.getData(),SbScrapFormActiviti.class);
+            vo.setDataRemark(activiti.getRemark());
+            vo.setNo(activiti.getNo());
+            vo.setSbName(activiti.getSbName());
+            vo.setReason(activiti.getReason());
+            vo.setSbNo(activiti.getSbNo());
+        }
     }
 
     @Override
     public AbstractPageResultBean<CustomFieldTemplateData> selectPageInfo(CustomFieldTemplateDataDTO record, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
+        // 根据type类型获取数据
+        if(record.getType() != null){
+            // 审批单数据
+            if(record.getType() == CustomFieldTemplateDataTypeEnum.ACTIVITY_FORM.getValue()){
+                record.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
+            }
+        }
         return new MyPage(mapper.selectList(record));
     }
 
-                                    @Override
-            @Transactional(rollbackFor = Exception.class)
-            public void updateTypeById(String id,Integer type) {
-                CustomFieldTemplateData updInfo = new CustomFieldTemplateData();
-                updInfo.setId(id);
-                updInfo.setType(type);
-                mapper.updateByPrimaryKeySelective(updInfo);
-            }
-                                                                                                                        }
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateTypeById(String id, Integer type) {
+        CustomFieldTemplateData updInfo = new CustomFieldTemplateData();
+        updInfo.setId(id);
+        updInfo.setType(type);
+        mapper.updateByPrimaryKeySelective(updInfo);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public CustomFieldTemplateData saveModelFormByDTO(CustomFieldTemplateDataDTO model) {
+        // 审批表单申请前的校验并返回单号
+        String no = checkPrepare(model);
+        // 发起人和发起时间
+        String userId = SecurityUtils.getUserInfo().getUserId();
+        String userName = SecurityUtils.getUserInfo().getUsername();
+        LocalDateTime now = LocalDateTime.now();
+        SbScrapFormActiviti activiti = JsonUtils.jsonToModel(model.getData(), SbScrapFormActiviti.class);
+        activiti.setApplyUserId(userId);
+        activiti.setApplyUserName(userName);
+        activiti.setStatus(CustomFieldTemplateDataStatusEnum.APPLY.getValue());
+        activiti.setId(IdGeneratorUtils.getObjectId());
+        activiti.setNo(no);
+        model.setData(JsonUtils.objectToJson(activiti));
+        model.setCreatedTime(now);
+        model.setCreatedUserId(userId);
+        model.setCreatedUserName(userName);
+        model.setStatus(CustomFieldTemplateDataStatusEnum.APPLY.getValue());
+        model.setId(IdGeneratorUtils.getObjectId());
+        CustomFieldTemplateData entity = BeanConverterUtil.copyObjectProperties(model, getEntityClass());
+        mapper.insertSelective(entity);
+        return entity;
+    }
+
+    /**
+     * 表单检查
+     * @param model
+     */
+    private String checkPrepare(CustomFieldTemplateDataDTO model){
+        String no = "";
+        String data = model.getData();
+        switch (model.getRemark()){
+            case CommonConstants
+                    .SB_SCRAP_FORM:
+                no = checkSbScrapForm(data);
+                break;
+        }
+        return no;
+    }
+
+    /**
+     * 设备报废校验
+     * @param jsonInfo
+     */
+    private String checkSbScrapForm(String jsonInfo){
+        SbScrapFormActiviti sbForm = JsonUtils.jsonToModel(jsonInfo, SbScrapFormActiviti.class);
+        SbInfo sbInfo = sbInfoMapper.selectByPrimaryKey(sbForm.getSbId());
+        if (sbInfo == null) {
+            throw new DeniedException("设备不存在");
+        }
+        if (sbInfo.getStatus().equals(SbInfoStatusEnum.IN_SCRAP.getValue()) ||
+                sbInfo.getStatus().equals(SbInfoStatusEnum.SCRAPED.getValue()) ||
+                sbInfo.getStatus().equals(SbInfoStatusEnum.IN_USE.getValue())) {
+            throw new DeniedException("设备状态无法报废");
+        }
+        CustomFieldTemplateData dataQuery = new CustomFieldTemplateData();
+        dataQuery.setType(CustomFieldTemplateDataTypeEnum.ACTIVITY_FORM.getValue());
+        dataQuery.setRemark(CommonConstants.SB_SCRAP_FORM);
+        int historyCount = mapper.selectCount(dataQuery);
+        dataQuery.setObjId(sbInfo.getId());
+        if(mapper.selectCount(dataQuery) > 0){
+            throw new DeniedException("该设备的报废申请单已存在");
+        }
+        return IdGeneratorUtils.getSbScrapFormNo(++historyCount);
+    }
+
+}

+ 8 - 1
platform-service/src/main/java/com/platform/service/customize/impl/CustomFieldTemplateServiceImpl.java

@@ -55,4 +55,11 @@ public class CustomFieldTemplateServiceImpl extends BaseServiceImpl<CustomFieldT
                 updInfo.setType(type);
                 mapper.updateByPrimaryKeySelective(updInfo);
             }
-                                                                                                            }
+
+    @Override
+    public CustomFieldTemplate getTemplateByRemark(String remark) {
+        CustomFieldTemplate templateQuery = new CustomFieldTemplate();
+        templateQuery.setRemark(remark);
+        return mapper.selectOne(templateQuery);
+    }
+}

+ 2 - 2
platform-service/src/main/java/com/platform/service/upms/impl/ScheduleJobServiceImpl.java

@@ -38,7 +38,7 @@ public class ScheduleJobServiceImpl extends BaseServiceImpl<ScheduleJobMapper, S
      */
     @PostConstruct
     public void init() {
-        List<ScheduleJob> scheduleJobList = mapper.selectAll();
+        /*List<ScheduleJob> scheduleJobList = mapper.selectAll();
         for (ScheduleJob scheduleJob : scheduleJobList) {
             CronTrigger cronTrigger = ScheduleUtils.getCronTrigger(scheduler, scheduleJob.getJobId());
             //如果不存在,则创建
@@ -47,7 +47,7 @@ public class ScheduleJobServiceImpl extends BaseServiceImpl<ScheduleJobMapper, S
             } else {
                 ScheduleUtils.updateScheduleJob(scheduler, scheduleJob);
             }
-        }
+        }*/
     }
 
     @Override