liukangdong
2024-12-19 955873b451cadfbc71bf21f4f7f8717d8a10936a
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
已添加6个文件
已修改23个文件
497 ■■■■■ 文件已修改
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/WholeProvinceController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/UserOpenidSaveRequest.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/TMSContants.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsFacrotyCodeListRequest.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsOutQtyAndVehicleQtyRequest.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsDistributionOfDeliveryLocResponse.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsInventoryListResponse.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOutQtyAndVehicleQtyResponse.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsTotalAndReportVehicleQtyResponse.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -192,6 +192,10 @@
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage());
        }
        if(Objects.nonNull(bookings.getId())){
            return;
        }
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
        String gsDate = format1.format(bookings.getStartTime());
@@ -371,11 +375,18 @@
        if(dbBookings.getStatus().equals(MeetConstants.ONE)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "本次操作失败,预约状态已流转");
        }
        Rooms rooms = roomsMapper.selectById(dbBookings.getRoomId());
        if(rooms==null ){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,该会议室暂时无法预约");
        }
        bookings.setRoomName(rooms.getName());
        LoginUserInfo user = bookings.getLoginUserInfo();
        isCreateParamValid(bookings, user);
        bookings.setEditDate(new Date());
        bookings.setEditor(user.getId());
        bookingsMapper.updateById(bookings);
        bookings.setManagerInfo(user.getRealname());
        bookings.setCreator(dbBookings.getCreator());
        //更新会议室预定时间段
        updateBookingTimes(bookings, user);
        //添加管理人员
@@ -386,7 +397,7 @@
        //发送会议通知
        if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){
            this.sendNotice(bookings, MeetConstants.TWO);
            SystemUser systemUser = systemUserMapper.selectById(bookings.getUserId());
            SystemUser systemUser = systemUserMapper.selectById(bookings.getCreator());
            this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ZERO);
        }
    }
@@ -1054,12 +1065,13 @@
        }
        bookingsMapper.updateById(bookings);
        //取消会议 å‘送取消通知
//        if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){
        if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){
//            this.sendNotice(bookings, 3);
//        }
        SystemUser systemUser = systemUserMapper.selectById(bookings.getCreator());
        bookings.setManagerInfo(systemUser.getRealname());
        this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ONE);
        }
    }
@@ -1378,6 +1390,32 @@
                }
            }
        }
        //给创建人发送短信信息
        SystemUser systemUser = systemUserMapper.selectById(bookings.getCreator());
        if(Objects.nonNull(systemUser)){
            if(userRelList.stream().filter(i->Constants.equalsInteger(i.getUserId(),systemUser.getId())).collect(Collectors.toList()).size()==Constants.ZERO){
                if (smsConfig!=null && Constants.equalsInteger(smsConfig.getStatus(),Constants.ZERO)){
                    SmsEmail smsEmail = new SmsEmail();
                    //{参会人员姓名},您好!您有一个新的会议,会议主题:{会议主题},会议地点:{会议室名称},会议时间:{会议时间段},请按时参加
                    String timeInfo =DateUtil.getFomartDate( bookings.getStartTime(),"MM/dd HH:mm")+"-"
                            +DateUtil.getFomartDate( bookings.getEndTime(),"HH:mm");
                    smsEmail.setPhone(systemUser.getMobile());
                    smsEmail.setRemark("等待发送");
                    smsEmail.setStatus(Constants.TWO);//
                    smsEmail.setIsdeleted(Constants.ZERO);
                    smsEmail.setType(Constants.ZERO);
                    smsEmail.setObjId(bookings.getId());
                    smsEmail.setCreateDate(new Date());
                    smsEmail.setTitle("会议室申请参会通知");
                    smsEmail.setContent(StringUtils.defaultString(smsConfig.getContent(),"")
                            .replace("{参会人员姓名}",StringUtils.defaultString(systemUser.getRealname(),""))
                            .replace("{会议主题}",StringUtils.defaultString(bookings.getName(),""))
                            .replace("{会议室名称}",StringUtils.defaultString(bookings.getRoomName(),""))
                            .replace("{会议时间段}",StringUtils.defaultString(timeInfo,"")));
                    smsEmailList.add(smsEmail);
                }
            }
        }
        //给参会人员插入
        Notices notices = new Notices(noticeObjectType,bookings.getId(),noticeObjectType.getInfo(),bookings.getCreator(), Constants.ZERO);
        noticeList.add(notices);
server/system_service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
@@ -66,7 +66,8 @@
        queryDto.setDeleted(Boolean.FALSE);
        SystemDict dictData = systemDictService.findOne(queryDto);
        if (dictData == null) {
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "数据值不存在");
            return  new SystemDictData();
//            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "数据值不存在");
        }
        SystemDictData data = new SystemDictData();
        data.setDictId(dictData.getId());
server/system_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -42,9 +42,9 @@
    @Autowired
    private RedisTemplate<String,Object> redisTemplate;
    @Autowired
    private JwtProperties jwtProperties;
    @Autowired
    private SystemUserService systemUserService;
    @Autowired
    private JwtProperties jwtProperties;
    @Autowired
    private SystemUserRoleService systemUserRoleService;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -114,13 +114,21 @@
        return ApiResponse.success(result);
    }
    @PreventRepeat
    @ApiOperation("【海康】保持海康用户绑定openid")
    @ApiOperation("【海康】保存海康用户绑定openid")
    @PostMapping("/saveHkUserOpenid")
    public ApiResponse syncHkUserOpenid( @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        String result     = hkSyncOrgUserToHKService.syncHkUserOpenid(this.getLoginUser(token).getId());
        return ApiResponse.success(result);
    }
    @PreventRepeat
    @ApiOperation("【海康】清空海康用户绑定openid")
    @PostMapping("/delHkUserOpenid")
    @LoginNoRequired
    public ApiResponse delHkUserOpenid( @RequestBody UserOpenidSaveRequest param){
        String result     = hkSyncOrgUserToHKService.delHkUserOpenid(param);
        return ApiResponse.success(result);
    }
    @PreventRepeat
    @ApiOperation("【海康】获取组件授权登录地址接口")
    @PostMapping("/getServiceUrl")
    public ApiResponse getServiceUrl(@RequestBody HKGetServiceLoginUrlRequest param,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/WholeProvinceController.java
@@ -8,7 +8,6 @@
import com.doumee.dao.web.response.platformReport.*;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -623,6 +623,7 @@
        String[] fireMonitorData= new String[]{"/api/v2/monitor/fireMonitorData","分页查询设备监测历史数据"};//分页查询设备监测历史数据
        String[] userOpenidSave= new String[]{"/api/v1/oa/userOpenId/saveV2","保存用户及openId绑定信息微信公众号"};//保存用户及openId绑定信息微信公众号
        String[] userOpenidDel= new String[]{"/api/v1/oa/userOpenId/delete","通过openId或userName等删除绑定信息"};//通过openId或userName等删除绑定信息
        String[] temperatureHumidityDataStatistic= new String[]{"/api/v2/public/monitor/sensor/list","消防看板-4温湿度统计"};//消防看板-温湿度
        String[] regionDataRanking= new String[]{"/api/ecm/v1/energy/regionDataRanking","消防看板-4获取区域用量排名-能耗看板"};//消防看板-获取区域用量排名 - èƒ½è€—看板
        String[] energyTotal= new String[]{"/api/ecm/v1/energy/energyTotal","消防看板-4根据时间和时间维度获取园区能耗数据"};//消防看板-根据时间和时间维度获取园区能耗数据
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -434,6 +434,12 @@
        saveInterfaceLog(JSONObject.toJSONString(body),result,path,pathStr[1]);
        return result;
    }
    public static String startDoGetStringArtemis(String[] pathStr,Map<String,String> querys ,Map<String, String> header ){
        Map<String, String> path = getPath(pathStr[0]);
        String result = ArtemisHttpUtil.doGetArtemis(path, querys, null, null,  header);
        saveInterfaceLog(JSONObject.toJSONString(querys),result,path,pathStr[1]);
        return result;
    }
    public static String startDoGetStringArtemisJson(String[] pathStr,Map<String,String> body ){
        Map<String, String> path = getPath(pathStr[0]);
        Map<String, String> header = new HashMap<>();
@@ -891,6 +897,16 @@
        return startDoPostStringArtemis(HKConstants.InterfacePath.userOpenidSave,null,header,body);
    }
    /**
     *通过openId或userName等删除绑定信息
     * @param param
     * @return
     */
    public static String userOpenidDel(Map<String,String>  param) {
        Map<String,String> header = new HashMap<>();
        header.put("userId","admin");
        return startDoGetStringArtemis(HKConstants.InterfacePath.userOpenidDel,param,header);
    }
    /**
     *分页查询设备监测历史数据
     * @param body
     * @return
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/UserOpenidSaveRequest.java
@@ -11,4 +11,6 @@
 private String oaId;//    String    false    atwl
 private String platformName    ;//String    false    å®‰æ³°ç‰©æµå›­åŒº
 private String operateTime    ;//String    false    2024-12-09T15:49:04-07:00
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -1646,6 +1646,24 @@
        return  null;
    }
    /**
     *通过openId或userName等删除绑定信息
     * @return
     */
    public  static  BaseResponse  userOpenidDel(UserOpenidSaveRequest param){
        log.info("【海康通过openId或userName等删除绑定信息】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.userOpenidDel(toMap(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse >(){};
            BaseResponse<Integer>   result = JSONObject.parseObject(res, typeReference.getType());
            logResult(result,"海康通过openId或userName等删除绑定信息");
            return  result;
        }catch (Exception e){
            log.error("【海康通过openId或userName等删除绑定信息】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *分页查询设备监测历史数据
     * @return
     */
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/TMSContants.java
@@ -15,10 +15,12 @@
        String[] getInboundOutbound = new String[]{"/tms/zhyt/getInboundOutbound",  "【TMS】出入库记录查询"};//TMS出入库记录查询接口地址
        String[] getIntransitDetails = new String[]{"/tms/zhyt/getIntransitDetails",  "【TMS】在途明细列表"};//TMS在途明细列表接口地址
        String[] getOrderList = new String[]{"/tms/zhyt/getOrderList",  "【TMS】合同列表查询"};//TMS合同列表查询接口地址
        String[] getTotalAndReportVehicleQty = new String[]{"/tms/zhyt/getTotalAndReportVehicleQty",  "【TMS】查询5个厂的运力资源利用情况。"};//查询5个厂的运力资源利用情况。
        String[] getElecByContractNumberList = new String[]{"/tms/zhyt/getElecByContractNumberList",  "【TMS】合同上锁状态"};//TMS合同上锁状态接口地址
        String[] getOrderDetailByContractNumber = new String[]{"/tms/zhyt/getOrderDetailByContractNumber",  "【TMS】合同详情"};//TMS合同详情接口地址
        String[] getGis = new String[]{"/tms/zhyt/getGis",  "【TMS】根据运输单号查询gis轨"};//TMS根据运输单号查询gis轨接口地址
        String[] getOrderStatusByContractNumber = new String[]{"/tms/zhyt/getOrderStatusByContractNumber",  "【TMS】单生命周期"};//3.8订单生命周期
        String[] getOutQtyAndVehicleQty = new String[]{"/tms/zhyt/getOutQtyAndVehicleQty",  "【TMS】指定时间范围内累计出库量"};//3.8指定时间范围内累计出库量
    }
    public  enum TopStatusLevel {
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsFacrotyCodeListRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.doumee.core.tms.model.request;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms烟厂集合请求参数")
public class TmsFacrotyCodeListRequest {
    private List<String> facrotyCodeList;//是    é›†åˆ    çƒŸåŽ‚é›†åˆ
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/request/TmsOutQtyAndVehicleQtyRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.doumee.core.tms.model.request;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms指定时间范围内累计出库量请求参数")
public class TmsOutQtyAndVehicleQtyRequest {
    private String dateStart;//    å­—符串    å¼€å§‹æ—¥æœŸ 2024-12-19
    private String dateEnd    ;//    å­—符串    ç»“束日期 2024-12-19
    private List<String> facrotyCodeList;//是    é›†åˆ    çƒŸåŽ‚é›†åˆ
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsDistributionOfDeliveryLocResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.doumee.core.tms.model.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms全国到货地分布查询返回参数")
public class TmsDistributionOfDeliveryLocResponse {
    @ApiModelProperty(value = "到货地省份名称" )
    private String   toProvinceName; //    å­—符串  //到货地省份名称
    @ApiModelProperty(value = "到货地省份行政编码" )
    private String  toProvinceCode    ; //字符串    åˆ°è´§åœ°çœä»½è¡Œæ”¿ç¼–码
    @ApiModelProperty(value = "出货地省份名称" )
    private String   fromProvinceName; //    å­—符串    å‡ºè´§åœ°çœä»½åç§°
    @ApiModelProperty(value = "出货地省份行政编码" )
    private String    fromProvinceCode; //    å­—符串    å‡ºè´§åœ°çœä»½è¡Œæ”¿ç¼–码
    @ApiModelProperty(value = "本年累计发往到货地的出库量" )
    private BigDecimal yearOutboundQuantity; //    æ•°å­—    æœ¬å¹´ç´¯è®¡å‘往到货地的出库量
    @ApiModelProperty(value = "本月累计发放到货地的出库量" )
    private BigDecimal   monthOutboundQuantity; //数字    æœ¬æœˆç´¯è®¡å‘放到货地的出库量
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsInventoryListResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
package com.doumee.core.tms.model.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms实时库存查询返回参数")
public class TmsInventoryListResponse {
    @ApiModelProperty(value = "编码" )
    private String   id; //        å­—符串
    @ApiModelProperty(value = "品规编码" )
    private String   brandCode; //        å­—符串    å“è§„编码
    @ApiModelProperty(value = "品规名称" )
    private String   productName; //        å­—符串    å“è§„名称
    @ApiModelProperty(value = "工厂编号" )
    private String   factoryCode    ; //    å­—符串    å·¥åŽ‚ç¼–å·
    @ApiModelProperty(value = "仓库编号" )
    private String   repertotyCode    ; //    å­—符串    ä»“库编号
    @ApiModelProperty(value = "库存组织编码" )
    private String   productAreaCode    ; //    å­—符串    åº“存组织编码
    @ApiModelProperty(value = "库存组织名称" )
    private String   productAreaName    ; //    å­—符串    åº“存组织名称
    @ApiModelProperty(value = "库存标识" )
    private String   inventoryId    ; //    å­—符串    åº“存标识
    @ApiModelProperty(value = "烟厂名称,产地" )
    private String   factoryName    ; //    å­—符串    çƒŸåŽ‚åç§°,产地
    @ApiModelProperty(value = "所在仓库名称" )
    private String   repertoryName    ; //    å­—符串    æ‰€åœ¨ä»“库名称
    @ApiModelProperty(value = "库存数量" )
    private BigDecimal   stockQty    ; //    å­—符串    åº“存数量
    @ApiModelProperty(value = "版型编码" )
    private String   versionCode; //        å­—符串    ç‰ˆåž‹ç¼–码
    @ApiModelProperty(value = "版型名称" )
    private String   versionName    ; //    å­—符串    ç‰ˆåž‹åç§°
    @ApiModelProperty(value = "箱型" )
    private String   vbatchCode    ; //    å­—符串    ç®±åž‹
    @ApiModelProperty(value = "品规名称" )
    private String   proName    ; //    å­—符串    å“è§„名称
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOutQtyAndVehicleQtyResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.doumee.core.tms.model.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.math3.fraction.BigFraction;
import java.math.BigDecimal;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms指定时间范围内累计出库量返回参数")
public class TmsOutQtyAndVehicleQtyResponse {
    @ApiModelProperty(value = "累计出库量")
    private BigDecimal totalOutQty;//数字    ç´¯è®¡å‡ºåº“量
    @ApiModelProperty(value = "省外累计出库量")
    private String outSideProvinceOutQty;//    æ•°å­—    çœå¤–累计出库量
    @ApiModelProperty(value = "省内累计出库量")
    private String inSideProvinceOutQty;//    æ•°å­—    çœå†…累计出库量
    @ApiModelProperty(value = "累计出库车次")
    private BigDecimal vehicleQty;//数字    ç´¯è®¡å‡ºåº“车次
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsTotalAndReportVehicleQtyResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.doumee.core.tms.model.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/23 14:03
 */
@Data
@ApiModel("tms运力资源利用率返回参数")
public class TmsTotalAndReportVehicleQtyResponse {
    @ApiModelProperty(value = "工厂编码" )
    private String   factoryCode;//    å­—符串    å·¥åŽ‚ç¼–ç 
    @ApiModelProperty(value = "工厂名称" )
    private String   factoryName;//    å­—符串    å·¥åŽ‚åç§°
    @ApiModelProperty(value = "提报运力数" )
    private String   reportQty;//    æ•°å­—    ææŠ¥è¿åŠ›æ•°
    @ApiModelProperty(value = "总运力数" )
    private String   totalQty;//    æ•°å­—    æ€»è¿åŠ›æ•°
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
@@ -437,6 +437,7 @@
                    paramMap.put("touser", openId);
                    paramMap.put("data", dataMap);
                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
                    log.warn("·==++--·推送微信模板信息:{}", JSONObject.toJSONString(paramMap));
                    if(StringUtils.isBlank(response)){
                        log.warn("·==++--·推送微信模板信息:{}·--++==·", "失败");
                    }else{
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/CarUseBook.java
@@ -177,6 +177,9 @@
    @ApiModelProperty(value = "申请人电话")
    @TableField(exist = false)
    private String memberMobile;
    @ApiModelProperty(value = "通知描述")
    @TableField(exist = false)
    private String info;
    @ApiModelProperty(value = "审批信息数据")
    @TableField(exist = false)
    private ApproveDataVO approveDateVO;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformBooks.java
@@ -98,6 +98,8 @@
    @ExcelColumn(name="入园原因",index = 1,width = 12)
    private String inReason;
    @ApiModelProperty(value = "入园原因主键")
    private Integer reasonId;
@@ -139,6 +141,11 @@
    @TableField(exist = false)
    private String auditTime;
    @ApiModelProperty(value = "通知描述")
    @TableField(exist = false)
    private String info;
    @ApiModelProperty(value = "审批信息数据")
    @TableField(exist = false)
    private ApproveDataVO approveDateVO;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -320,6 +320,10 @@
    @TableField(exist = false)
    private LoginUserInfo loginUserInfo;
    @ApiModelProperty(value = "通知描述")
    @TableField(exist = false)
    private String info;
    @ApiModelProperty(value = "审批信息数据")
    @TableField(exist = false)
    private ApproveDataVO approveDateVO;
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -102,4 +102,5 @@
    String dealPlatformCarsEvent(EventPlatformCarsRequest param, HttpServletResponse response);
    String syncHkUserOpenid(Integer id);
    String delHkUserOpenid(UserOpenidSaveRequest param);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -248,6 +248,22 @@
            approveList.add(approve);
        }
        model.setApproveDateVO(approveDataVO);
        Notices notices = noticesJoinMapper.selectOne(new QueryWrapper<Notices>().lambda()
                .eq(Notices::getObjId,id)
                .eq(Notices::getType,Constants.noticesObjectType.useCar)
                .eq(Notices::getUserId,memberId)
                .eq(Notices::getSendacopy,Constants.ZERO)
                .orderByDesc(Notices::getId).last(" limit 1 "));
        if(Objects.nonNull(notices)){
            if(Constants.equalsInteger(notices.getStatus(),Constants.ZERO)){
                model.setInfo("待我处理");
            }else{
                model.setInfo(notices.getInfo());
            }
        }
        return  model;
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
@@ -21,6 +21,7 @@
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.join.NoticesJoinMapper;
import com.doumee.dao.system.model.Notices;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO;
import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO;
@@ -392,6 +393,20 @@
            approve.setCheckDate(model.getCancelTime());
            approveList.add(approve);
        }
        Notices notices = noticesJoinMapper.selectOne(new QueryWrapper<Notices>().lambda()
                .eq(Notices::getObjId,id)
                .eq(Notices::getType,Constants.noticesObjectType.reason)
                .eq(Notices::getUserId,memberId)
                .eq(Notices::getSendacopy,Constants.ZERO)
                .orderByDesc(Notices::getId).last(" limit 1 "));
        if(Objects.nonNull(notices)){
            if(Constants.equalsInteger(notices.getStatus(),Constants.ZERO)){
                model.setInfo("待我处理");
            }else{
                model.setInfo(notices.getInfo());
            }
        }
        return model;
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -1220,6 +1220,22 @@
            result.setBusinessStatus(result.getStatus());
        }
        Notices notices = noticesJoinMapper.selectOne(new QueryWrapper<Notices>().lambda()
                .eq(Notices::getObjId,id)
                .eq(Notices::getType,Constants.equalsInteger(result.getType(),Constants.TWO)?Constants.noticesObjectType.visitReporting:Constants.noticesObjectType.visit)
                .eq(Notices::getUserId,memberId)
                .eq(Notices::getSendacopy,Constants.ZERO)
                .orderByDesc(Notices::getId).last(" limit 1 "));
        if(Objects.nonNull(notices)){
            if(Constants.equalsInteger(notices.getStatus(),Constants.ZERO)){
                result.setInfo("待我处理");
            }else{
                result.setInfo(notices.getInfo());
            }
        }
        return result;
    }
@@ -1422,30 +1438,21 @@
                            memberId)
            );
//        }
        if(Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.waitCheck)||Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.submitCheck)){
            Notices notices = noticesJoinMapper.selectOne(new QueryWrapper<Notices>().lambda().eq(Notices::getObjId,visits.getId())
        Notices notices = noticesJoinMapper.selectOne(new QueryWrapper<Notices>().lambda()
                .eq(Notices::getObjId,id)
                    .eq(Notices::getType,Constants.equalsInteger(visits.getType(),Constants.TWO)?Constants.noticesObjectType.visitReporting:Constants.noticesObjectType.visit)
                    .eq(Notices::getUserId,memberId)
                    .eq(Notices::getSendacopy,Constants.ZERO)
                    .last(" limit 1 ")
            );
            visitDetailVO.setInfoStatus(1);
                .orderByDesc(Notices::getId).last(" limit 1 "));
            if(Objects.nonNull(notices)){
            if(Constants.equalsInteger(notices.getStatus(),Constants.ZERO)){
                visitDetailVO.setInfo("待我处理");
            }else{
                visitDetailVO.setInfo(notices.getInfo());
            }else{
                visitDetailVO.setInfo("暂无");
            }
        }else if(Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.noPass)){
            visitDetailVO.setInfoStatus(Constants.VisitStatus.noPass);
            visitDetailVO.setInfo("审批未通过");
        }
        }else if(Constants.equalsInteger(visits.getStatus(),Constants.VisitStatus.cancel)){
            visitDetailVO.setInfoStatus(Constants.VisitStatus.cancel);
            visitDetailVO.setInfo("已取消");
        }else{
            visitDetailVO.setInfoStatus(Constants.VisitStatus.pass);
            visitDetailVO.setInfo("审批已通过");
        }
        return visitDetailVO;
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -105,6 +105,10 @@
        return  null;
    }
    @Override
    public   String delHkUserOpenid(UserOpenidSaveRequest param){
        return  null;
    }
    @Override
    public String   dealAcsEvent(EventAcsRequest param, HttpServletResponse response){
        return  null;
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -106,6 +106,22 @@
        systemUserMapper.updateById(user);
        return  "成功";
    }
    @Override
    public    String delHkUserOpenid(UserOpenidSaveRequest param){
        UserOpenidSaveRequest request = new UserOpenidSaveRequest();
        request.setUserName(param.getUserName());
        request.setAppKey(systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode());
        BaseResponse response = HKService.userOpenidDel(request);
        if(response!=null &&response.getCode().equals(HKConstants.RESPONSE_SUCCEE)){
        }
        request.setUserName(null);
        request.setOpenId(param.getOpenId());
        request.setAppKey(systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode());
        response = HKService.userOpenidDel(request);
        if(response!=null &&response.getCode().equals(HKConstants.RESPONSE_SUCCEE)){
        }
        return  "成功";
    }
    /**
     * åŒæ­¥æµ·åº·ç»„织信息,根据erp同步组织结果,定时检查需要下发到海康的组织信息
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
@@ -2,8 +2,6 @@
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.tms.model.TMSContants;
import com.doumee.core.tms.model.request.*;
@@ -11,24 +9,15 @@
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.HttpsUtil;
import com.doumee.core.wms.model.request.*;
import com.doumee.core.wms.model.response.WmsBaseDataResponse;
import com.doumee.core.wms.model.response.WmsBaseResponse;
import com.doumee.core.wms.model.response.WmsInventoryDataResponse;
import com.doumee.dao.business.*;
import com.doumee.dao.business.dao.SmsEmailMapper;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.impl.SmsEmailServiceImpl;
import com.doumee.service.business.third.TmsService;
import com.doumee.service.business.third.WmsService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@@ -252,7 +241,8 @@
        }
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +TMSContants.InterfacePath.getOrderDetailByContractNumber[0];
        TmsBaseResponse<TmsOrderInfoResponse> response = sendHttpRequest(url,TMSContants.InterfacePath.getOrderDetailByContractNumber[1],param.getContractNumber()
        TmsBaseResponse<TmsOrderInfoResponse> response = sendHttpRequest(url,TMSContants.InterfacePath.getOrderDetailByContractNumber[1]
                ,param.getContractNumber()
                ,new TypeReference< TmsBaseResponse<TmsOrderInfoResponse>>(){});
        if(response!=null && response.getData()!=null){
              result =response.getData();
@@ -267,6 +257,82 @@
        result.setCicleStatusList(getCicleStatusList(p1));
        return result;
    }
    /**
     * å…¨å›½åˆ°è´§åœ°åˆ†å¸ƒæŸ¥è¯¢æŸ¥è¯¢
     * @param param å‚æ•°
     * @return TmsBaseResponse
     */
    @Override
    public  List<TmsDistributionOfDeliveryLocResponse>   getDistributionOfDeliveryLocations(TmsFacrotyCodeListRequest param){
        List<TmsDistributionOfDeliveryLocResponse> result = new ArrayList<>();
        if( param.getFacrotyCodeList() == null || param.getFacrotyCodeList().size() == 0){
            param.setFacrotyCodeList(new ArrayList<>());
            param.getFacrotyCodeList().add("0");
        }
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +TMSContants.InterfacePath.getDistributionOfDeliveryLocations[0];
        TmsBaseResponse< List<TmsDistributionOfDeliveryLocResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getDistributionOfDeliveryLocations[1],
                JSONObject.toJSONString(param)
                ,new TypeReference< TmsBaseResponse< List<TmsDistributionOfDeliveryLocResponse>>>(){});
        if(response!=null && response.getData()!=null){
              result =response.getData();
        }
        return result;
    }
    /**
     * å®žæ—¶åº“存查询
     * @return TmsBaseResponse
     */
    @Override
    public  List<TmsInventoryListResponse>   getRealTimeInventory( ){
        List<TmsInventoryListResponse> result = new ArrayList<>();
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +TMSContants.InterfacePath.getRealTimeInventory[0];
        TmsBaseResponse< List<TmsInventoryListResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getRealTimeInventory[1]
                ,"{}"
                ,new TypeReference< TmsBaseResponse< List<TmsInventoryListResponse>>>(){});
        if(response!=null && response.getData()!=null){
              result =response.getData();
        }
        return result;
    }
    /**
     * æŸ¥è¯¢5个厂的运力资源利用情况
     * @return TmsBaseResponse
     */
    @Override
    public  List<TmsTotalAndReportVehicleQtyResponse>   getTotalAndReportVehicleQty( ){
        List<TmsTotalAndReportVehicleQtyResponse> result = new ArrayList<>();
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +TMSContants.InterfacePath.getTotalAndReportVehicleQty[0];
        TmsBaseResponse< List<TmsTotalAndReportVehicleQtyResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getTotalAndReportVehicleQty[1]
                ,"{}"
                ,new TypeReference< TmsBaseResponse< List<TmsTotalAndReportVehicleQtyResponse>>>(){});
        if(response!=null && response.getData()!=null){
              result =response.getData();
        }
        return result;
    }
    /**
     * æŒ‡å®šæ—¶é—´èŒƒå›´å†…累计出库量
     * @return TmsBaseResponse
     */
    @Override
    public  List<TmsOutQtyAndVehicleQtyResponse>   getOutQtyAndVehicleQty(TmsOutQtyAndVehicleQtyRequest param ){
        List<TmsOutQtyAndVehicleQtyResponse> result = new ArrayList<>();
        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
                    +TMSContants.InterfacePath.getOutQtyAndVehicleQty[0];
        TmsBaseResponse< List<TmsOutQtyAndVehicleQtyResponse>> response = sendHttpRequest(url,TMSContants.InterfacePath.getOutQtyAndVehicleQty[1]
                ,JSONObject.toJSONString(param)
                ,new TypeReference< TmsBaseResponse< List<TmsOutQtyAndVehicleQtyResponse>>>(){});
        if(response!=null && response.getData()!=null){
              result =response.getData();
        }
        return result;
    }
    /**
     * å‘èµ· tms接口请求
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/WmsServiceImpl.java
@@ -242,6 +242,7 @@
                return returnFailReuslt("请求参数不正确,参数不能为空");
            }
            List<PlatformJob> jobList = new ArrayList<>();
            List<Integer> jobIdList = new ArrayList<>();
            List<PlatformWmsDetail> details = new ArrayList<>();
            List<String> iocodeList = new ArrayList<>();
            for(WmsInboundNoticeRequest param : list.getData()){
@@ -277,6 +278,7 @@
                    platformWmsJobMapper.insert(job);
                    jobList.add(model);
                }
                jobIdList.add(job.getId());
                if(param.getDetails()!=null && param.getDetails().size()>0){
                    for(WmsInboundDetailRequest d :param.getDetails()){
                        PlatformWmsDetail entity = new PlatformWmsDetail();
@@ -308,6 +310,7 @@
                platformWmsDetailMapper.insert(details);
            }
            if(jobList.size()>0){
                list.setJobIdList(jobIdList);
                startEndNoticeToDriver(jobList);
            }
        }catch (Exception e){
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java
@@ -2,12 +2,6 @@
import com.doumee.core.tms.model.request.*;
import com.doumee.core.tms.model.response.*;
import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
import com.doumee.core.wms.model.request.WmsBaseRequest;
import com.doumee.core.wms.model.request.WmsInboundNoticeRequest;
import com.doumee.core.wms.model.request.WmsOutboundNoticeRequest;
import com.doumee.core.wms.model.response.WmsBaseResponse;
import com.doumee.dao.business.model.PlatformJob;
import java.util.List;
@@ -45,4 +39,29 @@
     TmsOrderInfoResponse orderInfo(TmsOrderInfoRequest param);
    void  saveInterfaceLog(String url,String name,String  param,Integer success,String respone,int type);
    /**
     * å…¨å›½åˆ°è´§åœ°åˆ†å¸ƒæŸ¥è¯¢æŸ¥è¯¢
     * @param param å‚æ•°
     * @return TmsBaseResponse
     */
    List<TmsDistributionOfDeliveryLocResponse>   getDistributionOfDeliveryLocations(TmsFacrotyCodeListRequest param);
    /**
     * å®žæ—¶å­˜åº“查询
     * @return
     */
    List<TmsInventoryListResponse>   getRealTimeInventory( );
    /**
     * æŸ¥è¯¢5个厂的运力资源利用情况
     * @return TmsBaseResponse
     */
      List<TmsTotalAndReportVehicleQtyResponse>   getTotalAndReportVehicleQty( );
    /**
     * æŒ‡å®šæ—¶é—´èŒƒå›´å†…累计出库量
     * @param param
     * @return
     */
    List<TmsOutQtyAndVehicleQtyResponse>   getOutQtyAndVehicleQty(TmsOutQtyAndVehicleQtyRequest param );
}