liukangdong
2024-11-22 42ffad01769b4c57c76d3ee9f3a69463889f9813
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/funingyunwei
已添加7个文件
已修改69个文件
3102 ■■■■ 文件已修改
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/business/model/Company.java 13 ●●●● 补丁 | 查看 | 原始文档 | 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/CompanyCloudController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java 40 ●●●●● 补丁 | 查看 | 原始文档 | 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_admin/src/main/java/com/doumee/cloud/admin/YwWorkorderCloudController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwAccountMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwBuildingMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwContractBillMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwContractDetailMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwContractMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwContractRoomMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwCustomerMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwDeviceMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwDeviceRecordMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwFloorMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwLinePointMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwPatrolLineMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwPatrolPointMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwPatrolSchemeMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwPatrolTaskMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | 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/YwProjectMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwRoomMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwWorkorderLogMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwWorkorderMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwAccount.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwBuilding.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwCustomer.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/dao/business/model/YwRoom.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorderLog.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CompanyService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | 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/YwWorkorderService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwAccountServiceImpl.java 96 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwBuildingServiceImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerServiceImpl.java 205 ●●●● 补丁 | 查看 | 原始文档 | 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 330 ●●●● 补丁 | 查看 | 原始文档 | 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/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java 270 ●●●●● 补丁 | 查看 | 原始文档 | 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";
@@ -123,6 +124,7 @@
    public static final String VISIT_TIPS = "VISIT_TIPS";
    public static final String VISIT_GUIDEMAP = "VISIT_GUIDEMAP";
    public static final String HIDDEN_DANGER_FILE = "HIDDEN_DANGER_FILE";
    public static final String YW_WORKORDER_FILE = "YW_WORKORDER_FILE";
    public static final String LOG_DEL_DAYS_LIMIT ="LOG_DEL_DAYS_LIMIT" ;
    public static final String HK_LOG_DEL_DAYS_LIMIT ="HK_LOG_DEL_DAYS_LIMIT" ;
    public static final String HK_NGINX_URL = "HK_NGINX_URL";
@@ -220,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;
@@ -451,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";
    }
@@ -507,6 +516,7 @@
    int driver = 0;//司机人员
    int visitor = 1;//普通访客
    int internal = 2;//内部人员
    int customer = 3;//客户人员
}
@@ -1211,6 +1221,11 @@
        HIDDEN_DANGER_SUBMIT(0, "隐患随手拍提报", "隐患随手拍提报"),
        HIDDEN_DANGER_DEAL_BEFORE(1, "隐患随手拍处理前", "隐患随手拍处理前"),
        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/business/model/Company.java
@@ -55,6 +55,12 @@
    @ApiModelProperty(value = "名称")
    @ExcelColumn(name="名称")
    private String name;
    @ApiModelProperty(value = "公司简称")
    @ExcelColumn(name="公司简称")
    private String shortName;
    @ApiModelProperty(value = "公司地址")
    @ExcelColumn(name="公司地址")
    private String address;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
@@ -76,8 +82,8 @@
    @ExcelColumn(name="图标")
    private String imgurl;
    @ApiModelProperty(value = "类型 0相关方公司 1内部组织 2运维公司管理")
    @ExcelColumn(name="类型 0相关方公司 1内部组织")
    @ApiModelProperty(value = "类型 0相关方公司 1内部组织 2运维财务公司管理")
    @ExcelColumn(name="类型 0相关方公司 1内部组织 2运维财务公司管理")
    private Integer type;
    @ApiModelProperty(value = "分类编码(关联category)")
@@ -193,6 +199,9 @@
    @ApiModelProperty(value = "父级部门级别类型 0相关方 1内部组织", example = "1")
    @TableField(exist = false)
    private String parentType;
    @ApiModelProperty(value = "财务账户数量", example = "1")
    @TableField(exist = false)
    private Integer accountNum;
    @ApiModelProperty(value = "erp部门级别路径", example = "1")
    @ExcelColumn(name="erp部门级别路径")
    private String erpCompanyPath;
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/CompanyCloudController.java
@@ -56,6 +56,22 @@
    }
    @PreventRepeat
    @ApiOperation("创建财务公司")
    @PostMapping("/createFinanceCompany")
    @CloudRequiredPermission("business:company:create")
    public ApiResponse<Integer> createFinanceCompany(@RequestBody Company company, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        company.setLoginUserInfo(this.getLoginUser(token));
        return ApiResponse.success(companyService.createFinanceCompany(company));
    }
    @PreventRepeat
    @ApiOperation("更新财务公司")
    @PostMapping("/updateFinanceCompany")
    @CloudRequiredPermission("business:company:update")
    public ApiResponse<Integer> updateFinanceCompany(@RequestBody Company company, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        company.setLoginUserInfo(this.getLoginUser(token));
        return ApiResponse.success(companyService.updateFinanceCompany(company));
    }
    @PreventRepeat
    @ApiOperation("创建劳务公司")
    @PostMapping("/createLaborServices")
    @CloudRequiredPermission("business:company:create")
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
@@ -372,4 +372,44 @@
        return ApiResponse.success(null);
    }
    /********************************************************阜宁运维*********************************************************************************************/
    @PreventRepeat
    @ApiOperation("阜宁运维 - æ–°å»º")
    @PostMapping("/ywCreate")
    @CloudRequiredPermission("business:member:create")
    public ApiResponse ywCreate(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        member.setLoginUserInfo(this.getLoginUser(token));
        memberService.create(member);
        return ApiResponse.success("操作成功!");
    }
    @ApiOperation("阜宁运维 -  æ ¹æ®ID修改")
    @PostMapping("/ywUpdateById")
    @CloudRequiredPermission("business:member:update")
    public ApiResponse ywUpdateById(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        member.setLoginUserInfo(this.getLoginUser(token));
        memberService.ywUpdate(member);
        return ApiResponse.success(null);
    }
    @ApiOperation("阜宁运维 - æŸ¥è¯¢åˆ—表")
    @PostMapping("/ywList")
    @CloudRequiredPermission("business:member:query")
    public ApiResponse<List<Member>> ywList (@RequestBody Member model,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(memberService.ywList(model));
    }
    @ApiOperation("阜宁运维 - åˆ†é¡µæŸ¥è¯¢")
    @PostMapping("/ywFindPage")
    @CloudRequiredPermission("business:member:query")
    public ApiResponse<PageData<Member>> ywFindPage (@RequestBody PageWrap<Member> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(memberService.ywFindPage(pageWrap));
    }
}
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_admin/src/main/java/com/doumee/cloud/admin/YwWorkorderCloudController.java
@@ -69,6 +69,22 @@
        ywWorkorderService.updateById(ywWorkorder);
        return ApiResponse.success(null);
    }
    @ApiOperation("分派工单")
    @PostMapping("/dispatchOrder")
    @CloudRequiredPermission("business:ywworkorder:update")
    public ApiResponse dispatchOrder(@RequestBody YwWorkorder ywWorkorder,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        ywWorkorder.setLoginUserInfo(this.getLoginUser(token));
        ywWorkorderService.dispatchOrder(ywWorkorder);
        return ApiResponse.success(null);
    }
    @ApiOperation("处理工单")
    @PostMapping("/dealOrder")
    @CloudRequiredPermission("business:ywworkorder:update")
    public ApiResponse dealOrder(@RequestBody YwWorkorder ywWorkorder,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        ywWorkorder.setLoginUserInfo(this.getLoginUser(token));
        ywWorkorderService.dealOrder(ywWorkorder);
        return ApiResponse.success(null);
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwAccountMapper.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwAccount;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 18:09
 */
public interface YwAccountMapper extends BaseMapper<YwAccount> {
public interface YwAccountMapper extends MPJBaseMapper<YwAccount> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwBuildingMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwBuilding;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwBuildingMapper extends BaseMapper<YwBuilding> {
public interface YwBuildingMapper extends MPJBaseMapper<YwBuilding> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwContractBillMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwContractBill;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwContractBillMapper extends BaseMapper<YwContractBill> {
public interface YwContractBillMapper extends MPJBaseMapper<YwContractBill> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwContractDetailMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.doumee.dao.business.model.YwContractDetail;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwContractDetailMapper extends BaseMapper<YwContractDetail> {
public interface YwContractDetailMapper extends MPJBaseMapper<YwContractDetail> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwContractMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.doumee.dao.business.model.YwContract;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwContractMapper extends BaseMapper<YwContract> {
public interface YwContractMapper extends MPJBaseMapper<YwContract> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwContractRoomMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.doumee.dao.business.model.YwContractRoom;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwContractRoomMapper extends BaseMapper<YwContractRoom> {
public interface YwContractRoomMapper extends MPJBaseMapper<YwContractRoom> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwCustomerMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwCustomer;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwCustomerMapper extends BaseMapper<YwCustomer> {
public interface YwCustomerMapper extends MPJBaseMapper<YwCustomer> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwDeviceMapper.java
@@ -1,12 +1,13 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.doumee.dao.business.model.YwDevice;
import com.github.yulichang.base.mapper.MPJJoinMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwDeviceMapper extends BaseMapper<YwDevice> {
public interface YwDeviceMapper extends MPJBaseMapper<YwDevice> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwDeviceRecordMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwDeviceRecord;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwDeviceRecordMapper extends BaseMapper<YwDeviceRecord> {
public interface YwDeviceRecordMapper extends MPJBaseMapper<YwDeviceRecord> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwFloorMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwFloor;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/20 15:03
 */
public interface YwFloorMapper extends BaseMapper<YwFloor> {
public interface YwFloorMapper extends MPJBaseMapper<YwFloor> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwLinePointMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwLinePoint;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwLinePointMapper extends BaseMapper<YwLinePoint> {
public interface YwLinePointMapper extends MPJBaseMapper<YwLinePoint> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwPatrolLineMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.yulichang.base.MPJBaseMapper;
import com.doumee.dao.business.model.YwPatrolLine;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwPatrolLineMapper extends BaseMapper<YwPatrolLine> {
public interface YwPatrolLineMapper extends MPJBaseMapper<YwPatrolLine> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwPatrolPointMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwPatrolPoint;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwPatrolPointMapper extends BaseMapper<YwPatrolPoint> {
public interface YwPatrolPointMapper extends MPJBaseMapper<YwPatrolPoint> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwPatrolSchemeMapper.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwPatrolScheme;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwPatrolSchemeMapper extends BaseMapper<YwPatrolScheme> {
public interface YwPatrolSchemeMapper extends MPJBaseMapper<YwPatrolScheme> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwPatrolTaskMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwPatrolTask;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwPatrolTaskMapper extends BaseMapper<YwPatrolTask> {
public interface YwPatrolTaskMapper extends MPJBaseMapper<YwPatrolTask> {
}
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/YwProjectMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwProject;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwProjectMapper extends BaseMapper<YwProject> {
public interface YwProjectMapper extends MPJBaseMapper<YwProject> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwRoomMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwRoom;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwRoomMapper extends BaseMapper<YwRoom> {
public interface YwRoomMapper extends MPJBaseMapper<YwRoom> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwWorkorderLogMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.PlatformLog;
import com.doumee.dao.business.model.YwWorkorderLog;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/06/28 10:03
 */
public interface YwWorkorderLogMapper extends BaseMapper<YwWorkorderLog> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwWorkorderMapper.java
@@ -1,12 +1,12 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.YwWorkorder;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2024/11/19 16:07
 */
public interface YwWorkorderMapper extends BaseMapper<YwWorkorder> {
public interface YwWorkorderMapper extends MPJBaseMapper<YwWorkorder> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Category.java
@@ -68,7 +68,7 @@
     //@ExcelColumn(name="图标")
    private String imgurl;
    @ApiModelProperty(value = "类型 0公司类型 1车辆类型 2运维-客户行业分类 3运维-工单分类 4运维-巡检区域 5运维-设备分类" )
    @ApiModelProperty(value = "类型 0公司类型 1车辆类型 2运维-客户行业分类 3运维-工单分类 4运维-巡检区域 5运维-设备分类 6=客户行业" )
     //@ExcelColumn(name="类型 0公司类型 1车辆类型")
    private Integer type;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -64,6 +64,10 @@
    @ApiModelProperty(value = "类型 0司机人员 1普通访客  2内部人员 3客户联系人", example = "1")
    private Integer type;
    @ApiModelProperty(value = "身份 0老板 1超级管理员 2员工", example = "1")
    @ExcelColumn(name="身份 0老板 1超级管理员 2员工")
    private Integer highCheckor;
    @ApiModelProperty(value = "访客名称/内部人员")
    @ExcelColumn(name="姓名",index = 1,width = 8)
    private String name;
@@ -130,6 +134,9 @@
    private Date birthday;
    @ApiModelProperty(value = "客户编码(关联 YW_CUSTOMER ))", example = "1")
    private Integer customerId;
    @ApiModelProperty(value = "身份证号(MD4加密)")
    private String idcardNo;
    @ApiModelProperty(value = "修改的身份证号 ")
@@ -169,8 +176,6 @@
    private String hkId;
    @ApiModelProperty(value = "海康最近同步时间")
    private Date hkDate;
@@ -199,10 +204,6 @@
    @ApiModelProperty(value = "登陆密码")
    private String passward;
    @ApiModelProperty(value = "是否高级审批人 0否 1是", example = "1")
    private Integer highCheckor;
    @ApiModelProperty(value = "门禁角色编码(关联device_role),多个英文逗号隔开", example = "1")
    private String roleId;
@@ -215,6 +216,11 @@
    @ApiModelProperty(value = "访客公司名称")
    private String visitCompanyName;
    @ApiModelProperty(value = "邮箱")
    @ExcelColumn(name="邮箱")
    private String email;
    @ApiModelProperty(value = "最后操作人")
    @TableField(exist = false)
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwAccount.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;
@@ -83,5 +84,8 @@
    @ApiModelProperty(value = "开户行地址")
    @ExcelColumn(name="开户行地址")
    private String bankAddr;
    @ApiModelProperty(value = "企业名称")
    @TableField(exist = false)
    private String companyName;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwBuilding.java
@@ -105,6 +105,9 @@
    @ApiModelProperty(value = "房源数")
    @TableField(exist = false)
    private Integer roomNum;
    @ApiModelProperty(value = "项目名称")
    @TableField(exist = false)
    private String projectName;
    @ApiModelProperty(value = "可招商房源数")
    @TableField(exist = false)
    private Integer roomeRentNum;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.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;
@@ -11,6 +13,7 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import java.math.BigDecimal;
import java.util.List;
/**
 * è¿ç»´åˆåŒä¿¡æ¯è¡¨
@@ -148,4 +151,8 @@
    @ExcelColumn(name="物业费总金额")
    private BigDecimal wyTotalFee;
    @ApiModelProperty(value = "附件集合")
    @TableField(exist = false)
    private List<Multifile> fileList;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwCustomer.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;
@@ -141,4 +142,16 @@
    @ExcelColumn(name="联系人编码(关联member)")
    private Integer memberId;
    @ApiModelProperty(value = "有效期")
    @ExcelColumn(name="有效期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date validity;
    @ApiModelProperty(value = "默认员工信息")
    @TableField(exist = false)
    private Member member;
    @ApiModelProperty(value = "员工名称")
    @TableField(exist = false)
    private String memberName;
}
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/dao/business/model/YwRoom.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;
@@ -105,4 +106,10 @@
    @ExcelColumn(name="所属楼宇编码(关联yw_building)")
    private Integer buildingId;
    @ApiModelProperty(value = "项目名称")
    @TableField(exist = false)
    private String projectName;
    @ApiModelProperty(value = "楼宇名称")
    @TableField(exist = false)
    private String buildingName;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.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;
/**
 * è¿ç»´å·¥å•信息表
@@ -77,8 +80,8 @@
    @ExcelColumn(name="所属项目编码(关联yw_project)")
    private Integer projectId;
    @ApiModelProperty(value = "所属项目编码(关联yw_building)", example = "1")
    @ExcelColumn(name="所属项目编码(关联yw_building)")
    @ApiModelProperty(value = "所属楼宇编码(关联yw_building)", example = "1")
    @ExcelColumn(name="所属楼宇编码(关联yw_building)")
    private Integer buildingId;
    @ApiModelProperty(value = "所属房间编码(关联yw_room)", example = "1")
@@ -143,5 +146,40 @@
    @ApiModelProperty(value = "处理方式 0指派后处理 1直接回复", example = "1")
    @ExcelColumn(name="处理方式 0指派后处理 1直接回复")
    private Integer dealType;
    @ApiModelProperty(value = "项目名称")
    @TableField(exist = false)
    private String projectName;
    @ApiModelProperty(value = "楼宇名称")
    @TableField(exist = false)
    private String buildingName;
    @ApiModelProperty(value = "房源名称")
    @TableField(exist = false)
    private String roomName;
    @ApiModelProperty(value = "房号")
    @TableField(exist = false)
    private String roomNum;
    @ApiModelProperty(value = "提报人姓名")
    @TableField(exist = false)
    private String creatorName;
    @ApiModelProperty(value = "处理人姓名")
    @TableField(exist = false)
    private String dealUserName;
    @ApiModelProperty(value = "分配人姓名")
    @TableField(exist = false)
    private String dispatchUserName;
    @ApiModelProperty(value = "提报组织")
    @TableField(exist = false)
    private String creatorCompany;
    @ApiModelProperty(value = "提报人手机号")
    @TableField(exist = false)
    private String creatorPhone;
    @ApiModelProperty(value = "问题图片集合")
    @TableField(exist = false)
    private List<Multifile> fileList;
    @ApiModelProperty(value = "处理图片集合")
    @TableField(exist = false)
    private List<Multifile> dealFileList;
    @ApiModelProperty(value = "操作记录列表")
    @TableField(exist = false)
    private List<YwWorkorderLog> logList;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorderLog.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,102 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * æœˆå°_作业操作历史表
 * @author æ±Ÿè¹„蹄
 * @date 2024/06/28 10:03
 */
@Data
@ApiModel("运维-工单操作历史表")
@TableName("`yw_workorder_log`")
public class YwWorkorderLog {
    @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="创建时间")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    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_workorder)", example = "1")
    @ExcelColumn(name="工单编码(关联yw_workorder)")
    private Integer jobId;
    @ApiModelProperty(value = "标题")
    @ExcelColumn(name="标题")
    private String title;
    @ApiModelProperty(value = "简介")
    @ExcelColumn(name="简介")
    private String content;
    @ApiModelProperty(value = "操作类型 0工单创建 1指派 2处理", example = "1")
    @ExcelColumn(name="操作类型 0工单创建 1指派 2处理")
    private Integer objType;
    @ApiModelProperty(value = "关联对象编码")
    @ExcelColumn(name="关联对象编码")
    private String objId;
    @ApiModelProperty(value = "操作前内容")
    @ExcelColumn(name="操作前内容")
    private String beforeContent;
    @ApiModelProperty(value = "操作后内容")
    @ExcelColumn(name="操作后内容")
    private String afterContent;
    @ApiModelProperty(value = "参数1 æ“ä½œäººå§“名")
    @ExcelColumn(name="参数1")
    private String param1;
    @ApiModelProperty(value = "参数2 æŒ‡æ´¾å¯¹è±¡å§“名")
    @ExcelColumn(name="参数2")
    private String param2;
    @ApiModelProperty(value = "参数3 ")
    @ExcelColumn(name="参数3")
    private String param3;
    @ApiModelProperty(value = "参数4 ")
    @ExcelColumn(name="参数4")
    private String param4;
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/CompanyService.java
@@ -126,4 +126,7 @@
    List<Company> companyTree(Integer type);
    void updateSort(UpdateCompanySortDTO dto);
    Integer createFinanceCompany(Company company);
    Integer updateFinanceCompany(Company company);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -210,4 +210,13 @@
    List<Member>  findDriveList(Member model);
    /********************************************************阜宁运维*********************************************************************************************/
    Member ywCreate(Member member);
    Member ywUpdate(Member member);
    List<Member> ywList(Member member);
    PageData<Member> ywFindPage(PageWrap<Member> pageWrap);
}
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/YwWorkorderService.java
@@ -95,4 +95,7 @@
     * @return long
     */
    long count(YwWorkorder ywWorkorder);
    void dispatchOrder(YwWorkorder ywWorkorder);
    void dealOrder(YwWorkorder ywWorkorder);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -64,6 +64,32 @@
    @Autowired
    private CompanyJoinMapper companyJoinMapper;
    /**
     * åˆ›å»ºè´¢åŠ¡å…¬å¸
     * @param company
     * @return
     */
    @Override
    public Integer createFinanceCompany(Company company) {
        company.setType(Constants.TWO);
        if(companyMapper.selectCount(new QueryWrapper<Company>().lambda()
                .eq(Company::getName,company.getName())
                .eq(Company::getType,company.getType())
                .eq(Company::getIsdeleted,Constants.ZERO)) >0){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "对不起,名称不能重复~");
        }
        company.setCreateDate(new Date());
        company.setCreator(company.getLoginUserInfo().getId());
        company.setIsdeleted(Constants.ZERO);
        company.setStatus(Constants.ZERO);
        company.setSortnum(0);//默认最上面
        company.setHkDate(company.getCreateDate());
        company.setEditDate(company.getCreateDate());
        company.setEditor(company.getCreator());
        companyMapper.insert(company);
        return company.getId();
    }
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer create(Company company) {
@@ -332,6 +358,18 @@
        companyMapper.updateById(company);
        return null;
    }
    @Override
    public Integer updateFinanceCompany(Company company) {
        if(companyMapper.selectCount(new QueryWrapper<Company>().lambda()
                .eq(Company::getName,company.getName())
                .eq(Company::getType,company.getType())
                .ne(Company::getId,company.getId())
                .eq(Company::getIsdeleted,Constants.ZERO)) >0){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "对不起,名称不能重复~");
        }
        companyMapper.updateById(company);
        return company.getId();
    }
    @Override
    public void updateByIdInBatch(List<Company> companys) {
@@ -570,7 +608,8 @@
        /*        .leftJoin(Member.class, Member::getId,Company::getHeadId)*/
      /*  queryWrapper.leftJoin(" company c on c.id=t.parent_id");*/
        queryWrapper.selectAll(Company.class)
                .select("(select count(m.id) from member m where m.COMPANY_ID=t.id and m.ISDELETED=0) as countNum") ;
                .select("(select count(m.id) from member m where m.COMPANY_ID=t.id and m.ISDELETED=0) ",Company::getCountNum)
                .select("(select count(m.id) from yw_account m where m.COMPANY_ID=t.id and m.ISDELETED=0)",Company::getAccountNum) ;
        queryWrapper.select("t1.name",Company::getParentName);
        queryWrapper.select("t1.company_path",Company::getParentCompanyPath);
        queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getStatus()),Company::getStatus,Constants.ZERO);
@@ -651,6 +690,7 @@
        QueryWrapper<Company> wrapper = new QueryWrapper<>();
        wrapper.lambda()
                .eq(Company::getIsdeleted,Constants.ZERO)
                .eq(Company::getType,company.getType())
                .eq(Company::getName,company.getName());
        List<Company> companies = companyMapper.selectList(wrapper);
        if (CollectionUtils.isEmpty(companies)){
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -128,6 +128,9 @@
    
    @Value("${debug_model}")
    private Boolean isDebug;
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Member create(Member member) {
@@ -2100,6 +2103,108 @@
    }
    /********************************************************阜宁运维*********************************************************************************************/
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Member ywCreate(Member member) {
        if(Objects.isNull(member)
        || Objects.isNull(member.getCustomerId())
        || StringUtils.isBlank(member.getName())
        || StringUtils.isBlank(member.getPhone())
        || Objects.isNull(member.getHighCheckor())
        || Objects.isNull(member.getIdcardType())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = member.getLoginUserInfo();
        member.setCreator(loginUserInfo.getId());
        member.setCreateDate(new Date());
        member.setType(Constants.memberType.customer);
        member.setStatus(Constants.ZERO);
        member.setIsdeleted(Constants.ZERO);
        member.setStatus(Constants.ZERO);
        this.checkYwMember(member);
        memberMapper.insert(member);
        return member;
    }
    @Override
    public Member ywUpdate(Member member) {
        if(Objects.isNull(member)
                || Objects.isNull(member.getCustomerId())
                || Objects.isNull(member.getId())
                || StringUtils.isBlank(member.getName())
                || StringUtils.isBlank(member.getPhone())
                || Objects.isNull(member.getHighCheckor())
                || Objects.isNull(member.getIdcardType())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = member.getLoginUserInfo();
        member.setEditor(loginUserInfo.getId());
        member.setCustomerId(null);
        member.setEditDate(new Date());
        member.setType(Constants.memberType.customer);
        member.setStatus(Constants.ZERO);
        member.setIsdeleted(Constants.ZERO);
        member.setStatus(Constants.ZERO);
        this.checkYwMember(member);
        memberMapper.updateById(member);
        return member;
    }
    @Override
    public List<Member> ywList(Member member) {
        List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>()
                .lambda().eq(Member::getIsdeleted,Constants.ZERO)
                        .eq(Member::getStatus,Constants.ZERO)
                .eq(Member::getType,Constants.memberType.customer)
        );
        return memberList;
    }
    public void checkYwMember(Member member){
        if (StringUtils.isBlank(member.getPhone())||!PhoneUtil.isPhone(member.getPhone())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"电话号码格式有误");
        }
        if (StringUtils.isNotBlank(member.getIdcardNo()) && Constants.equalsInteger(member.getIdcardType(),Constants.ZERO)  && !IdcardUtil.isValidCard(member.getIdcardNo())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"身份证号格式有误");
        }
        if(StringUtils.isNotBlank(member.getIdcardNo() ) && Constants.equalsInteger(member.getIdcardType(),Constants.ZERO) ){
            if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                            .ne(Objects.nonNull(member.getId()),Member::getId,member.getId())
                    .eq(Member::getIdcardNo, DESUtil.encrypt(Constants.EDS_PWD, member.getIdcardNo()))
                    .eq(Member::getIsdeleted,Constants.ZERO)) >0){
                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "身份证号【"+member.getIdcardNo()+"】已被使用,不能重复");
            }
        }
        if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                .ne(Objects.nonNull(member.getId()),Member::getId,member.getId())
                .eq(Member::getPhone,  member.getPhone())
                .eq(Member::getIsdeleted,Constants.ZERO) ) >0){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "手机号【"+member.getPhone()+"】已被使用,不能重复");
        }
    }
    @Override
    public PageData<Member> ywFindPage(PageWrap<Member> pageWrap) {
        IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<Member>();
        Utils.MP.blankToNull(pageWrap.getModel());
        Member model = pageWrap.getModel();
        IPage iPage = memberMapper.selectJoinPage(page,Member.class,new MPJLambdaWrapper<Member>()
                .eq(Member::getIsdeleted,Constants.ZERO)
                .eq(Member::getType,Constants.memberType.customer)
                .eq(Objects.nonNull(model)&&Objects.nonNull(model.getCustomerId()),Member::getCustomerId,model.getCustomerId())
                .and(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getName()),i->i.like(Member::getName,model.getName()).or().like(
                        Member::getPhone,model.getName()
                ))
        );
        return PageData.from(iPage);
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwAccountServiceImpl.java
@@ -1,20 +1,28 @@
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.YwAccountMapper;
import com.doumee.dao.business.dao.CompanyMapper;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.YwAccount;
import com.doumee.dao.business.model.YwProject;
import com.doumee.service.business.YwAccountService;
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.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
/**
@@ -27,16 +35,38 @@
    @Autowired
    private YwAccountMapper ywAccountMapper;
    @Autowired
    private CompanyMapper companyMapper;
    @Override
    public Integer create(YwAccount ywAccount) {
        ywAccountMapper.insert(ywAccount);
        return ywAccount.getId();
    public Integer create(YwAccount model) {
        if(model.getCompanyId()==null){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的公司信息");
        }
        Company ywProject = companyMapper.selectById(model.getCompanyId());
        if(ywProject ==null || Constants.equalsInteger(ywProject.getIsdeleted(),Constants.ONE)
                || !Constants.equalsInteger(ywProject.getType(),Constants.TWO)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的公司信息!");
        }
        model.setCreator(model.getLoginUserInfo().getId());
        model.setIsdeleted(Constants.ZERO);
        model.setCreateDate(new Date());
        model.setStatus(Constants.ZERO);
        model.setEditDate(model.getCreateDate());
        model.setEditor(model.getCreator());
        ywAccountMapper.insert(model);
        return model.getId();
    }
    @Override
    public void deleteById(Integer id, LoginUserInfo user) {
        ywAccountMapper.deleteById(id);
        YwAccount model = new YwAccount();
        model.setId(id);
        model.setIsdeleted(Constants.ONE);
        model.setEditDate(model.getCreateDate());
        model.setEditor(model.getCreator());
        ywAccountMapper.updateById(model);
    }
    @Override
@@ -50,12 +80,24 @@
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        ywAccountMapper.deleteBatchIds(ids);
        for(Integer id : ids){
            this.deleteById(id,user);
        }
    }
    @Override
    public void updateById(YwAccount ywAccount) {
        ywAccountMapper.updateById(ywAccount);
    public void updateById(YwAccount model) {
        if(model.getCompanyId()==null){
        throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的公司信息");
    }
        Company ywProject = companyMapper.selectById(model.getCompanyId());
        if(ywProject ==null || Constants.equalsInteger(ywProject.getIsdeleted(),Constants.ONE)
                || !Constants.equalsInteger(ywProject.getType(),Constants.TWO)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的公司信息!");
        }
        model.setEditDate(model.getCreateDate());
        model.setEditor(model.getCreator());
        ywAccountMapper.updateById(model);
    }
    @Override
@@ -88,54 +130,58 @@
    @Override
    public PageData<YwAccount> findPage(PageWrap<YwAccount> pageWrap) {
        IPage<YwAccount> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwAccount> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<YwAccount> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(YwAccount.class)
                        .selectAs(Company::getName,YwAccount::getCompanyName)
                                .leftJoin(Company.class,Company::getId,YwAccount::getCompanyId);
        pageWrap.getModel().setIsdeleted(Constants.ZERO);
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwAccount::getId, pageWrap.getModel().getId());
            queryWrapper.eq(YwAccount::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(YwAccount::getCreator, pageWrap.getModel().getCreator());
            queryWrapper.eq(YwAccount::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(YwAccount::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(YwAccount::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
            queryWrapper.ge(YwAccount::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.le(YwAccount::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwAccount::getEditor, pageWrap.getModel().getEditor());
            queryWrapper.eq(YwAccount::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(YwAccount::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(YwAccount::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
            queryWrapper.ge(YwAccount::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.le(YwAccount::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(YwAccount::getIsdeleted, pageWrap.getModel().getIsdeleted());
            queryWrapper.eq(YwAccount::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(YwAccount::getRemark, pageWrap.getModel().getRemark());
            queryWrapper.eq(YwAccount::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(YwAccount::getStatus, pageWrap.getModel().getStatus());
            queryWrapper.eq(YwAccount::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getTitle() != null) {
            queryWrapper.lambda().eq(YwAccount::getTitle, pageWrap.getModel().getTitle());
            queryWrapper.like(YwAccount::getTitle, pageWrap.getModel().getTitle());
        }
        if (pageWrap.getModel().getCompanyId() != null) {
            queryWrapper.lambda().eq(YwAccount::getCompanyId, pageWrap.getModel().getCompanyId());
            queryWrapper.eq(YwAccount::getCompanyId, pageWrap.getModel().getCompanyId());
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.lambda().eq(YwAccount::getType, pageWrap.getModel().getType());
            queryWrapper.eq(YwAccount::getType, pageWrap.getModel().getType());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(YwAccount::getName, pageWrap.getModel().getName());
            queryWrapper.eq(YwAccount::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getBankName() != null) {
            queryWrapper.lambda().eq(YwAccount::getBankName, pageWrap.getModel().getBankName());
            queryWrapper.eq(YwAccount::getBankName, pageWrap.getModel().getBankName());
        }
        if (pageWrap.getModel().getBankNo() != null) {
            queryWrapper.lambda().eq(YwAccount::getBankNo, pageWrap.getModel().getBankNo());
            queryWrapper.eq(YwAccount::getBankNo, pageWrap.getModel().getBankNo());
        }
        if (pageWrap.getModel().getBankAddr() != null) {
            queryWrapper.lambda().eq(YwAccount::getBankAddr, pageWrap.getModel().getBankAddr());
            queryWrapper.eq(YwAccount::getBankAddr, pageWrap.getModel().getBankAddr());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwBuildingServiceImpl.java
@@ -1,11 +1,14 @@
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.YwBuildingMapper;
import com.doumee.dao.business.YwProjectMapper;
import com.doumee.dao.business.model.YwBuilding;
import com.doumee.dao.business.model.YwProject;
import com.doumee.service.business.YwBuildingService;
@@ -13,6 +16,7 @@
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.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -30,9 +34,18 @@
    @Autowired
    private YwBuildingMapper ywBuildingMapper;
    @Autowired
    private YwProjectMapper ywProjectMapper;
    @Override
    public Integer create(YwBuilding model) {
        if(model.getProjectId()==null){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的项目信息!");
        }
        YwProject ywProject = ywProjectMapper.selectById(model.getProjectId());
        if(ywProject ==null ||Constants.equalsInteger(ywProject.getIsdeleted(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的项目信息!");
        }
        model.setCreator(model.getLoginUserInfo().getId());
        model.setIsdeleted(Constants.ZERO);
        model.setCreateDate(new Date());
@@ -107,69 +120,72 @@
    @Override
    public PageData<YwBuilding> findPage(PageWrap<YwBuilding> pageWrap) {
        IPage<YwBuilding> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwBuilding> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<YwBuilding> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(YwBuilding.class )
                .selectAs(YwProject::getName,YwBuilding::getProjectName)
                .leftJoin(YwProject.class,YwProject::getId,YwBuilding::getProjectId);
        Utils.MP.blankToNull(pageWrap.getModel());
        pageWrap.getModel().setIsdeleted(Constants.ZERO);
        queryWrapper.select("*,(select count(1) from yw_room a where a.isdeleted=0 and a.BUILDING_ID=yw_building.id) as roomNum"+
                ",(select count(1) from yw_room a where a.isdeleted=0 and a.BUILDING_ID=yw_building.id and a.IS_INVESTMENT=1) as roomRentNum");
        queryWrapper.select("*,(select count(1) from yw_room a where a.isdeleted=0 and a.BUILDING_ID=t.id) as roomNum"+
                ",(select count(1) from yw_room a where a.isdeleted=0 and a.BUILDING_ID=t.id and a.IS_INVESTMENT=1) as roomRentNum");
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwBuilding::getId, pageWrap.getModel().getId());
            queryWrapper.eq(YwBuilding::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(YwBuilding::getCreator, pageWrap.getModel().getCreator());
            queryWrapper.eq(YwBuilding::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(YwBuilding::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(YwBuilding::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
            queryWrapper.ge(YwBuilding::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.le(YwBuilding::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwBuilding::getEditor, pageWrap.getModel().getEditor());
            queryWrapper.eq(YwBuilding::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(YwBuilding::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(YwBuilding::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
            queryWrapper.ge(YwBuilding::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.le(YwBuilding::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(YwBuilding::getIsdeleted, pageWrap.getModel().getIsdeleted());
            queryWrapper.eq(YwBuilding::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(YwBuilding::getName, pageWrap.getModel().getName());
            queryWrapper.eq(YwBuilding::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(YwBuilding::getRemark, pageWrap.getModel().getRemark());
            queryWrapper.eq(YwBuilding::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(YwBuilding::getStatus, pageWrap.getModel().getStatus());
            queryWrapper.eq(YwBuilding::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getSortnum() != null) {
            queryWrapper.lambda().eq(YwBuilding::getSortnum, pageWrap.getModel().getSortnum());
            queryWrapper.eq(YwBuilding::getSortnum, pageWrap.getModel().getSortnum());
        }
        if (pageWrap.getModel().getImgurl() != null) {
            queryWrapper.lambda().eq(YwBuilding::getImgurl, pageWrap.getModel().getImgurl());
            queryWrapper.eq(YwBuilding::getImgurl, pageWrap.getModel().getImgurl());
        }
        if (pageWrap.getModel().getCode() != null) {
            queryWrapper.lambda().eq(YwBuilding::getCode, pageWrap.getModel().getCode());
            queryWrapper.eq(YwBuilding::getCode, pageWrap.getModel().getCode());
        }
        if (pageWrap.getModel().getAddr() != null) {
            queryWrapper.lambda().eq(YwBuilding::getAddr, pageWrap.getModel().getAddr());
            queryWrapper.eq(YwBuilding::getAddr, pageWrap.getModel().getAddr());
        }
        if (pageWrap.getModel().getArea() != null) {
            queryWrapper.lambda().eq(YwBuilding::getArea, pageWrap.getModel().getArea());
            queryWrapper.eq(YwBuilding::getArea, pageWrap.getModel().getArea());
        }
        if (pageWrap.getModel().getCqArea() != null) {
            queryWrapper.lambda().eq(YwBuilding::getCqArea, pageWrap.getModel().getCqArea());
            queryWrapper.eq(YwBuilding::getCqArea, pageWrap.getModel().getCqArea());
        }
        if (pageWrap.getModel().getRentArea() != null) {
            queryWrapper.lambda().eq(YwBuilding::getRentArea, pageWrap.getModel().getRentArea());
            queryWrapper.eq(YwBuilding::getRentArea, pageWrap.getModel().getRentArea());
        }
        if (pageWrap.getModel().getOnFloor() != null) {
            queryWrapper.lambda().eq(YwBuilding::getOnFloor, pageWrap.getModel().getOnFloor());
            queryWrapper.eq(YwBuilding::getOnFloor, pageWrap.getModel().getOnFloor());
        }
        if (pageWrap.getModel().getUnderFloor() != null) {
            queryWrapper.lambda().eq(YwBuilding::getUnderFloor, pageWrap.getModel().getUnderFloor());
            queryWrapper.eq(YwBuilding::getUnderFloor, pageWrap.getModel().getUnderFloor());
        }
        if (pageWrap.getModel().getProjectId() != null) {
            queryWrapper.lambda().eq(YwBuilding::getProjectId, pageWrap.getModel().getProjectId());
            queryWrapper.eq(YwBuilding::getProjectId, pageWrap.getModel().getProjectId());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -178,7 +194,7 @@
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(ywBuildingMapper.selectPage(page, queryWrapper));
        return PageData.from(ywBuildingMapper.selectJoinPage(page,YwBuilding.class, queryWrapper));
    }
    @Override
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
@@ -1,11 +1,20 @@
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.YwContractMapper;
import com.doumee.dao.business.YwCustomerMapper;
import com.doumee.dao.business.YwProjectMapper;
import com.doumee.dao.business.YwRoomMapper;
import com.doumee.dao.business.dao.CompanyMapper;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.YwContract;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.service.business.YwContractService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -13,8 +22,10 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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;
/**
@@ -27,11 +38,44 @@
    @Autowired
    private YwContractMapper ywContractMapper;
    @Autowired
    private CompanyMapper companyMapper;
    @Autowired
    private YwProjectMapper projectMapper;
    @Autowired
    private YwRoomMapper roomMapper;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Autowired
    private YwCustomerMapper customerMapper;
    @Override
    public Integer create(YwContract ywContract) {
        ywContractMapper.insert(ywContract);
        return ywContract.getId();
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer create(YwContract model) {
        isParamValidCreated(model);
        model.setCreator(model.getLoginUserInfo().getId());
        model.setIsdeleted(Constants.ZERO);
        model.setCreateDate(new Date());
        model.setStatus(Constants.ZERO);
        model.setEditDate(model.getCreateDate());
        model.setEditor(model.getCreator());
        ywContractMapper.insert(model);
        return model.getId();
    }
    private void isParamValidCreated(YwContract model) {
        if(model.getCompanyId()==null){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的公司信息");
        }
        Company ywProject = companyMapper.selectById(model.getCompanyId());
        if(ywProject ==null || Constants.equalsInteger(ywProject.getIsdeleted(),Constants.ONE)
                || !Constants.equalsInteger(ywProject.getType(),Constants.TWO)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的公司信息!");
        }
    }
    @Override
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerServiceImpl.java
@@ -1,21 +1,36 @@
package com.doumee.service.business.impl;
import cn.emay.sdk.util.StringUtil;
import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.PhoneUtil;
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.DESUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.YwCustomerMapper;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.YwCustomer;
import com.doumee.service.business.YwCustomerService;
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.checkerframework.checker.units.qual.A;
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,11 +43,68 @@
    @Autowired
    private YwCustomerMapper ywCustomerMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer create(YwCustomer ywCustomer) {
        if(Objects.isNull(ywCustomer)
            || Objects.nonNull(ywCustomer.getType())
            || StringUtils.isBlank(ywCustomer.getName())
            || Objects.isNull(ywCustomer.getMember())
            || StringUtils.isBlank(ywCustomer.getMember().getName())
            || StringUtils.isBlank(ywCustomer.getMember().getPhone())
            || Objects.isNull(ywCustomer.getMember().getHighCheckor())
            || Objects.isNull(ywCustomer.getMember().getIdcardType())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = ywCustomer.getLoginUserInfo();
        ywCustomer.setStatus(Constants.ZERO);
        ywCustomer.setIsdeleted(Constants.ZERO);
        ywCustomer.setCreator(loginUserInfo.getId());
        ywCustomer.setCreateDate(new Date());
        ywCustomerMapper.insert(ywCustomer);
        Member member = ywCustomer.getMember();
        member.setCreator(loginUserInfo.getId());
        member.setCreateDate(new Date());
        member.setIsdeleted(Constants.ZERO);
        member.setStatus(Constants.ZERO);
        member.setCompanyType(ywCustomer.getId());
        member.setType(Constants.memberType.customer);
        this.checkMember(member);
        memberMapper.insert(member);
        ywCustomer.setMemberId(member.getId());
        ywCustomerMapper.updateById(ywCustomer);
        return ywCustomer.getId();
    }
    public void checkMember(Member member){
        if (StringUtils.isBlank(member.getPhone())||!PhoneUtil.isPhone(member.getPhone())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"电话号码格式有误");
        }
        if (StringUtils.isNotBlank(member.getIdcardNo()) && Constants.equalsInteger(member.getIdcardType(),Constants.ZERO)  && !IdcardUtil.isValidCard(member.getIdcardNo())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"身份证号格式有误");
        }
        if(StringUtils.isNotBlank(member.getIdcardNo() ) && Constants.equalsInteger(member.getIdcardType(),Constants.ZERO) ){
            if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                    .eq(Member::getIdcardNo, DESUtil.encrypt(Constants.EDS_PWD, member.getIdcardNo()))
                    .eq(Member::getIsdeleted,Constants.ZERO)) >0){
                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "身份证号【"+member.getIdcardNo()+"】已被使用,不能重复");
            }
        }
        if(memberMapper.selectCount(new QueryWrapper<Member>().lambda()
                .eq(Member::getPhone,  member.getPhone())
                .eq(Member::getIsdeleted,Constants.ZERO) ) >0){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "手机号【"+member.getPhone()+"】已被使用,不能重复");
        }
    }
    @Override
    public void deleteById(Integer id, LoginUserInfo user) {
@@ -55,6 +127,17 @@
    @Override
    public void updateById(YwCustomer ywCustomer) {
        if(Objects.isNull(ywCustomer)
                || Objects.nonNull(ywCustomer.getType())
                || StringUtils.isBlank(ywCustomer.getName())
                || Objects.isNull(ywCustomer.getMemberId())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        LoginUserInfo loginUserInfo = ywCustomer.getLoginUserInfo();
        ywCustomer.setEditor(loginUserInfo.getId());
        ywCustomer.setEditDate(new Date());
        ywCustomerMapper.updateById(ywCustomer);
    }
@@ -73,6 +156,17 @@
        return ywCustomerMapper.selectById(id);
    }
    public YwCustomer getDetail(Integer id) {
        YwCustomer ywCustomer = ywCustomerMapper.selectById(id);
        if(Objects.isNull(ywCustomer)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        Member member = memberMapper.selectById(ywCustomer.getMemberId());
        if(Objects.nonNull(member)){
            ywCustomer.setMember(member);
        }
        return ywCustomer;
    }
    @Override
    public YwCustomer findOne(YwCustomer ywCustomer) {
        QueryWrapper<YwCustomer> wrapper = new QueryWrapper<>(ywCustomer);
@@ -88,106 +182,19 @@
    @Override
    public PageData<YwCustomer> findPage(PageWrap<YwCustomer> pageWrap) {
        IPage<YwCustomer> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwCustomer> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<YwCustomer> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwCustomer::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(YwCustomer::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(YwCustomer::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(YwCustomer::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwCustomer::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(YwCustomer::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(YwCustomer::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(YwCustomer::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(YwCustomer::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getIndustryId() != null) {
            queryWrapper.lambda().eq(YwCustomer::getIndustryId, pageWrap.getModel().getIndustryId());
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.lambda().eq(YwCustomer::getType, pageWrap.getModel().getType());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(YwCustomer::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getPhone() != null) {
            queryWrapper.lambda().eq(YwCustomer::getPhone, pageWrap.getModel().getPhone());
        }
        if (pageWrap.getModel().getIdcardNo() != null) {
            queryWrapper.lambda().eq(YwCustomer::getIdcardNo, pageWrap.getModel().getIdcardNo());
        }
        if (pageWrap.getModel().getIdcardDecode() != null) {
            queryWrapper.lambda().eq(YwCustomer::getIdcardDecode, pageWrap.getModel().getIdcardDecode());
        }
        if (pageWrap.getModel().getCode() != null) {
            queryWrapper.lambda().eq(YwCustomer::getCode, pageWrap.getModel().getCode());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(YwCustomer::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getHighCheckor() != null) {
            queryWrapper.lambda().eq(YwCustomer::getHighCheckor, pageWrap.getModel().getHighCheckor());
        }
        if (pageWrap.getModel().getLastLoginDate() != null) {
            queryWrapper.lambda().ge(YwCustomer::getLastLoginDate, Utils.Date.getStart(pageWrap.getModel().getLastLoginDate()));
            queryWrapper.lambda().le(YwCustomer::getLastLoginDate, Utils.Date.getEnd(pageWrap.getModel().getLastLoginDate()));
        }
        if (pageWrap.getModel().getLoginNum() != null) {
            queryWrapper.lambda().eq(YwCustomer::getLoginNum, pageWrap.getModel().getLoginNum());
        }
        if (pageWrap.getModel().getUserId() != null) {
            queryWrapper.lambda().eq(YwCustomer::getUserId, pageWrap.getModel().getUserId());
        }
        if (pageWrap.getModel().getIdcardType() != null) {
            queryWrapper.lambda().eq(YwCustomer::getIdcardType, pageWrap.getModel().getIdcardType());
        }
        if (pageWrap.getModel().getAccountBank() != null) {
            queryWrapper.lambda().eq(YwCustomer::getAccountBank, pageWrap.getModel().getAccountBank());
        }
        if (pageWrap.getModel().getAccountNo() != null) {
            queryWrapper.lambda().eq(YwCustomer::getAccountNo, pageWrap.getModel().getAccountNo());
        }
        if (pageWrap.getModel().getAccountPhone() != null) {
            queryWrapper.lambda().eq(YwCustomer::getAccountPhone, pageWrap.getModel().getAccountPhone());
        }
        if (pageWrap.getModel().getCreditCard() != null) {
            queryWrapper.lambda().eq(YwCustomer::getCreditCard, pageWrap.getModel().getCreditCard());
        }
        if (pageWrap.getModel().getFpType() != null) {
            queryWrapper.lambda().eq(YwCustomer::getFpType, pageWrap.getModel().getFpType());
        }
        if (pageWrap.getModel().getAccountAddr() != null) {
            queryWrapper.lambda().eq(YwCustomer::getAccountAddr, pageWrap.getModel().getAccountAddr());
        }
        if (pageWrap.getModel().getIdentityType() != null) {
            queryWrapper.lambda().eq(YwCustomer::getIdentityType, pageWrap.getModel().getIdentityType());
        }
        if (pageWrap.getModel().getEmail() != null) {
            queryWrapper.lambda().eq(YwCustomer::getEmail, pageWrap.getModel().getEmail());
        }
        if (pageWrap.getModel().getMemberId() != null) {
            queryWrapper.lambda().eq(YwCustomer::getMemberId, pageWrap.getModel().getMemberId());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(ywCustomerMapper.selectPage(page, queryWrapper));
        YwCustomer model = pageWrap.getModel();
        IPage iPage = ywCustomerMapper.selectJoinPage(page,YwCustomer.class,
                queryWrapper
                .selectAll(YwCustomer.class)
                .selectAs(Member::getName,YwCustomer::getMemberName)
                .leftJoin(Member.class,Member::getId,YwCustomer::getMemberId)
                .eq(YwCustomer::getIsdeleted,Constants.ZERO)
                .like(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getName()),YwCustomer::getName,model.getName())
                .orderByDesc(YwCustomer::getCreateDate)
        );
        return PageData.from(iPage);
    }
    @Override
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 = t.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);
        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){
        //循环生成三天内的数据
        for (int i = 0; i < 3; i++) {
            Date schemeDate = DateUtil.getXDayAfterDate(new Date(),i);
            this.createTask(schemeDate,ywPatrolScheme);
        }
    }
    /**
     * æ ¹æ®æ—¥æœŸç”Ÿæˆä»»åŠ¡
     * @param schemeDate
     * @param ywPatrolScheme
     */
    public void createTask(Date schemeDate,YwPatrolScheme ywPatrolScheme){
        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(ywPatrolScheme.getCreator());
        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(ywPatrolScheme.getCreator());
            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);
        }
    }
    @Override
@@ -88,92 +271,77 @@
    @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())
                //查询有时段交集的数据
                .apply(Objects.nonNull(model.getStartDate())&&Objects.nonNull(model.getEndDate()),
                        " t.START_DATE <= '"+Utils.Date.getStart(pageWrap.getModel().getEndDate())+"' and t.END_DATE >= '"+Utils.Date.getStart(pageWrap.getModel().getStartDate())+"' "
                )
//                .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());
        }
        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()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwPatrolScheme::getEditor, pageWrap.getModel().getEditor());
        }
        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 (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());
            }
        }
        return PageData.from(ywPatrolSchemeMapper.selectPage(page, queryWrapper));
        return PageData.from(iPage);
    }
    //获取状态
    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(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(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(Constants.equalsInteger(ywPatrolTaskList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.THREE)).collect(Collectors.toList()).size()
                ,ywPatrolTaskList.size())){
            ywPatrolScheme.setSchemeStatus(Constants.TWO);
            return;
        }
    }
    @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实现
@@ -84,82 +95,45 @@
        QueryWrapper<YwPatrolTask> wrapper = new QueryWrapper<>(ywPatrolTask);
        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
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java
@@ -17,6 +17,7 @@
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.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -129,73 +130,78 @@
    @Override
    public PageData<YwRoom> findPage(PageWrap<YwRoom> pageWrap) {
        IPage<YwRoom> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwRoom> queryWrapper = new QueryWrapper<>();
         MPJLambdaWrapper<YwRoom> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(YwBuilding.class )
                .selectAs(YwProject::getName,YwRoom::getProjectName)
                .selectAs(YwBuilding::getName,YwRoom::getBuildingName)
                .leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
                .leftJoin(YwBuilding.class,YwBuilding::getId,YwRoom::getBuildingId);
        pageWrap.getModel().setIsdeleted(Constants.ZERO);
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwRoom::getId, pageWrap.getModel().getId());
            queryWrapper.eq(YwRoom::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(YwRoom::getCreator, pageWrap.getModel().getCreator());
            queryWrapper.eq(YwRoom::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(YwRoom::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(YwRoom::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
            queryWrapper.ge(YwRoom::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.le(YwRoom::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(YwRoom::getEditor, pageWrap.getModel().getEditor());
            queryWrapper.eq(YwRoom::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(YwRoom::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(YwRoom::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
            queryWrapper.ge(YwRoom::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.le(YwRoom::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(YwRoom::getIsdeleted, pageWrap.getModel().getIsdeleted());
            queryWrapper.eq(YwRoom::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(YwRoom::getName, pageWrap.getModel().getName());
            queryWrapper.eq(YwRoom::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(YwRoom::getRemark, pageWrap.getModel().getRemark());
            queryWrapper.eq(YwRoom::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(YwRoom::getStatus, pageWrap.getModel().getStatus());
            queryWrapper.eq(YwRoom::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getSortnum() != null) {
            queryWrapper.lambda().eq(YwRoom::getSortnum, pageWrap.getModel().getSortnum());
            queryWrapper.eq(YwRoom::getSortnum, pageWrap.getModel().getSortnum());
        }
        if (pageWrap.getModel().getImgurl() != null) {
            queryWrapper.lambda().eq(YwRoom::getImgurl, pageWrap.getModel().getImgurl());
            queryWrapper.eq(YwRoom::getImgurl, pageWrap.getModel().getImgurl());
        }
        if (pageWrap.getModel().getCode() != null) {
            queryWrapper.lambda().eq(YwRoom::getCode, pageWrap.getModel().getCode());
            queryWrapper.eq(YwRoom::getCode, pageWrap.getModel().getCode());
        }
        if (pageWrap.getModel().getRoomNum() != null) {
            queryWrapper.lambda().eq(YwRoom::getRoomNum, pageWrap.getModel().getRoomNum());
            queryWrapper.eq(YwRoom::getRoomNum, pageWrap.getModel().getRoomNum());
        }
        if (pageWrap.getModel().getIsInvestment() != null) {
            queryWrapper.lambda().eq(YwRoom::getIsInvestment, pageWrap.getModel().getIsInvestment());
            queryWrapper.eq(YwRoom::getIsInvestment, pageWrap.getModel().getIsInvestment());
        }
        if (pageWrap.getModel().getArea() != null) {
            queryWrapper.lambda().eq(YwRoom::getArea, pageWrap.getModel().getArea());
            queryWrapper.eq(YwRoom::getArea, pageWrap.getModel().getArea());
        }
        if (pageWrap.getModel().getFeeArea() != null) {
            queryWrapper.lambda().eq(YwRoom::getFeeArea, pageWrap.getModel().getFeeArea());
            queryWrapper.eq(YwRoom::getFeeArea, pageWrap.getModel().getFeeArea());
        }
        if (pageWrap.getModel().getRentArea() != null) {
            queryWrapper.lambda().eq(YwRoom::getRentArea, pageWrap.getModel().getRentArea());
            queryWrapper.eq(YwRoom::getRentArea, pageWrap.getModel().getRentArea());
        }
        if (pageWrap.getModel().getFloor() != null) {
            queryWrapper.lambda().eq(YwRoom::getFloor, pageWrap.getModel().getFloor());
            queryWrapper.eq(YwRoom::getFloor, pageWrap.getModel().getFloor());
        }
        if (pageWrap.getModel().getProjectId() != null) {
            queryWrapper.lambda().eq(YwRoom::getProjectId, pageWrap.getModel().getProjectId());
            queryWrapper.eq(YwRoom::getProjectId, pageWrap.getModel().getProjectId());
        }
        if (pageWrap.getModel().getBuildingId() != null) {
            queryWrapper.lambda().eq(YwRoom::getBuildingId, pageWrap.getModel().getBuildingId());
            queryWrapper.eq(YwRoom::getBuildingId, pageWrap.getModel().getBuildingId());
        }
        queryWrapper.lambda().orderByAsc(YwRoom::getRoomNum);
        return PageData.from(ywRoomMapper.selectPage(page, queryWrapper));
        queryWrapper.orderByAsc(YwRoom::getRoomNum);
        return PageData.from(ywRoomMapper.selectJoinPage(page,YwRoom.class, queryWrapper));
    }
    @Override
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java
@@ -1,21 +1,36 @@
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.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.YwWorkorderMapper;
import com.doumee.dao.business.model.YwWorkorder;
import com.doumee.dao.business.*;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.MultifileMapper;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.model.Multifile;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.YwWorkorderService;
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.checkerframework.checker.units.qual.C;
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.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
@@ -28,16 +43,112 @@
    @Autowired
    private YwWorkorderMapper ywWorkorderMapper;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Autowired
    private YwWorkorderLogMapper ywWorkorderLogMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private MultifileMapper multifileMapper;
    @Autowired
    private YwProjectMapper ywProjectMapper;
    @Autowired
    private YwRoomMapper ywRoomMapper;
    @Autowired
    private YwBuildingMapper ywBuildingMapper;
    @Override
    public Integer create(YwWorkorder ywWorkorder) {
        ywWorkorderMapper.insert(ywWorkorder);
        return ywWorkorder.getId();
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public Integer create(YwWorkorder model) {
        dealParamValid(model);
        model.setCreator(model.getLoginUserInfo().getId());
        model.setIsdeleted(Constants.ZERO);
        model.setCreateDate(new Date());
        model.setStatus(Constants.ZERO);
        model.setEditDate(model.getCreateDate());
        model.setEditor(model.getCreator());
        ywWorkorderMapper.insert(model);
        List<Multifile> fileList = new ArrayList<>();
        if(model.getFileList()!=null && model.getFileList().size()>0){
            boolean isTrue = false;
            for (int i = 0; i <  model.getFileList().size(); i++) {
                Multifile multifile =  model.getFileList().get(i);
                if(StringUtils.isBlank(multifile.getFileurl())){
                    continue;
                }
                multifile.setCreateDate(new Date());
                multifile.setCreator(model.getEditor());
                multifile.setIsdeleted(Constants.ZERO);
                multifile.setObjId(model.getId());
                multifile.setCreator(model.getCreator());
                multifile.setObjType(Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey());
                multifile.setSortnum(i+1);
                fileList.add(multifile);
            }
        }
        if(fileList.size()>0){
            multifileMapper.insert(fileList);
        }
        dealLogBiz(model,Constants.ZERO,model.getLoginUserInfo().getRealname(),null);//记录新建日志
        return model.getId();
    }
    private void dealLogBiz(YwWorkorder model, int type,String param1,String param2) {
        YwWorkorderLog log = new YwWorkorderLog();
        log.setCreateDate(model.getEditDate());
        log.setCreator(model.getCreator());
        log.setJobId(model.getId());
        log.setIsdeleted(Constants.ZERO);
        log.setObjId(model.getId()+"");
        log.setObjType(type);
        log.setParam1(param1);
        log.setParam2(param2);
        if(type ==0){
            log.setTitle("创建工单");
        }else  if(type ==1){
            log.setTitle("分派工单");
        }else  if(type ==2){
            log.setTitle("处理工单");
        }
        ywWorkorderLogMapper.insert(log);
    }
    private void dealParamValid(YwWorkorder model) {
        if(Constants.equalsInteger(model.getAreaType(),Constants.ZERO))   {
            //如果是市内装修,必须选择房源信息
            if(model.getRoomId()==null){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的房源信息!");
            }
            YwRoom room = ywRoomMapper.selectById(model.getRoomId());
            if(room ==null || Constants.equalsInteger(room.getIsdeleted(),Constants.ONE)){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的房源信息!");
            }
            model.setBuildingId(room.getBuildingId());
            model.setProjectId(room.getProjectId());
        }else{
            //如果是公共区域装修,必须选择楼宇信息
            if(model.getBuildingId()==null){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的楼宇信息!");
            }
            YwBuilding room = ywBuildingMapper.selectById(model.getRoomId());
            if(room ==null || Constants.equalsInteger(room.getIsdeleted(),Constants.ONE)){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,请选择正确的楼宇信息!");
            }
            model.setProjectId(room.getProjectId());
        }
    }
    @Override
    public void deleteById(Integer id, LoginUserInfo user) {
        ywWorkorderMapper.deleteById(id);
        YwWorkorder model = new YwWorkorder();
        model.setId(id);
        model.setEditDate(new Date());
        model.setEditor(user.getId());
        model.setIsdeleted(Constants.ONE);
        ywWorkorderMapper.updateById(model);
    }
    @Override
@@ -51,14 +162,131 @@
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        ywWorkorderMapper.deleteBatchIds(ids);
        for(Integer id : ids){
            this.deleteById(id,user);
        }
    }
    @Override
    public void updateById(YwWorkorder ywWorkorder) {
        ywWorkorderMapper.updateById(ywWorkorder);
    }
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public  void dispatchOrder(YwWorkorder ywWorkorder){
        YwWorkorder model = this.findById(ywWorkorder.getId());
        if(model ==null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,工单信息不存在!");
        }
        if(!Constants.equalsInteger(model.getDealStatus(),Constants.ZERO) && !Constants.equalsInteger(model.getDealStatus(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,工单状态已流转,不支持当前操作!");
        }
        SystemUser user = systemUserMapper.selectById(ywWorkorder.getDealUserId());
        if(user ==null ||  (user.getDeleted()!=null&& user.getDeleted() )){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,员工信息不存在!");
        }
        YwWorkorder update = new YwWorkorder();
        update.setId(model.getId());
        update.setEditDate(new Date());
        update.setEditor(ywWorkorder.getLoginUserInfo().getId());
        update.setDealStatus(Constants.ONE);
        update.setDispatchUserId(update.getEditor());
        update.setDispatchDate(update.getEditDate());
        update.setDispatchInfo(ywWorkorder.getDispatchInfo());
        ywWorkorderMapper.updateById(update);
        dealLogBiz(model,Constants.ONE,model.getLoginUserInfo().getRealname(),user.getRealname());//记录新建日志
    }
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public  void dealOrder(YwWorkorder ywWorkorder){
        YwWorkorder model = this.findById(ywWorkorder.getId());
        if(model ==null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,工单信息不存在!");
        }
        if(!Constants.equalsInteger(model.getDealStatus(),Constants.ZERO) && !Constants.equalsInteger(model.getDealStatus(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,工单状态已流转,不支持当前操作!");
        }
        SystemUser user = systemUserMapper.selectById(ywWorkorder.getDealUserId());
        if(user ==null ||  (user.getDeleted()!=null&& user.getDeleted() )){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,员工信息不存在!");
        }
        YwWorkorder update = new YwWorkorder();
        update.setId(model.getId());
        update.setEditDate(new Date());
        update.setEditor(ywWorkorder.getLoginUserInfo().getId());
        update.setDealStatus(Constants.TWO);
        update.setDealUserId(update.getEditor());
        update.setDealDate(update.getEditDate());
        update.setDealInfo(ywWorkorder.getDispatchInfo());
        ywWorkorderMapper.updateById(update);
        dealLogBiz(model,Constants.TWO,model.getLoginUserInfo().getRealname(),null);//记录新建日志
    }
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void updateById(YwWorkorder model) {
        dealParamValid(model);
        model.setEditDate(new Date());
        model.setEditor(model.getLoginUserInfo().getId());
        ywWorkorderMapper.updateById(model);
        List<Multifile> fileList = new ArrayList<>();
        if(model.getFileList()!=null && model.getFileList().size()>0){
            for (int i = 0; i <  model.getFileList().size(); i++) {
                Multifile multifile =  model.getFileList().get(i);
                if(StringUtils.isBlank(multifile.getFileurl())){
                    continue;
                }
                multifile.setCreateDate(new Date());
                multifile.setCreator(model.getEditor());
                multifile.setIsdeleted(Constants.ZERO);
                multifile.setObjId(model.getId());
                multifile.setCreator(model.getCreator());
                multifile.setObjType(Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey());
                multifile.setSortnum(i+1);
                fileList.add(multifile);
            }
        }
        multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda()
                .set(Multifile::getIsdeleted,Constants.ONE)
                .set(Multifile::getEditDate,model.getEditDate())
                .set(Multifile::getEditor,model.getEditor())
                .eq(Multifile::getIsdeleted, Constants.ZERO)
                .eq(Multifile::getObjType,Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey())
        );
        if(fileList.size()>0){
            multifileMapper.insert(fileList);
        }
    }
    private void initFiles(YwWorkorder model) {
        List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
                .eq(Multifile::getObjId, model.getId() )
                .in(Multifile::getObjType, Arrays.asList(new Integer[]{Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey()
                        ,Constants.MultiFile.YW_WORKORDER_DEAL.getKey() }))
                .eq(Multifile::getIsdeleted,Constants.ZERO));
        if(multifiles!=null){
            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_WORKORDER_FILE).getCode();
            for(Multifile f : multifiles){
                if(StringUtils.isBlank(f.getFileurl())){
                    continue;
                }
                f.setFileurlFull(path+f.getFileurl());
                if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey())){
                    //现场情况
                    if(model.getFileList() == null){
                        model.setFileList(new ArrayList<>());
                    }
                    model.getFileList().add(f);
                }
                if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.YW_WORKORDER_DEAL.getKey())){
                    //处理附件
                    if(model.getDealFileList() == null){
                        model.setDealFileList(new ArrayList<>());
                    }
                    model.getDealFileList().add(f);
                }
            }
        }
    }
    @Override
    public void updateByIdInBatch(List<YwWorkorder> ywWorkorders) {
        if (CollectionUtils.isEmpty(ywWorkorders)) {
@@ -71,7 +299,25 @@
    @Override
    public YwWorkorder findById(Integer id) {
        return ywWorkorderMapper.selectById(id);
        MPJLambdaWrapper<YwWorkorder> wrapper = new MPJLambdaWrapper<>();
        wrapper.selectAll(YwWorkorder.class )
                .select("t4.realname",YwWorkorder::getDealUserName)
                .select("t3.realname",YwWorkorder::getDispatchUserName)
                .selectAs(SystemUser::getRealname,YwWorkorder::getCreatorName)
                .selectAs(SystemUser::getMobile,YwWorkorder::getCreatorPhone)
                .selectAs(Company::getCompanyNamePath,YwWorkorder::getCreatorCompany)
                .leftJoin(SystemUser.class,SystemUser::getId,YwWorkorder::getCreator)
                .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
                .leftJoin(SystemUser.class,SystemUser::getId,YwWorkorder::getDispatchUserId)
                .leftJoin(SystemUser.class,SystemUser::getId,YwWorkorder::getDealUserId)
                .eq(YwWorkorder::getId,id);
        YwWorkorder model = ywWorkorderMapper.selectJoinOne(YwWorkorder.class,wrapper);
        initFiles(model);//读取附件信息
        YwWorkorderLog log = new YwWorkorderLog();
        log.setJobId(model.getId());
        log.setIsdeleted(Constants.ZERO);
        model.setLogList(ywWorkorderLogMapper.selectList(new QueryWrapper<YwWorkorderLog>(log).lambda().orderByAsc(YwWorkorderLog::getCreateDate)));
        return model;
    }
    @Override
@@ -82,6 +328,7 @@
    @Override
    public List<YwWorkorder> findList(YwWorkorder ywWorkorder) {
        ywWorkorder.setIsdeleted(Constants.ZERO);
        QueryWrapper<YwWorkorder> wrapper = new QueryWrapper<>(ywWorkorder);
        return ywWorkorderMapper.selectList(wrapper);
    }
@@ -90,6 +337,7 @@
    public PageData<YwWorkorder> findPage(PageWrap<YwWorkorder> pageWrap) {
        IPage<YwWorkorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<YwWorkorder> queryWrapper = new QueryWrapper<>();
        pageWrap.getModel().setIsdeleted(Constants.ZERO);
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(YwWorkorder::getId, pageWrap.getModel().getId());