liukangdong
2024-10-21 4e45a8252d7bccd23a1a57aa541a2ea521760572
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
已添加2个文件
已修改35个文件
768 ■■■■ 文件已修改
admin/src/views/business/strandedPersonnel.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Bookings.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/bootstrap.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/Constants.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/api/HkVisitTimerController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/PlatformWaterGasController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWaterGasCloudController.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsLockStatusQueryRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/PlatformGasImport.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/PlatformWaterGasForExcelVO.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerParamServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/strandedPersonnel.vue
@@ -8,12 +8,12 @@
      <el-form-item label="组织名称" prop="companyName">
        <el-input v-model="searchForm.companyName" placeholder="请输入组织名称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="用户类型" prop="type">
<!--      <el-form-item label="用户类型" prop="type">
        <el-select v-model="searchForm.type" placeholder="请选择">
          <el-option label="访客" value="1"></el-option>
          <el-option label="劳务" value="0"></el-option>
        </el-select>
      </el-form-item>
      </el-form-item>-->
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
        <el-button @click="reset">重置</el-button>
@@ -30,11 +30,12 @@
        <el-table-column prop="phone" label="手机号" min-width="100px"></el-table-column>
        <el-table-column prop="companyName" label="组织" min-width="100px"></el-table-column>
        <el-table-column label="用户类型" min-width="100px">
          <template slot-scope="{ row }">
            <span v-if="row.type === 0">劳务访客</span>
            <span v-if="row.type === 1">普通访客</span>
            <span v-if="row.type === 2">内部人员</span>
          </template>
          <span>访客</span>
          <!-- <template slot-scope="{ row }">
               <span v-if="row.type === 0">劳务访客</span>
               <span v-if="row.type === 1">普通访客</span>
               <span v-if="row.type === 2">内部人员</span>
          </template>-->
        </el-table-column>
        <el-table-column prop="inDate" label="在园时间" min-width="100px"></el-table-column>
        <el-table-column prop="outDate" label="授权到期时间" min-width="100px"></el-table-column>
@@ -85,8 +86,8 @@
      searchForm: {
        companyName: '',
        name: '',
        status: 2,
        type: '1'
        status: 2
        // type: '1'
      },
      user: []
    }
server/meeting/meeting_service/src/main/java/com/doumee/dao/business/model/Bookings.java
@@ -108,6 +108,9 @@
    @ApiModelProperty(value = "提前开始时间")
    private Date startTimeReal;
    @ApiModelProperty(value = "是否发送参会人通知:0=通知;1=不通知")
    private Integer joinNotice;
    @ApiModelProperty(value = "预约人")
    @TableField(exist = false)
    private String realName ;
server/system_gateway/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
  profiles:
    active: pro
    active: dev
  application:
    name: system_gateway
  # å®‰å…¨é…ç½®
server/system_service/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java
@@ -295,7 +295,8 @@
                            }else{
                                val = String.valueOf(val.toString()).trim();
                            }
                        }else if (valType == Integer.class){
                        }
                        else if (valType == Integer.class){
                            val = Double.valueOf(val.toString()).intValue();
                        }else if (valType == Long.class){
                            val = Double.valueOf(val.toString()).longValue();
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -73,6 +73,8 @@
    public static final String MEMBER_IMG = "MEMBER_IMG";
    public static final String PLATFORM_EVENT_IMG = "PLATFORM_EVENT_IMG";
    public static final String VISIT_NOTICE = "VISIT_NOTICE";
    public static final String TIME_OUT_CONFIG = "TIME_OUT_CONFIG";
    //健康证配置
    public static final String LW_HEALTH_CARD = "LW_HEALTH_CARD";
    public static final String HEALTH_CARD = "HEALTH_CARD";
@@ -420,6 +422,7 @@
    public interface RedisKeys {
        public static final String IMPORTING_MEMBER ="IMPORTING_MEMBER";
        public static final String IMPORTING_GAS ="IMPORTING_GAS";
        public static final String ERP_TOKEN ="ERP_TOKEN";
        public static final long EXPIRE_TIME = 7200;
@@ -795,12 +798,13 @@
     * 5、超时停靠:1号月台 çš–A12345 å½“前车辆超时停靠,请尽快驶离
     */
    public  enum PlatformLedContent {
        IDEL_CONTNET(1, "空闲中","{param}" ),
        IDEL_CONTNET(1, "空闲中","安泰物流有限责任公司" ),
        CALLING(2, "叫号中","${param} ${param2}  å«å·ä¸­"),
        WORKING(3, "作业中","${param} ${param2} ä½œä¸šä¸­" ),
        WRONG_IN(4, "错误停靠","${param} ${param2} å½“前车辆错误停靠,请尽快驶离" ),
        TIMEOUT_IN(5, "超时停靠","${param} ${param2} å½“前车辆超时停靠,请尽快驶离" ),
        TIMEOUT_WORK(6, "作业超时","${param} ${param2} å½“前车辆作业超时" ),
        DONE(7, "作业完成","${param} ${param2} ä½œä¸šå®Œæˆ" ),
        ;
        // æˆå‘˜å˜é‡
server/system_service/src/main/java/com/doumee/core/utils/SmsConstants.java
@@ -41,7 +41,7 @@
        String visitAuditFail = "visitAuditFail";
        //访客申请-超时未签离-通知(给申请人):
        String visitTimeOutSignOut = "visitTimeOutSignOut";
        //访客申请-超时未签离-通知(给指定接收人)
        //访客申请-未签离数量-通知(给指定接收人) //TODO æ— æ”¶çŸ­ä¿¡äººå‘˜
        String visitTimeOutSignOutNum = "visitTimeOutSignOutNum";
    }
@@ -85,7 +85,7 @@
        String carUseBookAuditSuccess = "carUseBookAuditSuccess";
        //用车申请-审批驳回通知(给申请人):。
        String carUseBookAuditFail = "carUseBookAuditFail";
        //用车申请-审批驳回通知(给申请人):。
        //用车申请-审批取消通知(给申请人):。
        String carUseBookCancel = "carUseBookCancel";
    }
server/system_service/src/main/java/com/doumee/service/system/impl/NoticesServiceImpl.java
@@ -120,7 +120,6 @@
        if (pageWrap.getModel().getReaded() != null) {
            queryWrapper.eq(Notices::getReaded, pageWrap.getModel().getReaded());
        }
        if(CollectionUtils.isNotEmpty(pageWrap.getSorts())){
            for(PageWrap.SortData sortData: pageWrap.getSorts()) {
                if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -133,7 +132,6 @@
            queryWrapper.orderByDesc(Notices::getCreateDate);
        }
        PageData<Notices> pageData = PageData.from(noticesMapper.selectJoinPage(page,Notices.class, queryWrapper));
        return pageData;
    }
@@ -178,8 +176,8 @@
        queryWrapper.ge(noticesDTO.getStartDate() != null, Notices::getCreateDate, Utils.Date.getStart(noticesDTO.getStartDate() ));
        queryWrapper.le(noticesDTO.getEndDate() != null,  Notices::getCreateDate, Utils.Date.getEnd(noticesDTO.getEndDate() ));
        queryWrapper.eq(Objects.nonNull(noticesDTO.getType()),Notices::getType,noticesDTO.getType());
        queryWrapper.eq(Objects.nonNull(noticesDTO.getMemberId()),Notices::getUserId,noticesDTO.getMemberId());
        queryWrapper.eq(StringUtils.isNotBlank(noticesDTO.getTitle()),Notices::getTitle,noticesDTO.getTitle());
//        queryWrapper.eq(Objects.nonNull(noticesDTO.getMemberId()),Notices::getUserId,noticesDTO.getMemberId());
        queryWrapper.like(StringUtils.isNotBlank(noticesDTO.getTitle()),Notices::getTitle,noticesDTO.getTitle());
        queryWrapper.orderByDesc(Notices::getCreateDate);
        PageData<Notices> pageData = PageData.from(noticesMapper.selectJoinPage(page,Notices.class, queryWrapper));
        if(noticesDTO.getQueryType().equals(Constants.ZERO)){
server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
@@ -70,5 +70,9 @@
    @ApiOperation("【数字化月台】月台作业报警业务")
    @GetMapping("/timer/platformJob/platformJobTimer")
    ApiResponse platformJobTimer();
    @ApiOperation("【访客系统】访客数据即将超时预警")
    @GetMapping("/timer/visit/visitTimeOut")
    ApiResponse visitTimeOut() ;
}
server/visits/admin_timer/src/main/java/com/doumee/api/HkVisitTimerController.java
@@ -3,6 +3,7 @@
import com.doumee.api.BaseController;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.service.business.VisitsService;
import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl;
import com.doumee.service.business.impl.hksync.fhk.HkSyncVisitFromHKServiceImpl;
@@ -28,6 +29,9 @@
    private HkSyncVisitServiceImpl hkSyncVisitService;
    @Autowired
    private HkSyncVisitFromHKServiceImpl hkSyncVisitFromHKService;
    @Autowired
    private VisitsService visitsService;
    @ApiOperation("开启定时下发访客预约申请")
    @GetMapping("/syncVisitData")
    public ApiResponse syncVisitData() {
@@ -57,4 +61,11 @@
        return ApiResponse.success("开启定时今日的访客预约数据成功");
    }
    @ApiOperation("访客即将超时预警")
    @GetMapping("/visitTimeOut")
    public ApiResponse visitTimeOut() {
        visitsService.syncTimeOutData();
        return ApiResponse.success("访客即将超时预警");
    }
}
server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java
@@ -8,6 +8,7 @@
import com.doumee.core.wx.WXConstant;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.service.business.PlatformJobService;
import com.doumee.service.business.VisitsService;
import com.doumee.service.system.SystemDictDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -34,6 +35,7 @@
    @Autowired
    private PlatformJobService platformJobService;
    @ApiOperation("月台作业报警业务")
    @GetMapping("/platformJobTimer")
    public ApiResponse platformJobTimer() {
server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/PlatformWaterGasController.java
@@ -78,7 +78,8 @@
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:platformwatergas:exportExcel")
    public void exportExcel (@RequestBody PageWrap<PlatformWaterGas> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(PlatformWaterGas.class).export(platformWaterGasService.findPage(pageWrap).getRecords(), "月台_用水用气信息记录表", response);
        List<PlatformWaterGas>  waterGasPageData = platformWaterGasService.findPage(pageWrap).getRecords();
        ExcelExporter.build(PlatformWaterGas.class).export(waterGasPageData, "月台_用水用气信息记录表", response);
    }
    @ApiOperation("根据ID查询")
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformJobCloudController.java
@@ -12,12 +12,14 @@
import com.doumee.dao.web.reqeust.JobDetailDTO;
import com.doumee.dao.web.reqeust.SignInDTO;
import com.doumee.service.business.PlatformJobService;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
@@ -76,7 +78,13 @@
    @PostMapping("/exportExcel")
    @CloudRequiredPermission("business:platformjob:exportExcel")
    public void exportExcel (@RequestBody PageWrap<PlatformJob> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        ExcelExporter.build(PlatformJob.class).export(platformJobService.findPage(pageWrap).getRecords(), "月台调度作业信息表", response);
        List<PlatformJob> platformJobList = platformJobService.findPage(pageWrap).getRecords();
        if(CollectionUtils.isNotEmpty(platformJobList)){
            for (PlatformJob platformJob:platformJobList) {
                platformJob.setJobForm(Constants.ZERO);
            }
        }
        ExcelExporter.build(PlatformJob.class).export(platformJobList, "安泰物流作业任务", response);
    }
    @ApiOperation("根据ID查询")
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformWaterGasCloudController.java
@@ -9,15 +9,19 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.PlatformWaterGas;
import com.doumee.dao.business.vo.PlatformWaterGasForExcelVO;
import com.doumee.service.business.PlatformWaterGasService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
 * @author æ±Ÿè¹„蹄
@@ -81,9 +85,34 @@
    @PostMapping("/exportExcel")
    @CloudRequiredPermission("business:platformwatergas:exportExcel")
    public void exportExcel (@RequestBody PageWrap<PlatformWaterGas> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        ExcelExporter.build(PlatformWaterGas.class).export(platformWaterGasService.findPage(pageWrap).getRecords(), "月台_用水用气信息记录表", response);
        List<PlatformWaterGas>  waterGasPageData = platformWaterGasService.findPage(pageWrap).getRecords();
        if(Objects.nonNull(pageWrap.getModel())
        && Objects.nonNull(pageWrap.getModel().getType()) && !Constants.equalsInteger(pageWrap.getModel().getType(),Constants.TWO)){
            List<PlatformWaterGasForExcelVO> pageData = new ArrayList<>();
            for (PlatformWaterGas platformWaterGas:waterGasPageData) {
                PlatformWaterGasForExcelVO platformWaterGasForExcelVO = new PlatformWaterGasForExcelVO();
                BeanUtils.copyProperties(platformWaterGas,platformWaterGasForExcelVO);
                pageData.add(platformWaterGasForExcelVO);
            }
            ExcelExporter.build(PlatformWaterGasForExcelVO.class).export(pageData, Constants.equalsInteger(pageWrap.getModel().getType(),Constants.ZERO)?"月台_用水信息记录表":"月台_用气信息记录表", response);
        }else{
            ExcelExporter.build(PlatformWaterGas.class).export(waterGasPageData, "月台_油耗信息记录表", response);
        }
    }
    @ApiOperation(value = "油耗信息导入")
    @PostMapping("/importExcel")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class),
    })
    @CloudRequiredPermission("business:platformwatergas:exportExcel")
    public ApiResponse<String> importExcel (@ApiParam(value = "file") MultipartFile file, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(platformWaterGasService.importBatch(file,this.getLoginUser(token)));
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @CloudRequiredPermission("business:platformwatergas:query")
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/StagingCloudController.java
@@ -109,7 +109,7 @@
    public ApiResponse<PageData<Notices>> taskPage (@RequestBody PageWrap<NoticesDTO> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo loginUserInfo = getLoginUser(token);
        pageWrap.getModel().setMemberId(loginUserInfo.getMemberId());
        pageWrap.getModel().setUserId(loginUserInfo.getId());
//        pageWrap.getModel().setUserId(loginUserInfo.getId());
        return ApiResponse.success(noticesService.taskCanterPage(pageWrap));
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java
@@ -85,7 +85,6 @@
    @LoginNoRequired
    @PostMapping("/tms/lockStatusQuery")
    public TmsBaseResponse<List<TmsLockStatusQueryResponse>>  lockStatusQuery(@RequestBody  TmsLockStatusQueryRequest request )   {
        return  tmsService.lockStatusQuery(request);
    }
    @ApiOperation("【TMS】合同列表接口")
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsLockStatusQueryRequest.java
@@ -14,6 +14,6 @@
public class TmsLockStatusQueryRequest {
    private List<String> contractNumbers; //是    é›†åˆ    åˆåŒå·    å¿…填,至少传一个合同号
    private List<String> contractNumbers; //是集合 åˆåŒå·    å¿…填,至少传一个合同号
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/PlatformGasImport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package com.doumee.dao.admin.request;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * å‘˜å·¥ä¿¡æ¯å¯¼å…¥è¡¨
 * @author æ±Ÿè¹„蹄
 * @date 2024/01/16 10:03
 */
@Data
@ApiModel("油耗信息导入")
public class PlatformGasImport {
    @ExcelColumn(name="车牌号",value = "carCode",index = 1)
    private String carCode;
    @ExcelColumn(name="时间(年月)",value = "timeInfo",index = 2,dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date timeInfo;
    @ExcelColumn(name="数量",value = "num",index = 3)
    private String num;
    @ExcelColumn(name="说明",value = "content",index = 3)
    private String content;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -231,6 +231,10 @@
    @ApiModelProperty(value = "组织类型 0劳务公司 1内部组织")
    @TableField(exist = false)
    private Integer companyType;
    @ApiModelProperty(value = "组织类型 0劳务公司 1内部组织 å¤šä¸ªä»¥,分割")
    @TableField(exist = false)
    private String companyTypes;
    @ApiModelProperty(value = "组织编码路径")
    @TableField(exist = false)
    private String companyPath;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -26,268 +26,213 @@
    @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 = 7, dateFormat = "yyyy-MM-dd hh:mm:ss")
    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 name;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String remark;
    @ApiModelProperty(value = "状态 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 å·²è¿‡å·  12取消(WMS)" , example = "1")
    @ExcelColumn(name="状态 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 å·²è¿‡å·  12取消(WMS)")
    @ExcelColumn(name="状态",index = 8, valueMapping = "0:待确认;1:待签到;2:等待叫号;3:入园等待;4:已叫号;5:作业中;6:作业完成;7:转移中;8:异常挂起;9:已授权离园;10:已离园;11:已过号;12:取消(WMS);")
    private Integer status;
    @ApiModelProperty(value = "车辆进入状态 0不在 1进入 " , example = "1")
    @ExcelColumn(name="车辆进入状态 0不在 1进入 ")
    private Integer inOut;
    @ApiModelProperty(value = "排序码", example = "1")
    @ExcelColumn(name="排序码")
    private Integer sortnum;
    @ApiModelProperty(value = "作业单号")
    @ExcelColumn(name="作业单号")
    private String code;
    @ApiModelProperty(value = "作业唯一标识(承运单号)")
    @ExcelColumn(name="作业唯一标识(承运单号)")
    @ExcelColumn(name="运单号",index = 0)
    private String billCode;
    @ApiModelProperty(value = "司机编码", example = "1")
    @ExcelColumn(name="司机编码")
    private Integer driverId;
    @ApiModelProperty(value = "司机姓名")
    @ExcelColumn(name="司机姓名")
    @ExcelColumn(name="司机姓名",index = 4)
    private String driverName;
    @ApiModelProperty(value = "车牌号")
    @ExcelColumn(name="车牌号")
    private String plateNum;
    @ApiModelProperty(value = "司机手机号")
    @ExcelColumn(name="司机手机号")
    @ExcelColumn(name="司机电话",index = 5)
    private String drivierPhone;
    @ApiModelProperty(value = "签到时间")
    @ExcelColumn(name="签到时间")
    private Date signDate;
    @ApiModelProperty(value = "签到方式 0app签到 1扫码签到 2后台签到", example = "1")
    @ExcelColumn(name="签到方式 0app签到 1扫码签到 2后台签到")
    private Integer singType;
    @ApiModelProperty(value = "通知WMS作业绑定月台时间")
    @ExcelColumn(name="通知WMS作业绑定月台时间")
    private Date wmsSendDate;
    @ApiModelProperty(value = "通知WMS作业绑定月台状态 0待通知 1通知成功 2通知失败", example = "1")
    @ExcelColumn(name="通知WMS作业绑定月台状态 0待通知 1通知成功 2通知失败")
    private Integer wmsSendStatus;
    @ApiModelProperty(value = "通知WMS作业绑定月台編碼", example = "1")
    @ExcelColumn(name="通知WMS作业绑定月台編碼")
    private String wmsSendPlatformCode;
    @ApiModelProperty(value = "通知WMS作业绑定月台备注", example = "1")
    @ExcelColumn(name="通知WMS作业绑定月台备注")
    private String wmsSendInfo;
    @ApiModelProperty(value = "通知WMS作业绑定月台次数", example = "1")
    @ExcelColumn(name="通知WMS作业绑定月台次数")
    private Integer wmsSendNum;
    @ApiModelProperty(value = "签到距离(米)", example = "1")
    @ExcelColumn(name="签到距离(米)")
    private BigDecimal signDistance;
    @ApiModelProperty(value = "作业月台名称集合,多个使用英文逗号隔开")
    @ExcelColumn(name="作业月台名称集合,多个使用英文逗号隔开")
    private String platformNames;
    @ApiModelProperty(value = "作业月台编码集合,多个使用英文逗号隔开")
    @ExcelColumn(name="作业月台编码集合,多个使用英文逗号隔开")
    private String platforms;
    @ApiModelProperty(value = "最近分配月台编码(关联platform)", example = "1")
    @ExcelColumn(name="最近分配月台编码(关联platform)")
    private Integer platformId;
    @ApiModelProperty(value = "月台分组编码(关联platform_group)", example = "1")
    @ExcelColumn(name="月台分组编码(关联platform_group)")
    private Integer platformGroupId;
    @ApiModelProperty(value = "通知入园等待时间")
    @ExcelColumn(name="通知入园等待时间")
    private Date inwaitDate;
    @ApiModelProperty(value = "通知入园等待操作人编码", example = "1")
    @ExcelColumn(name="通知入园等待操作人编码")
    private Integer inwaitUserId;
    @ApiModelProperty(value = "叫号时间")
    @ExcelColumn(name="叫号时间")
    private Date callDate;
    @ApiModelProperty(value = "叫号人编码", example = "1")
    @ExcelColumn(name="叫号人编码")
    private Integer callUserId;
    @ApiModelProperty(value = "叫号备注")
    @ExcelColumn(name="叫号备注")
    private String callInfo;
    @ApiModelProperty(value = "开始作业时间")
    @ExcelColumn(name="开始作业时间")
    private Date startDate;
    @ApiModelProperty(value = "作业完成时间(最终时间)")
    @ExcelColumn(name="作业完成时间(最终时间)")
    private Date doneDate;
    @ApiModelProperty(value = "异常挂起时间")
    @ExcelColumn(name="异常挂起时间")
    private Date errorDate;
    @ApiModelProperty(value = "异常挂起人编码", example = "1")
    @ExcelColumn(name="异常挂起人编码")
    private Integer errorUserId;
    @ApiModelProperty(value = "异常挂起备注")
    @ExcelColumn(name="异常挂起备注")
    private String errorInfo;
    @ApiModelProperty(value = "月台转交时间")
    @ExcelColumn(name="月台转交时间")
    private Date transPlatformDate;
    @ApiModelProperty(value = "月台转交处理人", example = "1")
    @ExcelColumn(name="月台转交处理人")
    private Integer transPlatformUserId;
    @ApiModelProperty(value = "月台转交备注")
    @ExcelColumn(name="月台转交备注")
    private String transPlatformInfo;
    @ApiModelProperty(value = "车辆进厂时间")
    @ExcelColumn(name="车辆进厂时间")
    private Date inDate;
    @ApiModelProperty(value = "车辆离厂时间")
    @ExcelColumn(name="车辆离厂时间")
    private Date outDate;
    @ApiModelProperty(value = "离厂方式 0自动离厂 1手动离场", example = "1")
    @ExcelColumn(name="离厂方式 0自动离厂 1手动离场")
    private Integer outType;
    @ApiModelProperty(value = "车辆离厂下发状态 0待下发 1下发中 2下发成功 3下发失败", example = "1")
    @ExcelColumn(name="车辆离厂下发状态 0待下发 1下发中 2下发成功 3下发失败")
    private Integer outHkstatus;
    @ApiModelProperty(value = "车辆离厂下发时间")
    @ExcelColumn(name="车辆离厂下发时间")
    private Date outHkdate;
    @ApiModelProperty(value = "车辆离厂下发备注")
    @ExcelColumn(name="车辆离厂下发备注")
    private String outHkinfo;
    @ApiModelProperty(value = "离场下发操作人", example = "1")
    @ExcelColumn(name="离场下发操作人")
    private Integer outUserId;
    @ApiModelProperty(value = "车辆进厂下发状态 0待下发 1下发中 2下发成功 3下发失败", example = "1")
    @ExcelColumn(name="车辆进厂下发状态 0待下发 1下发中 2下发成功 3下发失败")
    private Integer inHkstatus;
    @ApiModelProperty(value = "车辆进厂下发备注")
    @ExcelColumn(name="车辆进厂下发备注")
    private String nHkinfo;
    @ApiModelProperty(value = "车辆进厂下发时间")
    @ExcelColumn(name="车辆进厂下发时间")
    private Date inHkdate;
    @ApiModelProperty(value = "作业类型 0自有车卸货 1自有车装货 2外协车卸货 3外协车装货 4市公司外协车卸货", example = "1")
    @ExcelColumn(name="作业类型 0自有车卸货 1自有车装货 2外协车卸货 3外协车装货 4市公司外协车卸货")
    @ExcelColumn(name="作业类型",index = 6,valueMapping = "0=自有车卸货;1=自有车装货;2=外协车卸货;3=外协车装货;4=市公司外协车卸货")
    private Integer type;
    @ApiModelProperty(value = "前车牌号")
    @ExcelColumn(name="前车牌号")
    @ExcelColumn(name="前车牌号",index = 2)
    private String carCodeFront;
    @ApiModelProperty(value = "后车牌号")
    @ExcelColumn(name="后车牌号")
    private String carCodeBack;
    @ApiModelProperty(value = "司机所属部门编码", example = "1")
    @ExcelColumn(name="司机所属部门编码")
    private Integer companyId;
    @ApiModelProperty(value = "司机所属部门名称路径")
    @ExcelColumn(name="司机所属部门名称路径")
    private String companyNamePath;
    @ApiModelProperty(value = "作废时间")
    @ExcelColumn(name="作废时间")
    private Date cancelDate;
    @ApiModelProperty(value = "作废处理人编码", example = "1")
    @ExcelColumn(name="作废处理人编码")
    private Integer cancelUserId;
    @ApiModelProperty(value = "作为处理备注")
    @ExcelColumn(name="作为处理备注")
    private String cancelInfo;
    @ApiModelProperty(value = "入园事由")
    @ExcelColumn(name="入园事由")
    private String reason;
    @ApiModelProperty(value = "合同号")
    @ExcelColumn(name="合同号")
    private String contractNum;
    @ApiModelProperty(value = "预计到场时间")
    @ExcelColumn(name="预计到场时间")
    private Date arriveDate;
    @ApiModelProperty(value = "入库类型 0整托盘 1件烟", example = "1")
    @ExcelColumn(name="入库类型 0整托盘 1件烟")
    private Integer inType;
    @ApiModelProperty(value = "总运输量", example = "1")
    @ExcelColumn(name="总运输量")
    private BigDecimal totalNum;
    @ApiModelProperty(value = "确认任务时间")
    @ExcelColumn(name="确认任务时间")
    private Date confirmTaskDate;
    @ApiModelProperty(value = "签到序号", example = "1")
    @ExcelColumn(name="签到序号")
    private Integer signNum;
    @ApiModelProperty(value = "最新叫号时间")
@@ -313,6 +258,9 @@
    @ApiModelProperty(value = "作业月台名称")
    @TableField(exist = false)
    private String platformName ;
    @ApiModelProperty(value = "月台空闲文案")
    @TableField(exist = false)
    private String ledContent ;
    @ApiModelProperty(value = "是否超时:0=是;1=否", example = "1")
    @TableField(exist = false)
@@ -340,6 +288,7 @@
    private Integer groupType ;
    @ApiModelProperty(value = "承运商")
    @ExcelColumn(name="运输公司",index = 3)
    @TableField(exist = false)
    private String carrierName ;
@@ -428,6 +377,10 @@
    @TableField(exist = false)
    private String queryStatusForPower;
    @ApiModelProperty(value = "任务来源")
    @ExcelColumn(name="任务来源",index = 1,valueMapping = "0=WMS获取;1=自主预约;")
    @TableField(exist = false)
    private Integer jobForm;
    @ApiModelProperty(value = "作业类型查询 å¤šä¸ªä»¥,分割")
    @TableField(exist = false)
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java
@@ -25,55 +25,48 @@
    @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="更新时间")
    @ExcelColumn(name="最近操作时间",index = 5,dateFormat="yyyy-MM-dd HH:mm")
    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 = "时间(年月)")
    @ExcelColumn(name="时间(年月)")
    @ExcelColumn(name="使用月份",index = 2,dateFormat="yyyy-MM")
    private Date timeInfo;
    @ApiModelProperty(value = "排序码", example = "1")
    @ExcelColumn(name="排序码")
    private Integer sortnum;
    @ApiModelProperty(value = "类型 0用水 1用气 2用油", example = "1")
    @ExcelColumn(name="类型 0用水 1用气 2用油")
    @ExcelColumn(name="类型",valueMapping = "0=用水;1=用气;2=用油;",index = 0)
    private Integer type;
    @ApiModelProperty(value = "数量 (用电顿,用电度; æ²¹è€—L)", example = "1")
    @ExcelColumn(name="数量 (用电顿,用电度; æ²¹è€—L)")
    @ExcelColumn(name="数量",index = 3)
    private BigDecimal num;
    @ApiModelProperty(value = "说明")
    @ExcelColumn(name="说明")
    @ExcelColumn(name="说明",index = 4)
    private String content;
    @ApiModelProperty(value = "车牌号")
    @ExcelColumn(name="车牌号")
    @ExcelColumn(name="车牌号",index = 1)
    private String carCode;
    @ApiModelProperty(value = "开始时间")
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWmsDetail.java
@@ -84,5 +84,7 @@
    @ApiModelProperty(value = "物料转换率")
    @ExcelColumn(name="物料转换率")
    private String rate;
    @ApiModelProperty(value = "上锁时间")
    @ExcelColumn(name="上锁时间")
    private String lockDate;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -219,6 +219,9 @@
    @ExcelColumn(name="ERP申请记录编码")
    private String erpId;
    @ApiModelProperty(value = "是否发送超时通知 0:未发送;1=已发送")
    private Integer sendTimeOutNotice;
    @ApiModelProperty(value = "统计数量 ")
    @TableField(exist = false)
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/PlatformWaterGasForExcelVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.doumee.dao.business.vo;
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.doumee.core.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * æœˆå°_用水用气信息记录表
 * @author æ±Ÿè¹„蹄
 * @date 2024/08/26 16:22
 */
@Data
public class PlatformWaterGasForExcelVO {
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="最近操作时间",index = 5,dateFormat="yyyy-MM-dd HH:mm",width = -1)
    private Date editDate;
    @ApiModelProperty(value = "时间(年月)")
    @ExcelColumn(name="使用月份",index = 2,dateFormat="yyyy-MM")
    private Date timeInfo;
    @ApiModelProperty(value = "类型 0用水 1用气 2用油", example = "1")
    @ExcelColumn(name="类型",valueMapping = "0=用水;1=用气;2=用油;",index = 0)
    private Integer type;
    @ApiModelProperty(value = "数量 (用电顿,用电度; æ²¹è€—L)", example = "1")
    @ExcelColumn(name="数量",index = 3)
    private BigDecimal num;
    @ApiModelProperty(value = "说明")
    @ExcelColumn(name="说明",index = 4)
    private String content;
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java
@@ -10,6 +10,7 @@
import com.doumee.dao.openapi.response.GasByMonthResponse;
import com.doumee.dao.openapi.response.PlatformLastMonthListResponse;
import com.doumee.dao.openapi.response.WaterByMonthResponse;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@@ -110,4 +111,6 @@
    GasByMonthResponse gasDataByMonth(GasByMonthRequest param);
    List<PlatformLastMonthListResponse> getPlatformLastMonthListResponse(Integer type);
    String importBatch(MultipartFile file, LoginUserInfo loginUserInfo);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
@@ -147,4 +147,9 @@
    void visitResend(Integer visitId);
    PCWorkPlatformDataVO getPcWorkPlatformData(Integer queryType ,LoginUserInfo loginUserInfo);
    /**
     * å³å°†è¶…时通知
     */
    void syncTimeOutData();
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -584,8 +584,30 @@
                                SmsConstants.platformBookContent.platformBookWaitAudit,
                                null,Arrays.asList(member.getPhone().split(","))
                        );
                    }else if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.visit)){
                        //访客申请
                        SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz,
                                emayService,smsEmailMapper,smsConfigMapper,visitsMapper,businessId,
                                SmsConstants.visitContent.visitNotice,
                                null,Arrays.asList(member.getPhone().split(","))
                        );
                    }else if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.visitReporting)){
                        //访客报备
                        SmsEmailServiceImpl.sendVisitReportSms(systemDictDataBiz,
                                emayService,smsEmailMapper,smsConfigMapper,visitsMapper,businessId,
                                SmsConstants.visitReportingContent.visitReportingNotice,
                                null,Arrays.asList(member.getPhone().split(","))
                        );
                    }else if(Constants.equalsInteger(noticeType,Constants.noticesObjectType.useCar)){
                        //用车申请
                        SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
                                emayService,smsEmailMapper,smsConfigMapper,carUseBookMapper,businessId,
                                SmsConstants.carUseBookContent.carUseBookWaitAudit,
                                null,Arrays.asList(member.getPhone().split(","))
                        );
                    }
                }
            }
        }
@@ -1279,9 +1301,8 @@
                        .eq(Approve::getLevel,(approve.getLevel()+1))
                );
                //发送短信通知  ä¸‹çº§å®¡æ‰¹äºº
                List<String> memberPhone = waitAuditList.stream().filter(i->StringUtils.isNotBlank(i.getMemberPhone())).map(i->i.getMemberPhone()).collect(Collectors.toList());
                //物流车预约
                if(approveDTO.getObjType().equals(Constants.approveObjectType.reason)){
                    SmsEmailServiceImpl.sendPlatformBookSms(systemDictDataBiz,
                            emayService,smsEmailMapper,smsConfigMapper,platformBooksMapper,approveDTO.getObjId(),
@@ -1290,9 +1311,15 @@
                    );
                }
                else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)
                || approveDTO.getObjType().equals(Constants.approveObjectType.unCityUseCar)){
                    SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
                            emayService,smsEmailMapper,smsConfigMapper,carUseBookMapper,approveDTO.getObjId(),
                            SmsConstants.hiddenDangerContent.hiddenDangerDealUser,
                            approveDTO.getCheckInfo(),memberPhone);
                }
                //访客申请/报备
                if(approveDTO.getObjType().equals(Constants.approveObjectType.unConstructionVisit)
                        ||approveDTO.getObjType().equals(Constants.approveObjectType.constructionVisit)
                        ||approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)) {
@@ -1302,7 +1329,9 @@
                             visitsMapper.update(null,new UpdateWrapper<Visits>().lambda().set(Visits::getStatus,Constants.ONE).eq(Visits::getId,visits.getId()));
                        }
                    }
                }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                }
                if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                        Constants.approveObjectType.unCityUseCar)){
                    this.updDriver(approveDTO,approve,false);
                }
@@ -1547,11 +1576,42 @@
                    visits.setStatus(Constants.VisitStatus.xfFail);
                }
            }
            //访客报备
            if(approveDTO.getObjType().equals(Constants.approveObjectType.visitReporting)){
                //发送短信通知
                SmsEmailServiceImpl.sendVisitReportSms(systemDictDataBiz,
                        emayService,smsEmailMapper,smsConfigMapper,visitsMapper,visits.getId(),
                        Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?SmsConstants.visitReportingContent.visitReportingAuditSuccess:
                                SmsConstants.visitReportingContent.visitReportingAuditFail,
                        approveDTO.getCheckInfo(),null
                );
            }else{ //访客申请
                //发送短信通知
                SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz,
                        emayService,smsEmailMapper,smsConfigMapper,visitsMapper,visits.getId(),
                        Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?SmsConstants.visitContent.visitAuditSuccess:
                                SmsConstants.visitContent.visitAuditFail,
                        approveDTO.getCheckInfo(),null
                );
            }
            visitsMapper.updateById(visits);
        }else if(approveDTO.getObjType().equals(Constants.approveObjectType.cityUseCar)||approveDTO.getObjType().equals(
                Constants.approveObjectType.unCityUseCar)){
            this.updDriver(approveDTO,approve,true);
            CarUseBook carUseBook = carUseBookJoinMapper.selectById(approveDTO.getObjId());
            if(Objects.nonNull(carUseBook)){
                Member member = memberMapper.selectById(carUseBook.getMemberId());
                if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getPhone())){
                    SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
                            emayService,smsEmailMapper,smsConfigMapper,carUseBookMapper,approveDTO.getObjId(),
                            Constants.equalsInteger(approveDTO.getStatus(),Constants.TWO)?SmsConstants.carUseBookContent.carUseBookAuditSuccess:
                                    SmsConstants.carUseBookContent.carUseBookAuditFail,
                            approveDTO.getCheckInfo(),Arrays.asList(member.getPhone().split(","))
                    );
                }
            }
        }else if(approveDTO.getObjType().equals(Constants.approveObjectType.reason)){
            //物流车预约
            PlatformBooks platformBooks = platformBooksMapper.selectById(approveDTO.getObjId());
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -6,10 +6,7 @@
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.DateUtil;
import com.doumee.core.utils.Utils;
import com.doumee.core.utils.*;
import com.doumee.dao.business.*;
import com.doumee.dao.business.join.ApproveJoinMapper;
import com.doumee.dao.business.join.CarUseBookJoinMapper;
@@ -24,6 +21,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.doumee.service.business.third.EmayService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.StringUtils;
@@ -36,10 +34,8 @@
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.Date;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -74,6 +70,15 @@
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private SmsConfigMapper smsConfigMapper;
    @Autowired
    private SmsEmailMapper smsEmailMapper;
    @Autowired
    private EmayService emayService;
    @Override
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
@@ -459,6 +464,15 @@
               .in(Approve::getObjType,Constants.approveObjectType.cityUseCar,Constants.approveObjectType.unCityUseCar)
                .eq(Approve::getObjId,id)
        );
        Member member = memberMapper.selectById(carUseBook.getMemberId());
        if(Objects.nonNull(member)&&StringUtils.isNotBlank(member.getPhone())){
            //用车申请取消
            SmsEmailServiceImpl.sendCarUseSms(systemDictDataBiz,
                    emayService,smsEmailMapper,smsConfigMapper,carUseBookMapper,carUseBook.getId(),
                    SmsConstants.carUseBookContent.carUseBookCancel,
                    null, Arrays.asList(member.getPhone().split(","))
            );
        }
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerParamServiceImpl.java
@@ -1,20 +1,25 @@
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.SmsConstants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.HiddenDangerParamMapper;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.SmsConfigMapper;
import com.doumee.dao.business.SmsEmailMapper;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.HiddenDangerParamService;
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.doumee.service.business.third.EmayService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils;
@@ -24,10 +29,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
/**
 * é𐿂£åŒºåŸŸé…ç½®ç±»åž‹ä¿¡æ¯è¡¨Service实现
@@ -41,6 +43,7 @@
    @Autowired
    private MemberMapper memberMapper;
    @Override
    public Integer create(HiddenDangerParam model) {
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -12,11 +12,9 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.SmsConstants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.HiddenDangerLogMapper;
import com.doumee.dao.business.HiddenDangerMapper;
import com.doumee.dao.business.HiddenDangerParamMapper;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.*;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.MultifileMapper;
import com.doumee.dao.system.join.NoticesJoinMapper;
@@ -24,6 +22,7 @@
import com.doumee.dao.system.model.Notices;
import com.doumee.service.business.HiddenDangerLogService;
import com.doumee.service.business.HiddenDangerService;
import com.doumee.service.business.third.EmayService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.C;
@@ -65,6 +64,17 @@
    @Autowired
    private NoticesJoinMapper noticesJoinMapper;
    @Autowired
    private SmsConfigMapper smsConfigMapper;
    @Autowired
    private SmsEmailMapper smsEmailMapper;
    @Autowired
    private EmayService emayService;
    @Override
    public Integer create(HiddenDanger hiddenDanger) {
@@ -168,6 +178,17 @@
        notices.setReaded(Constants.ZERO);
        notices.setInfo("待"+member.getName()+"处理");
        noticesJoinMapper.insert(notices);
        if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getPhone())){
            //发送短信通知
            SmsEmailServiceImpl.sendHiddenDangerSms(systemDictDataBiz,
                    emayService,smsEmailMapper,smsConfigMapper,hiddenDangerMapper,hiddenDanger.getId(),
                    SmsConstants.hiddenDangerContent.hiddenDangerDealUser,
                    Arrays.asList(member.getPhone().split(","))
            );
        }
        return hiddenDanger.getId();
@@ -379,6 +400,21 @@
                .eq(Notices::getUserId,hiddenDanger.getLoginUserInfo().getMemberId())
        );
        if(Constants.equalsInteger(hiddenDanger.getStatus(),Constants.ONE)){
            Member member = memberMapper.selectById(hiddenDanger.getMemberId());
            if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getPhone())){
                //发送短信通知
                SmsEmailServiceImpl.sendHiddenDangerSms(systemDictDataBiz,
                        emayService,smsEmailMapper,smsConfigMapper,hiddenDangerMapper,hiddenDanger.getId(),
                        SmsConstants.hiddenDangerContent.hiddenDangerDealOver,
                        Arrays.asList(member.getPhone().split(","))
                );
            }
        }
    }
    private void isParamValid(HiddenDanger hiddenDanger) {
@@ -527,6 +563,16 @@
            notices.setInfo("待"+member.getName()+"处理");
            noticesJoinMapper.updateById(notices);
        }
        if(Objects.nonNull(member) && StringUtils.isNotBlank(member.getPhone())){
            //发送短信通知
            SmsEmailServiceImpl.sendHiddenDangerSms(systemDictDataBiz,
                    emayService,smsEmailMapper,smsConfigMapper,hiddenDangerMapper,hiddenDanger.getId(),
                    SmsConstants.hiddenDangerContent.hiddenDangerDealUser,
                    Arrays.asList(member.getPhone().split(","))
            );
        }
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -1130,6 +1130,9 @@
        if(Objects.nonNull(member.getCompanyType())){
            queryWrapper.eq(Company::getType,member.getCompanyType());
        }
        if(StringUtils.isNotBlank(member.getCompanyTypes())){
            queryWrapper.in(Company::getType,Arrays.asList(member.getCompanyTypes().split(",")));
        }
        if(null != member.getType()) {
            queryWrapper.eq(Member::getType,member.getType());
        }
@@ -1917,7 +1920,7 @@
            ,List<Company> companyList
            ,Integer companyType) {
        if(StringUtils.isBlank(model.getName())
                ||StringUtils.isBlank(model.getIdcardNo())
//                ||StringUtils.isBlank(model.getIdcardNo())
                ||StringUtils.isBlank(model.getPhone())
                ||StringUtils.isBlank(model.getCompanyName())){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行人员信息不完整,请检查表格内容!");
@@ -1925,12 +1928,17 @@
        if (!PhoneUtil.isPhone(model.getPhone())){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行手机号【"+model.getPhone()+"】格式不正确,请检查表格内容!");
        }
        if ( !isDebug && !IdcardUtil.isValidCard(model.getIdcardNo())){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行身份证号【"+model.getIdcardNo()+"】格式不正确,请检查表格内容!");
        if(StringUtils.isNotBlank(model.getIdcardNo())){
            if ( !isDebug && !IdcardUtil.isValidCard(model.getIdcardNo())){
                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行身份证号【"+model.getIdcardNo()+"】格式不正确,请检查表格内容!");
            }
        }
        for(Member member: newList){
            if(StringUtils.equals(model.getIdcardNo(),member.getIdcardNo())){
                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行身份证号【"+model.getIdcardNo()+"】重复出现,请检查表格内容!");
            if(StringUtils.isNotBlank(model.getIdcardNo())&&StringUtils.isNotBlank(member.getIdcardNo())) {
                if (StringUtils.equals(model.getIdcardNo(), member.getIdcardNo())) {
                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,第" + (index + 3) + "行身份证号【" + model.getIdcardNo() + "】重复出现,请检查表格内容!");
                }
            }
            if(StringUtils.equals(model.getPhone(),member.getPhone())){
                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行手机号【"+model.getPhone()+"】重复出现,请检查表格内容!");
@@ -1944,9 +1952,12 @@
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行组织名称【"+model.getCompanyName()+"】类型不正确,请检查表格内容!");
        }
        String candNo = DESUtil.encrypt(Constants.EDS_PWD, model.getIdcardNo());
        if(findMemberFromListByIdcard(candNo,memberList ) !=null){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行身份证号【"+model.getIdcardNo()+"】已存在,请检查表格内容!");
        if(StringUtils.isNotBlank(model.getIdcardNo())){
            if(findMemberFromListByIdcard(candNo,memberList ) !=null){
                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行身份证号【"+model.getIdcardNo()+"】已存在,请检查表格内容!");
            }
        }
        if(findMemberFromListByPhone(model.getPhone(),memberList ) !=null){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+(index+3)+"行手机号【"+model.getPhone()+"】已存在,请检查表格内容!");
        }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
@@ -304,14 +304,28 @@
                platformWorkVO.setCallNum(
                        platformJobs.stream().filter(i->Constants.equalsInteger(i.getPlatformId(),platform.getId())  && Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())).collect(Collectors.toList()).size()
                );
                System.out.printf(String.valueOf(platformJobs.stream().filter(i->
                        Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())
                ).collect(Collectors.toList()).size())
                );
                System.out.printf(String.valueOf(platformJobList.stream().filter(i->
                                Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey()) ||
                                        ( Constants.equalsInteger(platform.getId(),i.getPlatformId()) &&
                                                Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.TRANSFERING.getKey())
                                        )
                        ).collect(Collectors.toList()).size())
                );
                platformWorkVO.setWaitNum(
                        platformJobs.stream().filter(i->
                                 Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())
                        ).collect(Collectors.toList()).size()
                        +
                        platformJobList.stream().filter(i->Constants.equalsInteger(platform.getId(),i.getPlatformId())
                                && (Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey()) ||  Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.TRANSFERING.getKey())
                        platformJobList.stream().filter(i->
                                (  Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey()) && Constants.equalsInteger(i.getPlatformGroupId(),platform.getGroupId()) )||
                                 ( Constants.equalsInteger(platform.getId(),i.getPlatformId()) &&
                                 Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.TRANSFERING.getKey())
                               )
                        ).collect(Collectors.toList()).size()
                );
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -13,6 +13,9 @@
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
import com.doumee.core.tms.model.response.TmsBaseResponse;
import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
import com.doumee.core.utils.*;
import com.doumee.dao.business.*;
import com.doumee.dao.business.join.PlatformJobJoinMapper;
@@ -34,6 +37,7 @@
import com.doumee.service.business.impl.hksync.HkSyncPushServiceImpl;
import com.doumee.service.business.impl.thrid.WmsServiceImpl;
import com.doumee.service.business.third.EmayService;
import com.doumee.service.business.third.TmsService;
import com.doumee.service.business.third.WmsService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
@@ -63,6 +67,8 @@
    @Autowired
    private PlatformJobMapper platformJobMapper;
    @Autowired
    private TmsService tmsService;
    @Autowired
    private PlatformDeviceMapper platformDeviceMapper;
@@ -336,7 +342,7 @@
                                 " ( " +
                                         " ( t.`STATUS` = "+Constants.PlatformJobStatus.WAIT_CALL.getKey()+" and t.PLATFORM_GROUP_ID = ( SELECT p.group_id FROM platform p WHERE p.id = "+pageWrap.getModel().getPlatformId()+" LIMIT 1 )  )" +
                                         " or  " +
                                         " (t.`STATUS` = "+Constants.PlatformJobStatus.IN_WAIT.getKey()+" and t.PLATFORM_ID = "+pageWrap.getModel().getPlatformId()+" )" +
                                         " (t.`STATUS` = "+Constants.PlatformJobStatus.IN_WAIT.getKey()+" and t.PLATFORM_GROUP_ID = ( SELECT p.group_id FROM platform p WHERE p.id = "+pageWrap.getModel().getPlatformId()+" LIMIT 1 )  )" +
                                         " or " +
                                         "  (t.`STATUS` = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and t.PLATFORM_ID = "+pageWrap.getModel().getPlatformId()+" )  " +
                                         ") "
@@ -1176,7 +1182,7 @@
        );
        platformJob.setPlatformName(platform.getName());
        this.broadcastAndLEed(platformJob, StringUtils.isBlank(oldPlatform.getRemark())?Constants.PlatformLedContent.IDEL_CONTNET.getName():oldPlatform.getLedContent(),
        this.broadcastAndLEed(platformJob, StringUtils.isBlank(oldPlatform.getLedContent())?Constants.PlatformLedContent.IDEL_CONTNET.getName():oldPlatform.getLedContent(),
                null
        );
@@ -1257,6 +1263,12 @@
                emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
                SmsConstants.platformJobContent.platformJobError,platform.getName(),null
        );
        platformJob.setPlatformName(platform.getName());
        this.broadcastAndLEed(platformJob, StringUtils.isBlank(platform.getLedContent())?Constants.PlatformLedContent.IDEL_CONTNET.getName():platform.getLedContent(),
                null
        );
    }
@@ -1347,23 +1359,50 @@
        savePlatformLog(Constants.PlatformJobLogType.DONE.getKey(),oldPlatformJob,platformJob ,
                Constants.PlatformJobLogType.DONE.getInfo());
        if(Constants.equalsInteger(platformJob.getType(),Constants.TWO)){
            //TODO å¤–协车装货 æŸ¥è¯¢TMS ç”µå­é”æƒ…况
        if(Constants.equalsInteger(platformJob.getType(),Constants.THREE)){
            // å¤–协车装货 æŸ¥è¯¢TMS ç”µå­é”æƒ…况
            List<PlatformWmsDetail> details = platformWmsDetailMapper.selectList(new QueryWrapper<PlatformWmsDetail>().lambda()
                    .eq(PlatformWmsDetail::getJobId,platformJob.getId())
                    .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO)
            );
            if(details!=null && details.size()>0){
                Date date = new Date();
                List<String> codeList =new ArrayList<>();
                for(PlatformWmsDetail d : details){
                    codeList.add(d.getIocode());
                }
                TmsLockStatusQueryRequest tmsLock = new TmsLockStatusQueryRequest();
                tmsLock.setContractNumbers(codeList);
                TmsBaseResponse<List<TmsLockStatusQueryResponse>>  lockResult =  tmsService.lockStatusQuery(tmsLock);
                if(lockResult!=null && lockResult.isSuccess()&& lockResult.getData()!=null ){
                     for(TmsLockStatusQueryResponse s : lockResult.getData()){
                         platformWmsDetailMapper.update(null,new UpdateWrapper<PlatformWmsDetail>().lambda()
                                 .eq(PlatformWmsDetail::getIocode,s.getContractNumber())
                                 .set(PlatformWmsDetail::getEditDate,date)
                                 .set(PlatformWmsDetail::getLockDate,s.getOutDate())
                                 .set(PlatformWmsDetail::getLockStatus,Constants.ONE)
                                 .eq(PlatformWmsDetail::getJobId,platformJob.getId())
                                 .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO));
                     }
                }
            }
        }else if(Constants.equalsInteger(platformJob.getType(),Constants.ONE) || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){
            //TODO å¤–协车卸货 æˆ–者 å¸‚公司车卸货 åˆ™æ ¹æ®ä»»åŠ¡æƒ…å†µ
        }
        //发送短信信息
        SmsEmailServiceImpl.sendPlatformJobSms(systemDictDataBiz,
                emayService,smsEmailMapper,smsConfigMapper,platformJobMapper,platformJob.getId(),
                SmsConstants.platformJobContent.platformJobFinish,platform.getName(),null
        );
        //广播 led通知
        platformJob.setPlatformName(platform.getName());
        this.broadcastAndLEed(platformJob,null,
        this.broadcastAndLEed(platformJob,Constants.PlatformLedContent.DONE.getInfo(),
                Constants.PlatformBroadcastContent.DONE.getInfo());
        return platformJob;
    }
@@ -1637,7 +1676,6 @@
                .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName)
                .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getJobId,PlatformJob::getId)
                .eq(PlatformJob::getPlatformId,platformId)
                .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                .in(PlatformJob::getStatus,
                        Constants.PlatformJobStatus.WAIT_CALL.getKey(),
@@ -1645,9 +1683,9 @@
                        Constants.PlatformJobStatus.CALLED.getKey(),
                        Constants.PlatformJobStatus.WORKING.getKey(),
                        Constants.PlatformJobStatus.EXCEPTION.getKey(),
                        Constants.PlatformJobStatus.OVER_NUMBER.getKey()
                        Constants.PlatformJobStatus.OVER_NUMBER.getKey(),
                        Constants.PlatformJobStatus.TRANSFERING.getKey()
                )
                .like(PlatformJob::getArriveDate, DateUtil.getCurrDate())
                .orderByDesc(PlatformJob::getId)
        );
        for (PlatformJob platformJob:platformJobList) {
@@ -2049,4 +2087,6 @@
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl;
import com.doumee.core.annotation.excel.ExcelImporter;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -8,8 +9,13 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.ScientificNotationTUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.admin.request.MemberImport;
import com.doumee.dao.admin.request.PlatformGasImport;
import com.doumee.dao.business.PlatformWaterGasMapper;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.PlatformReason;
import com.doumee.dao.business.model.PlatformWaterGas;
import com.doumee.dao.openapi.request.GasByMonthRequest;
@@ -22,12 +28,16 @@
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.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.util.*;
@@ -329,5 +339,70 @@
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public String importBatch(MultipartFile file, LoginUserInfo loginUserInfo){
        try {
            ExcelImporter ie = null;
            List<PlatformGasImport> dataList =null;
            try {
                ie = new ExcelImporter(file,0,0);
                dataList = ie.getDataList(PlatformGasImport.class,null);
            }  catch (Exception e) {
                e.printStackTrace();
            }
            if(dataList == null || dataList.size() ==0){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,录入数据为空!");
            }
            List<PlatformWaterGas> newList = new ArrayList<>();
            for(int i=0;i<dataList.size();i++){
                PlatformGasImport model = dataList.get(i);
                if(Objects.isNull(model.getTimeInfo())
                || StringUtils.isBlank(model.getCarCode())
                || StringUtils.isBlank(model.getNum()) ){
                    throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+i+2+"行数据参数错误!");
                }
                PlatformWaterGas platformWaterGas = new PlatformWaterGas();
                try {
                    BigDecimal num = new BigDecimal(model.getNum());
                    platformWaterGas.setNum(num);
                }catch (Exception e){
                    throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+i+2+"行数量错误!");
                }
                if( platformWaterGasMapper.selectCount(new QueryWrapper<PlatformWaterGas>().lambda()
                        .eq(PlatformWaterGas::getIsdeleted, Constants.ZERO)
                        .apply("to_days(time_info) = to_days('"+ DateUtil.getPlusTime2(model.getTimeInfo()) +"')")
                        .eq(PlatformWaterGas::getType,Constants.TWO)
                        .eq(PlatformWaterGas::getCarCode,model.getCarCode()))>0){
                    throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,该["+DateUtil.getPlusTime2(model.getTimeInfo())+"]数据已存在,请勿重新录入,可以尝试搜索后进行数据修改!");
                }
                platformWaterGas.setTimeInfo(model.getTimeInfo());
                platformWaterGas.setCarCode(model.getCarCode());
                platformWaterGas.setContent(model.getContent());
                platformWaterGas.setIsdeleted(Constants.ZERO);
                platformWaterGas.setType(Constants.TWO);
                platformWaterGas.setCreator(loginUserInfo.getId());
                platformWaterGas.setCreateDate(new Date());
                platformWaterGas.setEditDate(platformWaterGas.getCreateDate());
                platformWaterGas.setEditor(platformWaterGas.getCreator());
                newList.add(platformWaterGas);
            }
            if(newList == null || newList.size() ==0){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,录入有效数据为空!");
            }
            platformWaterGasMapper.insert(newList);
            return "导入成功";
        }catch (BusinessException e){
            throw e;
        }catch (Exception e){
            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"信息导入失败,请稍后重试");
        }finally {
            redisTemplate.delete(Constants.RedisKeys.IMPORTING_MEMBER);
        }
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -277,7 +277,7 @@
                if(Objects.nonNull(visits)){
                    if(objCode.equals(SmsConstants.visitContent.visitAuditSuccess)){
                        //您的【访客申请】已经审批通过,请于{预约入园开始时间}前往门卫室访客机签到入园,如有疑问,请联系被访人
                        content = content.replace("{预约入园开始时间}",DateUtil.getDate(visits.getStarttime(),"yyyy-MM-dd HH:mm"));
                        content = content.replace("{预约入园开始时间}",DateUtil.getFomartDate(visits.getStarttime(),"yyyy-MM-dd HH:mm"));
                        sendBusinessSms(emayService,smsEmailMapper,
                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
                    }else if(objCode.equals(SmsConstants.visitContent.visitAuditFail)){
@@ -287,7 +287,7 @@
                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
                    }else if(objCode.equals(SmsConstants.visitContent.visitTimeOutSignOut)){
                        //您的【访客申请】已于{到期时间}到期,请及时离场并前往门卫室访客机签离,如有疑问,请联系被访人
                        content = content.replace("{到期时间}",DateUtil.getDate(visits.getEndtime(),"yyyy-MM-dd HH:mm"));
                        content = content.replace("{到期时间}",DateUtil.getFomartDate(visits.getEndtime(),"yyyy-MM-dd HH:mm"));
                        sendBusinessSms(emayService,smsEmailMapper,
                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visit,content,visits.getId());
                    }else if(objCode.equals(SmsConstants.visitContent.visitTimeOutSignOutNum)) {
@@ -331,7 +331,7 @@
                if(Objects.nonNull(visits)){
                    if(objCode.equals(SmsConstants.visitReportingContent.visitReportingAuditSuccess)){
                        // æ‚¨çš„【访客报备】已经审批通过,请通知访客于{预约入园开始时间}后乘坐{车牌号}入园,如有疑问,请联系被访人。
                        content = content.replace("{预约入园开始时间}",DateUtil.getDate(visits.getStarttime(),"yyyy-MM-dd HH:mm"))
                        content = content.replace("{预约入园开始时间}",DateUtil.getFomartDate(visits.getStarttime(),"yyyy-MM-dd HH:mm"))
                                .replace("{车牌号}",visits.getCarNos());
                        sendBusinessSms(emayService,smsEmailMapper,
                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId());
@@ -342,7 +342,7 @@
                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId());
                    }else if(objCode.equals(SmsConstants.visitReportingContent.visitReportingTimeOutSignOut)){
                        //您的【访客报备】已于{预约入园结束时间}到期,请及时离场,如有疑问,请联系被访人
                        content = content.replace("{预约入园结束时间}",DateUtil.getDate(visits.getEndtime(),"yyyy-MM-dd HH:mm"));
                        content = content.replace("{预约入园结束时间}",DateUtil.getFomartDate(visits.getEndtime(),"yyyy-MM-dd HH:mm"));
                        sendBusinessSms(emayService,smsEmailMapper,
                                Arrays.asList(visits.getPhone().split(",")),SmsConstants.visitReport,content,visits.getId());
                    }else if(objCode.equals(SmsConstants.visitReportingContent.visitReportingTimeOutSignOutNum)) {
@@ -420,7 +420,7 @@
                if(Objects.nonNull(carUseBook)){
                    if(objCode.equals(SmsConstants.carUseBookContent.carUseBookAuditSuccess)){
                        //您的【用车申请】已经审批通过,出发时间为{提交的出发时间},请按时用车。如用车计划有变,请及时联系派车员。
                        content = content.replace("{提交的出发时间}",DateUtil.getDate(carUseBook.getStartTime(),"yyyy-MM-dd HH:mm"));
                        content = content.replace("{提交的出发时间}",DateUtil.getFomartDate(carUseBook.getStartTime(),"yyyy-MM-dd HH:mm"));
                    }else if(objCode.equals(SmsConstants.carUseBookContent.carUseBookAuditFail) || objCode.equals(SmsConstants.carUseBookContent.carUseBookCancel)){
                        //您的【用车申请】已被驳回,驳回原因为:{驳回原因}。如有疑问,请联系派车员。
                        content = content.replace("{驳回原因}",msg);
@@ -460,7 +460,7 @@
                if(Objects.nonNull(platformBooks)){
                    if(objCode.equals(SmsConstants.platformBookContent.platformBookAuditSuccess)){
                        //您的【车辆入园申请】已经审批通过,入园时间为{入园时间},请提前30分钟前往现场签到。如计划有变,请及时联系审核人员。
                        content = content.replace("{入园时间}",DateUtil.getDate(platformBooks.getArriveDate(),"yyyy-MM-dd HH:mm"));
                        content = content.replace("{入园时间}",DateUtil.getFomartDate(platformBooks.getArriveDate(),"yyyy-MM-dd HH:mm"));
                        sendBusinessSms(emayService,smsEmailMapper,
                                Arrays.asList(platformBooks.getDriverPhone().split(",")),SmsConstants.platformBook,content,platformBooks.getId());
                    }else if(objCode.equals(SmsConstants.platformBookContent.platformBookAuditFail) || objCode.equals(SmsConstants.platformBookContent.platformBookCancel)){
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -24,10 +24,7 @@
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.DateUtil;
import com.doumee.core.utils.Utils;
import com.doumee.core.utils.*;
import com.doumee.core.wx.wxPlat.WxPlatNotice;
import com.doumee.dao.admin.response.InterestedListVO;
import com.doumee.dao.admin.response.PCWorkPlatformDataVO;
@@ -58,6 +55,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl;
import com.doumee.service.business.third.EmayService;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.models.auth.In;
@@ -78,6 +76,7 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
import java.util.Date;
import java.util.stream.Collectors;
/**
@@ -132,6 +131,15 @@
    private NoticesJoinMapper noticesJoinMapper;
    @Autowired
    private InoutDayCountMapper inoutDayCountMapper;
    @Autowired
    private SmsConfigMapper smsConfigMapper;
    @Autowired
    private SmsEmailMapper smsEmailMapper;
    @Autowired
    private EmayService emayService;
    @Override
    public Integer create(Visits visits) {
@@ -1677,13 +1685,41 @@
            }else{
                pcWorkPlatformDataVO.setTimeOutVisitList(result);
            }
        }
        return pcWorkPlatformDataVO;
    }
    @Override
    public void syncTimeOutData(){
        String times = systemDictDataBiz.queryByCode(Constants.VISIT_CONFIG,Constants.TIME_OUT_CONFIG).getCode();
        List<Visits> visitsList = visitsMapper.selectList(new QueryWrapper<Visits>().lambda()
                .eq(Visits::getStatus,Constants.VisitStatus.signin)
                .eq(Visits::getSendTimeOutNotice,Constants.ZERO)
                .apply("   now() >=  DATE_ADD(ENDTIME,INTERVAL -"+times+" MINUTE)   ")
        );
        for (Visits visits:visitsList) {
            if(Constants.equalsInteger(visits.getType(),Constants.TWO)){
                SmsEmailServiceImpl.sendVisitReportSms(systemDictDataBiz,
                        emayService,smsEmailMapper,smsConfigMapper,visitsMapper,visits.getId(),
                        SmsConstants.visitReportingContent.visitReportingTimeOutSignOut,
                        null,Arrays.asList(visits.getPhone().split(","))
                );
            }else{
                SmsEmailServiceImpl.sendVisitSms(systemDictDataBiz,
                        emayService,smsEmailMapper,smsConfigMapper,visitsMapper,visits.getId(),
                        SmsConstants.visitContent.visitTimeOutSignOut,
                        null,Arrays.asList(visits.getPhone().split(","))
                );
            }
            visits.setSendTimeOutNotice(Constants.ONE);
            visitsMapper.updateById(visits);
        }
        return pcWorkPlatformDataVO;
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -27,6 +27,7 @@
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
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;
@@ -1023,6 +1024,7 @@
                PlatformJob job = platformJobMapper.selectJoinOne(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>()
                        .selectAll(PlatformJob.class)
                        .selectAs(Platform::getName,PlatformJob::getPlatformName)
                        .selectAs(Platform::getLedContent,PlatformJob::getLedContent)
                        .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
//                        .eq(StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeFront,status.getPlateNo() )//前车牌号
//                        .eq(!StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeBack,status.getPlateNo() )//后车牌号
@@ -1054,15 +1056,21 @@
                    update.setStatus(Constants.PlatformJobStatus.DONE.getKey());//作业已完成
                    update.setDoneDate(update.getEditDate());*/
                    if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey()) ||
                            Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.TRANSFERING.getKey()) ||
                            Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.EXCEPTION.getKey()) ||
                            Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())){
                        if(((StringUtils.equals(status.getStockStatus(),"front") && StringUtils.equals(job.getCarCodeFront(),status.getPlateNo()))
                                ||(!StringUtils.equals(status.getStockStatus(),"front") && StringUtils.equals(job.getCarCodeBack(),status.getPlateNo()))
                        )){
                            //说明车辆进错月台 æˆ–者还未叫号状态,发起警告
//                          dealCarsInErrorPlatformBiz(job,status);
                            update.setInOut(Constants.ZERO);//车辆已经离开
                            platformJobMapper.updateById(update);
                        }
                            if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())  ||
                                    Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())){
                                update.setInOut(Constants.ZERO);//车辆已经离开
                                platformJobMapper.updateById(update);
                            }
                            dealPlatformContentForLeave(job);
                         }
                    }
                }else  if(StringUtils.equals(status.getMotionStatus(),"enter")){
                    //如果是车辆进入
@@ -1078,7 +1086,8 @@
                            platformJobMapper.updateById(update);
                        }
                    }
                    /*if(job.getStartDate() == null){
                    /*
                    if(job.getStartDate() == null){
                        update.setStartDate(update.getEditDate());
                    }
                    update.setStatus(Constants.PlatformJobStatus.WORKING.getKey());//开始作业
@@ -1104,6 +1113,37 @@
        return  null;
    }
    /**
     * æœˆå°è½¦è¾†ç¦»å¼€ è®¾ç½®æœˆå°æ–‡æ¡ˆä¸ºâ€œç©ºé—²ä¸­ æ–‡æ¡ˆâ€
     * @param model
     */
    private void dealPlatformContentForLeave(PlatformJob model) {
        List<PlatformDevice> deviceList = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda()
                .eq(PlatformDevice::getType, Constants.ZERO)
                .eq(PlatformDevice::getPlatformId,model.getPlatformId())
                .eq(PlatformDevice::getIsdeleted,Constants.ZERO));
        if(deviceList ==null || deviceList.size() == 0){
            return;
        }
        int speed = 13;
        try {
            speed = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.LED_CONTENT_SPEED).getCode());
        }catch (Exception e){
        }
        String content = StringUtils.defaultString(model.getLedContent(), Constants.PlatformLedContent.IDEL_CONTNET.getInfo());
        List<PlatformBroadcastLog> logList = new ArrayList<>();
        for(PlatformDevice device : deviceList){
            if(StringUtils.isBlank(device.getHkId())){
                continue;
            }
            PlatformBroadcastLog log = dealLedContentBiz(model.getId(),device.getHkNo(),device.getName(),content,speed,1);
            logList.add(log);
        }
        if(logList.size()>0){
            platformBroadcastLogMapper.insert(logList);
        }
    }
    private PlatformEvent initPlatformEventModel(EventPlatformCarsInfoRequest request, EventPlatformCarsDataRequest data, EventPlatformCarsStatusInfoRequest status) {
        PlatformEvent model = new PlatformEvent();
        model.setCreateDate(new Date());
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
@@ -67,7 +67,7 @@
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_LOCK_STATUS_URL).getCode();
        TmsBaseResponse<List<TmsLockStatusQueryResponse>> response = sendHttpRequest(url,"电子锁上锁时间接口",JSONObject.toJSONString(param)
        TmsBaseResponse<List<TmsLockStatusQueryResponse>> response = sendHttpRequest(url,"【TMS】电子锁上锁时间接口",JSONObject.toJSONString(param)
                ,new TypeReference< TmsBaseResponse<List<TmsLockStatusQueryResponse>>>(){});
        return  response;
    }