Quellcode durchsuchen

Merge branch 'master' of http://git.jihengcc.cn/guojia/device-asset-weixin

guojia vor 4 Jahren
Ursprung
Commit
cccfe1e868

+ 61 - 0
src/main/java/com/ebei/device/asset/weixin/contorller/AssetTaskController.java

@@ -0,0 +1,61 @@
+package com.ebei.device.asset.weixin.contorller;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.ebei.device.asset.weixin.model.entity.AssetTaskSignFile;
+import com.ebei.device.asset.weixin.model.vo.AssetHistoryTask;
+import com.ebei.device.asset.weixin.service.AssetTaskService;
+import com.ebei.device.asset.weixin.util.ResponseEx;
+import com.ebei.device.asset.weixin.util.ResponsePageEx;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Description: ${资产任务 前端控制器}
+ * @Date: 2020/8/12 16:55
+ */
+@RestController
+@RequestMapping("/assetTask")
+@Api(value = "assetTask", description = "资产任务")
+public class AssetTaskController {
+
+
+    @Autowired
+    private AssetTaskService assetTaskService;
+
+
+    @ApiOperation(value="获取隐患历史清单分页数据")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageSize", value = "URL参数:每页显示数量", required = false, paramType = "query"),
+            @ApiImplicitParam(name = "pageIndex", value = "URL参数:当前页", required = false, paramType = "query"),
+            @ApiImplicitParam(name = "tenantId", value = "租户Id", required = true, paramType = "query"),
+            @ApiImplicitParam(name = "assetId", value = "资产Id", required = true, paramType = "query")
+    })
+    @GetMapping("/selectAssetTaskList")
+    public ResponsePageEx<Object> selectAssetTaskList(@RequestParam(required = false) Integer pageSize, @RequestParam(required = false) Integer pageIndex,
+                                                      @RequestParam Long tenantId, @RequestParam Long assetId) {
+
+        Page<AssetHistoryTask> page = new Page<>(pageIndex == null ? 1 : pageIndex, pageSize == null ? Integer.MAX_VALUE : pageSize);
+        Map<String,Object> params = new HashMap<>();
+        params.put("tenantId",tenantId);
+        params.put("assetId",assetId);
+        Page<AssetHistoryTask> result = assetTaskService.selectAssetTaskList(page, params);
+        return  ResponsePageEx.createSuccess(result.getRecords(), result.getTotal(), result.getCurrent(), result.getSize(), result.getPages());
+
+    }
+
+    @ApiOperation(value="保存任务签名")
+    @PostMapping("/saveTaskSign")
+    public ResponseEx<Object> saveTaskSign(@RequestBody @ApiParam(name="taskSignFile",value="参数JSON",required=true) AssetTaskSignFile taskSignFile) {
+
+        assetTaskService.saveTaskSign(taskSignFile);
+        return ResponseEx.createSuccess("签名成功");
+
+    }
+
+
+
+}

+ 23 - 0
src/main/java/com/ebei/device/asset/weixin/mapper/AssetTaskMapper.java

@@ -0,0 +1,23 @@
+package com.ebei.device.asset.weixin.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.ebei.device.asset.weixin.model.entity.AssetTask;
+import com.ebei.device.asset.weixin.model.vo.AssetHistoryTask;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: ${description}
+ * @Date: 2020/8/12 16:20
+ */
+@Repository
+public interface AssetTaskMapper extends BaseMapper<AssetTask> {
+
+
+    List<AssetHistoryTask> selectAssetTaskList(Page<AssetHistoryTask> page, @Param("params") Map<String, Object> params);
+
+}

+ 13 - 0
src/main/java/com/ebei/device/asset/weixin/mapper/AssetTaskSignFileMapper.java

@@ -0,0 +1,13 @@
+package com.ebei.device.asset.weixin.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.ebei.device.asset.weixin.model.entity.AssetTaskSignFile;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Description: ${任务签名附件}
+ */
+@Repository
+public interface AssetTaskSignFileMapper extends BaseMapper<AssetTaskSignFile> {
+
+}

+ 13 - 0
src/main/java/com/ebei/device/asset/weixin/mapper/AssetTaskSignStateMapper.java

@@ -0,0 +1,13 @@
+package com.ebei.device.asset.weixin.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.ebei.device.asset.weixin.model.entity.AssetTaskSignState;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Description: ${任务审阅状态}
+ */
+@Repository
+public interface AssetTaskSignStateMapper extends BaseMapper<AssetTaskSignState> {
+
+}

+ 134 - 0
src/main/java/com/ebei/device/asset/weixin/model/entity/AssetTask.java

@@ -0,0 +1,134 @@
+package com.ebei.device.asset.weixin.model.entity;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableLogic;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: ${资产管理任务}
+ * @Date: 2020/8/12 15:45
+ */
+@ApiModel("资产管理任务")
+@TableName("tbg_asset_task")
+@Data
+public class AssetTask extends Model<AssetTask> {
+
+    public static final int TASKTYPE_UNDONE = 0;         //任务类型--未完成
+    public static final int TASKTYPE_FINISH = 1;         //任务类型--已完成
+    public static final int TASKTYPE_TIMEOUT = 2;         //任务类型--已过期
+    public static final int TASKTYPE_CLOSE = 3;         //任务类型--已关闭
+
+    public static final int TASK_ON_LINE = 0;         //在线状态
+    public static final int TASK_OFF_LINE = 1;         //离线状态
+
+
+    public static final int TASK_SHOW_DAYS = 31;         //任务类型--待派单
+
+
+
+
+    @ApiModelProperty(hidden=true)
+    @TableId(value = "task_id",type = IdType.AUTO)
+    private Long taskId;
+
+    @ApiModelProperty(value = "计划id")
+    @TableField(value = "plan_id")
+    private Long planId;
+
+    @ApiModelProperty(value = "资产id")
+    @TableField(value ="asset_id")
+    private Long assetId;
+
+    @ApiModelProperty(value = "任务生成时间")
+    @TableField(value = "create_date")
+    private Date createDate;
+
+    private Long creator;
+
+    @TableField(value = "operate_date")
+    private Date operateDate;
+
+    @ApiModelProperty(value = "最终操作人Id")
+    private Long operator;
+
+    @ApiModelProperty(value = "任务状态0:未完成;1:已完成;2:已过期 3:已关闭")
+    @TableField(value = "task_state")
+    private Integer taskState;
+
+    @ApiModelProperty(value = "任务开始时间")
+    @TableField(value = "start_date")
+    private Date startDate;
+
+    @ApiModelProperty(value = "任务结束时间")
+    @TableField(value = "end_date")
+    private Date endDate;
+
+    @ApiModelProperty(value = "检查地点,资产地址信息")
+    @TableField(value = "location")
+    private String location;
+
+    @ApiModelProperty(hidden = true)
+    @TableLogic
+    private Integer state;          //数据状态标识  1 是
+
+    @ApiModelProperty(value = "任务完成时添加的描述")
+    @TableField(value = "task_remake")
+    private String taskRemake;
+
+    @TableField("company_id")
+    @ApiModelProperty("公司Id")
+    private Long companyId;
+
+    @TableField("complete_time")
+    @ApiModelProperty("任务完成的提交时间")
+    private Date completeTime;
+
+    @TableField("quality_category")
+    @ApiModelProperty("资产管护:系统id")
+    private Long qualityCategory;
+
+    @TableField("submitter")
+    @ApiModelProperty("完成提交人id")
+    private Long submitter;
+
+    @TableField("check_time")
+    @ApiModelProperty("任务实际开始时间")
+    private Date checkTime;
+
+    @ApiModelProperty("合格率")
+    @TableField("rate")
+    private Double rate;
+
+    @ApiModelProperty("pdfID")
+    @TableField("task_pdf")
+    private String taskPdf;
+
+    @ApiModelProperty("版本号时间戳")
+    @TableField("version")
+    private Long version;
+
+    @ApiModelProperty("是否计入统计内容,0 不要统计  1 需要统计,暂时弃用,手动排班和请假未同步实现观察设置,如需实现需通过定时器")
+    @TableField("need_count")
+    private Integer needCount;
+
+    @ApiModelProperty("任务是否离线,0在线状态,1离线状态")
+    @TableField("off_line_state")
+    private Integer offLineState;
+
+    //=============================================以下为非数据库字段======================================
+
+
+    @Override
+    protected Serializable pkVal() {
+        return null;
+    }
+}

+ 56 - 0
src/main/java/com/ebei/device/asset/weixin/model/entity/AssetTaskSignFile.java

@@ -0,0 +1,56 @@
+package com.ebei.device.asset.weixin.model.entity;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: ${任务签名附件}
+ */
+@Data
+@TableName("tbg_asset_task_sign_file")
+@ApiModel("任务签名附件")
+public class AssetTaskSignFile extends Model<AssetTaskSignFile> {
+
+    @ApiModelProperty(hidden = true)
+    @TableId(value = "file_id",type = IdType.ID_WORKER_STR)
+    private String fileId;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    @ApiModelProperty(value = "文件路径")
+    @TableField(value = "file_path")
+    private String filePath;
+
+    @ApiModelProperty(value = "0:正常; 1:源文件未加密,疑似作弊; 2:源文件不存在,上传不成功")
+    @TableField(value = "file_status")
+    private Integer fileStatus;
+
+    @ApiModelProperty(value = "1检查组签字;2受检单位负责人签字")
+    @TableField(value = "file_type")
+    private Integer fileType;
+
+    @ApiModelProperty(value = "所属任务id")
+    @TableField(value = "task_id")
+    private Long taskId;
+
+    public static final int SIGN_CHECK = 1;        //1检查组签字
+    public static final int SIGN_TENANT = 2;       //2受检单位负责人签字
+
+
+
+    @Override
+    protected Serializable pkVal() {
+        return null;
+    }
+}

+ 53 - 0
src/main/java/com/ebei/device/asset/weixin/model/entity/AssetTaskSignState.java

@@ -0,0 +1,53 @@
+package com.ebei.device.asset.weixin.model.entity;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: ${任务租户签阅状态}
+ */
+@Data
+@TableName("tbg_asset_task_sign_state")
+@ApiModel("任务租户签阅状态")
+public class AssetTaskSignState extends Model<AssetTaskSignState> {
+
+    @ApiModelProperty(hidden = true)
+    @TableId(value = "id",type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "任务Id")
+    @TableField(value = "task_id")
+    private Long taskId;
+
+    @ApiModelProperty(value = "签阅状态")
+    @TableField(value = "sign_state")
+    private Integer signState;
+
+    @ApiModelProperty(value = "签阅时间")
+    @TableField(value = "sign_date")
+    private Date signDate;
+
+    @ApiModelProperty(value = "签阅租户")
+    @TableField(value = "sign_tenant")
+    private Long signTenant;
+
+
+
+    public static final int SIGN_STATE_NO = 1;        //未签阅
+    public static final int SIGN_STATE_YES = 2;        //已签阅
+
+
+    @Override
+    protected Serializable pkVal() {
+        return null;
+    }
+}

+ 34 - 0
src/main/java/com/ebei/device/asset/weixin/model/vo/AssetHistoryTask.java

@@ -0,0 +1,34 @@
+package com.ebei.device.asset.weixin.model.vo;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@ApiModel("隐患整改历史清单")
+@Data
+public class AssetHistoryTask extends Model<AssetHistoryTask> {
+
+
+    @ApiModelProperty("任务Id")
+    private Long taskId;
+
+    @ApiModelProperty("任务完成时间")
+    private String completeTime;
+
+    @ApiModelProperty("签阅状态")
+    private Integer signState;
+
+    @ApiModelProperty("签阅时间")
+    private String signDate;
+
+
+
+    @Override
+    protected Serializable pkVal() {
+        return null;
+    }
+}

+ 23 - 0
src/main/java/com/ebei/device/asset/weixin/service/AssetTaskService.java

@@ -0,0 +1,23 @@
+package com.ebei.device.asset.weixin.service;
+
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.service.IService;
+import com.ebei.device.asset.weixin.model.entity.AssetTask;
+import com.ebei.device.asset.weixin.model.entity.AssetTaskSignFile;
+import com.ebei.device.asset.weixin.model.vo.AssetHistoryTask;
+
+import java.util.Map;
+
+/**
+ * @Description: ${description}
+ * @Date: 2020/8/12 16:52
+ */
+public interface AssetTaskService extends IService<AssetTask> {
+
+    Page<AssetHistoryTask> selectAssetTaskList(Page<AssetHistoryTask> page, Map<String, Object> params);
+
+    //保存任务签名
+    void saveTaskSign(AssetTaskSignFile taskSignFile);
+
+}

+ 68 - 0
src/main/java/com/ebei/device/asset/weixin/service/impl/AssetTaskServiceImpl.java

@@ -0,0 +1,68 @@
+package com.ebei.device.asset.weixin.service.impl;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.ebei.device.asset.weixin.auth.AuthUtils;
+import com.ebei.device.asset.weixin.mapper.AssetTaskMapper;
+import com.ebei.device.asset.weixin.mapper.AssetTaskSignFileMapper;
+import com.ebei.device.asset.weixin.mapper.AssetTaskSignStateMapper;
+import com.ebei.device.asset.weixin.model.entity.AssetTask;
+import com.ebei.device.asset.weixin.model.entity.AssetTaskSignFile;
+import com.ebei.device.asset.weixin.model.entity.AssetTaskSignState;
+import com.ebei.device.asset.weixin.model.vo.AssetHistoryTask;
+import com.ebei.device.asset.weixin.service.AssetTaskService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: ${资产管理任务服务实现类}
+ * @Date: 2020/8/12 16:53
+ */
+@Service
+public class AssetTaskServiceImpl extends ServiceImpl<AssetTaskMapper, AssetTask> implements AssetTaskService {
+
+
+    @Autowired
+    AssetTaskSignFileMapper assetTaskSignFileMapper;
+    @Autowired
+    AssetTaskSignStateMapper assetTaskSignStateMapper;
+
+
+    @Override
+    public Page<AssetHistoryTask> selectAssetTaskList(Page<AssetHistoryTask> page, Map<String, Object> params) {
+
+        params.put("companyId", AuthUtils.getCompanyId());
+        List<AssetHistoryTask> list = this.baseMapper.selectAssetTaskList(page,params);
+        return page.setRecords(list);
+    }
+
+    @Override
+    public void saveTaskSign(AssetTaskSignFile taskSignFile) {
+
+        //将该任务已有的同类型签名删除
+        AssetTaskSignFile assetTaskSignFile = new AssetTaskSignFile();
+        assetTaskSignFile.setTaskId(taskSignFile.getTaskId());
+        assetTaskSignFile.setFileType(taskSignFile.getFileType());
+        AssetTaskSignFile file = assetTaskSignFileMapper.selectOne(assetTaskSignFile);
+        if(file != null){
+            assetTaskSignFileMapper.deleteById(file);
+        }
+
+        Date now = new Date();
+        //保存签名
+        taskSignFile.setCreateTime(now);
+        assetTaskSignFileMapper.insert(taskSignFile);
+
+        //保存审阅状态信息
+        AssetTaskSignState signState = new AssetTaskSignState();
+        signState.setTaskId(taskSignFile.getTaskId());
+        signState.setSignDate(now);
+        signState.setSignState(AssetTaskSignState.SIGN_STATE_YES);
+        signState.setSignTenant(AuthUtils.getUserId());
+        assetTaskSignStateMapper.insert(signState);
+    }
+}

+ 14 - 0
src/main/java/com/ebei/device/asset/weixin/service/impl/AssetTenantUserServiceImpl.java

@@ -134,6 +134,20 @@ public class AssetTenantUserServiceImpl extends ServiceImpl<AssetTenantUserMappe
 
         this.baseMapper.updateById(assetTenantUser);
 
+        //删除原有与资产的关联关系
+        if(assetTenantUser.getAssetList() != null && assetTenantUser.getAssetList().size()>0){
+            EntityWrapper<AssetUser> wrapper = new EntityWrapper<>();
+            wrapper.eq("user_id",assetTenantUser.getUserId());
+            assetUserMapper.delete(wrapper);
+            //保存新的关联关系
+            for(AssetUser assetUser : assetTenantUser.getAssetList()){
+                assetUser.setUserId(assetTenantUser.getUserId());
+                assetUserMapper.insert(assetUser);
+            }
+        }
+
+
+
     }
 
     @Override

+ 1 - 1
src/main/resources/mapper/AssetProposalMapper.xml

@@ -20,7 +20,7 @@
             p.proposal_state proposalState
         FROM tbg_asset_proposal p
         LEFT JOIN tbb_area ta ON ta.area_id = p.area_id AND ta.state = 1
-        LEFT JOIN user_tab ut ON ut.user_id = p.creator AND ut.state = 1
+        LEFT JOIN tbg_asset_tenant_user ut ON ut.user_id = p.creator AND ut.state = 1
         WHERE p.state = 1
         <if test="params.companyId != null and params.companyId != '' " >
             AND p.company_id = #{params.companyId}

+ 30 - 0
src/main/resources/mapper/AssetTaskMapper.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ebei.device.asset.weixin.mapper.AssetTaskMapper">
+
+    <select id="selectAssetTaskList" resultType="com.ebei.device.asset.weixin.model.vo.AssetHistoryTask">
+        SELECT
+            task.task_id taskId,
+            date_format(task.complete_time,'%Y-%m-%d') completeTime,
+            tss.sign_state signState,
+            date_format(tss.sign_date,'%m-%d %H:%i') signDate
+        FROM tbg_asset_task task
+        LEFT JOIN tbg_asset_plan plan ON plan.plan_id = task.plan_id
+        LEFT JOIN tbg_asset_task_sign_state tss ON tss.task_id = task.task_id
+        WHERE task.state = 1
+        AND task.task_state = 1
+        <if test="params.companyId != null and params.companyId != '' " >
+            AND plan.company_id = #{params.companyId}
+        </if>
+        <if test="params.assetId != null and params.assetId != '' " >
+            AND plan.asset_id = #{params.assetId}
+        </if>
+        <if test="params.tenantId != null and params.tenantId != '' " >
+            AND plan.tenant_id = #{params.tenantId}
+        </if>
+        ORDER BY task.complete_time DESC
+    </select>
+
+
+
+</mapper>