jiangping
2024-11-22 69fe3de2b3bea4bd6b01e2a7a10caaa8697a7a78
Merge remote-tracking branch 'origin/master'
已添加5个文件
已修改30个文件
1812 ■■■■ 文件已修改
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/system/model/Multifile.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceRecordCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolLineCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolPointCloudController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolSchemeCloudController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolTaskCloudController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolTaskRecordController.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwDeviceMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwPatrolSchemeMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwPatrolTaskRecordMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDevice.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwLinePoint.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolLine.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolPoint.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTask.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceRecordService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolLineService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolPointService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolSchemeService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolTaskRecordService.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolTaskService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceRecordServiceImpl.java 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolLineServiceImpl.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolPointServiceImpl.java 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java 316 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -48,13 +48,14 @@
    public static final String PLATFORM ="PLATFORM" ;
    public static final String POWER_MINUTE ="POWER_MINUTE" ;
    public static final String SPECIAL_COMPANY_ID ="SPECIAL_COMPANY_ID" ;
    public static final String YW_DEVICE ="YW_DEVICE" ;
    public static final String YW_PATROL ="YW_PATROL" ;
    public static final String RESERVATION_TOTAL_NUM ="RESERVATION_TOTAL_NUM" ;
    public static final String SIGN_IN_PLACE_LAT ="SIGN_IN_PLACE_LAT" ;
    public static final String SIGN_IN_PLACE_LNT ="SIGN_IN_PLACE_LNT" ;
    public static final String SIGN_IN_PLACE_DISTANCE ="SIGN_IN_PLACE_DISTANCE" ;
    public static final String SIGN_IN_QRCODE ="SIGN_IN_QRCODE" ;
    //被拜访人信息校验方式(0手机号单独校验 1手机号和姓名组合校验)
    public static final String BEVISITED_USER_VALID = "BEVISITED_USER_VALID";
@@ -221,7 +222,13 @@
       int sgscxh = 4;
    }
    public interface patrolTaskStatus{
        int waitStart = 0;
        int working= 1;
        int timeout = 2;
        int finish =3;
        int cancel =4;
    }
    public static  Date  getBirthdyByCardNo(String idCard){
    if(idCard ==null || idCard.length()<14){
        return null;
@@ -452,6 +459,7 @@
        public static final String GOODSORDER_KEY = "ordercode_";
        public static final String ACTIVITY_SIGN_KEY = "actcode_";
        public static final String AFTERSALE_KEY = "salecode_";
        public static final String PATROL_SCHEME_CODE_KEY = "patrolSchemeCode";
    }
@@ -1214,6 +1222,9 @@
        HIDDEN_DANGER_DEAL_AFTER(2, "隐患随手拍处理后 ", "隐患随手拍处理后 "),
        YW_WORKORDER_PROBLEM(3, "运维工单问题附件 ", "运维工单问题附件 "),
        YW_WORKORDER_DEAL(4, "运维工单处理附件 ", "运维工单处理附件 "),
        FN_DEVICE_FILE(5, "阜宁服务平台设备类型图片 ", "阜宁服务平台设备类型图片 "),
        FN_DEVICE_RECORD_FILE(6, "阜宁服务平台运维记录图片 ", "阜宁服务平台运维记录图片 "),
        FN_PATROL_POINT_FILE(7, "巡检点附件 ", "巡检点附件 "),
        ;
        // æˆå‘˜å˜é‡
        private String name;
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -1292,6 +1292,25 @@
        return now.getTime();
    }
    /**
     * èŽ·å–X天后的日期
     * @param date
     * @param days
     * @return
     */
    public static Date getXDayAfterDate(Date date, int days) {
        if(date ==null){
            date = new Date();
        }
        Calendar now = Calendar.getInstance();
        now.setTime(date);
        now.set(Calendar.DATE, now.get(Calendar.DATE) + days);
        return now.getTime();
    }
    /**
     * å¾—到两个日期之间相差的天数
     *
server/system_service/src/main/java/com/doumee/dao/system/model/Multifile.java
@@ -63,8 +63,8 @@
    @ExcelColumn(name="类型0图片 1视频 2其他")
    private Integer type;
    @ApiModelProperty(value = "关联对象类型 0隐患现场情况 1隐患处理前情况 2隐患处理后情况 3隐患退回说明 4会议室文件", example = "1")
    @ExcelColumn(name="关联对象类型 0隐患现场情况 1隐患处理前情况 2隐患处理后情况 3隐患退回说明 4会议室文件")
    @ApiModelProperty(value = "关联对象类型 0隐患现场情况 1隐患处理前情况 2隐患处理后情况 3隐患退回说明 4会议室文件 5阜宁设备图片 6阜宁设备运维图片", example = "1")
    @ExcelColumn(name="关联对象类型 0隐患现场情况 1隐患处理前情况 2隐患处理后情况 3隐患退回说明 4会议室文件  5阜宁设备图片 6阜宁设备运维图片")
    private Integer objType;
    @ApiModelProperty(value = "文件地址")
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceCloudController.java
@@ -90,6 +90,6 @@
    @GetMapping("/{id}")
    @CloudRequiredPermission("business:ywdevice:query")
    public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(ywDeviceService.findById(id));
        return ApiResponse.success(ywDeviceService.getDetail(id));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceRecordCloudController.java
@@ -90,6 +90,6 @@
    @GetMapping("/{id}")
    @CloudRequiredPermission("business:ywdevicerecord:query")
    public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(ywDeviceRecordService.findById(id));
        return ApiResponse.success(ywDeviceRecordService.getDetail(id));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolLineCloudController.java
@@ -90,6 +90,6 @@
    @GetMapping("/{id}")
    @CloudRequiredPermission("business:ywpatrolline:query")
    public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(ywPatrolLineService.findById(id));
        return ApiResponse.success(ywPatrolLineService.getDetail(id));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolPointCloudController.java
@@ -78,6 +78,13 @@
        return ApiResponse.success(ywPatrolPointService.findPage(pageWrap));
    }
    @ApiOperation("列表查询")
    @PostMapping("/list")
    @CloudRequiredPermission("business:ywpatrolpoint:query")
    public ApiResponse<List<YwPatrolPoint>> list (@RequestBody YwPatrolPoint ywPatrolPoint,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(ywPatrolPointService.findList(ywPatrolPoint));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @CloudRequiredPermission("business:ywpatrolpoint:exportExcel")
@@ -90,6 +97,6 @@
    @GetMapping("/{id}")
    @CloudRequiredPermission("business:ywpatrolpoint:query")
    public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(ywPatrolPointService.findById(id));
        return ApiResponse.success(ywPatrolPointService.getDetail(id));
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolSchemeCloudController.java
@@ -70,6 +70,15 @@
        return ApiResponse.success(null);
    }
    @ApiOperation("启用禁用")
    @PostMapping("/updateStatus")
    @CloudRequiredPermission("business:ywpatrolscheme:update")
    public ApiResponse updateStatus(@RequestBody YwPatrolScheme ywPatrolScheme,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        ywPatrolScheme.setLoginUserInfo(this.getLoginUser(token));
        ywPatrolSchemeService.updateStatus(ywPatrolScheme);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @CloudRequiredPermission("business:ywpatrolscheme:query")
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolTaskCloudController.java
@@ -83,6 +83,17 @@
    @CloudRequiredPermission("business:ywpatroltask:exportExcel")
    public void exportExcel (@RequestBody PageWrap<YwPatrolTask> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token));
        List<YwPatrolTask> ywPatrolTaskList = ywPatrolTaskService.findPage(pageWrap).getRecords();
        for (YwPatrolTask ywPatrolTask:ywPatrolTaskList) {
            if((Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.ZERO) || Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.ONE))
            && ywPatrolTask.getEndDate().getTime() < System.currentTimeMillis()
            ){
                ywPatrolTask.setStatus(Constants.TWO);
            }
        }
        ExcelExporter.build(YwPatrolTask.class).export(ywPatrolTaskService.findPage(pageWrap).getRecords(), "运维巡检任务信息表", response);
    }
@@ -92,4 +103,13 @@
    public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(ywPatrolTaskService.findById(id));
    }
    @ApiOperation("任务取消")
    @GetMapping("/taskCancel")
    @CloudRequiredPermission("business:ywpatroltask:query")
    public ApiResponse taskCancel(@RequestParam Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        ywPatrolTaskService.taskCancel(id,this.getLoginUser(token));
        return ApiResponse.success("操作成功");
    }
}
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwPatrolTaskRecordController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,92 @@
package com.doumee.cloud.admin;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.CloudRequiredPermission;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.YwPatrolTaskRecord;
import com.doumee.service.business.YwPatrolTaskRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/21 18:11
 */
@Api(tags = "运维巡检任务 - å·¡æ£€ç‚¹ä¿¡æ¯è¡¨")
@RestController
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/ywPatrolTaskRecord")
public class YwPatrolTaskRecordController extends BaseController {
    @Autowired
    private YwPatrolTaskRecordService ywPatrolTaskRecordService;
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
    @CloudRequiredPermission("business:ywpatroltaskrecord:create")
    public ApiResponse create(@RequestBody YwPatrolTaskRecord ywPatrolTaskRecord) {
        return ApiResponse.success(ywPatrolTaskRecordService.create(ywPatrolTaskRecord));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @CloudRequiredPermission("business:ywpatroltaskrecord:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        ywPatrolTaskRecordService.deleteById(id);
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @CloudRequiredPermission("business:ywpatroltaskrecord:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        ywPatrolTaskRecordService.deleteByIdInBatch(idList);
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @CloudRequiredPermission("business:ywpatroltaskrecord:update")
    public ApiResponse updateById(@RequestBody YwPatrolTaskRecord ywPatrolTaskRecord) {
        ywPatrolTaskRecordService.updateById(ywPatrolTaskRecord);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @CloudRequiredPermission("business:ywpatroltaskrecord:query")
    public ApiResponse<PageData<YwPatrolTaskRecord>> findPage (@RequestBody PageWrap<YwPatrolTaskRecord> pageWrap) {
        return ApiResponse.success(ywPatrolTaskRecordService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @CloudRequiredPermission("business:ywpatroltaskrecord:exportExcel")
    public void exportExcel (@RequestBody PageWrap<YwPatrolTaskRecord> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(YwPatrolTaskRecord.class).export(ywPatrolTaskRecordService.findPage(pageWrap).getRecords(), "运维巡检任务 - å·¡æ£€ç‚¹ä¿¡æ¯è¡¨", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @CloudRequiredPermission("business:ywpatroltaskrecord:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(ywPatrolTaskRecordService.findById(id));
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwDeviceMapper.java
@@ -2,6 +2,7 @@
import com.github.yulichang.base.MPJBaseMapper;
import com.doumee.dao.business.model.YwDevice;
import com.github.yulichang.base.mapper.MPJJoinMapper;
/**
 * @author æ±Ÿè¹„蹄
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwPatrolSchemeMapper.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwPatrolScheme;
import com.github.yulichang.base.MPJBaseMapper;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwPatrolTaskRecordMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwPatrolTaskRecord;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/21 18:11
 */
public interface YwPatrolTaskRecordMapper extends MPJBaseMapper<YwPatrolTaskRecord> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDevice.java
@@ -1,7 +1,9 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import com.doumee.dao.system.model.Multifile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -93,4 +95,15 @@
    @ExcelColumn(name="所在位置")
    private String addr;
    @ApiModelProperty(value = "分类名称")
    @TableField(exist = false)
    private String categoryName;
    @ApiModelProperty(value = "管理员名称")
    @TableField(exist = false)
    private String realName;
    @ApiModelProperty(value = "附件信息")
    @TableField(exist = false)
    private Multifile multifile;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java
@@ -1,7 +1,9 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import com.doumee.dao.system.model.Multifile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -10,6 +12,7 @@
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import java.util.List;
/**
 * è¿ç»´è®¾å¤‡è¿ç»´è®°å½•表
@@ -23,63 +26,87 @@
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @ExcelColumn(name="创建时间",index = 5, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "状态 0正常 1损坏 2报废", example = "1")
    @ExcelColumn(name="状态 0正常 1损坏 2报废")
    @ExcelColumn(name="设备状态",index = 3, valueMapping = "0=正常;1=损坏;2=报废;")
    private Integer status;
    @ApiModelProperty(value = "设备型号", example = "1")
    @ExcelColumn(name="设备型号")
    private Integer modelNo;
    @ApiModelProperty(value = "设备类编码(管理yw_device)", example = "1")
    @ExcelColumn(name="设备类编码(管理yw_device)")
    private Integer deviceId;
    @ApiModelProperty(value = "运维人员编码编码(关联system_user)", example = "1")
    @ExcelColumn(name="运维人员编码编码(关联system_user)")
    private Integer userId;
    @ApiModelProperty(value = "供应商")
    @ExcelColumn(name="供应商")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date company;
    @ApiModelProperty(value = "情况说明")
    @ExcelColumn(name="情况说明")
    @ExcelColumn(name="运维备注",index = 4)
    private String content;
    @ApiModelProperty(value = "运维时间")
    @ExcelColumn(name="运维时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dealDate;
    @ApiModelProperty(value = "设备名称")
    @ExcelColumn(name="设备名称",index = 2)
    @TableField(exist = false)
    private String deviceName;
    @ApiModelProperty(value = "设备编号")
    @ExcelColumn(name="设备编号",index = 1)
    @TableField(exist = false)
    private String deviceCode;
    @ApiModelProperty(value = "运维人名称")
    @ExcelColumn(name="运维人",index = 0)
    @TableField(exist = false)
    private String realName;
    @ApiModelProperty(value = "运维人组织名称")
    @TableField(exist = false)
    private String companyName;
    @ApiModelProperty(value = "运维人手机号")
    @TableField(exist = false)
    private String mobile;
    @ApiModelProperty(value = "开始日期 yyyy-MM-dd")
    @TableField(exist = false)
    private Date startDate;
    @ApiModelProperty(value = "结束日期 yyyy-MM-dd")
    @TableField(exist = false)
    private Date endDate;
    @ApiModelProperty(value = "附件信息")
    @TableField(exist = false)
    private List<Multifile> multifileList;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwLinePoint.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
@@ -68,4 +69,9 @@
    @ExcelColumn(name="是否扫码打卡 0不需要 1需要")
    private Integer needScancode;
    @ApiModelProperty(value = "巡检点名称")
    @TableField(exist = false)
    private String pointName;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolLine.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
@@ -10,6 +11,7 @@
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import java.util.List;
/**
 * è¿ç»´å·¡æ£€è·¯çº¿ä¿¡æ¯è¡¨
@@ -68,4 +70,12 @@
    @ExcelColumn(name="图标")
    private String imgurl;
    @ApiModelProperty(value = "巡检点数量")
    @TableField(exist = false)
    private Integer lineAmount;
    @ApiModelProperty(value = "巡检点")
    @TableField(exist = false)
    private List<YwLinePoint> linePointList;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolPoint.java
@@ -1,7 +1,9 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import com.doumee.dao.system.model.Multifile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -10,6 +12,7 @@
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import java.util.List;
/**
 * è¿ç»´å·¡æ£€ç‚¹ä¿¡æ¯è¡¨
@@ -76,4 +79,39 @@
    @ExcelColumn(name="地址")
    private String addr;
    @ApiModelProperty(value = "编码")
    @ExcelColumn(name="编码")
    private String code;
    @ApiModelProperty(value = "经度")
    @ExcelColumn(name="经度")
    private String longitude;
    @ApiModelProperty(value = "纬度")
    @ExcelColumn(name="纬度")
    private String latitude;
    @ApiModelProperty(value = "内容")
    @ExcelColumn(name="内容")
    private String content;
    @ApiModelProperty(value = "巡检设备(关联 yw_device)", example = "1")
    @ExcelColumn(name="巡检设备(关联 yw_device)")
    private Integer deviceId;
    @ApiModelProperty(value = "区域名称")
    @TableField(exist = false)
    private String areaName;
    @ApiModelProperty(value = "设备名称")
    @TableField(exist = false)
    private String deviceName;
    @ApiModelProperty(value = "附件信息")
    @TableField(exist = false)
    private Multifile multifile;
    @ApiModelProperty(value = "过滤数据")
    @TableField(exist = false)
    private List<Integer> idLists;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
@@ -23,96 +24,103 @@
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "标题")
    @ExcelColumn(name="标题")
    @ExcelColumn(name="计划名称",index = 0)
    private String title;
    @ApiModelProperty(value = "计划编码")
    @ExcelColumn(name="计划编号",index = 1)
    private String code;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "状态 0启用 1禁用", example = "1")
    @ExcelColumn(name="状态 0启用 1禁用")
    @ExcelColumn(name="状态",index = 9,width = 6,valueMapping = "0=启用;1=停用;")
    private Integer status;
    @ApiModelProperty(value = "排序码", example = "1")
    @ExcelColumn(name="排序码")
    private Integer sortnum;
    @ApiModelProperty(value = "巡检点编码(关联yw_patrol_line)", example = "1")
    @ExcelColumn(name="巡检点编码(关联yw_patrol_line)")
    private Integer lineId;
    @ApiModelProperty(value = "巡检负责人编码集合,多个使用英文逗号隔开")
    @ExcelColumn(name="巡检负责人编码集合,多个使用英文逗号隔开")
    private String userIds;
    @ApiModelProperty(value = "处理人编码(关联system_user)", example = "1")
    @ExcelColumn(name="处理人编码(关联system_user)")
    private Integer dealUserId;
    @ApiModelProperty(value = "处理时间")
    @ExcelColumn(name="处理时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dealDate;
    @ApiModelProperty(value = "处理备注")
    @ExcelColumn(name="处理备注")
    private String dealInfo;
    @ApiModelProperty(value = "循环周期  0每天 1每周 2每天", example = "1")
    @ExcelColumn(name="循环周期  0每天 1每周 2每天")
    private Integer circleType;
    @ApiModelProperty(value = "循环重复规则 1-31,多个英文逗号隔开")
    @ExcelColumn(name="循环重复规则 1-31,多个英文逗号隔开")
    private String circleDays;
    @ApiModelProperty(value = "开始日期")
    @ExcelColumn(name="开始日期")
    @ExcelColumn(name="开始日期",index = 3,width = 6,dateFormat ="yyyy-MM-dd" )
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startDate;
    @ApiModelProperty(value = "结束日期")
    @ExcelColumn(name="结束日期")
    @ExcelColumn(name="结束日期",index = 4,width = 6,dateFormat ="yyyy-MM-dd" )
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;
    @ApiModelProperty(value = "开始时间点")
    @ExcelColumn(name="开始时间点")
    @ExcelColumn(name="开始时间",index = 5,width = 6)
    private String startTime;
    @ApiModelProperty(value = "结束时间点")
    @ExcelColumn(name="结束时间点")
    @ExcelColumn(name="结束时间",index = 6,width = 6)
    private String endTime;
    @ApiModelProperty(value = "执行进度 0待开始 1进行中 2超期 3已完成", example = "1")
    @ExcelColumn(name="执行进度 0待开始 1进行中 2超期 3已完成")
    private Integer processStatus;
    @ApiModelProperty(value = "创建人名称")
    @TableField(exist = false)
    private String createUserName;
    @ApiModelProperty(value = "负责人名称")
    @ExcelColumn(name="负责人",index = 2,width = 6)
    @TableField(exist = false)
    private String userName;
    @ApiModelProperty(value = "执行结果:0=待开始;1=进行中;2=已结束")
    @ExcelColumn(name="执行结果",index = 7,width = 6,valueMapping = "0=待开始;1=进行中;2=已结束")
    @TableField(exist = false)
    private Integer schemeStatus;
    @ApiModelProperty(value = "超期任务数")
    @TableField(exist = false)
    @ExcelColumn(name="超期任务数",index = 8,width = 6)
    private Integer timeOutTaskNum;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTask.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
@@ -23,84 +24,92 @@
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "标题")
    @ExcelColumn(name="标题")
    private String title;
    @ApiModelProperty(value = "任务编码")
    @ExcelColumn(name="任务编号",index = 2,width = 6)
    private String code;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "状态 0待开始 1进行中 2已超期 3已完成 4已取消", example = "1")
    @ExcelColumn(name="状态 0待开始 1进行中 2已超期 3已完成 4已取消")
    @ExcelColumn(name="执行结果",index = 7,width = 6,valueMapping = "0=待开始;1=进行中;2=已超期;3=已完成;")
    private Integer status;
    @ApiModelProperty(value = "排序码", example = "1")
    @ExcelColumn(name="排序码")
    private Integer sortnum;
    @ApiModelProperty(value = "巡检计划编码(关联yw_patrol_scheme)", example = "1")
    @ExcelColumn(name="巡检计划编码(关联yw_patrol_scheme)")
    private Integer schemeId;
    @ApiModelProperty(value = "巡检点编码(关联yw_patrol_point)", example = "1")
    @ExcelColumn(name="巡检点编码(关联yw_patrol_point)")
    private Integer pointId;
    @ApiModelProperty(value = "处理人编码(关联system_user)", example = "1")
    @ExcelColumn(name="处理人编码(关联system_user)")
    private Integer dealUserId;
    @ApiModelProperty(value = "处理时间")
    @ExcelColumn(name="处理时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelColumn(name="实际完成时间",index = 5,width = 10,dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dealDate;
    @ApiModelProperty(value = "处理备注")
    @ExcelColumn(name="处理备注")
    private String dealInfo;
    @ApiModelProperty(value = "循环周期  0每天 1每周 2每天", example = "1")
    @ExcelColumn(name="循环周期  0每天 1每周 2每天")
    private Integer circleType;
    @ApiModelProperty(value = "开始日期")
    @ExcelColumn(name="开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelColumn(name="开始日期",index = 3,width = 10,dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;
    @ApiModelProperty(value = "结束日期")
    @ExcelColumn(name="结束日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelColumn(name="结束日期",index = 4,width = 10,dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;
    @ApiModelProperty(value = "巡检结果  0正常 1异常", example = "1")
    @ExcelColumn(name="巡检结果  0正常 1异常")
    private Integer dealStatus;
    @ApiModelProperty(value = "计划标题")
    @ExcelColumn(name="计划名称",index = 0,width = 6)
    @TableField(exist = false)
    private String planTitle;
    @ApiModelProperty(value = "执行人")
    @ExcelColumn(name="执行人",index = 6,width = 6)
    @TableField(exist = false)
    private String userName;
    @ApiModelProperty(value = "计划编号")
    @ExcelColumn(name="计划编号",index = 1,width = 6)
    @TableField(exist = false)
    private String planCode;
    @ApiModelProperty(value = "序号" , hidden = true)
    @TableField(exist = false)
    private Integer codeSn;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/**
 * è¿ç»´å·¡æ£€ä»»åŠ¡ - å·¡æ£€ç‚¹ä¿¡æ¯è¡¨
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/21 18:11
 */
@Data
@ApiModel("运维巡检任务 - å·¡æ£€ç‚¹ä¿¡æ¯è¡¨")
@TableName("`yw_patrol_task_record`")
public class YwPatrolTaskRecord {
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键", example = "1")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码", example = "1")
    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "巡检计划编码(关联yw_patrol_scheme)", example = "1")
    @ExcelColumn(name="巡检计划编码(关联yw_patrol_scheme)")
    private Integer schemeId;
    @ApiModelProperty(value = "巡检任务编码(关联yw_patrol_task)", example = "1")
    @ExcelColumn(name="巡检任务编码(关联yw_patrol_task)")
    private Integer taskId;
    @ApiModelProperty(value = "巡检点编码(关联yw_patrol_point)", example = "1")
    @ExcelColumn(name="巡检点编码(关联yw_patrol_point)")
    private Integer pointId;
    @ApiModelProperty(value = "排序码", example = "1")
    @ExcelColumn(name="排序码")
    private Integer sortnum;
    @ApiModelProperty(value = "处理人编码(关联system_user)", example = "1")
    @ExcelColumn(name="处理人编码(关联system_user)")
    private Integer dealUserId;
    @ApiModelProperty(value = "处理时间")
    @ExcelColumn(name="处理时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dealDate;
    @ApiModelProperty(value = "是否巡检  0=待开始;1=已巡检;", example = "1")
    @ExcelColumn(name="是否巡检  0=待开始;1=已巡检")
    private Integer status;
    @ApiModelProperty(value = "巡检结果  0=正常;1=异常", example = "1")
    @ExcelColumn(name="巡检结果  0=正常;1=异常")
    private Integer dealStatus;
    @ApiModelProperty(value = "处理备注")
    @ExcelColumn(name="处理备注")
    private String dealInfo;
    @ApiModelProperty(value = "巡检点名称")
    @TableField(exist = false)
    private String pointName;
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceRecordService.java
@@ -95,4 +95,6 @@
     * @return long
     */
    long count(YwDeviceRecord ywDeviceRecord);
    YwDeviceRecord getDetail(Integer id);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceService.java
@@ -95,4 +95,6 @@
     * @return long
     */
    long count(YwDevice ywDevice);
    YwDevice getDetail(Integer id);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolLineService.java
@@ -95,4 +95,6 @@
     * @return long
     */
    long count(YwPatrolLine ywPatrolLine);
    YwPatrolLine getDetail(Integer id);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolPointService.java
@@ -95,4 +95,6 @@
     * @return long
     */
    long count(YwPatrolPoint ywPatrolPoint);
    YwPatrolPoint getDetail(Integer id);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolSchemeService.java
@@ -95,4 +95,10 @@
     * @return long
     */
    long count(YwPatrolScheme ywPatrolScheme);
    /**
     * ç¦å¯ç”¨
     * @param ywPatrolScheme
     */
    void updateStatus(YwPatrolScheme ywPatrolScheme);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolTaskRecordService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.doumee.service.business;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.YwPatrolTaskRecord;
import java.util.List;
/**
 * è¿ç»´å·¡æ£€ä»»åŠ¡ - å·¡æ£€ç‚¹ä¿¡æ¯è¡¨Service定义
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/21 18:11
 */
public interface YwPatrolTaskRecordService {
    /**
     * åˆ›å»º
     *
     * @param ywPatrolTaskRecord å®žä½“对象
     * @return Integer
     */
    Integer create(YwPatrolTaskRecord ywPatrolTaskRecord);
    /**
     * ä¸»é”®åˆ é™¤
     *
     * @param id ä¸»é”®
     */
    void deleteById(Integer id);
    /**
     * åˆ é™¤
     *
     * @param ywPatrolTaskRecord å®žä½“对象
     */
    void delete(YwPatrolTaskRecord ywPatrolTaskRecord);
    /**
     * æ‰¹é‡ä¸»é”®åˆ é™¤
     *
     * @param ids ä¸»é”®é›†
     */
    void deleteByIdInBatch(List<Integer> ids);
    /**
     * ä¸»é”®æ›´æ–°
     *
     * @param ywPatrolTaskRecord å®žä½“对象
     */
    void updateById(YwPatrolTaskRecord ywPatrolTaskRecord);
    /**
     * æ‰¹é‡ä¸»é”®æ›´æ–°
     *
     * @param ywPatrolTaskRecords å®žä½“集
     */
    void updateByIdInBatch(List<YwPatrolTaskRecord> ywPatrolTaskRecords);
    /**
     * ä¸»é”®æŸ¥è¯¢
     *
     * @param id ä¸»é”®
     * @return YwPatrolTaskRecord
     */
    YwPatrolTaskRecord findById(Integer id);
    /**
     * æ¡ä»¶æŸ¥è¯¢å•条记录
     *
     * @param ywPatrolTaskRecord å®žä½“对象
     * @return YwPatrolTaskRecord
     */
    YwPatrolTaskRecord findOne(YwPatrolTaskRecord ywPatrolTaskRecord);
    /**
     * æ¡ä»¶æŸ¥è¯¢
     *
     * @param ywPatrolTaskRecord å®žä½“对象
     * @return List<YwPatrolTaskRecord>
     */
    List<YwPatrolTaskRecord> findList(YwPatrolTaskRecord ywPatrolTaskRecord);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param pageWrap åˆ†é¡µå¯¹è±¡
     * @return PageData<YwPatrolTaskRecord>
     */
    PageData<YwPatrolTaskRecord> findPage(PageWrap<YwPatrolTaskRecord> pageWrap);
    /**
     * æ¡ä»¶ç»Ÿè®¡
     *
     * @param ywPatrolTaskRecord å®žä½“对象
     * @return long
     */
    long count(YwPatrolTaskRecord ywPatrolTaskRecord);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolTaskService.java
@@ -95,4 +95,6 @@
     * @return long
     */
    long count(YwPatrolTask ywPatrolTask);
    void taskCancel(Integer id, LoginUserInfo loginUserInfo);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceRecordServiceImpl.java
@@ -1,21 +1,35 @@
package com.doumee.service.business.impl;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.YwDeviceRecordMapper;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.YwCustomer;
import com.doumee.dao.business.model.YwDevice;
import com.doumee.dao.business.model.YwDeviceRecord;
import com.doumee.dao.system.MultifileMapper;
import com.doumee.dao.system.model.Multifile;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.YwDeviceRecordService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * è¿ç»´è®¾å¤‡è¿ç»´è®°å½•表Service实现
@@ -27,10 +41,38 @@
    @Autowired
    private YwDeviceRecordMapper ywDeviceRecordMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private MultifileMapper multifileMapper;
    @Override
    public Integer create(YwDeviceRecord ywDeviceRecord) {
        if(Objects.isNull(ywDeviceRecord)
        || Objects.isNull(ywDeviceRecord.getDeviceId())
        || Objects.isNull(ywDeviceRecord.getStatus())
        || StringUtils.isBlank(ywDeviceRecord.getContent())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = ywDeviceRecord.getLoginUserInfo();
        ywDeviceRecord.setCreateDate(new Date());
        ywDeviceRecord.setCreator(loginUserInfo.getId());
        ywDeviceRecord.setIsdeleted(Constants.ZERO);
        ywDeviceRecordMapper.insert(ywDeviceRecord);
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywDeviceRecord.getMultifileList())){
            List<Multifile> multifiles = ywDeviceRecord.getMultifileList();
            for (Multifile multifile:multifiles) {
                multifile.setCreator(loginUserInfo.getId());
                multifile.setCreateDate(new Date());
                multifile.setIsdeleted(Constants.ZERO);
                multifile.setObjType(Constants.MultiFile.FN_DEVICE_RECORD_FILE.getKey());
                multifile.setObjId(ywDeviceRecord.getId());
            }
            multifileMapper.insert(multifiles);
        }
        return ywDeviceRecord.getId();
    }
@@ -73,6 +115,36 @@
        return ywDeviceRecordMapper.selectById(id);
    }
    @Override
    public YwDeviceRecord getDetail(Integer id) {
        YwDeviceRecord ywDeviceRecord =  ywDeviceRecordMapper.selectJoinOne(YwDeviceRecord.class,
                new MPJLambdaWrapper<YwDeviceRecord>()
                        .selectAll(YwDeviceRecord.class)
                        .selectAs(SystemUser::getRealname,YwDeviceRecord::getRealName)
                        .selectAs(SystemUser::getMobile,YwDeviceRecord::getMobile)
                        .selectAs(Company::getName,YwDeviceRecord::getCompanyName)
                        .selectAs(YwDevice::getName,YwDeviceRecord::getDeviceName)
                        .leftJoin(SystemUser.class,SystemUser::getId,YwDeviceRecord::getUserId)
                        .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
                        .leftJoin(YwDevice.class,YwDevice::getId,YwDeviceRecord::getDeviceId)
                        .eq(YwDeviceRecord::getId,id)
                        .last(" limit  1 ")
        );
        List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
                .eq(Multifile::getObjId,id).eq(Multifile::getObjType,Constants.MultiFile.FN_DEVICE_RECORD_FILE));
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifiles)) {
            String path = systemDictDataBiz.queryByCode(Constants.FTP, Constants.FTP_RESOURCE_PATH).getCode()
                    + systemDictDataBiz.queryByCode(Constants.FTP, Constants.YW_DEVICE).getCode();
            for (Multifile multifile : multifiles) {
                multifile.setFileurlFull(path + multifile.getFileurl());
            }
            ywDeviceRecord.setMultifileList(multifiles);
        }
        return ywDeviceRecord;
    }
    @Override
    public YwDeviceRecord findOne(YwDeviceRecord ywDeviceRecord) {
        QueryWrapper<YwDeviceRecord> wrapper = new QueryWrapper<>(ywDeviceRecord);
@@ -88,62 +160,26 @@
    @Override
    public PageData<YwDeviceRecord> findPage(PageWrap<YwDeviceRecord> pageWrap) {
        IPage<YwDeviceRecord> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwDeviceRecord> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwDeviceRecord::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(YwDeviceRecord::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(YwDeviceRecord::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwDeviceRecord::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(YwDeviceRecord::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(YwDeviceRecord::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(YwDeviceRecord::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(YwDeviceRecord::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(YwDeviceRecord::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getModelNo() != null) {
            queryWrapper.lambda().eq(YwDeviceRecord::getModelNo, pageWrap.getModel().getModelNo());
        }
        if (pageWrap.getModel().getDeviceId() != null) {
            queryWrapper.lambda().eq(YwDeviceRecord::getDeviceId, pageWrap.getModel().getDeviceId());
        }
        if (pageWrap.getModel().getUserId() != null) {
            queryWrapper.lambda().eq(YwDeviceRecord::getUserId, pageWrap.getModel().getUserId());
        }
        if (pageWrap.getModel().getCompany() != null) {
            queryWrapper.lambda().ge(YwDeviceRecord::getCompany, Utils.Date.getStart(pageWrap.getModel().getCompany()));
            queryWrapper.lambda().le(YwDeviceRecord::getCompany, Utils.Date.getEnd(pageWrap.getModel().getCompany()));
        }
        if (pageWrap.getModel().getContent() != null) {
            queryWrapper.lambda().eq(YwDeviceRecord::getContent, pageWrap.getModel().getContent());
        }
        if (pageWrap.getModel().getDealDate() != null) {
            queryWrapper.lambda().ge(YwDeviceRecord::getDealDate, Utils.Date.getStart(pageWrap.getModel().getDealDate()));
            queryWrapper.lambda().le(YwDeviceRecord::getDealDate, Utils.Date.getEnd(pageWrap.getModel().getDealDate()));
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(ywDeviceRecordMapper.selectPage(page, queryWrapper));
        YwDeviceRecord model = pageWrap.getModel();
        IPage iPage = ywDeviceRecordMapper.selectJoinPage(page,YwDeviceRecord.class,
                new MPJLambdaWrapper<YwDeviceRecord>()
                        .selectAll(YwDeviceRecord.class)
                        .selectAs(SystemUser::getRealname,YwDeviceRecord::getRealName)
                        .selectAs(SystemUser::getMobile,YwDeviceRecord::getMobile)
                        .selectAs(Company::getName,YwDeviceRecord::getCompanyName)
                        .selectAs(YwDevice::getName,YwDeviceRecord::getDeviceName)
                        .selectAs(YwDevice::getCode,YwDeviceRecord::getDeviceCode)
                        .leftJoin(SystemUser.class,SystemUser::getId,YwDeviceRecord::getUserId)
                        .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
                        .leftJoin(YwDevice.class,YwDevice::getId,YwDeviceRecord::getDeviceId)
                        .eq(YwDeviceRecord::getIsdeleted,Constants.ZERO)
                        .and(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getDeviceName()),i->i.like(YwDevice::getName,model.getDeviceName()).or().like(YwDevice::getCode,model.getDeviceName()))
                        .ge(Objects.nonNull(model.getStartDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()))
                        .le(Objects.nonNull(model.getEndDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()))
                        .eq(YwDeviceRecord::getIsdeleted,Constants.ZERO)
        );
        return PageData.from(iPage);
    }
    @Override
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
@@ -1,21 +1,35 @@
package com.doumee.service.business.impl;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.YwDeviceMapper;
import com.doumee.dao.business.model.Category;
import com.doumee.dao.business.model.YwDevice;
import com.doumee.dao.system.MultifileMapper;
import com.doumee.dao.system.model.Multifile;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.YwDeviceService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.java.Log;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * è¿ç»´è®¾å¤‡ä¿¡æ¯è¡¨Service实现
@@ -28,15 +42,61 @@
    @Autowired
    private YwDeviceMapper ywDeviceMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private MultifileMapper multifileMapper;
    @Autowired
    private RedisTemplate<String,Object> redisTemplate;
    @Override
    public Integer create(YwDevice ywDevice) {
        if(Objects.isNull(ywDevice)
            || StringUtils.isBlank(ywDevice.getName())
            || StringUtils.isBlank(ywDevice.getCode())
            || Objects.isNull(ywDevice.getStatus())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = ywDevice.getLoginUserInfo();
        if(ywDeviceMapper.selectCount(new QueryWrapper<YwDevice>().lambda().eq(YwDevice::getIsdeleted,Constants.ZERO).eq(YwDevice::getCode,ywDevice.getCode()))>Constants.ZERO){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"设备编号重复!");
        }
//        if(StringUtils.isBlank(ywDevice.getCode())){
//            String code = this.getMaxAutoMaticDeviceCode();
//            while (ywDeviceMapper.selectCount(new QueryWrapper<YwDevice>().lambda().eq(YwDevice::getIsdeleted,Constants.ZERO).eq(YwDevice::getCode,code))>Constants.ZERO){
//                code = this.getMaxAutoMaticDeviceCode();
//            }
//             ywDevice.setCode(code);
//        }else{
//
//        }
        ywDevice.setCreateDate(new Date());
        ywDevice.setCreator(loginUserInfo.getId());
        ywDevice.setIsdeleted(Constants.ZERO);
        ywDeviceMapper.insert(ywDevice);
        if(Objects.nonNull(ywDevice.getMultifile())){
            ywDevice.getMultifile().setCreator(loginUserInfo.getId());
            ywDevice.getMultifile().setCreateDate(new Date());
            ywDevice.getMultifile().setIsdeleted(Constants.ZERO);
            ywDevice.getMultifile().setObjType(Constants.MultiFile.FN_DEVICE_FILE.getKey());
            ywDevice.getMultifile().setObjId(ywDevice.getId());
            multifileMapper.insert(ywDevice.getMultifile());
        }
        return ywDevice.getId();
    }
    @Override
    public void deleteById(Integer id, LoginUserInfo user) {
        ywDeviceMapper.deleteById(id);
        ywDeviceMapper.update(new UpdateWrapper<YwDevice>().lambda().set(YwDevice::getIsdeleted,Constants.ONE)
                .set(YwDevice::getEditDate," now() ")
                .set(YwDevice::getEditor,user.getId())
                .eq(YwDevice::getId,user.getId())
        );
    }
    @Override
@@ -55,7 +115,36 @@
    @Override
    public void updateById(YwDevice ywDevice) {
        if(Objects.isNull(ywDevice)
                || StringUtils.isBlank(ywDevice.getName())
                || StringUtils.isBlank(ywDevice.getCode())
                || Objects.isNull(ywDevice.getStatus())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = ywDevice.getLoginUserInfo();
        if(ywDeviceMapper.selectCount(new QueryWrapper<YwDevice>().lambda().eq(YwDevice::getIsdeleted,Constants.ZERO)
                .eq(YwDevice::getCode,ywDevice.getCode())
                .ne(YwDevice::getId,ywDevice.getId()))>Constants.ZERO){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"设备编号重复!");
        }
        ywDevice.setEditDate(new Date());
        ywDevice.setEditor(loginUserInfo.getId());
        ywDeviceMapper.updateById(ywDevice);
        multifileMapper.delete(new QueryWrapper<Multifile>().lambda()
                .eq(Multifile::getObjId,ywDevice.getId())
                .eq(Multifile::getObjType,Constants.MultiFile.FN_DEVICE_FILE.getKey())
        );
        if(Objects.nonNull(ywDevice.getMultifile())){
            ywDevice.getMultifile().setCreator(loginUserInfo.getId());
            ywDevice.getMultifile().setCreateDate(new Date());
            ywDevice.getMultifile().setIsdeleted(Constants.ZERO);
            ywDevice.getMultifile().setObjType(Constants.MultiFile.FN_DEVICE_FILE.getKey());
            ywDevice.getMultifile().setObjId(ywDevice.getId());
            multifileMapper.insert(ywDevice.getMultifile());
        }
    }
    @Override
@@ -74,6 +163,20 @@
    }
    @Override
    public YwDevice getDetail(Integer id) {
        YwDevice ywDevice = ywDeviceMapper.selectById(id);
        Multifile multifile = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda().eq(Multifile::getObjId,id).eq(Multifile::getObjType,Constants.MultiFile.FN_DEVICE_FILE).last(" limit 1"));
        if(Objects.nonNull(multifile)){
            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_DEVICE).getCode();
            multifile.setFileurlFull(path + multifile.getFileurl());
            ywDevice.setMultifile(multifile);
        }
        return ywDevice;
    }
    @Override
    public YwDevice findOne(YwDevice ywDevice) {
        QueryWrapper<YwDevice> wrapper = new QueryWrapper<>(ywDevice);
        return ywDeviceMapper.selectOne(wrapper);
@@ -88,70 +191,21 @@
    @Override
    public PageData<YwDevice> findPage(PageWrap<YwDevice> pageWrap) {
        IPage<YwDevice> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwDevice> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<YwDevice> queryWrapper = new MPJLambdaWrapper<YwDevice>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwDevice::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(YwDevice::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(YwDevice::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(YwDevice::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwDevice::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(YwDevice::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(YwDevice::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(YwDevice::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(YwDevice::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(YwDevice::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(YwDevice::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getSortnum() != null) {
            queryWrapper.lambda().eq(YwDevice::getSortnum, pageWrap.getModel().getSortnum());
        }
        if (pageWrap.getModel().getModelNo() != null) {
            queryWrapper.lambda().eq(YwDevice::getModelNo, pageWrap.getModel().getModelNo());
        }
        if (pageWrap.getModel().getCateId() != null) {
            queryWrapper.lambda().eq(YwDevice::getCateId, pageWrap.getModel().getCateId());
        }
        if (pageWrap.getModel().getUserId() != null) {
            queryWrapper.lambda().eq(YwDevice::getUserId, pageWrap.getModel().getUserId());
        }
        if (pageWrap.getModel().getCompany() != null) {
            queryWrapper.lambda().ge(YwDevice::getCompany, Utils.Date.getStart(pageWrap.getModel().getCompany()));
            queryWrapper.lambda().le(YwDevice::getCompany, Utils.Date.getEnd(pageWrap.getModel().getCompany()));
        }
        if (pageWrap.getModel().getContent() != null) {
            queryWrapper.lambda().eq(YwDevice::getContent, pageWrap.getModel().getContent());
        }
        if (pageWrap.getModel().getCode() != null) {
            queryWrapper.lambda().eq(YwDevice::getCode, pageWrap.getModel().getCode());
        }
        if (pageWrap.getModel().getAddr() != null) {
            queryWrapper.lambda().eq(YwDevice::getAddr, pageWrap.getModel().getAddr());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(ywDeviceMapper.selectPage(page, queryWrapper));
        YwDevice model = pageWrap.getModel();
        queryWrapper.selectAll(YwDevice.class)
                .selectAs(Category::getName,YwDevice::getCategoryName)
                .selectAs(SystemUser::getRealname,YwDevice::getRealName)
                .leftJoin(Category.class,Category::getId,YwDevice::getCateId)
                .leftJoin(SystemUser.class,SystemUser::getId,YwDevice::getUserId)
                .and(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getName()),i->i.like(YwDevice::getName,model.getName()).or().like(YwDevice::getCode,model.getName()))
                .eq(Objects.nonNull(model.getStatus()),YwDevice::getStatus,model.getStatus())
                .eq(YwDevice::getIsdeleted,Constants.ZERO)
                .orderByDesc(YwDevice::getCreateDate)
        ;
        IPage iPage = ywDeviceMapper.selectJoinPage(page,YwDevice.class,queryWrapper);
        return PageData.from(iPage);
    }
    @Override
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolLineServiceImpl.java
@@ -1,21 +1,30 @@
package com.doumee.service.business.impl;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.YwLinePointMapper;
import com.doumee.dao.business.YwPatrolLineMapper;
import com.doumee.dao.business.model.YwPatrolLine;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.YwPatrolLineService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * è¿ç»´å·¡æ£€è·¯çº¿ä¿¡æ¯è¡¨Service实现
@@ -28,9 +37,40 @@
    @Autowired
    private YwPatrolLineMapper ywPatrolLineMapper;
    @Autowired
    private YwLinePointMapper ywLinePointMapper;
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    public Integer create(YwPatrolLine ywPatrolLine) {
        if(Objects.isNull(ywPatrolLine)
        || StringUtils.isBlank(ywPatrolLine.getName())
        || com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(ywPatrolLine.getLinePointList())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = ywPatrolLine.getLoginUserInfo();
        ywPatrolLine.setCreateDate(new Date());
        ywPatrolLine.setCreator(loginUserInfo.getId());
        ywPatrolLine.setIsdeleted(Constants.ZERO);
        ywPatrolLine.setStatus(Constants.ZERO);
        ywPatrolLineMapper.insert(ywPatrolLine);
        //循环处理 å­é›†æ•°æ®
        List<YwLinePoint> ywLinePointList = ywPatrolLine.getLinePointList();
        for (YwLinePoint ywLinePoint:ywLinePointList) {
            if(Objects.isNull(ywLinePoint)
            || Objects.isNull(ywLinePoint.getPointId())
            || Objects.isNull(ywLinePoint.getNeedScancode())
            ){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"巡检点配置错误");
            }
            ywLinePoint.setCreateDate(new Date());
            ywLinePoint.setCreator(loginUserInfo.getId());
            ywLinePoint.setIsdeleted(Constants.ZERO);
            ywLinePoint.setLineId(ywLinePoint.getId());
        }
        ywLinePointMapper.insert(ywLinePointList);
        return ywPatrolLine.getId();
    }
@@ -55,7 +95,34 @@
    @Override
    public void updateById(YwPatrolLine ywPatrolLine) {
        if(Objects.isNull(ywPatrolLine)
                || StringUtils.isBlank(ywPatrolLine.getName())
                || com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(ywPatrolLine.getLinePointList())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = ywPatrolLine.getLoginUserInfo();
        ywPatrolLine.setEditDate(new Date());
        ywPatrolLine.setEditor(loginUserInfo.getId());
        ywPatrolLineMapper.updateById(ywPatrolLine);
        //删除子数据
        ywLinePointMapper.delete(new QueryWrapper<YwLinePoint>().lambda()
                .eq(YwLinePoint::getLineId,ywPatrolLine.getId()));
        //循环处理 å­é›†æ•°æ®
        List<YwLinePoint> ywLinePointList = ywPatrolLine.getLinePointList();
        for (YwLinePoint ywLinePoint:ywLinePointList) {
            if(Objects.isNull(ywLinePoint)
                    || Objects.isNull(ywLinePoint.getPointId())
                    || Objects.isNull(ywLinePoint.getNeedScancode())
            ){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"巡检点配置错误");
            }
            ywLinePoint.setLineId(ywLinePoint.getId());
            ywLinePoint.setCreateDate(new Date());
            ywLinePoint.setCreator(loginUserInfo.getId());
            ywLinePoint.setIsdeleted(Constants.ZERO);
        }
        ywLinePointMapper.insert(ywLinePointList);
    }
    @Override
@@ -73,6 +140,25 @@
        return ywPatrolLineMapper.selectById(id);
    }
    @Override
    public YwPatrolLine getDetail(Integer id) {
        YwPatrolLine ywPatrolLine =  ywPatrolLineMapper.selectById(id);
        List<YwLinePoint> ywLinePointList = ywLinePointMapper.selectJoinList(YwLinePoint.class,new MPJLambdaWrapper<YwLinePoint>()
                .selectAll(YwLinePoint.class)
                .selectAs(YwPatrolPoint::getName,YwLinePoint::getPointName)
                .leftJoin(YwPatrolLine.class,YwPatrolLine::getId,YwLinePoint::getPointId)
                .eq(YwLinePoint::getLineId,id)
                .orderByAsc(YwLinePoint::getSortnum)
        );
        ywPatrolLine.setLinePointList(ywLinePointList);
        return ywPatrolLine;
    }
    @Override
    public YwPatrolLine findOne(YwPatrolLine ywPatrolLine) {
        QueryWrapper<YwPatrolLine> wrapper = new QueryWrapper<>(ywPatrolLine);
@@ -88,51 +174,17 @@
    @Override
    public PageData<YwPatrolLine> findPage(PageWrap<YwPatrolLine> pageWrap) {
        IPage<YwPatrolLine> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwPatrolLine> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<YwPatrolLine> queryWrapper = new MPJLambdaWrapper<YwPatrolLine>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwPatrolLine::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(YwPatrolLine::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(YwPatrolLine::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(YwPatrolLine::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwPatrolLine::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(YwPatrolLine::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(YwPatrolLine::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(YwPatrolLine::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(YwPatrolLine::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(YwPatrolLine::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(YwPatrolLine::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getSortnum() != null) {
            queryWrapper.lambda().eq(YwPatrolLine::getSortnum, pageWrap.getModel().getSortnum());
        }
        if (pageWrap.getModel().getImgurl() != null) {
            queryWrapper.lambda().eq(YwPatrolLine::getImgurl, pageWrap.getModel().getImgurl());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(ywPatrolLineMapper.selectPage(page, queryWrapper));
        YwPatrolLine model = pageWrap.getModel();
        queryWrapper.selectAll(YwPatrolLine.class)
                .select(" ( select count(1) from  yw_line_point y where y.LINE_ID = yw_patrol_line.id ) as lineAmount ")
                .like(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getName()),YwPatrolLine::getName,model.getName())
                .eq(YwPatrolLine::getIsdeleted,Constants.ZERO)
                .orderByDesc(YwPatrolLine::getCreateDate)
        ;
        IPage iPage = ywPatrolLineMapper.selectJoinPage(page,YwPatrolLine.class,queryWrapper);
        return PageData.from(iPage);
    }
    @Override
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolPointServiceImpl.java
@@ -1,21 +1,34 @@
package com.doumee.service.business.impl;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.YwPatrolPointMapper;
import com.doumee.dao.business.model.Category;
import com.doumee.dao.business.model.YwDevice;
import com.doumee.dao.business.model.YwPatrolPoint;
import com.doumee.dao.system.MultifileMapper;
import com.doumee.dao.system.model.Multifile;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.YwPatrolPointService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * è¿ç»´å·¡æ£€ç‚¹ä¿¡æ¯è¡¨Service实现
@@ -27,16 +40,50 @@
    @Autowired
    private YwPatrolPointMapper ywPatrolPointMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private MultifileMapper multifileMapper;
    @Override
    public Integer create(YwPatrolPoint ywPatrolPoint) {
        if(Objects.isNull(ywPatrolPoint)
                || Objects.isNull(ywPatrolPoint.getCode())
                || Objects.isNull(ywPatrolPoint.getName())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        if(ywPatrolPointMapper.selectCount(new QueryWrapper<YwPatrolPoint>().lambda().eq(YwPatrolPoint::getIsdeleted,Constants.ZERO)
                .eq(YwPatrolPoint::getCode,ywPatrolPoint.getCode()))>Constants.ZERO){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"巡检点编码重复!");
        }
        LoginUserInfo loginUserInfo = ywPatrolPoint.getLoginUserInfo();
        ywPatrolPoint.setCreateDate(new Date());
        ywPatrolPoint.setCreator(loginUserInfo.getId());
        ywPatrolPoint.setIsdeleted(Constants.ZERO);
        ywPatrolPoint.setStatus(Constants.ZERO);
        ywPatrolPointMapper.insert(ywPatrolPoint);
        if(Objects.nonNull(ywPatrolPoint.getMultifile())){
            ywPatrolPoint.getMultifile().setCreator(loginUserInfo.getId());
            ywPatrolPoint.getMultifile().setCreateDate(new Date());
            ywPatrolPoint.getMultifile().setIsdeleted(Constants.ZERO);
            ywPatrolPoint.getMultifile().setObjType(Constants.MultiFile.FN_PATROL_POINT_FILE.getKey());
            ywPatrolPoint.getMultifile().setObjId(ywPatrolPoint.getId());
            multifileMapper.insert(ywPatrolPoint.getMultifile());
        }
        return ywPatrolPoint.getId();
    }
    @Override
    public void deleteById(Integer id, LoginUserInfo user) {
        ywPatrolPointMapper.deleteById(id);
        ywPatrolPointMapper.update(new UpdateWrapper<YwPatrolPoint>().lambda().set(YwPatrolPoint::getIsdeleted,Constants.ONE)
                .set(YwPatrolPoint::getEditDate," now() ")
                .set(YwPatrolPoint::getEditor,user.getId())
                .eq(YwPatrolPoint::getId,user.getId())
        );
    }
    @Override
@@ -55,7 +102,36 @@
    @Override
    public void updateById(YwPatrolPoint ywPatrolPoint) {
        if(Objects.isNull(ywPatrolPoint)
                || Objects.isNull(ywPatrolPoint.getId())
                || Objects.isNull(ywPatrolPoint.getCode())
                || Objects.isNull(ywPatrolPoint.getName())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        if(ywPatrolPointMapper.selectCount(new QueryWrapper<YwPatrolPoint>().lambda().eq(YwPatrolPoint::getIsdeleted,Constants.ZERO)
                .eq(YwPatrolPoint::getCode,ywPatrolPoint.getCode()).ne(YwPatrolPoint::getId,ywPatrolPoint.getId()))>Constants.ZERO){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"巡检点编码重复!");
        }
        LoginUserInfo loginUserInfo = ywPatrolPoint.getLoginUserInfo();
        ywPatrolPoint.setEditDate(new Date());
        ywPatrolPoint.setEditor(loginUserInfo.getId());
        ywPatrolPointMapper.updateById(ywPatrolPoint);
        multifileMapper.delete(new QueryWrapper<Multifile>().lambda()
                .eq(Multifile::getObjId,ywPatrolPoint.getId())
                .eq(Multifile::getObjType,Constants.MultiFile.FN_PATROL_POINT_FILE.getKey())
        );
        if(Objects.nonNull(ywPatrolPoint.getMultifile())){
            ywPatrolPoint.getMultifile().setCreator(loginUserInfo.getId());
            ywPatrolPoint.getMultifile().setCreateDate(new Date());
            ywPatrolPoint.getMultifile().setIsdeleted(Constants.ZERO);
            ywPatrolPoint.getMultifile().setObjType(Constants.MultiFile.FN_PATROL_POINT_FILE.getKey());
            ywPatrolPoint.getMultifile().setObjId(ywPatrolPoint.getId());
            multifileMapper.insert(ywPatrolPoint.getMultifile());
        }
    }
    @Override
@@ -74,6 +150,22 @@
    }
    @Override
    public YwPatrolPoint getDetail(Integer id) {
        YwPatrolPoint ywPatrolPoint = ywPatrolPointMapper.selectById(id);
        Multifile multifile = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda().eq(Multifile::getObjId,id)
                .eq(Multifile::getObjType,Constants.MultiFile.FN_PATROL_POINT_FILE).last(" limit 1"));
        if(Objects.nonNull(multifile)){
            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_PATROL).getCode();
            multifile.setFileurlFull(path + multifile.getFileurl());
            ywPatrolPoint.setMultifile(multifile);
        }
        return ywPatrolPoint;
    }
    @Override
    public YwPatrolPoint findOne(YwPatrolPoint ywPatrolPoint) {
        QueryWrapper<YwPatrolPoint> wrapper = new QueryWrapper<>(ywPatrolPoint);
        return ywPatrolPointMapper.selectOne(wrapper);
@@ -81,64 +173,33 @@
    @Override
    public List<YwPatrolPoint> findList(YwPatrolPoint ywPatrolPoint) {
        QueryWrapper<YwPatrolPoint> wrapper = new QueryWrapper<>(ywPatrolPoint);
        QueryWrapper<YwPatrolPoint> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(YwPatrolPoint::getIsdeleted,Constants.ZERO);
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywPatrolPoint.getIdLists())){
            wrapper.lambda().notIn(YwPatrolPoint::getId,ywPatrolPoint.getIdLists());
        }
        return ywPatrolPointMapper.selectList(wrapper);
    }
  
    @Override
    public PageData<YwPatrolPoint> findPage(PageWrap<YwPatrolPoint> pageWrap) {
        IPage<YwPatrolPoint> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwPatrolPoint> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<YwPatrolPoint> queryWrapper = new MPJLambdaWrapper<YwPatrolPoint>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwPatrolPoint::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(YwPatrolPoint::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(YwPatrolPoint::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(YwPatrolPoint::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwPatrolPoint::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(YwPatrolPoint::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(YwPatrolPoint::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(YwPatrolPoint::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(YwPatrolPoint::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(YwPatrolPoint::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(YwPatrolPoint::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getSortnum() != null) {
            queryWrapper.lambda().eq(YwPatrolPoint::getSortnum, pageWrap.getModel().getSortnum());
        }
        if (pageWrap.getModel().getImgurl() != null) {
            queryWrapper.lambda().eq(YwPatrolPoint::getImgurl, pageWrap.getModel().getImgurl());
        }
        if (pageWrap.getModel().getAreaId() != null) {
            queryWrapper.lambda().eq(YwPatrolPoint::getAreaId, pageWrap.getModel().getAreaId());
        }
        if (pageWrap.getModel().getAddr() != null) {
            queryWrapper.lambda().eq(YwPatrolPoint::getAddr, pageWrap.getModel().getAddr());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(ywPatrolPointMapper.selectPage(page, queryWrapper));
        YwPatrolPoint model = pageWrap.getModel();
        queryWrapper.selectAll(YwPatrolPoint.class)
                .selectAs(Category::getName,YwPatrolPoint::getAreaName)
                .selectAs(YwDevice::getName,YwPatrolPoint::getDeviceName)
                .leftJoin(Category.class,Category::getId,YwPatrolPoint::getAreaId)
                .leftJoin(YwDevice.class,YwDevice::getId,YwPatrolPoint::getDeviceId)
                .and(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getName()),
                        i->i.like(YwPatrolPoint::getName,model.getName()).or().like(YwPatrolPoint::getCode,model.getName()))
                .eq(Objects.nonNull(model.getAreaId()),YwPatrolPoint::getAreaId,model.getAreaId())
                .eq(YwPatrolPoint::getIsdeleted,Constants.ZERO)
                .orderByDesc(YwPatrolPoint::getCreateDate)
        ;
        IPage iPage = ywPatrolPointMapper.selectJoinPage(page,YwPatrolPoint.class,queryWrapper);
        return PageData.from(iPage);
    }
    @Override
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
@@ -1,21 +1,35 @@
package com.doumee.service.business.impl;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
import com.doumee.core.utils.Week;
import com.doumee.core.utils.redis.RedisUtil;
import com.doumee.dao.business.YwLinePointMapper;
import com.doumee.dao.business.YwPatrolSchemeMapper;
import com.doumee.dao.business.model.YwPatrolScheme;
import com.doumee.dao.business.YwPatrolTaskMapper;
import com.doumee.dao.business.YwPatrolTaskRecordMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.YwPatrolSchemeService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
 * è¿ç»´å·¡æ£€è®¡åˆ’信息表Service实现
@@ -27,12 +41,146 @@
    @Autowired
    private YwPatrolSchemeMapper ywPatrolSchemeMapper;
    @Autowired
    private YwPatrolTaskMapper ywPatrolTaskMapper;
    @Autowired
    private YwLinePointMapper ywLinePointMapper;
    @Autowired
    private YwPatrolTaskRecordMapper ywPatrolTaskRecordMapper;
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;
    @Override
    public Integer create(YwPatrolScheme ywPatrolScheme) {
        if(Objects.isNull(ywPatrolScheme)
        || StringUtils.isBlank(ywPatrolScheme.getTitle())
                ||Objects.isNull(ywPatrolScheme.getLineId())
                ||StringUtils.isBlank(ywPatrolScheme.getUserIds())
                ||Objects.isNull(ywPatrolScheme.getStartDate())
                ||Objects.isNull(ywPatrolScheme.getEndDate())
                ||Objects.isNull(ywPatrolScheme.getCircleType())
                ||StringUtils.isBlank(ywPatrolScheme.getStartTime())
                ||StringUtils.isBlank(ywPatrolScheme.getEndTime())
                || (!Constants.equalsInteger(ywPatrolScheme.getCircleType(),Constants.ZERO) &&StringUtils.isBlank(ywPatrolScheme.getCircleDays()))
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = ywPatrolScheme.getLoginUserInfo();
        ywPatrolScheme.setCreateDate(new Date());
        ywPatrolScheme.setCreator(loginUserInfo.getId());
        ywPatrolScheme.setIsdeleted(Constants.ZERO);
        ywPatrolScheme.setStatus(Constants.ZERO);
        ywPatrolScheme.setCode(this.getNextCode());
        ywPatrolSchemeMapper.insert(ywPatrolScheme);
        this.createThreeDaysData(ywPatrolScheme,loginUserInfo);
        return ywPatrolScheme.getId();
    }
    public synchronized String  getNextCode(){
        String prefix =  "P";
        Integer countNum  = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.PATROL_SCHEME_CODE_KEY,Integer.class);
        countNum = Constants.formatIntegerNum(countNum)+1;
        //更新缓存
        RedisUtil.addObject(redisTemplate,Constants.RedisKeys.PATROL_SCHEME_CODE_KEY,countNum);
        String nextIndex =Integer.toString( countNum );
        return prefix + StringUtils.leftPad(nextIndex,4,"0");
    }
    public void createThreeDaysData(YwPatrolScheme ywPatrolScheme,LoginUserInfo loginUserInfo){
        //循环生成三天内的数据
        for (int i = 0; i < 3; i++) {
            Date schemeDate = DateUtil.getXDayAfterDate(new Date(),i);
            this.createTask(schemeDate,ywPatrolScheme,loginUserInfo);
        }
    }
    /**
     * æ ¹æ®æ—¥æœŸç”Ÿæˆä»»åŠ¡
     * @param schemeDate
     * @param ywPatrolScheme
     */
    public void createTask(Date schemeDate,YwPatrolScheme ywPatrolScheme,LoginUserInfo loginUserInfo){
        if(ywPatrolScheme.getStartDate().getTime() > schemeDate.getTime()
            || ywPatrolScheme.getEndDate().getTime() < schemeDate.getTime() ){
            return;
        }
        if(Constants.equalsInteger(ywPatrolScheme.getCircleType(),Constants.ONE)){
            //每周根据日期生成 æ ¹æ®æ—¥æœŸèŽ·å–æ˜¯å‘¨å‡ 
            Week week = DateUtil.getWeek(schemeDate);
            if(Objects.isNull(week)){
                return;
            }
            List<String> weeks = Arrays.asList(ywPatrolScheme.getCircleDays().split(","));
            String weekStr = weeks.stream().filter(i->Constants.equalsInteger(Integer.valueOf(i),week.getNumber())).findFirst().get();
            if(StringUtils.isBlank(weekStr)){
                return;
            }
        }else{
            //每月根据日期生成 æ ¹æ®æ—¥æœŸèŽ·å–æ˜¯å“ªå¤©
            List<String> days = Arrays.asList(ywPatrolScheme.getCircleDays().split(","));
            String dayStr = DateUtil.getFomartDate(schemeDate,"dd");
            if(Objects.isNull(days.stream().filter(i->StringUtils.equals(i,dayStr)).findFirst().get())){
                return;
            };
        }
        String schemeDateStr = DateUtil.getDate(schemeDate,"yyyy-MM-dd");
        //查询当天是否生成过数据
        if(ywPatrolTaskMapper.selectCount(new QueryWrapper<YwPatrolTask>().lambda().eq(YwPatrolTask::getSchemeId,ywPatrolScheme.getId()).like(YwPatrolTask::getStartDate,schemeDateStr))>Constants.ZERO){
            return;
        };
        YwPatrolTask ywPatrolTaskForCodeSn = ywPatrolTaskMapper.selectOne(new MPJLambdaWrapper<YwPatrolTask>()
                .select(" ifnull( max(replace(code,'"+ywPatrolScheme.getCode()+"-','')),0) AS codeSn ")
                .eq(YwPatrolTask::getSchemeId,ywPatrolScheme.getId())
                .orderByDesc( YwPatrolTask::getId)
                .last(" limit 1 ")
        );
        Integer codeSn = ywPatrolTaskForCodeSn.getCodeSn();
        List<YwLinePoint> ywLinePointList = ywLinePointMapper.selectList(new QueryWrapper<YwLinePoint>().lambda()
                .eq(YwLinePoint::getLineId,ywPatrolScheme.getLineId())
                .eq(YwLinePoint::getIsdeleted,Constants.ZERO)
                .orderByAsc(YwLinePoint::getSortnum));
        if(CollectionUtils.isEmpty(ywLinePointList)){
            return;
        }
        codeSn = codeSn + 1;
        String nextCode = StringUtils.leftPad(codeSn.toString(),3,"0");
        YwPatrolTask ywPatrolTask = new YwPatrolTask();
        ywPatrolTask.setCreateDate(new Date());
        ywPatrolTask.setCreator(loginUserInfo.getId());
        ywPatrolTask.setIsdeleted(Constants.ZERO);
        ywPatrolTask.setStatus(Constants.patrolTaskStatus.waitStart);
        ywPatrolTask.setSchemeId(ywPatrolScheme.getId());
        ywPatrolTask.setCircleType(ywPatrolScheme.getCircleType());
        ywPatrolTask.setStartDate(DateUtil.getDateFromString(schemeDateStr +" "+ ywPatrolScheme.getStartTime() +":00"));
        ywPatrolTask.setEndDate(DateUtil.getDateFromString(schemeDateStr +" "+ ywPatrolScheme.getEndTime() +":00"));
        ywPatrolTask.setDealUserId(ywPatrolScheme.getDealUserId());
        ywPatrolTask.setCode(ywPatrolScheme.getCode() + "-" + nextCode);
        ywPatrolTaskMapper.insert(ywPatrolTask);
        List<YwPatrolTaskRecord> ywPatrolTaskRecordList = new ArrayList<>();
        for (int i = 0; i < ywLinePointList.size(); i++) {
            YwLinePoint ywLinePoint = ywLinePointList.get(i);
            //生成任务数据
            YwPatrolTaskRecord ywPatrolTaskRecord = new YwPatrolTaskRecord();
            ywPatrolTaskRecord.setCreateDate(new Date());
            ywPatrolTaskRecord.setCreator(loginUserInfo.getId());
            ywPatrolTaskRecord.setIsdeleted(Constants.ZERO);
            ywPatrolTaskRecord.setStatus(Constants.ZERO);
            ywPatrolTaskRecord.setSchemeId(ywPatrolScheme.getId());
            ywPatrolTaskRecord.setPointId(ywLinePoint.getPointId());
            ywPatrolTaskRecord.setTaskId(ywPatrolTask.getId());
            ywPatrolTaskRecord.setDealUserId(ywPatrolScheme.getDealUserId());
            ywPatrolTaskRecord.setSortnum(i+1);
            ywPatrolTaskRecordList.add(ywPatrolTaskRecord);
        }
        ywPatrolTaskRecordMapper.insert(ywPatrolTaskRecordList);
    }
    @Override
    public void deleteById(Integer id, LoginUserInfo user) {
@@ -55,7 +203,42 @@
    @Override
    public void updateById(YwPatrolScheme ywPatrolScheme) {
        if(Objects.isNull(ywPatrolScheme)
                || Objects.isNull(ywPatrolScheme.getId())
                || StringUtils.isBlank(ywPatrolScheme.getTitle())
                ||Objects.isNull(ywPatrolScheme.getLineId())
                ||StringUtils.isBlank(ywPatrolScheme.getUserIds())
                ||Objects.isNull(ywPatrolScheme.getStartDate())
                ||Objects.isNull(ywPatrolScheme.getEndDate())
                ||Objects.isNull(ywPatrolScheme.getCircleType())
                ||StringUtils.isBlank(ywPatrolScheme.getStartTime())
                ||StringUtils.isBlank(ywPatrolScheme.getEndTime())
                || (!Constants.equalsInteger(ywPatrolScheme.getCircleType(),Constants.ZERO) &&StringUtils.isBlank(ywPatrolScheme.getCircleDays()))
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = ywPatrolScheme.getLoginUserInfo();
        ywPatrolScheme.setEditDate(new Date());
        ywPatrolScheme.setEditor(loginUserInfo.getId());
        ywPatrolSchemeMapper.updateById(ywPatrolScheme);
    }
    @Override
    public void updateStatus(YwPatrolScheme ywPatrolScheme) {
        if(Objects.isNull(ywPatrolScheme)
                || Objects.isNull(ywPatrolScheme.getId())
                || Objects.isNull(ywPatrolScheme.getStatus())
                || !(Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ZERO) || Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ONE ))
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = ywPatrolScheme.getLoginUserInfo();
        ywPatrolScheme.setEditDate(new Date());
        ywPatrolScheme.setEditor(loginUserInfo.getId());
        ywPatrolSchemeMapper.updateById(ywPatrolScheme);
        if(Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ZERO)){
            this.createThreeDaysData(ywPatrolScheme,loginUserInfo);
        }
    }
    @Override
@@ -88,92 +271,73 @@
    @Override
    public PageData<YwPatrolScheme> findPage(PageWrap<YwPatrolScheme> pageWrap) {
        IPage<YwPatrolScheme> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwPatrolScheme> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<YwPatrolScheme> queryWrapper = new MPJLambdaWrapper<YwPatrolScheme>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getId, pageWrap.getModel().getId());
        YwPatrolScheme model = pageWrap.getModel();
        queryWrapper.selectAll(YwPatrolScheme.class)
                .select(" t2.realName as createUserName ")
                .select(" t1.realName as userName ")
                .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolScheme::getUserIds)
                .leftJoin(" system_user t2 on t.creator =  t2.id  ")
                .eq(YwPatrolScheme::getIsdeleted,Constants.ZERO)
                .like(StringUtils.isNotBlank(model.getTitle()),YwPatrolScheme::getTitle,model.getTitle())
                .ge(Objects.nonNull(model.getStartDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()))
                .le(Objects.nonNull(model.getEndDate()),YwDeviceRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()))
                .orderByDesc(YwPatrolScheme::getCreateDate)
        ;
        IPage<YwPatrolScheme> iPage = ywPatrolSchemeMapper.selectJoinPage(page,YwPatrolScheme.class,queryWrapper);
        for (YwPatrolScheme ywPatrolScheme:iPage.getRecords()) {
            this.getSchemeStatus(ywPatrolScheme);
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getCreator, pageWrap.getModel().getCreator());
        return PageData.from(iPage);
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(YwPatrolScheme::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(YwPatrolScheme::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
    //获取状态
    public void getSchemeStatus(YwPatrolScheme ywPatrolScheme){
        List<YwPatrolTask> ywPatrolTaskList = ywPatrolTaskMapper.selectList(new QueryWrapper<YwPatrolTask>().lambda()
                .eq(YwPatrolTask::getSchemeId,ywPatrolScheme.getId())
                .eq(YwPatrolTask::getIsdeleted,Constants.ZERO)
                .ne(YwPatrolTask::getStatus,Constants.FOUR)
        );
        if(CollectionUtils.isEmpty(ywPatrolTaskList)){
            ywPatrolScheme.setSchemeStatus(Constants.ZERO);
            ywPatrolScheme.setTimeOutTaskNum(Constants.ZERO);
            return;
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getEditor, pageWrap.getModel().getEditor());
        //过滤数据是否存在进行中的
        if(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size()>Constants.ZERO){
            ywPatrolScheme.setSchemeStatus(Constants.ONE);
            ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis())
                    .collect(Collectors.toList()).size());
            return;
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(YwPatrolScheme::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(YwPatrolScheme::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        //过滤数据是不是全部未开始
        if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size(),ywPatrolTaskList.size())){
            ywPatrolScheme.setSchemeStatus(Constants.ZERO);
            ywPatrolScheme.setTimeOutTaskNum(ywPatrolTaskList.stream().filter(i->i.getEndDate().getTime()>System.currentTimeMillis())
                    .collect(Collectors.toList()).size());
            return;
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getTitle() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getTitle, pageWrap.getModel().getTitle());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getSortnum() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getSortnum, pageWrap.getModel().getSortnum());
        }
        if (pageWrap.getModel().getLineId() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getLineId, pageWrap.getModel().getLineId());
        }
        if (pageWrap.getModel().getUserIds() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getUserIds, pageWrap.getModel().getUserIds());
        }
        if (pageWrap.getModel().getDealUserId() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getDealUserId, pageWrap.getModel().getDealUserId());
        }
        if (pageWrap.getModel().getDealDate() != null) {
            queryWrapper.lambda().ge(YwPatrolScheme::getDealDate, Utils.Date.getStart(pageWrap.getModel().getDealDate()));
            queryWrapper.lambda().le(YwPatrolScheme::getDealDate, Utils.Date.getEnd(pageWrap.getModel().getDealDate()));
        }
        if (pageWrap.getModel().getDealInfo() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getDealInfo, pageWrap.getModel().getDealInfo());
        }
        if (pageWrap.getModel().getCircleType() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getCircleType, pageWrap.getModel().getCircleType());
        }
        if (pageWrap.getModel().getCircleDays() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getCircleDays, pageWrap.getModel().getCircleDays());
        }
        if (pageWrap.getModel().getStartDate() != null) {
            queryWrapper.lambda().ge(YwPatrolScheme::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()));
            queryWrapper.lambda().le(YwPatrolScheme::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getStartDate()));
        }
        if (pageWrap.getModel().getEndDate() != null) {
            queryWrapper.lambda().ge(YwPatrolScheme::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()));
            queryWrapper.lambda().le(YwPatrolScheme::getEndDate, Utils.Date.getEnd(pageWrap.getModel().getEndDate()));
        }
        if (pageWrap.getModel().getStartTime() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getStartTime, pageWrap.getModel().getStartTime());
        }
        if (pageWrap.getModel().getEndTime() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getEndTime, pageWrap.getModel().getEndTime());
        }
        if (pageWrap.getModel().getProcessStatus() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getProcessStatus, pageWrap.getModel().getProcessStatus());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
        //过滤数据是不是全部已完成
        if(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.THREE)).collect(Collectors.toList()).size()
                ,ywPatrolTaskList.size())){
            ywPatrolScheme.setSchemeStatus(Constants.TWO);
            return;
            }
        }
        return PageData.from(ywPatrolSchemeMapper.selectPage(page, queryWrapper));
    }
    @Override
    public long count(YwPatrolScheme ywPatrolScheme) {
        QueryWrapper<YwPatrolScheme> wrapper = new QueryWrapper<>(ywPatrolScheme);
        return ywPatrolSchemeMapper.selectCount(wrapper);
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,119 @@
package com.doumee.service.business.impl;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.YwPatrolTaskRecordMapper;
import com.doumee.dao.business.model.YwDeviceRecord;
import com.doumee.dao.business.model.YwPatrolPoint;
import com.doumee.dao.business.model.YwPatrolScheme;
import com.doumee.dao.business.model.YwPatrolTaskRecord;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.YwPatrolTaskRecordService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Objects;
/**
 * è¿ç»´å·¡æ£€ä»»åŠ¡ - å·¡æ£€ç‚¹ä¿¡æ¯è¡¨Service实现
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/21 18:11
 */
@Service
public class YwPatrolTaskRecordServiceImpl implements YwPatrolTaskRecordService {
    @Autowired
    private YwPatrolTaskRecordMapper ywPatrolTaskRecordMapper;
    @Override
    public Integer create(YwPatrolTaskRecord ywPatrolTaskRecord) {
        ywPatrolTaskRecordMapper.insert(ywPatrolTaskRecord);
        return ywPatrolTaskRecord.getId();
    }
    @Override
    public void deleteById(Integer id) {
        ywPatrolTaskRecordMapper.deleteById(id);
    }
    @Override
    public void delete(YwPatrolTaskRecord ywPatrolTaskRecord) {
        UpdateWrapper<YwPatrolTaskRecord> deleteWrapper = new UpdateWrapper<>(ywPatrolTaskRecord);
        ywPatrolTaskRecordMapper.delete(deleteWrapper);
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        ywPatrolTaskRecordMapper.deleteBatchIds(ids);
    }
    @Override
    public void updateById(YwPatrolTaskRecord ywPatrolTaskRecord) {
        ywPatrolTaskRecordMapper.updateById(ywPatrolTaskRecord);
    }
    @Override
    public void updateByIdInBatch(List<YwPatrolTaskRecord> ywPatrolTaskRecords) {
        if (CollectionUtils.isEmpty(ywPatrolTaskRecords)) {
            return;
        }
        for (YwPatrolTaskRecord ywPatrolTaskRecord: ywPatrolTaskRecords) {
            this.updateById(ywPatrolTaskRecord);
        }
    }
    @Override
    public YwPatrolTaskRecord findById(Integer id) {
        return ywPatrolTaskRecordMapper.selectById(id);
    }
    @Override
    public YwPatrolTaskRecord findOne(YwPatrolTaskRecord ywPatrolTaskRecord) {
        QueryWrapper<YwPatrolTaskRecord> wrapper = new QueryWrapper<>(ywPatrolTaskRecord);
        return ywPatrolTaskRecordMapper.selectOne(wrapper);
    }
    @Override
    public List<YwPatrolTaskRecord> findList(YwPatrolTaskRecord ywPatrolTaskRecord) {
        QueryWrapper<YwPatrolTaskRecord> wrapper = new QueryWrapper<>(ywPatrolTaskRecord);
        return ywPatrolTaskRecordMapper.selectList(wrapper);
    }
    @Override
    public PageData<YwPatrolTaskRecord> findPage(PageWrap<YwPatrolTaskRecord> pageWrap) {
        IPage<YwPatrolTaskRecord> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<YwPatrolTaskRecord> queryWrapper = new MPJLambdaWrapper<YwPatrolTaskRecord>();
        Utils.MP.blankToNull(pageWrap.getModel());
        YwPatrolTaskRecord model = pageWrap.getModel();
        queryWrapper.selectAll(YwPatrolTaskRecord.class)
                .selectAs(YwPatrolPoint::getName,YwPatrolTaskRecord::getPointName)
                .leftJoin(YwPatrolPoint.class,YwPatrolPoint::getId,YwPatrolTaskRecord::getPointId)
                .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTaskRecord::getDealUserId)
                .eq(YwPatrolScheme::getIsdeleted, Constants.ZERO)
                .like(StringUtils.isNotBlank(model.getPointName()),YwPatrolPoint::getName,model.getPointName())
                .eq(Objects.nonNull(model) && Objects.nonNull(model.getStatus()) , YwPatrolTaskRecord::getStatus,model.getStatus())
                .orderByDesc(YwPatrolScheme::getCreateDate)
        ;
        IPage<YwPatrolTaskRecord> iPage = ywPatrolTaskRecordMapper.selectJoinPage(page,YwPatrolTaskRecord.class,queryWrapper);
        return PageData.from(iPage);
    }
    @Override
    public long count(YwPatrolTaskRecord ywPatrolTaskRecord) {
        QueryWrapper<YwPatrolTaskRecord> wrapper = new QueryWrapper<>(ywPatrolTaskRecord);
        return ywPatrolTaskRecordMapper.selectCount(wrapper);
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
@@ -1,21 +1,32 @@
package com.doumee.service.business.impl;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.YwPatrolTaskMapper;
import com.doumee.dao.business.model.YwDeviceRecord;
import com.doumee.dao.business.model.YwPatrolScheme;
import com.doumee.dao.business.model.YwPatrolTask;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.YwPatrolTaskService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.java.Log;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * è¿ç»´å·¡æ£€ä»»åŠ¡ä¿¡æ¯è¡¨Service实现
@@ -85,81 +96,44 @@
        return ywPatrolTaskMapper.selectList(wrapper);
    }
  
    @Override
    public void taskCancel(Integer id, LoginUserInfo loginUserInfo) {
        YwPatrolTask ywPatrolTask = ywPatrolTaskMapper.selectById(id);
        if(Objects.isNull(ywPatrolTask)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(!Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.ZERO)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"状态已流转");
        }
        ywPatrolTask.setStatus(Constants.FOUR);
        ywPatrolTask.setEditDate(new Date());
        ywPatrolTask.setEditor(loginUserInfo.getId());
        ywPatrolTaskMapper.updateById(ywPatrolTask);
    }
    @Override
    public PageData<YwPatrolTask> findPage(PageWrap<YwPatrolTask> pageWrap) {
        IPage<YwPatrolTask> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwPatrolTask> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<YwPatrolTask> queryWrapper = new MPJLambdaWrapper<YwPatrolTask>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(YwPatrolTask::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(YwPatrolTask::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(YwPatrolTask::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(YwPatrolTask::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getTitle() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getTitle, pageWrap.getModel().getTitle());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getSortnum() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getSortnum, pageWrap.getModel().getSortnum());
        }
        if (pageWrap.getModel().getSchemeId() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getSchemeId, pageWrap.getModel().getSchemeId());
        }
        if (pageWrap.getModel().getPointId() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getPointId, pageWrap.getModel().getPointId());
        }
        if (pageWrap.getModel().getDealUserId() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getDealUserId, pageWrap.getModel().getDealUserId());
        }
        if (pageWrap.getModel().getDealDate() != null) {
            queryWrapper.lambda().ge(YwPatrolTask::getDealDate, Utils.Date.getStart(pageWrap.getModel().getDealDate()));
            queryWrapper.lambda().le(YwPatrolTask::getDealDate, Utils.Date.getEnd(pageWrap.getModel().getDealDate()));
        }
        if (pageWrap.getModel().getDealInfo() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getDealInfo, pageWrap.getModel().getDealInfo());
        }
        if (pageWrap.getModel().getCircleType() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getCircleType, pageWrap.getModel().getCircleType());
        }
        if (pageWrap.getModel().getStartDate() != null) {
            queryWrapper.lambda().ge(YwPatrolTask::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()));
            queryWrapper.lambda().le(YwPatrolTask::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getStartDate()));
        }
        if (pageWrap.getModel().getEndDate() != null) {
            queryWrapper.lambda().ge(YwPatrolTask::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()));
            queryWrapper.lambda().le(YwPatrolTask::getEndDate, Utils.Date.getEnd(pageWrap.getModel().getEndDate()));
        }
        if (pageWrap.getModel().getDealStatus() != null) {
            queryWrapper.lambda().eq(YwPatrolTask::getDealStatus, pageWrap.getModel().getDealStatus());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(ywPatrolTaskMapper.selectPage(page, queryWrapper));
        YwPatrolTask model = pageWrap.getModel();
        queryWrapper.selectAll(YwPatrolTask.class)
                .selectAs(YwPatrolScheme::getCode,YwPatrolTask::getPlanCode)
                .selectAs(SystemUser::getRealname,YwPatrolTask::getUserName)
                .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTask::getDealUserId)
                .leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId)
                .eq(YwPatrolTask::getIsdeleted, Constants.ZERO)
                .like(StringUtils.isNotBlank(model.getPlanTitle()),YwPatrolScheme::getTitle,model.getPlanTitle())
                .ge(Objects.nonNull(model.getStartDate()), YwPatrolTask::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getStartDate()))
                .le(Objects.nonNull(model.getEndDate()),YwPatrolTask::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getEndDate()))
                .orderByDesc(YwPatrolTask::getId)
        ;
        IPage<YwPatrolTask> iPage = ywPatrolTaskMapper.selectJoinPage(page,YwPatrolTask.class,queryWrapper);
        return PageData.from(iPage);
    }
    @Override