diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java index ce67818f8..e18484e8d 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/BmsServiceFeign.java @@ -35,6 +35,13 @@ public interface BmsServiceFeign { @GetMapping("/settlementCustomersApi/getInfoByCode") public AjaxResult getCustomersInfoByCode(@RequestParam("settlementCustomersCode")String settlementCustomersCode); + /** + * 按结算主体ID(如货主ID,对应 settlement_customers.settlement_entity_id)查询结算对象 + */ + @GetMapping("/settlementCustomersApi/getInfoBySettlementEntityId") + AjaxResult getCustomersInfoBySettlementEntityId(@RequestParam("settlementEntityId") Long settlementEntityId, + @RequestParam(value = "topOrganizationId", required = false) Long topOrganizationId); + /** * 推送同步业务单据 diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java index 41fde507b..3466fdf14 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/OmsServiceFeign.java @@ -8,10 +8,14 @@ import com.mhd.system.api.factory.RemoteOmsFeignFallbackFactory; import com.mhd.system.api.feign.FeignAutoConfiguration; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.scheduling.annotation.Async; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.4:8017", configuration = FeignAutoConfiguration.class) +import java.util.concurrent.CompletableFuture; + +@FeignClient(contextId = "OmsService", value = ServiceNameConstants.OMS_SERVICE,url = "http://10.102.192.4:8017", fallbackFactory = RemoteOmsFeignFallbackFactory.class, configuration = FeignAutoConfiguration.class) public interface OmsServiceFeign { @@ -33,10 +37,24 @@ public interface OmsServiceFeign { public AjaxResult pushOutOrderDetail(@RequestBody OutMaterialDetailTZPD outMaterialDetail); @ApiOperation("编辑物料库存") - @PostMapping("/materialInventoryApi/omsEdit") - public AjaxResult omsEdit(@RequestBody MaterialInventoryOmsParamDO materialInventoryOmsParamDO); + @PostMapping("/reservationMaterialInventoryApi/omsEdit") + @Async + public CompletableFuture omsEdit(@RequestBody MaterialInventoryOmsParamDO materialInventoryOmsParamDO); - @ApiOperation("库存调整记录插入") - @PostMapping("/reservationInventoryAdjustmentRecordApi/edit") - AjaxResult inventoryAdjustmentRecordInsert(InventoryAdjustmentRecord inventoryAdjustmentRecord); + @ApiOperation("查询企业单位列表-新增物料时显示下拉框数据") + @GetMapping("/erpEnterpriseUnitApi/unitList") + public AjaxResult getUnitList(ErpEnterpriseUnitDTO erpEnterpriseUnitDTO); + + //查询企业国别列表-新增物料时显示下拉框数据 + @ApiOperation("查询企业国别列表-新增物料时显示下拉框数据") + @GetMapping("/erpCountryApi/countryList") + public AjaxResult getCountryList(ErpCountryDTO erpCountryDTO); + + @ApiOperation("保存gwlog") + @PostMapping("/gwLogApi/saveGwLog") + AjaxResult insertGwLog(@RequestBody GwLogDTO gwLogDTO); + + @ApiOperation("修改gwlog") + @PostMapping("/gwLogApi/updateGwLog") + AjaxResult updateGwLog(@RequestBody GwLogDTO gwLogDTO); } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java index 09e94e408..7fc8e5033 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/UserServiceFeign.java @@ -9,15 +9,19 @@ import com.mhd.common.core.domain.dto.UserDriverDTO; import com.mhd.common.core.domain.entity.R; import com.mhd.common.core.domain.todo.StatisticalMattersDo; import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.system.api.domain.UserDTO; +import com.mhd.system.api.domain.UserShipperQueryDTO; import com.mhd.system.api.domain.UserUpdateDTO; import com.mhd.system.api.factory.RemoteUserFeignFallbackFactory; import com.mhd.system.api.feign.FeignAutoConfiguration; import com.mhd.system.api.model.LoginUser; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; +import java.util.Date; import java.util.List; import java.util.Map; @@ -201,15 +205,16 @@ public interface UserServiceFeign { @ApiOperation("商业合作伙伴-分页查询托运人列表") @GetMapping("/userShipperApi/userShipperList") - public AjaxResult userShipperList(@RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum, - @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize, - @RequestParam(value = "userAccount", required = false) String userAccount, - @RequestParam(value = "shipperEnterpriseName", required = false) String shipperEnterpriseName, - @RequestParam(value = "organizationId", required = false) Long organizationId, - @RequestParam(value = "organizationName", required = false) String organizationName, - @RequestParam(value = "createTimeFrom", required = false) String createTimeFrom, - @RequestParam(value = "createTimeTo", required = false) String createTimeTo, - @RequestParam(value = "updateTimeFrom", required = false) String updateTimeFrom, - @RequestParam(value = "updateTimeTo", required = false) String updateTimeTo, - @RequestParam(value = "shipperType", required = false) Integer shipperType); + public TableDataInfo userShipperList(@SpringQueryMap UserShipperQueryDTO userShipperQueryDTO); + + + @PostMapping("/userShipperApi/updatePushStatus") + public AjaxResult updatePushStatus(@RequestParam(value = "shipperId") Long shipperId, + @RequestParam(value = "pushStatus", required = false) Integer pushStatus, + @RequestParam(value = "pushTime", required = false) String pushTime, + @RequestParam(value = "pushBy", required = false) Long pushBy, + @RequestParam(value = "pushByName", required = false) String pushByName); + + @PostMapping("/userShipperApi/getCustomerNcCodeBatch") + AjaxResult getCustomerNcCodeBatch(@RequestBody List shipperIdList); } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java index 5297c1fc5..dfb64994b 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WlhyServiceFeign.java @@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; -@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.5:8014",configuration = FeignAutoConfiguration.class) +@FeignClient(contextId = "commonWlhyServiceFeign",value = ServiceNameConstants.WLHY_SERVICE,url = "http://10.102.192.30:8014",configuration = FeignAutoConfiguration.class) public interface WlhyServiceFeign { /** @@ -538,4 +538,19 @@ public interface WlhyServiceFeign { @GetMapping("/feign/order/cancelIssueDocuments") public AjaxResult cancelIssueDocuments(@RequestParam(name="executeOrderId") String executeOrderId); + + @GetMapping(value = "/ntocc/tmsSettlementExchangeRate/queryList") + public AjaxResult queryList(@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + @RequestParam(name="pushStatus", required = false) String pushStatus, + @RequestParam(name="organizationId", required = false) String organizationId); + + + @ApiOperation("汇率-更新推送状态") + @PostMapping("/ntocc/tmsSettlementExchangeRate/updatePushStatus") + void updateExchangeRatePushStatus(@RequestParam("id") String id, + @RequestParam("pushStatus") Integer pushStatus, + @RequestParam(name="pushTime",required = false) String pushTime, + @RequestParam(name="pushBy",required = false) Long pushBy, + @RequestParam(name="pushByName",required = false) String pushByName); } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java index 815c7f04e..687c0e1ae 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/WmsServiceFeign.java @@ -2,6 +2,7 @@ package com.mhd.system.api; import com.mhd.common.core.constant.ServiceNameConstants; import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.system.api.domain.*; import com.mhd.system.api.factory.RemoteWmsFallbackFactory; import com.mhd.system.api.feign.FeignAutoConfiguration; @@ -81,6 +82,13 @@ public interface WmsServiceFeign { @PostMapping(value = "/stockOutOrderApi/omsOutOrderAddDetail") public void omsOutOrderAddDetail(@RequestBody List outMaterialDetails); + /** + * oms下发单明细保存 + */ + @ApiOperation("oms下发单明细保存") + @PostMapping(value = "/stockOutOrderApi/omsOutOrderAddDeliveryDetailsLink") + public void omsOutOrderAddDeliveryDetailsLink(@RequestBody List deliveryDetailsLinks); + /** * oms下发单保存 @@ -95,4 +103,16 @@ public interface WmsServiceFeign { @ApiOperation("oms下发单明细保存") @PostMapping(value = "/stockInOrderApi/omsInOrderAddDetail") public void omsInOrderAddDetail(@RequestBody List inMaterialDetails); + + @ApiOperation("oms查询物料列表") + @GetMapping("/materialBaseInfoApi/queryList") + public TableDataInfo getMaterialBaseInfoList(MaterialInfoDTO materialInfoDTO); + + @ApiOperation("oms物料列表推送-更新推送信息") + @PostMapping("/materialBaseInfoApi/updatePushStatus") + public AjaxResult updateMaterialPushStatus(@RequestParam("materialBaseInfoId") Long materialBaseInfoId, + @RequestParam("pushStatus") Integer pushStatus, + @RequestParam(value = "pushTime",required = false) String pushTime, + @RequestParam(value = "pushBy",required = false) Long pushBy, + @RequestParam(value = "pushByName",required = false) String pushByName); } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java new file mode 100644 index 000000000..dfac7337f --- /dev/null +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/YmsServiceFeign.java @@ -0,0 +1,55 @@ +package com.mhd.system.api; + +import com.mhd.common.core.constant.ServiceNameConstants; +import com.mhd.common.core.domain.entity.R; +import com.mhd.common.core.domain.dto.YmsSysUserDTO; +import com.mhd.system.api.domain.YmsLoginUser; +import com.mhd.system.api.factory.RemoteBmsFeignFallbackFactory; +import com.mhd.system.api.feign.FeignAutoConfiguration; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +@FeignClient(contextId = "YmsService", value = ServiceNameConstants.YMS_SERVICE,fallbackFactory = RemoteBmsFeignFallbackFactory.class,url = "http://10.102.192.4:8018", configuration = FeignAutoConfiguration.class) +public interface YmsServiceFeign { + + /** + * 获取YMS用户基本信息 + * @param szwlUserId 数字物流用户ID + * @return YMS登录用户基本信息 + */ + @GetMapping("/system/user/inner/getYmsUserInfo/{szwlUserId}") + R getYmsUserInfo(@PathVariable("szwlUserId") Long szwlUserId); + + /** + * 获取用户详细信息 + * @param userId 用户ID + * @return 用户信息 + */ + @GetMapping("/system/user/inner/info/{userId}") + R innerGetInfo(@PathVariable("userId") Long userId); + + /** + * 新增用户 + * @param ymsSysUserDTO 用户信息 + * @return 新增结果 + */ + @PostMapping("/system/user/inner/add") + R innerAdd(@RequestBody YmsSysUserDTO ymsSysUserDTO); + + /** + * 修改用户 + * @param ymsSysUserDTO 用户信息 + * @return 修改结果 + */ + @PutMapping("/system/user/inner/edit") + R innerEdit(@RequestBody YmsSysUserDTO ymsSysUserDTO); + + /** + * 删除用户 + * @param userIds 用户ID数组 + * @return 删除结果 + */ + @DeleteMapping("/system/user/inner/remove/{userIds}") + R innerRemove(@PathVariable("userIds") Long[] userIds); + +} \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/DeliveryDetailsLink.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/DeliveryDetailsLink.java new file mode 100644 index 000000000..0038cd817 --- /dev/null +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/DeliveryDetailsLink.java @@ -0,0 +1,50 @@ +package com.mhd.system.api.domain; +//package com.mhd.wms.domain.deliveryDetailsLink.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mhd.common.core.web.domain.BaseVOEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class DeliveryDetailsLink extends BaseVOEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("编号") + @TableId(type = IdType.AUTO) + private Long id; + @ApiModelProperty("oms编号") + private Long omsId; + + @ApiModelProperty(value = "业务单id") + private Long orderId; + @ApiModelProperty(value = "业务单号") + private String orderNumber; + @ApiModelProperty(value = "退货入库单号") + private String returnOrderNumber; + @ApiModelProperty(value = "类别") + private String category; + + @ApiModelProperty(value = "发票编号") + private String invoiceNumber; + + @ApiModelProperty(value = "客户编号") + private String customerNumber; + + @ApiModelProperty(value = "配送名称") + private String deliveryName; + + @ApiModelProperty(value = "箱") + private Integer box; + + @ApiModelProperty(value = "包") + private Integer bag; + + @ApiModelProperty(value = "金额") + private BigDecimal amount; + +} \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/ErpCountryDTO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/ErpCountryDTO.java new file mode 100644 index 000000000..3280adbe0 --- /dev/null +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/ErpCountryDTO.java @@ -0,0 +1,24 @@ +package com.mhd.system.api.domain; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "企业国别DTO") +public class ErpCountryDTO { + + @ApiModelProperty("主键id") + private Long id; + + @ApiModelProperty("ERP国别编码") + private String erpCountryCode; + + @ApiModelProperty("ERP国别名称") + private String erpCountryName; + + @ApiModelProperty("所属组织ID") + private Long organizationId; + +} diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/ErpEnterpriseUnitDTO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/ErpEnterpriseUnitDTO.java new file mode 100644 index 000000000..f30e6662d --- /dev/null +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/ErpEnterpriseUnitDTO.java @@ -0,0 +1,22 @@ +package com.mhd.system.api.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(description = "企业单位DTO") +public class ErpEnterpriseUnitDTO { + + @ApiModelProperty("企业单位id") + private Long id; + + @ApiModelProperty("企业单位名称") + private String erpName; + + @ApiModelProperty("企业单位编码") + private String erpCode; + + @ApiModelProperty("组织ID") + private Long organizationId; +} diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/GwLogDTO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/GwLogDTO.java new file mode 100644 index 000000000..d036a0669 --- /dev/null +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/GwLogDTO.java @@ -0,0 +1,54 @@ +package com.mhd.system.api.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class GwLogDTO { + + @ApiModelProperty("日志id") + private Long logId; + + @ApiModelProperty("类型") + private String type; + + @ApiModelProperty("业务ID") + private Long businessId; + + @ApiModelProperty("请求报文") + private String requestBody; + + @ApiModelProperty("响应报文") + private String responseBody; + + @ApiModelProperty("状态(1-初始,2-成功,3-失败)") + private Integer status; + + @ApiModelProperty("错误信息") + private String errorMsg; + + @ApiModelProperty("推送时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date sendTime; + + @ApiModelProperty("组织ID") + private Long organizationId; + + @ApiModelProperty("一级组织ID") + private Long topOrganizationId; + + @ApiModelProperty("组织名称") + private String organizationName; + + @ApiModelProperty("创建人") + private Long createBy; + + @ApiModelProperty("创建时间") + private Date createTime; + +} diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/InMaterialDetail.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/InMaterialDetail.java index 4861cef26..00e1e3e2b 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/InMaterialDetail.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/InMaterialDetail.java @@ -3,14 +3,17 @@ package com.mhd.system.api.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.web.domain.BaseVOEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; +import java.util.Date; /** @@ -368,4 +371,9 @@ public class InMaterialDetail extends BaseVOEntity { @ApiModelProperty("oms入库单详情id") @Excel(name = "oms入库单详情id") private String omsInMaterialDetail; + + @ApiModelProperty(value = "饮用时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + private Date drinkDate; } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialBaseInfoFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialBaseInfoFeign.java index 3df1b8a6c..79b899031 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialBaseInfoFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialBaseInfoFeign.java @@ -207,6 +207,14 @@ public class MaterialBaseInfoFeign extends BaseVOEntity{ @Excel(name = "是否抄码: 1-是 2-否") private Integer copyCode; + @ApiModelProperty("货物类型:0-物料 1-半成品 2-成品") + @Excel(name = "货物类型:0-物料 1-半成品 2-成品") + private Integer goodsType; + + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; + /** * 规格型号 */ diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialCommonFeign.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialCommonFeign.java index 4a27cac49..3b6775166 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialCommonFeign.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialCommonFeign.java @@ -82,12 +82,12 @@ public class MaterialCommonFeign extends BaseVOEntity{ private String dangerLevelName; @ApiModelProperty("生产日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd") private Date productionTime; @ApiModelProperty("失效日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd") private Date expirationTime; @@ -101,4 +101,4 @@ public class MaterialCommonFeign extends BaseVOEntity{ @ApiModelProperty(name = "权限菜单ID") private Long permissionMenuId; -} +} \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java new file mode 100644 index 000000000..165951f86 --- /dev/null +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInfoDTO.java @@ -0,0 +1,57 @@ +package com.mhd.system.api.domain; + + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + + + +@Data +@ApiModel(description = "物料信息查询DTO") +public class MaterialInfoDTO { + + @ApiModelProperty("物料id") + private Long materialBaseInfoId; + + @ApiModelProperty("物料id") + private String materialCode; + + @ApiModelProperty("物料名称") + private String materialName; + + @ApiModelProperty("货物类型 0-料件 1-半成品 2-成品") + private Integer goodsType; + + @ApiModelProperty("组织ID") + private Long organizationId; + + @ApiModelProperty("创建时间起") + private String createTimeStart; + + @ApiModelProperty("创建时间止") + private String createTimeEnd; + + @ApiModelProperty("更新时间起") + private String updateTimeStart; + + @ApiModelProperty("更新时间止") + private String updateTimeEnd; + + @ApiModelProperty("推送状态") + private Integer pushStatus; + + @ApiModelProperty("推送时间起") + private String pushTimeStart; + + @ApiModelProperty("推送时间止") + private String pushTimeEnd; + + @ApiModelProperty(value = "页码") + private Integer pageNum = 1; + + @ApiModelProperty(value = "每页数量") + private Integer pageSize = 10; + +} diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInventoryOmsParamDO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInventoryOmsParamDO.java index c42b3a996..a070f5b25 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInventoryOmsParamDO.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInventoryOmsParamDO.java @@ -76,4 +76,12 @@ public class MaterialInventoryOmsParamDO extends BaseVOEntity { private LoginUser loginUser; + + private String batchNo; + + //生产日期 + private Date productionDate; + //过期日期 + private Date expiryDate; + } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInventoryPO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInventoryPO.java index e40d3b0bb..a9911bcd6 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInventoryPO.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/MaterialInventoryPO.java @@ -174,31 +174,31 @@ public class MaterialInventoryPO extends MaterialBasePO { private String extAttr2; @ApiModelProperty("生产日期") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date productionDate; @ApiModelProperty("过期日期") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "过期日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date expiryDate; @ApiModelProperty("存货日期") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "存货日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date inventoryDate; @ApiModelProperty("ExtAttr3") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "ExtAttr3", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date extAttr3; @ApiModelProperty("ExtAttr4") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "ExtAttr4", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date extAttr4; diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/StockInOrder.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/StockInOrder.java index 062b19092..8ee2dbeb4 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/StockInOrder.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/StockInOrder.java @@ -362,4 +362,6 @@ public class StockInOrder extends BaseVOEntity { private String salesmanId; @ApiModelProperty("业务员名称") private String salesmanName; + @Excel(name = "附件url") + private String pictureUrl; } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/StockOutOrder.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/StockOutOrder.java index f1c0d57ed..f94c49b5d 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/StockOutOrder.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/StockOutOrder.java @@ -71,7 +71,7 @@ public class StockOutOrder extends BaseVOEntity { private String auditByName; @ApiModelProperty("出库单审核时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "出库单审核时间", width = 30, dateFormat = "yyyy-MM-dd") private Date auditTime; @@ -120,7 +120,7 @@ public class StockOutOrder extends BaseVOEntity { private String customerName; @ApiModelProperty("预计出货时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "预计出货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date expectTime; @@ -198,7 +198,7 @@ public class StockOutOrder extends BaseVOEntity { private String cancelByName; @ApiModelProperty("取消订单时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "取消订单时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cancelTime; @@ -219,7 +219,7 @@ public class StockOutOrder extends BaseVOEntity { private String closeByName; @ApiModelProperty("关闭订单时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "关闭订单时间", width = 30, dateFormat = "yyyy-MM-dd") private Date closeTime; @@ -232,7 +232,7 @@ public class StockOutOrder extends BaseVOEntity { private Integer checkTaskDistribution; @ApiModelProperty("复核任务下发时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "复核任务下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date checkTaskDistributionTime; @@ -334,17 +334,17 @@ public class StockOutOrder extends BaseVOEntity { private String containerNoName; @ApiModelProperty("出仓日期") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "出仓日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "出仓日期", width = 30, dateFormat = "yyyy-MM-dd") private Date outboundDate; @ApiModelProperty("完成时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date completeTime; @ApiModelProperty("orderDate") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "orderDate", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date orderDate; @@ -401,5 +401,8 @@ public class StockOutOrder extends BaseVOEntity { private String salesmanId; @ApiModelProperty("业务员名称") private String salesmanName; + @ApiModelProperty("车次") + @Excel(name = "车次") + private Integer trainNo; } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/StockOutOrderTZPD.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/StockOutOrderTZPD.java index 179712da9..fb6951f12 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/StockOutOrderTZPD.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/StockOutOrderTZPD.java @@ -71,7 +71,7 @@ public class StockOutOrderTZPD extends BaseVOEntity { private String auditByName; @ApiModelProperty("出库单审核时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "出库单审核时间", width = 30, dateFormat = "yyyy-MM-dd") private Date auditTime; @@ -120,7 +120,7 @@ public class StockOutOrderTZPD extends BaseVOEntity { private String customerName; @ApiModelProperty("预计出货时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "预计出货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date expectTime; @@ -198,7 +198,7 @@ public class StockOutOrderTZPD extends BaseVOEntity { private String cancelByName; @ApiModelProperty("取消订单时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "取消订单时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cancelTime; @@ -219,7 +219,7 @@ public class StockOutOrderTZPD extends BaseVOEntity { private String closeByName; @ApiModelProperty("关闭订单时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "关闭订单时间", width = 30, dateFormat = "yyyy-MM-dd") private Date closeTime; @@ -232,7 +232,7 @@ public class StockOutOrderTZPD extends BaseVOEntity { private Integer checkTaskDistribution; @ApiModelProperty("复核任务下发时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "复核任务下发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date checkTaskDistributionTime; @@ -334,17 +334,17 @@ public class StockOutOrderTZPD extends BaseVOEntity { private String containerNoName; @ApiModelProperty("出仓日期") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "出仓日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "出仓日期", width = 30, dateFormat = "yyyy-MM-dd") private Date outboundDate; @ApiModelProperty("完成时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date completeTime; @ApiModelProperty("orderDate") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "orderDate", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date orderDate; diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/SysDictType.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/SysDictType.java index 790628d41..6b461fc11 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/SysDictType.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/SysDictType.java @@ -34,6 +34,45 @@ public class SysDictType extends BaseEntity @Excel(name = "状态", readConverterExp = "0=正常,1=停用") private String status; + /** 组织表ID */ + private Long organizationId; + + /** 组织名称 */ + private String organizationName; + + /** 一级组织表ID */ + private Long topOrganizationId; + + public Long getOrganizationId() + { + return organizationId; + } + + public void setOrganizationId(Long organizationId) + { + this.organizationId = organizationId; + } + + public String getOrganizationName() + { + return organizationName; + } + + public void setOrganizationName(String organizationName) + { + this.organizationName = organizationName; + } + + public Long getTopOrganizationId() + { + return topOrganizationId; + } + + public void setTopOrganizationId(Long topOrganizationId) + { + this.topOrganizationId = topOrganizationId; + } + public Long getDictId() { return dictId; @@ -86,6 +125,9 @@ public class SysDictType extends BaseEntity .append("dictName", getDictName()) .append("dictType", getDictType()) .append("status", getStatus()) + .append("organizationId", getOrganizationId()) + .append("organizationName", getOrganizationName()) + .append("topOrganizationId", getTopOrganizationId()) .append("createBy", getCreateBy()) .append("createTime", getCreateTime()) .append("updateBy", getUpdateBy()) diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/SysLogininfor.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/SysLogininfor.java index b3bd5e7e6..272cd3e86 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/SysLogininfor.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/SysLogininfor.java @@ -96,7 +96,7 @@ public class SysLogininfor { /** * 访问时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "访问时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date accessTime; @@ -109,4 +109,4 @@ public class SysLogininfor { * 响应时间ms */ private String responseTime; -} +} \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/SysOperLog.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/SysOperLog.java index 22504a8dc..fb4b5d851 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/SysOperLog.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/SysOperLog.java @@ -156,7 +156,7 @@ public class SysOperLog { /** * 操作时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date operTime; @@ -176,4 +176,4 @@ public class SysOperLog { * 端口 */ private String port; -} +} \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/TmsOrderAddDTO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/TmsOrderAddDTO.java index f528bbbe3..82564882a 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/TmsOrderAddDTO.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/TmsOrderAddDTO.java @@ -494,4 +494,17 @@ TmsOrderAddDTO implements Serializable { @ApiModelProperty("当前登录用户") private LoginUser loginUser; + + + @ApiModelProperty("发票编号") + @Excel(name = "发票编号") + private String invoiceNumber; + + @ApiModelProperty("订单号") + @Excel(name = "订单号") + private String goodsNumber; + + @ApiModelProperty("业务主单") + @Excel(name = "业务主单") + private String businessMainOrder; } diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/UserShipperQueryDTO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/UserShipperQueryDTO.java new file mode 100644 index 000000000..3370f6a0a --- /dev/null +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/UserShipperQueryDTO.java @@ -0,0 +1,52 @@ +package com.mhd.system.api.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class UserShipperQueryDTO { + + @ApiModelProperty(value = "页码") + private Integer pageNum = 1; + + @ApiModelProperty(value = "每页数量") + private Integer pageSize = 10; + + @ApiModelProperty(value = "登录账号") + private String userAccount; + + @ApiModelProperty(value = "企业名称") + private String shipperEnterpriseName; + + @ApiModelProperty(value = "组织ID") + private String organizationId; + + @ApiModelProperty(value = "组织名称") + private String organizationName; + + @ApiModelProperty(value = "创建时间起") + private String createTimeFrom; + + @ApiModelProperty(value = "创建时间止") + private String createTimeTo; + + @ApiModelProperty(value = "更新时间起") + private String updateTimeFrom; + + @ApiModelProperty(value = "更新时间止") + private String updateTimeTo; + + @ApiModelProperty(value = "货主类型") + private String shipperType; + + @ApiModelProperty(value = "推送状态") + private Integer pushStatus; + + @ApiModelProperty(value = "推送时间起") + private String pushTimeFrom; + + @ApiModelProperty(value = "推送时间止") + private String pushTimeTo; + +} diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/UserUpdateDTO.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/UserUpdateDTO.java index d0d8c0dc7..03818569f 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/UserUpdateDTO.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/UserUpdateDTO.java @@ -42,10 +42,10 @@ public class UserUpdateDTO extends BaseVOEntity { private String userIdcardNumber; @ApiModelProperty(name = "身份证号加密") private String userIdcardNumberDes; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期自") private Date userIdcardDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期至") private Date userIdcardDateTo; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") @@ -76,7 +76,7 @@ public class UserUpdateDTO extends BaseVOEntity { private String userWechatSessionKey; @ApiModelProperty(name = "密码登录错误次数") private Integer passwordWrongTimes; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(name = "最近一次登录时间") private Date lastLoginTime; @ApiModelProperty(name = "最近一次登录IP") @@ -89,15 +89,15 @@ public class UserUpdateDTO extends BaseVOEntity { private int userAuthStatus; @ApiModelProperty(name = "用户审核人用户姓名") private String userAuthByUsername; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户审核时间") private Date userAuthTime; @ApiModelProperty(name = "加入黑名单备注(解除时需要清空)") private String userStatusRemark; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户状态更新时间") private Date userStatusTime; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户生日") private Date userBirthday; @ApiModelProperty(name = "用户住址信息") @@ -122,4 +122,4 @@ public class UserUpdateDTO extends BaseVOEntity { @ApiModelProperty(name = "请求域名") private String tenantsDomainName; -} +} \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/YmsLoginUser.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/YmsLoginUser.java new file mode 100644 index 000000000..025557b10 --- /dev/null +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/domain/YmsLoginUser.java @@ -0,0 +1,63 @@ +package com.mhd.system.api.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * YMS登录用户信息 + * @author AI + * @date 2026/05/13 + */ +@Data +public class YmsLoginUser { + + //登录人id + private Long id; + //登录人账号 + private String username; + //登录人名字 + private String nickName; + //登录人密码 + private String password; + //当前登录部门code + private String orgCode; + //头像 + private String avatar; + //性别(0男 1女 2未知) + private String sex; + //电子邮件 + private String email; + //电话 + private String phonenumber; + //状态(0正常 1停用) + private String status; + //删除标志(0代表存在 2代表删除) + private String delFlag; + //最后登录IP + private String loginIp; + //最后登录时间 + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date loginDate; + //创建时间 + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + //数字物流用户ID + private Long szwlUserId; + //一级组织表ID + private Long topOrganizationId; + //组织表ID + private Long organizationId; + //角色code集合 + private String roleCodes; + //角色名称集合 + private String roleNames; + //推广码 + private String promoCode; + //账号类型 1.普通账号,2.组织账号,3.一级账号,4.平台员工,5.企业员工,6.合作商 + private Integer userAccountType; +} diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteBmsFeignFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteBmsFeignFallbackFactory.java index f2fb2db79..1ff15b40c 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteBmsFeignFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteBmsFeignFallbackFactory.java @@ -42,6 +42,11 @@ public class RemoteBmsFeignFallbackFactory implements FallbackFactory omsEdit(MaterialInventoryOmsParamDO materialInventoryOmsParamDO) { + return null; + } + +// @Override +// public AjaxResult inventoryAdjustmentRecordInsert(InventoryAdjustmentRecord inventoryAdjustmentRecord) { +// return null; +// } + + @Override + public AjaxResult getUnitList(ErpEnterpriseUnitDTO erpEnterpriseUnitDTO) { return null; } @Override - public AjaxResult inventoryAdjustmentRecordInsert(InventoryAdjustmentRecord inventoryAdjustmentRecord) { + public AjaxResult getCountryList(ErpCountryDTO erpCountryDTO) { + return null; + } + + @Override + public AjaxResult insertGwLog(GwLogDTO gwLogDTO) { + return null; + } + + @Override + public AjaxResult updateGwLog(GwLogDTO gwLogDTO) { return null; } }; diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteSystemFeignFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteSystemFeignFallbackFactory.java index dd89359aa..41f189f1f 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteSystemFeignFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteSystemFeignFallbackFactory.java @@ -289,6 +289,11 @@ public class RemoteSystemFeignFallbackFactory implements FallbackFactory userShipperList(Integer pageNum, Integer pageSize, String userAccount, String shipperEnterpriseName, Long organizationId, String organizationName, String createTimeFrom, String createTimeTo, String updateTimeFrom, String updateTimeTo, Integer shipperType) { - return AjaxResult.error("查询失败" + throwable.getMessage()); + public AjaxResult updateLineManagement(UserDTO userDTO) { + return AjaxResult.error("失败" + throwable.getMessage()); } @Override - public AjaxResult updateLineManagement(UserDTO userDTO) { - return AjaxResult.error("失败" + throwable.getMessage()); + public TableDataInfo userShipperList(UserShipperQueryDTO userShipperQueryDTO) { + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setData(new ArrayList<>()); + tableDataInfo.setTotal(0); + tableDataInfo.setCode(500); + tableDataInfo.setMsg("查询失败:" + throwable.getMessage()); + return tableDataInfo; + } + + + @Override + public AjaxResult updatePushStatus(Long shipperId, Integer pushStatus, String pushTime, Long pushBy, String pushByName) { + return AjaxResult.error("更新失败" + throwable.getMessage()); + } + + @Override + public AjaxResult getCustomerNcCodeBatch(List shipperIdList) { + return AjaxResult.error("更新失败" + throwable.getMessage()); } }; } diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java index 23fb98c50..b5f9d74d3 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWlhyFallbackFactory.java @@ -550,6 +550,16 @@ public class RemoteWlhyFallbackFactory implements FallbackFactory queryList(Integer pageNo, Integer pageSize, String pushStatus, String organizationId) { + return AjaxResult.error(cause.getMessage()); + } + + @Override + public void updateExchangeRatePushStatus(String id, Integer pushStatus, String pushTime, Long pushBy, String pushByName) { + + } }; } } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java index 954a979b6..a62144e1f 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/factory/RemoteWmsFallbackFactory.java @@ -2,6 +2,7 @@ package com.mhd.system.api.factory; import com.mhd.common.core.domain.entity.R; import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.common.core.web.page.TableDataInfo; import com.mhd.system.api.WlhyServiceFeign; import com.mhd.system.api.WmsServiceFeign; import com.mhd.system.api.domain.*; @@ -11,6 +12,7 @@ import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.PathVariable; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -62,6 +64,11 @@ public class RemoteWmsFallbackFactory implements FallbackFactory outMaterialDetails) { } + @Override + public void omsOutOrderAddDeliveryDetailsLink(List deliveryDetailsLinks) { + + } + @Override public void omsInOrderAdd(StockInOrder stockInOrder) { } @@ -69,6 +76,20 @@ public class RemoteWmsFallbackFactory implements FallbackFactory inMaterialDetails) { } + + @Override + public TableDataInfo getMaterialBaseInfoList(MaterialInfoDTO materialInfoDTO) { + TableDataInfo tableDataInfo = new TableDataInfo(); + tableDataInfo.setData(new ArrayList<>()); + tableDataInfo.setTotal(0); + tableDataInfo.setCode(500); + return tableDataInfo; + } + + @Override + public AjaxResult updateMaterialPushStatus(Long materialBaseInfoId, Integer pushStatus, String pushTime, Long pushBy, String pushByName) { + return AjaxResult.error(cause.getMessage()); + } }; } } \ No newline at end of file diff --git a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/model/LoginUser.java b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/model/LoginUser.java index e71b362aa..f09b1ee53 100644 --- a/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/model/LoginUser.java +++ b/mhd-api/mhd-api-system/src/main/java/com/mhd/system/api/model/LoginUser.java @@ -11,6 +11,7 @@ import com.mhd.system.api.domain.MallOAuthToken; import com.mhd.system.api.domain.mall.BaseUser; import com.mhd.system.api.domain.SysUser; import com.mhd.system.api.domain.WlhyLoginUser; +import com.mhd.system.api.domain.YmsLoginUser; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -87,6 +88,11 @@ public class LoginUser implements Serializable */ private WlhyLoginUser wlhyLoginUser; + /** + * YMS用户信息 + */ + private YmsLoginUser ymsLoginUser; + /** * websocket地址 */ diff --git a/mhd-auth/src/main/java/com/mhd/auth/system/service/SysLoginService.java b/mhd-auth/src/main/java/com/mhd/auth/system/service/SysLoginService.java index cc5f85252..dbf6b5e80 100644 --- a/mhd-auth/src/main/java/com/mhd/auth/system/service/SysLoginService.java +++ b/mhd-auth/src/main/java/com/mhd/auth/system/service/SysLoginService.java @@ -26,6 +26,7 @@ import com.mhd.common.log.service.AsyncLogService; import com.mhd.common.redis.service.RedisService; import com.mhd.system.api.*; import com.mhd.system.api.domain.*; +import com.mhd.system.api.domain.YmsLoginUser; import com.mhd.system.api.domain.mall.SysTenant; import com.mhd.system.api.domain.mall.UserInfo; import com.mhd.system.api.domain.mall.UserInfoLoginDTO; @@ -70,6 +71,8 @@ public class SysLoginService { private UserServiceFeign userServiceFeign; @Resource private WlhyServiceFeign wlhyServiceFeign; + @Resource + private YmsServiceFeign ymsServiceFeign; @Resource private RedisService redisService; @@ -459,6 +462,17 @@ public class SysLoginService { userInfo.setWlhyLoginUser(wlhyLoginUserR.getData()); } } + // 获取YMS登录用户基本信息 + try { + R ymsLoginUserR = ymsServiceFeign.getYmsUserInfo(userInfo.getUserPo().getUserId()); + if (ymsLoginUserR.getCode() == R.SUCCESS && ymsLoginUserR.getData() != null) { + userInfo.setYmsLoginUser(ymsLoginUserR.getData()); + log.info("获取YMS用户信息成功,userId: {}", userInfo.getUserPo().getUserId()); + } + } catch (Exception e) { + // 获取YMS用户信息失败时,记录日志但不影响登录 + log.warn("获取YMS用户信息失败,但不影响登录: {}", e.getMessage()); + } if(mallFlag == 1){ /*单点登录,获取商城鉴权 * 根据用户角色判断需要鉴权的服务, diff --git a/mhd-auth/src/main/resources/bootstrap.yml b/mhd-auth/src/main/resources/bootstrap.yml index a4dc57b58..ceda44d1d 100644 --- a/mhd-auth/src/main/resources/bootstrap.yml +++ b/mhd-auth/src/main/resources/bootstrap.yml @@ -12,21 +12,23 @@ spring: cloud: nacos: discovery: - server-addr: 127.0.0.1:8848 +# server-addr: 127.0.0.1:8848 # 线上测试环境配置 容器名+端口号 -# server-addr: 10.102.192.5:6848 - username: nacos - password: manhuoda@2023 + server-addr: 10.33.0.129:6010 +# username: nacos +# password: manhuoda@2023 #线上正式环境 # server-addr: 10.102.192.5:6848 # username: nacos # password: manhuoda@2023 config: - server-addr: 127.0.0.1:8848 +# server-addr: 127.0.0.1:8848 + # 测试环境配置 容器名+端口号 + server-addr: 10.33.0.129:6010 # 线上测试环境配置 容器名+端口号 # server-addr: 10.102.192.5:6848 - username: nacos - password: manhuoda@2023 +# username: nacos +# password: manhuoda@2023 #线上正式环境 group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置 file-extension: yml #默认properties diff --git a/mhd-bi/Dockerfile b/mhd-bi/Dockerfile new file mode 100644 index 000000000..e5e100e29 --- /dev/null +++ b/mhd-bi/Dockerfile @@ -0,0 +1,17 @@ +# 基础镜像 +FROM arm64v8/openjdk:8 +# author +MAINTAINER manhuoda +#指定东八区时区 +ENV TZ Asia/Shanghai +#指定utf-8编码格 +ENV JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8" +# VOLUME 指定了临时文件目录为/tmp。 +# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp +VOLUME /tmp +#将当前jar 复制到容器根目录下 +ADD target/mhd-bi.jar mhd-bi.jar +#暴露容器端口 Docker镜像告知Docker宿主机应用监听了端口 +EXPOSE 9200 +# 运行jar包 +ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Xms1000m", "-Xmx1500m","-jar","/mhd-bi.jar"] \ No newline at end of file diff --git a/mhd-bi/pom.xml b/mhd-bi/pom.xml new file mode 100644 index 000000000..e98d8eafa --- /dev/null +++ b/mhd-bi/pom.xml @@ -0,0 +1,180 @@ + + + + mhd + com.mhd + 3.6.0 + + 4.0.0 + + mhd-bi + + + 8 + 8 + + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + io.github.openfeign + feign-httpclient + + + org.springframework.cloud + spring-cloud-loadbalancer + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + com.alibaba.csp + sentinel-datasource-nacos + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + org.springframework.cloud + spring-cloud-starter-sleuth + + + + com.fasterxml.jackson.core + jackson-databind + + + + + com.alibaba.fastjson2 + fastjson2 + + + + org.springframework.cloud + spring-cloud-starter-stream-rabbit + + + + com.mhd + mhd-common-core + + + + com.mhd + mhd-common-redis + + + com.dameng + DmJdbcDriver18 + 8.1.1.193 + + + + com.baomidou + mybatis-plus-boot-starter + 3.3.2 + + + + com.alibaba + druid-spring-boot-starter + 1.2.11 + + + + org.springframework.cloud + spring-cloud-starter-sleuth + + + + org.springframework.cloud + spring-cloud-starter-zipkin + 2.2.8.RELEASE + + + + + com.mhd + mhd-common-security + + + + com.mhd + mhd-api-system + + + + com.mhd + mhd-common-log + + + + + net.sf.json-lib + json-lib + 2.4 + jdk15 + + + + com.mhd + mhd-common-datasource + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + 2.1.1.RELEASE + + + + repackage + + + + + + + + + + mhd-bi + + + + com.spotify + dockerfile-maven-plugin + + + + + + \ No newline at end of file diff --git a/mhd-bi/sql/create_bi_comprehensive_dm.sql b/mhd-bi/sql/create_bi_comprehensive_dm.sql new file mode 100644 index 000000000..d15ff69f1 --- /dev/null +++ b/mhd-bi/sql/create_bi_comprehensive_dm.sql @@ -0,0 +1,44 @@ +-- ============================================================================= +-- 达梦 DM8:综合态势(单表,可重复执行) +-- 接口:GET /biReport/comprehensive +-- 执行顺序:删除历史多表/旧快照 → 建 BI_COMPREHENSIVE_SNAPSHOT → 示例 INSERT +-- PAYLOAD_JSON 与 ComprehensiveSituationVO 字段名一致;接口取 DEL_FLAG=1 且 CREATE_TIME 最新一条。 +-- ============================================================================= + +-- 子表优先 +DROP TABLE IF EXISTS +BI_COMPREHENSIVE_INCOME_TREND; +DROP TABLE IF EXISTS +BI_COMPREHENSIVE_METRIC; +DROP TABLE IF EXISTS +BI_COMPREHENSIVE_SNAPSHOT; + +CREATE TABLE +BI_COMPREHENSIVE_SNAPSHOT ( + ID BIGINT IDENTITY(1,1) NOT NULL, + PAYLOAD_JSON CLOB NOT NULL, + CREATE_TIME DATETIME DEFAULT NULL, + UPDATE_TIME DATETIME DEFAULT NULL, + REMARK VARCHAR(500) DEFAULT NULL, + DEL_FLAG NUMBER(1) DEFAULT 1 NOT NULL, + PRIMARY KEY (ID) +); +CREATE INDEX IDX_BI_COMP_SNAP_DEL_CR ON +BI_COMPREHENSIVE_SNAPSHOT(DEL_FLAG, CREATE_TIME); +CREATE INDEX IDX_BI_COMP_SNAP_UPD ON +BI_COMPREHENSIVE_SNAPSHOT(UPDATE_TIME); +COMMENT ON TABLE +BI_COMPREHENSIVE_SNAPSHOT IS '综合态势-整包 JSON 快照'; +COMMENT ON COLUMN +BI_COMPREHENSIVE_SNAPSHOT.DEL_FLAG IS '0无状态 1正常 2已删除'; + +INSERT INTO +BI_COMPREHENSIVE_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG) +VALUES ( +'{"valueAddedServiceIncome":5330000,"inventoryTurnover":25,"orderCount":42300,"vehicleUtilizationRate":97.4,"fuelConsumptionPerHundredKm":15,"incomeTrend":[280,210,260,310,470,390]}', + SYSDATE, + SYSDATE, + 1 +); + +COMMIT; diff --git a/mhd-bi/sql/create_bi_platform_surveillance_dm.sql b/mhd-bi/sql/create_bi_platform_surveillance_dm.sql new file mode 100644 index 000000000..29c8b7736 --- /dev/null +++ b/mhd-bi/sql/create_bi_platform_surveillance_dm.sql @@ -0,0 +1,53 @@ +-- ============================================================================= +-- 达梦 DM8:月台监测(单表,可重复执行) +-- 接口:GET /biReport/platformSurveillance +-- 执行顺序:删除历史多表/旧快照 → 建 BI_PLATFORM_SURVEILLANCE_SNAPSHOT → 示例 INSERT +-- PAYLOAD_JSON 与 PlatformSurveillanceVO 一致;接口取 DEL_FLAG=1 且 CREATE_TIME 最新一条。 +-- ============================================================================= + +DROP TABLE IF EXISTS +BI_PS_ALARM_DIST; +DROP TABLE IF EXISTS +BI_PS_TASK_TYPE; +DROP TABLE IF EXISTS +BI_PS_ALARM_TREND; +DROP TABLE IF EXISTS +BI_PS_TASK_LOAD; +DROP TABLE IF EXISTS +BI_PS_AVG_DURATION_TREND; +DROP TABLE IF EXISTS +BI_PS_VEHICLE; +DROP TABLE IF EXISTS +BI_PLATFORM_SURVEILLANCE_METRIC; +DROP TABLE IF EXISTS +BI_PLATFORM_SURVEILLANCE_SNAPSHOT; + +CREATE TABLE +BI_PLATFORM_SURVEILLANCE_SNAPSHOT ( + ID BIGINT IDENTITY(1,1) NOT NULL, + PAYLOAD_JSON CLOB NOT NULL, + CREATE_TIME DATETIME DEFAULT NULL, + UPDATE_TIME DATETIME DEFAULT NULL, + REMARK VARCHAR(500) DEFAULT NULL, + DEL_FLAG NUMBER(1) DEFAULT 1 NOT NULL, + PRIMARY KEY (ID) +); +CREATE INDEX IDX_BI_PS_SNAP_DEL_CR ON +BI_PLATFORM_SURVEILLANCE_SNAPSHOT(DEL_FLAG, CREATE_TIME); +CREATE INDEX IDX_BI_PS_SNAP_UPD ON +BI_PLATFORM_SURVEILLANCE_SNAPSHOT(UPDATE_TIME); +COMMENT ON TABLE +BI_PLATFORM_SURVEILLANCE_SNAPSHOT IS '月台监测-整包 JSON 快照'; +COMMENT ON COLUMN +BI_PLATFORM_SURVEILLANCE_SNAPSHOT.DEL_FLAG IS '0无状态 1正常 2已删除'; + +INSERT INTO +BI_PLATFORM_SURVEILLANCE_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG) +VALUES ( +'{"vehicles":[{"plateNumber":"粤CFR1958","status":"作业中","platformId":"#48","platformDuration":265},{"plateNumber":"粤CFR1958","status":"已离园","platformId":"#48","platformDuration":265},{"plateNumber":"粤CFR1958","status":"作业中","platformId":"#48","platformDuration":265},{"plateNumber":"粤CFR1958","status":"作业中","platformId":"#48","platformDuration":265},{"plateNumber":"粤CFR1958","status":"作业中","platformId":"#48","platformDuration":265},{"plateNumber":"粤CFR1958","status":"作业中","platformId":"#48","platformDuration":265}],"efficiencyStatistics":{"entryOvertimeRate":60,"overtimeCount":45,"platformOnTimeRate":92,"avgPlatformDuration":4.5,"yardOnTimeRate":88,"avgYardDuration":4.5},"platformOverview":{"totalPlatforms":43,"currentOccupancyRate":50,"operatingPlatforms":23,"todayTasks":324},"vehicleStatus":{"todayReservedVehicles":3000,"notCheckedIn":1500,"operatingVehicles":1000,"completedVehicles":1000},"avgOperationDurationTrend":[{"month":"11月","yardDuration":10,"platformDuration":23},{"month":"12月","yardDuration":14,"platformDuration":15},{"month":"1月","yardDuration":23.5,"platformDuration":20},{"month":"2月","yardDuration":22,"platformDuration":17},{"month":"3月","yardDuration":13,"platformDuration":14},{"month":"4月","yardDuration":17,"platformDuration":10}],"monthlyTaskStatistics":{"taskTotal":1455,"taskTotalYoY":5,"avgTaskDuration":4.5,"avgDurationYoY":-5,"taskCompletionRate":95,"completionRateYoY":5},"taskLoadStatistics":[{"time":"15时","taskCount":100},{"time":"16时","taskCount":110},{"time":"17时","taskCount":115},{"time":"18时","taskCount":80},{"time":"19时","taskCount":60},{"time":"20时","taskCount":40},{"time":"21时","taskCount":40},{"time":"22时","taskCount":40},{"time":"23时","taskCount":30},{"time":"0时","taskCount":10},{"time":"1时","taskCount":10},{"time":"2时","taskCount":10},{"time":"3时","taskCount":10},{"time":"4时","taskCount":10},{"time":"5时","taskCount":10},{"time":"6时","taskCount":20},{"time":"7时","taskCount":30},{"time":"8时","taskCount":70},{"time":"9时","taskCount":95},{"time":"10时","taskCount":110},{"time":"11时","taskCount":120},{"time":"12时","taskCount":130},{"time":"13时","taskCount":130}],"platformAlarmTrend":[{"date":"11日","alarmCount":10},{"date":"12日","alarmCount":14},{"date":"13日","alarmCount":23},{"date":"14日","alarmCount":22},{"date":"15日","alarmCount":13},{"date":"16日","alarmCount":17},{"date":"17日","alarmCount":8}],"taskTypeStatistics":{"totalTasks":4325,"taskTypes":[{"type":"类型1","count":2400},{"type":"类型2","count":2300},{"type":"类型3","count":2300},{"type":"类型4","count":2300}]},"platformAlarmStatistics":{"todayAlarmTotal":13,"handled":12,"unhandled":1},"platformAlarmDistribution":[{"type":"类型1","count":300},{"type":"类型2","count":245},{"type":"类型3","count":280},{"type":"类型4","count":340},{"type":"类型5","count":455},{"type":"类型6","count":400},{"type":"类型7","count":300}]}', + SYSDATE, + SYSDATE, + 1 +); + +COMMIT; diff --git a/mhd-bi/sql/create_bi_warehouse_transport_dm.sql b/mhd-bi/sql/create_bi_warehouse_transport_dm.sql new file mode 100644 index 000000000..62a83b121 --- /dev/null +++ b/mhd-bi/sql/create_bi_warehouse_transport_dm.sql @@ -0,0 +1,45 @@ +-- ============================================================================= +-- 达梦 DM8:仓储运输(单表,可重复执行) +-- 接口:GET /biReport/warehouseTransport +-- 执行顺序:删除历史多表/旧快照 → 建 BI_WAREHOUSE_TRANSPORT_SNAPSHOT → 示例 INSERT +-- PAYLOAD_JSON 与 WarehouseTransportSituationVO 字段名一致;接口取 DEL_FLAG=1 且 CREATE_TIME 最新一条。 +-- ============================================================================= + +DROP TABLE IF EXISTS +BI_WTS_CUSTOMER_RANK; +DROP TABLE IF EXISTS +BI_WTS_TIME_SERIES; +DROP TABLE IF EXISTS +BI_WAREHOUSE_TRANSPORT_METRIC; +DROP TABLE IF EXISTS +BI_WAREHOUSE_TRANSPORT_SNAPSHOT; + +CREATE TABLE +BI_WAREHOUSE_TRANSPORT_SNAPSHOT ( + ID BIGINT IDENTITY(1,1) NOT NULL, + PAYLOAD_JSON CLOB NOT NULL, + CREATE_TIME DATETIME DEFAULT NULL, + UPDATE_TIME DATETIME DEFAULT NULL, + REMARK VARCHAR(500) DEFAULT NULL, + DEL_FLAG NUMBER(1) DEFAULT 1 NOT NULL, + PRIMARY KEY (ID) +); +CREATE INDEX IDX_BI_WTS_SNAP_DEL_CR ON +BI_WAREHOUSE_TRANSPORT_SNAPSHOT(DEL_FLAG, CREATE_TIME); +CREATE INDEX IDX_BI_WTS_SNAP_UPD ON +BI_WAREHOUSE_TRANSPORT_SNAPSHOT(UPDATE_TIME); +COMMENT ON TABLE +BI_WAREHOUSE_TRANSPORT_SNAPSHOT IS '仓储运输-整包 JSON 快照'; +COMMENT ON COLUMN +BI_WAREHOUSE_TRANSPORT_SNAPSHOT.DEL_FLAG IS '0无状态 1正常 2已删除'; + +INSERT INTO +BI_WAREHOUSE_TRANSPORT_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG) +VALUES ( +'{"warehouseDistributionOnTimeRate":99.2,"currentYearOrders":525440,"currentQuarterOrders":225120,"currentMonthOrders":23560,"warehouseOrderTrend":[100,93,85,70,98,88],"throughput":[10,14,23,10,13,19],"currentMonthTurnoverRate":3,"currentYearTurnoverRate":4,"inventoryTurnoverTrend":[10,14,23,22,13,17],"totalTransportIncome":5850,"orderCount":856,"transportTrips":533,"annualTransportVolume":15,"transportOrderTotal":4325,"crossBorderTransportOrder":2400,"domesticTransportOrder":2300,"transportTripsTrend":[100,140,230,100,130,192],"vehicleUtilizationRate":[600,460,350,470,450,620],"warehouseDockSyncRate":[100,98,87,78,97,86],"customerContributionRank":{"customerName":["客户A","客户B","客户C","客户D","客户E"],"customerAmount":[147,150,170,160,180]}}', + SYSDATE, + SYSDATE, + 1 +); + +COMMIT; diff --git a/mhd-bi/sql/sql.sql b/mhd-bi/sql/sql.sql new file mode 100644 index 000000000..b48b5724b --- /dev/null +++ b/mhd-bi/sql/sql.sql @@ -0,0 +1,15 @@ +ALTER TABLE BI_COMPREHENSIVE_SNAPSHOT + ADD (DEL_FLAG TINYINT DEFAULT 1); + +COMMENT ON COLUMN BI_COMPREHENSIVE_SNAPSHOT.DEL_FLAG IS '删除标志:0-无状态, 1-正常, 2-已删除'; + +ALTER TABLE BI_PLATFORM_SURVEILLANCE_SNAPSHOT + ADD (DEL_FLAG TINYINT DEFAULT 1); + +COMMENT ON COLUMN BI_PLATFORM_SURVEILLANCE_SNAPSHOT.DEL_FLAG IS '删除标志:0-无状态, 1-正常, 2-已删除'; + + +ALTER TABLE BI_WAREHOUSE_TRANSPORT_SNAPSHOT + ADD (DEL_FLAG TINYINT DEFAULT 1); + +COMMENT ON COLUMN BI_WAREHOUSE_TRANSPORT_SNAPSHOT.DEL_FLAG IS '删除标志:0-无状态, 1-正常, 2-已删除'; \ No newline at end of file diff --git a/mhd-bi/src/main/java/com/mhd/bi/BiApplication.java b/mhd-bi/src/main/java/com/mhd/bi/BiApplication.java new file mode 100644 index 000000000..8c79d5d2c --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/BiApplication.java @@ -0,0 +1,236 @@ +package com.mhd.bi; + +import com.mhd.common.core.annotation.fieldsetvalue.CommonService; +import com.mhd.common.core.annotation.fieldsetvalue.SetFeildValueAspect; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.Import; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; + +@SpringBootApplication(scanBasePackages = {"com.mhd", "com.mhd.bi"}) +@EnableDiscoveryClient +@EnableFeignClients(basePackages = {"com.mhd","com.mhd.bi.infrastructure.feign"}) +@MapperScan("com.mhd.bi.domain.**.mapper") +@Import({SetFeildValueAspect.class, CommonService.class}) +@EnableAsync +@EnableScheduling +public class BiApplication { + + public static void main(String[] args) { + SpringApplication.run(BiApplication.class, args); + System.out.println("(♥◠‿◠)ノ゙ 可视化页面模块启动成功 ლ(´ڡ`ლ)゙ " + + "# _oo0oo_\n" + + "# o8888888o\n" + + "# 88\" . \"88\n" + + "# (| -_- |)\n" + + "# 0\\ = /0\n" + + "# ___/`---'\\___\n" + + "# .' \\\\| |// '.\n" + + "# / \\\\||| : |||// \\\n" + + "# / _||||| -:- |||||- \\\n" + + "# | | \\\\\\ - /// | |\n" + + "# | \\_| ''\\---/'' |_/ |\n" + + "# \\ .-\\__ '-' ___/-. /\n" + + "# ___'. .' /--.--\\ `. .'___\n" + + "# .\"\" '< `.___\\_<|>_/___.' >' \"\".\n" + + "# | | : `- \\`.;`\\ _ /`;.`/ - ` : | |\n" + + "# \\ \\ `_. \\_ __\\ /__ _/ .-` / /\n" + + "# =====`-.____`.___ \\_____/___.-`___.-'=====\n" + + "# `=---='\n" + + "#\n" + + "#\n" + + "# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + + "#\n" + + "# 佛祖保佑 永无BUG\n" + + "#\n" + + "#    ┏┓   ┏┓\n" + + "#   ┏┛┻━━━┛┻┓\n" + + "#   ┃        ┃\n" + + "#   ┃   ━    ┃\n" + + "#   ┃ ┳┛ ┗┳ ┃\n" + + "#   ┃        ┃\n" + + "#   ┃   ┻    ┃\n" + + "#   ┃        ┃\n" + + "#   ┗━┓   ┏━┛Codes are far away from bugs with the animal protecting\n" + + "#     ┃   ┃ 神兽保佑,代码无bug\n" + + "#     ┃   ┃\n" + + "#     ┃   ┗━━━┓\n" + + "#     ┃      ┣┓\n" + + "#     ┃     ┏┛\n" + + "#     ┗┓┓┏━┳┓┏┛\n" + + "#      ┃┫┫ ┃┫┫\n" + + "#      ┗┻┛ ┗┻┛\n" + + "#\n" + + "#    ┏┓   ┏┓\n" + + "#   ┏┛┻━━━┛┻┓\n" + + "#   ┃        ┃  \n" + + "#   ┃   ━    ┃\n" + + "#   ┃ >   <┃\n" + + "#   ┃        ┃\n" + + "#   ┃ . ⌒ ..┃\n" + + "#   ┃        ┃\n" + + "#   ┗━┓   ┏━┛\n" + + "#     ┃   ┃ Codes are far away from bugs with the animal protecting       \n" + + "#     ┃   ┃ 神兽保佑,代码无bug\n" + + "#     ┃   ┃           \n" + + "#     ┃   ┃       \n" + + "#     ┃   ┃\n" + + "#     ┃   ┃           \n" + + "#     ┃   ┗━━━┓\n" + + "#     ┃       ┣┓\n" + + "#     ┃       ┏┛\n" + + "#     ┗┓┓┏━┳┓┏┛\n" + + "#      ┃┫┫ ┃┫┫\n" + + "#      ┗┻┛ ┗┻┛\n" + + "# ┏┓   ┏┓+ +\n" + + "#   ┏┛┻━━━┛┻┓ + +\n" + + "#   ┃       ┃  \n" + + "#   ┃   ━   ┃ ++ + + +\n" + + "#   ████━████ ┃+\n" + + "#   ┃       ┃ +\n" + + "#   ┃   ┻   ┃\n" + + "#   ┃       ┃ + +\n" + + "#   ┗━┓   ┏━┛\n" + + "#     ┃   ┃           \n" + + "#     ┃   ┃ + + + +\n" + + "#     ┃   ┃    Codes are far away from bugs with the animal protecting   \n" + + "#     ┃   ┃ +     神兽保佑,代码无bug  \n" + + "#     ┃   ┃\n" + + "#     ┃   ┃  +         \n" + + "#     ┃    ┗━━━┓ + +\n" + + "#     ┃        ┣┓\n" + + "#     ┃        ┏┛\n" + + "#     ┗┓┓┏━┳┓┏┛ + + + +\n" + + "#      ┃┫┫ ┃┫┫\n" + + "#      ┗┻┛ ┗┻┛+ + + +\n" + + "# d*##$.\n" + + "# zP\"\"\"\"\"$e. $\" $o\n" + + "#4$ '$ $\" $\n" + + "#'$ '$ J$ $F\n" + + "# 'b $k $> $\n" + + "# $k $r J$ d$\n" + + "# '$ $ $\" $~\n" + + "# '$ \"$ '$E $\n" + + "# $ $L $\" $F ...\n" + + "# $. 4B $ $$$*\"\"\"*b\n" + + "# '$ $. $$ $$ $F\n" + + "# \"$ R$ $F $\" $\n" + + "# $k ?$ u* dF .$\n" + + "# ^$. $$\" z$ u$$$$e\n" + + "# #$b $E.dW@e$\" ?$\n" + + "# #$ .o$$# d$$$$c ?F\n" + + "# $ .d$$#\" . zo$> #$r .uF\n" + + "# $L .u$*\" $&$$$k .$$d$$F\n" + + "# $$\" \"\"^\"$$$P\"$P9$\n" + + "# JP .o$$$$u:$P $$\n" + + "# $ ..ue$\" \"\" $\"\n" + + "# d$ $F $\n" + + "# $$ ....udE 4B\n" + + "# #$ \"\"\"\"` $r @$\n" + + "# ^$L '$ $F\n" + + "# RN 4N $\n" + + "# *$b d$\n" + + "# $$k $F\n" + + "# $$b $F\n" + + "# $\"\" $F\n" + + "# '$ $\n" + + "# $L $\n" + + "# '$ $\n" + + "# $ $\n" + + "#\n" + + "#\n" + + "# ┌─┐ ┌─┐\n" + + "# ┌──┘ ┴───────┘ ┴──┐\n" + + "# │ │\n" + + "# │ ─── │\n" + + "# │ ─┬┘ └┬─ │\n" + + "# │ │\n" + + "# │ ─┴─ │\n" + + "# │ │\n" + + "# └───┐ ┌───┘\n" + + "# │ │\n" + + "# │ │\n" + + "# │ │\n" + + "# │ └──────────────┐\n" + + "# │ │\n" + + "# │ ├─┐\n" + + "# │ ┌─┘\n" + + "# │ │\n" + + "# └─┐ ┐ ┌───────┬──┐ ┌──┘\n" + + "# │ ─┤ ─┤ │ ─┤ ─┤\n" + + "# └──┴──┘ └──┴──┘\n" + + "# 神兽保佑\n" + + "# 代码无BUG!\n" + + "#\n" + + "# ___====-_ _-====___\n" + + "# _--^^^#####// \\\\#####^^^--_\n" + + "# _-^##########// ( ) \\\\##########^-_\n" + + "# -############// |\\^^/| \\\\############-\n" + + "# _/############// (@::@) \\\\############\\_\n" + + "# /#############(( \\\\// ))#############\\\n" + + "# -###############\\\\ (oo) //###############-\n" + + "# -#################\\\\ / VV \\ //#################-\n" + + "# -###################\\\\/ \\//###################-\n" + + "# _#/|##########/\\######( /\\ )######/\\##########|\\#_\n" + + "# |/ |#/\\#/\\#/\\/ \\#/\\##\\ | | /##/\\#/ \\/\\#/\\#/\\#| \\|\n" + + "# ` |/ V V ` V \\#\\| | | |/#/ V ' V V \\| '\n" + + "# ` ` ` ` / | | | | \\ ' ' ' '\n" + + "# ( | | | | )\n" + + "# __\\ | | | | /__\n" + + "# (vvv(VVV)(VVV)vvv)\n" + + "# 神兽保佑\n" + + "# 代码无BUG!\n" + + "# __----~~~~~~~~~~~------___\n" + + "# . . ~~//====...... __--~ ~~\n" + + "# -. \\_|// |||\\\\ ~~~~~~::::... /~\n" + + "# ___-==_ _-~o~ \\/ ||| \\\\ _/~~-\n" + + "# __---~~~.==~||\\=_ -_--~/_-~|- |\\\\ \\\\ _/~\n" + + "# _-~~ .=~ | \\\\-_ '-~7 /- / || \\ /\n" + + "# .~ .~ | \\\\ -_ / /- / || \\ /\n" + + "# / ____ / | \\\\ ~-_/ /|- _/ .|| \\ /\n" + + "# |~~ ~~|--~~~~--_ \\ ~==-/ | \\~--===~~ .\\\n" + + "# ' ~-| /| |-~\\~~ __--~~\n" + + "# |-~~-_/ | | ~\\_ _-~ /\\\n" + + "# / \\ \\__ \\/~ \\__\n" + + "# _--~ _/ | .-~~____--~-/ ~~==.\n" + + "# ((->/~ '.|||' -_| ~~-/ , . _||\n" + + "# -_ ~\\ ~~---l__i__i__i--~~_/\n" + + "# _-~-__ ~) \\--______________--~~\n" + + "# //.-~~~-~_--~- |-------~~~~~~~~\n" + + "# //.-~~~--\\\n" + + "# 神兽保佑\n" + + "# 代码无BUG!\n" + + "# ,----------------, ,---------,\n" + + "# ,-----------------------, ,\" ,\"|\n" + + "# ,\" ,\"| ,\" ,\" |\n" + + "# +-----------------------+ | ,\" ,\" |\n" + + "# | .-----------------. | | +---------+ |\n" + + "# | | | | | | -==----'| |\n" + + "# | | I LOVE DOS! | | | | | |\n" + + "# | | Bad command or | | |/----|`---= | |\n" + + "# | | C:\\>_ | | | ,/|==== ooo | ;\n" + + "# | | | | | // |(((( [33]| ,\"\n" + + "# | `-----------------' |,\" .;'| |(((( | ,\"\n" + + "# +-----------------------+ ;; | | |,\"\n" + + "# /_)______________(_/ //' | +---------+\n" + + "# ___________________________/___ `,\n" + + "# / oooooooooooooooo .o. oooo /, \\,\"-----------\n" + + "# / ==ooooooooooooooo==.o. ooo= // ,`\\--{)B ,\"\n" + + "# /_==__==========__==_ooo__ooo=_/' /___________,\"\n" + + "#\n" + + "# .-~~~~~~~~~-._ _.-~~~~~~~~~-.\n" + + "# __.' ~. .~ `.__\n" + + "# .'// \\./ \\\\`.\n" + + "# .'// | \\\\`.\n" + + "# .'// .-~\"\"\"\"\"\"\"~~~~-._ | _,-~~~~\"\"\"\"\"\"\"~-. \\\\`.\n" + + "# .'//.-\" `-. | .-' \"-.\\\\`.\n" + + "# .'//______.============-.. \\ | / ..-============.______\\\\`.\n" + + "# .'______________________________\\|/______________________________`."); + + } + +} \ No newline at end of file diff --git a/mhd-bi/src/main/java/com/mhd/bi/config/BiAccessProperties.java b/mhd-bi/src/main/java/com/mhd/bi/config/BiAccessProperties.java new file mode 100644 index 000000000..e038e9aa5 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/config/BiAccessProperties.java @@ -0,0 +1,18 @@ +package com.mhd.bi.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; + +/** + * BI 开放接口访问控制(请求头 {@code X-BI-Access-Token})。 + *

配置了 {@code accessToken} 时必须与请求头完全一致;未配置时仅校验请求头非空。

+ */ +@Data +@ConfigurationProperties(prefix = "mhd.bi") +public class BiAccessProperties { + + /** + * 与 X-BI-Access-Token 比对的密钥;为空则只要请求头非空即可 + */ + private String accessToken = ""; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/config/BiReportAccessConfiguration.java b/mhd-bi/src/main/java/com/mhd/bi/config/BiReportAccessConfiguration.java new file mode 100644 index 000000000..5f5cfb19d --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/config/BiReportAccessConfiguration.java @@ -0,0 +1,25 @@ +package com.mhd.bi.config; + +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.Ordered; + +/** + * 注册 /biReport 路径的访问令牌校验 + */ +@Configuration +@EnableConfigurationProperties(BiAccessProperties.class) +public class BiReportAccessConfiguration { + + @Bean + public FilterRegistrationBean biReportAccessTokenFilter(BiAccessProperties properties) { + FilterRegistrationBean registration = new FilterRegistrationBean<>(); + registration.setFilter(new BiReportAccessTokenFilter(properties)); + registration.addUrlPatterns("/biReport/*"); + registration.setOrder(Ordered.HIGHEST_PRECEDENCE + 100); + registration.setName("biReportAccessTokenFilter"); + return registration; + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/config/BiReportAccessTokenFilter.java b/mhd-bi/src/main/java/com/mhd/bi/config/BiReportAccessTokenFilter.java new file mode 100644 index 000000000..de9cc6675 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/config/BiReportAccessTokenFilter.java @@ -0,0 +1,60 @@ +package com.mhd.bi.config; + +import org.springframework.lang.NonNull; +import org.springframework.util.StringUtils; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +/** + * 限制 /biReport 下接口必须携带 {@code X-BI-Access-Token},否则 401。 + */ +public class BiReportAccessTokenFilter extends OncePerRequestFilter { + + private static final String UNAUTHORIZED_MSG = "未认证,请提供有效的访问Token"; + + public static final String HEADER_X_BI_ACCESS_TOKEN = "X-BI-Access-Token"; + + private final BiAccessProperties accessProperties; + + public BiReportAccessTokenFilter(BiAccessProperties accessProperties) { + this.accessProperties = accessProperties; + } + + @Override + protected void doFilterInternal(@NonNull HttpServletRequest request, + @NonNull HttpServletResponse response, + @NonNull FilterChain filterChain) throws ServletException, IOException { + if ("OPTIONS".equalsIgnoreCase(request.getMethod())) { + filterChain.doFilter(request, response); + return; + } + + String presented = request.getHeader(HEADER_X_BI_ACCESS_TOKEN); + if (!StringUtils.hasText(presented)) { + writeUnauthorized(response); + return; + } + + String expected = accessProperties.getAccessToken(); + if (StringUtils.hasText(expected) && !expected.equals(presented)) { + writeUnauthorized(response); + return; + } + + filterChain.doFilter(request, response); + } + + private static void writeUnauthorized(HttpServletResponse response) throws IOException { + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + response.setCharacterEncoding(StandardCharsets.UTF_8.name()); + response.setContentType("application/json;charset=UTF-8"); + String body = "{\"code\":401,\"msg\":\"" + UNAUTHORIZED_MSG.replace("\"", "\\\"") + "\"}"; + response.getOutputStream().write(body.getBytes(StandardCharsets.UTF_8)); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biComprehensive/repository/mapper/BiComprehensiveReportMapper.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biComprehensive/repository/mapper/BiComprehensiveReportMapper.java new file mode 100644 index 000000000..ec02f70ac --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biComprehensive/repository/mapper/BiComprehensiveReportMapper.java @@ -0,0 +1,23 @@ +package com.mhd.bi.domain.biComprehensive.repository.mapper; + +import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO; + +/** + * 综合态势:SQL 见 BiComprehensiveReportMapper.xml;取数与组装均在 Mapper 层完成。 + */ +public interface BiComprehensiveReportMapper { + + String selectLatestPayloadJson(); + + /** + * 最新快照 → VO(内部调用 {@link #selectLatestPayloadJson()}) + */ + default ComprehensiveSituationVO loadLatestComprehensive() { + return BiReportSnapshotMapperSupport.parsePayload( + selectLatestPayloadJson(), + ComprehensiveSituationVO.class, + BiReportSnapshotMapperSupport::emptyComprehensiveSituation, + "综合态势"); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biComprehensive/service/BiComprehensiveReportService.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biComprehensive/service/BiComprehensiveReportService.java new file mode 100644 index 000000000..2698baa54 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biComprehensive/service/BiComprehensiveReportService.java @@ -0,0 +1,21 @@ +package com.mhd.bi.domain.biComprehensive.service; + +import com.mhd.bi.domain.biComprehensive.repository.mapper.BiComprehensiveReportMapper; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 综合态势:数据访问仅经 Mapper(含 XML 内 SQL 与 Mapper 默认方法组装)。 + */ +@Service +public class BiComprehensiveReportService { + + @Resource + private BiComprehensiveReportMapper biComprehensiveReportMapper; + + public ComprehensiveSituationVO loadLatestComprehensive() { + return biComprehensiveReportMapper.loadLatestComprehensive(); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biHkMacaoServiceZone/repository/mapper/BiHkMacaoServiceZoneReportMapper.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biHkMacaoServiceZone/repository/mapper/BiHkMacaoServiceZoneReportMapper.java new file mode 100644 index 000000000..4f8f78454 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biHkMacaoServiceZone/repository/mapper/BiHkMacaoServiceZoneReportMapper.java @@ -0,0 +1,20 @@ +package com.mhd.bi.domain.biHkMacaoServiceZone.repository.mapper; + +import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone.HkMacaoServiceZoneVO; + +/** + * 港澳服务专区:取 NGWL_TEST_BI.BI_HK_MACAO_SERVICE_ZONE_SNAPSHOT 最新 PAYLOAD_JSON 并解析。 + */ +public interface BiHkMacaoServiceZoneReportMapper { + + String selectLatestPayloadJson(); + + default HkMacaoServiceZoneVO loadLatestHkMacaoServiceZone() { + return BiReportSnapshotMapperSupport.parsePayload( + selectLatestPayloadJson(), + HkMacaoServiceZoneVO.class, + BiReportSnapshotMapperSupport::emptyHkMacaoServiceZone, + "港澳服务专区"); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biHkMacaoServiceZone/service/BiHkMacaoServiceZoneReportService.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biHkMacaoServiceZone/service/BiHkMacaoServiceZoneReportService.java new file mode 100644 index 000000000..4f6f8d215 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biHkMacaoServiceZone/service/BiHkMacaoServiceZoneReportService.java @@ -0,0 +1,21 @@ +package com.mhd.bi.domain.biHkMacaoServiceZone.service; + +import com.mhd.bi.domain.biHkMacaoServiceZone.repository.mapper.BiHkMacaoServiceZoneReportMapper; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone.HkMacaoServiceZoneVO; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 港澳服务专区 + */ +@Service +public class BiHkMacaoServiceZoneReportService { + + @Resource + private BiHkMacaoServiceZoneReportMapper biHkMacaoServiceZoneReportMapper; + + public HkMacaoServiceZoneVO loadLatestHkMacaoServiceZone() { + return biHkMacaoServiceZoneReportMapper.loadLatestHkMacaoServiceZone(); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biHkMacaoServiceZone/support/HkMacaoServiceZoneDemoData.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biHkMacaoServiceZone/support/HkMacaoServiceZoneDemoData.java new file mode 100644 index 000000000..aa1a580f5 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biHkMacaoServiceZone/support/HkMacaoServiceZoneDemoData.java @@ -0,0 +1,150 @@ +package com.mhd.bi.domain.biHkMacaoServiceZone.support; + +import com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone.*; + +import java.util.Arrays; +import java.util.List; + +/** + * 港澳服务专区快照演示数据(对齐大屏示例 JSON;后续可改为真实聚合)。 + */ +public final class HkMacaoServiceZoneDemoData { + + private HkMacaoServiceZoneDemoData() { + } + + public static HkMacaoServiceZoneVO build() { + HkOrderStatsVO orderStats = HkOrderStatsVO.builder() + .totalOrders(4361L) + .unit("单") + .momGrowth("+12.5%") + .trend("up") + .build(); + + List goodsDetails = Arrays.asList( + HkPercentageDetailVO.builder().name("广东").percentage("25%").build(), + HkPercentageDetailVO.builder().name("澳门").percentage("25%").build(), + HkPercentageDetailVO.builder().name("广西").percentage("50%").build() + ); + + List crossBorderDetails = Arrays.asList( + HkPercentageDetailVO.builder().name("出口订单").percentage("25.8%").build(), + HkPercentageDetailVO.builder().name("进口订单").percentage("16.8%").build() + ); + + List warehouseOrderTrend = Arrays.asList( + HkOrderTrendMonthVO.builder().month("1月").orderRatio(150).orderCount(400).build(), + HkOrderTrendMonthVO.builder().month("2月").orderRatio(200).orderCount(250).build(), + HkOrderTrendMonthVO.builder().month("3月").orderRatio(250).orderCount(300).build(), + HkOrderTrendMonthVO.builder().month("4月").orderRatio(200).orderCount(280).build(), + HkOrderTrendMonthVO.builder().month("5月").orderRatio(280).orderCount(320).build(), + HkOrderTrendMonthVO.builder().month("6月").orderRatio(220).orderCount(310).build(), + HkOrderTrendMonthVO.builder().month("7月").orderRatio(260).orderCount(330).build() + ); + + List turnoverData = Arrays.asList( + HkMonthRatePointVO.builder().month("11月").rate(10).build(), + HkMonthRatePointVO.builder().month("12月").rate(15).build(), + HkMonthRatePointVO.builder().month("1月").rate(22).build(), + HkMonthRatePointVO.builder().month("2月").rate(20).build(), + HkMonthRatePointVO.builder().month("3月").rate(12).build(), + HkMonthRatePointVO.builder().month("4月").rate(16).build() + ); + + List cargoVolumeTrend = Arrays.asList( + HkMonthValuePointVO.builder().month("1月").value(80).build(), + HkMonthValuePointVO.builder().month("2月").value(85).build(), + HkMonthValuePointVO.builder().month("3月").value(90).build(), + HkMonthValuePointVO.builder().month("4月").value(70).build(), + HkMonthValuePointVO.builder().month("5月").value(95).build(), + HkMonthValuePointVO.builder().month("6月").value(88).build() + ); + + List transportOrderTrend = Arrays.asList( + HkOrderTrendMonthVO.builder().month("1月").orderRatio(150).orderCount(400).build(), + HkOrderTrendMonthVO.builder().month("2月").orderRatio(200).orderCount(250).build(), + HkOrderTrendMonthVO.builder().month("3月").orderRatio(250).orderCount(300).build(), + HkOrderTrendMonthVO.builder().month("4月").orderRatio(200).orderCount(280).build(), + HkOrderTrendMonthVO.builder().month("5月").orderRatio(280).orderCount(320).build(), + HkOrderTrendMonthVO.builder().month("6月").orderRatio(220).orderCount(310).build(), + HkOrderTrendMonthVO.builder().month("7月").orderRatio(260).orderCount(330).build() + ); + + List onTimeDeliveryRate = Arrays.asList( + HkMonthRatePointVO.builder().month("1月").rate(90).build(), + HkMonthRatePointVO.builder().month("2月").rate(92).build(), + HkMonthRatePointVO.builder().month("3月").rate(88).build(), + HkMonthRatePointVO.builder().month("4月").rate(85).build(), + HkMonthRatePointVO.builder().month("5月").rate(95).build(), + HkMonthRatePointVO.builder().month("6月").rate(93).build() + ); + + List mapPoints = Arrays.asList( + HkMapPointVO.builder() + .id("wh_001") + .type("warehouse") + .name("通宇保税仓") + .status("normal") + .location(HkMapLocationVO.builder().lat(22.2800).lng(113.5600).build()) + .metrics(HkWarehouseMetricsVO.builder() + .inboundOperations(1) + .outboundOperations(1) + .build()) + .build(), + HkMapPointVO.builder() + .id("vehicle_88888") + .type("vehicle") + .name("粤A88888") + .status("in_transit") + .location(HkMapLocationVO.builder().lat(22.2500).lng(113.5500).build()) + .details(HkVehicleDetailsVO.builder() + .warehouseName("通宇") + .licensePlate("粤A88888") + .loadingAddress("珠海") + .destinationAddress("澳门") + .currentLocation("珠海市") + .updateTime("2026年4月15日 17:52") + .build()) + .build() + ); + + return HkMacaoServiceZoneVO.builder() + .warehouseOrderStats(orderStats) + .clientServiceStats(HkClientServiceStatsVO.builder() + .hkMacaoClients(26) + .clientRatio("10.5%") + .warehouseUsageArea("1688m2") + .areaRatio("1.5%") + .build()) + .goodsSourceStats(HkRingChartStatsVO.builder() + .totalOrders(1000) + .details(goodsDetails) + .build()) + .crossBorderOrderStats(HkRingChartStatsVO.builder() + .totalOrders(400) + .details(crossBorderDetails) + .build()) + .warehouseOrderTrend(warehouseOrderTrend) + .inventoryTurnoverTrend(HkInventoryTurnoverTrendVO.builder() + .currentMonthRate("3次") + .annualRate("4次") + .unit("次") + .data(turnoverData) + .build()) + .transportOrderStats(orderStats) + .doorToDoorEfficiency(HkDoorToDoorEfficiencyVO.builder() + .averageTime("28.6分") + .fastestTime("13.2分") + .momGrowth("+30%") + .build()) + .crossBorderTransportStats(HkRingChartStatsVO.builder() + .totalOrders(400) + .details(crossBorderDetails) + .build()) + .cargoVolumeTrend(cargoVolumeTrend) + .transportOrderTrend(transportOrderTrend) + .onTimeDeliveryRate(onTimeDeliveryRate) + .mapData(HkMapDataVO.builder().points(mapPoints).build()) + .build(); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biOverallOperation/repository/mapper/BiOverallOperationReportMapper.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biOverallOperation/repository/mapper/BiOverallOperationReportMapper.java new file mode 100644 index 000000000..0487d3e99 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biOverallOperation/repository/mapper/BiOverallOperationReportMapper.java @@ -0,0 +1,23 @@ +package com.mhd.bi.domain.biOverallOperation.repository.mapper; + +import com.mhd.bi.domain.biOverallOperation.support.OverallOperationPayloadNormalizer; +import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO; + +/** + * 总体运营态势:SQL 见 BiOverallOperationReportMapper.xml;取数与组装均在 Mapper 层完成。 + */ +public interface BiOverallOperationReportMapper { + + String selectLatestPayloadJson(); + + default OverallOperationSituationVO loadLatestOverallOperation() { + String json = OverallOperationPayloadNormalizer.normalizeJson(selectLatestPayloadJson()); + OverallOperationSituationVO vo = BiReportSnapshotMapperSupport.parsePayload( + json, + OverallOperationSituationVO.class, + BiReportSnapshotMapperSupport::emptyOverallOperationSituation, + "总体运营态势"); + return OverallOperationPayloadNormalizer.ensureDefaults(vo); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biOverallOperation/service/BiOverallOperationReportService.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biOverallOperation/service/BiOverallOperationReportService.java new file mode 100644 index 000000000..b5a6cb936 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biOverallOperation/service/BiOverallOperationReportService.java @@ -0,0 +1,21 @@ +package com.mhd.bi.domain.biOverallOperation.service; + +import com.mhd.bi.domain.biOverallOperation.repository.mapper.BiOverallOperationReportMapper; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 南光物流业务经营分析 · 总体运营态势(大图1) + */ +@Service +public class BiOverallOperationReportService { + + @Resource + private BiOverallOperationReportMapper biOverallOperationReportMapper; + + public OverallOperationSituationVO loadLatestOverallOperation() { + return biOverallOperationReportMapper.loadLatestOverallOperation(); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biOverallOperation/support/OverallOperationPayloadNormalizer.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biOverallOperation/support/OverallOperationPayloadNormalizer.java new file mode 100644 index 000000000..f8862e8e2 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biOverallOperation/support/OverallOperationPayloadNormalizer.java @@ -0,0 +1,95 @@ +package com.mhd.bi.domain.biOverallOperation.support; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.mhd.bi.domain.biReport.support.BiInventoryTurnoverTrendSupport; +import com.mhd.bi.domain.biReport.support.BiOnTimeDeliveryRateChartSupport; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallTransportOperationVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallWarehouseOperationVO; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; + +/** + * 总体运营态势:左侧 warehouse.turnover_rate_trend;右下角 transport.on_time_rate。 + */ +@Slf4j +public final class OverallOperationPayloadNormalizer { + + private static final ObjectMapper MAPPER = new ObjectMapper(); + + private OverallOperationPayloadNormalizer() { + } + + public static String normalizeJson(String json) { + if (StringUtils.isBlank(json)) { + return json; + } + try { + JsonNode root = MAPPER.readTree(json.trim()); + boolean changed = false; + + ObjectNode rootObj = (ObjectNode) root; + JsonNode warehouse = root.path("warehouse"); + if (warehouse.isObject()) { + ObjectNode warehouseObj = (ObjectNode) warehouse; + if (warehouseObj.has("map") && !rootObj.has("map")) { + rootObj.set("map", warehouseObj.remove("map")); + changed = true; + } + if (warehouseObj.has("transport") && !rootObj.has("transport")) { + rootObj.set("transport", warehouseObj.remove("transport")); + changed = true; + } + if (warehouseObj.has("capabilityRanking")) { + warehouseObj.remove("capabilityRanking"); + changed = true; + } + if (warehouseObj.has("on_time_rate")) { + warehouseObj.remove("on_time_rate"); + changed = true; + } + if (!warehouseObj.has("turnover_rate_trend")) { + warehouseObj.set("turnover_rate_trend", + MAPPER.valueToTree(BiInventoryTurnoverTrendSupport.defaultTrend())); + changed = true; + } + } + + JsonNode transport = root.path("transport"); + if (transport.isObject()) { + ObjectNode transportObj = (ObjectNode) transport; + if (transportObj.has("enterpriseRanking")) { + transportObj.remove("enterpriseRanking"); + changed = true; + } + if (!transportObj.has("on_time_rate")) { + transportObj.set("on_time_rate", + MAPPER.valueToTree(BiOnTimeDeliveryRateChartSupport.defaultChart())); + changed = true; + } + } + + return changed ? MAPPER.writeValueAsString(root) : json; + } catch (Exception e) { + log.warn("总体运营态势 PAYLOAD_JSON 规范化失败,按原 JSON 解析", e); + return json; + } + } + + public static OverallOperationSituationVO ensureDefaults(OverallOperationSituationVO vo) { + if (vo == null) { + return null; + } + OverallWarehouseOperationVO warehouse = vo.getWarehouse(); + if (warehouse != null && BiInventoryTurnoverTrendSupport.isEmpty(warehouse.getTurnoverRateTrend())) { + warehouse.setTurnoverRateTrend(BiInventoryTurnoverTrendSupport.defaultTrend()); + } + OverallTransportOperationVO transport = vo.getTransport(); + if (transport != null && BiOnTimeDeliveryRateChartSupport.isChartEmpty(transport.getOnTimeRate())) { + transport.setOnTimeRate(BiOnTimeDeliveryRateChartSupport.defaultChart()); + } + return vo; + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biPlatformSurveillance/repository/mapper/BiPlatformSurveillanceReportMapper.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biPlatformSurveillance/repository/mapper/BiPlatformSurveillanceReportMapper.java new file mode 100644 index 000000000..70be42e06 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biPlatformSurveillance/repository/mapper/BiPlatformSurveillanceReportMapper.java @@ -0,0 +1,20 @@ +package com.mhd.bi.domain.biPlatformSurveillance.repository.mapper; + +import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO; + +/** + * 月台监测:SQL 见 BiPlatformSurveillanceReportMapper.xml;取数与组装均在 Mapper 层完成。 + */ +public interface BiPlatformSurveillanceReportMapper { + + String selectLatestPayloadJson(); + + default PlatformSurveillanceVO loadLatestPlatformSurveillance() { + return BiReportSnapshotMapperSupport.parsePayload( + selectLatestPayloadJson(), + PlatformSurveillanceVO.class, + BiReportSnapshotMapperSupport::emptyPlatformSurveillance, + "月台监测"); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biPlatformSurveillance/service/BiPlatformSurveillanceReportService.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biPlatformSurveillance/service/BiPlatformSurveillanceReportService.java new file mode 100644 index 000000000..2bce3b165 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biPlatformSurveillance/service/BiPlatformSurveillanceReportService.java @@ -0,0 +1,18 @@ +package com.mhd.bi.domain.biPlatformSurveillance.service; + +import com.mhd.bi.domain.biPlatformSurveillance.repository.mapper.BiPlatformSurveillanceReportMapper; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class BiPlatformSurveillanceReportService { + + @Resource + private BiPlatformSurveillanceReportMapper biPlatformSurveillanceReportMapper; + + public PlatformSurveillanceVO loadLatestPlatformSurveillance() { + return biPlatformSurveillanceReportMapper.loadLatestPlatformSurveillance(); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiInventoryTurnoverTrendSupport.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiInventoryTurnoverTrendSupport.java new file mode 100644 index 000000000..a938d1a49 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiInventoryTurnoverTrendSupport.java @@ -0,0 +1,42 @@ +package com.mhd.bi.domain.biReport.support; + +import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WhMonthRatePointVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WhTurnoverRateTrendVO; + +import java.util.Arrays; + +/** + * 总体运营态势左侧「库存周转率趋势」默认数据(与仓储运营专区 turnover_rate_trend 结构一致) + */ +public final class BiInventoryTurnoverTrendSupport { + + private BiInventoryTurnoverTrendSupport() { + } + + public static WhTurnoverRateTrendVO defaultTrend() { + return WhTurnoverRateTrendVO.builder() + .currentMonth("3次") + .annual("4次") + .data(Arrays.asList( + WhMonthRatePointVO.builder().month("11月").rate(10).build(), + WhMonthRatePointVO.builder().month("12月").rate(15).build(), + WhMonthRatePointVO.builder().month("1月").rate(22).build(), + WhMonthRatePointVO.builder().month("2月").rate(20).build(), + WhMonthRatePointVO.builder().month("3月").rate(12).build(), + WhMonthRatePointVO.builder().month("4月").rate(16).build() + )) + .build(); + } + + public static boolean isEmpty(WhTurnoverRateTrendVO trend) { + return trend == null || trend.getData() == null || trend.getData().isEmpty(); + } + + public static WhTurnoverRateTrendVO emptyShell() { + return WhTurnoverRateTrendVO.builder() + .currentMonth("") + .annual("") + .data(java.util.Collections.emptyList()) + .build(); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiOnTimeDeliveryRateChartSupport.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiOnTimeDeliveryRateChartSupport.java new file mode 100644 index 000000000..ef83b438c --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiOnTimeDeliveryRateChartSupport.java @@ -0,0 +1,50 @@ +package com.mhd.bi.domain.biReport.support; + +import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TrMonthValuePointVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TrTypedChartVO; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * 准时配送率折线图(总体运营 transport.on_time_rate、运输运营专区 on_time_rate 共用) + */ +public final class BiOnTimeDeliveryRateChartSupport { + + private BiOnTimeDeliveryRateChartSupport() { + } + + public static TrTypedChartVO defaultChart() { + return TrTypedChartVO.builder() + .title("准时配送率") + .type("line") + .unit("%") + .data(defaultMonthPoints()) + .build(); + } + + public static List defaultMonthPoints() { + return Arrays.asList( + TrMonthValuePointVO.builder().month("1月").value(98).build(), + TrMonthValuePointVO.builder().month("2月").value(96).build(), + TrMonthValuePointVO.builder().month("3月").value(85).build(), + TrMonthValuePointVO.builder().month("4月").value(70).build(), + TrMonthValuePointVO.builder().month("5月").value(92).build(), + TrMonthValuePointVO.builder().month("6月").value(90).build() + ); + } + + public static boolean isChartEmpty(TrTypedChartVO chart) { + return chart == null || chart.getData() == null || chart.getData().isEmpty(); + } + + public static TrTypedChartVO emptyChartShell() { + return TrTypedChartVO.builder() + .title("") + .type("") + .unit("") + .data(Collections.emptyList()) + .build(); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiReportSnapshotMapperSupport.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiReportSnapshotMapperSupport.java new file mode 100644 index 000000000..435c6108f --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiReportSnapshotMapperSupport.java @@ -0,0 +1,276 @@ +package com.mhd.bi.domain.biReport.support; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.CustomerContributionRankVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.WarehouseTransportSituationVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.*; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TrTypedChartVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.*; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone.*; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.*; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.*; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; + +import java.util.Collections; +import java.util.function.Supplier; + +/** + * Mapper 层使用的快照 JSON 解析与空态(SQL 仅定义在对应 Mapper.xml;查询条件见各 XML:DEL_FLAG=1,按 CREATE_TIME 取最新) + */ +@Slf4j +public final class BiReportSnapshotMapperSupport { + + private static final ObjectMapper MAPPER = new ObjectMapper(); + + private BiReportSnapshotMapperSupport() { + } + + public static T parsePayload(String json, Class type, Supplier empty, String logLabel) { + if (StringUtils.isBlank(json)) { + return empty.get(); + } + try { + return MAPPER.readValue(json.trim(), type); + } catch (Exception e) { + log.warn("{} PAYLOAD_JSON 解析失败,返回空态", logLabel, e); + return empty.get(); + } + } + + public static ComprehensiveSituationVO emptyComprehensiveSituation() { + return ComprehensiveSituationVO.builder() + .valueAddedServiceIncome(0L) + .inventoryTurnover(0) + .orderCount(0) + .vehicleUtilizationRate(0d) + .fuelConsumptionPerHundredKm(0) + .incomeTrend(Collections.emptyList()) + .build(); + } + + public static WarehouseTransportSituationVO emptyWarehouseTransportSituation() { + return WarehouseTransportSituationVO.builder() + .warehouseDistributionOnTimeRate(0d) + .currentYearOrders(0L) + .currentQuarterOrders(0) + .currentMonthOrders(0) + .warehouseOrderTrend(Collections.emptyList()) + .throughput(Collections.emptyList()) + .currentMonthTurnoverRate(0) + .currentYearTurnoverRate(0) + .inventoryTurnoverTrend(Collections.emptyList()) + .totalTransportIncome(0) + .orderCount(0) + .transportTrips(0) + .annualTransportVolume(0) + .transportOrderTotal(0) + .crossBorderTransportOrder(0) + .domesticTransportOrder(0) + .transportTripsTrend(Collections.emptyList()) + .vehicleUtilizationRate(Collections.emptyList()) + .warehouseDockSyncRate(Collections.emptyList()) + .customerContributionRank(CustomerContributionRankVO.builder() + .customerName(Collections.emptyList()) + .customerAmount(Collections.emptyList()) + .build()) + .build(); + } + + public static PlatformSurveillanceVO emptyPlatformSurveillance() { + return PlatformSurveillanceVO.builder() + .vehicles(Collections.emptyList()) + .efficiencyStatistics(EfficiencyStatisticsVO.builder() + .entryOvertimeRate(0).overtimeCount(0).platformOnTimeRate(0) + .avgPlatformDuration(0d).yardOnTimeRate(0).avgYardDuration(0d).build()) + .platformOverview(PlatformOverviewVO.builder() + .totalPlatforms(0).currentOccupancyRate(0).operatingPlatforms(0).todayTasks(0).build()) + .vehicleStatus(VehicleStatusVO.builder() + .todayReservedVehicles(0).notCheckedIn(0).operatingVehicles(0).completedVehicles(0).build()) + .avgOperationDurationTrend(Collections.emptyList()) + .monthlyTaskStatistics(MonthlyTaskStatisticsVO.builder() + .taskTotal(0).taskTotalYoY(0).avgTaskDuration(0d).avgDurationYoY(0) + .taskCompletionRate(0).completionRateYoY(0).build()) + .taskLoadStatistics(Collections.emptyList()) + .platformAlarmTrend(Collections.emptyList()) + .taskTypeStatistics(TaskTypeStatisticsVO.builder() + .totalTasks(0).taskTypes(Collections.emptyList()).build()) + .platformAlarmStatistics(PlatformAlarmStatisticsVO.builder() + .todayAlarmTotal(0).handled(0).unhandled(0).build()) + .platformAlarmDistribution(Collections.emptyList()) + .build(); + } + + public static OverallOperationSituationVO emptyOverallOperationSituation() { + return OverallOperationSituationVO.builder() + .updateTime("") + .warehouse(OverallWarehouseOperationVO.builder() + .orderStatistics(OverallWarehouseOrderStatisticVO.builder() + .processedOrderCount(0L).changePercent(0d).build()) + .coreCapability(OverallWarehouseCoreCapabilityVO.builder() + .totalWarehouses(0).selfOperatedCount(0).outsourcedCount(0) + .operatingArea(0).areaUnit("") + .build()) + .orderTrendByMonth(Collections.emptyList()) + .throughputTrendByMonth(Collections.emptyList()) + .bizStatistics(OverallWarehouseBizStatisticVO.builder() + .customerCount(0L).coverageArea("") + .annualThroughput(0).throughputUnit("").throughputGrowth(0d) + .build()) + .turnoverRateTrend(BiInventoryTurnoverTrendSupport.defaultTrend()) + .build()) + .map(OverallMapSectionVO.builder().nodes(Collections.emptyList()).build()) + .transport(OverallTransportOperationVO.builder() + .orderSummary(OverallTransportOrderSummaryVO.builder() + .processedOrderCount(0L).changePercent(0d) + .annualFreight(0d).freightUnit("").freightGrowth(0d) + .build()) + .capacityStatistics(OverallTransportCapacityVO.builder() + .totalVehicles(0).ownedVehicles(0).socialVehicles(0) + .totalDrivers(0).ownedDrivers(0).socialDrivers(0) + .build()) + .orderTrendByMonth(Collections.emptyList()) + .freightTrendByMonth(Collections.emptyList()) + .orderDistribution(OverallTransportModeDistributionVO.builder() + .crossBorder(0L).domestic(0L).build()) + .onTimeRate(BiOnTimeDeliveryRateChartSupport.emptyChartShell()) + .build()) + .build(); + } + + public static WarehouseOperationZoneVO emptyWarehouseOperationZone() { + WhColdStorageMetricVO emptyColdMetric = WhColdStorageMetricVO.builder().value("").trend("").build(); + return WarehouseOperationZoneVO.builder() + .warehouseName("") + .updateTime("") + .orderSummary(WhOrderSummaryVO.builder() + .totalCount("") + .inboundOrders(WhOrderSummaryCountItemVO.builder().label("").value(0).build()) + .outboundOrders(WhOrderSummaryCountItemVO.builder().label("").value(0).build()) + .operationOrders(WhOrderSummaryCountItemVO.builder().label("").value(0).build()) + .build()) + .coldStorageStats(WhColdStorageStatsVO.builder() + .revenueShare(emptyColdMetric) + .utilizationRate(emptyColdMetric) + .damageRate(emptyColdMetric) + .build()) + .temperatureExceptions(Collections.emptyList()) + .storageOverview(WhStorageOverviewVO.builder() + .title("").value(0).unit("").subText("").build()) + .operationStats(WhOperationStatsVO.builder() + .title("").value(0).unit("").growthRate("").trend("").build()) + .businessPlanning(WhBusinessPlanningVO.builder() + .generalWarehouse(0).coldStorage(0).foodProcessing(0).automatedStorage(0).build()) + .throughputTrend(Collections.emptyList()) + .areaDistribution(WhAreaDistributionVO.builder() + .utilizationRate("").details(Collections.emptyList()).build()) + .capacityUtilizationTrend(WhCapacityUtilizationTrendVO.builder() + .peakLabel("").data(Collections.emptyList()).build()) + .orderStatistics(WhOrderStatisticsVO.builder() + .annualOrders(0L).quarterlyOrders(0L).monthlyOrders(0L).build()) + .serviceStatistics(WhServiceStatisticsVO.builder() + .clients(0).coverage("").onTimeRate("").rateChange("").build()) + .orderTrend(Collections.emptyList()) + .turnoverRateTrend(WhTurnoverRateTrendVO.builder() + .currentMonth("").annual("").data(Collections.emptyList()).build()) + .serviceCapacity(Collections.emptyList()) + .realTimeAnalysis(WhRealTimeAnalysisVO.builder() + .utilizationRate(WhRealTimeGaugeVO.builder().value("").comparison("").trend("").build()) + .rentalRate(WhRealTimeGaugeVO.builder().value("").comparison("").trend("").build()) + .build()) + .map(WhWarehouseMapVO.builder() + .legend("") + .nodes(Collections.emptyList()) + .build()) + .build(); + } + + public static TransportOperationZoneVO emptyTransportOperationZone() { + TrCapacityCountVO emptyCount = TrCapacityCountVO.builder() + .total(0).todayNew(0).yesterdayNew(0).build(); + return TransportOperationZoneVO.builder() + .updateTime("") + .dashboardTitle("") + .activeTab("") + .orderStatistics(TrOrderStatisticsVO.builder().title("").total(0L).trend("").build()) + .transportStats(TrTransportStatsVO.builder() + .title("").tripCount(0).volume(0d).volumeUnit("").build()) + .orderTypeChart(TrOrderTypeChartVO.builder() + .title("").type("").data(Collections.emptyList()).build()) + .tripCountTrend(TrTypedChartVO.builder() + .title("").type("").unit(null).data(Collections.emptyList()).build()) + .orderTrend(TrTypedChartVO.builder() + .title("").type("").unit("").data(Collections.emptyList()).build()) + .volumeTrend(TrTypedChartVO.builder() + .title("").type("").unit("").data(Collections.emptyList()).build()) + .map(TrVehicleMapVO.builder() + .title("") + .legend(TrMapLegendVO.builder().idle(0).working(0).build()) + .nodes(Collections.emptyList()) + .build()) + .enterpriseOperation(TrEnterpriseOperationVO.builder() + .title("").columns(Collections.emptyList()).list(Collections.emptyList()).build()) + .capacityStatus(TrCapacityStatusVO.builder() + .title("").staff(emptyCount).vehicles(emptyCount).build()) + .cargoCategory(TrCargoCategoryVO.builder() + .title("").totalOrders("").data(Collections.emptyList()).build()) + .onTimeRate(TrTypedChartVO.builder() + .title("").type("").unit("").data(Collections.emptyList()).build()) + .vehicleUtilization(TrBarChartVO.builder() + .title("").unit("").data(Collections.emptyList()).build()) + .transportSummary(TrTransportSummaryVO.builder() + .title("").safeMileage("").avgDeliveryTime("").build()) + .capacityStats(TrCapacityStatsVO.builder() + .vehicles(emptyCapacityStatItem()) + .drivers(emptyCapacityStatItem()) + .escorts(emptyCapacityStatItem()) + .build()) + .cargoTypeDistribution(TrCargoTypeDistributionVO.builder() + .title("").totalOrders(0).totalUnit("").details(Collections.emptyList()).build()) + .freshOrderStats(emptyBrandOrderStats()) + .vitasoyOrderStats(emptyBrandOrderStats()) + .build(); + } + + private static TrBrandOrderStatsVO emptyBrandOrderStats() { + return TrBrandOrderStatsVO.builder() + .plannedDelivery(TrOrderStatMetricVO.builder().value(0).unit("").label("").build()) + .orderQuantity(TrOrderStatMetricVO.builder().value(0).unit("").label("").build()) + .vehiclesInTransit(TrOrderStatMetricVO.builder().value(0).unit("").label("").build()) + .completedDelivery(TrOrderStatTextMetricVO.builder().value("").unit("").label("").build()) + .overtimeDelivery(TrOrderStatMetricVO.builder().value(0).unit("").label("").build()) + .onTimeRate(TrOrderStatRateMetricVO.builder().value("").trend("").label("").build()) + .build(); + } + + private static TrCapacityStatItemVO emptyCapacityStatItem() { + return TrCapacityStatItemVO.builder().value(0).unit("").label("").build(); + } + + public static HkMacaoServiceZoneVO emptyHkMacaoServiceZone() { + HkOrderStatsVO emptyOrderStats = HkOrderStatsVO.builder() + .totalOrders(0L).unit("").momGrowth("").trend("").build(); + return HkMacaoServiceZoneVO.builder() + .warehouseOrderStats(emptyOrderStats) + .clientServiceStats(HkClientServiceStatsVO.builder() + .hkMacaoClients(0).clientRatio("").warehouseUsageArea("").areaRatio("").build()) + .goodsSourceStats(HkRingChartStatsVO.builder() + .totalOrders(0).details(Collections.emptyList()).build()) + .crossBorderOrderStats(HkRingChartStatsVO.builder() + .totalOrders(0).details(Collections.emptyList()).build()) + .warehouseOrderTrend(Collections.emptyList()) + .inventoryTurnoverTrend(HkInventoryTurnoverTrendVO.builder() + .currentMonthRate("").annualRate("").unit("").data(Collections.emptyList()).build()) + .transportOrderStats(emptyOrderStats) + .doorToDoorEfficiency(HkDoorToDoorEfficiencyVO.builder() + .averageTime("").fastestTime("").momGrowth("").build()) + .crossBorderTransportStats(HkRingChartStatsVO.builder() + .totalOrders(0).details(Collections.emptyList()).build()) + .cargoVolumeTrend(Collections.emptyList()) + .transportOrderTrend(Collections.emptyList()) + .onTimeDeliveryRate(Collections.emptyList()) + .mapData(HkMapDataVO.builder().points(Collections.emptyList()).build()) + .build(); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiSnapshotDelFlag.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiSnapshotDelFlag.java new file mode 100644 index 000000000..2e6f83d1f --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biReport/support/BiSnapshotDelFlag.java @@ -0,0 +1,18 @@ +package com.mhd.bi.domain.biReport.support; + +/** + * BI 快照表 {@code DEL_FLAG} 取值(三张 *\_SNAPSHOT 表一致)。 + *

查询接口仅返回 {@link #NORMAL}。

+ */ +public final class BiSnapshotDelFlag { + + /** 无状态 */ + public static final int NONE = 0; + /** 正常(接口查询可见) */ + public static final int NORMAL = 1; + /** 已删除(逻辑删除,接口不返回) */ + public static final int DELETED = 2; + + private BiSnapshotDelFlag() { + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/repository/mapper/BiSnapshotWriteMapper.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/repository/mapper/BiSnapshotWriteMapper.java new file mode 100644 index 000000000..10d4dfcfa --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/repository/mapper/BiSnapshotWriteMapper.java @@ -0,0 +1,23 @@ +package com.mhd.bi.domain.biSnapshotSync.repository.mapper; + +import org.apache.ibatis.annotations.Param; + +/** + * BI 快照表写入(定时同步任务使用) + */ +public interface BiSnapshotWriteMapper { + + int insertComprehensiveSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark); + + int insertWarehouseTransportSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark); + + int insertPlatformSurveillanceSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark); + + int insertOverallOperationSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark); + + int insertWarehouseOperationZoneSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark); + + int insertTransportOperationZoneSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark); + + int insertHkMacaoServiceZoneSnapshot(@Param("payloadJson") String payloadJson, @Param("remark") String remark); +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/scheduler/BiReportSnapshotSyncScheduler.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/scheduler/BiReportSnapshotSyncScheduler.java new file mode 100644 index 000000000..6c6bbf14d --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/scheduler/BiReportSnapshotSyncScheduler.java @@ -0,0 +1,28 @@ +package com.mhd.bi.domain.biSnapshotSync.scheduler; + +import com.mhd.bi.domain.biSnapshotSync.service.BiReportSnapshotSyncService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +/** + * 定时将业务快照写入 BI_COMPREHENSIVE_SNAPSHOT / BI_WAREHOUSE_TRANSPORT_SNAPSHOT / BI_PLATFORM_SURVEILLANCE_SNAPSHOT / BI_OVERALL_OPERATION_SNAPSHOT / BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT / BI_TRANSPORT_OPERATION_ZONE_SNAPSHOT。 + *

默认关闭,需在配置中设置 {@code mhd.bi.snapshot-sync.enabled=true}。

+ */ +@Slf4j +@Component +@RequiredArgsConstructor +@ConditionalOnProperty(prefix = "mhd.bi.snapshot-sync", name = "enabled", havingValue = "true") +public class BiReportSnapshotSyncScheduler { + + private final BiReportSnapshotSyncService biReportSnapshotSyncService; + + @Scheduled(cron = "${mhd.bi.snapshot-sync.cron:0 0 2 * * ?}") + public void runSnapshotSync() { + log.info("BI 报表快照定时同步开始"); + biReportSnapshotSyncService.syncAllSnapshots(); + log.info("BI 报表快照定时同步结束"); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/service/BiReportSnapshotSyncService.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/service/BiReportSnapshotSyncService.java new file mode 100644 index 000000000..2f42acdf8 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/service/BiReportSnapshotSyncService.java @@ -0,0 +1,193 @@ +package com.mhd.bi.domain.biSnapshotSync.service; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.mhd.bi.domain.biSnapshotSync.repository.mapper.BiSnapshotWriteMapper; +import com.mhd.bi.domain.biSnapshotSync.support.BiSnapshotWeeklyRandomDataBuilder; +import com.mhd.bi.domain.biHkMacaoServiceZone.support.HkMacaoServiceZoneDemoData; +import com.mhd.bi.domain.biTransportOperationZone.support.TransportOperationZoneDemoData; +import com.mhd.bi.domain.biWarehouseOperationZone.support.WarehouseOperationZoneDemoData; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.WarehouseTransportSituationVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone.HkMacaoServiceZoneVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TransportOperationZoneVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.Random; + +/** + * BI 快照表定时同步(综合态势 / 仓储运输 / 月台监测 / 总体运营态势 / 仓储运营专区 / 运输运营专区 / 港澳服务专区)。 + *

当前(临时):{@code build*} 使用 {@link BiSnapshotWeeklyRandomDataBuilder},每次执行使用新的 {@link Random}, + * 故同一天多次手动触发、以及每次定时任务执行,生成的模拟数据均不相同(仍在基准 ±20% 内)。

+ *

后续改造:在各 {@code build*} 中改为查库/Feign 聚合真实业务并组装 VO。

+ */ +@Slf4j +@Service +@RequiredArgsConstructor +public class BiReportSnapshotSyncService { + + private static final String REMARK_SYNC = "scheduled snapshot-sync"; + + private final BiSnapshotWriteMapper biSnapshotWriteMapper; + private final ObjectMapper objectMapper; + + /** + * 依次同步各快照表;单表失败不影响其它表,只记日志。 + */ + public void syncAllSnapshots() { + syncComprehensiveSnapshot(); + syncWarehouseTransportSnapshot(); + syncPlatformSurveillanceSnapshot(); + syncOverallOperationSnapshot(); + syncWarehouseOperationZoneSnapshot(); + syncTransportOperationZoneSnapshot(); + syncHkMacaoServiceZoneSnapshot(); + } + + public void syncComprehensiveSnapshot() { + try { + ComprehensiveSituationVO vo = buildComprehensiveSnapshot(); + String json = objectMapper.writeValueAsString(vo); + int rows = biSnapshotWriteMapper.insertComprehensiveSnapshot(json, REMARK_SYNC); + if (rows < 1) { + log.warn("BI 综合态势快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_COMPREHENSIVE_SNAPSHOT 权限及库是否一致", rows); + } + log.info("BI 综合态势快照已写入, affectedRows={}", rows); + } catch (Exception e) { + log.error("BI 综合态势快照同步失败", e); + } + } + + public void syncWarehouseTransportSnapshot() { + try { + WarehouseTransportSituationVO vo = buildWarehouseTransportSnapshot(); + String json = objectMapper.writeValueAsString(vo); + int rows = biSnapshotWriteMapper.insertWarehouseTransportSnapshot(json, REMARK_SYNC); + if (rows < 1) { + log.warn("BI 仓储运输快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_WAREHOUSE_TRANSPORT_SNAPSHOT", rows); + } + log.info("BI 仓储运输快照已写入, affectedRows={}", rows); + } catch (Exception e) { + log.error("BI 仓储运输快照同步失败", e); + } + } + + public void syncPlatformSurveillanceSnapshot() { + try { + PlatformSurveillanceVO vo = buildPlatformSurveillanceSnapshot(); + String json = objectMapper.writeValueAsString(vo); + int rows = biSnapshotWriteMapper.insertPlatformSurveillanceSnapshot(json, REMARK_SYNC); + if (rows < 1) { + log.warn("BI 月台监测快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_PLATFORM_SURVEILLANCE_SNAPSHOT", rows); + } + log.info("BI 月台监测快照已写入, affectedRows={}", rows); + } catch (Exception e) { + log.error("BI 月台监测快照同步失败", e); + } + } + + public void syncOverallOperationSnapshot() { + try { + OverallOperationSituationVO vo = buildOverallOperationSnapshot(); + String json = objectMapper.writeValueAsString(vo); + int rows = biSnapshotWriteMapper.insertOverallOperationSnapshot(json, REMARK_SYNC); + if (rows < 1) { + log.warn("BI 总体运营态势快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_OVERALL_OPERATION_SNAPSHOT", rows); + } + log.info("BI 总体运营态势快照已写入, affectedRows={}", rows); + } catch (Exception e) { + log.error("BI 总体运营态势快照同步失败", e); + } + } + + public void syncWarehouseOperationZoneSnapshot() { + try { + WarehouseOperationZoneVO vo = buildWarehouseOperationZoneSnapshot(); + String json = objectMapper.writeValueAsString(vo); + int rows = biSnapshotWriteMapper.insertWarehouseOperationZoneSnapshot(json, REMARK_SYNC); + if (rows < 1) { + log.warn("BI 仓储运营专区快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT", rows); + } + log.info("BI 仓储运营专区快照已写入, affectedRows={}", rows); + } catch (Exception e) { + log.error("BI 仓储运营专区快照同步失败", e); + } + } + + /** + * TODO 业务落地:改为查询真实数据组装 VO。临时实现见 {@link BiSnapshotWeeklyRandomDataBuilder#overallOperation(Random)}。 + */ + protected OverallOperationSituationVO buildOverallOperationSnapshot() { + return BiSnapshotWeeklyRandomDataBuilder.overallOperation(new Random()); + } + + /** + * TODO 业务落地:改为查询真实数据组装 VO。临时实现见 {@link BiSnapshotWeeklyRandomDataBuilder#comprehensive(Random)}。 + */ + protected ComprehensiveSituationVO buildComprehensiveSnapshot() { + return BiSnapshotWeeklyRandomDataBuilder.comprehensive(new Random()); + } + + /** TODO 业务落地:改为查询真实数据。临时实现见 {@link BiSnapshotWeeklyRandomDataBuilder#warehouseTransport(Random)}。 */ + protected WarehouseTransportSituationVO buildWarehouseTransportSnapshot() { + return BiSnapshotWeeklyRandomDataBuilder.warehouseTransport(new Random()); + } + + /** TODO 业务落地:改为查询真实数据。临时实现见 {@link BiSnapshotWeeklyRandomDataBuilder#platformSurveillance(Random)}。 */ + protected PlatformSurveillanceVO buildPlatformSurveillanceSnapshot() { + return BiSnapshotWeeklyRandomDataBuilder.platformSurveillance(new Random()); + } + + /** + * TODO 业务落地:改为查询真实数据组装 VO。当前为 {@link WarehouseOperationZoneDemoData} 静态示例。 + */ + protected WarehouseOperationZoneVO buildWarehouseOperationZoneSnapshot() { + return WarehouseOperationZoneDemoData.build(); + } + + public void syncTransportOperationZoneSnapshot() { + try { + TransportOperationZoneVO vo = buildTransportOperationZoneSnapshot(); + String json = objectMapper.writeValueAsString(vo); + int rows = biSnapshotWriteMapper.insertTransportOperationZoneSnapshot(json, REMARK_SYNC); + if (rows < 1) { + log.warn("BI 运输运营专区快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_TRANSPORT_OPERATION_ZONE_SNAPSHOT", rows); + } + log.info("BI 运输运营专区快照已写入, affectedRows={}", rows); + } catch (Exception e) { + log.error("BI 运输运营专区快照同步失败", e); + } + } + + /** + * TODO 业务落地:改为查询真实数据组装 VO。当前为 {@link TransportOperationZoneDemoData} 静态示例。 + */ + protected TransportOperationZoneVO buildTransportOperationZoneSnapshot() { + return TransportOperationZoneDemoData.build(); + } + + public void syncHkMacaoServiceZoneSnapshot() { + try { + HkMacaoServiceZoneVO vo = buildHkMacaoServiceZoneSnapshot(); + String json = objectMapper.writeValueAsString(vo); + int rows = biSnapshotWriteMapper.insertHkMacaoServiceZoneSnapshot(json, REMARK_SYNC); + if (rows < 1) { + log.warn("BI 港澳服务专区快照 INSERT 影响行数为 {},请确认 NGWL_TEST_BI.BI_HK_MACAO_SERVICE_ZONE_SNAPSHOT", rows); + } + log.info("BI 港澳服务专区快照已写入, affectedRows={}", rows); + } catch (Exception e) { + log.error("BI 港澳服务专区快照同步失败", e); + } + } + + /** + * TODO 业务落地:改为查询真实数据组装 VO。当前为 {@link HkMacaoServiceZoneDemoData} 静态示例。 + */ + protected HkMacaoServiceZoneVO buildHkMacaoServiceZoneSnapshot() { + return HkMacaoServiceZoneDemoData.build(); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/support/BiSnapshotWeeklyRandomDataBuilder.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/support/BiSnapshotWeeklyRandomDataBuilder.java new file mode 100644 index 000000000..cb72d7b6a --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biSnapshotSync/support/BiSnapshotWeeklyRandomDataBuilder.java @@ -0,0 +1,437 @@ +package com.mhd.bi.domain.biSnapshotSync.support; + +import com.mhd.bi.domain.biReport.support.BiOnTimeDeliveryRateChartSupport; +import com.mhd.bi.domain.biReport.support.BiInventoryTurnoverTrendSupport; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.CustomerContributionRankVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.WarehouseTransportSituationVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.*; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.*; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Random; +import java.util.stream.Collectors; + +/** + * 临时:在基准 ±20% 内生成模拟快照(基准对齐 insert_bi_snapshots_alternate_row_dm)。 + * 调用 {@link #comprehensive(Random)} 等时须传入 {@link Random}:每次 {@code new Random()} 则每次结果不同; + * 若需可重复(如单测),可传入 {@link #randomForDate(java.time.LocalDate, long)} 等有固定种子的实例。 + */ +public final class BiSnapshotWeeklyRandomDataBuilder { + + private BiSnapshotWeeklyRandomDataBuilder() { + } + + /** + * 固定种子(如同日多次一致),适用于单元测试等;生产模拟同步请使用 {@code new Random()}。 + */ + public static Random randomForDate(LocalDate date, long salt) { + long epochDay = date.toEpochDay(); + salt = salt % 1000000007L; + return new Random(epochDay * 1_000_003L + salt * 7919L); + } + + /** + * @deprecated 请使用 {@link #randomForDate(LocalDate, long)};历史方法名保留兼容,现已按「自然日」而非 ISO 周。 + */ + @Deprecated + public static Random randomForWeekOf(LocalDate date, long salt) { + return randomForDate(date, salt); + } + + @Deprecated + public static Random randomForWeekOf(LocalDate date) { + return randomForDate(date, 0L); + } + + private static double jitterFactor(Random r) { + return 0.8 + r.nextDouble() * 0.4; + } + + static int jitterInt(int base, Random r) { + return (int) Math.round(base * jitterFactor(r)); + } + + static long jitterLong(long base, Random r) { + return Math.round(base * jitterFactor(r)); + } + + static double jitterDouble(double base, Random r) { + return Math.round(base * jitterFactor(r) * 10.0) / 10.0; + } + + static int jitterPercentInt(int base, Random r) { + return Math.min(100, Math.max(0, jitterInt(base, r))); + } + + private static double jitterPercentDouble(double base, Random r) { + double v = base * jitterFactor(r); + return Math.min(100.0, Math.max(0.0, Math.round(v * 10.0) / 10.0)); + } + + private static List jitterIntArray(int[] arr, Random r) { + return Arrays.stream(arr).map(v -> jitterInt(v, r)).boxed().collect(Collectors.toList()); + } + + public static ComprehensiveSituationVO comprehensive(Random r) { + return ComprehensiveSituationVO.builder() + .valueAddedServiceIncome(jitterLong(Baseline.COMP_INCOME, r)) + .inventoryTurnover(Math.max(1, jitterInt(Baseline.COMP_TURNOVER, r))) + .orderCount(Math.max(0, jitterInt(Baseline.COMP_ORDERS, r))) + .vehicleUtilizationRate(jitterPercentDouble(Baseline.COMP_VEHICLE_PCT, r)) + .fuelConsumptionPerHundredKm(Math.max(1, jitterInt(Baseline.COMP_FUEL, r))) + .incomeTrend(jitterIntArray(Baseline.COMP_INCOME_TREND, r)) + .build(); + } + + public static WarehouseTransportSituationVO warehouseTransport(Random r) { + List dock = new ArrayList<>(); + for (int v : Baseline.W_DOCK) { + dock.add(jitterPercentInt(v, r)); + } + List custAmt = new ArrayList<>(); + for (int v : Baseline.W_CUST_AMT) { + custAmt.add(jitterInt(v, r)); + } + return WarehouseTransportSituationVO.builder() + .warehouseDistributionOnTimeRate(jitterPercentDouble(Baseline.W_WH_RATE, r)) + .currentYearOrders(jitterLong(Baseline.W_YEAR_ORD, r)) + .currentQuarterOrders(Math.max(0, jitterInt(Baseline.W_Q_ORD, r))) + .currentMonthOrders(Math.max(0, jitterInt(Baseline.W_M_ORD, r))) + .warehouseOrderTrend(jitterIntArray(Baseline.W_WH_TREND, r)) + .throughput(jitterIntArray(Baseline.W_THROUGH, r)) + .currentMonthTurnoverRate(Math.max(1, jitterInt(Baseline.W_M_TOR, r))) + .currentYearTurnoverRate(Math.max(1, jitterInt(Baseline.W_Y_TOR, r))) + .inventoryTurnoverTrend(jitterIntArray(Baseline.W_INV_TR, r)) + .totalTransportIncome(Math.max(0, jitterInt(Baseline.W_INCOME, r))) + .orderCount(Math.max(0, jitterInt(Baseline.W_ORD, r))) + .transportTrips(Math.max(0, jitterInt(Baseline.W_TRIPS, r))) + .annualTransportVolume(Math.max(0, jitterInt(Baseline.W_VOL, r))) + .transportOrderTotal(Math.max(0, jitterInt(Baseline.W_TOT, r))) + .crossBorderTransportOrder(Math.max(0, jitterInt(Baseline.W_CB, r))) + .domesticTransportOrder(Math.max(0, jitterInt(Baseline.W_DM, r))) + .transportTripsTrend(jitterIntArray(Baseline.W_TRIP_TR, r)) + .vehicleUtilizationRate(jitterIntArray(Baseline.W_VEH_UT, r)) + .warehouseDockSyncRate(dock) + .customerContributionRank(CustomerContributionRankVO.builder() + .customerName(Arrays.asList(Baseline.W_CUST_NAMES)) + .customerAmount(custAmt) + .build()) + .build(); + } + + public static PlatformSurveillanceVO platformSurveillance(Random r) { + List vehicles = new ArrayList<>(); + for (String[] row : Baseline.P_PLATES) { + int dur = jitterInt(Integer.parseInt(row[3]), r); + vehicles.add(PlatformVehicleItemVO.builder() + .plateNumber(row[0]) + .status(row[1]) + .platformId(row[2]) + .platformDuration(Math.max(1, dur)) + .build()); + } + + EfficiencyStatisticsVO eff = EfficiencyStatisticsVO.builder() + .entryOvertimeRate(jitterPercentInt(Baseline.P_ENT_OT, r)) + .overtimeCount(Math.max(0, jitterInt(Baseline.P_OT_CNT, r))) + .platformOnTimeRate(jitterPercentInt(Baseline.P_PL_OT, r)) + .avgPlatformDuration(Math.max(0.1, jitterDouble(Baseline.P_AVG_PL, r))) + .yardOnTimeRate(jitterPercentInt(Baseline.P_YD_OT, r)) + .avgYardDuration(Math.max(0.1, jitterDouble(Baseline.P_AVG_YD, r))) + .build(); + + PlatformOverviewVO overview = PlatformOverviewVO.builder() + .totalPlatforms(Math.max(1, jitterInt(Baseline.P_TOT_PL, r))) + .currentOccupancyRate(jitterPercentInt(Baseline.P_OCC, r)) + .operatingPlatforms(Math.max(0, jitterInt(Baseline.P_OP, r))) + .todayTasks(Math.max(0, jitterInt(Baseline.P_TASKS, r))) + .build(); + + VehicleStatusVO vs = VehicleStatusVO.builder() + .todayReservedVehicles(Math.max(0, jitterInt(Baseline.P_RESV, r))) + .notCheckedIn(Math.max(0, jitterInt(Baseline.P_NC, r))) + .operatingVehicles(Math.max(0, jitterInt(Baseline.P_OPV, r))) + .completedVehicles(Math.max(0, jitterInt(Baseline.P_DONE, r))) + .build(); + + List avgTrend = new ArrayList<>(); + for (int i = 0; i < Baseline.P_MO_LABELS.length; i++) { + avgTrend.add(AvgOperationDurationTrendItemVO.builder() + .month(Baseline.P_MO_LABELS[i]) + .yardDuration(Math.max(0.0, jitterDouble(Baseline.P_YD_D[i], r))) + .platformDuration(Math.max(0.0, jitterDouble(Baseline.P_PL_D[i], r))) + .build()); + } + + MonthlyTaskStatisticsVO monthly = MonthlyTaskStatisticsVO.builder() + .taskTotal(Math.max(0, jitterInt(Baseline.P_MT_TOT, r))) + .taskTotalYoY(jitterInt(Baseline.P_MT_YOY, r)) + .avgTaskDuration(Math.max(0.1, jitterDouble(Baseline.P_MT_AVG, r))) + .avgDurationYoY(jitterInt(Baseline.P_MT_AVG_YOY, r)) + .taskCompletionRate(jitterPercentInt(Baseline.P_MT_CR, r)) + .completionRateYoY(jitterInt(Baseline.P_MT_CR_YOY, r)) + .build(); + + List load = new ArrayList<>(); + for (int i = 0; i < Baseline.P_LOAD_T.length; i++) { + load.add(TaskLoadItemVO.builder() + .time(Baseline.P_LOAD_T[i]) + .taskCount(Math.max(0, jitterInt(Baseline.P_LOAD_C[i], r))) + .build()); + } + + List alarmTrend = new ArrayList<>(); + for (int i = 0; i < Baseline.P_AL_D.length; i++) { + alarmTrend.add(PlatformAlarmTrendItemVO.builder() + .date(Baseline.P_AL_D[i]) + .alarmCount(Math.max(0, jitterInt(Baseline.P_AL_C[i], r))) + .build()); + } + + List typeCounts = new ArrayList<>(); + for (int i = 0; i < Baseline.P_TT_TYPES.length; i++) { + typeCounts.add(TaskTypeCountItemVO.builder() + .type(Baseline.P_TT_TYPES[i]) + .count(Math.max(0, jitterInt(Baseline.P_TT_CNT[i], r))) + .build()); + } + + int todayAl = Math.max(0, jitterInt(Baseline.P_AL_TOT, r)); + int handled = Math.max(0, jitterInt(Baseline.P_AL_H, r)); + handled = Math.min(handled, todayAl); + int unhandled = Math.max(0, todayAl - handled); + + List dist = new ArrayList<>(); + for (int i = 0; i < Baseline.P_DIST_T.length; i++) { + dist.add(PlatformAlarmDistItemVO.builder() + .type(Baseline.P_DIST_T[i]) + .count(Math.max(0, jitterInt(Baseline.P_DIST_C[i], r))) + .build()); + } + + return PlatformSurveillanceVO.builder() + .vehicles(vehicles) + .efficiencyStatistics(eff) + .platformOverview(overview) + .vehicleStatus(vs) + .avgOperationDurationTrend(avgTrend) + .monthlyTaskStatistics(monthly) + .taskLoadStatistics(load) + .platformAlarmTrend(alarmTrend) + .taskTypeStatistics(TaskTypeStatisticsVO.builder() + .totalTasks(Math.max(0, jitterInt(Baseline.P_TT_TOT, r))) + .taskTypes(typeCounts) + .build()) + .platformAlarmStatistics(PlatformAlarmStatisticsVO.builder() + .todayAlarmTotal(todayAl) + .handled(handled) + .unhandled(unhandled) + .build()) + .platformAlarmDistribution(dist) + .build(); + } + + /** + * 总体运营态势:与 {@code create_bi_overall_operation_dm.sql} 内置 PAYLOAD_JSON 一致(不随 Random 抖动)。 + */ + public static OverallOperationSituationVO overallOperation(Random r) { + return overallReferenceDashboard(); + } + + /** + * 与产品约定返回值示例一致,供快照同步与联调。 + * 左侧 {@code warehouse.turnover_rate_trend} 库存周转率趋势;右下角 {@code transport.on_time_rate} 准时配送率。 + */ + public static OverallOperationSituationVO overallReferenceDashboard() { + return OverallOperationSituationVO.builder() + .updateTime("2026-05-11 10:55:00") + .warehouse(OverallWarehouseOperationVO.builder() + .orderStatistics(OverallWarehouseOrderStatisticVO.builder() + .processedOrderCount(6767L) + .changePercent(5.4) + .build()) + .coreCapability(OverallWarehouseCoreCapabilityVO.builder() + .totalWarehouses(10) + .selfOperatedCount(4) + .outsourcedCount(6) + .operatingArea(28) + .areaUnit("万m²") + .build()) + .orderTrendByMonth(Arrays.asList( + OverallWarehouseOrderTrendMonthVO.builder().monthLabel("1月").inboundOrders(700L).outboundOrders(450L).build(), + OverallWarehouseOrderTrendMonthVO.builder().monthLabel("2月").inboundOrders(900L).outboundOrders(550L).build(), + OverallWarehouseOrderTrendMonthVO.builder().monthLabel("3月").inboundOrders(800L).outboundOrders(480L).build(), + OverallWarehouseOrderTrendMonthVO.builder().monthLabel("4月").inboundOrders(550L).outboundOrders(300L).build(), + OverallWarehouseOrderTrendMonthVO.builder().monthLabel("5月").inboundOrders(750L).outboundOrders(350L).build(), + OverallWarehouseOrderTrendMonthVO.builder().monthLabel("6月").inboundOrders(580L).outboundOrders(320L).build(), + OverallWarehouseOrderTrendMonthVO.builder().monthLabel("7月").inboundOrders(780L).outboundOrders(400L).build() + )) + .throughputTrendByMonth(Arrays.asList( + OverallThroughputTrendMonthVO.builder().monthLabel("11月").throughput(10).build(), + OverallThroughputTrendMonthVO.builder().monthLabel("12月").throughput(14).build(), + OverallThroughputTrendMonthVO.builder().monthLabel("1月").throughput(23).build(), + OverallThroughputTrendMonthVO.builder().monthLabel("2月").throughput(22).build(), + OverallThroughputTrendMonthVO.builder().monthLabel("3月").throughput(17).build(), + OverallThroughputTrendMonthVO.builder().monthLabel("4月").throughput(18).build(), + OverallThroughputTrendMonthVO.builder().monthLabel("5月").throughput(9).build() + )) + .bizStatistics(OverallWarehouseBizStatisticVO.builder() + .customerCount(582L) + .coverageArea("覆盖港珠澳") + .annualThroughput(26) + .throughputUnit("万吨") + .throughputGrowth(8.5) + .build()) + .turnoverRateTrend(BiInventoryTurnoverTrendSupport.defaultTrend()) + .build()) + .map(OverallMapSectionVO.builder() + .nodes(Arrays.asList( + OverallMapNodeVO.builder() + .type("headquarters") + .name("总部") + .location(Arrays.asList(113.55, 22.25, 0.0)) + .build(), + OverallMapNodeVO.builder() + .type("businessUnit") + .name("业务单元") + .location(Arrays.asList(113.55, 22.20, 0.0)) + .tooltip(OverallMapTooltipVO.builder() + .title("通宇业务情况分析") + .data(Arrays.asList( + OverallMapTooltipDataItemVO.builder().label("在途车辆").value(3).build(), + OverallMapTooltipDataItemVO.builder().label("在途订单").value(11).build() + )) + .build()) + .build(), + OverallMapNodeVO.builder() + .type("warehouse") + .name("通宇保税仓") + .location(Arrays.asList(114.16, 22.28, 0.0)) + .tooltip(OverallMapTooltipVO.builder() + .title("通宇保税仓情况分析") + .data(Arrays.asList( + OverallMapTooltipDataItemVO.builder().label("入库作业").value(1).build(), + OverallMapTooltipDataItemVO.builder().label("出库作业").value(1).build() + )) + .build()) + .build() + )) + .build()) + .transport(OverallTransportOperationVO.builder() + .orderSummary(OverallTransportOrderSummaryVO.builder() + .processedOrderCount(5240L) + .changePercent(6.2) + .annualFreight(2.6) + .freightUnit("万吨") + .freightGrowth(8.5) + .build()) + .capacityStatistics(OverallTransportCapacityVO.builder() + .totalVehicles(320) + .ownedVehicles(100) + .socialVehicles(220) + .totalDrivers(400) + .ownedDrivers(160) + .socialDrivers(240) + .build()) + .orderTrendByMonth(Arrays.asList( + OverallTransportOrderTrendMonthVO.builder().monthLabel("1月").count(100L).build(), + OverallTransportOrderTrendMonthVO.builder().monthLabel("2月").count(120L).build(), + OverallTransportOrderTrendMonthVO.builder().monthLabel("3月").count(230L).build(), + OverallTransportOrderTrendMonthVO.builder().monthLabel("4月").count(110L).build(), + OverallTransportOrderTrendMonthVO.builder().monthLabel("5月").count(150L).build(), + OverallTransportOrderTrendMonthVO.builder().monthLabel("6月").count(200L).build() + )) + .freightTrendByMonth(Arrays.asList( + OverallTransportFreightTrendMonthVO.builder().monthLabel("1月").freight(80).build(), + OverallTransportFreightTrendMonthVO.builder().monthLabel("2月").freight(110).build(), + OverallTransportFreightTrendMonthVO.builder().monthLabel("3月").freight(240).build(), + OverallTransportFreightTrendMonthVO.builder().monthLabel("4月").freight(100).build(), + OverallTransportFreightTrendMonthVO.builder().monthLabel("5月").freight(140).build(), + OverallTransportFreightTrendMonthVO.builder().monthLabel("6月").freight(190).build() + )) + .orderDistribution(OverallTransportModeDistributionVO.builder() + .crossBorder(2400L) + .domestic(2300L) + .build()) + .onTimeRate(BiOnTimeDeliveryRateChartSupport.defaultChart()) + .build()) + .build(); + } + + /** + * 基准与 SQL 脚本 alternate sample 一致 + */ + private static final class Baseline { + static final long COMP_INCOME = 6_185_000L; + static final int COMP_TURNOVER = 18; + static final int COMP_ORDERS = 50_120; + static final double COMP_VEHICLE_PCT = 93.2; + static final int COMP_FUEL = 12; + static final int[] COMP_INCOME_TREND = {195, 248, 302, 415, 366, 488}; + + static final double W_WH_RATE = 96.8; + static final long W_YEAR_ORD = 612_800L; + static final int W_Q_ORD = 198_600; + static final int W_M_ORD = 28_440; + static final int[] W_WH_TREND = {82, 91, 77, 68, 103, 89}; + static final int[] W_THROUGH = {18, 11, 26, 15, 9, 21}; + static final int W_M_TOR = 4; + static final int W_Y_TOR = 5; + static final int[] W_INV_TR = {16, 19, 11, 24, 18, 14}; + static final int W_INCOME = 7_230; + static final int W_ORD = 912; + static final int W_TRIPS = 601; + static final int W_VOL = 22; + static final int W_TOT = 5_100; + static final int W_CB = 2_680; + static final int W_DM = 2_420; + static final int[] W_TRIP_TR = {120, 95, 210, 155, 88, 175}; + static final int[] W_VEH_UT = {520, 410, 380, 500, 590, 480}; + static final int[] W_DOCK = {96, 91, 82, 75, 99, 88}; + static final String[] W_CUST_NAMES = {"华东冷链", "华南汽配", "西南快消", "华北家电", "跨境达"}; + static final int[] W_CUST_AMT = {198, 172, 205, 189, 221}; + + static final String[][] P_PLATES = { + {"粤A12345", "待入场", "#12", "88"}, + {"闽D99887", "作业中", "#07", "142"}, + {"粤B66220", "已离园", "#29", "201"} + }; + static final int P_ENT_OT = 42; + static final int P_OT_CNT = 28; + static final int P_PL_OT = 88; + static final double P_AVG_PL = 3.8; + static final int P_YD_OT = 91; + static final double P_AVG_YD = 5.2; + static final int P_TOT_PL = 58; + static final int P_OCC = 62; + static final int P_OP = 31; + static final int P_TASKS = 418; + static final int P_RESV = 2_850; + static final int P_NC = 920; + static final int P_OPV = 1_180; + static final int P_DONE = 1_420; + static final String[] P_MO_LABELS = {"5月", "6月", "7月"}; + static final double[] P_YD_D = {12, 16, 19}; + static final double[] P_PL_D = {19, 21, 18}; + static final int P_MT_TOT = 1_820; + static final int P_MT_YOY = 8; + static final double P_MT_AVG = 5.1; + static final int P_MT_AVG_YOY = -3; + static final int P_MT_CR = 97; + static final int P_MT_CR_YOY = 2; + static final String[] P_LOAD_T = {"8时", "10时", "14时"}; + static final int[] P_LOAD_C = {45, 120, 156}; + static final String[] P_AL_D = {"1日", "2日", "3日"}; + static final int[] P_AL_C = {6, 9, 4}; + static final int P_TT_TOT = 5_100; + static final String[] P_TT_TYPES = {"干线发车", "城配到仓", "跨境保税"}; + static final int[] P_TT_CNT = {2_100, 1_800, 1_200}; + static final int P_AL_TOT = 9; + static final int P_AL_H = 8; + static final String[] P_DIST_T = {"仓储-温湿度", "月台-停留超时", "园区-证件异常"}; + static final int[] P_DIST_C = {120, 95, 77}; + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biTransportOperationZone/repository/mapper/BiTransportOperationZoneReportMapper.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biTransportOperationZone/repository/mapper/BiTransportOperationZoneReportMapper.java new file mode 100644 index 000000000..00fc66e2b --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biTransportOperationZone/repository/mapper/BiTransportOperationZoneReportMapper.java @@ -0,0 +1,21 @@ +package com.mhd.bi.domain.biTransportOperationZone.repository.mapper; + +import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TransportOperationZoneVO; +import org.apache.ibatis.annotations.Param; + +/** + * 运输运营专区:取 NGWL_TEST_BI.BI_TRANSPORT_OPERATION_ZONE_SNAPSHOT 最新 PAYLOAD_JSON 并解析。 + */ +public interface BiTransportOperationZoneReportMapper { + + String selectLatestPayloadJson(@Param("organizationName") String organizationName); + + default TransportOperationZoneVO loadTransportOperationZone(String organizationName) { + return BiReportSnapshotMapperSupport.parsePayload( + selectLatestPayloadJson(organizationName), + TransportOperationZoneVO.class, + BiReportSnapshotMapperSupport::emptyTransportOperationZone, + "运输运营专区"); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biTransportOperationZone/service/BiTransportOperationZoneReportService.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biTransportOperationZone/service/BiTransportOperationZoneReportService.java new file mode 100644 index 000000000..0eb181a5e --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biTransportOperationZone/service/BiTransportOperationZoneReportService.java @@ -0,0 +1,25 @@ +package com.mhd.bi.domain.biTransportOperationZone.service; + +import com.mhd.bi.domain.biTransportOperationZone.repository.mapper.BiTransportOperationZoneReportMapper; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TransportOperationZoneVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 南光物流业务经营分析 · 运输运营专区 + */ +@Service +public class BiTransportOperationZoneReportService { + + @Resource + private BiTransportOperationZoneReportMapper biTransportOperationZoneReportMapper; + + /** + * @param organizationName 企业运营/组织名称(模糊匹配),为空时取全表最新一条 + */ + public TransportOperationZoneVO loadTransportOperationZone(String organizationName) { + return biTransportOperationZoneReportMapper.loadTransportOperationZone(StringUtils.trimToNull(organizationName)); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biTransportOperationZone/support/TransportOperationZoneDemoData.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biTransportOperationZone/support/TransportOperationZoneDemoData.java new file mode 100644 index 000000000..b1dfb6ad9 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biTransportOperationZone/support/TransportOperationZoneDemoData.java @@ -0,0 +1,204 @@ +package com.mhd.bi.domain.biTransportOperationZone.support; + +import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.*; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * 运输运营专区快照演示数据(对齐大屏示例 JSON;后续可改为真实聚合)。 + */ +public final class TransportOperationZoneDemoData { + + private static final DateTimeFormatter UPDATE_TIME_FMT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + private TransportOperationZoneDemoData() { + } + + public static TransportOperationZoneVO build() { + List orderTypeData = Arrays.asList( + TrOrderTypeMonthItemVO.builder().month("1月").crossBorder(30).domestic(25).build(), + TrOrderTypeMonthItemVO.builder().month("2月").crossBorder(40).domestic(35).build(), + TrOrderTypeMonthItemVO.builder().month("3月").crossBorder(20).domestic(30).build(), + TrOrderTypeMonthItemVO.builder().month("4月").crossBorder(35).domestic(40).build(), + TrOrderTypeMonthItemVO.builder().month("5月").crossBorder(50).domestic(45).build(), + TrOrderTypeMonthItemVO.builder().month("6月").crossBorder(60).domestic(55).build(), + TrOrderTypeMonthItemVO.builder().month("7月").crossBorder(70).domestic(65).build() + ); + + List tripTrend = Arrays.asList( + point("1月", 120), point("2月", 150), point("3月", 220), + point("4月", 100), point("5月", 140), point("6月", 180) + ); + + List orderTrend = Arrays.asList( + point("1月", 100), point("2月", 140), point("3月", 230), + point("4月", 100), point("5月", 140), point("6月", 190) + ); + + List volumeTrend = Arrays.asList( + point("1月", 95), point("2月", 90), point("3月", 80), + point("4月", 65), point("5月", 92), point("6月", 88) + ); + + List onTimeRate = Arrays.asList( + point("1月", 98), point("2月", 96), point("3月", 85), + point("4月", 70), point("5月", 92), point("6月", 90) + ); + + List vehicleUtil = Arrays.asList( + point("1月", 600), point("2月", 460), point("3月", 390), + point("4月", 470), point("5月", 450), point("6月", 620) + ); + + List enterpriseList = Arrays.asList( + row("NO.1", "通宇", "268.25万", "2400单", 95), + row("NO.2", "南岐", "258.15万", "1800单", 98), + row("NO.3", "谷丰", "242.32万", "1200单", 13), + row("NO.4", "仓码", "231.54万", "800单", 12), + row("NO.5", "横琴", "220.90万", "567单", 15) + ); + + List cargoItems = Arrays.asList( + TrCargoCategoryItemVO.builder().name("危化").value(25).color("green").build(), + TrCargoCategoryItemVO.builder().name("普货").value(25).color("blue").build(), + TrCargoCategoryItemVO.builder().name("冻品").value(50).color("orange").build() + ); + + List cargoTypeDetails = Arrays.asList( + TrCargoTypeDetailVO.builder().typeCode("2").name("第2类 气体").percentage("65%").color("#1890FF").build(), + TrCargoTypeDetailVO.builder().typeCode("3").name("第3类 易燃液体").percentage("25%").color("#52C41A").build(), + TrCargoTypeDetailVO.builder().typeCode("8").name("第8类 腐蚀性物质").percentage("15%").color("#FAAD14").build() + ); + + TrMapNodeVO mapNode = TrMapNodeVO.builder() + .id(1L) + .name("通宇作业车辆") + .location(Arrays.asList(113.55, 22.25)) + .status("working") + .detail(TrMapNodeDetailVO.builder() + .title("作业详情") + .licensePlate("粤A88888") + .businessUnit("通宇") + .loadingPlace("珠海") + .destination("澳门") + .currentLocation("珠海市") + .updateTime("2026年4月15日 17:52") + .build()) + .build(); + + return TransportOperationZoneVO.builder() + .updateTime(LocalDateTime.now().format(UPDATE_TIME_FMT)) + .dashboardTitle("南光物流业务经营分析") + .activeTab("运输运营专区") + .orderStatistics(TrOrderStatisticsVO.builder() + .title("订单统计") + .total(4361L) + .trend("+12.5%") + .build()) + .transportStats(TrTransportStatsVO.builder() + .title("运输统计") + .tripCount(240) + .volume(2.6) + .volumeUnit("万吨") + .build()) + .orderTypeChart(TrOrderTypeChartVO.builder() + .title("订单类型") + .type("area") + .data(orderTypeData) + .build()) + .tripCountTrend(chart("车次趋势", "line", null, tripTrend)) + .orderTrend(chart("订单趋势", "area", "单", orderTrend)) + .volumeTrend(chart("货量趋势", "area", "%", volumeTrend)) + .map(TrVehicleMapVO.builder() + .title("车辆实时监控") + .legend(TrMapLegendVO.builder().idle(80).working(200).build()) + .nodes(Collections.singletonList(mapNode)) + .build()) + .enterpriseOperation(TrEnterpriseOperationVO.builder() + .title("企业运营") + .columns(Arrays.asList("序号", "企业名称", "货运量", "处理单量", "准时配送率")) + .list(enterpriseList) + .build()) + .capacityStatus(TrCapacityStatusVO.builder() + .title("运力情况") + .staff(capacityCount(718, 0, 0)) + .vehicles(capacityCount(507, 0, 0)) + .build()) + .cargoCategory(TrCargoCategoryVO.builder() + .title("货物品类") + .totalOrders("1000单") + .data(cargoItems) + .build()) + .onTimeRate(chart("准时配送率", "line", "%", onTimeRate)) + .vehicleUtilization(TrBarChartVO.builder() + .title("出车利用率") + .unit("车次/辆") + .data(vehicleUtil) + .build()) + .transportSummary(TrTransportSummaryVO.builder() + .title("运输统计") + .safeMileage("240万公里") + .avgDeliveryTime("平均4小时送达") + .build()) + .capacityStats(TrCapacityStatsVO.builder() + .vehicles(capacityStatItem(280, "辆", "车辆")) + .drivers(capacityStatItem(360, "人", "驾驶员")) + .escorts(capacityStatItem(56, "人", "押运员")) + .build()) + .cargoTypeDistribution(TrCargoTypeDistributionVO.builder() + .title("货物类型分布") + .totalOrders(1000) + .totalUnit("单") + .details(cargoTypeDetails) + .build()) + .freshOrderStats(sampleBrandOrderStats()) + .vitasoyOrderStats(sampleBrandOrderStats()) + .build(); + } + + private static TrBrandOrderStatsVO sampleBrandOrderStats() { + return TrBrandOrderStatsVO.builder() + .plannedDelivery(orderStatMetric(2135, "单", "计划配送")) + .orderQuantity(orderStatMetric(228, "万吨", "订单数量")) + .vehiclesInTransit(orderStatMetric(84, "辆", "在途车辆")) + .completedDelivery(TrOrderStatTextMetricVO.builder() + .value("22.8%").unit("").label("完成配送").build()) + .overtimeDelivery(orderStatMetric(228, "单", "超时配送")) + .onTimeRate(TrOrderStatRateMetricVO.builder() + .value("85%").trend("+30%").label("准时配送率").build()) + .build(); + } + + private static TrOrderStatMetricVO orderStatMetric(int value, String unit, String label) { + return TrOrderStatMetricVO.builder().value(value).unit(unit).label(label).build(); + } + + private static TrCapacityStatItemVO capacityStatItem(int value, String unit, String label) { + return TrCapacityStatItemVO.builder().value(value).unit(unit).label(label).build(); + } + + private static TrMonthValuePointVO point(String month, int value) { + return TrMonthValuePointVO.builder().month(month).value(value).build(); + } + + private static TrTypedChartVO chart(String title, String type, String unit, List data) { + return TrTypedChartVO.builder().title(title).type(type).unit(unit).data(data).build(); + } + + private static TrCapacityCountVO capacityCount(int total, int todayNew, int yesterdayNew) { + return TrCapacityCountVO.builder() + .total(total).todayNew(todayNew).yesterdayNew(yesterdayNew).build(); + } + + private static TrEnterpriseRowVO row(String rank, String name, String volume, + String processedOrders, int onTimeRate) { + return TrEnterpriseRowVO.builder() + .rank(rank).name(name).volume(volume) + .processedOrders(processedOrders).onTimeRate(onTimeRate) + .build(); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseOperationZone/repository/mapper/BiWarehouseOperationZoneReportMapper.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseOperationZone/repository/mapper/BiWarehouseOperationZoneReportMapper.java new file mode 100644 index 000000000..5ba495eae --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseOperationZone/repository/mapper/BiWarehouseOperationZoneReportMapper.java @@ -0,0 +1,21 @@ +package com.mhd.bi.domain.biWarehouseOperationZone.repository.mapper; + +import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO; +import org.apache.ibatis.annotations.Param; + +/** + * 仓储运营专区:取 NGWL_TEST_BI.BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT 最新 PAYLOAD_JSON 并解析。 + */ +public interface BiWarehouseOperationZoneReportMapper { + + String selectLatestPayloadJson(@Param("organizationName") String organizationName); + + default WarehouseOperationZoneVO loadWarehouseOperationZone(String organizationName) { + return BiReportSnapshotMapperSupport.parsePayload( + selectLatestPayloadJson(organizationName), + WarehouseOperationZoneVO.class, + BiReportSnapshotMapperSupport::emptyWarehouseOperationZone, + "仓储运营专区"); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseOperationZone/service/BiWarehouseOperationZoneReportService.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseOperationZone/service/BiWarehouseOperationZoneReportService.java new file mode 100644 index 000000000..1a1d3fcc0 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseOperationZone/service/BiWarehouseOperationZoneReportService.java @@ -0,0 +1,25 @@ +package com.mhd.bi.domain.biWarehouseOperationZone.service; + +import com.mhd.bi.domain.biWarehouseOperationZone.repository.mapper.BiWarehouseOperationZoneReportMapper; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 南光物流业务经营分析 · 仓储运营专区 + */ +@Service +public class BiWarehouseOperationZoneReportService { + + @Resource + private BiWarehouseOperationZoneReportMapper biWarehouseOperationZoneReportMapper; + + /** + * @param organizationName 企业运营/组织名称(模糊匹配),为空时取全表最新一条 + */ + public WarehouseOperationZoneVO loadWarehouseOperationZone(String organizationName) { + return biWarehouseOperationZoneReportMapper.loadWarehouseOperationZone(StringUtils.trimToNull(organizationName)); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseOperationZone/support/WarehouseOperationZoneDemoData.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseOperationZone/support/WarehouseOperationZoneDemoData.java new file mode 100644 index 000000000..b4c4c1b37 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseOperationZone/support/WarehouseOperationZoneDemoData.java @@ -0,0 +1,210 @@ +package com.mhd.bi.domain.biWarehouseOperationZone.support; + +import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.*; + +import java.util.Arrays; +import java.util.List; + +/** + * 仓储运营专区快照演示数据(对齐大屏示例 JSON;后续可改为真实聚合)。 + */ +public final class WarehouseOperationZoneDemoData { + + private WarehouseOperationZoneDemoData() { + } + + public static WarehouseOperationZoneVO build() { + List throughputTrend = Arrays.asList( + WhThroughputMonthItemVO.builder().month("11月").value(10).build(), + WhThroughputMonthItemVO.builder().month("12月").value(14).build(), + WhThroughputMonthItemVO.builder().month("1月").value(22).build(), + WhThroughputMonthItemVO.builder().month("2月").value(21).build(), + WhThroughputMonthItemVO.builder().month("3月").value(13).build(), + WhThroughputMonthItemVO.builder().month("4月").value(16).build(), + WhThroughputMonthItemVO.builder().month("5月").value(8).build() + ); + + List areaDetails = Arrays.asList( + WhAreaDistributionDetailVO.builder().name("普通仓出租面积").value(9400).unit("m²").build(), + WhAreaDistributionDetailVO.builder().name("自动化立库出租面积").value(9400).unit("m²").build(), + WhAreaDistributionDetailVO.builder().name("闲置面积").value(9400).unit("m²").build(), + WhAreaDistributionDetailVO.builder().name("冷冻仓出租面积").value(9400).unit("m²").build() + ); + + List capTrendData = Arrays.asList( + WhMonthRatePointVO.builder().month("1月").rate(20).build(), + WhMonthRatePointVO.builder().month("2月").rate(30).build(), + WhMonthRatePointVO.builder().month("3月").rate(55).build(), + WhMonthRatePointVO.builder().month("4月").rate(40).build(), + WhMonthRatePointVO.builder().month("5月").rate(45).build(), + WhMonthRatePointVO.builder().month("6月").rate(60).build(), + WhMonthRatePointVO.builder().month("7月").rate(50).build() + ); + + List orderTrend = Arrays.asList( + WhMonthRatePointVO.builder().month("1月").rate(100).build(), + WhMonthRatePointVO.builder().month("2月").rate(90).build(), + WhMonthRatePointVO.builder().month("3月").rate(75).build(), + WhMonthRatePointVO.builder().month("4月").rate(70).build(), + WhMonthRatePointVO.builder().month("5月").rate(95).build(), + WhMonthRatePointVO.builder().month("6月").rate(85).build() + ); + + List turnoverData = Arrays.asList( + WhMonthRatePointVO.builder().month("11月").rate(10).build(), + WhMonthRatePointVO.builder().month("12月").rate(15).build(), + WhMonthRatePointVO.builder().month("1月").rate(22).build(), + WhMonthRatePointVO.builder().month("2月").rate(20).build(), + WhMonthRatePointVO.builder().month("3月").rate(12).build(), + WhMonthRatePointVO.builder().month("4月").rate(16).build() + ); + + List serviceCapacity = Arrays.asList( + WhServiceCapacityRowVO.builder().rank(1).name("君华仓").totalArea("1.2万m²").processed("2,400单").throughput("2.2万吨").build(), + WhServiceCapacityRowVO.builder().rank(2).name("通宇仓").totalArea("1.2万m²").processed("1,800单").throughput("1.1万吨").build(), + WhServiceCapacityRowVO.builder().rank(3).name("横琴仓").totalArea("1.2万m²").processed("1,200单").throughput("1.5万吨").build(), + WhServiceCapacityRowVO.builder().rank(4).name("新南仓").totalArea("1.2万m²").processed("800单").throughput("2.1万吨").build(), + WhServiceCapacityRowVO.builder().rank(5).name("谷丰仓").totalArea("1.2万m²").processed("567单").throughput("1.8万吨").build() + ); + + return WarehouseOperationZoneVO.builder() + .warehouseName("新南仓") + .updateTime("2026-04-16 18:41:00") + .orderSummary(WhOrderSummaryVO.builder() + .totalCount("03600") + .inboundOrders(orderSummaryItem("入库单", 2298)) + .outboundOrders(orderSummaryItem("出库单", 1129)) + .operationOrders(orderSummaryItem("作业单", 345)) + .build()) + .coldStorageStats(WhColdStorageStatsVO.builder() + .revenueShare(coldMetric("64.8%", "+30%")) + .utilizationRate(coldMetric("28.6%", "+30%")) + .damageRate(coldMetric("1.6%", "+30%")) + .build()) + .temperatureExceptions(sampleTemperatureExceptions()) + .storageOverview(WhStorageOverviewVO.builder() + .title("仓储面积") + .value(10) + .unit("万m²") + .subText("覆盖仓库数8个") + .build()) + .operationStats(WhOperationStatsVO.builder() + .title("年吞吐量") + .value(26) + .unit("万吨") + .growthRate("8.5%") + .trend("up") + .build()) + .businessPlanning(WhBusinessPlanningVO.builder() + .generalWarehouse(43000) + .coldStorage(15000) + .foodProcessing(11000) + .automatedStorage(5200) + .build()) + .throughputTrend(throughputTrend) + .areaDistribution(WhAreaDistributionVO.builder() + .utilizationRate("85%") + .details(areaDetails) + .build()) + .capacityUtilizationTrend(WhCapacityUtilizationTrendVO.builder() + .peakLabel("60%") + .data(capTrendData) + .build()) + .orderStatistics(WhOrderStatisticsVO.builder() + .annualOrders(525440L) + .quarterlyOrders(225120L) + .monthlyOrders(23560L) + .build()) + .serviceStatistics(WhServiceStatisticsVO.builder() + .clients(582) + .coverage("覆盖港珠澳") + .onTimeRate("98.2%") + .rateChange("0.4%") + .build()) + .orderTrend(orderTrend) + .turnoverRateTrend(WhTurnoverRateTrendVO.builder() + .currentMonth("3次") + .annual("4次") + .data(turnoverData) + .build()) + .serviceCapacity(serviceCapacity) + .realTimeAnalysis(WhRealTimeAnalysisVO.builder() + .utilizationRate(WhRealTimeGaugeVO.builder() + .value("50.8%") + .comparison("3.4%") + .trend("up") + .build()) + .rentalRate(WhRealTimeGaugeVO.builder() + .value("70.8%") + .comparison("3.4%") + .trend("up") + .build()) + .build()) + .map(WhWarehouseMapVO.builder() + .legend("仓库") + .nodes(Arrays.asList( + mapNode(1L, "君华仓", 113.52, 22.30, + "君华保税仓", "12000m²", 520, 2400, "82%", "36.5%"), + mapNode(2L, "通宇仓", 113.55, 22.25, + "通宇保税仓", "2000m²", 668, 237, "85%", "37.1%"), + mapNode(3L, "横琴仓", 113.54, 22.12, + "横琴保税仓", "3500m²", 445, 1200, "78%", "42.0%"), + mapNode(4L, "新南仓", 113.58, 22.20, + "新南保税仓", "2800m²", 390, 800, "80%", "35.8%"), + mapNode(5L, "谷丰仓", 113.48, 22.22, + "谷丰保税仓", "4500m²", 512, 567, "76%", "33.2%") + )) + .build()) + .build(); + } + + private static WhOrderSummaryCountItemVO orderSummaryItem(String label, int value) { + return WhOrderSummaryCountItemVO.builder().label(label).value(value).build(); + } + + private static WhColdStorageMetricVO coldMetric(String value, String trend) { + return WhColdStorageMetricVO.builder().value(value).trend(trend).build(); + } + + private static List sampleTemperatureExceptions() { + return Arrays.asList( + tempException(1, "I级"), + tempException(2, "II级"), + tempException(3, "II级"), + tempException(4, "II级"), + tempException(5, "IV级"), + tempException(6, "IV级"), + tempException(7, "IV级") + ); + } + + private static WhTemperatureExceptionVO tempException(int rank, String level) { + return WhTemperatureExceptionVO.builder() + .rank(rank) + .level(level) + .area("A1区") + .deviceId("01020304") + .temperature("-4°C") + .duration("持续0小时12分钟") + .occurTime("04-16 18:41") + .build(); + } + + private static WhMapNodeVO mapNode(long id, String name, double lng, double lat, + String warehouseName, String totalArea, int totalSku, + int todayOrders, String utilizationRate, String rentalRate) { + return WhMapNodeVO.builder() + .id(id) + .name(name) + .location(Arrays.asList(lng, lat)) + .detail(WhMapPopupVO.builder() + .warehouseName(warehouseName) + .totalArea(totalArea) + .totalSku(totalSku) + .todayOrders(todayOrders) + .utilizationRate(utilizationRate) + .rentalRate(rentalRate) + .build()) + .build(); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseTransport/repository/mapper/BiWarehouseTransportReportMapper.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseTransport/repository/mapper/BiWarehouseTransportReportMapper.java new file mode 100644 index 000000000..10fbe554e --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseTransport/repository/mapper/BiWarehouseTransportReportMapper.java @@ -0,0 +1,20 @@ +package com.mhd.bi.domain.biWarehouseTransport.repository.mapper; + +import com.mhd.bi.domain.biReport.support.BiReportSnapshotMapperSupport; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.WarehouseTransportSituationVO; + +/** + * 仓储运输:SQL 见 BiWarehouseTransportReportMapper.xml;取数与组装均在 Mapper 层完成。 + */ +public interface BiWarehouseTransportReportMapper { + + String selectLatestPayloadJson(); + + default WarehouseTransportSituationVO loadLatestWarehouseTransport() { + return BiReportSnapshotMapperSupport.parsePayload( + selectLatestPayloadJson(), + WarehouseTransportSituationVO.class, + BiReportSnapshotMapperSupport::emptyWarehouseTransportSituation, + "仓储运输"); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseTransport/service/BiWarehouseTransportReportService.java b/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseTransport/service/BiWarehouseTransportReportService.java new file mode 100644 index 000000000..58ae0c060 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/biWarehouseTransport/service/BiWarehouseTransportReportService.java @@ -0,0 +1,18 @@ +package com.mhd.bi.domain.biWarehouseTransport.service; + +import com.mhd.bi.domain.biWarehouseTransport.repository.mapper.BiWarehouseTransportReportMapper; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.WarehouseTransportSituationVO; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class BiWarehouseTransportReportService { + + @Resource + private BiWarehouseTransportReportMapper biWarehouseTransportReportMapper; + + public WarehouseTransportSituationVO loadLatestWarehouseTransport() { + return biWarehouseTransportReportMapper.loadLatestWarehouseTransport(); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/testTable/entity/TestTable.java b/mhd-bi/src/main/java/com/mhd/bi/domain/testTable/entity/TestTable.java new file mode 100644 index 000000000..271f2349b --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/testTable/entity/TestTable.java @@ -0,0 +1,28 @@ +package com.mhd.bi.domain.testTable.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.mhd.common.core.annotation.Excel; +import com.mhd.common.core.web.domain.BaseVOEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class TestTable implements Serializable { + private static final long serialVersionUID = 1L; + + /** 车队id */ + @ApiModelProperty("车队id") + @TableId(type = IdType.AUTO) + private Long id; + + @ApiModelProperty(name = "txt") + private String txt; + +} \ No newline at end of file diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/testTable/repository/facade/TestTableService.java b/mhd-bi/src/main/java/com/mhd/bi/domain/testTable/repository/facade/TestTableService.java new file mode 100644 index 000000000..511b76e02 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/testTable/repository/facade/TestTableService.java @@ -0,0 +1,8 @@ +package com.mhd.bi.domain.testTable.repository.facade; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.mhd.bi.domain.testTable.entity.TestTable; + +public interface TestTableService extends IService +{ +} \ No newline at end of file diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/testTable/repository/mapper/TestTableMapper.java b/mhd-bi/src/main/java/com/mhd/bi/domain/testTable/repository/mapper/TestTableMapper.java new file mode 100644 index 000000000..5395cb3fc --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/testTable/repository/mapper/TestTableMapper.java @@ -0,0 +1,16 @@ +package com.mhd.bi.domain.testTable.repository.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mhd.bi.domain.testTable.entity.TestTable; + +import java.util.List; + +/** + * 车队Mapper接口 + * + * @author zihao + * @date 2023-05-24 + */ +public interface TestTableMapper extends BaseMapper +{ +} \ No newline at end of file diff --git a/mhd-bi/src/main/java/com/mhd/bi/domain/testTable/repository/persistence/TestTableServiceImpl.java b/mhd-bi/src/main/java/com/mhd/bi/domain/testTable/repository/persistence/TestTableServiceImpl.java new file mode 100644 index 000000000..49ef7dd06 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/domain/testTable/repository/persistence/TestTableServiceImpl.java @@ -0,0 +1,15 @@ +package com.mhd.bi.domain.testTable.repository.persistence; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mhd.bi.domain.testTable.entity.TestTable; +import com.mhd.bi.domain.testTable.repository.facade.TestTableService; +import com.mhd.bi.domain.testTable.repository.mapper.TestTableMapper; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class TestTableServiceImpl extends ServiceImpl implements TestTableService { + +} \ No newline at end of file diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/BiReportApi.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/BiReportApi.java new file mode 100644 index 000000000..6d6156940 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/BiReportApi.java @@ -0,0 +1,147 @@ +package com.mhd.bi.interfaces.facadeApi.biReport; + +import com.mhd.bi.domain.biSnapshotSync.service.BiReportSnapshotSyncService; +import com.mhd.bi.domain.biComprehensive.service.BiComprehensiveReportService; +import com.mhd.bi.domain.biPlatformSurveillance.service.BiPlatformSurveillanceReportService; +import com.mhd.bi.domain.biOverallOperation.service.BiOverallOperationReportService; +import com.mhd.bi.domain.biHkMacaoServiceZone.service.BiHkMacaoServiceZoneReportService; +import com.mhd.bi.domain.biTransportOperationZone.service.BiTransportOperationZoneReportService; +import com.mhd.bi.domain.biWarehouseOperationZone.service.BiWarehouseOperationZoneReportService; +import com.mhd.bi.domain.biWarehouseTransport.service.BiWarehouseTransportReportService; +import com.mhd.bi.interfaces.facadeApi.biReport.dto.BiApiResult; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.ComprehensiveSituationVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.WarehouseTransportSituationVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.overall.OverallOperationSituationVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.platform.PlatformSurveillanceVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone.HkMacaoServiceZoneVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TransportOperationZoneVO; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WarehouseOperationZoneVO; +import com.mhd.common.core.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * BI 报表接口 + */ +@Api(tags = "BI报表", description = "须在请求头携带 X-BI-Access-Token,与配置 mhd.bi.access-token 一致") +@Slf4j +@RestController +@RequestMapping("/biReport") +@CrossOrigin +public class BiReportApi extends BaseController { + + @Autowired + private BiComprehensiveReportService biComprehensiveReportService; + + @Autowired + private BiWarehouseTransportReportService biWarehouseTransportReportService; + + @Autowired + private BiPlatformSurveillanceReportService biPlatformSurveillanceReportService; + + @Autowired + private BiOverallOperationReportService biOverallOperationReportService; + + @Autowired + private BiWarehouseOperationZoneReportService biWarehouseOperationZoneReportService; + + @Autowired + private BiTransportOperationZoneReportService biTransportOperationZoneReportService; + + @Autowired + private BiHkMacaoServiceZoneReportService biHkMacaoServiceZoneReportService; + + @Autowired + private BiReportSnapshotSyncService biReportSnapshotSyncService; + + + @ApiOperation(value = "手动触发快照同步", notes = "立即写入各 BI 快照表(综合、仓储运输、月台监测、总体运营、仓储运营专区、运输运营专区、港澳服务专区);须带 X-BI-Access-Token") + @PostMapping("/snapshotSync/run") + public BiApiResult runSnapshotSyncOnce() { + biReportSnapshotSyncService.syncAllSnapshots(); + return BiApiResult.ok(null); + } + + /** + * 综合态势指标查询(按照 del_flag=1,按 create_time 最新一条) + */ + @ApiOperation(value = "综合态势指标查询", notes = "返回 DEL_FLAG=1 且 CREATE_TIME 最新的一条") + @GetMapping("/comprehensive") + public BiApiResult comprehensive() { + ComprehensiveSituationVO data = biComprehensiveReportService.loadLatestComprehensive(); + return BiApiResult.ok(data); + } + + /** + * 仓储运输指标查询(按照 del_flag=1,按 create_time 最新一条) + */ + @ApiOperation(value = "仓储运输指标查询", notes = "返回 DEL_FLAG=1 且 CREATE_TIME 最新的一条") + @GetMapping("/warehouseTransport") + public BiApiResult warehouseTransport() { + WarehouseTransportSituationVO data = biWarehouseTransportReportService.loadLatestWarehouseTransport(); + return BiApiResult.ok(data); + } + + /** + * 月台监测指标查询(按照 del_flag=1,按 create_time 最新一条) + */ + @ApiOperation(value = "月台监测指标查询", notes = "返回 DEL_FLAG=1 且 CREATE_TIME 最新的一条快照") + @GetMapping("/platformSurveillance") + public BiApiResult platformSurveillance() { + PlatformSurveillanceVO data = biPlatformSurveillanceReportService.loadLatestPlatformSurveillance(); + return BiApiResult.ok(data); + } +//园区物流大屏接口---------------------------------------------------------------------- + /** + * 总体运营态势 + */ + @ApiOperation(value = "总体运营态势查询", notes = "返回 DEL_FLAG=1 且 CREATE_TIME 最新的一条整包 JSON 解析结果") + @GetMapping("/overallOperation") + public BiApiResult overallOperation() { + OverallOperationSituationVO data = biOverallOperationReportService.loadLatestOverallOperation(); + return BiApiResult.ok(data); + } + + /** + * 仓储运营专区(大屏「仓储运营专区」Tab) + */ + @ApiOperation(value = "仓储运营专区查询", notes = "未传 organizationName 时返回全表最新一条;") + @GetMapping("/warehouseOperationZone") + public BiApiResult warehouseOperationZone( + @ApiParam(value = "企业运营/组织名称") + @RequestParam(value = "organizationName", required = false) String organizationName) { + WarehouseOperationZoneVO data = biWarehouseOperationZoneReportService.loadWarehouseOperationZone(organizationName); + return BiApiResult.ok(data); + } + + /** + * 运输运营专区(大屏「运输运营专区」Tab) + */ + @ApiOperation(value = "运输运营专区查询", notes = "未传 organizationName 时返回全表最新一条;传入时双向模糊匹配 ORGANIZATION_NAME(库名包含关键词,或关键词包含库名)") + @GetMapping("/transportOperationZone") + public BiApiResult transportOperationZone( + @ApiParam(value = "企业运营/组织名称,与快照表 ORGANIZATION_NAME 双向模糊匹配") + @RequestParam(value = "organizationName", required = false) String organizationName) { + TransportOperationZoneVO data = biTransportOperationZoneReportService.loadTransportOperationZone(organizationName); + return BiApiResult.ok(data); + } + + /** + * 港澳服务专区(大屏「港澳服务专区」) + */ + @ApiOperation(value = "港澳服务专区查询", notes = "返回 DEL_FLAG=1 且 CREATE_TIME 最新的一条整包 JSON 解析结果") + @GetMapping("/hkMacaoServiceZone") + public BiApiResult hkMacaoServiceZone() { + HkMacaoServiceZoneVO data = biHkMacaoServiceZoneReportService.loadLatestHkMacaoServiceZone(); + return BiApiResult.ok(data); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/dto/BiApiResult.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/dto/BiApiResult.java new file mode 100644 index 000000000..31fcbfd49 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/dto/BiApiResult.java @@ -0,0 +1,24 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * BI 接口统一响应(与前端示例:code + msg + data) + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class BiApiResult { + + private int code = 200; + + private String message = "操作成功"; + + private T data; + + public static BiApiResult ok(T data) { + return new BiApiResult<>(200, "操作成功", data); + } +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/ComprehensiveSituationVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/ComprehensiveSituationVO.java new file mode 100644 index 000000000..8a8864352 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/ComprehensiveSituationVO.java @@ -0,0 +1,39 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 综合态势指标 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("综合态势指标") +public class ComprehensiveSituationVO { + + @ApiModelProperty("增值服务收入,单位:元人民币") + private Long valueAddedServiceIncome; + + @ApiModelProperty("库存周转率,单位:次") + private Integer inventoryTurnover; + + @ApiModelProperty("运输订单量,单位:单") + private Integer orderCount; + + @ApiModelProperty("车辆利用率,单位:%") + private Double vehicleUtilizationRate; + + @ApiModelProperty("百公里油耗,单位:升") + private Integer fuelConsumptionPerHundredKm; + + @ApiModelProperty("运输收入趋势,单位:万元(近半年,按月正序)") + private List incomeTrend; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/CustomerContributionRankVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/CustomerContributionRankVO.java new file mode 100644 index 000000000..f61e98183 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/CustomerContributionRankVO.java @@ -0,0 +1,24 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("客户贡献排名(前5)") +public class CustomerContributionRankVO { + + @ApiModelProperty("客户名称") + private List customerName; + + @ApiModelProperty("客户金额,单位:万元") + private List customerAmount; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/WarehouseTransportSituationVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/WarehouseTransportSituationVO.java new file mode 100644 index 000000000..01a6e8711 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/WarehouseTransportSituationVO.java @@ -0,0 +1,78 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("仓储运输指标") +public class WarehouseTransportSituationVO { + + @ApiModelProperty("仓配衔接准时率,单位:%") + private Double warehouseDistributionOnTimeRate; + + @ApiModelProperty("本年度订单,单位:单") + private Long currentYearOrders; + + @ApiModelProperty("本季度订单,单位:单") + private Integer currentQuarterOrders; + + @ApiModelProperty("本月度订单,单位:单") + private Integer currentMonthOrders; + + @ApiModelProperty("仓库订单趋势,单位:单(近半年,按月正序)") + private List warehouseOrderTrend; + + @ApiModelProperty("吞吐量统计,单位:吨(近半年,按月正序)") + private List throughput; + + @ApiModelProperty("本月周转率,单位:次") + private Integer currentMonthTurnoverRate; + + @ApiModelProperty("本年周转率,单位:次") + private Integer currentYearTurnoverRate; + + @ApiModelProperty("库存周转率趋势,单位:次(近半年,按月正序)") + private List inventoryTurnoverTrend; + + @ApiModelProperty("总收入,单位:万元") + private Integer totalTransportIncome; + + @ApiModelProperty("订单数量,单位:单") + private Integer orderCount; + + @ApiModelProperty("运输车次,单位:次") + private Integer transportTrips; + + @ApiModelProperty("运输货量,单位:万吨") + private Integer annualTransportVolume; + + @ApiModelProperty("运输订单总数,单位:单") + private Integer transportOrderTotal; + + @ApiModelProperty("跨境订单,单位:单") + private Integer crossBorderTransportOrder; + + @ApiModelProperty("国内订单,单位:单") + private Integer domesticTransportOrder; + + @ApiModelProperty("运输车次趋势(近半年,按月正序)") + private List transportTripsTrend; + + @ApiModelProperty("出车利用率,单位:车次(近半年,按月正序)") + private List vehicleUtilizationRate; + + @ApiModelProperty("仓配衔接准时率(近半年,按月正序),单位:%") + private List warehouseDockSyncRate; + + @ApiModelProperty("客户贡献排名") + private CustomerContributionRankVO customerContributionRank; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkClientServiceStatsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkClientServiceStatsVO.java new file mode 100644 index 000000000..c0ec00153 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkClientServiceStatsVO.java @@ -0,0 +1,33 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-服务客户统计") +public class HkClientServiceStatsVO { + + @JsonProperty("hk_macao_clients") + @ApiModelProperty("港澳客户数") + private Integer hkMacaoClients; + + @JsonProperty("client_ratio") + @ApiModelProperty("客户占比") + private String clientRatio; + + @JsonProperty("warehouse_usage_area") + @ApiModelProperty("仓库使用面积") + private String warehouseUsageArea; + + @JsonProperty("area_ratio") + @ApiModelProperty("面积占比") + private String areaRatio; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkDoorToDoorEfficiencyVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkDoorToDoorEfficiencyVO.java new file mode 100644 index 000000000..c91b4fdce --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkDoorToDoorEfficiencyVO.java @@ -0,0 +1,29 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-门到门时效") +public class HkDoorToDoorEfficiencyVO { + + @JsonProperty("average_time") + @ApiModelProperty("平均时效") + private String averageTime; + + @JsonProperty("fastest_time") + @ApiModelProperty("最快时效") + private String fastestTime; + + @JsonProperty("mom_growth") + @ApiModelProperty("环比增幅") + private String momGrowth; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkInventoryTurnoverTrendVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkInventoryTurnoverTrendVO.java new file mode 100644 index 000000000..5583e0d7b --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkInventoryTurnoverTrendVO.java @@ -0,0 +1,33 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-库存周转率趋势") +public class HkInventoryTurnoverTrendVO { + + @JsonProperty("current_month_rate") + @ApiModelProperty("本月周转率") + private String currentMonthRate; + + @JsonProperty("annual_rate") + @ApiModelProperty("年度周转率") + private String annualRate; + + @ApiModelProperty("单位") + private String unit; + + @ApiModelProperty("按月序列") + private List data; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMacaoServiceZoneVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMacaoServiceZoneVO.java new file mode 100644 index 000000000..a599232c9 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMacaoServiceZoneVO.java @@ -0,0 +1,74 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 港澳服务专区(整包 data 与快照 PAYLOAD_JSON 一致) + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区") +public class HkMacaoServiceZoneVO { + + @JsonProperty("warehouse_order_stats") + @ApiModelProperty("仓库订单统计") + private HkOrderStatsVO warehouseOrderStats; + + @JsonProperty("client_service_stats") + @ApiModelProperty("服务客户统计") + private HkClientServiceStatsVO clientServiceStats; + + @JsonProperty("goods_source_stats") + @ApiModelProperty("货物品类来源") + private HkRingChartStatsVO goodsSourceStats; + + @JsonProperty("cross_border_order_stats") + @ApiModelProperty("跨境订单统计") + private HkRingChartStatsVO crossBorderOrderStats; + + @JsonProperty("warehouse_order_trend") + @ApiModelProperty("仓库订单趋势") + private List warehouseOrderTrend; + + @JsonProperty("inventory_turnover_trend") + @ApiModelProperty("库存周转率趋势") + private HkInventoryTurnoverTrendVO inventoryTurnoverTrend; + + @JsonProperty("transport_order_stats") + @ApiModelProperty("运输订单统计") + private HkOrderStatsVO transportOrderStats; + + @JsonProperty("door_to_door_efficiency") + @ApiModelProperty("门到门时效") + private HkDoorToDoorEfficiencyVO doorToDoorEfficiency; + + @JsonProperty("cross_border_transport_stats") + @ApiModelProperty("跨境运输订单") + private HkRingChartStatsVO crossBorderTransportStats; + + @JsonProperty("cargo_volume_trend") + @ApiModelProperty("货量趋势") + private List cargoVolumeTrend; + + @JsonProperty("transport_order_trend") + @ApiModelProperty("运输订单趋势") + private List transportOrderTrend; + + @JsonProperty("on_time_delivery_rate") + @ApiModelProperty("准时交付率") + private List onTimeDeliveryRate; + + @JsonProperty("map_data") + @ApiModelProperty("地图点位") + private HkMapDataVO mapData; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMapDataVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMapDataVO.java new file mode 100644 index 000000000..ea5fc3f6f --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMapDataVO.java @@ -0,0 +1,21 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-地图数据") +public class HkMapDataVO { + + @ApiModelProperty("点位列表") + private List points; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMapLocationVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMapLocationVO.java new file mode 100644 index 000000000..8c5d0bc8b --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMapLocationVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-地图坐标") +public class HkMapLocationVO { + + @ApiModelProperty("纬度") + private Double lat; + + @ApiModelProperty("经度") + private Double lng; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMapPointVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMapPointVO.java new file mode 100644 index 000000000..ea243f5d8 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMapPointVO.java @@ -0,0 +1,37 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-地图点位") +public class HkMapPointVO { + + @ApiModelProperty("点位ID") + private String id; + + @ApiModelProperty("类型 warehouse/vehicle") + private String type; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("状态") + private String status; + + @ApiModelProperty("坐标") + private HkMapLocationVO location; + + @ApiModelProperty("仓库指标(type=warehouse)") + private HkWarehouseMetricsVO metrics; + + @ApiModelProperty("车辆详情(type=vehicle)") + private HkVehicleDetailsVO details; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMonthRatePointVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMonthRatePointVO.java new file mode 100644 index 000000000..b98a35ced --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMonthRatePointVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-月份比率点") +public class HkMonthRatePointVO { + + @ApiModelProperty("月份") + private String month; + + @ApiModelProperty("比率或趋势值") + private Integer rate; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMonthValuePointVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMonthValuePointVO.java new file mode 100644 index 000000000..2f887953e --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkMonthValuePointVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-月度数值点") +public class HkMonthValuePointVO { + + @ApiModelProperty("月份") + private String month; + + @ApiModelProperty("数值") + private Integer value; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkOrderStatsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkOrderStatsVO.java new file mode 100644 index 000000000..87134a9cb --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkOrderStatsVO.java @@ -0,0 +1,31 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-订单统计") +public class HkOrderStatsVO { + + @JsonProperty("total_orders") + @ApiModelProperty("订单总量") + private Long totalOrders; + + @ApiModelProperty("单位") + private String unit; + + @JsonProperty("mom_growth") + @ApiModelProperty("环比增幅") + private String momGrowth; + + @ApiModelProperty("趋势 up/down") + private String trend; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkOrderTrendMonthVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkOrderTrendMonthVO.java new file mode 100644 index 000000000..efefb4e79 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkOrderTrendMonthVO.java @@ -0,0 +1,28 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-订单趋势月度点") +public class HkOrderTrendMonthVO { + + @ApiModelProperty("月份") + private String month; + + @JsonProperty("order_ratio") + @ApiModelProperty("订单比率/柱值") + private Integer orderRatio; + + @JsonProperty("order_count") + @ApiModelProperty("订单数") + private Integer orderCount; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkPercentageDetailVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkPercentageDetailVO.java new file mode 100644 index 000000000..cde6f4e92 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkPercentageDetailVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-占比明细") +public class HkPercentageDetailVO { + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("占比") + private String percentage; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkRingChartStatsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkRingChartStatsVO.java new file mode 100644 index 000000000..c3fa0d488 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkRingChartStatsVO.java @@ -0,0 +1,26 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-环形图统计") +public class HkRingChartStatsVO { + + @JsonProperty("total_orders") + @ApiModelProperty("订单/统计总量") + private Integer totalOrders; + + @ApiModelProperty("明细") + private List details; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkVehicleDetailsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkVehicleDetailsVO.java new file mode 100644 index 000000000..5a289efe3 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkVehicleDetailsVO.java @@ -0,0 +1,41 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-车辆详情") +public class HkVehicleDetailsVO { + + @JsonProperty("warehouse_name") + @ApiModelProperty("关联仓库") + private String warehouseName; + + @JsonProperty("license_plate") + @ApiModelProperty("车牌号") + private String licensePlate; + + @JsonProperty("loading_address") + @ApiModelProperty("装货地址") + private String loadingAddress; + + @JsonProperty("destination_address") + @ApiModelProperty("目的地") + private String destinationAddress; + + @JsonProperty("current_location") + @ApiModelProperty("当前位置") + private String currentLocation; + + @JsonProperty("update_time") + @ApiModelProperty("更新时间") + private String updateTime; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkWarehouseMetricsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkWarehouseMetricsVO.java new file mode 100644 index 000000000..c66eaf29d --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/hkMacaoZone/HkWarehouseMetricsVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.hkMacaoZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-港澳服务专区-仓库运营指标") +public class HkWarehouseMetricsVO { + + @JsonProperty("inbound_operations") + @ApiModelProperty("入库作业数") + private Integer inboundOperations; + + @JsonProperty("outbound_operations") + @ApiModelProperty("出库作业数") + private Integer outboundOperations; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallMapNodeVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallMapNodeVO.java new file mode 100644 index 000000000..3d440bb23 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallMapNodeVO.java @@ -0,0 +1,30 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("总体运营态势-地图节点") +public class OverallMapNodeVO { + + @ApiModelProperty("类型:headquarters / businessUnit / warehouse") + private String type; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("坐标 [经度, 纬度]") + private List location; + + @ApiModelProperty("悬停信息") + private OverallMapTooltipVO tooltip; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallMapSectionVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallMapSectionVO.java new file mode 100644 index 000000000..8fe874be4 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallMapSectionVO.java @@ -0,0 +1,21 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("总体运营态势-地图") +public class OverallMapSectionVO { + + @ApiModelProperty("地图节点") + private List nodes; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallMapTooltipDataItemVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallMapTooltipDataItemVO.java new file mode 100644 index 000000000..661e65f1d --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallMapTooltipDataItemVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("地图气泡-指标项") +public class OverallMapTooltipDataItemVO { + + @ApiModelProperty("标签") + private String label; + + @ApiModelProperty("数值") + private Integer value; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallMapTooltipVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallMapTooltipVO.java new file mode 100644 index 000000000..659c2cfe6 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallMapTooltipVO.java @@ -0,0 +1,24 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("总体运营态势-地图气泡") +public class OverallMapTooltipVO { + + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("指标行") + private List data; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallOperationSituationVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallOperationSituationVO.java new file mode 100644 index 000000000..6795409cf --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallOperationSituationVO.java @@ -0,0 +1,31 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 总体运营态势:与 PAYLOAD_JSON、接口 data 字段结构一致。 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-总体运营态势") +public class OverallOperationSituationVO { + + @ApiModelProperty("快照时间展示") + private String updateTime; + + @ApiModelProperty("仓储运营") + private OverallWarehouseOperationVO warehouse; + + @ApiModelProperty("地图") + private OverallMapSectionVO map; + + @ApiModelProperty("运输运营") + private OverallTransportOperationVO transport; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallThroughputTrendMonthVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallThroughputTrendMonthVO.java new file mode 100644 index 000000000..b61f8b8f3 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallThroughputTrendMonthVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("仓储-吞吐量趋势单月") +public class OverallThroughputTrendMonthVO { + + @ApiModelProperty("月份标签") + private String monthLabel; + + @ApiModelProperty("吞吐量(与示例一致可为整数)") + private Integer throughput; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportCapacityVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportCapacityVO.java new file mode 100644 index 000000000..9dba7c244 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportCapacityVO.java @@ -0,0 +1,34 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("运输-运力统计") +public class OverallTransportCapacityVO { + + @ApiModelProperty("车辆总数") + private Integer totalVehicles; + + @ApiModelProperty("自有车辆") + private Integer ownedVehicles; + + @ApiModelProperty("社会车辆") + private Integer socialVehicles; + + @ApiModelProperty("驾驶员总数") + private Integer totalDrivers; + + @ApiModelProperty("自有驾驶员") + private Integer ownedDrivers; + + @ApiModelProperty("社会驾驶员") + private Integer socialDrivers; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportFreightTrendMonthVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportFreightTrendMonthVO.java new file mode 100644 index 000000000..dc58a1ff5 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportFreightTrendMonthVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("运输-货运趋势单月") +public class OverallTransportFreightTrendMonthVO { + + @ApiModelProperty("月份标签") + private String monthLabel; + + @ApiModelProperty("货运量") + private Integer freight; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportModeDistributionVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportModeDistributionVO.java new file mode 100644 index 000000000..a2b2c293d --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportModeDistributionVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("运输-订单分布") +public class OverallTransportModeDistributionVO { + + @ApiModelProperty("跨境单量") + private Long crossBorder; + + @ApiModelProperty("国内单量") + private Long domestic; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportOperationVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportOperationVO.java new file mode 100644 index 000000000..a0aeb2948 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportOperationVO.java @@ -0,0 +1,41 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone.TrTypedChartVO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("总体运营态势-运输运营") +@JsonIgnoreProperties(ignoreUnknown = true) +public class OverallTransportOperationVO { + + @ApiModelProperty("运输订单摘要") + private OverallTransportOrderSummaryVO orderSummary; + + @ApiModelProperty("运力统计") + private OverallTransportCapacityVO capacityStatistics; + + @ApiModelProperty("运输订单趋势(按月)") + private List orderTrendByMonth; + + @ApiModelProperty("货运量趋势(按月)") + private List freightTrendByMonth; + + @ApiModelProperty("运输订单分布") + private OverallTransportModeDistributionVO orderDistribution; + + @JsonProperty("on_time_rate") + @ApiModelProperty("准时配送率(右下角,与运输运营专区 on_time_rate 结构一致)") + private TrTypedChartVO onTimeRate; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportOrderSummaryVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportOrderSummaryVO.java new file mode 100644 index 000000000..d6e21baa0 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportOrderSummaryVO.java @@ -0,0 +1,31 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("运输-订单摘要") +public class OverallTransportOrderSummaryVO { + + @ApiModelProperty("处理单量") + private Long processedOrderCount; + + @ApiModelProperty("变化百分比") + private Double changePercent; + + @ApiModelProperty("年货运量数值") + private Double annualFreight; + + @ApiModelProperty("货运单位,如 万吨") + private String freightUnit; + + @ApiModelProperty("货运变化百分比") + private Double freightGrowth; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportOrderTrendMonthVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportOrderTrendMonthVO.java new file mode 100644 index 000000000..14a9df741 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallTransportOrderTrendMonthVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("运输-订单趋势单月") +public class OverallTransportOrderTrendMonthVO { + + @ApiModelProperty("月份标签") + private String monthLabel; + + @ApiModelProperty("订单量") + private Long count; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseBizStatisticVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseBizStatisticVO.java new file mode 100644 index 000000000..a6bf027e8 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseBizStatisticVO.java @@ -0,0 +1,31 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("仓储-运营统计") +public class OverallWarehouseBizStatisticVO { + + @ApiModelProperty("服务客户数") + private Long customerCount; + + @ApiModelProperty("覆盖区域说明") + private String coverageArea; + + @ApiModelProperty("年吞吐量数值") + private Integer annualThroughput; + + @ApiModelProperty("吞吐量单位,如 万吨") + private String throughputUnit; + + @ApiModelProperty("吞吐量变化百分比") + private Double throughputGrowth; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseCoreCapabilityVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseCoreCapabilityVO.java new file mode 100644 index 000000000..d39c734b0 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseCoreCapabilityVO.java @@ -0,0 +1,31 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("仓储-核心能力") +public class OverallWarehouseCoreCapabilityVO { + + @ApiModelProperty("仓库总数") + private Integer totalWarehouses; + + @ApiModelProperty("自营数量") + private Integer selfOperatedCount; + + @ApiModelProperty("外租/外包数量") + private Integer outsourcedCount; + + @ApiModelProperty("运营面积数值") + private Integer operatingArea; + + @ApiModelProperty("面积单位,如 万m²") + private String areaUnit; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseOperationVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseOperationVO.java new file mode 100644 index 000000000..304842626 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseOperationVO.java @@ -0,0 +1,41 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone.WhTurnoverRateTrendVO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("总体运营态势-仓储运营") +@JsonIgnoreProperties(ignoreUnknown = true) +public class OverallWarehouseOperationVO { + + @ApiModelProperty("仓库订单统计") + private OverallWarehouseOrderStatisticVO orderStatistics; + + @ApiModelProperty("仓库核心能力") + private OverallWarehouseCoreCapabilityVO coreCapability; + + @ApiModelProperty("仓库订单趋势(按月)") + private List orderTrendByMonth; + + @ApiModelProperty("吞吐量趋势(按月)") + private List throughputTrendByMonth; + + @ApiModelProperty("仓库运营统计") + private OverallWarehouseBizStatisticVO bizStatistics; + + @JsonProperty("turnover_rate_trend") + @ApiModelProperty("库存周转率趋势(替代原 capabilityRanking)") + private WhTurnoverRateTrendVO turnoverRateTrend; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseOrderStatisticVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseOrderStatisticVO.java new file mode 100644 index 000000000..7d4c26476 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseOrderStatisticVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("仓储-订单统计") +public class OverallWarehouseOrderStatisticVO { + + @ApiModelProperty("处理单量") + private Long processedOrderCount; + + @ApiModelProperty("变化百分比(如 5.4 表示 ↑5.4%)") + private Double changePercent; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseOrderTrendMonthVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseOrderTrendMonthVO.java new file mode 100644 index 000000000..71921a488 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/overall/OverallWarehouseOrderTrendMonthVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.overall; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("仓储-订单趋势单月") +public class OverallWarehouseOrderTrendMonthVO { + + @ApiModelProperty("月份标签") + private String monthLabel; + + @ApiModelProperty("入库订单") + private Long inboundOrders; + + @ApiModelProperty("出库订单") + private Long outboundOrders; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/AvgOperationDurationTrendItemVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/AvgOperationDurationTrendItemVO.java new file mode 100644 index 000000000..ce04873c1 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/AvgOperationDurationTrendItemVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("月台监测-平均作业时长趋势项") +public class AvgOperationDurationTrendItemVO { + + @ApiModelProperty("月份") + private String month; + + @ApiModelProperty("园区作业时长") + private Double yardDuration; + + @ApiModelProperty("月台作业时长") + private Double platformDuration; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/EfficiencyStatisticsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/EfficiencyStatisticsVO.java new file mode 100644 index 000000000..2b90b45a8 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/EfficiencyStatisticsVO.java @@ -0,0 +1,34 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("月台监测-效率统计(本日)") +public class EfficiencyStatisticsVO { + + @ApiModelProperty("入园超时率,单位:%") + private Integer entryOvertimeRate; + + @ApiModelProperty("超时数量,单位:个") + private Integer overtimeCount; + + @ApiModelProperty("月台作业准时率,单位:%") + private Integer platformOnTimeRate; + + @ApiModelProperty("月台作业平均时长,单位:小时") + private Double avgPlatformDuration; + + @ApiModelProperty("园区作业准时率,单位:%") + private Integer yardOnTimeRate; + + @ApiModelProperty("园区作业平均时长,单位:小时") + private Double avgYardDuration; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/MonthlyTaskStatisticsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/MonthlyTaskStatisticsVO.java new file mode 100644 index 000000000..b3422daae --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/MonthlyTaskStatisticsVO.java @@ -0,0 +1,34 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("月台监测-本月任务统计") +public class MonthlyTaskStatisticsVO { + + @ApiModelProperty("任务量,单位:个") + private Integer taskTotal; + + @ApiModelProperty("任务量同比,单位:%") + private Integer taskTotalYoY; + + @ApiModelProperty("任务平均作业时长,单位:小时") + private Double avgTaskDuration; + + @ApiModelProperty("任务平均作业时长同比,单位:%") + private Integer avgDurationYoY; + + @ApiModelProperty("任务完成率,单位:%") + private Integer taskCompletionRate; + + @ApiModelProperty("任务完成率同比,单位:%") + private Integer completionRateYoY; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformAlarmDistItemVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformAlarmDistItemVO.java new file mode 100644 index 000000000..5d261d257 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformAlarmDistItemVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("月台监测-告警分布项") +public class PlatformAlarmDistItemVO { + + @ApiModelProperty("告警类型") + private String type; + + @ApiModelProperty("告警数量") + private Integer count; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformAlarmStatisticsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformAlarmStatisticsVO.java new file mode 100644 index 000000000..26d84446b --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformAlarmStatisticsVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("月台监测-月台告警统计(本日)") +public class PlatformAlarmStatisticsVO { + + @ApiModelProperty("今日告警总数,单位:个") + private Integer todayAlarmTotal; + + @ApiModelProperty("今日已处理告警数,单位:个") + private Integer handled; + + @ApiModelProperty("今日未处理告警数,单位:个") + private Integer unhandled; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformAlarmTrendItemVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformAlarmTrendItemVO.java new file mode 100644 index 000000000..676b1ae0a --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformAlarmTrendItemVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("月台监测-告警趋势项") +public class PlatformAlarmTrendItemVO { + + @ApiModelProperty("日期") + private String date; + + @ApiModelProperty("告警数量") + private Integer alarmCount; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformOverviewVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformOverviewVO.java new file mode 100644 index 000000000..a34587b34 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformOverviewVO.java @@ -0,0 +1,28 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("月台监测-月台实时概览") +public class PlatformOverviewVO { + + @ApiModelProperty("月台数量,单位:个") + private Integer totalPlatforms; + + @ApiModelProperty("当前占用率,单位:%") + private Integer currentOccupancyRate; + + @ApiModelProperty("当前作业中,单位:个") + private Integer operatingPlatforms; + + @ApiModelProperty("今日作业任务,单位:个") + private Integer todayTasks; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformSurveillanceVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformSurveillanceVO.java new file mode 100644 index 000000000..0efd4039f --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformSurveillanceVO.java @@ -0,0 +1,51 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("月台监测指标") +public class PlatformSurveillanceVO { + + @ApiModelProperty("作业车辆状态列表") + private List vehicles; + + @ApiModelProperty("效率统计(本日)") + private EfficiencyStatisticsVO efficiencyStatistics; + + @ApiModelProperty("月台实时概览") + private PlatformOverviewVO platformOverview; + + @ApiModelProperty("作业车辆状态汇总") + private VehicleStatusVO vehicleStatus; + + @ApiModelProperty("平均作业时长趋势") + private List avgOperationDurationTrend; + + @ApiModelProperty("本月任务统计") + private MonthlyTaskStatisticsVO monthlyTaskStatistics; + + @ApiModelProperty("任务负荷统计(时段)") + private List taskLoadStatistics; + + @ApiModelProperty("月台告警趋势") + private List platformAlarmTrend; + + @ApiModelProperty("任务类型统计") + private TaskTypeStatisticsVO taskTypeStatistics; + + @ApiModelProperty("月台告警统计(本日)") + private PlatformAlarmStatisticsVO platformAlarmStatistics; + + @ApiModelProperty("月台告警分布") + private List platformAlarmDistribution; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformVehicleItemVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformVehicleItemVO.java new file mode 100644 index 000000000..8ec4ebc49 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/PlatformVehicleItemVO.java @@ -0,0 +1,28 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("月台监测-作业车辆") +public class PlatformVehicleItemVO { + + @ApiModelProperty("车牌号码") + private String plateNumber; + + @ApiModelProperty("状态") + private String status; + + @ApiModelProperty("作业月台") + private String platformId; + + @ApiModelProperty("月台作业时长,单位:分钟") + private Integer platformDuration; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/TaskLoadItemVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/TaskLoadItemVO.java new file mode 100644 index 000000000..b56db8973 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/TaskLoadItemVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("月台监测-任务负荷时段项") +public class TaskLoadItemVO { + + @ApiModelProperty("时段") + private String time; + + @ApiModelProperty("任务数量") + private Integer taskCount; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/TaskTypeCountItemVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/TaskTypeCountItemVO.java new file mode 100644 index 000000000..6c1b5c029 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/TaskTypeCountItemVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("月台监测-任务类型项") +public class TaskTypeCountItemVO { + + @ApiModelProperty("任务类型") + private String type; + + @ApiModelProperty("任务数量") + private Integer count; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/TaskTypeStatisticsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/TaskTypeStatisticsVO.java new file mode 100644 index 000000000..22558e0e1 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/TaskTypeStatisticsVO.java @@ -0,0 +1,24 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("月台监测-任务类型统计") +public class TaskTypeStatisticsVO { + + @ApiModelProperty("本月任务总量,单位:个") + private Integer totalTasks; + + @ApiModelProperty("各类型任务") + private List taskTypes; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/VehicleStatusVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/VehicleStatusVO.java new file mode 100644 index 000000000..f71aefe19 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/platform/VehicleStatusVO.java @@ -0,0 +1,28 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.platform; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("月台监测-作业车辆状态汇总") +public class VehicleStatusVO { + + @ApiModelProperty("今日预约车辆,单位:辆") + private Integer todayReservedVehicles; + + @ApiModelProperty("当前未签到,单位:辆") + private Integer notCheckedIn; + + @ApiModelProperty("当前作业中,单位:辆") + private Integer operatingVehicles; + + @ApiModelProperty("作业完成,单位:辆") + private Integer completedVehicles; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrBarChartVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrBarChartVO.java new file mode 100644 index 000000000..92b9e1e50 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrBarChartVO.java @@ -0,0 +1,27 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-柱状图") +public class TrBarChartVO { + + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("单位") + private String unit; + + @ApiModelProperty("数据") + private List data; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrBrandOrderStatsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrBrandOrderStatsVO.java new file mode 100644 index 000000000..828bf0f98 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrBrandOrderStatsVO.java @@ -0,0 +1,41 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-品牌订单统计块") +public class TrBrandOrderStatsVO { + + @JsonProperty("planned_delivery") + @ApiModelProperty("计划配送") + private TrOrderStatMetricVO plannedDelivery; + + @JsonProperty("order_quantity") + @ApiModelProperty("订单数量") + private TrOrderStatMetricVO orderQuantity; + + @JsonProperty("vehicles_in_transit") + @ApiModelProperty("在途车辆") + private TrOrderStatMetricVO vehiclesInTransit; + + @JsonProperty("completed_delivery") + @ApiModelProperty("完成配送") + private TrOrderStatTextMetricVO completedDelivery; + + @JsonProperty("overtime_delivery") + @ApiModelProperty("超时配送") + private TrOrderStatMetricVO overtimeDelivery; + + @JsonProperty("on_time_rate") + @ApiModelProperty("准时配送率") + private TrOrderStatRateMetricVO onTimeRate; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCapacityCountVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCapacityCountVO.java new file mode 100644 index 000000000..36ddc94f3 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCapacityCountVO.java @@ -0,0 +1,28 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-运力计数") +public class TrCapacityCountVO { + + @ApiModelProperty("总数") + private Integer total; + + @JsonProperty("today_new") + @ApiModelProperty("今日新增") + private Integer todayNew; + + @JsonProperty("yesterday_new") + @ApiModelProperty("昨日新增") + private Integer yesterdayNew; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCapacityStatItemVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCapacityStatItemVO.java new file mode 100644 index 000000000..e0aa878ad --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCapacityStatItemVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-运力统计项") +public class TrCapacityStatItemVO { + + @ApiModelProperty("数值") + private Integer value; + + @ApiModelProperty("单位") + private String unit; + + @ApiModelProperty("标签") + private String label; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCapacityStatsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCapacityStatsVO.java new file mode 100644 index 000000000..ecfc77724 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCapacityStatsVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-企业运力统计") +public class TrCapacityStatsVO { + + @ApiModelProperty("车辆") + private TrCapacityStatItemVO vehicles; + + @ApiModelProperty("驾驶员") + private TrCapacityStatItemVO drivers; + + @ApiModelProperty("押运员") + private TrCapacityStatItemVO escorts; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCapacityStatusVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCapacityStatusVO.java new file mode 100644 index 000000000..6b72c7c13 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCapacityStatusVO.java @@ -0,0 +1,26 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-运力情况") +public class TrCapacityStatusVO { + + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("承运人") + private TrCapacityCountVO staff; + + @ApiModelProperty("车辆") + private TrCapacityCountVO vehicles; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCargoCategoryItemVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCargoCategoryItemVO.java new file mode 100644 index 000000000..524c37b2d --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCargoCategoryItemVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-货物品类项") +public class TrCargoCategoryItemVO { + + @ApiModelProperty("品类名称") + private String name; + + @ApiModelProperty("占比") + private Integer value; + + @ApiModelProperty("颜色标识") + private String color; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCargoCategoryVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCargoCategoryVO.java new file mode 100644 index 000000000..eb227e479 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCargoCategoryVO.java @@ -0,0 +1,29 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-货物品类") +public class TrCargoCategoryVO { + + @ApiModelProperty("标题") + private String title; + + @JsonProperty("total_orders") + @ApiModelProperty("订单总量展示") + private String totalOrders; + + @ApiModelProperty("品类数据") + private List data; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCargoTypeDetailVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCargoTypeDetailVO.java new file mode 100644 index 000000000..17b5facfe --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCargoTypeDetailVO.java @@ -0,0 +1,30 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-货物类型分布明细") +public class TrCargoTypeDetailVO { + + @JsonProperty("type_code") + @ApiModelProperty("类型编码") + private String typeCode; + + @ApiModelProperty("类型名称") + private String name; + + @ApiModelProperty("占比") + private String percentage; + + @ApiModelProperty("图表颜色") + private String color; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCargoTypeDistributionVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCargoTypeDistributionVO.java new file mode 100644 index 000000000..66b163319 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrCargoTypeDistributionVO.java @@ -0,0 +1,33 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-货物类型分布") +public class TrCargoTypeDistributionVO { + + @ApiModelProperty("标题") + private String title; + + @JsonProperty("total_orders") + @ApiModelProperty("订单总量") + private Integer totalOrders; + + @JsonProperty("total_unit") + @ApiModelProperty("总量单位") + private String totalUnit; + + @ApiModelProperty("明细") + private List details; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrEnterpriseOperationVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrEnterpriseOperationVO.java new file mode 100644 index 000000000..f40a719cf --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrEnterpriseOperationVO.java @@ -0,0 +1,27 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-企业运营") +public class TrEnterpriseOperationVO { + + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("表头") + private List columns; + + @ApiModelProperty("列表") + private List list; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrEnterpriseRowVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrEnterpriseRowVO.java new file mode 100644 index 000000000..b0d660a52 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrEnterpriseRowVO.java @@ -0,0 +1,34 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-企业运营行") +public class TrEnterpriseRowVO { + + @ApiModelProperty("排名") + private String rank; + + @ApiModelProperty("企业名称") + private String name; + + @ApiModelProperty("货运量") + private String volume; + + @JsonProperty("processed_orders") + @ApiModelProperty("处理单量") + private String processedOrders; + + @JsonProperty("on_time_rate") + @ApiModelProperty("准时配送率") + private Integer onTimeRate; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrMapLegendVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrMapLegendVO.java new file mode 100644 index 000000000..577f818e5 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrMapLegendVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-地图图例") +public class TrMapLegendVO { + + @ApiModelProperty("空闲车辆数") + private Integer idle; + + @ApiModelProperty("作业车辆数") + private Integer working; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrMapNodeDetailVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrMapNodeDetailVO.java new file mode 100644 index 000000000..3914d1f7f --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrMapNodeDetailVO.java @@ -0,0 +1,43 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-地图节点详情") +public class TrMapNodeDetailVO { + + @ApiModelProperty("标题") + private String title; + + @JsonProperty("license_plate") + @ApiModelProperty("车牌") + private String licensePlate; + + @JsonProperty("business_unit") + @ApiModelProperty("经营单位") + private String businessUnit; + + @JsonProperty("loading_place") + @ApiModelProperty("装货地") + private String loadingPlace; + + @ApiModelProperty("目的地") + private String destination; + + @JsonProperty("current_location") + @ApiModelProperty("当前位置") + private String currentLocation; + + @JsonProperty("update_time") + @ApiModelProperty("更新时间") + private String updateTime; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrMapNodeVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrMapNodeVO.java new file mode 100644 index 000000000..7041d3abc --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrMapNodeVO.java @@ -0,0 +1,33 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-地图节点") +public class TrMapNodeVO { + + @ApiModelProperty("节点ID") + private Long id; + + @ApiModelProperty("名称") + private String name; + + @ApiModelProperty("坐标 [经度, 纬度]") + private List location; + + @ApiModelProperty("状态:idle / working") + private String status; + + @ApiModelProperty("详情") + private TrMapNodeDetailVO detail; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrMonthValuePointVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrMonthValuePointVO.java new file mode 100644 index 000000000..3ae8afe2f --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrMonthValuePointVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-月度数值点") +public class TrMonthValuePointVO { + + @ApiModelProperty("月份") + private String month; + + @ApiModelProperty("数值") + private Integer value; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderStatMetricVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderStatMetricVO.java new file mode 100644 index 000000000..ba52f297a --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderStatMetricVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-订单统计数值项") +public class TrOrderStatMetricVO { + + @ApiModelProperty("数值") + private Integer value; + + @ApiModelProperty("单位") + private String unit; + + @ApiModelProperty("标签") + private String label; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderStatRateMetricVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderStatRateMetricVO.java new file mode 100644 index 000000000..c3997b794 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderStatRateMetricVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-订单统计比率项") +public class TrOrderStatRateMetricVO { + + @ApiModelProperty("展示值") + private String value; + + @ApiModelProperty("环比/趋势") + private String trend; + + @ApiModelProperty("标签") + private String label; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderStatTextMetricVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderStatTextMetricVO.java new file mode 100644 index 000000000..058514f7d --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderStatTextMetricVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-订单统计文本项") +public class TrOrderStatTextMetricVO { + + @ApiModelProperty("展示值") + private String value; + + @ApiModelProperty("单位") + private String unit; + + @ApiModelProperty("标签") + private String label; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderStatisticsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderStatisticsVO.java new file mode 100644 index 000000000..0eba9a94a --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderStatisticsVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-订单统计") +public class TrOrderStatisticsVO { + + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("订单总数") + private Long total; + + @ApiModelProperty("环比增长率") + private String trend; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderTypeChartVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderTypeChartVO.java new file mode 100644 index 000000000..b6cd8770e --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderTypeChartVO.java @@ -0,0 +1,28 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-订单类型图") +public class TrOrderTypeChartVO { + + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("图表类型") + private String type; + + @ApiModelProperty("数据") + private List data; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderTypeMonthItemVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderTypeMonthItemVO.java new file mode 100644 index 000000000..aa28cd802 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrOrderTypeMonthItemVO.java @@ -0,0 +1,27 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-订单类型月度项") +public class TrOrderTypeMonthItemVO { + + @ApiModelProperty("月份") + private String month; + + @JsonProperty("cross_border") + @ApiModelProperty("跨境") + private Integer crossBorder; + + @ApiModelProperty("国内") + private Integer domestic; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrTransportStatsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrTransportStatsVO.java new file mode 100644 index 000000000..6271a43ae --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrTransportStatsVO.java @@ -0,0 +1,31 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-运输统计") +public class TrTransportStatsVO { + + @ApiModelProperty("标题") + private String title; + + @JsonProperty("trip_count") + @ApiModelProperty("运输车次") + private Integer tripCount; + + @ApiModelProperty("运输货量") + private Double volume; + + @JsonProperty("volume_unit") + @ApiModelProperty("货量单位") + private String volumeUnit; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrTransportSummaryVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrTransportSummaryVO.java new file mode 100644 index 000000000..d2b3f9489 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrTransportSummaryVO.java @@ -0,0 +1,28 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-运输统计总结") +public class TrTransportSummaryVO { + + @ApiModelProperty("标题") + private String title; + + @JsonProperty("safe_mileage") + @ApiModelProperty("安全里程") + private String safeMileage; + + @JsonProperty("avg_delivery_time") + @ApiModelProperty("平均送达时间") + private String avgDeliveryTime; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrTypedChartVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrTypedChartVO.java new file mode 100644 index 000000000..f39268d00 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrTypedChartVO.java @@ -0,0 +1,30 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-带类型图表") +public class TrTypedChartVO { + + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("图表类型") + private String type; + + @ApiModelProperty("单位") + private String unit; + + @ApiModelProperty("数据") + private List data; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrVehicleMapVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrVehicleMapVO.java new file mode 100644 index 000000000..cac546be3 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TrVehicleMapVO.java @@ -0,0 +1,27 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区-车辆实时监控地图") +public class TrVehicleMapVO { + + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("图例") + private TrMapLegendVO legend; + + @ApiModelProperty("节点") + private List nodes; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TransportOperationZoneVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TransportOperationZoneVO.java new file mode 100644 index 000000000..1cf2247b8 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/transportZone/TransportOperationZoneVO.java @@ -0,0 +1,96 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.transportZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 南光物流业务经营分析 · 运输运营专区(整包 data 与快照 PAYLOAD_JSON 一致) + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-运输运营专区") +public class TransportOperationZoneVO { + + @ApiModelProperty("数据更新时间") + private String updateTime; + + @ApiModelProperty("大屏标题") + private String dashboardTitle; + + @ApiModelProperty("当前 Tab") + private String activeTab; + + @JsonProperty("order_statistics") + @ApiModelProperty("订单统计") + private TrOrderStatisticsVO orderStatistics; + + @JsonProperty("transport_stats") + @ApiModelProperty("运输统计") + private TrTransportStatsVO transportStats; + + @JsonProperty("order_type_chart") + @ApiModelProperty("订单类型面积图") + private TrOrderTypeChartVO orderTypeChart; + + @JsonProperty("trip_count_trend") + @ApiModelProperty("车次趋势折线图") + private TrTypedChartVO tripCountTrend; + + @JsonProperty("order_trend") + @ApiModelProperty("订单趋势面积图") + private TrTypedChartVO orderTrend; + + @JsonProperty("volume_trend") + @ApiModelProperty("货量趋势面积图") + private TrTypedChartVO volumeTrend; + + @ApiModelProperty("车辆实时监控地图") + private TrVehicleMapVO map; + + @JsonProperty("enterprise_operation") + @ApiModelProperty("企业运营表格") + private TrEnterpriseOperationVO enterpriseOperation; + + @JsonProperty("capacity_status") + @ApiModelProperty("运力情况") + private TrCapacityStatusVO capacityStatus; + + @JsonProperty("cargo_category") + @ApiModelProperty("货物品类环形图") + private TrCargoCategoryVO cargoCategory; + + @JsonProperty("on_time_rate") + @ApiModelProperty("准时配送率折线图") + private TrTypedChartVO onTimeRate; + + @JsonProperty("vehicle_utilization") + @ApiModelProperty("出车利用率柱状图") + private TrBarChartVO vehicleUtilization; + + @JsonProperty("transport_summary") + @ApiModelProperty("运输统计总结") + private TrTransportSummaryVO transportSummary; + + @JsonProperty("capacity_stats") + @ApiModelProperty("企业运力统计") + private TrCapacityStatsVO capacityStats; + + @JsonProperty("cargo_type_distribution") + @ApiModelProperty("货物类型分布") + private TrCargoTypeDistributionVO cargoTypeDistribution; + + @JsonProperty("fresh_order_stats") + @ApiModelProperty("生鲜订单统计") + private TrBrandOrderStatsVO freshOrderStats; + + @JsonProperty("vitasoy_order_stats") + @ApiModelProperty("维他奶订单统计") + private TrBrandOrderStatsVO vitasoyOrderStats; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WarehouseOperationZoneVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WarehouseOperationZoneVO.java new file mode 100644 index 000000000..7eee37645 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WarehouseOperationZoneVO.java @@ -0,0 +1,93 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * 南光物流业务经营分析 · 仓储运营专区(整包 data 与快照 PAYLOAD_JSON 一致) + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区") +public class WarehouseOperationZoneVO { + + @JsonProperty("warehouse_name") + @ApiModelProperty("仓库名称") + private String warehouseName; + + @JsonProperty("update_time") + @ApiModelProperty("数据更新时间") + private String updateTime; + + @JsonProperty("order_summary") + @ApiModelProperty("仓库订单统计(顶部)") + private WhOrderSummaryVO orderSummary; + + @JsonProperty("cold_storage_stats") + @ApiModelProperty("冻仓数据统计") + private WhColdStorageStatsVO coldStorageStats; + + @JsonProperty("temperature_exceptions") + @ApiModelProperty("温度异常事件列表") + private List temperatureExceptions; + + @JsonProperty("storage_overview") + @ApiModelProperty("仓储面积") + private WhStorageOverviewVO storageOverview; + + @JsonProperty("operation_stats") + @ApiModelProperty("运营统计") + private WhOperationStatsVO operationStats; + + @JsonProperty("business_planning") + @ApiModelProperty("业务规划") + private WhBusinessPlanningVO businessPlanning; + + @JsonProperty("throughput_trend") + @ApiModelProperty("吞吐量统计(柱状图)") + private List throughputTrend; + + @JsonProperty("area_distribution") + @ApiModelProperty("仓库面积统计(环形图)") + private WhAreaDistributionVO areaDistribution; + + @JsonProperty("capacity_utilization_trend") + @ApiModelProperty("库容利用趋势") + private WhCapacityUtilizationTrendVO capacityUtilizationTrend; + + @JsonProperty("order_statistics") + @ApiModelProperty("仓库订单统计") + private WhOrderStatisticsVO orderStatistics; + + @JsonProperty("service_statistics") + @ApiModelProperty("服务统计") + private WhServiceStatisticsVO serviceStatistics; + + @JsonProperty("order_trend") + @ApiModelProperty("仓库订单趋势") + private List orderTrend; + + @JsonProperty("turnover_rate_trend") + @ApiModelProperty("库存周转率趋势") + private WhTurnoverRateTrendVO turnoverRateTrend; + + @JsonProperty("service_capacity") + @ApiModelProperty("服务能力表格") + private List serviceCapacity; + + @JsonProperty("real_time_analysis") + @ApiModelProperty("实时分析") + private WhRealTimeAnalysisVO realTimeAnalysis; + + @ApiModelProperty("中间地图仓库点位(nodes 为标注数组)") + private WhWarehouseMapVO map; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhAreaDistributionDetailVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhAreaDistributionDetailVO.java new file mode 100644 index 000000000..8fd012305 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhAreaDistributionDetailVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-面积分布明细") +public class WhAreaDistributionDetailVO { + + @ApiModelProperty("分类名称") + private String name; + + @ApiModelProperty("数值") + private Integer value; + + @ApiModelProperty("单位") + private String unit; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhAreaDistributionVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhAreaDistributionVO.java new file mode 100644 index 000000000..6b18f0cc7 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhAreaDistributionVO.java @@ -0,0 +1,26 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-仓库面积统计(环形图)") +public class WhAreaDistributionVO { + + @JsonProperty("utilization_rate") + @ApiModelProperty("总利用率展示") + private String utilizationRate; + + @ApiModelProperty("分项") + private List details; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhBusinessPlanningVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhBusinessPlanningVO.java new file mode 100644 index 000000000..538496b97 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhBusinessPlanningVO.java @@ -0,0 +1,33 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-业务规划(面积 m²)") +public class WhBusinessPlanningVO { + + @JsonProperty("general_warehouse") + @ApiModelProperty("普通仓规划") + private Integer generalWarehouse; + + @JsonProperty("cold_storage") + @ApiModelProperty("冷冻仓规划") + private Integer coldStorage; + + @JsonProperty("food_processing") + @ApiModelProperty("食品加工区规划") + private Integer foodProcessing; + + @JsonProperty("automated_storage") + @ApiModelProperty("自动化立库规划") + private Integer automatedStorage; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhCapacityUtilizationTrendVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhCapacityUtilizationTrendVO.java new file mode 100644 index 000000000..c44b17073 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhCapacityUtilizationTrendVO.java @@ -0,0 +1,26 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-库容利用趋势") +public class WhCapacityUtilizationTrendVO { + + @JsonProperty("peak_label") + @ApiModelProperty("峰值标注") + private String peakLabel; + + @ApiModelProperty("按月序列") + private List data; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhColdStorageMetricVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhColdStorageMetricVO.java new file mode 100644 index 000000000..e1d94ec01 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhColdStorageMetricVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-冻仓指标") +public class WhColdStorageMetricVO { + + @ApiModelProperty("展示值") + private String value; + + @ApiModelProperty("趋势") + private String trend; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhColdStorageStatsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhColdStorageStatsVO.java new file mode 100644 index 000000000..94d6b1cab --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhColdStorageStatsVO.java @@ -0,0 +1,29 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-冻仓数据统计") +public class WhColdStorageStatsVO { + + @JsonProperty("revenue_share") + @ApiModelProperty("收入占比") + private WhColdStorageMetricVO revenueShare; + + @JsonProperty("utilization_rate") + @ApiModelProperty("利用率") + private WhColdStorageMetricVO utilizationRate; + + @JsonProperty("damage_rate") + @ApiModelProperty("损耗率") + private WhColdStorageMetricVO damageRate; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhMapNodeVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhMapNodeVO.java new file mode 100644 index 000000000..ea0b2565a --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhMapNodeVO.java @@ -0,0 +1,30 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-地图点位") +public class WhMapNodeVO { + + @ApiModelProperty("点位ID") + private Long id; + + @ApiModelProperty("地图标注名称(短名)") + private String name; + + @ApiModelProperty("坐标 [经度, 纬度]") + private List location; + + @ApiModelProperty("弹窗详情") + private WhMapPopupVO detail; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhMapPopupVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhMapPopupVO.java new file mode 100644 index 000000000..7020f43ac --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhMapPopupVO.java @@ -0,0 +1,41 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-地图弹窗") +public class WhMapPopupVO { + + @JsonProperty("warehouse_name") + @ApiModelProperty("仓库名称") + private String warehouseName; + + @JsonProperty("total_area") + @ApiModelProperty("总面积") + private String totalArea; + + @JsonProperty("total_sku") + @ApiModelProperty("SKU 数") + private Integer totalSku; + + @JsonProperty("today_orders") + @ApiModelProperty("当日订单") + private Integer todayOrders; + + @JsonProperty("utilization_rate") + @ApiModelProperty("库容利用率") + private String utilizationRate; + + @JsonProperty("rental_rate") + @ApiModelProperty("仓库出租率") + private String rentalRate; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhMonthRatePointVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhMonthRatePointVO.java new file mode 100644 index 000000000..597715058 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhMonthRatePointVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-月份-比率点") +public class WhMonthRatePointVO { + + @ApiModelProperty("月份") + private String month; + + @ApiModelProperty("比率或趋势值") + private Integer rate; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhOperationStatsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhOperationStatsVO.java new file mode 100644 index 000000000..e40a76c96 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhOperationStatsVO.java @@ -0,0 +1,33 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-运营统计") +public class WhOperationStatsVO { + + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("数值") + private Integer value; + + @ApiModelProperty("单位") + private String unit; + + @JsonProperty("growth_rate") + @ApiModelProperty("增幅文案") + private String growthRate; + + @ApiModelProperty("趋势:up / down") + private String trend; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhOrderStatisticsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhOrderStatisticsVO.java new file mode 100644 index 000000000..dae5f27ac --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhOrderStatisticsVO.java @@ -0,0 +1,29 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-仓库订单统计") +public class WhOrderStatisticsVO { + + @JsonProperty("annual_orders") + @ApiModelProperty("本年度订单") + private Long annualOrders; + + @JsonProperty("quarterly_orders") + @ApiModelProperty("本季度订单") + private Long quarterlyOrders; + + @JsonProperty("monthly_orders") + @ApiModelProperty("本月度订单") + private Long monthlyOrders; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhOrderSummaryCountItemVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhOrderSummaryCountItemVO.java new file mode 100644 index 000000000..01c02ebd8 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhOrderSummaryCountItemVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-订单汇总项") +public class WhOrderSummaryCountItemVO { + + @ApiModelProperty("标签") + private String label; + + @ApiModelProperty("数量") + private Integer value; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhOrderSummaryVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhOrderSummaryVO.java new file mode 100644 index 000000000..89d5c392d --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhOrderSummaryVO.java @@ -0,0 +1,33 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-仓库订单汇总") +public class WhOrderSummaryVO { + + @JsonProperty("total_count") + @ApiModelProperty("订单总量(翻牌器)") + private String totalCount; + + @JsonProperty("inbound_orders") + @ApiModelProperty("入库单") + private WhOrderSummaryCountItemVO inboundOrders; + + @JsonProperty("outbound_orders") + @ApiModelProperty("出库单") + private WhOrderSummaryCountItemVO outboundOrders; + + @JsonProperty("operation_orders") + @ApiModelProperty("作业单") + private WhOrderSummaryCountItemVO operationOrders; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhRealTimeAnalysisVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhRealTimeAnalysisVO.java new file mode 100644 index 000000000..df7cefde8 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhRealTimeAnalysisVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-实时分析") +public class WhRealTimeAnalysisVO { + + @JsonProperty("utilization_rate") + @ApiModelProperty("库容利用率") + private WhRealTimeGaugeVO utilizationRate; + + @JsonProperty("rental_rate") + @ApiModelProperty("仓库出租率") + private WhRealTimeGaugeVO rentalRate; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhRealTimeGaugeVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhRealTimeGaugeVO.java new file mode 100644 index 000000000..dcd1b3e8c --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhRealTimeGaugeVO.java @@ -0,0 +1,25 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-实时分析仪表盘单项") +public class WhRealTimeGaugeVO { + + @ApiModelProperty("当前值") + private String value; + + @ApiModelProperty("同比变化") + private String comparison; + + @ApiModelProperty("趋势:up / down") + private String trend; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhServiceCapacityRowVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhServiceCapacityRowVO.java new file mode 100644 index 000000000..5cdaafb2a --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhServiceCapacityRowVO.java @@ -0,0 +1,33 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-服务能力表格行") +public class WhServiceCapacityRowVO { + + @ApiModelProperty("序号") + private Integer rank; + + @ApiModelProperty("仓库名称") + private String name; + + @JsonProperty("total_area") + @ApiModelProperty("总面积展示") + private String totalArea; + + @ApiModelProperty("仓储单量展示") + private String processed; + + @ApiModelProperty("吞吐量展示") + private String throughput; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhServiceStatisticsVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhServiceStatisticsVO.java new file mode 100644 index 000000000..12e4955f9 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhServiceStatisticsVO.java @@ -0,0 +1,31 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-服务统计") +public class WhServiceStatisticsVO { + + @ApiModelProperty("合作客户数") + private Integer clients; + + @ApiModelProperty("覆盖范围文案") + private String coverage; + + @JsonProperty("on_time_rate") + @ApiModelProperty("订单准时率") + private String onTimeRate; + + @JsonProperty("rate_change") + @ApiModelProperty("准时率变化") + private String rateChange; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhStorageOverviewVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhStorageOverviewVO.java new file mode 100644 index 000000000..5e6b79ee7 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhStorageOverviewVO.java @@ -0,0 +1,30 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-仓储面积") +public class WhStorageOverviewVO { + + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("数值") + private Integer value; + + @ApiModelProperty("单位") + private String unit; + + @JsonProperty("sub_text") + @ApiModelProperty("副文案") + private String subText; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhTemperatureExceptionVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhTemperatureExceptionVO.java new file mode 100644 index 000000000..909beaaf6 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhTemperatureExceptionVO.java @@ -0,0 +1,40 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-温度异常事件") +public class WhTemperatureExceptionVO { + + @ApiModelProperty("序号") + private Integer rank; + + @ApiModelProperty("等级") + private String level; + + @ApiModelProperty("区域") + private String area; + + @JsonProperty("device_id") + @ApiModelProperty("设备编号") + private String deviceId; + + @ApiModelProperty("温度") + private String temperature; + + @ApiModelProperty("持续时长") + private String duration; + + @JsonProperty("occur_time") + @ApiModelProperty("发生时间") + private String occurTime; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhThroughputMonthItemVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhThroughputMonthItemVO.java new file mode 100644 index 000000000..4b9b363bc --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhThroughputMonthItemVO.java @@ -0,0 +1,22 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-吞吐量月度点") +public class WhThroughputMonthItemVO { + + @ApiModelProperty("月份标签") + private String month; + + @ApiModelProperty("数值") + private Integer value; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhTurnoverRateTrendVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhTurnoverRateTrendVO.java new file mode 100644 index 000000000..9c2084283 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhTurnoverRateTrendVO.java @@ -0,0 +1,29 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-库存周转率趋势") +public class WhTurnoverRateTrendVO { + + @JsonProperty("current_month") + @ApiModelProperty("本周周转率展示文案") + private String currentMonth; + + @ApiModelProperty("本年度周转率展示文案") + private String annual; + + @ApiModelProperty("按月序列") + private List data; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhWarehouseMapVO.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhWarehouseMapVO.java new file mode 100644 index 000000000..97c021156 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/biReport/vo/warehouseZone/WhWarehouseMapVO.java @@ -0,0 +1,24 @@ +package com.mhd.bi.interfaces.facadeApi.biReport.vo.warehouseZone; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@ApiModel("BI-仓储运营专区-地图") +public class WhWarehouseMapVO { + + @ApiModelProperty("图例说明") + private String legend; + + @ApiModelProperty("仓库点位列表") + private List nodes; +} diff --git a/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/testTable/TestTableApi.java b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/testTable/TestTableApi.java new file mode 100644 index 000000000..2c7b97e37 --- /dev/null +++ b/mhd-bi/src/main/java/com/mhd/bi/interfaces/facadeApi/testTable/TestTableApi.java @@ -0,0 +1,45 @@ +package com.mhd.bi.interfaces.facadeApi.testTable; + +import com.mhd.bi.domain.testTable.entity.TestTable; +import com.mhd.bi.domain.testTable.repository.facade.TestTableService; +import com.mhd.common.core.web.controller.BaseController; +import com.mhd.common.core.web.domain.AjaxResult; +import com.mhd.common.log.annotation.Log; +import com.mhd.common.log.enums.BusinessType; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@Api(tags = "test") +@Slf4j +@RestController +@RequestMapping("/testTableApi") +@CrossOrigin +public class TestTableApi extends BaseController { + + @Autowired + private TestTableService testTableService; + + + @ApiOperation("查询用户列表") + @GetMapping("/test") + public AjaxResult test(String txt) { + String result = txt; + return AjaxResult.success(result); + } + + + @ApiOperation("查询用户列表") + @GetMapping("/list") + public AjaxResult list(String txt) { + List list = testTableService.list(); + return AjaxResult.success(list); + } + + +} \ No newline at end of file diff --git a/mhd-bi/src/main/resources/banner.txt b/mhd-bi/src/main/resources/banner.txt new file mode 100644 index 000000000..97c5c27c3 --- /dev/null +++ b/mhd-bi/src/main/resources/banner.txt @@ -0,0 +1,10 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} + _ _ _ + (_) | | | | + _ __ _ _ ___ _ _ _ ______ __ _ _ _ | |_ | |__ +| '__|| | | | / _ \ | | | || ||______| / _` || | | || __|| '_ \ +| | | |_| || (_) || |_| || | | (_| || |_| || |_ | | | | +|_| \__,_| \___/ \__, ||_| \__,_| \__,_| \__||_| |_| + __/ | + |___/ \ No newline at end of file diff --git a/mhd-bi/src/main/resources/bootstrap.yml b/mhd-bi/src/main/resources/bootstrap.yml new file mode 100644 index 000000000..fa1d95e1a --- /dev/null +++ b/mhd-bi/src/main/resources/bootstrap.yml @@ -0,0 +1,37 @@ +# Tomcat +server: + port: 8021 +# Spring +spring: + application: + # 应用名称 + name: mhd-bi-service + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: +# server-addr: 127.0.0.1:8848 + # 线上测试环境配置 容器名+端口号 +# server-addr: 10.33.0.129:6010 +# server-addr: 10.102.192.5:6848 +# username: nacos +# password: manhuoda@2023 + #线上正式环境 + server-addr: 10.102.192.31:6848 + username: nacos + password: manhuoda@2023 + config: +# server-addr: 127.0.0.1:8848 + # 线上测试环境配置 容器名+端口号 +# server-addr: 10.33.0.129:6010 + server-addr: 10.102.192.31:6848 + username: nacos + password: manhuoda@2023 + #线上正式环境 + group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置 + file-extension: yml #默认properties + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} \ No newline at end of file diff --git a/mhd-bi/src/main/resources/logback.xml b/mhd-bi/src/main/resources/logback.xml new file mode 100644 index 000000000..753c19c22 --- /dev/null +++ b/mhd-bi/src/main/resources/logback.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mhd-bi/src/main/resources/mapper/TextTableMapper.xml b/mhd-bi/src/main/resources/mapper/TextTableMapper.xml new file mode 100644 index 000000000..1ccbcf43a --- /dev/null +++ b/mhd-bi/src/main/resources/mapper/TextTableMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/mhd-bi/src/main/resources/mapper/biComprehensive/BiComprehensiveReportMapper.xml b/mhd-bi/src/main/resources/mapper/biComprehensive/BiComprehensiveReportMapper.xml new file mode 100644 index 000000000..b0339bb32 --- /dev/null +++ b/mhd-bi/src/main/resources/mapper/biComprehensive/BiComprehensiveReportMapper.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/mhd-bi/src/main/resources/mapper/biHkMacaoServiceZone/BiHkMacaoServiceZoneReportMapper.xml b/mhd-bi/src/main/resources/mapper/biHkMacaoServiceZone/BiHkMacaoServiceZoneReportMapper.xml new file mode 100644 index 000000000..8d7934d03 --- /dev/null +++ b/mhd-bi/src/main/resources/mapper/biHkMacaoServiceZone/BiHkMacaoServiceZoneReportMapper.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/mhd-bi/src/main/resources/mapper/biOverallOperation/BiOverallOperationReportMapper.xml b/mhd-bi/src/main/resources/mapper/biOverallOperation/BiOverallOperationReportMapper.xml new file mode 100644 index 000000000..22761e249 --- /dev/null +++ b/mhd-bi/src/main/resources/mapper/biOverallOperation/BiOverallOperationReportMapper.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/mhd-bi/src/main/resources/mapper/biPlatformSurveillance/BiPlatformSurveillanceReportMapper.xml b/mhd-bi/src/main/resources/mapper/biPlatformSurveillance/BiPlatformSurveillanceReportMapper.xml new file mode 100644 index 000000000..5e240368c --- /dev/null +++ b/mhd-bi/src/main/resources/mapper/biPlatformSurveillance/BiPlatformSurveillanceReportMapper.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/mhd-bi/src/main/resources/mapper/biSnapshotSync/BiSnapshotWriteMapper.xml b/mhd-bi/src/main/resources/mapper/biSnapshotSync/BiSnapshotWriteMapper.xml new file mode 100644 index 000000000..21529801a --- /dev/null +++ b/mhd-bi/src/main/resources/mapper/biSnapshotSync/BiSnapshotWriteMapper.xml @@ -0,0 +1,40 @@ + + + + + + insert into NGWL_TEST_BI.BI_COMPREHENSIVE_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG, REMARK) + values (#{payloadJson}, SYSDATE, SYSDATE, 1, #{remark}) + + + + insert into NGWL_TEST_BI.BI_WAREHOUSE_TRANSPORT_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG, REMARK) + values (#{payloadJson}, SYSDATE, SYSDATE, 1, #{remark}) + + + + insert into NGWL_TEST_BI.BI_PLATFORM_SURVEILLANCE_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG, REMARK) + values (#{payloadJson}, SYSDATE, SYSDATE, 1, #{remark}) + + + + insert into NGWL_TEST_BI.BI_OVERALL_OPERATION_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG, REMARK) + values (#{payloadJson}, SYSDATE, SYSDATE, 1, #{remark}) + + + + insert into NGWL_TEST_BI.BI_WAREHOUSE_OPERATION_ZONE_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG, REMARK) + values (#{payloadJson}, SYSDATE, SYSDATE, 1, #{remark}) + + + + insert into NGWL_TEST_BI.BI_TRANSPORT_OPERATION_ZONE_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG, REMARK) + values (#{payloadJson}, SYSDATE, SYSDATE, 1, #{remark}) + + + + insert into NGWL_TEST_BI.BI_HK_MACAO_SERVICE_ZONE_SNAPSHOT (PAYLOAD_JSON, CREATE_TIME, UPDATE_TIME, DEL_FLAG, REMARK) + values (#{payloadJson}, SYSDATE, SYSDATE, 1, #{remark}) + + diff --git a/mhd-bi/src/main/resources/mapper/biTransportOperationZone/BiTransportOperationZoneReportMapper.xml b/mhd-bi/src/main/resources/mapper/biTransportOperationZone/BiTransportOperationZoneReportMapper.xml new file mode 100644 index 000000000..98a24dcf6 --- /dev/null +++ b/mhd-bi/src/main/resources/mapper/biTransportOperationZone/BiTransportOperationZoneReportMapper.xml @@ -0,0 +1,22 @@ + + + + + + diff --git a/mhd-bi/src/main/resources/mapper/biWarehouseOperationZone/BiWarehouseOperationZoneReportMapper.xml b/mhd-bi/src/main/resources/mapper/biWarehouseOperationZone/BiWarehouseOperationZoneReportMapper.xml new file mode 100644 index 000000000..4bce04b54 --- /dev/null +++ b/mhd-bi/src/main/resources/mapper/biWarehouseOperationZone/BiWarehouseOperationZoneReportMapper.xml @@ -0,0 +1,22 @@ + + + + + + diff --git a/mhd-bi/src/main/resources/mapper/biWarehouseTransport/BiWarehouseTransportReportMapper.xml b/mhd-bi/src/main/resources/mapper/biWarehouseTransport/BiWarehouseTransportReportMapper.xml new file mode 100644 index 000000000..8811f62f6 --- /dev/null +++ b/mhd-bi/src/main/resources/mapper/biWarehouseTransport/BiWarehouseTransportReportMapper.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/constant/ServiceNameConstants.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/constant/ServiceNameConstants.java index 9943737d1..326d15114 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/constant/ServiceNameConstants.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/constant/ServiceNameConstants.java @@ -63,6 +63,9 @@ public class ServiceNameConstants //OMS结算系统 public static final String OMS_SERVICE = "mhd-oms-service"; + //YMS系统 + public static final String YMS_SERVICE = "mhd-yms-service"; + } \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BranchFreightBillDO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BranchFreightBillDO.java index d74b14510..ff83fce07 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BranchFreightBillDO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BranchFreightBillDO.java @@ -98,17 +98,17 @@ public class BranchFreightBillDO extends BaseVOEntity { private BigDecimal retainedAmount; @ApiModelProperty("开单时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "开单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date billingTime; @ApiModelProperty("签收时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "签收时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date signTime; @ApiModelProperty("确认时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "确认时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date authTime; @@ -125,4 +125,4 @@ public class BranchFreightBillDO extends BaseVOEntity { @ApiModelProperty(name = "权限菜单ID") private Long permissionMenuId; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDocumentDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDocumentDTO.java index 67055a95b..c90f508ad 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDocumentDTO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/BusinessDocumentDTO.java @@ -1,5 +1,6 @@ package com.mhd.common.core.domain.dto; +import com.baomidou.mybatisplus.annotation.TableField; import com.mhd.common.core.annotation.Excel; import lombok.Data; import java.util.Date; @@ -130,7 +131,7 @@ public class BusinessDocumentDTO extends BaseVOEntity{ private Integer payStatus; @ApiModelProperty("付款时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "付款时间", width = 30, dateFormat = "yyyy-MM-dd") private Date payTime; @@ -138,7 +139,7 @@ public class BusinessDocumentDTO extends BaseVOEntity{ private Integer waybillVerifyFlag; @ApiModelProperty("标记核实时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "标记核实时间", width = 30, dateFormat = "yyyy-MM-dd") private Date waybillVerifyTime; @@ -207,7 +208,7 @@ public class BusinessDocumentDTO extends BaseVOEntity{ private BigDecimal commissionRate; @ApiModelProperty("货主付款时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "付款时间", width = 30, dateFormat = "yyyy-MM-dd") private Date payTimeShipper; @@ -233,4 +234,15 @@ public class BusinessDocumentDTO extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/DispatchFeignDto.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/DispatchFeignDto.java index 1e44d499b..eb53b120a 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/DispatchFeignDto.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/DispatchFeignDto.java @@ -46,7 +46,7 @@ public class DispatchFeignDto extends BaseVOEntity{ private Date dispatchDate; /** 计划发车日期 */ @ApiModelProperty("计划发车日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "计划发车日期", width = 30, dateFormat = "yyyy-MM-dd") private Date planDepartureDate; /** 计划送货时间/提货时间 */ @@ -56,12 +56,12 @@ public class DispatchFeignDto extends BaseVOEntity{ private Date deliveryDate; /** 最后装车时间 */ @ApiModelProperty("最后装车时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "最后装车时间", width = 30, dateFormat = "yyyy-MM-dd") private Date loadDate; /** 发车日期 */ @ApiModelProperty("发车日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "发车日期", width = 30, dateFormat = "yyyy-MM-dd") private Date departureDate; /** 接车日期(入库时间) */ @@ -191,19 +191,19 @@ public class DispatchFeignDto extends BaseVOEntity{ private Long transportStatus; /** 到达时间 */ @ApiModelProperty("到达时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "到达时间", width = 30, dateFormat = "yyyy-MM-dd") private Date arriveDate; /** 实际提货/送货时间 */ @ApiModelProperty("实际提货/送货时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "实际提货/送货时间", width = 30, dateFormat = "yyyy-MM-dd") private Date actualDeliveryDate; @ApiModelProperty("是否接单(1-未接单,2-已接单,3-已拒绝)") @Excel(name = "是否接单(1-未接单,2-已接单,3-已拒绝)") private Long receivingStatus; @ApiModelProperty("接单时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "接单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date receivingDate; @ApiModelProperty("装货照片") @@ -239,7 +239,7 @@ public class DispatchFeignDto extends BaseVOEntity{ @ApiModelProperty(name = "发货地址纬度") private String sendLatitude; @ApiModelProperty("发货时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date sendTime; @ApiModelProperty(name = "收货地址地址") @@ -249,7 +249,7 @@ public class DispatchFeignDto extends BaseVOEntity{ @ApiModelProperty(name = "收货地址纬度") private String receiveLatitude; @ApiModelProperty("收货时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date receiveTime; @ApiModelProperty(name = "派车运单id集合") private Long[] waybillIds; @@ -328,17 +328,17 @@ public class DispatchFeignDto extends BaseVOEntity{ private BigDecimal maxBiddingPrice; @ApiModelProperty("议价截止时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date biddingTime; @ApiModelProperty("议价截止时间-开始") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date biddingTimeStart; @ApiModelProperty("议价截止时间-结束") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date biddingTimeEnd; @@ -397,4 +397,4 @@ public class DispatchFeignDto extends BaseVOEntity{ @ApiModelProperty("支付凭证") private String payImages; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/DispatchWaybillDto.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/DispatchWaybillDto.java index 495d80fb7..07393f7e7 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/DispatchWaybillDto.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/DispatchWaybillDto.java @@ -124,7 +124,7 @@ public class DispatchWaybillDto extends BaseVOEntity{ @ApiModelProperty(name = "发货地址纬度") private String sendLatitude; @ApiModelProperty("发货时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date sendTime; @ApiModelProperty(name = "收货地址经度") @@ -134,7 +134,7 @@ public class DispatchWaybillDto extends BaseVOEntity{ @ApiModelProperty(name = "收货地址纬度") private String receiveLatitude; @ApiModelProperty("收货时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date receiveTime; /** @@ -164,4 +164,4 @@ public class DispatchWaybillDto extends BaseVOEntity{ @ApiModelProperty("支付凭证") private String payImages; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationDTO.java index 7ce6b67a7..d822270a1 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationDTO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ReconciliationDTO.java @@ -23,7 +23,7 @@ public class ReconciliationDTO extends BaseVOEntity{ private static final long serialVersionUID = 1L; @ApiModelProperty("创建时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date createTime; @@ -89,12 +89,12 @@ public class ReconciliationDTO extends BaseVOEntity{ private String waybillSourceName; @ApiModelProperty("对账起始日") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "对账起始日", width = 30, dateFormat = "yyyy-MM-dd") private Date reconciliationStart; @ApiModelProperty("对账结束日") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "对账结束日", width = 30, dateFormat = "yyyy-MM-dd") private Date reconciliationEnd; @@ -186,7 +186,7 @@ public class ReconciliationDTO extends BaseVOEntity{ private Integer waybillVerifyFlag; @ApiModelProperty("标记核实时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "标记核实时间", width = 30, dateFormat = "yyyy-MM-dd") private Date waybillVerifyTime; @@ -202,27 +202,27 @@ public class ReconciliationDTO extends BaseVOEntity{ private Long invoiceInfoId; @ApiModelProperty("核销时间开始") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "核销时间开始", width = 30, dateFormat = "yyyy-MM-dd") private Date collectionTimeStart; @ApiModelProperty("核销时间结束") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "核销时间结束", width = 30, dateFormat = "yyyy-MM-dd") private Date collectionTimeEnd; @ApiModelProperty("创建时间开始") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "创建时间开始", width = 30, dateFormat = "yyyy-MM-dd") private String createTimeStart; @ApiModelProperty("创建时间结束") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "创建时间结束", width = 30, dateFormat = "yyyy-MM-dd") private String createTimeEnd; @ApiModelProperty("审核时间开始") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "审核时间开始", width = 30, dateFormat = "yyyy-MM-dd") private Date authTimeStart; @ApiModelProperty("审核时间结束") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "审核时间结束", width = 30, dateFormat = "yyyy-MM-dd") private Date authTimeEnd; diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ServiceBillDO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ServiceBillDO.java index 08129b95d..4781ad673 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ServiceBillDO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/ServiceBillDO.java @@ -89,17 +89,17 @@ public class ServiceBillDO extends BaseVOEntity { private BigDecimal freight; @ApiModelProperty("开单时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "开单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date billingTime; @ApiModelProperty("签收时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "签收时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date signTime; @ApiModelProperty("交账时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "交账时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date reportTime; @@ -108,4 +108,4 @@ public class ServiceBillDO extends BaseVOEntity { @ApiModelProperty(name = "权限菜单ID") private Long permissionMenuId; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/UserDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/UserDTO.java index c1865cadc..4d7cd3493 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/UserDTO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/UserDTO.java @@ -45,10 +45,10 @@ public class UserDTO extends BaseVOEntity { private String userIdcardNumber; @ApiModelProperty(name = "身份证号加密") private String userIdcardNumberDes; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期自") private Date userIdcardDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期至") private Date userIdcardDateTo; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") @@ -79,7 +79,7 @@ public class UserDTO extends BaseVOEntity { private String userWechatSessionKey; @ApiModelProperty(name = "密码登录错误次数") private Integer passwordWrongTimes; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "最近一次登录时间") private Date lastLoginTime; @ApiModelProperty(name = "最近一次登录IP") @@ -92,15 +92,15 @@ public class UserDTO extends BaseVOEntity { private Integer userAuthStatus; @ApiModelProperty(name = "用户审核人用户姓名") private String userAuthByUsername; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户审核时间") private Date userAuthTime; @ApiModelProperty(name = "加入黑名单备注(解除时需要清空)") private String userStatusRemark; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户状态更新时间") private Date userStatusTime; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户生日") private Date userBirthday; @ApiModelProperty(name = "用户住址信息") @@ -149,4 +149,4 @@ public class UserDTO extends BaseVOEntity { private List userIds; @ApiModelProperty(name = "菜单表ID") public Long permissionMenuId; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/UserDriverDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/UserDriverDTO.java index b3c1f9fcf..3829b4ecd 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/UserDriverDTO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/UserDriverDTO.java @@ -36,15 +36,15 @@ public class UserDriverDTO { @ApiModelProperty(name = "驾驶证发证机关") private String driverCertificationAuthority; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "初次领证日期") private Date driverLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期开始日期") private Date driverLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期到期日期") private Date driverLicenseDateTo; @@ -75,15 +75,15 @@ public class UserDriverDTO { @ApiModelProperty(name = "从业资格证类别名称") private String driverWorkLicenseTypeName; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证初次领证日期") private Date driverWorkLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期开始日期") private Date driverWorkLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期到期日期") private Date driverWorkLicenseDateTo; @@ -102,10 +102,10 @@ public class UserDriverDTO { @ApiModelProperty(name = "经营许可证业户名称") private String driverBusinessLicenseOwner; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "经营许可证有效期开始日期") private Date driverBusinessLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "经营许可证有效期到期日期") private Date driverBusinessLicenseDateTo; @@ -130,11 +130,11 @@ public class UserDriverDTO { @ApiModelProperty(name = "企业注册地址") private String driverEnterpriseAddress; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业执照有效期开始日期") private Date driverEnterpriseLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业执照有效期到期日期") private Date driverEnterpriseLicenseDateTo; @@ -156,11 +156,11 @@ public class UserDriverDTO { @ApiModelProperty(name = "法人身份证号") private String driverCorpIdcardNumber; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期开始日期") private Date driverCorpIdcardDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期结束日期") private Date driverCorpIdcardDateTo; @@ -205,4 +205,4 @@ public class UserDriverDTO { @ApiModelProperty(value = "绑定来源 1-新增,2-绑定接口") private Integer bindSource; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/YmsSysDeptDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/YmsSysDeptDTO.java new file mode 100644 index 000000000..5883b1480 --- /dev/null +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/YmsSysDeptDTO.java @@ -0,0 +1,47 @@ +package com.mhd.common.core.domain.dto; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author: brb + * @description: + * @create: 2026-05-13 10:28 + */ +public class YmsSysDeptDTO { + /** 部门ID */ + private Long deptId; + + /** 父部门ID */ + private Long parentId; + + /** 祖级列表 */ + private String ancestors; + + /** 部门名称 */ + private String deptName; + + /** 显示顺序 */ + private Integer orderNum; + + /** 负责人 */ + private String leader; + + /** 联系电话 */ + private String phone; + + /** 邮箱 */ + private String email; + + /** 部门状态:0正常,1停用 */ + private String status; + + /** 删除标志(0代表存在 2代表删除) */ + private String delFlag; + + /** 父部门名称 */ + private String parentName; + + /** 子部门 */ + private List children = new ArrayList(); +} diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/YmsSysUserDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/YmsSysUserDTO.java new file mode 100644 index 000000000..1358a1829 --- /dev/null +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/YmsSysUserDTO.java @@ -0,0 +1,105 @@ +package com.mhd.common.core.domain.dto; + +import com.mhd.common.core.annotation.Excel; +import com.mhd.common.core.annotation.Excels; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @author: brb + * @description: YMS系统用户DTO + * @create: 2026-05-13 10:27 + */ +@Data +public class YmsSysUserDTO { + /** 用户ID */ + @Excel(name = "用户序号", prompt = "用户编号") + private Long userId; + + /** 部门ID */ + @Excel(name = "部门编号") + private Long deptId; + + /** 用户账号 */ + @Excel(name = "登录名称") + private String userName; + + /** 用户昵称 */ + @Excel(name = "用户名称") + private String nickName; + + /** 用户邮箱 */ + @Excel(name = "用户邮箱") + private String email; + + /** 手机号码 */ + @Excel(name = "手机号码") + private String phonenumber; + + /** 用户性别 */ + @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知") + private String sex; + + /** 用户头像 */ + private String avatar; + + /** 密码 */ + private String password; + + /** 帐号状态(0正常 1停用) */ + @Excel(name = "帐号状态", readConverterExp = "0=正常,1=停用") + private String status; + + /** 删除标志(0代表存在 2代表删除) */ + private String delFlag; + + /** 最后登录IP */ + @Excel(name = "最后登录IP") + private String loginIp; + + /** 最后登录时间 */ + @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date loginDate; + + /** 部门对象 */ + @Excels({ + @Excel(name = "部门名称", targetAttr = "deptName", type = Excel.Type.EXPORT), + @Excel(name = "部门负责人", targetAttr = "leader", type = Excel.Type.EXPORT) + }) + private YmsSysDeptDTO dept; + + /** 角色对象 */ + private List roles; + + /** 角色组 */ + private Long[] roleIds; + + /** 岗位组 */ + private Long[] postIds; + + /** 角色ID */ + private Long roleId; + + /** szwl用户ID */ + private Long szwlUserId; + + /** 一级组织表ID */ + private Long topOrganizationId; + + /** 组织表ID */ + private Long organizationId; + + /** 角色code集合 */ + private List roleCodes; + + /** 角色名称集合 */ + private List roleNames; + + /** 推广码 */ + private String promoCode; + + /** 账号类型 1.普通账号,2.组织账号,3.一级账号,4.平台员工,5.企业员工,6.合作商 */ + private Integer userAccountType; +} diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsShipperDTO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsShipperDTO.java index 2034e51b9..c66ff4d73 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsShipperDTO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/TmsShipperDTO.java @@ -27,6 +27,8 @@ public class TmsShipperDTO implements Serializable { /**货主类型(0-个人货主,1-企业货主))*/ @ApiModelProperty(value = "货主类型(0-个人货主,1-企业货主))") private Integer shipperType; + @ApiModelProperty(name = "货主账号") + private String userAccount; @ApiModelProperty(name = "最高组织id") private Long topOrganizationId; @ApiModelProperty(name = "归属组织id") diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/CapitalFlowReport.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/CapitalFlowReport.java index c7f758a8b..945e75165 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/CapitalFlowReport.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/CapitalFlowReport.java @@ -89,7 +89,7 @@ public class CapitalFlowReport extends BaseVOEntity{ private Integer reportStatus; @ApiModelProperty("上报日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "上报日期", width = 30, dateFormat = "yyyy-MM-dd") private Date reportTime; @@ -102,7 +102,7 @@ public class CapitalFlowReport extends BaseVOEntity{ private Integer verifyStatus; @ApiModelProperty("信息检验时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "信息检验时间", width = 30, dateFormat = "yyyy-MM-dd") private Date verifyTime; @@ -129,4 +129,4 @@ public class CapitalFlowReport extends BaseVOEntity{ @ApiModelProperty("符合全部流水上报条件(1-符合,2-不符合)") private Integer accordReportFlag; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/DriverReport.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/DriverReport.java index 1fb86c9d2..4812cb53d 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/DriverReport.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/DriverReport.java @@ -59,22 +59,22 @@ public class DriverReport extends BaseVOEntity { private String remark; @ApiModelProperty("驾驶证有效期自") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "驾驶证有效期自", width = 30, dateFormat = "yyyy-MM-dd") private Date validPeriodFrom; @ApiModelProperty("驾驶证有效期至") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "驾驶证有效期至", width = 30, dateFormat = "yyyy-MM-dd") private Date validPeriodTo; @ApiModelProperty("身份证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "身份证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date idCardPeriodFrom; @ApiModelProperty("身份证有效期结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "身份证有效期结束日期", width = 30, dateFormat = "yyyy-MM-dd") private Date idCardPeriodTo; @@ -83,7 +83,7 @@ public class DriverReport extends BaseVOEntity { private Integer idCardIsEndless; @ApiModelProperty("首次驾照签发日期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "首次驾照签发日期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date icenseFirstGetDate; @@ -92,7 +92,7 @@ public class DriverReport extends BaseVOEntity { private Integer reportStatus; @ApiModelProperty("上报日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "上报日期", width = 30, dateFormat = "yyyy-MM-dd") private Date reportTime; @@ -105,7 +105,7 @@ public class DriverReport extends BaseVOEntity { private Integer verifyStatus; @ApiModelProperty("信息检验时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "信息检验时间", width = 30, dateFormat = "yyyy-MM-dd") private Date verifyTime; @@ -163,4 +163,4 @@ public class DriverReport extends BaseVOEntity { @ApiModelProperty("操作类型(1- 新增 2-绑定车辆 3-解绑车辆)") private Integer typeFlag; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/TransportNoteReport.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/TransportNoteReport.java index 3e81ba4ee..a53abbdf4 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/TransportNoteReport.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/TransportNoteReport.java @@ -48,12 +48,12 @@ public class TransportNoteReport extends BaseVOEntity{ private String waybillId; @ApiModelProperty("运单生成时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "运单生成时间", width = 30, dateFormat = "yyyy-MM-dd") private Date consignmentDateTime; @ApiModelProperty("上报时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "上报时间", width = 30, dateFormat = "yyyy-MM-dd") private Date sendToProDateTime; @@ -62,12 +62,12 @@ public class TransportNoteReport extends BaseVOEntity{ private String businessTypeCode; @ApiModelProperty("发货日期时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "发货日期时间", width = 30, dateFormat = "yyyy-MM-dd") private Date dispatchActualDateTime; @ApiModelProperty("收货日期时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "收货日期时间", width = 30, dateFormat = "yyyy-MM-dd") private Date goodsReceiptDateTime; @@ -244,7 +244,7 @@ public class TransportNoteReport extends BaseVOEntity{ private Integer reportStatus; @ApiModelProperty("上报日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "上报日期", width = 30, dateFormat = "yyyy-MM-dd") private Date reportTime; @@ -257,7 +257,7 @@ public class TransportNoteReport extends BaseVOEntity{ private Integer verifyStatus; @ApiModelProperty("信息检验时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "信息检验时间", width = 30, dateFormat = "yyyy-MM-dd") private Date verifyTime; @@ -270,7 +270,7 @@ public class TransportNoteReport extends BaseVOEntity{ private Integer flowReportStatus; @ApiModelProperty("上报日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "上报日期", width = 30, dateFormat = "yyyy-MM-dd") private Date flowReportTime; @@ -283,7 +283,7 @@ public class TransportNoteReport extends BaseVOEntity{ private Integer flowVerifyStatus; @ApiModelProperty("信息检验时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "信息检验时间", width = 30, dateFormat = "yyyy-MM-dd") private Date flowVerifyTime; @@ -312,7 +312,7 @@ public class TransportNoteReport extends BaseVOEntity{ private String onlineFileUrl; @ApiModelProperty("合同签订时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同签订时间", width = 30, dateFormat = "yyyy-MM-dd") private Date settlementTime; @@ -349,4 +349,4 @@ public class TransportNoteReport extends BaseVOEntity{ private String belongSystem; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/VehicleReport.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/VehicleReport.java index 800735f13..88fa4ec9e 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/VehicleReport.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/dto/wlhy/report/VehicleReport.java @@ -87,7 +87,7 @@ public class VehicleReport extends BaseVOEntity { private Date issueDate; @ApiModelProperty("道路运输许可证过期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "道路运输许可证过期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date transportLicenseExpireDate; @@ -124,7 +124,7 @@ public class VehicleReport extends BaseVOEntity { private Integer reportStatus; @ApiModelProperty("上报日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "上报日期", width = 30, dateFormat = "yyyy-MM-dd") private Date reportTime; @@ -137,7 +137,7 @@ public class VehicleReport extends BaseVOEntity { private Integer verifyStatus; @ApiModelProperty("车辆信息检验时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "车辆信息检验时间", width = 30, dateFormat = "yyyy-MM-dd") private Date verifyTime; @@ -198,4 +198,4 @@ public class VehicleReport extends BaseVOEntity { private String belongSystem; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/entity/Order.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/entity/Order.java index 56917a2df..08c0a827d 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/entity/Order.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/entity/Order.java @@ -178,7 +178,7 @@ public class Order extends BaseVOEntity{ private BigDecimal commissionCharges; @ApiModelProperty("放款时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "放款时间", width = 30, dateFormat = "yyyy-MM-dd") private Date loanTime; @@ -263,7 +263,7 @@ public class Order extends BaseVOEntity{ private String deliveryRemark; @ApiModelProperty("预约提货日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "预约提货日期", width = 30, dateFormat = "yyyy-MM-dd") private Date sendCarStartTime; @@ -311,7 +311,7 @@ public class Order extends BaseVOEntity{ private String paymentTypeName; @ApiModelProperty("寄件日期") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "寄件日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date mailDate; @@ -393,4 +393,4 @@ public class Order extends BaseVOEntity{ @ApiModelProperty("是否作废(1-是,2-否)") private Integer cancelFlag; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/ContractManagePO.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/ContractManagePO.java index 698aaef39..4db7d5167 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/ContractManagePO.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/ContractManagePO.java @@ -87,17 +87,17 @@ public class ContractManagePO extends BaseVOEntity{ private Integer accountingPeriod; @ApiModelProperty("合同签订日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同签订日期", width = 30, dateFormat = "yyyy-MM-dd") private Date signingDate; @ApiModelProperty("合同生效日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同生效日期", width = 30, dateFormat = "yyyy-MM-dd") private Date effectiveDate; @ApiModelProperty("合同到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date expirationDate; @@ -160,7 +160,7 @@ public class ContractManagePO extends BaseVOEntity{ private Integer automaticFlag; @ApiModelProperty("出账日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date paymentDate; @ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)") @@ -169,4 +169,4 @@ public class ContractManagePO extends BaseVOEntity{ @ApiModelProperty(name = "是否包含运输费用(1-包含,2-包含)") private Integer transportationCosts; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/DispatchPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/DispatchPo.java index 0a4114b64..04f4df28a 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/DispatchPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/DispatchPo.java @@ -38,12 +38,12 @@ public class DispatchPo extends BaseVOEntity { private Long dispatchType; /** 调度配(派)车日期 */ @ApiModelProperty("调度配(派)车日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "调度配", readConverterExp = "派=") private Date dispatchDate; /** 计划发车日期 */ @ApiModelProperty("计划发车日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "计划发车日期", width = 30, dateFormat = "yyyy-MM-dd") private Date planDepartureDate; /** 计划送货时间/提货时间 */ @@ -53,17 +53,17 @@ public class DispatchPo extends BaseVOEntity { private Date deliveryDate; /** 最后装车时间 */ @ApiModelProperty("最后装车时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "最后装车时间", width = 30, dateFormat = "yyyy-MM-dd") private Date loadDate; /** 发车日期 */ @ApiModelProperty("发车日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "发车日期", width = 30, dateFormat = "yyyy-MM-dd") private Date departureDate; /** 接车日期(入库时间) */ @ApiModelProperty("接车日期(入库时间)") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "接车日期", readConverterExp = "入=库时间") private Date pickUpDate; /** 寄件(发站)网点 */ @@ -187,18 +187,18 @@ public class DispatchPo extends BaseVOEntity { private Long transportStatus; /** 到达时间 */ @ApiModelProperty("到达时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "到达时间", width = 30, dateFormat = "yyyy-MM-dd") private Date arriveDate; /** 实际提货/送货时间 */ @ApiModelProperty("实际提货/送货时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "实际提货/送货时间", width = 30, dateFormat = "yyyy-MM-dd") private Date actualDeliveryDate; @ApiModelProperty("是否接单(1-未接单,2-已接单,3-已拒绝)") private Long receivingStatus; @ApiModelProperty("接单时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "接单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date receivingDate; @ApiModelProperty("装货照片") @@ -221,7 +221,7 @@ public class DispatchPo extends BaseVOEntity { @ApiModelProperty(name = "发货地址纬度") private String sendLatitude; @ApiModelProperty("发货时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date sendTime; @ApiModelProperty(name = "收货地址") @@ -231,7 +231,7 @@ public class DispatchPo extends BaseVOEntity { @ApiModelProperty(name = "收货地址纬度") private String receiveLatitude; @ApiModelProperty("收货时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date receiveTime; @ApiModelProperty(name = "状态1正常2作废") @@ -245,4 +245,4 @@ public class DispatchPo extends BaseVOEntity { @ApiModelProperty("是否是自己的网点1是2否") private Integer isOwn; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/OrderVerificationPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/OrderVerificationPo.java index 5759b814a..ca248e012 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/OrderVerificationPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/OrderVerificationPo.java @@ -189,7 +189,7 @@ public class OrderVerificationPo extends BaseVOEntity{ private BigDecimal commissionCharges; @ApiModelProperty("放款时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "放款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date loanTime; @@ -274,7 +274,7 @@ public class OrderVerificationPo extends BaseVOEntity{ private String deliveryRemark; @ApiModelProperty("预约提货日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "预约提货日期", width = 30, dateFormat = "yyyy-MM-dd") private Date sendCarStartTime; @@ -335,7 +335,7 @@ public class OrderVerificationPo extends BaseVOEntity{ private String paymentTypeName; @ApiModelProperty("寄件日期") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "寄件日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date mailDate; @@ -376,12 +376,12 @@ public class OrderVerificationPo extends BaseVOEntity{ private Date freightCollectPaymentTime; @ApiModelProperty("收款时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "收款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date collectionTime; @ApiModelProperty("收款时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Excel(name = "收款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date cancelAfterVerificationTime; @@ -464,4 +464,4 @@ public class OrderVerificationPo extends BaseVOEntity{ private Date withholdPaymentPaidTime; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/OrganizationPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/OrganizationPo.java index b1c509ce1..51bb2ac97 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/OrganizationPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/OrganizationPo.java @@ -104,5 +104,7 @@ public class OrganizationPo extends BaseVOEntity implements Serializable { @ApiModelProperty("是否绑定 1-是,2-否") private Integer isBand; + @ApiModelProperty("是否排队:0-否,1-是") + private Integer isQueue; } diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserAuthPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserAuthPo.java index 2ca56c193..d4012797f 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserAuthPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserAuthPo.java @@ -18,10 +18,10 @@ public class UserAuthPo { @ApiModelProperty(name = "身份证号") private String userIdcardNumber; @ApiModelProperty(name = "身份证有效期自") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String userIdcardDateFrom; @ApiModelProperty(name = "身份证有效期至") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String userIdcardDateTo; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") private Integer userIdcardLong; @@ -46,4 +46,4 @@ public class UserAuthPo { @ApiModelProperty(name = "用户生日") private String userBirthday = ""; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverAuthPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverAuthPo.java index 0a194d25b..84be64389 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverAuthPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverAuthPo.java @@ -22,15 +22,15 @@ public class UserDriverAuthPo { @ApiModelProperty(name = "驾驶证发证机关") private String driverCertificationAuthority; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "初次领证日期") private String driverLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期开始日期") private String driverLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期到期日期") private String driverLicenseDateTo; @@ -61,15 +61,15 @@ public class UserDriverAuthPo { @ApiModelProperty(name = "从业资格证类别名称") private String driverWorkLicenseTypeName; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证初次领证日期") private String driverWorkLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期开始日期") private String driverWorkLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期到期日期") private String driverWorkLicenseDateTo; @@ -98,4 +98,4 @@ public class UserDriverAuthPo { @ApiModelProperty(name = "核定载质量") private BigDecimal vehicleApprovedLoadQuantity; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverEnterpriseAuthPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverEnterpriseAuthPo.java index 6262ada96..08d40bfbf 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverEnterpriseAuthPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverEnterpriseAuthPo.java @@ -40,12 +40,12 @@ public class UserDriverEnterpriseAuthPo{ private String driverBusinessLicenseOwner; /** 经营许可证有效期开始日期 */ @ApiModelProperty("经营许可证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateFrom; /** 经营许可证有效期到期日期 */ @ApiModelProperty("经营许可证有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateTo; /** 经营许可证是否长期:0-无状态,1-是,2-否 */ @@ -74,12 +74,12 @@ public class UserDriverEnterpriseAuthPo{ private String driverEnterpriseAddress; /** 企业营业执照有效期开始日期 */ @ApiModelProperty("企业营业执照有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateFrom; /** 企业营业执照有效期到期日期 */ @ApiModelProperty("企业营业执照有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateTo; /** 企业营业执照是否长期:0-无状态,1-是,2-否 */ @@ -112,12 +112,12 @@ public class UserDriverEnterpriseAuthPo{ private String driverCorpIdcardNumber; /** 法人身份证有效期开始日期 */ @ApiModelProperty("法人身份证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateFrom; /** 法人身份证有效期结束日期 */ @ApiModelProperty("法人身份证有效期结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期结束日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateTo; /** 法人身份证是否长期:0-无状态,1-是,2-否 */ @@ -144,4 +144,4 @@ public class UserDriverEnterpriseAuthPo{ private String driverEnterpriseFillName; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverEnterprisePo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverEnterprisePo.java index 8013aa1e1..c1e20e278 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverEnterprisePo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverEnterprisePo.java @@ -41,12 +41,12 @@ public class UserDriverEnterprisePo extends BaseVOEntity { private String driverBusinessLicenseOwner=""; /** 经营许可证有效期开始日期 */ @ApiModelProperty("经营许可证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateFrom; /** 经营许可证有效期到期日期 */ @ApiModelProperty("经营许可证有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateTo; /** 经营许可证是否长期:0-无状态,1-是,2-否 */ @@ -75,12 +75,12 @@ public class UserDriverEnterprisePo extends BaseVOEntity { private String driverEnterpriseAddress=""; /** 企业营业执照有效期开始日期 */ @ApiModelProperty("企业营业执照有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateFrom; /** 企业营业执照有效期到期日期 */ @ApiModelProperty("企业营业执照有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateTo; /** 企业营业执照是否长期:0-无状态,1-是,2-否 */ @@ -109,12 +109,12 @@ public class UserDriverEnterprisePo extends BaseVOEntity { private String driverCorpIdcardNumber=""; /** 法人身份证有效期开始日期 */ @ApiModelProperty("法人身份证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateFrom; /** 法人身份证有效期结束日期 */ @ApiModelProperty("法人身份证有效期结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期结束日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateTo; /** 法人身份证是否长期:0-无状态,1-是,2-否 */ @@ -141,7 +141,7 @@ public class UserDriverEnterprisePo extends BaseVOEntity { private String driverEnterpriseFillName=""; /** 承运人企业认证时间 */ @ApiModelProperty("承运人企业认证时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "承运人企业认证时间", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseFillTime; @@ -165,4 +165,4 @@ public class UserDriverEnterprisePo extends BaseVOEntity { @ApiModelProperty(name = "tms推送状态: 1-未推送 2- 已推送") private Integer tmsPushStatus; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverListPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverListPo.java index 20995faf3..a85965d84 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverListPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverListPo.java @@ -34,10 +34,10 @@ public class UserDriverListPo { private String organizationName = ""; @ApiModelProperty(name = "身份证号") private String userIdcardNumber = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期自") private String userIdcardDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期至") private String userIdcardDateTo = ""; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") @@ -57,7 +57,7 @@ public class UserDriverListPo { private String driverWorkLicenseAuthorityName = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期到期日期") private String driverWorkLicenseDateTo = ""; @@ -79,18 +79,18 @@ public class UserDriverListPo { private String driverBusinessLicenseOwner=""; /** 经营许可证有效期开始日期 */ @ApiModelProperty("经营许可证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String driverBusinessLicenseDateFrom=""; /** 经营许可证有效期到期日期 */ @ApiModelProperty("经营许可证有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String driverBusinessLicenseDateTo=""; @ApiModelProperty("企业营业执照有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String driverEnterpriseLicenseDateFrom=""; /** 企业营业执照有效期到期日期 */ @ApiModelProperty("企业营业执照有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String driverEnterpriseLicenseDateTo=""; /** 企业营业执照是否长期:0-无状态,1-是,2-否 */ @ApiModelProperty("企业营业执照是否长期:0-无状态,1-是,2-否") @@ -137,7 +137,7 @@ public class UserDriverListPo { * 承运人企业认证时间 */ @ApiModelProperty("承运人企业认证时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "承运人企业认证时间", width = 30, dateFormat = "yyyy-MM-dd") @JsonSerialize(nullsUsing = DateNullToStringSerializer.class) private Date driverEnterpriseFillTime; @@ -153,7 +153,7 @@ public class UserDriverListPo { @ApiModelProperty("承运人车队长认证状态:0-无状态,1-未认证,2-正在审核,3-认证通过,4-认证失败,5-认证失效") private Integer driverCaptainFill = 0; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期到期日期") private Date driverLicenseDateTo; @@ -172,7 +172,7 @@ public class UserDriverListPo { @ApiModelProperty(name = "经营许可证件校验状态(0-无状态,1-未核验,2-核验通过,3-核验失败)") private Integer driverBusinessLicenseCheckoutStatus = 0; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期开始日期") private String driverWorkLicenseDateFrom; @@ -182,14 +182,14 @@ public class UserDriverListPo { @ApiModelProperty(name = "从业资格证主页图片地址") private String driverWorkLicenseFrontUrl; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期开始日期") private Date driverLicenseDateFrom; @ApiModelProperty(name = "驾驶证档案编号") private String driverLicenseNumber; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "初次领证日期") private Date driverLicenseFirstDate; @@ -208,7 +208,7 @@ public class UserDriverListPo { @ApiModelProperty(name = "详细地址") private String userAreaAddress = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户生日") private String userBirthday = ""; @@ -247,11 +247,11 @@ public class UserDriverListPo { @ApiModelProperty(name = "法人身份证手持照片") private String driverCorpIdcardInhandUrl; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期开始日期") private Date driverCorpIdcardDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期结束日期") private Date driverCorpIdcardDateTo; @@ -267,7 +267,7 @@ public class UserDriverListPo { @ApiModelProperty(name = "从业资格证类别名称") private String driverWorkLicenseTypeName; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证初次领证日期") private Date driverWorkLicenseFirstDate; @@ -312,4 +312,4 @@ public class UserDriverListPo { @ApiModelProperty(name = "") private String wlhydriverId; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverPo.java index 5027edf44..8625bbbfd 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserDriverPo.java @@ -46,17 +46,17 @@ public class UserDriverPo { @ApiModelProperty(name = "备注/用户基本信息") private String userRemark = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户生日") private String userBirthday = ""; @ApiModelProperty(name = "用户头像") private String avatar= ""; @ApiModelProperty(name = "身份证号") private String userIdcardNumber = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期自") private String userIdcardDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期至") private String userIdcardDateTo = ""; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") @@ -80,15 +80,15 @@ public class UserDriverPo { @ApiModelProperty(name = "驾驶证发证机关") private String driverCertificationAuthority = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "初次领证日期") private String driverLicenseFirstDate = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期开始日期") private String driverLicenseDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期到期日期") private String driverLicenseDateTo = ""; @@ -119,15 +119,15 @@ public class UserDriverPo { @ApiModelProperty(name = "从业资格证类别名称") private String driverWorkLicenseTypeName = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证初次领证日期") private String driverWorkLicenseFirstDate = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期开始日期") private String driverWorkLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期到期日期") private String driverWorkLicenseDateTo = ""; @@ -210,4 +210,4 @@ public class UserDriverPo { private String promoCode; @ApiModelProperty(value = "公司名称") private String companyName = ""; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserPo.java index fb671aaa7..ee3260087 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserPo.java @@ -47,10 +47,10 @@ public class UserPo { @ApiModelProperty(name = "身份证号加密") private String userIdcardNumberDes = ""; @ApiModelProperty(name = "身份证有效期自") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String userIdcardDateFrom = ""; @ApiModelProperty(name = "身份证有效期至") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String userIdcardDateTo = ""; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") private Integer userIdcardLong = 0; @@ -103,7 +103,7 @@ public class UserPo { @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(name = "用户状态更新时间") private String userStatusTime = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户生日") private String userBirthday = ""; @ApiModelProperty(name = "用户住址信息") diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserShipperAuthPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserShipperAuthPo.java index 032598c3f..c96efb5eb 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserShipperAuthPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserShipperAuthPo.java @@ -29,11 +29,11 @@ public class UserShipperAuthPo { @ApiModelProperty(name = "企业注册地址") private String shipperEnterpriseAddress; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限起") private String shipperEnterpriseLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限止") private String shipperEnterpriseLicenseDateTo; @@ -56,10 +56,10 @@ public class UserShipperAuthPo { private String shipperCorpLegalName; @ApiModelProperty(name = "法人身份证号") private String shipperCorpIdcardNumber; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期自") private String shipperCorpIdcardDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期止") private String shipperCorpIdcardDateTo; @ApiModelProperty(name = "法人身份证是否长期:0-无状态,1-是,2-否") @@ -86,4 +86,4 @@ public class UserShipperAuthPo { @ApiModelProperty(name = "托运人发货企业审核原因") private String shipperEnterpriseFillRemark; -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserShipperPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserShipperPo.java index 72525bfaf..db3ff7e9f 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserShipperPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/UserShipperPo.java @@ -1,6 +1,7 @@ package com.mhd.common.core.domain.po; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.mhd.common.core.annotation.Excel; import com.mhd.common.core.annotation.fieldsetvalue.NeedSetValue; import io.swagger.annotations.ApiModelProperty; @@ -12,6 +13,7 @@ import java.math.BigDecimal; import java.util.Date; @Data +@JsonIgnoreProperties(ignoreUnknown = true) public class UserShipperPo { private static final long serialVersionUID = 1L; @@ -31,7 +33,7 @@ public class UserShipperPo { private String userIdcardBackUrl = ""; @ApiModelProperty(name = "手持身份证") private String userIdcardInhandUrl = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户生日") private String userBirthday = ""; @ApiModelProperty(name = "手机号码") @@ -45,10 +47,10 @@ public class UserShipperPo { private String roleName = ""; @ApiModelProperty(name = "身份证号") private String userIdcardNumber = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期自") private String userIdcardDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期至") private String userIdcardDateTo = ""; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") @@ -80,11 +82,11 @@ public class UserShipperPo { @ApiModelProperty(name = "企业注册地址") private String shipperEnterpriseAddress = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限起") private String shipperEnterpriseLicenseDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限止") private String shipperEnterpriseLicenseDateTo = ""; @@ -130,10 +132,10 @@ public class UserShipperPo { private String shipperCorpIdcardNumber = ""; @ApiModelProperty(name = "法人身份证号加密") private String shipperCorpIdcardNumberDes = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期自") private String shipperCorpIdcardDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期止") private String shipperCorpIdcardDateTo = ""; @ApiModelProperty(name = "法人身份证是否长期:0-无状态,1-是,2-否") @@ -266,6 +268,7 @@ public class UserShipperPo { @ApiModelProperty("结算币种") private String settlementCurrency; - } - + @ApiModelProperty("货主code") + private String roleCodeShipper; + } \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/report/UserDriverReportPo.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/report/UserDriverReportPo.java index 5bb01ebd3..2bb7e4e1c 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/report/UserDriverReportPo.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/domain/po/report/UserDriverReportPo.java @@ -48,17 +48,17 @@ public class UserDriverReportPo { @ApiModelProperty(name = "备注/用户基本信息") private String userRemark; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户生日") private String userBirthday; @ApiModelProperty(name = "用户头像") private String avatar; @ApiModelProperty(name = "身份证号") private String userIdcardNumber; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期自") private String userIdcardDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期至") private String userIdcardDateTo; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") @@ -85,15 +85,15 @@ public class UserDriverReportPo { @ApiModelProperty(name = "驾驶证发证机关") private String driverCertificationAuthority; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "初次领证日期") private String driverLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期开始日期") private String driverLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期到期日期") private String driverLicenseDateTo; @@ -124,15 +124,15 @@ public class UserDriverReportPo { @ApiModelProperty(name = "从业资格证类别名称") private String driverWorkLicenseTypeName; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证初次领证日期") private String driverWorkLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期开始日期") private String driverWorkLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期到期日期") private String driverWorkLicenseDateTo; @@ -193,4 +193,4 @@ public class UserDriverReportPo { -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/utils/RegexUtil.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/utils/RegexUtil.java index fc5d6edb5..c46195d7a 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/utils/RegexUtil.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/utils/RegexUtil.java @@ -42,7 +42,7 @@ public class RegexUtil { */ public static boolean isAccountLegal(String str) throws PatternSyntaxException { // 4-20位,大小写字母或数字 - String regEx = "(^[A-Za-z0-9]{3,20}$)"; + String regEx = "(^[A-Za-z0-9]{1,20}$)"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(str); return m.matches(); @@ -109,4 +109,4 @@ public class RegexUtil { } -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/utils/ip/IpUtil.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/utils/ip/IpUtil.java index ebdb79b58..5a348a3e4 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/utils/ip/IpUtil.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/utils/ip/IpUtil.java @@ -65,27 +65,67 @@ public class IpUtil { public static IpLocation getLocation(String ip) { IpLocation location = new IpLocation(); location.setIp(ip); - try (InputStream inputStream = IpUtils.class.getResourceAsStream("/ip2region.xdb");) { + if (StrUtil.isBlank(ip) || "unknown".equalsIgnoreCase(ip.trim())) + { + return location; + } + String ipv4 = ip.trim(); + if (ipv4.contains(",")) + { + ipv4 = ipv4.substring(0, ipv4.indexOf(',')).trim(); + } + // ip2region xdb 对 IPv6 / 非法串可能抛 ArrayIndexOutOfBoundsException,仅对 IPv4 做库查询 + if (!isLikelyIpv4(ipv4)) + { + return location; + } + try (InputStream inputStream = IpUtils.class.getResourceAsStream("/ip2region.xdb")) + { + if (inputStream == null) + { + log.warn("ip2region.xdb 未找到,跳过 IP 归属解析"); + return location; + } byte[] bytes = IoUtil.readBytes(inputStream); Searcher searcher = Searcher.newWithBuffer(bytes); - String region = searcher.search(ip); - if (StrUtil.isAllNotBlank(region)) { - // xdb返回格式 国家|区域|省份|城市|ISP, - // 只有中国的数据绝大部分精确到了城市,其他国家部分数据只能定位到国家,后前的选项全部是0 - String[] result = region.split("\\|"); - location.setCountry(ZERO.equals(result[0]) ? StrUtil.EMPTY : result[0]); - location.setProvince(ZERO.equals(result[2]) ? StrUtil.EMPTY : result[2]); - location.setCity(ZERO.equals(result[3]) ? StrUtil.EMPTY : result[3]); - location.setIsp(ZERO.equals(result[4]) ? StrUtil.EMPTY : result[4]); + try + { + String region = searcher.search(ipv4); + if (StrUtil.isNotBlank(region)) + { + // xdb返回格式 国家|区域|省份|城市|ISP, + String[] result = region.split("\\|"); + if (result.length >= 5) + { + location.setCountry(ZERO.equals(result[0]) ? StrUtil.EMPTY : result[0]); + location.setProvince(ZERO.equals(result[2]) ? StrUtil.EMPTY : result[2]); + location.setCity(ZERO.equals(result[3]) ? StrUtil.EMPTY : result[3]); + location.setIsp(ZERO.equals(result[4]) ? StrUtil.EMPTY : result[4]); + } + } } - searcher.close(); - } catch (Exception e) { - log.error("ip地址解析异常,error:", e); + finally + { + searcher.close(); + } + } + catch (Exception e) + { + log.warn("ip地址解析失败,ip={}, msg={}", ipv4, e.getMessage()); return location; } return location; } + private static boolean isLikelyIpv4(String ip) + { + if (ip == null || ip.contains(":")) + { + return false; + } + return ip.chars().filter(ch -> ch == '.').count() == 3L; + } + /** * 根据iP获取归属地信息 - 拼接 * @@ -93,7 +133,7 @@ public class IpUtil { */ public static String getLocationSplicing(String ip) { IpLocation location = getLocation(ip); - return location.getProvince()+location.getCity(); + return StrUtil.nullToEmpty(location.getProvince()) + StrUtil.nullToEmpty(location.getCity()); } public static void main(String[] args) { diff --git a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/web/domain/BaseEntity.java b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/web/domain/BaseEntity.java index f25545939..b715eed17 100644 --- a/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/web/domain/BaseEntity.java +++ b/mhd-common/mhd-common-core/src/main/java/com/mhd/common/core/web/domain/BaseEntity.java @@ -22,14 +22,14 @@ public class BaseEntity implements Serializable private String createBy; /** 创建时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; /** 更新者 */ private String updateBy; /** 更新时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; /** 备注 */ @@ -111,4 +111,4 @@ public class BaseEntity implements Serializable { this.params = params; } -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-core/src/main/java/minio/MinIoUploadService.java b/mhd-common/mhd-common-core/src/main/java/minio/MinIoUploadService.java index b7b289f68..85d5b5d4f 100644 --- a/mhd-common/mhd-common-core/src/main/java/minio/MinIoUploadService.java +++ b/mhd-common/mhd-common-core/src/main/java/minio/MinIoUploadService.java @@ -22,7 +22,7 @@ public class MinIoUploadService { private MinioClient minioClient; private static String bucket="ngwl"; - private static String host="http://10.102.192.5:6000"; + private static String host="http://127.0.0.1:6000"; private static String accessKey="minioadmin"; private static String secretKey="gmminioadmin"; /** @@ -139,4 +139,4 @@ public class MinIoUploadService { } return FILE_URL; }*/ -} +} \ No newline at end of file diff --git a/mhd-common/mhd-common-log/src/main/java/com/mhd/common/log/aspect/LogAspect.java b/mhd-common/mhd-common-log/src/main/java/com/mhd/common/log/aspect/LogAspect.java index 394e4aaf3..abbaa6569 100644 --- a/mhd-common/mhd-common-log/src/main/java/com/mhd/common/log/aspect/LogAspect.java +++ b/mhd-common/mhd-common-log/src/main/java/com/mhd/common/log/aspect/LogAspect.java @@ -80,7 +80,15 @@ public class LogAspect // 请求的地址 String ip = IpUtils.getIpAddr(ServletUtils.getRequest()); operLog.setOperIp(ip); - operLog.setOperLocation(StrUtil.isNotEmpty(operLog.getOperIp()) ? IpUtil.getLocationSplicing(operLog.getOperIp()) : ""); + try + { + operLog.setOperLocation(StrUtil.isNotEmpty(operLog.getOperIp()) ? IpUtil.getLocationSplicing(operLog.getOperIp()) : ""); + } + catch (Throwable t) + { + log.warn("操作日志 IP 归属解析跳过: {}", t.getMessage()); + operLog.setOperLocation(""); + } operLog.setOperUrl(ServletUtils.getRequest().getRequestURI()); LoginUser loginUser = SecurityUtils.getLoginUser(); if (loginUser != null){ diff --git a/mhd-common/mhd-common-security/src/main/java/com/mhd/common/security/utils/DictUtils.java b/mhd-common/mhd-common-security/src/main/java/com/mhd/common/security/utils/DictUtils.java index 6eed94dc9..227d578f1 100644 --- a/mhd-common/mhd-common-security/src/main/java/com/mhd/common/security/utils/DictUtils.java +++ b/mhd-common/mhd-common-security/src/main/java/com/mhd/common/security/utils/DictUtils.java @@ -72,4 +72,13 @@ public class DictUtils { return Constants.SYS_DICT_KEY + configKey; } + + /** + * 字典缓存键:同一 dict_type 在不同组织下可并存,需带上组织维度(null 视为 0 平台) + */ + public static String dictTypeOrgCacheKey(String dictType, Long organizationId) + { + long oid = organizationId == null ? 0L : organizationId.longValue(); + return dictType + "@" + oid; + } } diff --git a/mhd-gateway/src/main/resources/bootstrap.yml b/mhd-gateway/src/main/resources/bootstrap.yml index 69dddcf6e..57f832f9f 100644 --- a/mhd-gateway/src/main/resources/bootstrap.yml +++ b/mhd-gateway/src/main/resources/bootstrap.yml @@ -15,11 +15,11 @@ spring: discovery: # server-addr: 127.0.0.1:8848 # 线上测试环境配置 容器名+端口号 -# server-addr: 10.102.192.5:6848 +# server-addr: 10.102.192.31:6848 # server-addr: 10.33.0.129:6010 #线上正式环境 - server-addr: 127.0.0.1:8848 -# server-addr: 10.102.192.5:6848 +# server-addr: 127.0.0.1:8848 + server-addr: 10.102.192.31:6848 username: nacos password: manhuoda@2023 config: @@ -27,12 +27,12 @@ spring: # 线上测试环境配置 容器名+端口号 # server-addr: 10.33.0.129:6010 #线上正式环境 - server-addr: 127.0.0.1:8848 -# server-addr: 10.102.192.5:6848 +# server-addr: 127.0.0.1:8848 + server-addr: 10.102.192.31:6848 username: nacos password: manhuoda@2023 group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置 file-extension: yml #默认properties # 共享配置 shared-configs: - - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} \ No newline at end of file diff --git a/mhd-modules/mhd-job/src/main/java/com/mhd/job/domain/SysJob.java b/mhd-modules/mhd-job/src/main/java/com/mhd/job/domain/SysJob.java index 8d6a484f5..0b507b4fb 100644 --- a/mhd-modules/mhd-job/src/main/java/com/mhd/job/domain/SysJob.java +++ b/mhd-modules/mhd-job/src/main/java/com/mhd/job/domain/SysJob.java @@ -110,7 +110,7 @@ public class SysJob extends BaseEntity this.cronExpression = cronExpression; } - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") public Date getNextValidTime() { if (StringUtils.isNotEmpty(cronExpression)) diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/batchDetail/BatchDetailApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/batchDetail/BatchDetailApplicationService.java index b0dc1861d..7b13ec085 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/batchDetail/BatchDetailApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/batchDetail/BatchDetailApplicationService.java @@ -106,10 +106,10 @@ public class BatchDetailApplicationService { throw new ServiceException("获取物料规则信息失败"); } MaterialGoodsRuleFeign materialGoodsRuleFeign = JSON.parseObject(JSONObject.toJSONString(ajaxResult.get("data")), MaterialGoodsRuleFeign.class); + // 无商品规则或未绑定批次模板时,不返回任何批次属性(避免 batchId 空导致查全表) if (ObjectUtil.isNull(materialGoodsRuleFeign) || materialGoodsRuleFeign.getBatchId() == null) { - // 未绑定批次时只返回空列表,不可按空 batchId 全表查 batch_detail return new ArrayList<>(); } return getBatchDetailListByBatchId(materialGoodsRuleFeign.getBatchId()); } -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java index ba5d69631..0a48641b3 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/contractManage/ContractManageApplicationService.java @@ -275,34 +275,141 @@ public class ContractManageApplicationService { .eq(ContractManage::getTopOrganizationId, topOrganizationId) .eq(ContractManage::getCommonContractFlag, 2)); if (UserContractManages != null && UserContractManages.size() > 0) { - }else{ + //用户合同计费策略 + calucateSubjectAndPriceStrategy(UserContractManages, organizationId, topOrganizationId, sunjectCode, result); + } else { + //通用合同计费策略 List commonContractManages = contractManageMapper.selectList(new LambdaQueryWrapper() .eq(ContractManage::getDelFlag, 1) .eq(ContractManage::getOrganizationId, organizationId) .eq(ContractManage::getTopOrganizationId, topOrganizationId) .eq(ContractManage::getCommonContractFlag, 1)); - if (commonContractManages != null && commonContractManages.size() > 0) { - ContractManage contractManage = commonContractManages.get(0); - Long contractManageId = contractManage.getContractManageId(); - List contractManageDetails = contractManageDetailMapper.selectList(new LambdaQueryWrapper() - .eq(ContractManageDetail::getContractManageId, contractManageId) - .eq(ContractManageDetail::getDelFlag, 1)); - if (contractManageDetails != null && contractManageDetails.size() > 0) { - for (ContractManageDetail contractManageDetail : contractManageDetails) { - String code = contractManageDetail.getFirstSubjectCode(); - if (sunjectCode.equals(code)) { - Long accountingStrategyId = contractManageDetail.getAccountingStrategyId(); - BillingRulesPO billingRule = contractManageDetailMapper.getBillingRules(accountingStrategyId); - if (billingRule != null) { - Long billingRulesId = billingRule.getBillingRulesId(); - List billingParams = contractManageDetailMapper.getBillingParams(billingRulesId); - if (billingParams != null && billingParams.size() > 0) { - BillingParamsPO billingParam = billingParams.get(0); - String billingParamsJson = billingParam.getBillingParamsJson(); - String preSetRules = billingParam.getPreSetRules(); - Long billingParamsId = billingParam.getBillingParamsId(); - List> preSetRulesList = JSON.parseObject(preSetRules, new TypeReference>>() {}); - List> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference>>() {}); + calucateSubjectAndPriceStrategy(commonContractManages, organizationId, topOrganizationId, sunjectCode, result); + } + return result; + } + + /** 单据类型「仓库进出仓单」编码(与 BMS / WMS 推送一致) */ + public static final String DOCUMENT_TYPE_CODE_WAREHOUSE_IN_OUT_ORDER = "WMS_ckjccd"; + + /** + * 按结算主体取仓储合同结算设置中,单据类型包含指定类型的费用科目编码(按明细行顺序,可重复,调用方去重)。 + * 科目编码优先取二级 {@code second_subject_code},为空则取一级 {@code first_subject_code}。 + * settlementCustomersCode 为空时与同模块合同逻辑一致:使用通用仓储合同(commonContractFlag=1)。 + */ + public List listSecondSubjectCodesBySettlementAndDocumentType(String settlementCustomersCode, + Long organizationId, + Long topOrganizationId, + String documentTypeCode) { + if (StringUtils.isEmpty(documentTypeCode)) { + return Collections.emptyList(); + } + ContractManagePO contractManagePO = getInfoByCustomerAndOrganizationId(settlementCustomersCode, 1, topOrganizationId, organizationId); + if (contractManagePO == null || contractManagePO.getContractManageId() == null) { + return Collections.emptyList(); + } + List detailPOS = contractManageDetailDomainService.queryListByManageId(contractManagePO.getContractManageId()); + if (detailPOS == null || detailPOS.isEmpty()) { + return Collections.emptyList(); + } + List codes = new ArrayList<>(); + for (ContractManageDetailPO detail : detailPOS) { + if (detail == null) { + continue; + } + String subjectCode = resolveContractDetailExpenseSubjectCode(detail); + if (StringUtils.isEmpty(subjectCode)) { + continue; + } + if (!matchesContractDetailWarehouseInOut(detail, documentTypeCode)) { + continue; + } + codes.add(subjectCode); + } + return codes; + } + + /** + * 合同结算行的费用科目编码:有二级科目用二级,否则用一级。 + */ + private static String resolveContractDetailExpenseSubjectCode(ContractManageDetailPO detail) { + if (detail == null) { + return null; + } + if (!StringUtils.isEmpty(detail.getSecondSubjectCode())) { + return detail.getSecondSubjectCode().trim(); + } + if (!StringUtils.isEmpty(detail.getFirstSubjectCode())) { + return detail.getFirstSubjectCode().trim(); + } + return null; + } + + /** + * 是否属于「仓库进出仓单」类结算行:优先按单据类型编码精确匹配(含逗号分隔多编码), + * 避免因 BMS 主数据编码与 WMS 计费推送编码(如 WMS_ckjccd)不一致导致筛掉全部行; + * 兼容按单据类型名称包含「仓库进出仓」判定(合同保存时会拼接中文名称)。 + */ + private static boolean matchesContractDetailWarehouseInOut(ContractManageDetailPO detail, String documentTypeCode) { + if (detail == null || StringUtils.isEmpty(documentTypeCode)) { + return false; + } + if (contractDetailContainsDocumentType(detail.getDocumentTypeCode(), documentTypeCode)) { + return true; + } + String typeNames = detail.getDocumentType(); + if (StringUtils.isEmpty(typeNames)) { + return false; + } + return Stream.of(typeNames.split(",")) + .map(String::trim) + .filter(s -> !StringUtils.isEmpty(s)) + .anyMatch(n -> n.contains("仓库进出仓")); + } + + private static boolean contractDetailContainsDocumentType(String detailDocumentTypeCodes, String documentTypeCode) { + if (StringUtils.isEmpty(detailDocumentTypeCodes)) { + return false; + } + return Stream.of(detailDocumentTypeCodes.split(",")) + .map(String::trim) + .filter(s -> !StringUtils.isEmpty(s)) + .anyMatch(code -> code.equalsIgnoreCase(documentTypeCode)); + } + + /** + * 按单据类型取合同结算行上的计费单价(计费策略展开的 isFee 项)。 + *

多条结算明细共用同一计费策略(accounting_strategy_id 相同)时,只展开一次策略参数, + * 避免前端出现重复的单价列。

+ */ + public List getPrice(String documentTypeCode, String settlementCustomersCode,Long organizationId,Long topOrganizationId) { + List result = new ArrayList<>(); + ContractManagePO contractManagePO = getInfoByCustomerAndOrganizationId(settlementCustomersCode, 1, topOrganizationId, organizationId); + List detailPOS = contractManageDetailDomainService.queryListByManageId(contractManagePO.getContractManageId()); + contractManagePO.setContractManageDetailPOList(detailPOS); + if (contractManagePO != null) { + List contractManageDetailPOList = contractManagePO.getContractManageDetailPOList(); + if (contractManageDetailPOList != null && contractManageDetailPOList.size() > 0) { + List contractManageDetailPOs = contractManageDetailPOList.stream() + .filter(item -> contractDetailContainsDocumentType(item.getDocumentTypeCode(), documentTypeCode)) + .collect(Collectors.toList()); + if (contractManageDetailPOs != null && contractManageDetailPOs.size() > 0) { + Set expandedAccountingStrategyIds = new HashSet<>(); + for (ContractManageDetailPO contractManageDetailPO : contractManageDetailPOs) { + Long accountingStrategyId = contractManageDetailPO.getAccountingStrategyId(); + if (accountingStrategyId == null || !expandedAccountingStrategyIds.add(accountingStrategyId)) { + continue; + } + List billingParams = contractManageDetailMapper.getBillingParams(accountingStrategyId); + if (billingParams != null && billingParams.size() > 0) { + //if (billingParams != null && billingParams.size() > 0) { + BillingParamsPO billingParam = billingParams.get(0); + String billingParamsJson = billingParam.getBillingParamsJson(); + String preSetRules = billingParam.getPreSetRules(); + Long billingParamsId = billingParam.getBillingParamsId(); + List> preSetRulesList = JSON.parseObject(preSetRules, new TypeReference>>() {}); + List> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference>>() {}); + if (preSetRulesList != null && preSetRulesList.size() > 0) { Map stringObjectMap1 = preSetRulesList.get(0); for (Map stringObjectMap : billingParamsList) { String fieldsName = (String) stringObjectMap.get("fieldsName"); @@ -319,7 +426,7 @@ public class ContractManageApplicationService { subjectAndPriceReturn.setPrice(new BigDecimal(price)); subjectAndPriceReturn.setChargingId(chargingId); subjectAndPriceReturn.setFields(fields); - subjectAndPriceReturn.setBillingRulesId(billingRulesId); + subjectAndPriceReturn.setBillingRulesId(accountingStrategyId); subjectAndPriceReturn.setIsShow(isShow); subjectAndPriceReturn.setIsFee(isFee); subjectAndPriceReturn.setIsPush(isPush); @@ -328,11 +435,15 @@ public class ContractManageApplicationService { } } } - } + //} + } else { + throw new ServiceException("计费参数不存在"); } } } } + } else { + throw new ServiceException("合同信息不存在"); } return result; } @@ -350,52 +461,60 @@ public class ContractManageApplicationService { .eq(ContractManage::getTopOrganizationId, topOrganizationId) .eq(ContractManage::getCommonContractFlag, 2)); if (UserContractManages != null && UserContractManages.size() > 0) { + //用户合同计费策略 + calucateSubjectStrategy(UserContractManages, organizationId, topOrganizationId, sunjectCode, result); }else{ + //通用合同计费策略 List commonContractManages = contractManageMapper.selectList(new LambdaQueryWrapper() .eq(ContractManage::getDelFlag, 1) .eq(ContractManage::getOrganizationId, organizationId) .eq(ContractManage::getTopOrganizationId, topOrganizationId) .eq(ContractManage::getCommonContractFlag, 1)); - if (commonContractManages != null && commonContractManages.size() > 0) { - ContractManage contractManage = commonContractManages.get(0); - Long contractManageId = contractManage.getContractManageId(); - List contractManageDetails = contractManageDetailMapper.selectList(new LambdaQueryWrapper() - .eq(ContractManageDetail::getContractManageId, contractManageId) - .eq(ContractManageDetail::getDelFlag, 1)); - if (contractManageDetails != null && contractManageDetails.size() > 0) { - for (ContractManageDetail contractManageDetail : contractManageDetails) { - String code = contractManageDetail.getFirstSubjectCode(); - if (sunjectCode.equals(code)) { - Long accountingStrategyId = contractManageDetail.getAccountingStrategyId(); - BillingRulesPO billingRule = contractManageDetailMapper.getBillingRules(accountingStrategyId); - if (billingRule != null) { - Long billingRulesId = billingRule.getBillingRulesId(); - List billingParams = contractManageDetailMapper.getBillingParams(billingRulesId); - if (billingParams != null && billingParams.size() > 0) { - BillingParamsPO billingParam = billingParams.get(0); - String billingParamsJson = billingParam.getBillingParamsJson(); - String preSetRules = billingParam.getPreSetRules(); - Long billingParamsId = billingParam.getBillingParamsId(); - List> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference>>() {}); - for (Map stringObjectMap : billingParamsList) { - String fieldsName = (String) stringObjectMap.get("fieldsName"); - String isShow = (String) stringObjectMap.get("isShow"); - String isFee = (String) stringObjectMap.get("isFee"); - String isPush = (String) stringObjectMap.get("isPush"); - if ("1".equals(isShow)) { - String chargingId = (String) stringObjectMap.get("chargingId"); - String fields = (String) stringObjectMap.get("fields"); - SubjectAndPriceReturn subjectAndPriceReturn = new SubjectAndPriceReturn(); - subjectAndPriceReturn.setName(fieldsName); - subjectAndPriceReturn.setChargingId(chargingId); - subjectAndPriceReturn.setFields(fields); - subjectAndPriceReturn.setBillingRulesId(billingRulesId); - subjectAndPriceReturn.setIsShow(isShow); - subjectAndPriceReturn.setIsFee(isFee); - subjectAndPriceReturn.setIsPush(isPush); - subjectAndPriceReturn.setRulesId(billingParamsId); - result.add(subjectAndPriceReturn); - } + calucateSubjectStrategy(commonContractManages, organizationId, topOrganizationId, sunjectCode, result); + } + return result; + } + + private void calucateSubjectStrategy(List commonContractManages, Long organizationId, Long topOrganizationId, String sunjectCode, List result) { + if (commonContractManages != null && commonContractManages.size() > 0) { + ContractManage contractManage = commonContractManages.get(0); + Long contractManageId = contractManage.getContractManageId(); + List contractManageDetails = contractManageDetailMapper.selectList(new LambdaQueryWrapper() + .eq(ContractManageDetail::getContractManageId, contractManageId) + .eq(ContractManageDetail::getDelFlag, 1)); + if (contractManageDetails != null && contractManageDetails.size() > 0) { + for (ContractManageDetail contractManageDetail : contractManageDetails) { + String code = contractManageDetail.getFirstSubjectCode(); + if (sunjectCode.equals(code)) { + Long accountingStrategyId = contractManageDetail.getAccountingStrategyId(); + BillingRulesPO billingRule = contractManageDetailMapper.getBillingRules(accountingStrategyId); + if (billingRule != null) { + Long billingRulesId = billingRule.getBillingRulesId(); + List billingParams = contractManageDetailMapper.getBillingParams(billingRulesId); + if (billingParams != null && billingParams.size() > 0) { + BillingParamsPO billingParam = billingParams.get(0); + String billingParamsJson = billingParam.getBillingParamsJson(); + String preSetRules = billingParam.getPreSetRules(); + Long billingParamsId = billingParam.getBillingParamsId(); + List> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference>>() {}); + for (Map stringObjectMap : billingParamsList) { + String fieldsName = (String) stringObjectMap.get("fieldsName"); + String isShow = (String) stringObjectMap.get("isShow"); + String isFee = (String) stringObjectMap.get("isFee"); + String isPush = (String) stringObjectMap.get("isPush"); + if ("1".equals(isShow)) { + String chargingId = (String) stringObjectMap.get("chargingId"); + String fields = (String) stringObjectMap.get("fields"); + SubjectAndPriceReturn subjectAndPriceReturn = new SubjectAndPriceReturn(); + subjectAndPriceReturn.setName(fieldsName); + subjectAndPriceReturn.setChargingId(chargingId); + subjectAndPriceReturn.setFields(fields); + subjectAndPriceReturn.setBillingRulesId(billingRulesId); + subjectAndPriceReturn.setIsShow(isShow); + subjectAndPriceReturn.setIsFee(isFee); + subjectAndPriceReturn.setIsPush(isPush); + subjectAndPriceReturn.setRulesId(billingParamsId); + result.add(subjectAndPriceReturn); } } } @@ -404,9 +523,62 @@ public class ContractManageApplicationService { } } } - return result; } + private void calucateSubjectAndPriceStrategy(List contractManages, Long organizationId, Long topOrganizationId, String sunjectCode, List result) { + if (contractManages != null && contractManages.size() > 0) { + ContractManage contractManage = contractManages.get(0); + Long contractManageId = contractManage.getContractManageId(); + List contractManageDetails = contractManageDetailMapper.selectList(new LambdaQueryWrapper() + .eq(ContractManageDetail::getContractManageId, contractManageId) + .eq(ContractManageDetail::getDelFlag, 1)); + if (contractManageDetails != null && contractManageDetails.size() > 0) { + for (ContractManageDetail contractManageDetail : contractManageDetails) { + String code = contractManageDetail.getFirstSubjectCode(); + if (sunjectCode.equals(code)) { + Long accountingStrategyId = contractManageDetail.getAccountingStrategyId(); + BillingRulesPO billingRule = contractManageDetailMapper.getBillingRules(accountingStrategyId); + if (billingRule != null) { + Long billingRulesId = billingRule.getBillingRulesId(); + List billingParams = contractManageDetailMapper.getBillingParams(billingRulesId); + if (billingParams != null && billingParams.size() > 0) { + BillingParamsPO billingParam = billingParams.get(0); + String billingParamsJson = billingParam.getBillingParamsJson(); + String preSetRules = billingParam.getPreSetRules(); + Long billingParamsId = billingParam.getBillingParamsId(); + List> preSetRulesList = JSON.parseObject(preSetRules, new TypeReference>>() {}); + List> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference>>() {}); + Map stringObjectMap1 = preSetRulesList.get(0); + for (Map stringObjectMap : billingParamsList) { + String fieldsName = (String) stringObjectMap.get("fieldsName"); + String isShow = (String) stringObjectMap.get("isShow"); + String isFee = (String) stringObjectMap.get("isFee"); + String isPush = (String) stringObjectMap.get("isPush"); + if ("1".equals(isFee)) { + Integer sort = (Integer) stringObjectMap.get("sort"); + String chargingId = (String) stringObjectMap.get("chargingId"); + String fields = (String) stringObjectMap.get("fields"); + String price = (String) stringObjectMap1.get("fields" + sort); + SubjectAndPriceReturn subjectAndPriceReturn = new SubjectAndPriceReturn(); + subjectAndPriceReturn.setName(fieldsName); + subjectAndPriceReturn.setPrice(new BigDecimal(price)); + subjectAndPriceReturn.setChargingId(chargingId); + subjectAndPriceReturn.setFields(fields); + subjectAndPriceReturn.setBillingRulesId(billingRulesId); + subjectAndPriceReturn.setIsShow(isShow); + subjectAndPriceReturn.setIsFee(isFee); + subjectAndPriceReturn.setIsPush(isPush); + subjectAndPriceReturn.setRulesId(billingParamsId); + result.add(subjectAndPriceReturn); + } + } + } + } + } + } + } + } + } /** * 新增合同管理 diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/expenseAccount/ExpenseAccountApplicationService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/expenseAccount/ExpenseAccountApplicationService.java index 6b9c350ac..fda2a0f89 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/expenseAccount/ExpenseAccountApplicationService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/application/service/expenseAccount/ExpenseAccountApplicationService.java @@ -9,6 +9,7 @@ import com.mhd.basic.domain.expenseAccount.repository.po.QueryExpenseAccountPO; import com.mhd.basic.domain.expenseAccount.repository.todo.ExpenseAccountDO; import com.mhd.basic.domain.expenseAccount.repository.todo.ExpenseAccountDoMap; import com.mhd.basic.domain.expenseAccount.repository.todo.SearchExpenseAccountDO; +import com.mhd.basic.application.service.contractManage.ContractManageApplicationService; import com.mhd.basic.domain.expenseAccount.service.ExpenseAccountDomainService; import com.mhd.basic.infrastructure.feign.vo.SysDictDataVo; import com.mhd.basic.interfaces.dto.expenseAccount.ExpenseAccountDTO; @@ -17,9 +18,11 @@ import com.mhd.common.core.enums.DictCode; import com.mhd.common.core.exception.ServiceException; import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException; import com.mhd.common.core.exception.digitalLogisticsException.UserError; +import com.mhd.common.core.domain.po.SettlementCustomersPO; import com.mhd.common.core.utils.StringUtils; import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.system.api.BmsServiceFeign; import com.mhd.system.api.SystemServiceFeign; import com.mhd.system.api.model.LoginUser; import com.mhd.common.core.domain.po.UserPo; @@ -27,8 +30,10 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -45,8 +50,95 @@ public class ExpenseAccountApplicationService { @Autowired private ExpenseAccountDomainService expenseAccountDomainService; @Autowired + private ContractManageApplicationService contractManageApplicationService; + @Autowired private SystemServiceFeign systemServiceFeign; + @Autowired + private BmsServiceFeign bmsServiceFeign; + /** + * 入库/出库费用登记等场景:按仓储合同「仓库进出仓单」结算行取科目(二级编码优先,否则一级),再关联费用科目主数据。 + *

科目范围以合同结算设置为准;若 {@code expenseAccountDO.inOrderDisplay} 或 {@code expenseAccountDO.outOrderDisplay} 非空, + * 再按主数据「入库单是否固定显示 / 出库单是否固定显示」(0-否 1-是)与入参相等过滤,二者同时传则同时满足(AND)。

+ * settlementCustomersCode 不传或为空时使用通用仓储合同。 + *

若 {@code settlementCustomersCode} 为空且 {@code expenseAccountDO.settlementEntityId} 非空,则通过 BMS 按结算主体ID解析结算对象编码后再查合同(编码仍为空则走通用合同)。

+ */ + public List queryListFromContractWarehouseInOutSettlement(ExpenseAccountDO expenseAccountDO, String settlementCustomersCode) { + Long topOrgIdForExpense = expenseAccountDO.getTopOrganizationId(); + if (topOrgIdForExpense == null) { + LoginUser lu = SecurityUtils.getLoginUser(); + if (lu != null && lu.getUserPo() != null && lu.getUserPo().getTopOrganizationId() != null) { + topOrgIdForExpense = lu.getUserPo().getTopOrganizationId(); + } + } + String effectiveSettlementCode = settlementCustomersCode; + if (StringUtils.isEmpty(effectiveSettlementCode) && expenseAccountDO.getSettlementEntityId() != null) { + effectiveSettlementCode = resolveSettlementCustomersCodeByEntityId( + expenseAccountDO.getSettlementEntityId(), topOrgIdForExpense); + log.info("按结算主体ID解析结算对象编码:settlementEntityId={},解析得到 settlementCustomersCode={}", + expenseAccountDO.getSettlementEntityId(), effectiveSettlementCode); + } + List orderedCodes = contractManageApplicationService.listSecondSubjectCodesBySettlementAndDocumentType( + effectiveSettlementCode, + expenseAccountDO.getOrganizationId(), + topOrgIdForExpense, + ContractManageApplicationService.DOCUMENT_TYPE_CODE_WAREHOUSE_IN_OUT_ORDER); + log.info("按合同取费用科目编码:topOrgIdForExpense={}, 命中结算行科目数={}", topOrgIdForExpense, + orderedCodes != null ? orderedCodes.size() : 0); + boolean filterIn = expenseAccountDO.getInOrderDisplay() != null; + boolean filterOut = expenseAccountDO.getOutOrderDisplay() != null; + if (filterIn || filterOut) { + log.info("合同科目叠加主数据出入库显示过滤:inOrderDisplay={}, outOrderDisplay={}", + expenseAccountDO.getInOrderDisplay(), expenseAccountDO.getOutOrderDisplay()); + } + List result = new ArrayList<>(); + for (String code : orderedCodes) { + if (StringUtils.isEmpty(code)) { + continue; + } + ExpenseAccountPO po = expenseAccountDomainService.getInfoByCode2(code.trim(), topOrgIdForExpense); + if (po != null && po.getExpenseAccountId() != null && passWarehouseInOutDisplayFilter(po, expenseAccountDO)) { + result.add(po); + } + } + return result; + } + + /** + * 通过 BMS 按 settlement_entity_id 取结算对象编码,供合同匹配;失败返回 null(走通用合同)。 + */ + private String resolveSettlementCustomersCodeByEntityId(Long settlementEntityId, Long topOrganizationId) { + try { + AjaxResult ajaxResult = bmsServiceFeign.getCustomersInfoBySettlementEntityId(settlementEntityId, topOrganizationId); + if (ajaxResult == null || !"200".equals(String.valueOf(ajaxResult.get("code"))) || ajaxResult.get("data") == null) { + log.warn("按 settlementEntityId 查询结算对象未成功:code={}", ajaxResult != null ? ajaxResult.get("code") : null); + return null; + } + SettlementCustomersPO po = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")), SettlementCustomersPO.class); + if (po == null || StringUtils.isEmpty(po.getSettlementCustomersCode())) { + return null; + } + return po.getSettlementCustomersCode().trim(); + } catch (Exception e) { + log.warn("按 settlementEntityId 解析结算对象编码异常", e); + return null; + } + } + + /** + * 合同路径下可选:与主数据 in_order_display / out_order_display 一致才保留(入参为 null 的维度不参与过滤)。 + */ + private static boolean passWarehouseInOutDisplayFilter(ExpenseAccountPO po, ExpenseAccountDO filter) { + if (filter.getInOrderDisplay() != null + && !Objects.equals(po.getInOrderDisplay(), filter.getInOrderDisplay())) { + return false; + } + if (filter.getOutOrderDisplay() != null + && !Objects.equals(po.getOutOrderDisplay(), filter.getOutOrderDisplay())) { + return false; + } + return true; + } /** * 分页查询费用科目列表 diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/associationWarehouse/repository/persistence/AssociationWarehouseImpl.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/associationWarehouse/repository/persistence/AssociationWarehouseImpl.java index dc3fc8eb6..5860b8df2 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/associationWarehouse/repository/persistence/AssociationWarehouseImpl.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/associationWarehouse/repository/persistence/AssociationWarehouseImpl.java @@ -107,7 +107,31 @@ public class AssociationWarehouseImpl extends ServiceImpl().lambda() + .eq(AssociationWarehouse::getWarehouseId, associationWarehouseDO.getWarehouseId()) + .eq(AssociationWarehouse::getDelFlag, 1) + .and(w -> w.isNull(AssociationWarehouse::getIsDefault) + .or() + .ne(AssociationWarehouse::getIsDefault, 2))); + List stillBoundRows = associationWarehouseMapper.selectList(new QueryWrapper().lambda() + .eq(AssociationWarehouse::getWarehouseId, associationWarehouseDO.getWarehouseId()) + .eq(AssociationWarehouse::getDelFlag, 1)); + Set alreadyBoundCorrelationIds = stillBoundRows.stream() + .map(AssociationWarehouse::getCorrelationId) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + LinkedHashSet distinctCorrelationIds = CollectionUtils.isEmpty(associationWarehouseDO.getCorrelationIdList()) + ? new LinkedHashSet<>() + : new LinkedHashSet<>(associationWarehouseDO.getCorrelationIdList()); + for (Long correlationId : distinctCorrelationIds) { + if (correlationId == null) { + continue; + } + // 仍在库内的绑定(多为创建人默认仓 is_default=2)不再插入,否则撞唯一 IDX_ASS_COR_WAR_ID + if (alreadyBoundCorrelationIds.contains(correlationId)) { + continue; + } AssociationWarehouse associationWarehouse = new AssociationWarehouse(); associationWarehouse.setOrganizationId(loginUser.getUserPo().getOrganizationId()); associationWarehouse.setOrganizationName(loginUser.getUserPo().getOrganizationName()); @@ -121,13 +145,6 @@ public class AssociationWarehouseImpl extends ServiceImpl().lambda() - .eq(AssociationWarehouse::getWarehouseId, associationWarehouseDO.getWarehouseId()) - .eq(AssociationWarehouse::getDelFlag, 1) - .and(w -> w.isNull(AssociationWarehouse::getIsDefault) - .or() - .ne(AssociationWarehouse::getIsDefault, 2))); } return saveBatch(associationWarehouseList); } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/batchDetail/service/BatchDetailDomainService.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/batchDetail/service/BatchDetailDomainService.java index 738e4a94d..ddcdff8cc 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/batchDetail/service/BatchDetailDomainService.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/batchDetail/service/BatchDetailDomainService.java @@ -75,4 +75,4 @@ public class BatchDetailDomainService { batchDetailDO.setBatchId(batchId); return batchDetailService.queryList(batchDetailDO); } -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/entity/ContractManage.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/entity/ContractManage.java index 8cdff265c..9c5cddcad 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/entity/ContractManage.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/entity/ContractManage.java @@ -92,17 +92,17 @@ public class ContractManage extends BaseVOEntity{ private Integer accountingPeriod; @ApiModelProperty("合同签订日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同签订日期", width = 30, dateFormat = "yyyy-MM-dd") private Date signingDate; @ApiModelProperty("合同生效日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同生效日期", width = 30, dateFormat = "yyyy-MM-dd") private Date effectiveDate; @ApiModelProperty("合同到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date expirationDate; @@ -162,7 +162,7 @@ public class ContractManage extends BaseVOEntity{ private Integer automaticFlag; @ApiModelProperty("出账日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date paymentDate; @ApiModelProperty(name = "出账天数") diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/po/ContractManagePO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/po/ContractManagePO.java index 6ede0c62c..0f3b140ea 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/po/ContractManagePO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/po/ContractManagePO.java @@ -90,17 +90,17 @@ public class ContractManagePO extends BaseVOEntity{ private Integer accountingPeriod; @ApiModelProperty("合同签订日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同签订日期", width = 30, dateFormat = "yyyy-MM-dd") private Date signingDate; @ApiModelProperty("合同生效日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同生效日期", width = 30, dateFormat = "yyyy-MM-dd") private Date effectiveDate; @ApiModelProperty("合同到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date expirationDate; diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/todo/ContractManageDO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/todo/ContractManageDO.java index 180240c17..5902d3a01 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/todo/ContractManageDO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManage/repository/todo/ContractManageDO.java @@ -87,17 +87,17 @@ public class ContractManageDO extends BaseVOEntity{ private Integer accountingPeriod; @ApiModelProperty("合同签订日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同签订日期", width = 30, dateFormat = "yyyy-MM-dd") private Date signingDate; @ApiModelProperty("合同生效日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同生效日期", width = 30, dateFormat = "yyyy-MM-dd") private Date effectiveDate; @ApiModelProperty("合同到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date expirationDate; @@ -196,7 +196,7 @@ public class ContractManageDO extends BaseVOEntity{ private Integer automaticFlag; @ApiModelProperty("出账日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date paymentDate; @ApiModelProperty(name = "出账天数") diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/entity/ContractManageDetail.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/entity/ContractManageDetail.java index 7bd070d98..8af878e6e 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/entity/ContractManageDetail.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/entity/ContractManageDetail.java @@ -83,12 +83,12 @@ public class ContractManageDetail extends BaseVOEntity{ private String billingAttributesCode; @ApiModelProperty("合同有效日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同有效日期", width = 30, dateFormat = "yyyy-MM-dd") private Date subjectEffectiveDate; @ApiModelProperty("合同到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date subjectExpirationDate; @@ -98,4 +98,4 @@ public class ContractManageDetail extends BaseVOEntity{ @ApiModelProperty("单据类型") private String documentType; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/repository/po/ContractManageDetailPO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/repository/po/ContractManageDetailPO.java index d57dffe07..a67500951 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/repository/po/ContractManageDetailPO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/repository/po/ContractManageDetailPO.java @@ -82,12 +82,12 @@ public class ContractManageDetailPO extends BaseVOEntity{ private String billingAttributesCode; @ApiModelProperty("合同有效日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同有效日期", width = 30, dateFormat = "yyyy-MM-dd") private Date subjectEffectiveDate; @ApiModelProperty("合同到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date subjectExpirationDate; @@ -97,4 +97,4 @@ public class ContractManageDetailPO extends BaseVOEntity{ @ApiModelProperty("单据类型") private String documentType; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/repository/todo/ContractManageDetailDO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/repository/todo/ContractManageDetailDO.java index 80acd301c..0691d5915 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/repository/todo/ContractManageDetailDO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/contractManageDetail/repository/todo/ContractManageDetailDO.java @@ -82,12 +82,12 @@ public class ContractManageDetailDO extends BaseVOEntity{ private String billingAttributesCode; @ApiModelProperty("合同有效日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同有效日期", width = 30, dateFormat = "yyyy-MM-dd") private Date subjectEffectiveDate; @ApiModelProperty("合同到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date subjectExpirationDate; @@ -102,4 +102,4 @@ public class ContractManageDetailDO extends BaseVOEntity{ @ApiModelProperty("单据类型") private String documentType; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/entity/ExpenseAccount.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/entity/ExpenseAccount.java index 26c82423b..88d5cf7fa 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/entity/ExpenseAccount.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/entity/ExpenseAccount.java @@ -1,6 +1,7 @@ package com.mhd.basic.domain.expenseAccount.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.mhd.common.core.annotation.Excel; import io.swagger.annotations.ApiModelProperty; @@ -113,4 +114,25 @@ public class ExpenseAccount extends BaseVOEntity{ @ApiModelProperty("费率") private BigDecimal rate; + @ApiModelProperty("计费单位") + private String billingUnit; + + @ApiModelProperty("计费单位英文") + private String billingUnitEn; + + @ApiModelProperty("计费单位2") + private String billingUnit2; + + @ApiModelProperty("计费单位2英文") + private String billingUnitEn2; + + @ApiModelProperty("计费单位中文默认") + private String billingUnitDefaultCn; + + @ApiModelProperty("计费单位英文默认") + private String billingUnitDefaultEn; + + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; + } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/po/ExpenseAccountPO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/po/ExpenseAccountPO.java index dfbd0e340..07cca5026 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/po/ExpenseAccountPO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/po/ExpenseAccountPO.java @@ -1,5 +1,6 @@ package com.mhd.basic.domain.expenseAccount.repository.po; +import com.baomidou.mybatisplus.annotation.TableField; import com.mhd.common.core.annotation.Excel; import lombok.Data; import java.util.Date; @@ -136,4 +137,26 @@ public class ExpenseAccountPO extends BaseVOEntity{ @ApiModelProperty(name = "出库单是否固定显示 0-否 1-是") private Integer outOrderDisplay; + + + @ApiModelProperty("计费单位") + private String billingUnit; + + @ApiModelProperty("计费单位英文") + private String billingUnitEn; + + @ApiModelProperty("计费单位2") + private String billingUnit2; + + @ApiModelProperty("计费单位2英文") + private String billingUnitEn2; + + @ApiModelProperty("计费单位中文默认") + private String billingUnitDefaultCn; + + @ApiModelProperty("计费单位英文默认") + private String billingUnitDefaultEn; + + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/todo/ExpenseAccountDO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/todo/ExpenseAccountDO.java index 1fafefb54..cb07d9216 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/todo/ExpenseAccountDO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/expenseAccount/repository/todo/ExpenseAccountDO.java @@ -153,4 +153,35 @@ public class ExpenseAccountDO extends BaseVOEntity{ @ApiModelProperty(name = "创建者姓名") private String updateByName; + + + @ApiModelProperty("计费单位") + private String billingUnit; + + @ApiModelProperty("计费单位英文") + private String billingUnitEn; + + @ApiModelProperty("计费单位2") + private String billingUnit2; + + @ApiModelProperty("计费单位2英文") + private String billingUnitEn2; + + @ApiModelProperty("计费单位中文默认") + private String billingUnitDefaultCn; + + @ApiModelProperty("计费单位英文默认") + private String billingUnitDefaultEn; + + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; + + /** 查询参数:是否按仓储合同结算设置拉取科目 */ + private Boolean contractSettlementQuery; + + /** 查询参数:结算主体编码(货主编码等) */ + private String settlementCustomersCode; + + /** 查询参数:结算主体ID(货主ID等,对应 settlement_customers.settlement_entity_id) */ + private Long settlementEntityId; } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/lease/repository/todo/LeaseDO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/lease/repository/todo/LeaseDO.java index 6e6da37e8..27e5621ce 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/lease/repository/todo/LeaseDO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/lease/repository/todo/LeaseDO.java @@ -56,18 +56,18 @@ public class LeaseDO extends BaseVOEntity{ private BigDecimal leaseArea; @ApiModelProperty("开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date startDate; @ApiModelProperty("结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date endDate; @ApiModelProperty("备注") private String remark; @ApiModelProperty("当前时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date time; @ApiModelProperty("费用类别") diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java index 4146f856c..267d6da50 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/entity/MaterialBaseInfo.java @@ -389,4 +389,13 @@ public class MaterialBaseInfo extends BaseVOEntity{ @ApiModelProperty("是否抄码: 1-是 2-否") @Excel(name = "是否抄码: 1-是 2-否") private Integer copyCode; + + @ApiModelProperty("货物类型:0-物料 1-半成品 2-成品") + @Excel(name = "货物类型:0-物料 1-半成品 2-成品") + private Integer goodsType; + + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; + } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java index 9535baa31..28b99e2f6 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/po/MaterialBaseInfoPO.java @@ -365,6 +365,14 @@ public class MaterialBaseInfoPO extends BaseVOEntity{ @Excel(name = "是否抄码: 1-是 2-否") private Integer copyCode; + @ApiModelProperty("货物类型:0-物料 1-半成品 2-成品") + @Excel(name = "货物类型:0-物料 1-半成品 2-成品") + private Integer goodsType; + + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; + @ApiModelProperty("商品规则") private MaterialGoodsRuleFeign materialGoodsRule; diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java index 2f4012adf..a71a79e8e 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/materialBaseInfo/repository/todo/MaterialBaseInfoDO.java @@ -385,4 +385,12 @@ public class MaterialBaseInfoDO extends BaseVOEntity{ @ApiModelProperty("是否抄码: 1-是 2-否") @Excel(name = "是否抄码: 1-是 2-否") private Integer copyCode; + + @ApiModelProperty("货物类型:0-物料 1-半成品 2-成品") + @Excel(name = "货物类型:0-物料 1-半成品 2-成品") + private Integer goodsType; + + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/messageManage/repository/po/NoticeMessageLoggingAppPo.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/messageManage/repository/po/NoticeMessageLoggingAppPo.java index c07122c81..1d49449fe 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/messageManage/repository/po/NoticeMessageLoggingAppPo.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/messageManage/repository/po/NoticeMessageLoggingAppPo.java @@ -38,7 +38,7 @@ public class NoticeMessageLoggingAppPo extends BaseVOEntity private String noticeMessageContent = ""; /** 接收时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(name = "接收时间") private Date messageReceivingTime; @@ -66,7 +66,7 @@ public class NoticeMessageLoggingAppPo extends BaseVOEntity private String messageReadName = ""; /** 已读时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(name = "已读时间") private Date messageReadTime; @@ -118,4 +118,4 @@ public class NoticeMessageLoggingAppPo extends BaseVOEntity @ApiModelProperty("所属业务id") private String businessId; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/messageManage/repository/po/NoticeMessageLoggingPo.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/messageManage/repository/po/NoticeMessageLoggingPo.java index 3ec73a72a..98698cfcb 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/messageManage/repository/po/NoticeMessageLoggingPo.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/messageManage/repository/po/NoticeMessageLoggingPo.java @@ -41,7 +41,7 @@ public class NoticeMessageLoggingPo extends BaseVOEntity private String noticeMessageContent; /** 接收时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(name = "接收时间") @JsonSerialize(nullsUsing = DateNullToStringSerializer.class) private Date messageReceivingTime; @@ -70,7 +70,7 @@ public class NoticeMessageLoggingPo extends BaseVOEntity private String messageReadName; /** 已读时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(name = "已读时间") @JsonSerialize(nullsUsing = DateNullToStringSerializer.class) private Date messageReadTime; @@ -125,4 +125,4 @@ public class NoticeMessageLoggingPo extends BaseVOEntity private Integer jumpPage; @ApiModelProperty("所属业务id") private String businessId; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/messageManage/repository/todo/NoticeMessageLoggingDo.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/messageManage/repository/todo/NoticeMessageLoggingDo.java index 52cb2da59..6c33760b2 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/messageManage/repository/todo/NoticeMessageLoggingDo.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/messageManage/repository/todo/NoticeMessageLoggingDo.java @@ -43,7 +43,7 @@ public class NoticeMessageLoggingDo extends BaseVOEntity private String noticeMessageContent; /** 接收时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(name = "接收时间") private Date messageReceivingTime; @@ -68,7 +68,7 @@ public class NoticeMessageLoggingDo extends BaseVOEntity private Integer messageReadStatus; /** 已读时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(name = "已读时间") private Date messageReadTime; @@ -141,4 +141,4 @@ public class NoticeMessageLoggingDo extends BaseVOEntity private Integer jumpPage; @ApiModelProperty("所属业务id") private String businessId; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/projectManage/entity/ProjectManage.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/projectManage/entity/ProjectManage.java index 1f1f90e0b..bf16af26b 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/projectManage/entity/ProjectManage.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/projectManage/entity/ProjectManage.java @@ -63,12 +63,12 @@ public class ProjectManage extends BaseVOEntity{ private Integer projectStats; @ApiModelProperty("项目开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "项目开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date beginDate; @ApiModelProperty("项目结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "项目结束日期", width = 30, dateFormat = "yyyy-MM-dd") private Date endDate; @@ -91,4 +91,4 @@ public class ProjectManage extends BaseVOEntity{ @ApiModelProperty("备注") private String remark; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/projectManage/repository/po/ProjectManagePO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/projectManage/repository/po/ProjectManagePO.java index 00dc44930..135b3d8a1 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/projectManage/repository/po/ProjectManagePO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/projectManage/repository/po/ProjectManagePO.java @@ -62,12 +62,12 @@ public class ProjectManagePO extends BaseVOEntity{ private Integer projectStats; @ApiModelProperty("项目开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "项目开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date beginDate; @ApiModelProperty("项目结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "项目结束日期", width = 30, dateFormat = "yyyy-MM-dd") private Date endDate; @@ -90,4 +90,4 @@ public class ProjectManagePO extends BaseVOEntity{ @ApiModelProperty("备注") private String remark; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/projectManage/repository/todo/ProjectManageDO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/projectManage/repository/todo/ProjectManageDO.java index d119e4142..aaa519a6b 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/projectManage/repository/todo/ProjectManageDO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/projectManage/repository/todo/ProjectManageDO.java @@ -62,12 +62,12 @@ public class ProjectManageDO extends BaseVOEntity{ private Integer projectStats; @ApiModelProperty("项目开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "项目开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date beginDate; @ApiModelProperty("项目结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "项目结束日期", width = 30, dateFormat = "yyyy-MM-dd") private Date endDate; @@ -114,4 +114,4 @@ public class ProjectManageDO extends BaseVOEntity{ private String projectEndTimeStart; @ApiModelProperty(name = "项目结束时间查询条件结束日期") private String projectEndTimeEnd; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/scheduledTask/entity/ScheduledTask.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/scheduledTask/entity/ScheduledTask.java index e910d3078..bd684ba07 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/scheduledTask/entity/ScheduledTask.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/scheduledTask/entity/ScheduledTask.java @@ -42,7 +42,7 @@ public class ScheduledTask extends BaseVOEntity { private Integer retryCount; @ApiModelProperty("计划执行时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date executeTime; diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/scheduledTaskLog/entity/ScheduledTaskLog.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/scheduledTaskLog/entity/ScheduledTaskLog.java index 59ff409fc..162aa5edf 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/scheduledTaskLog/entity/ScheduledTaskLog.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/domain/scheduledTaskLog/entity/ScheduledTaskLog.java @@ -36,6 +36,6 @@ public class ScheduledTaskLog extends BaseVOEntity { private String taskStatus; @ApiModelProperty("执行时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date executeTime; } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/NoticeMessageLoggingDto.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/NoticeMessageLoggingDto.java index d320c3caa..3c9206cc6 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/NoticeMessageLoggingDto.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/NoticeMessageLoggingDto.java @@ -43,7 +43,7 @@ public class NoticeMessageLoggingDto extends BaseVOEntity private String noticeMessageContent; /** 接收时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(name = "接收时间") private Date messageReceivingTime; @@ -68,7 +68,7 @@ public class NoticeMessageLoggingDto extends BaseVOEntity private Integer messageReadStatus; /** 已读时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(name = "已读时间") private Date messageReadTime; @@ -141,4 +141,4 @@ public class NoticeMessageLoggingDto extends BaseVOEntity private Integer jumpPage; @ApiModelProperty("所属业务id") private String businessId; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/ContractManageDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/ContractManageDTO.java index bf93087b3..fdd7a3478 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/ContractManageDTO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManage/ContractManageDTO.java @@ -87,17 +87,17 @@ public class ContractManageDTO extends BaseVOEntity{ private Integer accountingPeriod; @ApiModelProperty("合同签订日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同签订日期", width = 30, dateFormat = "yyyy-MM-dd") private Date signingDate; @ApiModelProperty("合同生效日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同生效日期", width = 30, dateFormat = "yyyy-MM-dd") private Date effectiveDate; @ApiModelProperty("合同到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date expirationDate; @@ -187,7 +187,7 @@ public class ContractManageDTO extends BaseVOEntity{ private Integer automaticFlag; @ApiModelProperty("出账日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date paymentDate; @ApiModelProperty(name = "出账天数") diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManageDetail/ContractManageDetailDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManageDetail/ContractManageDetailDTO.java index d45098c18..92d2b4400 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManageDetail/ContractManageDetailDTO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/contractManageDetail/ContractManageDetailDTO.java @@ -81,12 +81,12 @@ public class ContractManageDetailDTO extends BaseVOEntity{ private String billingAttributesCode; @ApiModelProperty("合同有效日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同有效日期", width = 30, dateFormat = "yyyy-MM-dd") private Date subjectEffectiveDate; @ApiModelProperty("合同到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date subjectExpirationDate; @@ -102,4 +102,4 @@ public class ContractManageDetailDTO extends BaseVOEntity{ @ApiModelProperty("单据类型") private String documentType; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/expenseAccount/ExpenseAccountDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/expenseAccount/ExpenseAccountDTO.java index c6fbe3362..d3d6c4b45 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/expenseAccount/ExpenseAccountDTO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/expenseAccount/ExpenseAccountDTO.java @@ -138,4 +138,42 @@ public class ExpenseAccountDTO extends BaseVOEntity{ @ApiModelProperty(name = "出库单是否固定显示 0-否 1-是") private Integer outOrderDisplay; + + + @ApiModelProperty("计费单位") + private String billingUnit; + + @ApiModelProperty("计费单位英文") + private String billingUnitEn; + + @ApiModelProperty("计费单位2") + private String billingUnit2; + + @ApiModelProperty("计费单位2英文") + private String billingUnitEn2; + + @ApiModelProperty("计费单位中文默认") + private String billingUnitDefaultCn; + + @ApiModelProperty("计费单位英文默认") + private String billingUnitDefaultEn; + + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; + + /** + * 为 true 时从仓储合同「结算设置」取费用科目(入库/出库费用登记等) + */ + @ApiModelProperty("是否按合同结算设置查询费用科目(入库/出库费用登记;为 true 时可传 inOrderDisplay=1 或 outOrderDisplay=1 再按主数据入库/出库显示过滤)") + private Boolean contractSettlementQuery; + + @ApiModelProperty("结算主体编码(通常为货主编码);不传则按通用仓储合同的结算设置取科目") + private String settlementCustomersCode; + + /** + * 结算主体ID(货主等业务主体ID,与 BMS settlement_customers.settlement_entity_id 一致)。 + * 与 settlementCustomersCode 二选一:编码优先;仅传本字段时在 BMS 解析出结算对象编码后再走合同(有客户合同用客户,无则通用)。 + */ + @ApiModelProperty("结算主体ID(货主ID等,对应 settlement_entity_id);与 settlementCustomersCode 二选一,编码优先") + private Long settlementEntityId; } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java index f6a8e5e61..7704c15c9 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/materialBaseInfo/MaterialBaseInfoDTO.java @@ -364,4 +364,13 @@ public class MaterialBaseInfoDTO extends BaseVOEntity{ @ApiModelProperty("是否抄码: 1-是 2-否") @Excel(name = "是否抄码: 1-是 2-否") private Integer copyCode; + + @ApiModelProperty("货物类型:0-物料 1-半成品 2-成品") + @Excel(name = "货物类型:0-物料 1-半成品 2-成品") + private Integer goodsType; + + @ApiModelProperty("毛重(kg)") + @Excel(name = "毛重(kg)") + private BigDecimal grossWeight; + } \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/projectManage/ProjectManageDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/projectManage/ProjectManageDTO.java index 655e7572d..10216d2ac 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/projectManage/ProjectManageDTO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/dto/projectManage/ProjectManageDTO.java @@ -61,12 +61,12 @@ public class ProjectManageDTO extends BaseVOEntity{ private Integer projectStats; @ApiModelProperty("项目开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "项目开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date beginDate; @ApiModelProperty("项目结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "项目结束日期", width = 30, dateFormat = "yyyy-MM-dd") private Date endDate; @@ -117,4 +117,4 @@ public class ProjectManageDTO extends BaseVOEntity{ private String projectEndTimeStart; @ApiModelProperty(name = "项目结束时间查询条件结束日期") private String projectEndTimeEnd; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java index 502883e1c..1e2039f0e 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/contractManage/ContractManageApi.java @@ -70,6 +70,19 @@ public class ContractManageApi extends BaseController{ return AjaxResult.success(contractManageApplicationService.getSubject(subjectAndPriceDTO)); } + /** + * 获取单价 + */ + @ApiOperation("获取单价") + @GetMapping(value = "/getPrice") + public AjaxResult getPrice(@RequestParam("documentTypeCode") String documentTypeCode, + @RequestParam("settlementCustomersCode") String settlementCustomersCode, + @RequestParam("organizationId") Long organizationId, + @RequestParam("topOrganizationId") Long topOrganizationId) + { + return AjaxResult.success(contractManageApplicationService.getPrice(documentTypeCode,settlementCustomersCode,organizationId,topOrganizationId)); + } + /** * 获取科目和单价 */ diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/expenseAccount/ExpenseAccountApi.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/expenseAccount/ExpenseAccountApi.java index 5c39ccc49..8810a7c34 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/expenseAccount/ExpenseAccountApi.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facade/expenseAccount/ExpenseAccountApi.java @@ -50,6 +50,12 @@ public class ExpenseAccountApi extends BaseController{ /** * 分页查询费用科目列表 + * + *

入库/出库费用登记等场景传 {@code contractSettlementQuery=true}(与单据类型「仓库进出仓单」合同结算行一致), + * 科目来源、结算主体为空走通用合同等逻辑入库与出库相同。 + * 可传 {@code settlementCustomersCode},或仅传 {@code settlementEntityId}(货主/结算主体ID,对应 BMS settlement_entity_id)由服务端解析结算编码后再匹配合同(有客户合同用客户,无则通用;编码优先)。 + * 先按合同结算行取科目,再关联主数据;若请求中传入 {@code inOrderDisplay} 或 {@code outOrderDisplay}(0-否 1-是), + * 则再按主数据「入库单 / 出库单是否固定显示」与入参相等过滤(二者都传则同时满足)。不传则不在此维度过滤。

*/ @ApiOperation("查询费用科目列表") @GetMapping("/list") @@ -62,6 +68,19 @@ public class ExpenseAccountApi extends BaseController{ expenseAccountDTO = new ExpenseAccountDTO(); logger.info("expenseAccountDTO 为 null,创建新对象"); } + if (Boolean.TRUE.equals(expenseAccountDTO.getContractSettlementQuery())) { + ExpenseAccountDO contractQueryDO = new ExpenseAccountDO(); + BeanUtils.copyProperties(expenseAccountDTO, contractQueryDO); + logger.info("按合同结算设置查询费用科目,settlementCustomersCode={},settlementEntityId={},inOrderDisplay={},outOrderDisplay={}", + expenseAccountDTO.getSettlementCustomersCode(), + expenseAccountDTO.getSettlementEntityId(), + expenseAccountDTO.getInOrderDisplay(), expenseAccountDTO.getOutOrderDisplay()); + List contractList = + expenseAccountApplicationService.queryListFromContractWarehouseInOutSettlement( + contractQueryDO, expenseAccountDTO.getSettlementCustomersCode()); + logger.info("按合同结算设置查询完成,条数:{}", contractList != null ? contractList.size() : 0); + return getDataTable(contractList != null ? contractList : new ArrayList<>()); + } ExpenseAccountDO expenseAccountDO = new ExpenseAccountDO(); BeanUtils.copyProperties(expenseAccountDTO, expenseAccountDO); logger.info("转换后的 ExpenseAccountDO:{}", expenseAccountDO); diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facadeApi/associationWarehouse/AssociationWarehouseApi.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facadeApi/associationWarehouse/AssociationWarehouseApi.java index 2858b2787..ea6f3948a 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facadeApi/associationWarehouse/AssociationWarehouseApi.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facadeApi/associationWarehouse/AssociationWarehouseApi.java @@ -7,13 +7,7 @@ import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO; import com.mhd.system.api.model.LoginUser; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.mhd.basic.interfaces.dto.associationWarehouse.AssociationWarehouseDTO; import com.mhd.basic.domain.associationWarehouse.repository.todo.AssociationWarehouseDO; import com.mhd.basic.domain.associationWarehouse.repository.po.AssociationWarehousePO; @@ -134,6 +128,23 @@ public class AssociationWarehouseApi extends BaseController{ return AjaxResult.success(associationWarehouseCacheDO); } + /** + * 获取用户当前设置的仓库 + */ + @ApiOperation("获取当前登录用户设置的仓库") + @GetMapping("/getWarehouseInfoByUserId") + public AjaxResult getWarehouseInfoByUserId(@RequestParam("userId") Long userId) { + //转换实体 + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (userId != null) { + AssociationWarehouseCacheDO associationWarehouseCacheDO = associationWarehouseApplicationService.getWarehouseInfo(userId); + return AjaxResult.success(associationWarehouseCacheDO); + } else { + AssociationWarehouseCacheDO associationWarehouseCacheDO = associationWarehouseApplicationService.getWarehouseInfo(loginUser.getUserid()); + return AjaxResult.success(associationWarehouseCacheDO); + } + } + /** * 直接从数据库获取指定用户设置的仓库(不使用缓存) */ @@ -144,4 +155,4 @@ public class AssociationWarehouseApi extends BaseController{ return AjaxResult.success(associationWarehouseCacheDO); } -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facadeApi/materialBaseInfo/MaterialBaseInfoApi.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facadeApi/materialBaseInfo/MaterialBaseInfoApi.java index 4286d6293..bd6a1d37b 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facadeApi/materialBaseInfo/MaterialBaseInfoApi.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/interfaces/facadeApi/materialBaseInfo/MaterialBaseInfoApi.java @@ -5,6 +5,9 @@ import com.mhd.basic.interfaces.vo.MaterialStockInfoVo; import java.util.List; import java.util.stream.Collectors; +import com.mhd.system.api.OmsServiceFeign; +import com.mhd.system.api.domain.ErpCountryDTO; +import com.mhd.system.api.domain.ErpEnterpriseUnitDTO; import com.mhd.system.api.domain.MaterialBarCodeFeign; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -41,6 +44,9 @@ public class MaterialBaseInfoApi extends BaseController{ @Resource private MaterialBaseInfoAssembler materialBaseInfoAssembler; + @Resource + private OmsServiceFeign omsServiceFeign; + /** * 分页查询物料基础信息列表 */ @@ -108,4 +114,16 @@ public class MaterialBaseInfoApi extends BaseController{ return R.ok(materialBaseInfoApplicationService.getMaterialStockList(shipperName,materialName,machineCode,pageNum,pageSize)); } + + @ApiOperation("获取企业单位列表-申报单位下拉框用") + @GetMapping("/getDeclarationUnitList") + public AjaxResult getDeclarationUnitList(ErpEnterpriseUnitDTO erpEnterpriseUnitDTO) { + return omsServiceFeign.getUnitList(erpEnterpriseUnitDTO); + } + + @ApiOperation("获取企业国别列表-原产国下拉框用") + @GetMapping("/getCountryList") + public AjaxResult getCountryList(ErpCountryDTO erpCountryDTO) { + return omsServiceFeign.getCountryList(erpCountryDTO); + } } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/controller/SysDictTypeController.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/controller/SysDictTypeController.java index 1866d8a12..6cf686ee9 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/controller/SysDictTypeController.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/controller/SysDictTypeController.java @@ -15,6 +15,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.mhd.common.core.constant.UserConstants; +import com.mhd.common.core.domain.po.UserPo; +import com.mhd.common.core.utils.StringUtils; import com.mhd.common.core.utils.poi.ExcelUtil; import com.mhd.common.core.web.controller.BaseController; import com.mhd.common.core.web.domain.AjaxResult; @@ -23,6 +25,7 @@ import com.mhd.common.log.annotation.Log; import com.mhd.common.log.enums.BusinessType; import com.mhd.common.security.utils.SecurityUtils; import com.mhd.system.api.domain.SysDictType; +import com.mhd.system.api.model.LoginUser; /** * 数据字典信息 @@ -73,14 +76,60 @@ public class SysDictTypeController extends BaseController @PostMapping public AjaxResult add(@Validated @RequestBody SysDictType dict) { + fillDictTypeOrganization(dict); if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) { - return AjaxResult.error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在"); + return AjaxResult.error("新增字典'" + dict.getDictName() + "'失败,字典类型编码「" + dict.getDictType() + "」在当前组织下已存在"); } dict.setCreateBy(SecurityUtils.getUsername()); return toAjax(dictTypeService.insertDictType(dict)); } + /** + * 写入组织维度:优先使用请求体中选择的组织;未传时使用当前登录用户所属组织;无登录上下文时按平台(0)处理。 + */ + private void fillDictTypeOrganization(SysDictType dict) + { + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser == null || loginUser.getUserPo() == null) + { + if (dict.getOrganizationId() == null) + { + dict.setOrganizationId(0L); + } + return; + } + UserPo userPo = loginUser.getUserPo(); + if (dict.getOrganizationId() == null) + { + dict.setOrganizationId(userPo.getOrganizationId()); + if (StringUtils.isEmpty(dict.getOrganizationName())) + { + dict.setOrganizationName(userPo.getOrganizationName()); + } + if (dict.getTopOrganizationId() == null) + { + dict.setTopOrganizationId(userPo.getTopOrganizationId()); + } + } + else + { + if (dict.getTopOrganizationId() == null) + { + dict.setTopOrganizationId(userPo.getTopOrganizationId()); + } + if (StringUtils.isEmpty(dict.getOrganizationName()) + && java.util.Objects.equals(dict.getOrganizationId(), userPo.getOrganizationId())) + { + dict.setOrganizationName(userPo.getOrganizationName()); + } + } + if (dict.getOrganizationId() == null) + { + dict.setOrganizationId(0L); + } + } + /** * 修改字典类型 */ @@ -89,9 +138,10 @@ public class SysDictTypeController extends BaseController @PutMapping public AjaxResult edit(@Validated @RequestBody SysDictType dict) { + fillDictTypeOrganization(dict); if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict))) { - return AjaxResult.error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在"); + return AjaxResult.error("修改字典'" + dict.getDictName() + "'失败,字典类型编码「" + dict.getDictType() + "」在当前组织下已存在"); } dict.setUpdateBy(SecurityUtils.getUsername()); return toAjax(dictTypeService.updateDictType(dict)); diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysCompanyApp.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysCompanyApp.java index 03956b367..bafb0c73d 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysCompanyApp.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysCompanyApp.java @@ -41,7 +41,7 @@ public class SysCompanyApp extends BaseEntity private String appVersion; /** 上架时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "上架时间", width = 30, dateFormat = "yyyy-MM-dd") private Date createDatetime; @@ -149,4 +149,4 @@ public class SysCompanyApp extends BaseEntity .append("delFlag", getDelFlag()) .toString(); } -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysEquipmentGps.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysEquipmentGps.java index 25b057fe4..4a5c9a05f 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysEquipmentGps.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysEquipmentGps.java @@ -44,12 +44,12 @@ public class SysEquipmentGps extends BaseEntity private Integer delFlag; /** 创建时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") private Date createDatetime; /** 修改时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd") private Date updateDatetime; @@ -149,4 +149,4 @@ public class SysEquipmentGps extends BaseEntity .append("updateDatetime", getUpdateDatetime()) .toString(); } -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysEquipmentPrinter.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysEquipmentPrinter.java index a2309bc9a..58feb2edc 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysEquipmentPrinter.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysEquipmentPrinter.java @@ -44,12 +44,12 @@ public class SysEquipmentPrinter extends BaseEntity private Integer delFlag; /** 创建时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") private Date createDate; /** 更新时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd") private Date updateDate; @@ -149,4 +149,4 @@ public class SysEquipmentPrinter extends BaseEntity .append("updateDate", getUpdateDate()) .toString(); } -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysMsgCenter.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysMsgCenter.java index e1c7d7cf2..d68a09077 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysMsgCenter.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysMsgCenter.java @@ -37,14 +37,14 @@ public class SysMsgCenter extends BaseEntity private String createBy; /** 创建时间 */ - @JsonFormat(pattern = "YYYY-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date createTime; /** 更新人 */ private String updateBy; /** 更新时间 */ - @JsonFormat(pattern = "YYYY-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date updateTime; /** 状态 */ @@ -58,4 +58,4 @@ public class SysMsgCenter extends BaseEntity private String msgType; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysMsgPush.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysMsgPush.java index e8e16fea9..90f25c7e4 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysMsgPush.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/SysMsgPush.java @@ -37,7 +37,7 @@ public class SysMsgPush extends BaseEntity private String createBy; /** 创建时间 */ - @JsonFormat(pattern = "YYYY-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date createTime; /** 删除状态 */ @@ -47,7 +47,7 @@ public class SysMsgPush extends BaseEntity private String updateBy; /** 更新时间 */ - @JsonFormat(pattern = "YYYY-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date updateTime; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/dto/SysMsgPushDTO.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/dto/SysMsgPushDTO.java index a40ea6cd6..94a62a509 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/dto/SysMsgPushDTO.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/domain/dto/SysMsgPushDTO.java @@ -37,11 +37,11 @@ public class SysMsgPushDTO extends BaseEntity private String createBy; /** 创建时间 */ - @JsonFormat(pattern = "YYYY-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date createTime; /** 推送时间 */ - @JsonFormat(pattern = "YYYY-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date pushTime; /** 删除状态 */ @@ -51,21 +51,21 @@ public class SysMsgPushDTO extends BaseEntity private String updateBy; /** 更新时间 */ - @JsonFormat(pattern = "YYYY-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date updateTime; /* 创建时间搜索 */ - @JsonFormat(pattern = "YYYY-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date startCreateTime; - @JsonFormat(pattern = "YYYY-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date endCreateTime; /* 推送时间搜索 */ - @JsonFormat(pattern = "YYYY-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date startPushTime; - @JsonFormat(pattern = "YYYY-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date endPushTime; -} +} \ No newline at end of file diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/mapper/SysDictDataMapper.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/mapper/SysDictDataMapper.java index b91b23a2a..e7c16554a 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/mapper/SysDictDataMapper.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/mapper/SysDictDataMapper.java @@ -98,4 +98,12 @@ public interface SysDictDataMapper extends BaseMapper * @return 结果 */ public int updateDictDataType(@Param("oldDictType") String oldDictType, @Param("newDictType") String newDictType); + + /** + * 按字典类型批量同步字典数据的组织信息(与字典类型归属一致) + */ + int updateDictDataOrganizationByDictType(@Param("dictType") String dictType, + @Param("organizationId") Long organizationId, + @Param("organizationName") String organizationName, + @Param("topOrganizationId") Long topOrganizationId); } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/mapper/SysDictTypeMapper.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/mapper/SysDictTypeMapper.java index 9984a5605..bd6d92ead 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/mapper/SysDictTypeMapper.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/mapper/SysDictTypeMapper.java @@ -79,5 +79,5 @@ public interface SysDictTypeMapper * @param dictType 字典类型 * @return 结果 */ - public SysDictType checkDictTypeUnique(String dictType); + public SysDictType checkDictTypeUnique(SysDictType dictType); } diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictDataServiceImpl.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictDataServiceImpl.java index f10053b47..e2ec28888 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictDataServiceImpl.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictDataServiceImpl.java @@ -4,17 +4,24 @@ import java.util.ArrayList; import java.util.List; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mhd.basic.infrastructure.feign.ProductServiceFeign; import com.mhd.basic.infrastructure.util.annotation.DataPermissions; +import com.mhd.common.core.domain.po.OrganizationPo; import com.mhd.common.core.exception.ServiceException; import com.mhd.common.core.exception.digitalLogisticsException.DigitalLogisticsException; import com.mhd.common.core.exception.digitalLogisticsException.UserError; +import com.mhd.common.core.utils.StringUtils; +import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.common.security.utils.SecurityUtils; +import com.mhd.system.api.domain.SysDictType; import com.mhd.system.api.model.LoginUser; import com.mhd.system.domain.vo.SysBankDictInfo; import com.mhd.system.domain.vo.SysDictDataVO; import com.mhd.system.mapper.SysDictDataMapper; import com.mhd.system.service.ISysDictDataService; +import com.mhd.system.service.ISysDictTypeService; import org.springframework.stereotype.Service; import com.mhd.common.security.utils.DictUtils; import com.mhd.system.api.domain.SysDictData; @@ -33,6 +40,12 @@ public class SysDictDataServiceImpl extends ServiceImpl 0) @@ -179,14 +203,29 @@ public class SysDictDataServiceImpl extends ServiceImpl 0) { + String dictTypeForCache = StringUtils.isNotEmpty(data.getDictType()) ? data.getDictType() : sysDictData.getDictType(); SysDictData dictData = new SysDictData(); - dictData.setDictType(data.getDictType()); + dictData.setDictType(dictTypeForCache); List dictDatas = dictDataMapper.selectDictDataByType(dictData); - DictUtils.setDictCache(data.getDictType(), dictDatas); + DictUtils.setDictCache(dictTypeForCache, dictDatas); } return row; } @@ -386,6 +425,69 @@ public class SysDictDataServiceImpl extends ServiceImpl selectDictList(SysDictData sysDictData) { return dictDataMapper.selectDictDataList(sysDictData); diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictTypeServiceImpl.java b/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictTypeServiceImpl.java index 5d3d4ffac..690d4b71c 100644 --- a/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictTypeServiceImpl.java +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/system/service/impl/SysDictTypeServiceImpl.java @@ -3,9 +3,14 @@ package com.mhd.system.service.impl; import java.util.Comparator; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; import javax.annotation.PostConstruct; +import com.alibaba.fastjson.JSONObject; +import com.mhd.basic.infrastructure.feign.ProductServiceFeign; +import com.mhd.common.core.domain.po.OrganizationPo; +import com.mhd.common.core.web.domain.AjaxResult; import com.mhd.system.mapper.SysDictDataMapper; import com.mhd.system.mapper.SysDictTypeMapper; import com.mhd.system.service.ISysDictTypeService; @@ -16,8 +21,10 @@ import com.mhd.common.core.constant.UserConstants; import com.mhd.common.core.exception.ServiceException; import com.mhd.common.core.utils.StringUtils; import com.mhd.common.security.utils.DictUtils; +import com.mhd.common.security.utils.SecurityUtils; import com.mhd.system.api.domain.SysDictData; import com.mhd.system.api.domain.SysDictType; +import com.mhd.system.api.model.LoginUser; /** * 字典 业务层处理 @@ -33,6 +40,9 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService @Autowired private SysDictDataMapper dictDataMapper; + @Autowired + private ProductServiceFeign productServiceFeign; + /** * 项目启动时,初始化字典到缓存 */ @@ -177,6 +187,11 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService @Override public int insertDictType(SysDictType dict) { + fillOrganizationNameFromProductCenter(dict); + if (dict.getOrganizationId() != null && StringUtils.isEmpty(dict.getOrganizationName())) + { + dict.setOrganizationName(""); + } int row = dictTypeMapper.insertDictType(dict); if (row > 0) { @@ -196,10 +211,16 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService public int updateDictType(SysDictType dict) { SysDictType oldDict = dictTypeMapper.selectDictTypeById(dict.getDictId()); + mergeDictTypeOrganizationNameForUpdate(dict, oldDict); dictDataMapper.updateDictDataType(oldDict.getDictType(), dict.getDictType()); int row = dictTypeMapper.updateDictType(dict); if (row > 0) { + if (dictDataMapper.countDictDataByType(dict.getDictType()) > 0) + { + dictDataMapper.updateDictDataOrganizationByDictType(dict.getDictType(), + dict.getOrganizationId(), dict.getOrganizationName(), dict.getTopOrganizationId()); + } SysDictData dictData = new SysDictData(); dictData.setDictType(dict.getDictType()); List dictDatas = dictDataMapper.selectDictDataByType(dictData); @@ -209,7 +230,7 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService } /** - * 校验字典类型称是否唯一 + * 校验字典类型在同一组织下是否唯一 * * @param dict 字典类型 * @return 结果 @@ -218,11 +239,76 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService public String checkDictTypeUnique(SysDictType dict) { Long dictId = StringUtils.isNull(dict.getDictId()) ? -1L : dict.getDictId(); - SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType()); + SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict); if (StringUtils.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; } + + /** + * 修改字典类型时,请求体常不带 organizationName;若与库中或当前登录用户组织一致则补全,避免 UPDATE 把名称写成 null。 + */ + private void mergeDictTypeOrganizationNameForUpdate(SysDictType dict, SysDictType oldDict) + { + if (dict == null || oldDict == null || StringUtils.isNotEmpty(dict.getOrganizationName())) + { + return; + } + if (dict.getOrganizationId() == null) + { + return; + } + if (Objects.equals(dict.getOrganizationId(), oldDict.getOrganizationId()) + && StringUtils.isNotEmpty(oldDict.getOrganizationName())) + { + dict.setOrganizationName(oldDict.getOrganizationName()); + return; + } + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null && loginUser.getUserPo() != null + && Objects.equals(dict.getOrganizationId(), loginUser.getUserPo().getOrganizationId()) + && StringUtils.isNotEmpty(loginUser.getUserPo().getOrganizationName())) + { + dict.setOrganizationName(loginUser.getUserPo().getOrganizationName()); + } + fillOrganizationNameFromProductCenter(dict); + if (dict.getOrganizationId() != null && StringUtils.isEmpty(dict.getOrganizationName())) + { + dict.setOrganizationName(""); + } + } + + /** + * 已存在 organizationId 但名称为空时,从产品中心按组织 id 补全名称(与 BasicAgreement 等模块一致)。 + */ + private void fillOrganizationNameFromProductCenter(SysDictType dict) + { + if (dict == null || dict.getOrganizationId() == null || StringUtils.isNotEmpty(dict.getOrganizationName())) + { + return; + } + Long oid = dict.getOrganizationId(); + if (oid == 0L) + { + return; + } + try + { + AjaxResult res = productServiceFeign.getOrganizationInfo(oid); + if (res != null && "200".equals(String.valueOf(res.get("code"))) && res.get("data") != null) + { + OrganizationPo po = JSONObject.parseObject(JSONObject.toJSONString(res.get("data")), OrganizationPo.class); + if (po != null && StringUtils.isNotEmpty(po.getOrganizationName())) + { + dict.setOrganizationName(po.getOrganizationName()); + } + } + } + catch (Exception ignored) + { + // 远程不可用时保持后续逻辑(如置空字符串以便 UPDATE 写入列) + } + } } diff --git a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml index 2cb7e8fc9..b90857cba 100644 --- a/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml +++ b/mhd-modules/mhd-system/src/main/resources/mapper/basic/ExpenseAccountMapper.xml @@ -107,12 +107,12 @@ - - where dict_type = #{dictType} limit 1 + where dict_type = #{dictType} + and IFNULL(organization_id, 0) = IFNULL(#{organizationId}, 0) + limit 1 @@ -78,6 +91,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" dict_type = #{dictType}, status = #{status}, remark = #{remark}, + organization_id = #{organizationId}, + organization_name = #{organizationName}, + top_organization_id = #{topOrganizationId}, update_by = #{updateBy}, update_time = sysdate() @@ -90,6 +106,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" dict_type, status, remark, + organization_id, + organization_name, + top_organization_id, create_by, create_time )values( @@ -97,6 +116,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{dictType}, #{status}, #{remark}, + #{organizationId}, + #{organizationName}, + #{topOrganizationId}, #{createBy}, sysdate() ) diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserApplicationService.java index 7ed665e3d..01ee8e0b5 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserApplicationService.java +++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserApplicationService.java @@ -30,6 +30,7 @@ import com.mhd.system.api.FinanceServiceFeign; import com.mhd.system.api.OrganizationServiceFeign; import com.mhd.system.api.TicketServiceFeign; import com.mhd.system.api.TransportFeign; +import com.mhd.system.api.YmsServiceFeign; import com.mhd.system.api.domain.PlatformUserDTO; import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO; import com.mhd.system.api.domain.WlhyLoginUser; @@ -49,6 +50,7 @@ import com.mhd.user.domain.roleAggregate.service.RoleMenuDomainService; import com.mhd.user.domain.userAggregate.entity.*; import com.mhd.user.domain.userAggregate.factory.UserFactory; import com.mhd.user.domain.userAggregate.repository.mapper.UserMapper; +import com.mhd.user.domain.userAggregate.repository.mapper.UserShipperMapper; import com.mhd.user.domain.userAggregate.repository.po.*; import com.mhd.user.domain.userAggregate.repository.po.UserAuthInfoPo; import com.mhd.user.domain.userAggregate.repository.po.UserAuthPo; @@ -181,6 +183,8 @@ public class UserApplicationService { private TicketServiceFeign ticketServiceFeign; @Resource private UserWlhyDomainService wlhyDomainService; + @Resource + private UserYmsDomainService ymsDomainService; @Resource private UserShipperApplicationService userShipperApplicationService; @@ -207,6 +211,8 @@ public class UserApplicationService { @Qualifier("tokenService") @Autowired private TokenService tokenService; + @Autowired + private UserShipperMapper userShipperMapper; /** * @Description 查询用户列表 @@ -1381,6 +1387,7 @@ public class UserApplicationService { @Transactional(rollbackFor = Exception.class) public UserPo addUserYG(UserDO userDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); + String password = userDO.getPlainPassword(); if (ObjectUtil.isNull(loginUser)) { throw new DigitalLogisticsException(UserError.TIMEOUT); } @@ -1484,6 +1491,20 @@ public class UserApplicationService { // 如果业务要求必须同步成功,可以取消下面的注释,让异常抛出 // throw e; } + //获取组织信息 + Long organizationId = loginUser.getUserPo().getOrganizationId(); + Integer isQueue = userMapper.getOrdIsQueue(organizationId); + + if (isQueue==1) { + //同步YMS员工信息 + try { + userEntity.setUserPassword(password); + ymsDomainService.addOrEditYmsUser(userEntity); + } catch (Exception e) { + // 同步YMS失败时,记录日志但不影响用户保存 + log.warn("同步YMS员工信息失败,但不影响用户保存: {}", e.getMessage()); + } + } return userPo; } } @@ -2094,8 +2115,24 @@ public class UserApplicationService { } } UserEntity userEntity = userDomainService.updateUser(userDO); - //同步网货平台员工信息 - wlhyDomainService.addOrEditPlatformUser(userEntity); + // 客户/供应商为 WMS 客户管理用户,不同步网货/YMS 平台员工 + if (!isCustomerManagementPresetRole(userEntity.getRoleCode())) { + try { + wlhyDomainService.addOrEditPlatformUser(userEntity); + } catch (Exception e) { + log.warn("同步网货平台员工信息失败,但不影响用户保存: {}", e.getMessage()); + } + Long organizationId = loginUser.getUserPo().getOrganizationId(); + Integer ordIsQueue = userMapper.getOrdIsQueue(organizationId); + if (userEntity.getUserAccount() != null && ordIsQueue == 1) { + try { + ymsDomainService.addOrEditYmsUser(userEntity); + } catch (Exception e) { + log.warn("同步YMS平台员工信息失败,但不影响用户保存: {}", e.getMessage()); + } + } + } + BeanUtils.copyProperties(userPo, userEntity); @@ -2250,6 +2287,7 @@ public class UserApplicationService { if (ObjectUtil.isNull(loginUser)) { throw new DigitalLogisticsException(UserError.TIMEOUT); } + List wlhySyncIds = new ArrayList<>(); for (Long userId : ids) { UserPo userPo = userDomainService.selectByUserId(userId); UserDO userDO = new UserDO(); @@ -2263,11 +2301,17 @@ public class UserApplicationService { userDO.setDelFlag(2); userDO.setUpdateTime(new Date()); userDomainService.updateUser(userDO); + if (!isCustomerManagementPresetRole(userPo.getRoleCode())) { + wlhySyncIds.add(userId); + } } } - //同步删除网货的员工信息(只有当ids不为空时才调用) - if (!ids.isEmpty()) { - wlhyDomainService.deleteBatchPlatformUser(ids); + if (!wlhySyncIds.isEmpty()) { + try { + wlhyDomainService.deleteBatchPlatformUser(wlhySyncIds); + } catch (Exception e) { + log.warn("同步删除网货用户失败,但不影响本地删除: {}", e.getMessage()); + } } return ids.size(); } @@ -2287,12 +2331,12 @@ public class UserApplicationService { } } //用户账号传值 - if (StringUtils.isNotEmpty(checkDO.getUserAccount())) { - //调用工具类校验,用户账号格式错误 - if (!RegexUtil.isAccountLegal(checkDO.getUserAccount())) { - throw new DigitalLogisticsException(UserError.USER_ACCOUNT_REG_ERROR); - } - } +// if (StringUtils.isNotEmpty(checkDO.getUserAccount())) { +// //调用工具类校验,用户账号格式错误 +// if (!RegexUtil.isAccountLegal(checkDO.getUserAccount())) { +// throw new DigitalLogisticsException(UserError.USER_ACCOUNT_REG_ERROR); +// } +// } //用户手机号传值 // if (StringUtils.isNotEmpty(checkDO.getUserPhone()) && checkDO.getDataSources() != null && checkDO.getDataSources()!=2) { // //调用工具类校验,手机号格式错误 @@ -5016,7 +5060,7 @@ public class UserApplicationService { * @date 2024/4/2 10:09 */ @Transactional(rollbackFor = Exception.class) - public void addCustomer(CustomerDO customerDO){ + public UserPo addCustomer(CustomerDO customerDO){ UserDO userDO = new UserDO(); BeanUtils.copyProperties(customerDO, userDO); userDO.setUserAccount(customerDO.getUserMemberCode()); @@ -5036,7 +5080,10 @@ public class UserApplicationService { userDO.setRoleCode(roleEntity.getRoleCode()); userDO.setRoleName(roleEntity.getRoleName()); userDO.setUserAuthStatus(1); - addUser(userDO); + UserPo userPo = addUser(userDO); + if (userPo != null && userPo.getUserId() != null) { + userDO.setUserId(userPo.getUserId()); + } if (isWT()) { //开启仓配一体 同步托运人信息 UserShipperDO userShipperDO = new UserShipperDO(); @@ -5052,6 +5099,10 @@ public class UserApplicationService { //保存托运人信息 userShipperDomainService.saveUserShipper(userShipperDO); } + if (userPo == null || userPo.getUserId() == null) { + return userPo; + } + return userDomainService.selectByUserId(userPo.getUserId()); } /** @@ -5064,10 +5115,33 @@ public class UserApplicationService { if (customerDO.getUserId() == null){ throw new ServiceException("用户id不能为空"); } + UserPo userPo = userDomainService.selectByUserId(customerDO.getUserId()); + if (ObjectUtil.isNull(userPo)) { + throw new ServiceException("用户不存在"); + } UserDO userDO = new UserDO(); BeanUtils.copyProperties(customerDO, userDO); userDO.setUserPhone(customerDO.getEmergencyContactPhone()); userDO.setBusinessType(1); + // CustomerDTO 修改场景通常不传 roleCode/组织/账号,须沿用库中值,避免同步 YMS/网货时角色为空触发 selectOne 返回多条 + if (StringUtils.isEmpty(userDO.getRoleCode())) { + userDO.setRoleCode(userPo.getRoleCode()); + userDO.setRoleName(userPo.getRoleName()); + userDO.setRoleId(userPo.getRoleId()); + } + if (userDO.getOrganizationId() == null) { + userDO.setOrganizationId(userPo.getOrganizationId()); + userDO.setOrganizationName(userPo.getOrganizationName()); + } + if (userDO.getTopOrganizationId() == null) { + userDO.setTopOrganizationId(userPo.getTopOrganizationId()); + } + if (StringUtils.isEmpty(userDO.getUserAccount())) { + userDO.setUserAccount(userPo.getUserAccount()); + } + if (StringUtils.isEmpty(userDO.getUserMemberCode())) { + userDO.setUserMemberCode(userPo.getUserMemberCode()); + } updateUser(userDO); if (isWT()){ //开启仓配一体 同步托运人信息 @@ -5254,4 +5328,8 @@ public class UserApplicationService { BeanUtils.copyProperties(customerDO, userDO); userDomainService.updateUser(userDO); } + + public String getCustomerNcCode(Long shipperId) { + return userShipperMapper.getCustomerNcCode(shipperId); + } } \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserDriverApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserDriverApplicationService.java index ad7394719..c156a6dc8 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserDriverApplicationService.java +++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserDriverApplicationService.java @@ -29,6 +29,7 @@ import com.mhd.common.core.utils.poi.WpsImg; import com.mhd.system.api.FinanceServiceFeign; import com.mhd.system.api.TransportFeign; import com.mhd.system.api.WlhyServiceFeign; +import com.mhd.system.api.YmsServiceFeign; import com.mhd.system.api.service.webSocket.AsyncWebSocketApplicationService; import com.mhd.user.application.strategy.VehicleBindingStrategy; import com.mhd.user.domain.motorcade.entity.Motorcade; @@ -119,6 +120,8 @@ public class UserDriverApplicationService { private AsyncJPushApplicationService asyncJPushApplicationService; @Resource private SpecialLogisticsFeign specialLogisticsFeign; + @Resource + private UserYmsDomainService ymsDomainService; @Resource private UserDataPermissionApplicationService userDataPermissionApplicationService; @@ -184,6 +187,7 @@ public class UserDriverApplicationService { private DriverVehicleBindMapper driverVehicleBindMapper; @Autowired private UserMapper userMapper; + private YmsServiceFeign ymsServiceFeign; /** * @Description 承运人列表查询 @@ -323,8 +327,9 @@ public class UserDriverApplicationService { * @param userDriverDO * @return */ - @NeedSetValueField - @GlobalTransactional(rollbackFor = Exception.class,name = "user-center-driverAuth") +// @NeedSetValueField +// @GlobalTransactional(rollbackFor = Exception.class,name = "user-center-driverAuth") + @Transactional(rollbackFor = Exception.class) public Map driverAuth(UserDriverDO userDriverDO) { LoginUser loginUser = SecurityUtils.getLoginUser(); Map result = new HashMap<>(); @@ -515,6 +520,28 @@ public class UserDriverApplicationService { // 同步信息到网络货运平台 wlhyDomainService.saveOrUpdateDriverInfo(userDriverDO); + Long organizationId = loginUser.getUserPo().getOrganizationId(); + Integer isQueue = userMapper.getOrdIsQueue(organizationId); + if (isQueue==1) { + // 同步YMS员工信息 + try { + UserEntity userEntity = new UserEntity(); + userEntity.setUserId(userDriverDO.getUserId()); + userEntity.setUserAccount(userDriverDO.getUserAccount()); + userEntity.setUserName(userDriverDO.getUserName()); + userEntity.setUserPhone(userDriverDO.getUserPhone()); + userEntity.setUserPassword("Aa123456"); + userEntity.setOrganizationId(userDriverDO.getOrganizationId()); + userEntity.setOrganizationName(userDriverDO.getOrganizationName()); + userEntity.setTopOrganizationId(userDriverDO.getTopOrganizationId()); + userEntity.setUserAuthStatus(userDriverDO.getUserAuthStatus()); + userEntity.setBusinessType(userDriverDO.getBusinessType()); + ymsDomainService.addOrEditYmsUser(userEntity); + } catch (Exception e) { + // 同步YMS失败时,记录日志但不影响用户保存 + log.warn("同步YMS员工信息失败,但不影响用户保存: {}", e.getMessage()); + } + } // 自动审核或提交审核 if (ObjectUtil.equal(configSwitch.getAutomaticCheckUserInfo(), UserDriverConstants.AUTOMATIC_CHECK_ENABLED)) { diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java index 94c6cec03..87e3aaac0 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java +++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java @@ -33,6 +33,7 @@ import com.mhd.common.core.domain.po.RolePO; import com.mhd.user.domain.userAggregate.entity.UserRoleEntity; import com.mhd.user.domain.userAggregate.entity.UserShipperEntity; import com.mhd.user.domain.userAggregate.event.ShipperEventPublisher; +import com.mhd.user.domain.userAggregate.repository.mapper.UserShipperMapper; import com.mhd.user.domain.userAggregate.repository.po.UserDriverPo; import com.mhd.user.domain.userAggregate.repository.todo.*; import com.mhd.user.domain.userAggregate.service.*; @@ -112,6 +113,9 @@ public class UserShipperApplicationService { @Resource private WlhyServiceFeign wlhyServiceFeign; + @Resource + private UserShipperMapper userShipperMapper; + /** * @Description 查询托运人列表 * @Author Alex @@ -1209,5 +1213,23 @@ public class UserShipperApplicationService { } } - + /** + * 推送状态更新 + * @param shipperId + * @param pushStatus + * @param pushTime + * @param pushBy + * @return + */ + public int updatePushStatus(Long shipperId, Integer pushStatus, String pushTime, Long pushBy,String pushByName) { + UserShipperEntity userShipper = new UserShipperEntity(); + userShipper.setShipperId(shipperId); + userShipper.setPushStatus(pushStatus); + if (pushTime != null && !"".equals(pushTime)) { + userShipper.setPushTime(DateUtil.parse(pushTime)); + } + userShipper.setPushBy(pushBy); + userShipper.setPushByName(pushByName); + return userShipperMapper.updatePushStatus(userShipper); + } } \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserDriverEnterprise.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserDriverEnterprise.java index 923a4320e..dfb6a6ccd 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserDriverEnterprise.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserDriverEnterprise.java @@ -44,12 +44,12 @@ public class UserDriverEnterprise extends BaseVOEntity{ private String driverBusinessLicenseOwner; /** 经营许可证有效期开始日期 */ @ApiModelProperty("经营许可证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateFrom; /** 经营许可证有效期到期日期 */ @ApiModelProperty("经营许可证有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateTo; /** 经营许可证是否长期:0-无状态,1-是,2-否 */ @@ -78,12 +78,12 @@ public class UserDriverEnterprise extends BaseVOEntity{ private String driverEnterpriseAddress; /** 企业营业执照有效期开始日期 */ @ApiModelProperty("企业营业执照有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateFrom; /** 企业营业执照有效期到期日期 */ @ApiModelProperty("企业营业执照有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateTo; /** 企业营业执照是否长期:0-无状态,1-是,2-否 */ @@ -116,12 +116,12 @@ public class UserDriverEnterprise extends BaseVOEntity{ private String driverCorpIdcardNumber; /** 法人身份证有效期开始日期 */ @ApiModelProperty("法人身份证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateFrom; /** 法人身份证有效期结束日期 */ @ApiModelProperty("法人身份证有效期结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期结束日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateTo; /** 法人身份证是否长期:0-无状态,1-是,2-否 */ @@ -146,7 +146,7 @@ public class UserDriverEnterprise extends BaseVOEntity{ private Integer driverEnterpriseFill; /** 承运人企业认证时间 */ @ApiModelProperty("承运人企业认证时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "承运人企业认证时间", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseFillTime; @@ -184,4 +184,4 @@ public class UserDriverEnterprise extends BaseVOEntity{ @ApiModelProperty(name = "tms推送状态: 1-未推送 2- 已推送") private Integer tmsPushStatus; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserDriverEntity.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserDriverEntity.java index 547cbd8b1..2bb313af5 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserDriverEntity.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserDriverEntity.java @@ -42,15 +42,15 @@ public class UserDriverEntity extends BaseVOEntity { @ApiModelProperty(name = "驾驶证发证机关") private String driverCertificationAuthority; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "初次领证日期") private Date driverLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期开始日期") private Date driverLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期到期日期") private Date driverLicenseDateTo; @@ -81,15 +81,15 @@ public class UserDriverEntity extends BaseVOEntity { @ApiModelProperty(name = "从业资格证类别名称") private String driverWorkLicenseTypeName; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证初次领证日期") private Date driverWorkLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期开始日期") private Date driverWorkLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期到期日期") private Date driverWorkLicenseDateTo; @@ -149,4 +149,4 @@ public class UserDriverEntity extends BaseVOEntity { */ @ApiModelProperty(name = "组织名称") private String organizationName; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserEntity.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserEntity.java index 58d42be76..02dc262d3 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserEntity.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserEntity.java @@ -86,7 +86,7 @@ public class UserEntity extends BaseVOEntity { @ApiModelProperty(name = "密码登录错误次数") private Integer passwordWrongTimes; @ApiModelProperty(name = "最近一次登录时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date lastLoginTime; @ApiModelProperty(name = "最近一次登录IP") private String lastLoginIp; diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserShipperEntity.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserShipperEntity.java index c3e4a8879..a8daa108d 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserShipperEntity.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/entity/UserShipperEntity.java @@ -47,11 +47,11 @@ public class UserShipperEntity extends BaseVOEntity { @ApiModelProperty(name = "企业注册地址") private String shipperEnterpriseAddress; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限起") private Date shipperEnterpriseLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限止") private Date shipperEnterpriseLicenseDateTo; @@ -84,11 +84,11 @@ public class UserShipperEntity extends BaseVOEntity { @ApiModelProperty(name = "法人身份证号加密") private String shipperCorpIdcardNumberDes; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期自") private Date shipperCorpIdcardDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期止") private Date shipperCorpIdcardDateTo; @@ -263,4 +263,16 @@ public class UserShipperEntity extends BaseVOEntity { @ApiModelProperty(name = "组织名称") private String organizationName; -} + + @ApiModelProperty(name = "推送状态 1-未推送 2-推送中 3-推送成功 4-推送失败") + private Integer pushStatus; + @ApiModelProperty(name = "推送时间") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private Date pushTime; + @ApiModelProperty(name = "推送人") + private Long pushBy; + @ApiModelProperty(name = "推送人姓名") + private String pushByName; + +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/UserMapper.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/UserMapper.java index 1660234b2..a55f709d5 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/UserMapper.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/UserMapper.java @@ -1,6 +1,7 @@ package com.mhd.user.domain.userAggregate.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mhd.common.core.domain.dto.YmsSysUserDTO; import com.mhd.user.domain.userAggregate.entity.UserEntity; import com.mhd.user.domain.userAggregate.repository.po.UserDocumentWarningQueryPo; import com.mhd.user.domain.userAggregate.repository.po.UserDriverCaptainAuthPo; @@ -74,4 +75,8 @@ public interface UserMapper extends BaseMapper { String finShipperEnterpriseNamedByUserId(@Param("userId") Long userId); + + YmsSysUserDTO selectYmsByUserId(Long userId); + + Integer getOrdIsQueue(Long organizationId); } \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/UserShipperMapper.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/UserShipperMapper.java index 96f7cb79c..cb52f9854 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/UserShipperMapper.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/mapper/UserShipperMapper.java @@ -6,7 +6,9 @@ import com.mhd.user.domain.userAggregate.entity.UserShipperEntity; import com.mhd.user.domain.userAggregate.repository.todo.UserShipperDO; import com.mhd.user.domain.userAggregate.repository.po.UserShipperPo; import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import java.util.Date; import java.util.List; public interface UserShipperMapper extends BaseMapper { @@ -28,4 +30,14 @@ public interface UserShipperMapper extends BaseMapper { List selectBySealId(@Param("userShipperEntity") UserShipperEntity userShipperEntity); public com.mhd.common.core.domain.po.UserShipperPo getShipperSummaryData(Long userId); + + /** + * + * @param userShipper + * @return + */ + int updatePushStatus(UserShipperEntity userShipper); + + @Select("select customer_nc_code from user_shipper where user_id = #{shipperId}") + String getCustomerNcCode(@Param("shipperId") Long shipperId); } \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserAuthPo.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserAuthPo.java index 252b727b4..e97f4cc2a 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserAuthPo.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserAuthPo.java @@ -18,10 +18,10 @@ public class UserAuthPo { @ApiModelProperty(name = "身份证号") private String userIdcardNumber; @ApiModelProperty(name = "身份证有效期自") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String userIdcardDateFrom; @ApiModelProperty(name = "身份证有效期至") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String userIdcardDateTo; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") private Integer userIdcardLong; @@ -56,4 +56,4 @@ public class UserAuthPo { @ApiModelProperty("身份证发证机关") private String certificationAuthority; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverAuthPo.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverAuthPo.java index c97454e07..88139aef1 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverAuthPo.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverAuthPo.java @@ -22,15 +22,15 @@ public class UserDriverAuthPo { @ApiModelProperty(name = "驾驶证发证机关") private String driverCertificationAuthority; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "初次领证日期") private String driverLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期开始日期") private String driverLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期到期日期") private String driverLicenseDateTo; @@ -63,15 +63,15 @@ public class UserDriverAuthPo { @ApiModelProperty(name = "从业资格证类别名称") private String driverWorkLicenseTypeName; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证初次领证日期") private String driverWorkLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期开始日期") private String driverWorkLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期到期日期") private String driverWorkLicenseDateTo; @@ -109,4 +109,4 @@ public class UserDriverAuthPo { @ApiModelProperty(name = "核定载质量") private BigDecimal vehicleApprovedLoadQuantity; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverCaptainAuthPo.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverCaptainAuthPo.java index bd7afda66..b51b63900 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverCaptainAuthPo.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverCaptainAuthPo.java @@ -28,10 +28,10 @@ public class UserDriverCaptainAuthPo { @ApiModelProperty(name = "身份证号") private String userIdcardNumber; @ApiModelProperty(name = "身份证有效期自") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String userIdcardDateFrom; @ApiModelProperty(name = "身份证有效期至") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private String userIdcardDateTo; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") private Integer userIdcardLong; @@ -58,4 +58,4 @@ public class UserDriverCaptainAuthPo { private String userAuthStatusName; @ApiModelProperty(name = "用户生日") private String userBirthday = ""; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverEnterpriseAuthPo.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverEnterpriseAuthPo.java index e44f9b3f9..9afc687b9 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverEnterpriseAuthPo.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverEnterpriseAuthPo.java @@ -41,12 +41,12 @@ public class UserDriverEnterpriseAuthPo { private String driverBusinessLicenseOwner; /** 经营许可证有效期开始日期 */ @ApiModelProperty("经营许可证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateFrom; /** 经营许可证有效期到期日期 */ @ApiModelProperty("经营许可证有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateTo; /** 经营许可证是否长期:0-无状态,1-是,2-否 */ @@ -76,12 +76,12 @@ public class UserDriverEnterpriseAuthPo { private String driverEnterpriseAddress; /** 企业营业执照有效期开始日期 */ @ApiModelProperty("企业营业执照有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateFrom; /** 企业营业执照有效期到期日期 */ @ApiModelProperty("企业营业执照有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateTo; /** 企业营业执照是否长期:0-无状态,1-是,2-否 */ @@ -115,12 +115,12 @@ public class UserDriverEnterpriseAuthPo { private String driverCorpIdcardNumber; /** 法人身份证有效期开始日期 */ @ApiModelProperty("法人身份证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateFrom; /** 法人身份证有效期结束日期 */ @ApiModelProperty("法人身份证有效期结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期结束日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateTo; /** 法人身份证是否长期:0-无状态,1-是,2-否 */ @@ -165,4 +165,4 @@ public class UserDriverEnterpriseAuthPo { @ApiModelProperty(value = "法人证件类型名称") private String legalPersonIdName; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverEnterprisePo.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverEnterprisePo.java index 478197b08..657fbb4a0 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverEnterprisePo.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverEnterprisePo.java @@ -42,12 +42,12 @@ public class UserDriverEnterprisePo extends BaseVOEntity{ private String driverBusinessLicenseOwner=""; /** 经营许可证有效期开始日期 */ @ApiModelProperty("经营许可证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateFrom; /** 经营许可证有效期到期日期 */ @ApiModelProperty("经营许可证有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateTo; /** 经营许可证是否长期:0-无状态,1-是,2-否 */ @@ -76,12 +76,12 @@ public class UserDriverEnterprisePo extends BaseVOEntity{ private String driverEnterpriseAddress=""; /** 企业营业执照有效期开始日期 */ @ApiModelProperty("企业营业执照有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateFrom; /** 企业营业执照有效期到期日期 */ @ApiModelProperty("企业营业执照有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateTo; /** 企业营业执照是否长期:0-无状态,1-是,2-否 */ @@ -114,12 +114,12 @@ public class UserDriverEnterprisePo extends BaseVOEntity{ private String driverCorpIdcardNumber=""; /** 法人身份证有效期开始日期 */ @ApiModelProperty("法人身份证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateFrom; /** 法人身份证有效期结束日期 */ @ApiModelProperty("法人身份证有效期结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期结束日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateTo; /** 法人身份证是否长期:0-无状态,1-是,2-否 */ @@ -145,7 +145,7 @@ public class UserDriverEnterprisePo extends BaseVOEntity{ /** 承运人企业认证时间 */ @ApiModelProperty("承运人企业认证时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "承运人企业认证时间", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseFillTime; @@ -189,4 +189,4 @@ public class UserDriverEnterprisePo extends BaseVOEntity{ @ApiModelProperty(name = "tms推送状态: 1-未推送 2- 已推送") private Integer tmsPushStatus; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverInfoPO.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverInfoPO.java index 566406976..2d975f4fa 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverInfoPO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverInfoPO.java @@ -32,13 +32,13 @@ public class UserDriverInfoPO extends BaseVOEntity { private String driverLicenseBackUrl = ""; @ApiModelProperty(name = "准驾车型名称") private String driverAllowDrivingTypeName = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "初次领证日期") private String driverLicenseFirstDate = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期开始日期") private String driverLicenseDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期到期日期") private String driverLicenseDateTo = ""; @ApiModelProperty(name = "驾驶证是否长期:0-无状态,1-是,2-否") @@ -60,13 +60,13 @@ public class UserDriverInfoPO extends BaseVOEntity { private String driverWorkLicenseNumber = ""; @ApiModelProperty(name = "从业资格证类别名称") private String driverWorkLicenseTypeName = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证初次领证日期") private String driverWorkLicenseFirstDate = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期开始日期") private String driverWorkLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期到期日期") private String driverWorkLicenseDateTo = ""; @ApiModelProperty(name = "从业资格证是否长期:0-无状态,1-是,2-否") @@ -86,15 +86,15 @@ public class UserDriverInfoPO extends BaseVOEntity { private String userName = ""; @ApiModelProperty(name = "身份证号") private String userIdcardNumber = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期自") private String userIdcardDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期至") private String userIdcardDateTo = ""; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") private Integer userIdcardLong; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户生日") private String userBirthday = ""; @ApiModelProperty(name = "县区名称") @@ -120,11 +120,11 @@ public class UserDriverInfoPO extends BaseVOEntity { @ApiModelProperty("企业注册电话") private String driverEnterprisePhone=""; @ApiModelProperty("企业营业执照有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateFrom; @ApiModelProperty("企业营业执照有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateTo; @ApiModelProperty("企业营业执照是否长期:0-无状态,1-是,2-否") @@ -145,11 +145,11 @@ public class UserDriverInfoPO extends BaseVOEntity { @ApiModelProperty("法人身份证号") private String driverCorpIdcardNumber=""; @ApiModelProperty("法人身份证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateFrom; @ApiModelProperty("法人身份证有效期结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期结束日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateTo; @ApiModelProperty("法人身份证是否长期:0-无状态,1-是,2-否") @@ -164,11 +164,11 @@ public class UserDriverInfoPO extends BaseVOEntity { @ApiModelProperty("经营许可证业户名称") private String driverBusinessLicenseOwner=""; @ApiModelProperty("经营许可证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateFrom; @ApiModelProperty("经营许可证有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateTo; @ApiModelProperty("经营许可证是否长期:0-无状态,1-是,2-否") @@ -177,4 +177,4 @@ public class UserDriverInfoPO extends BaseVOEntity { -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverPo.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverPo.java index 8456359f0..5e6bdefaf 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverPo.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserDriverPo.java @@ -56,17 +56,17 @@ public class UserDriverPo extends BaseVOEntity { @ApiModelProperty(name = "部门ID") private String departmentId; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户生日") private String userBirthday = ""; @ApiModelProperty(name = "用户头像") private String avatar= ""; @ApiModelProperty(name = "身份证号") private String userIdcardNumber = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期自") private String userIdcardDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期至") private String userIdcardDateTo = ""; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") @@ -90,15 +90,15 @@ public class UserDriverPo extends BaseVOEntity { @ApiModelProperty(name = "驾驶证发证机关") private String driverCertificationAuthority = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "初次领证日期") private String driverLicenseFirstDate = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期开始日期") private String driverLicenseDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期到期日期") private String driverLicenseDateTo = ""; @NeedSetValue @@ -129,15 +129,15 @@ public class UserDriverPo extends BaseVOEntity { @ApiModelProperty(name = "从业资格证类别名称") private String driverWorkLicenseTypeName = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证初次领证日期") private String driverWorkLicenseFirstDate = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期开始日期") private String driverWorkLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期到期日期") private String driverWorkLicenseDateTo = ""; @@ -237,4 +237,4 @@ public class UserDriverPo extends BaseVOEntity { @ApiModelProperty(name = "经营许可证号") private String driverBusinessLicenseNumber; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperAuthPo.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperAuthPo.java index 39353cf20..6ef7b2635 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperAuthPo.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperAuthPo.java @@ -33,11 +33,11 @@ public class UserShipperAuthPo { @ApiModelProperty(name = "企业注册地址") private String shipperEnterpriseAddress; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限起") private String shipperEnterpriseLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限止") private String shipperEnterpriseLicenseDateTo; @@ -61,10 +61,10 @@ public class UserShipperAuthPo { private String shipperCorpLegalName; @ApiModelProperty(name = "法人身份证号") private String shipperCorpIdcardNumber; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期自") private String shipperCorpIdcardDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期止") private String shipperCorpIdcardDateTo; @ApiModelProperty(name = "法人身份证是否长期:0-无状态,1-是,2-否") @@ -121,4 +121,4 @@ public class UserShipperAuthPo { @ApiModelProperty(name = "成立日期") private String establishDate; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperPo.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperPo.java index 7b3cd24b4..45d02c12c 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperPo.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/po/UserShipperPo.java @@ -33,7 +33,7 @@ public class UserShipperPo implements Serializable { @NeedSetValue @ApiModelProperty(name = "手持身份证") private String userIdcardInhandUrl = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户生日") private String userBirthday = ""; @ApiModelProperty(name = "手机号码") @@ -47,10 +47,10 @@ public class UserShipperPo implements Serializable { private String roleName = ""; @ApiModelProperty(name = "身份证号") private String userIdcardNumber = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期自") private String userIdcardDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期至") private String userIdcardDateTo = ""; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") @@ -82,11 +82,11 @@ public class UserShipperPo implements Serializable { @ApiModelProperty(name = "企业注册地址") private String shipperEnterpriseAddress = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限起") private String shipperEnterpriseLicenseDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限止") private String shipperEnterpriseLicenseDateTo = ""; @@ -137,10 +137,10 @@ public class UserShipperPo implements Serializable { private String shipperCorpIdcardNumber = ""; @ApiModelProperty(name = "法人身份证号加密") private String shipperCorpIdcardNumberDes = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期自") private String shipperCorpIdcardDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期止") private String shipperCorpIdcardDateTo = ""; @ApiModelProperty(name = "法人身份证是否长期:0-无状态,1-是,2-否") @@ -321,4 +321,18 @@ public class UserShipperPo implements Serializable { @ApiModelProperty(name = "备注") private String userRemarkShipper; -} + + @ApiModelProperty(value = "推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败") + private Integer pushStatus; + + @ApiModelProperty(value = "推送时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date pushTime; + + @ApiModelProperty(value = "推送人ID") + private Long pushBy; + + @ApiModelProperty(value = "推送人姓名") + private String pushByName; +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDO.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDO.java index bc11de85d..c18ad9ce9 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDO.java @@ -96,7 +96,7 @@ public class UserDO extends BaseVOEntity { @ApiModelProperty(name = "密码登录错误次数") private Integer passwordWrongTimes; @ApiModelProperty(name = "最近一次登录时间") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date lastLoginTime; @ApiModelProperty(name = "最近一次登录时间起") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @@ -293,4 +293,10 @@ public class UserDO extends BaseVOEntity { @ApiModelProperty("配送顺序") private String deliveryOrder; -} + + @ApiModelProperty("yms密码") + private String plainPassword; + + @ApiModelProperty("当前用户的组织是否开启排队") + private Integer isQueue; +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDriverDO.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDriverDO.java index f6c3d8a2c..7dd6ca320 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDriverDO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDriverDO.java @@ -57,15 +57,15 @@ public class UserDriverDO extends UserDO { @ApiModelProperty(name = "驾驶证发证机关") private String driverCertificationAuthority; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "初次领证日期") private Date driverLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期开始日期") private Date driverLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期到期日期") private Date driverLicenseDateTo; @@ -98,15 +98,15 @@ public class UserDriverDO extends UserDO { @ApiModelProperty(name = "从业资格证类别名称") private String driverWorkLicenseTypeName; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证初次领证日期") private Date driverWorkLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期开始日期") private Date driverWorkLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期到期日期") private Date driverWorkLicenseDateTo; @@ -176,11 +176,11 @@ public class UserDriverDO extends UserDO { private String driverBusinessLicenseNumber; /** 经营许可证有效期开始日期 */ @ApiModelProperty("经营许可证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date driverBusinessLicenseDateFrom; /** 经营许可证有效期到期日期 */ @ApiModelProperty("经营许可证有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date driverBusinessLicenseDateTo; /** 企业名称 */ @ApiModelProperty("企业名称") @@ -189,12 +189,12 @@ public class UserDriverDO extends UserDO { private String driverEnterpriseSocialCreditCode; /** 企业营业执照有效期开始日期 */ @ApiModelProperty("企业营业执照有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateFrom; /** 企业营业执照有效期到期日期 */ @ApiModelProperty("企业营业执照有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateTo; @@ -289,4 +289,7 @@ public class UserDriverDO extends UserDO { @ApiModelProperty(name = "车辆主体") private String vehicleBody; -} + @ApiModelProperty("当前用户的组织是否开启排队") + private Integer isQueue; + +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDriverEnterpriseDo.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDriverEnterpriseDo.java index 02dd83823..5408e33cc 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDriverEnterpriseDo.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserDriverEnterpriseDo.java @@ -42,12 +42,12 @@ public class UserDriverEnterpriseDo extends UserDO{ private String driverBusinessLicenseOwner; /** 经营许可证有效期开始日期 */ @ApiModelProperty("经营许可证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateFrom; /** 经营许可证有效期到期日期 */ @ApiModelProperty("经营许可证有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateTo; /** 经营许可证是否长期:0-无状态,1-是,2-否 */ @@ -77,12 +77,12 @@ public class UserDriverEnterpriseDo extends UserDO{ private String driverEnterpriseAddress; /** 企业营业执照有效期开始日期 */ @ApiModelProperty("企业营业执照有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateFrom; /** 企业营业执照有效期到期日期 */ @ApiModelProperty("企业营业执照有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateTo; /** 企业营业执照是否长期:0-无状态,1-是,2-否 */ @@ -116,12 +116,12 @@ public class UserDriverEnterpriseDo extends UserDO{ private String driverCorpIdcardNumber; /** 法人身份证有效期开始日期 */ @ApiModelProperty("法人身份证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateFrom; /** 法人身份证有效期结束日期 */ @ApiModelProperty("法人身份证有效期结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期结束日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateTo; /** 法人身份证是否长期:0-无状态,1-是,2-否 */ @@ -149,7 +149,7 @@ public class UserDriverEnterpriseDo extends UserDO{ private Integer driverEnterpriseFill; /** 承运人企业认证时间 */ @ApiModelProperty("承运人企业认证时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "承运人企业认证时间", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseFillTime; @@ -215,4 +215,4 @@ public class UserDriverEnterpriseDo extends UserDO{ @ApiModelProperty(name = "tms推送状态: 1-未推送 2- 已推送") private Integer tmsPushStatus; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java index d58dc3547..37a0b5d5e 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java @@ -45,11 +45,11 @@ public class UserShipperDO extends UserDO { @ApiModelProperty(name = "企业注册地址") private String shipperEnterpriseAddress; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限起") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date shipperEnterpriseLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限止") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date shipperEnterpriseLicenseDateTo; @@ -87,12 +87,12 @@ public class UserShipperDO extends UserDO { @ApiModelProperty(name = "法人身份证号加密") private String shipperCorpIdcardNumberDes; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期自") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date shipperCorpIdcardDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期止") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date shipperCorpIdcardDateTo; @@ -127,10 +127,10 @@ public class UserShipperDO extends UserDO { @ApiModelProperty(name = "货主审核原因") private String shipperStatusRemark; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期止") private Date shipperCorpIdcardDateToStart; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期止") private Date shipperCorpIdcardDateToEnd; @@ -288,4 +288,31 @@ public class UserShipperDO extends UserDO { @ApiModelProperty(name = "备注") private String userRemark; -} + + @ApiModelProperty("创建时间起") + private Date createTimeFrom; + + @ApiModelProperty("创建时间止") + private Date createTimeTo; + + @ApiModelProperty("更新时间起") + private String updateTimeFrom; + + @ApiModelProperty("更新时间止") + private String updateTimeTo; + + @ApiModelProperty("推送状态") + private Integer pushStatus; + + @ApiModelProperty("推送时间起") + private String pushTimeFrom; + + @ApiModelProperty("推送时间止") + private String pushTimeTo; + @ApiModelProperty(name = "登录账号(2-20位)") + private String userAccount; + + @ApiModelProperty(name = "登录密码(6-20位)") + private String userPassword; + +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/service/UserWlhyDomainService.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/service/UserWlhyDomainService.java index dff71b160..86feccef0 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/service/UserWlhyDomainService.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/service/UserWlhyDomainService.java @@ -539,17 +539,17 @@ public class UserWlhyDomainService { roleDo.setOrganizationId(userEntity.getOrganizationId()); RoleEntity roleEntity = roleDomainService.selectByOrganizationIdAndRoleCode(roleDo); if (roleEntity != null) { - UserRoleDo userRoleDo = new UserRoleDo(); - userRoleDo.setUserId(userEntity.getUserId()); - userRoleDo.setRoleId(roleEntity.getRoleId()); userRoleIds.add(String.valueOf(roleEntity.getRoleId())); - userRoleNames.add(userEntity.getRoleName()); - userRoleCodes.add(userEntity.getRoleCode()); + userRoleNames.add(roleEntity.getRoleName()); + userRoleCodes.add(roleEntity.getRoleCode()); } } - platformUserDTO.setRoleIds(userRoleIds); - platformUserDTO.setRoleNames(userRoleNames); - platformUserDTO.setRoleCodes(userRoleCodes); + // 本组织无 must 角色时勿用空列表覆盖 addPlatformUser 已设置的角色,否则网货侧 selectOne 会命中全表 + if (!userRoleIds.isEmpty()) { + platformUserDTO.setRoleIds(userRoleIds); + platformUserDTO.setRoleNames(userRoleNames); + platformUserDTO.setRoleCodes(userRoleCodes); + } } /** @@ -609,17 +609,29 @@ public class UserWlhyDomainService { * @return boolean */ public boolean deleteBatchPlatformUser(List szwlUserIds){ - // 检查ids是否为空 if (szwlUserIds == null || szwlUserIds.isEmpty()) { - return true; // 如果列表为空,直接返回成功,避免SQL语法错误 - } - //检查是否开启网货 - boolean flag = checkSwitch(); - if(!flag){ - //如果配置网货产品,返回跳过 return true; } - R result = wlhyServiceFeign.deleteBatchPlatformUser(szwlUserIds); + boolean flag = checkSwitch(); + if (!flag) { + return true; + } + // 仅删除网货中已存在的用户,避免远程生成 WHERE id IN () 导致语法错误 + List existInWlhyIds = new ArrayList<>(); + for (Long szwlUserId : szwlUserIds) { + R wlhyUser = wlhyServiceFeign.getUserInfoBySzwlUserId(szwlUserId); + if (R.FAIL == wlhyUser.getCode()) { + log.warn("查询网货用户失败,跳过同步删除 szwlUserId={}: {}", szwlUserId, wlhyUser.getMsg()); + continue; + } + if (wlhyUser.getData() != null) { + existInWlhyIds.add(szwlUserId); + } + } + if (existInWlhyIds.isEmpty()) { + return true; + } + R result = wlhyServiceFeign.deleteBatchPlatformUser(existInWlhyIds); if (R.FAIL == result.getCode()) { throw new ServiceException(result.getMsg()); } diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/service/UserYmsDomainService.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/service/UserYmsDomainService.java new file mode 100644 index 000000000..73cfa870d --- /dev/null +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/service/UserYmsDomainService.java @@ -0,0 +1,117 @@ +package com.mhd.user.domain.userAggregate.service; + +import com.mhd.common.core.domain.dto.YmsSysUserDTO; +import com.mhd.common.core.domain.entity.R; +import com.mhd.common.core.exception.ServiceException; +import com.mhd.common.core.utils.StringUtils; +import com.mhd.system.api.YmsServiceFeign; +import com.mhd.user.domain.userAggregate.entity.UserEntity; +import com.mhd.user.domain.userAggregate.repository.mapper.UserMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Arrays; + +/** + * YMS平台用户同步领域服务 + * @author AI + * @date 2026/05/12 + */ +@Service +@Slf4j +public class UserYmsDomainService { + + @Resource + private YmsServiceFeign ymsServiceFeign; + @Autowired + private UserMapper userMapper; + + /** + * 同步YMS平台员工信息(新增或修改) + * @param userEntity 用户实体 + * @return boolean + */ + public boolean addOrEditYmsUser(UserEntity userEntity){ + if(userEntity == null){ + log.warn("同步YMS平台员工信息失败:用户实体为空"); + return false; + } + +// R isAddOrEdit = ymsServiceFeign.innerGetInfo(userEntity.getUserId()); + YmsSysUserDTO userEntityByYms = userMapper.selectYmsByUserId(userEntity.getUserId()); +// if (R.FAIL == isAddOrEdit.getCode()) { +// throw new ServiceException(isAddOrEdit.getMsg()); +// } + + if (userEntityByYms == null) { + //新增 + return addYmsUser(userEntity); + }else { + //修改 + return editYmsUser(userEntity); + } + } + + /** + * 新增YMS平台员工基本信息 + * @param userEntity 用户实体 + * @return boolean + */ + public boolean addYmsUser(UserEntity userEntity){ + YmsSysUserDTO ymsSysUserDTO = new YmsSysUserDTO(); + ymsSysUserDTO.setUserName(userEntity.getUserAccount()); + ymsSysUserDTO.setOrganizationId(userEntity.getOrganizationId()); + ymsSysUserDTO.setTopOrganizationId(userEntity.getTopOrganizationId()); + ymsSysUserDTO.setSzwlUserId(userEntity.getUserId()); + ymsSysUserDTO.setNickName(userEntity.getUserName()); + ymsSysUserDTO.setPhonenumber(userEntity.getUserPhone()); + ymsSysUserDTO.setAvatar(userEntity.getAvatar()); + ymsSysUserDTO.setPromoCode(userEntity.getPromoCode()); + ymsSysUserDTO.setUserAccountType(userEntity.getUserAccountType()); + ymsSysUserDTO.setPassword(userEntity.getUserPassword()); + ymsSysUserDTO.setDeptId(103L); + + if (StringUtils.isNotBlank(userEntity.getRoleCode())){ + ymsSysUserDTO.setRoleCodes(Arrays.asList(userEntity.getRoleCode().split(","))); + } + if (StringUtils.isNotBlank(userEntity.getRoleName())){ + ymsSysUserDTO.setRoleNames(Arrays.asList(userEntity.getRoleName().split(","))); + } + + R result = ymsServiceFeign.innerAdd(ymsSysUserDTO); + if (R.FAIL == result.getCode()) { + throw new ServiceException(result.getMsg()); + } + return true; + } + + /** + * 修改YMS平台员工基本信息 + * @param userEntity 用户实体 + * @return boolean + */ + public boolean editYmsUser(UserEntity userEntity){ + YmsSysUserDTO ymsSysUserDTO = new YmsSysUserDTO(); + ymsSysUserDTO.setUserName(userEntity.getUserAccount()); + ymsSysUserDTO.setSzwlUserId(userEntity.getUserId()); + ymsSysUserDTO.setNickName(userEntity.getUserName()); + ymsSysUserDTO.setPhonenumber(userEntity.getUserPhone()); + ymsSysUserDTO.setAvatar(userEntity.getAvatar()); + ymsSysUserDTO.setUserAccountType(userEntity.getUserAccountType()); + + if (StringUtils.isNotBlank(userEntity.getRoleCode())){ + ymsSysUserDTO.setRoleCodes(Arrays.asList(userEntity.getRoleCode().split(","))); + } + if (StringUtils.isNotBlank(userEntity.getRoleName())){ + ymsSysUserDTO.setRoleNames(Arrays.asList(userEntity.getRoleName().split(","))); + } + + R result = ymsServiceFeign.innerEdit(ymsSysUserDTO); + if (R.FAIL == result.getCode()) { + throw new ServiceException(result.getMsg()); + } + return true; + } +} diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDTO.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDTO.java index ad2dd6602..fcdaad5f9 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDTO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDTO.java @@ -53,10 +53,10 @@ public class UserDTO extends BaseVOEntity { private String userIdcardNumber; @ApiModelProperty(name = "身份证号加密") private String userIdcardNumberDes; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期自") private Date userIdcardDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期至") private Date userIdcardDateTo; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") @@ -91,7 +91,7 @@ public class UserDTO extends BaseVOEntity { private String userWechatSessionKey; @ApiModelProperty(name = "密码登录错误次数") private Integer passwordWrongTimes; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "最近一次登录时间") private Date lastLoginTime; @ApiModelProperty(name = "最近一次登录时间起") @@ -116,15 +116,15 @@ public class UserDTO extends BaseVOEntity { private Integer userAuthStatus; @ApiModelProperty(name = "用户审核人用户姓名") private String userAuthByUsername; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户审核时间") private Date userAuthTime; @ApiModelProperty(name = "加入黑名单备注(解除时需要清空)") private String userStatusRemark; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户状态更新时间") private Date userStatusTime; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户生日") private Date userBirthday; @ApiModelProperty(name = "用户住址信息") @@ -259,4 +259,7 @@ public class UserDTO extends BaseVOEntity { @ApiModelProperty("配送顺序") private String deliveryOrder; -} + + @ApiModelProperty("yms密码") + private String plainPassword; +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDriverDTO.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDriverDTO.java index 5568c1264..7b5860df8 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDriverDTO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDriverDTO.java @@ -47,15 +47,15 @@ public class UserDriverDTO extends UserDTO { @ApiModelProperty(name = "驾驶证发证机关") private String driverCertificationAuthority; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "初次领证日期") private Date driverLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期开始日期") private Date driverLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "驾驶证有效期到期日期") private Date driverLicenseDateTo; @@ -88,15 +88,15 @@ public class UserDriverDTO extends UserDTO { @ApiModelProperty(name = "从业资格证类别名称") private String driverWorkLicenseTypeName; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证初次领证日期") private Date driverWorkLicenseFirstDate; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期开始日期") private Date driverWorkLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "从业资格证有效期到期日期") private Date driverWorkLicenseDateTo; @@ -120,10 +120,10 @@ public class UserDriverDTO extends UserDTO { @ApiModelProperty(name = "经营许可证业户名称") private String driverBusinessLicenseOwner; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "经营许可证有效期开始日期") private Date driverBusinessLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "经营许可证有效期到期日期") private Date driverBusinessLicenseDateTo; @@ -149,11 +149,11 @@ public class UserDriverDTO extends UserDTO { @ApiModelProperty(name = "企业注册地址") private String driverEnterpriseAddress; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业执照有效期开始日期") private Date driverEnterpriseLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业执照有效期到期日期") private Date driverEnterpriseLicenseDateTo; @@ -176,11 +176,11 @@ public class UserDriverDTO extends UserDTO { @ApiModelProperty(name = "法人身份证号") private String driverCorpIdcardNumber; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期开始日期") private Date driverCorpIdcardDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期结束日期") private Date driverCorpIdcardDateTo; @@ -316,4 +316,4 @@ public class UserDriverDTO extends UserDTO { @ApiModelProperty(name = "车辆主体") private String vehicleBody; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDriverEnterpriseDto.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDriverEnterpriseDto.java index 32dbc75bc..e5eae42ee 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDriverEnterpriseDto.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserDriverEnterpriseDto.java @@ -42,12 +42,12 @@ public class UserDriverEnterpriseDto extends UserDTO{ private String driverBusinessLicenseOwner; /** 经营许可证有效期开始日期 */ @ApiModelProperty("经营许可证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateFrom; /** 经营许可证有效期到期日期 */ @ApiModelProperty("经营许可证有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "经营许可证有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseDateTo; /** 经营许可证是否长期:0-无状态,1-是,2-否 */ @@ -77,12 +77,12 @@ public class UserDriverEnterpriseDto extends UserDTO{ private String driverEnterpriseAddress; /** 企业营业执照有效期开始日期 */ @ApiModelProperty("企业营业执照有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateFrom; /** 企业营业执照有效期到期日期 */ @ApiModelProperty("企业营业执照有效期到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "企业营业执照有效期到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseLicenseDateTo; /** 企业营业执照是否长期:0-无状态,1-是,2-否 */ @@ -116,12 +116,12 @@ public class UserDriverEnterpriseDto extends UserDTO{ private String driverCorpIdcardNumber; /** 法人身份证有效期开始日期 */ @ApiModelProperty("法人身份证有效期开始日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期开始日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateFrom; /** 法人身份证有效期结束日期 */ @ApiModelProperty("法人身份证有效期结束日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "法人身份证有效期结束日期", width = 30, dateFormat = "yyyy-MM-dd") private Date driverCorpIdcardDateTo; /** 法人身份证是否长期:0-无状态,1-是,2-否 */ @@ -149,7 +149,7 @@ public class UserDriverEnterpriseDto extends UserDTO{ private Integer driverEnterpriseFill; /** 承运人企业认证时间 */ @ApiModelProperty("承运人企业认证时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "承运人企业认证时间", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseFillTime; /** 承运人企业认证状态:0-无状态,1-未认证,2-正在审核,3-认证通过,4-认证失败,5-认证失效' */ @@ -158,7 +158,7 @@ public class UserDriverEnterpriseDto extends UserDTO{ private Integer driverEnterpriseInfoFill; /** 承运人企业认证时间 */ @ApiModelProperty("承运人企业认证时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "承运人企业认证时间", width = 30, dateFormat = "yyyy-MM-dd") private Date driverEnterpriseInfoFillTime; /** 承运人经营许可证认证状态:0-无状态,1-未认证,2-正在审核,3-认证通过,4-认证失败,5-认证失效' */ @@ -167,7 +167,7 @@ public class UserDriverEnterpriseDto extends UserDTO{ private Integer driverBusinessLicenseFill; /** 承运人经营许可证认证时间 */ @ApiModelProperty("承运人经营许可证认证时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "承运人经营许可证认证时间", width = 30, dateFormat = "yyyy-MM-dd") private Date driverBusinessLicenseFillTime; @ApiModelProperty(name = "组织ID集合") @@ -203,4 +203,4 @@ public class UserDriverEnterpriseDto extends UserDTO{ @ApiModelProperty(name = "tms推送状态: 1-未推送 2- 已推送") private Integer tmsPushStatus; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserShipperDTO.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserShipperDTO.java index 27944fa50..5e7b72eda 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserShipperDTO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserShipperDTO.java @@ -46,12 +46,12 @@ public class UserShipperDTO extends UserDTO { @ApiModelProperty(name = "企业注册地址") private String shipperEnterpriseAddress; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限起") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date shipperEnterpriseLicenseDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限止") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date shipperEnterpriseLicenseDateTo; @@ -85,12 +85,12 @@ public class UserShipperDTO extends UserDTO { @ApiModelProperty(name = "法人身份证号加密") private String shipperCorpIdcardNumberDes; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期自") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date shipperCorpIdcardDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期止") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date shipperCorpIdcardDateTo; @@ -235,4 +235,25 @@ public class UserShipperDTO extends UserDTO { private String taxNumber; -} + + @ApiModelProperty(value = "更新时间起") + private String updateTimeFrom; + + @ApiModelProperty(value = "更新时间止") + private String updateTimeTo; + + @ApiModelProperty(value = "推送时间起") + private String pushTimeFrom; + + @ApiModelProperty(value = "推送时间止") + private String pushTimeTo; + + @ApiModelProperty(value = "推送状态") + private Integer pushStatus; + + @ApiModelProperty(name = "登录账号(2-20位)") + private String userAccount; + + @ApiModelProperty(name = "登录密码(6-20位)") + private String userPassword; +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserUpdateDTO.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserUpdateDTO.java index f91e4a8a8..5896ca819 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserUpdateDTO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/dto/addDTO/UserUpdateDTO.java @@ -42,10 +42,10 @@ public class UserUpdateDTO extends BaseVOEntity { private String userIdcardNumber; @ApiModelProperty(name = "身份证号加密") private String userIdcardNumberDes; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期自") private Date userIdcardDateFrom; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期至") private Date userIdcardDateTo; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") @@ -76,7 +76,7 @@ public class UserUpdateDTO extends BaseVOEntity { private String userWechatSessionKey; @ApiModelProperty(name = "密码登录错误次数") private Integer passwordWrongTimes; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ApiModelProperty(name = "最近一次登录时间") private Date lastLoginTime; @ApiModelProperty(name = "最近一次登录IP") @@ -89,15 +89,15 @@ public class UserUpdateDTO extends BaseVOEntity { private int userAuthStatus; @ApiModelProperty(name = "用户审核人用户姓名") private String userAuthByUsername; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户审核时间") private Date userAuthTime; @ApiModelProperty(name = "加入黑名单备注(解除时需要清空)") private String userStatusRemark; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户状态更新时间") private Date userStatusTime; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户生日") private Date userBirthday; @ApiModelProperty(name = "用户住址信息") @@ -122,4 +122,4 @@ public class UserUpdateDTO extends BaseVOEntity { @ApiModelProperty(name = "请求域名") private String tenantsDomainName; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserAPI.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserAPI.java index 9fc58871b..ca42936d6 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserAPI.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserAPI.java @@ -912,8 +912,9 @@ public class UserAPI extends BaseController { try { CustomerDO customerDO = new CustomerDO(); BeanUtils.copyProperties(customerDTO,customerDO); - userApplicationService.addCustomer(customerDO); - return AjaxResult.success(); + UserPo userPo = userApplicationService.addCustomer(customerDO); + CustomerDTO result = toCustomerDTO(userPo); + return AjaxResult.success(result); } catch (com.mhd.common.core.exception.ServiceException e) { e.printStackTrace(); return AjaxResult.error(500, e.getMessage()); @@ -923,6 +924,29 @@ public class UserAPI extends BaseController { } } + @Log(title = "用户中台管理-查询", description = "根据用户ID查询货主/供应商/客户详情", businessType = BusinessType.INQUIRE) + @ApiOperation("根据用户ID查询货主、供应商、客户详情") + @GetMapping("/getCustomerInfo/{userId}") + public AjaxResult getCustomerInfo(@PathVariable("userId") Long userId) { + UserPo userPo = userApplicationService.selectByUserId(userId); + return AjaxResult.success(toCustomerDTO(userPo)); + } + + private CustomerDTO toCustomerDTO(UserPo userPo) { + if (userPo == null) { + return null; + } + CustomerDTO customerDTO = new CustomerDTO(); + BeanUtils.copyProperties(userPo, customerDTO); + customerDTO.setUserMemberCode(userPo.getUserMemberCode()); + customerDTO.setEmergencyContactPhone(userPo.getUserPhone()); + customerDTO.setEmergencyContactName(userPo.getEmergencyContactName()); + customerDTO.setUserAreaName(userPo.getUserAreaName()); + customerDTO.setUserAreaCountyId(userPo.getUserAreaCountyId()); + customerDTO.setUserAreaAddress(userPo.getUserAreaAddress()); + return customerDTO; + } + @Log(title = "修改货主、供应商、客户", description ="修改货主、供应商、客户",businessType = BusinessType.UPDATE) @ApiOperation("修改货主、供应商、客户") @PostMapping("/updateCustomer") diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java index 863b63d10..6a46fc017 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facade/UserShipperAPI.java @@ -1,5 +1,6 @@ package com.mhd.user.interfaces.facade; +import com.github.pagehelper.PageHelper; import com.mhd.common.core.domain.entity.R; import com.mhd.common.core.utils.bean.BeanUtils; import com.mhd.common.log.annotation.Log; @@ -20,10 +21,11 @@ import com.mhd.user.interfaces.vo.SettlementInfoQueryVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.List; +import java.util.*; @Api(tags = "用户中台管理-托运人管理") @Slf4j @@ -235,4 +237,55 @@ public class UserShipperAPI extends BaseController { } } + @ApiOperation("商业合作伙伴-更新推送状态") + @PostMapping("/updatePushStatus") + public AjaxResult updatePushStatus(@RequestParam("shipperId") Long shipperId, + @RequestParam("pushStatus") Integer pushStatus, + @RequestParam(value = "pushTime", required = false) String pushTime, + @RequestParam(value = "pushBy", required = false) Long pushBy, + @RequestParam(value = "pushByName", required = false) String pushByName){ + + try{ + int result = userShipperApplicationService.updatePushStatus(shipperId,pushStatus,pushTime,pushBy,pushByName); + return result > 0 ? AjaxResult.success() : AjaxResult.error("更新失败"); + }catch (Exception e){ + log.error("更新推送状态异常: shipperId = {} , error = ", e.getMessage()); + return AjaxResult.error("更新推送状态异常:" + e.getMessage()); + } + } + + @Log(title = "托运人管理-查询", description ="查询托运人列表",businessType = BusinessType.INQUIRE) + @ApiOperation("查询托运人列表") + @GetMapping("/userShipperList1") + public TableDataInfo userShipperList1(UserShipperDTO userShipperDTO, + @RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) { + //转换实体 + UserShipperDO userShipperDO = userShipperAssember.toUserShipperDO(userShipperDTO); + PageHelper.startPage(pageNo, pageSize); + List list = userShipperApplicationService.userShipperList(userShipperDO); + return getDataTable(list); + } + + @Log(title = "托运人管理-查询", description ="查询托运人列表",businessType = BusinessType.INQUIRE) + @ApiOperation("查询托运人列表") + @GetMapping("/userShipperList2") + public TableDataInfo userShipperList2(UserShipperDTO userShipperDTO) { + //转换实体 + UserShipperDO userShipperDO = userShipperAssember.toUserShipperDO(userShipperDTO); + List list = userShipperApplicationService.userShipperList(userShipperDO); + return getDataTable(list); + } + + @PostMapping("/getCustomerNcCodeBatch") + public AjaxResult getCustomerNcCodeBatch(@RequestBody List shipperIdList){ + Map resultMap = new HashMap<>(); + if (shipperIdList != null && !shipperIdList.isEmpty()) { + for (Long shipperId : shipperIdList) { + String ncCode = userApplicationService.getCustomerNcCode(shipperId); + resultMap.put(shipperId, ncCode); + } + } + return AjaxResult.success(resultMap); + } } diff --git a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facadeApi/Po/UserShipperAuthAppPo.java b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facadeApi/Po/UserShipperAuthAppPo.java index f71bb6529..eee83098d 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/interfaces/facadeApi/Po/UserShipperAuthAppPo.java +++ b/mhd-user-center/src/main/java/com/mhd/user/interfaces/facadeApi/Po/UserShipperAuthAppPo.java @@ -26,7 +26,7 @@ public class UserShipperAuthAppPo { private String userIdcardBackUrl = ""; @ApiModelProperty(name = "手持身份证") private String userIdcardInhandUrl = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "用户生日") private String userBirthday = ""; @ApiModelProperty(name = "手机号码") @@ -40,10 +40,10 @@ public class UserShipperAuthAppPo { private String roleName = ""; @ApiModelProperty(name = "身份证号") private String userIdcardNumber = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期自") private String userIdcardDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "身份证有效期至") private String userIdcardDateTo = ""; @ApiModelProperty(name = "身份证是否长期:0-无状态,1-是,2-否") @@ -75,11 +75,11 @@ public class UserShipperAuthAppPo { @ApiModelProperty(name = "企业注册地址") private String shipperEnterpriseAddress = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限起") private String shipperEnterpriseLicenseDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "企业营业期限止") private String shipperEnterpriseLicenseDateTo = ""; @@ -125,10 +125,10 @@ public class UserShipperAuthAppPo { private String shipperCorpIdcardNumber = ""; @ApiModelProperty(name = "法人身份证号加密") private String shipperCorpIdcardNumberDes = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期自") private String shipperCorpIdcardDateFrom = ""; - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @ApiModelProperty(name = "法人身份证有效期止") private String shipperCorpIdcardDateTo = ""; @ApiModelProperty(name = "法人身份证是否长期:0-无状态,1-是,2-否") @@ -163,4 +163,4 @@ public class UserShipperAuthAppPo { @ApiModelProperty(name = "托运人发货企业审核原因") private String shipperEnterpriseFillRemark=""; -} +} \ No newline at end of file diff --git a/mhd-user-center/src/main/resources/bootstrap.yml b/mhd-user-center/src/main/resources/bootstrap.yml index 90cf188c9..c17c2833e 100644 --- a/mhd-user-center/src/main/resources/bootstrap.yml +++ b/mhd-user-center/src/main/resources/bootstrap.yml @@ -20,17 +20,17 @@ spring: discovery: # server-addr: 127.0.0.1:8848 # 线上测试环境配置 容器名+端口号 - server-addr: 10.33.0.129:6010 -# server-addr: 10.102.192.5:6848 -# username: nacos -# password: manhuoda@2023 +# server-addr: 10.33.0.129:6010 + server-addr: 10.102.192.31:6848 + username: nacos + password: manhuoda@2023 config: # server-addr: 127.0.0.1:8848 # 线上测试环境配置 容器名+端口号 - server-addr: 10.33.0.129:6010 -# server-addr: 10.102.192.5:6848 -# username: nacos -# password: manhuoda@2023 +# server-addr: 10.33.0.129:6010 + server-addr: 10.102.192.31:6848 + username: nacos + password: manhuoda@2023 group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置 file-extension: yml #默认properties # 共享配置 diff --git a/mhd-user-center/src/main/resources/mapper/UserMapper.xml b/mhd-user-center/src/main/resources/mapper/UserMapper.xml index 46e465d86..945639967 100644 --- a/mhd-user-center/src/main/resources/mapper/UserMapper.xml +++ b/mhd-user-center/src/main/resources/mapper/UserMapper.xml @@ -31,9 +31,9 @@ a.avatar, a.user_status, a.user_email, - a.user_area_county_id, - a.user_area_name, - a.user_area_address, + a.user_area_county_id AS userAreaCountyId, + a.user_area_name AS userAreaName, + a.user_area_address AS userAreaAddress, a.user_wechat_account, a.user_wechat_openid, a.user_wechat_session_key, @@ -755,7 +755,7 @@ + + + \ No newline at end of file diff --git a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml index 7a1343681..d4b0edc7a 100644 --- a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml +++ b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml @@ -161,7 +161,11 @@ b.invoice_title, b.tax_number, b.user_email, - b.user_remark as userRemarkShipper + b.user_remark as userRemarkShipper, + b.push_status, + b.push_time, + b.push_by, + b.push_by_name FROM "USER" a LEFT JOIN user_shipper b ON a.user_id = b.user_id left join (select user_id, LISTAGG(DISTINCT r.role_name, '&') WITHIN GROUP(ORDER BY r.role_name) AS roleName @@ -312,6 +316,24 @@ and DATE_FORMAT(a.create_time,'%Y-%m-%d') DATE_FORMAT(#{createTimeTo},'%Y-%m-%d') + /*更新时间*/ + + and DATE_FORMAT(a.update_time,'%Y-%m-%d') >= #{updateTimeFrom} + + + and DATE_FORMAT(a.update_time,'%Y-%m-%d') <= #{updateTimeTo} + + /*推送状态*/ + + and b.push_status = #{pushStatus} + + /*推送时间*/ + + and DATE_FORMAT(b.push_time,'%Y-%m-%d') >= #{pushTimeFrom} + + + and DATE_FORMAT(b.push_time,'%Y-%m-%d') <= #{pushTimeTo} + /*审核时间*/ and DATE_FORMAT(b.shipper_fill_time,'%Y-%m-%d') =]]> @@ -401,4 +423,17 @@ and esign_enterprise_status = #{userShipperEntity.esignEnterpriseStatus} + + + UPDATE user_shipper + + push_status = #{pushStatus}, + push_time = #{pushTime}, + push_by = #{pushBy}, + push_by_name = #{pushByName}, + + WHERE shipper_id = #{shipperId} + + + \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/billingRules/CostCalculationApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/billingRules/CostCalculationApplicationService.java index 7e907c2d6..c3492d48a 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/billingRules/CostCalculationApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/billingRules/CostCalculationApplicationService.java @@ -92,6 +92,7 @@ public class CostCalculationApplicationService { //第二步 根据计费策略公式进行替换,并根据配置的公式计算结果 BigDecimal computationalCost = computational(billingRulesPO,costCalculationDTO,taskFlowRecordsDO); result.setComputationalCost(computationalCost); + result.setBillingRulesPO(billingRulesPO); //第三步 产生计费任务记录 taskFlowRecordsDO.setBillingResults(computationalCost.toString()); diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java index 67c69da6a..ce684c175 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/businessDocument/BusinessDocumentApplicationService.java @@ -7,11 +7,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.mhd.bms.application.server.billingRules.CostCalculationApplicationService; import com.mhd.bms.application.server.settlementCustomers.SettlementCustomersApplicationService; +import com.mhd.bms.domain.billingRules.repository.po.BillingParamsPO; +import com.mhd.bms.domain.billingRules.repository.po.BillingRulesPO; import com.mhd.bms.domain.billingStatement.service.BillingStatementDomainService; import com.mhd.bms.domain.businessDocument.entity.BusinessDocument; import com.mhd.bms.domain.businessDocument.repository.po.BusinessDocumentPO; import com.mhd.bms.domain.businessDocument.repository.todo.BusinessDocumentDO; import com.mhd.bms.domain.businessDocument.service.BusinessDocumentDomainService; +import com.mhd.bms.domain.costCalculation.entity.BillingParamsEntity; import com.mhd.bms.domain.costCalculation.po.BillingCostPo; import com.mhd.bms.domain.documentType.entity.DocumentFromEntity; import com.mhd.bms.domain.documentType.entity.DocumentType; @@ -173,10 +176,52 @@ public class BusinessDocumentApplicationService { costCalculationDTO.setOrganizationName(loginUser.getUserPo().getOrganizationName()); BillingCostPo billingCostPo = costCalculationApplicationService.costCalculation(costCalculationDTO); businessDocumentDO.setEstimatedCost(billingCostPo.getComputationalCost()); + BillingRulesPO billingRulesPO = billingCostPo.getBillingRulesPO(); + List billingParamsPOList = billingRulesPO.getBillingParamsPOList(); + if (ObjectUtil.isNotNull(billingParamsPOList)&&billingParamsPOList.size()>0) { + BillingParamsPO billingParamsPO = billingParamsPOList.get(0); + String billingParamsJson = billingParamsPO.getBillingParamsJson(); + String preSetRules = billingParamsPO.getPreSetRules(); + String documentFormJson = businessDocumentDO.getDocumentFormJson(); + JSONObject paramObj = JSONObject.parseObject(documentFormJson); + List billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsEntity.class); + for (BillingParamsEntity billingParamsEntity : billingParamsEntityList) { + String isFee = billingParamsEntity.getIsFee(); + String fields = billingParamsEntity.getFields(); + // 安全获取值并转 BigDecimal(不会报错) + BigDecimal value = getSafeBigDecimal(paramObj, fields); + + if ("1".equals(isFee)) { + businessDocumentDO.setBillingUnitPrice(value.setScale(2, BigDecimal.ROUND_HALF_UP)); + } else { + businessDocumentDO.setBillingNum(value.setScale(2, BigDecimal.ROUND_HALF_UP)); + } + } + } // businessDocumentDO.setEstimatedCost(new BigDecimal("100")); return businessDocumentDomainService.insert(businessDocumentDO); } + /** + * 从 JSONObject 安全获取 BigDecimal,支持: + * 数字、整数字符串、小数字符串、null、空字符串 + */ + private BigDecimal getSafeBigDecimal(JSONObject paramObj, String fields) { + Object obj = paramObj.get(fields); + + if (obj == null) { + return BigDecimal.ZERO; // 空值默认返回0,避免空指针 + } + + try { + // 统一转字符串再转 BigDecimal,最安全 + return new BigDecimal(obj.toString().trim()); + } catch (Exception e) { + // 无法解析的非法值,默认返回0 + return BigDecimal.ZERO; + } + } + /** * 新增业务单据 @@ -390,12 +435,39 @@ public class BusinessDocumentApplicationService { businessDocumentDO.setFirstSubjectName(expenseAccountPO.getSubjectName()); businessDocumentDO.setFirstSubjectCode(expenseAccountPO.getSubjectCode()); businessDocumentDO.setSecondSubjectCode(""); + String billingUnitDefaultCn = expenseAccountPO.getBillingUnitDefaultCn(); + String billingUnitDefaultEn = expenseAccountPO.getBillingUnitDefaultEn(); + if ("1".equals(billingUnitDefaultCn)) { + businessDocumentDO.setBillingUnit(expenseAccountPO.getBillingUnit()); + businessDocumentDO.setBillingUnit2(expenseAccountPO.getBillingUnit2()); + } else if ("1".equals(billingUnitDefaultEn)) { + businessDocumentDO.setBillingUnit(expenseAccountPO.getBillingUnitEn()); + businessDocumentDO.setBillingUnit2(expenseAccountPO.getBillingUnitEn2()); + } else { + businessDocumentDO.setBillingUnit(expenseAccountPO.getBillingUnit()); + businessDocumentDO.setBillingUnit2(expenseAccountPO.getBillingUnit2()); + } + + businessDocumentDO.setNcSubjectCode(expenseAccountPO.getNcSubjectCode()); }else { //不是一级科目 businessDocumentDO.setFirstSubjectName(expenseAccountPO.getUpperSubject()); businessDocumentDO.setFirstSubjectCode(expenseAccountPO.getUpperSubjectCode()); businessDocumentDO.setSecondSubjectCode(expenseAccountPO.getSubjectCode()); businessDocumentDO.setSecondSubjectName(expenseAccountPO.getSubjectName()); + String billingUnitDefaultCn = expenseAccountPO.getBillingUnitDefaultCn(); + String billingUnitDefaultEn = expenseAccountPO.getBillingUnitDefaultEn(); + if ("1".equals(billingUnitDefaultCn)) { + businessDocumentDO.setBillingUnit(expenseAccountPO.getBillingUnit()); + businessDocumentDO.setBillingUnit2(expenseAccountPO.getBillingUnit2()); + } else if ("1".equals(billingUnitDefaultEn)) { + businessDocumentDO.setBillingUnit(expenseAccountPO.getBillingUnitEn()); + businessDocumentDO.setBillingUnit2(expenseAccountPO.getBillingUnitEn2()); + } else { + businessDocumentDO.setBillingUnit(expenseAccountPO.getBillingUnit()); + businessDocumentDO.setBillingUnit2(expenseAccountPO.getBillingUnit2()); + } + businessDocumentDO.setNcSubjectCode(expenseAccountPO.getNcSubjectCode()); } //判断如果前端没有传费用类别,则此处根据费用科目获取关联费用类别 if(StringUtils.isEmpty(businessDocumentDO.getServiceItemsCode())){ @@ -1026,18 +1098,40 @@ public class BusinessDocumentApplicationService { businessDocumentDO.setOrganizationName(businessDocumentDO.getOrganizationName()); businessDocumentDO.setOriginalBusinessNum(businessDocumentDO.getOriginalBusinessNum()); //调用费用计算,计算费用金额进行保存 -// CostCalculationDTO costCalculationDTO = new CostCalculationDTO(); -// costCalculationDTO.setOriginalBusinessNum(businessDocumentDO.getOriginalBusinessNum()); -// costCalculationDTO.setContractNumber(businessDocumentDO.getContractNumber()); -// costCalculationDTO.setFormJson(businessDocumentDO.getDocumentFormJson()); -// costCalculationDTO.setSubjectCode(StringUtils.isEmpty(businessDocumentDO.getSecondSubjectCode()) ? businessDocumentDO.getFirstSubjectCode():businessDocumentDO.getSecondSubjectCode()); -// costCalculationDTO.setDocumentTypeCode(businessDocumentDO.getDocumentTypeCode()); -// costCalculationDTO.setTopOrganizationId(businessDocumentDO.getTopOrganizationId()); -// costCalculationDTO.setOrganizationId(businessDocumentDO.getOrganizationId()); -// costCalculationDTO.setOrganizationName(businessDocumentDO.getOrganizationName()); -// BillingCostPo billingCostPo = costCalculationApplicationService.costCalculation(costCalculationDTO); -// businessDocumentDO.setEstimatedCost(billingCostPo.getComputationalCost()); -// businessDocumentDO.setBillAmount(billingCostPo.getComputationalCost());//计费金额与计算金额一致 + CostCalculationDTO costCalculationDTO = new CostCalculationDTO(); + costCalculationDTO.setOriginalBusinessNum(businessDocumentDO.getOriginalBusinessNum()); + costCalculationDTO.setContractNumber(businessDocumentDO.getContractNumber()); + costCalculationDTO.setFormJson(businessDocumentDO.getDocumentFormJson()); + costCalculationDTO.setSubjectCode(StringUtils.isEmpty(businessDocumentDO.getSecondSubjectCode()) ? businessDocumentDO.getFirstSubjectCode():businessDocumentDO.getSecondSubjectCode()); + costCalculationDTO.setDocumentTypeCode(businessDocumentDO.getDocumentTypeCode()); + costCalculationDTO.setTopOrganizationId(businessDocumentDO.getTopOrganizationId()); + costCalculationDTO.setOrganizationId(businessDocumentDO.getOrganizationId()); + costCalculationDTO.setOrganizationName(businessDocumentDO.getOrganizationName()); + BillingCostPo billingCostPo = costCalculationApplicationService.costCalculation(costCalculationDTO); + + BillingRulesPO billingRulesPO = billingCostPo.getBillingRulesPO(); + List billingParamsPOList = billingRulesPO.getBillingParamsPOList(); + if (ObjectUtil.isNotNull(billingParamsPOList)&&billingParamsPOList.size()>0) { + BillingParamsPO billingParamsPO = billingParamsPOList.get(0); + String billingParamsJson = billingParamsPO.getBillingParamsJson(); + String preSetRules = billingParamsPO.getPreSetRules(); + String documentFormJson = businessDocumentDO.getDocumentFormJson(); + JSONObject paramObj = JSONObject.parseObject(documentFormJson); + List billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsEntity.class); + for (BillingParamsEntity billingParamsEntity : billingParamsEntityList) { + String isFee = billingParamsEntity.getIsFee(); + String fields = billingParamsEntity.getFields(); + // 安全获取值并转 BigDecimal(不会报错) + BigDecimal value = getSafeBigDecimal(paramObj, fields); + + if ("1".equals(isFee)) { + businessDocumentDO.setBillingUnitPrice(value.setScale(2, BigDecimal.ROUND_HALF_UP)); + } else { + businessDocumentDO.setBillingNum(value.setScale(2, BigDecimal.ROUND_HALF_UP)); + } + } + } + log.info("定时任务进入BMS业务单据保存--结束"); BusinessDocument businessDocument = businessDocumentDomainService.insertRetrun(businessDocumentDO); BusinessDocumentDTO businessDocumentDTO = new BusinessDocumentDTO(); diff --git a/mhd_bms/src/main/java/com/mhd/bms/application/server/settlementCustomers/SettlementCustomersApplicationService.java b/mhd_bms/src/main/java/com/mhd/bms/application/server/settlementCustomers/SettlementCustomersApplicationService.java index 153412f63..1e2608ea1 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/application/server/settlementCustomers/SettlementCustomersApplicationService.java +++ b/mhd_bms/src/main/java/com/mhd/bms/application/server/settlementCustomers/SettlementCustomersApplicationService.java @@ -376,4 +376,39 @@ public class SettlementCustomersApplicationService { } return null; } + + /** + * 按结算主体ID(如货主用户ID,对应 settlement_entity_id)取一条结算对象,用于解析合同上的 settlement_customers_code。 + * 多条时按 settlement_customers_id 升序取第一条。 + * + * @param settlementEntityId 结算主体id,不可为空 + * @param topOrganizationId 一级组织;为空则从当前登录用户取 + */ + public SettlementCustomersPO getFirstBySettlementEntityId(Long settlementEntityId, Long topOrganizationId) { + if (settlementEntityId == null) { + return null; + } + Long topOrg = topOrganizationId; + if (topOrg == null) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null && loginUser.getUserPo() != null) { + topOrg = loginUser.getUserPo().getTopOrganizationId(); + } + } + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .eq(SettlementCustomers::getSettlementEntityId, settlementEntityId) + .eq(SettlementCustomers::getDelFlag, 1) + .orderByAsc(SettlementCustomers::getSettlementCustomersId) + .last("LIMIT 1"); + if (topOrg != null) { + wrapper.eq(SettlementCustomers::getTopOrganizationId, topOrg); + } + SettlementCustomers entity = settlementCustomersMapper.selectOne(wrapper); + if (entity == null) { + return null; + } + SettlementCustomersPO po = new SettlementCustomersPO(); + BeanUtils.copyProperties(entity, po); + return po; + } } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/entity/BillManage.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/entity/BillManage.java index 700726cea..a54201841 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/entity/BillManage.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/entity/BillManage.java @@ -120,17 +120,17 @@ public class BillManage extends BaseVOEntity{ private String financialReviewOpinion; @ApiModelProperty("周期开始时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期开始时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleBeginTime; @ApiModelProperty("周期结束时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期结束时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleEndTime; @ApiModelProperty("收款/付款时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "收款/付款时间", width = 30, dateFormat = "yyyy-MM-dd") private Date settlementTime; diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java index a2b77b5f7..f0f3c4f7a 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/mapper/BillManageMapper.java @@ -21,6 +21,8 @@ public interface BillManageMapper extends BaseMapper String getInvoiceItemName(@Param("invoiceItemId") String invoiceItemId); + String getInvoiceItemNcCode(@Param("invoiceItemId") String invoiceItemId); + String getCustomerCodeNc(@Param("actualInvoiceCustomerId") String actualInvoiceCustomerId); String getDocumentPreparerNcCode(@Param("salesmanId") String salesmanId); diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java index d08e95350..486aab1ae 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/persistence/BillManageImpl.java @@ -240,11 +240,14 @@ public class BillManageImpl extends ServiceImpl im item.setDirection("1"); String invoiceItem = item1.getInvoiceItem(); List names = new ArrayList<>(); + List nccodes = new ArrayList<>(); if (invoiceItem != null && !invoiceItem.isEmpty()) { String[] items = invoiceItem.split(","); for (String s : items) { String invoiceItemName1 = billManageMapper.getInvoiceItemName(s); + String invoiceItemNcCode1 = billManageMapper.getInvoiceItemNcCode(s); names.add(invoiceItemName1); + nccodes.add(invoiceItemNcCode1); } } String invoiceItemName = String.join(",", names); @@ -282,6 +285,9 @@ public class BillManageImpl extends ServiceImpl im item.setDef29(split[0]); //item.setDef29(invoiceItem1); } + if (nccodes != null && !nccodes.isEmpty()&&nccodes.size()>0) { + item.setDef29(nccodes.get(0)); + } item.setTaxcodeid("ZL01"); item.setInvoiceno(invoiceNumber); ysitemList.add(item); diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/po/BillDetailPO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/po/BillDetailPO.java index 1a0cb7eee..5c4c7bac5 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/po/BillDetailPO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/po/BillDetailPO.java @@ -82,17 +82,17 @@ public class BillDetailPO extends BaseVOEntity{ private String settlementEntity; @ApiModelProperty("业务日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "业务日期", width = 30, dateFormat = "yyyy-MM-dd") private Date businessDate; @ApiModelProperty("周期开始时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期开始时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleBeginTime; @ApiModelProperty("周期结束时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期结束时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleEndTime; diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/po/BillManagePO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/po/BillManagePO.java index 724a36e00..a4c4e3403 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/po/BillManagePO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/po/BillManagePO.java @@ -129,17 +129,17 @@ public class BillManagePO extends BaseVOEntity{ private String financialReviewOpinion; @ApiModelProperty("周期开始时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期开始时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleBeginTime; @ApiModelProperty("周期结束时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期结束时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleEndTime; @ApiModelProperty("收款/付款时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "收款/付款时间", width = 30, dateFormat = "yyyy-MM-dd") private Date settlementTime; diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/todo/BillManageDO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/todo/BillManageDO.java index 92aabee3f..399ad44c4 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/todo/BillManageDO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billManage/repository/todo/BillManageDO.java @@ -120,17 +120,17 @@ public class BillManageDO extends BaseVOEntity{ private String financialReviewOpinion; @ApiModelProperty("周期开始时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期开始时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleBeginTime; @ApiModelProperty("周期结束时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期结束时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleEndTime; @ApiModelProperty("收款/付款时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "收款/付款时间", width = 30, dateFormat = "yyyy-MM-dd") private Date settlementTime; diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/entity/BillingStatement.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/entity/BillingStatement.java index 3be326aac..98d69bbcf 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/entity/BillingStatement.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/entity/BillingStatement.java @@ -1,6 +1,7 @@ package com.mhd.bms.domain.billingStatement.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.mhd.common.core.annotation.Excel; import io.swagger.annotations.ApiModelProperty; @@ -51,17 +52,17 @@ public class BillingStatement extends BaseVOEntity{ private String settlementEntity; @ApiModelProperty("业务日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "业务日期", width = 30, dateFormat = "yyyy-MM-dd") private Date businessDate; @ApiModelProperty("周期开始时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期开始时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleBeginTime; @ApiModelProperty("周期结束时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期结束时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleEndTime; @@ -210,4 +211,15 @@ public class BillingStatement extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/po/BillingStatementPO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/po/BillingStatementPO.java index f77d82eda..447b38446 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/po/BillingStatementPO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/po/BillingStatementPO.java @@ -50,17 +50,17 @@ public class BillingStatementPO extends BaseVOEntity{ private String settlementEntity; @ApiModelProperty("业务日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "业务日期", width = 30, dateFormat = "yyyy-MM-dd") private Date businessDate; @ApiModelProperty("周期开始时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期开始时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleBeginTime; @ApiModelProperty("周期结束时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期结束时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleEndTime; @@ -221,4 +221,15 @@ public class BillingStatementPO extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/todo/BillingStatementDO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/todo/BillingStatementDO.java index bdc1ee675..af1576753 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/todo/BillingStatementDO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/billingStatement/repository/todo/BillingStatementDO.java @@ -51,17 +51,17 @@ public class BillingStatementDO extends BaseVOEntity{ private String settlementEntity; @ApiModelProperty("业务日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "业务日期", width = 30, dateFormat = "yyyy-MM-dd") private Date businessDate; @ApiModelProperty("周期开始时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期开始时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleBeginTime; @ApiModelProperty("周期结束时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期结束时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleEndTime; @@ -239,4 +239,15 @@ public class BillingStatementDO extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/entity/BusinessDocument.java b/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/entity/BusinessDocument.java index 5eb6a0dbf..dd740c80f 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/entity/BusinessDocument.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/entity/BusinessDocument.java @@ -1,6 +1,7 @@ package com.mhd.bms.domain.businessDocument.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.mhd.common.core.annotation.Excel; import io.swagger.annotations.ApiModelProperty; @@ -127,7 +128,7 @@ public class BusinessDocument extends BaseVOEntity{ private String settlementEntity; @ApiModelProperty("计费时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "计费时间", width = 30, dateFormat = "yyyy-MM-dd") private Date billingTime; @@ -182,4 +183,15 @@ public class BusinessDocument extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("计费数量") + private BigDecimal billingNum; + @ApiModelProperty("计费单价") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/po/BusinessDocumentPO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/po/BusinessDocumentPO.java index 6b27d16ee..66e8a517e 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/po/BusinessDocumentPO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/po/BusinessDocumentPO.java @@ -126,7 +126,7 @@ public class BusinessDocumentPO extends BaseVOEntity{ private String settlementEntity; @ApiModelProperty("计费时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "计费时间", width = 30, dateFormat = "yyyy-MM-dd") private Date billingTime; @@ -187,4 +187,15 @@ public class BusinessDocumentPO extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/todo/BusinessDocumentDO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/todo/BusinessDocumentDO.java index a8cffd45b..899da7af5 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/todo/BusinessDocumentDO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/businessDocument/repository/todo/BusinessDocumentDO.java @@ -128,7 +128,7 @@ public class BusinessDocumentDO extends BaseVOEntity{ private String settlementEntity; @ApiModelProperty("计费时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "计费时间", width = 30, dateFormat = "yyyy-MM-dd") private Date billingTime; @@ -207,4 +207,15 @@ public class BusinessDocumentDO extends BaseVOEntity{ private String paymentAccountId; @ApiModelProperty("收款帐户名称") private String paymentAccountName; + + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/entity/BillingParamsEntity.java b/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/entity/BillingParamsEntity.java index 2922a4c04..6e747cf1c 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/entity/BillingParamsEntity.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/entity/BillingParamsEntity.java @@ -35,4 +35,10 @@ public class BillingParamsEntity { @ApiModelProperty("排序") private Integer sort; -} + private String isPush; + + private String isFee; + + private String isShow; + +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/po/BillingCostPo.java b/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/po/BillingCostPo.java index 145c9faa3..ab7d2957e 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/po/BillingCostPo.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/costCalculation/po/BillingCostPo.java @@ -1,5 +1,6 @@ package com.mhd.bms.domain.costCalculation.po; +import com.mhd.bms.domain.billingRules.repository.po.BillingRulesPO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -30,5 +31,7 @@ public class BillingCostPo { @ApiModelProperty("预计金额") private BigDecimal computationalCost; + private BillingRulesPO billingRulesPO; -} + +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/settlementCustomers/repository/po/SettlementCustomersPO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/settlementCustomers/repository/po/SettlementCustomersPO.java index ede94cf81..2d497c5cc 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/settlementCustomers/repository/po/SettlementCustomersPO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/settlementCustomers/repository/po/SettlementCustomersPO.java @@ -93,4 +93,38 @@ public class SettlementCustomersPO extends BaseVOEntity{ @ApiModelProperty(name = "nc编码") private String ncCode; + @ApiModelProperty(name = "结算币种") + private String settlementCurrency; + + @ApiModelProperty("业务单据id") + private Long businessDocumentId; + + @ApiModelProperty("业务流水号") + private String businessFlow; + + @ApiModelProperty("业务单号") + private String originalBusinessNum; + + @ApiModelProperty("费用类别") + private String serviceItemsName; + + @ApiModelProperty("一级费用科目") + private String firstSubjectName; + + @ApiModelProperty("二级费用科目") + private String secondSubjectName; + + @ApiModelProperty("业务状态(1-未生效,2-已生效,3-已计费,4-已驳回,5-已作废)") + private Integer businessState; + + @ApiModelProperty("单据类型") + private String documentType; + + @ApiModelProperty("单据类型编码") + private String documentTypeCode; + + @ApiModelProperty("业务单据创建时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date businessCreateTime; + } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/domain/settlementCustomers/repository/todo/SettlementCustomersDO.java b/mhd_bms/src/main/java/com/mhd/bms/domain/settlementCustomers/repository/todo/SettlementCustomersDO.java index fa4454ba9..2546f6c99 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/domain/settlementCustomers/repository/todo/SettlementCustomersDO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/domain/settlementCustomers/repository/todo/SettlementCustomersDO.java @@ -105,4 +105,28 @@ public class SettlementCustomersDO extends BaseVOEntity{ @ApiModelProperty(name = "nc编码") private String ncCode; + @ApiModelProperty("业务流水号") + private String businessFlow; + + @ApiModelProperty("业务单号") + private String originalBusinessNum; + + @ApiModelProperty("费用类别") + private String serviceItemsName; + + @ApiModelProperty("一级费用科目") + private String firstSubjectName; + + @ApiModelProperty("二级费用科目") + private String secondSubjectName; + + @ApiModelProperty("业务状态(1-未生效,2-已生效,3-已计费,4-已驳回,5-已作废)") + private Integer businessState; + + @ApiModelProperty("单据类型") + private String documentType; + + @ApiModelProperty("单据类型编码") + private String documentTypeCode; + } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ContractManageDetailPO.java b/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ContractManageDetailPO.java index 7ba827968..93a041db5 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ContractManageDetailPO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ContractManageDetailPO.java @@ -82,12 +82,12 @@ public class ContractManageDetailPO extends BaseVOEntity{ private String billingAttributesCode; @ApiModelProperty("合同有效日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同有效日期", width = 30, dateFormat = "yyyy-MM-dd") private Date subjectEffectiveDate; @ApiModelProperty("合同到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date subjectExpirationDate; @@ -97,4 +97,4 @@ public class ContractManageDetailPO extends BaseVOEntity{ @ApiModelProperty("单据类型") private String documentType; -} +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ContractManagePO.java b/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ContractManagePO.java index 8fefd8216..7015777c7 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ContractManagePO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ContractManagePO.java @@ -87,17 +87,17 @@ public class ContractManagePO extends BaseVOEntity{ private Integer accountingPeriod; @ApiModelProperty("合同签订日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同签订日期", width = 30, dateFormat = "yyyy-MM-dd") private Date signingDate; @ApiModelProperty("合同生效日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同生效日期", width = 30, dateFormat = "yyyy-MM-dd") private Date effectiveDate; @ApiModelProperty("合同到期日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "合同到期日期", width = 30, dateFormat = "yyyy-MM-dd") private Date expirationDate; @@ -163,10 +163,10 @@ public class ContractManagePO extends BaseVOEntity{ private Integer automaticFlag; @ApiModelProperty("出账日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date paymentDate; @ApiModelProperty(name = "主体类型(1-货主,2-客户,3-承运商)") private Integer principalType; -} +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ExpenseAccountPO.java b/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ExpenseAccountPO.java index e1d138975..aaace0e1a 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ExpenseAccountPO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/infrastructure/feign/vo/ExpenseAccountPO.java @@ -102,4 +102,41 @@ public class ExpenseAccountPO extends BaseVOEntity{ @ApiModelProperty("服务项税率") @Excel(name = "服务项税率") private BigDecimal taxRate; -} + + + + @ApiModelProperty("费率") + private BigDecimal rate; + + @ApiModelProperty(name = "创建订单是否固定显示 0-否 1-是") + private Integer fixedOrderDisplay; + + + @ApiModelProperty(name = "入库单是否固定显示 0-否 1-是") + private Integer inOrderDisplay; + + @ApiModelProperty(name = "出库单是否固定显示 0-否 1-是") + private Integer outOrderDisplay; + + + @ApiModelProperty("计费单位") + private String billingUnit; + + @ApiModelProperty("计费单位英文") + private String billingUnitEn; + + @ApiModelProperty("计费单位2") + private String billingUnit2; + + @ApiModelProperty("计费单位2英文") + private String billingUnitEn2; + + @ApiModelProperty("计费单位中文默认") + private String billingUnitDefaultCn; + + @ApiModelProperty("计费单位英文默认") + private String billingUnitDefaultEn; + + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; +} \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billManage/BillDetailDTO.java b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billManage/BillDetailDTO.java index 5d9446fc8..9c42728a0 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billManage/BillDetailDTO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billManage/BillDetailDTO.java @@ -87,17 +87,17 @@ public class BillDetailDTO extends BaseVOEntity{ private String settlementEntity; @ApiModelProperty("业务日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "业务日期", width = 30, dateFormat = "yyyy-MM-dd") private Date businessDate; @ApiModelProperty("周期开始时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期开始时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleBeginTime; @ApiModelProperty("周期结束时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期结束时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleEndTime; diff --git a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billManage/BillManageDTO.java b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billManage/BillManageDTO.java index 98d8cf99f..225e23588 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billManage/BillManageDTO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billManage/BillManageDTO.java @@ -120,17 +120,17 @@ public class BillManageDTO extends BaseVOEntity{ private String financialReviewOpinion; @ApiModelProperty("周期开始时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期开始时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleBeginTime; @ApiModelProperty("周期结束时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期结束时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleEndTime; @ApiModelProperty("收款/付款时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "收款/付款时间", width = 30, dateFormat = "yyyy-MM-dd") private Date settlementTime; diff --git a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billingStatement/BillingStatementDTO.java b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billingStatement/BillingStatementDTO.java index 1fc8a6da9..48e195c69 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billingStatement/BillingStatementDTO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/billingStatement/BillingStatementDTO.java @@ -52,17 +52,17 @@ public class BillingStatementDTO extends BaseVOEntity{ private String settlementEntity; @ApiModelProperty("业务日期") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "业务日期", width = 30, dateFormat = "yyyy-MM-dd") private Date businessDate; @ApiModelProperty("周期开始时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期开始时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleBeginTime; @ApiModelProperty("周期结束时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "周期结束时间", width = 30, dateFormat = "yyyy-MM-dd") private Date cycleEndTime; @@ -250,4 +250,15 @@ public class BillingStatementDTO extends BaseVOEntity{ private String paymentAccountName; private List billingStatementList; + @ApiModelProperty("计费单位") + private String billingUnit; + @ApiModelProperty("计费单位2") + private String billingUnit2; + @ApiModelProperty("预计费金额") + private BigDecimal billingNum; + @ApiModelProperty("预计费金额") + private BigDecimal billingUnitPrice; + @ApiModelProperty("nc科目编码") + private String ncSubjectCode; + } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/businessDocument/BusinessDocumentDTO.java b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/businessDocument/BusinessDocumentDTO.java index 36a188b5c..aefb1c14b 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/businessDocument/BusinessDocumentDTO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/businessDocument/BusinessDocumentDTO.java @@ -126,7 +126,7 @@ public class BusinessDocumentDTO extends BaseVOEntity{ private String settlementEntity; @ApiModelProperty("计费时间") - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @Excel(name = "计费时间", width = 30, dateFormat = "yyyy-MM-dd") private Date billingTime; diff --git a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/settlementCustomers/SettlementCustomersDTO.java b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/settlementCustomers/SettlementCustomersDTO.java index 4094cc9fe..f347cd0a4 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/settlementCustomers/SettlementCustomersDTO.java +++ b/mhd_bms/src/main/java/com/mhd/bms/interfaces/dto/settlementCustomers/SettlementCustomersDTO.java @@ -103,4 +103,28 @@ public class SettlementCustomersDTO extends BaseVOEntity{ private String projectName; @ApiModelProperty(name = "nc编码") private String ncCode; + + @ApiModelProperty("业务流水号") + private String businessFlow; + + @ApiModelProperty("业务单号") + private String originalBusinessNum; + + @ApiModelProperty("费用类别") + private String serviceItemsName; + + @ApiModelProperty("一级费用科目") + private String firstSubjectName; + + @ApiModelProperty("二级费用科目") + private String secondSubjectName; + + @ApiModelProperty("业务状态(1-未生效,2-已生效,3-已计费,4-已驳回,5-已作废)") + private Integer businessState; + + @ApiModelProperty("单据类型") + private String documentType; + + @ApiModelProperty("单据类型编码") + private String documentTypeCode; } \ No newline at end of file diff --git a/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/SettlementCustomersApi.java b/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/SettlementCustomersApi.java index 5af14ba96..ed2fa4bbf 100644 --- a/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/SettlementCustomersApi.java +++ b/mhd_bms/src/main/java/com/mhd/bms/interfaces/facadeApi/SettlementCustomersApi.java @@ -41,9 +41,8 @@ public class SettlementCustomersApi extends BaseController{ @GetMapping("/list") public TableDataInfo list(SettlementCustomersDTO settlementCustomersDTO) { - //转换实体 SettlementCustomersDO settlementCustomersDO = new SettlementCustomersDO(); - BeanUtils.copyProperties(settlementCustomersDTO,settlementCustomersDO); + BeanUtils.copyProperties(settlementCustomersDTO, settlementCustomersDO); startPage(); List list = settlementCustomersApplicationService.queryList(settlementCustomersDO); return getDataTable(list); @@ -123,6 +122,21 @@ public class SettlementCustomersApi extends BaseController{ return AjaxResult.success(settlementCustomersApplicationService.getInfoByCode(settlementCustomersCode)); } + /** + * 按结算主体ID(货主等业务主体ID,对应 settlement_entity_id)查询一条结算对象 + */ + @ApiOperation("按结算主体ID查询结算对象") + @GetMapping(value = "/getInfoBySettlementEntityId") + public AjaxResult getInfoBySettlementEntityId( + @RequestParam(value = "settlementEntityId", required = false) Long settlementEntityId, + @RequestParam(value = "topOrganizationId", required = false) Long topOrganizationId) { + if (settlementEntityId == null) { + return AjaxResult.error("缺少必传查询参数 settlementEntityId(货主/结算主体ID,对应 settlement_entity_id)。" + + "GET 请求示例:/settlementCustomersApi/getInfoBySettlementEntityId?settlementEntityId=123456&topOrganizationId=你的租户一级组织ID"); + } + return AjaxResult.success(settlementCustomersApplicationService.getFirstBySettlementEntityId(settlementEntityId, topOrganizationId)); + } + diff --git a/mhd_bms/src/main/resources/bootstrap.yml b/mhd_bms/src/main/resources/bootstrap.yml index b11cbb3d6..b820966d6 100644 --- a/mhd_bms/src/main/resources/bootstrap.yml +++ b/mhd_bms/src/main/resources/bootstrap.yml @@ -19,14 +19,14 @@ spring: # server-addr: 127.0.0.1:8848 # 线上测试环境配置 容器名+端口号 server-addr: 10.33.0.129:6010 -# server-addr: 10.102.192.5:6848 +# server-addr: 10.102.192.31:6848 # username: nacos # password: manhuoda@2023 config: # server-addr: 127.0.0.1:8848 # 线上测试环境配置 容器名+端口号 server-addr: 10.33.0.129:6010 -# server-addr: 10.102.192.5:6848 +# server-addr: 10.102.192.31:6848 # username: nacos # password: manhuoda@2023 group: DEFAULT_GROUP # 默认分组就是DEFAULT_GROUP,如果使用默认分组可以不配置 diff --git a/mhd_bms/src/main/resources/mapper/BillManageMapper.xml b/mhd_bms/src/main/resources/mapper/BillManageMapper.xml index 43b20f2b6..951903728 100644 --- a/mhd_bms/src/main/resources/mapper/BillManageMapper.xml +++ b/mhd_bms/src/main/resources/mapper/BillManageMapper.xml @@ -110,6 +110,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select SUBJECT_NAME from "NGWL_TEST_SYSTEM".EXPENSE_ACCOUNT where status = 1 and SUBJECT_CODE = #{invoiceItemId} limit 1 + + diff --git a/mhd_bms/src/main/resources/mapper/BillingStatementMapper.xml b/mhd_bms/src/main/resources/mapper/BillingStatementMapper.xml index a476f318f..a7a274c01 100644 --- a/mhd_bms/src/main/resources/mapper/BillingStatementMapper.xml +++ b/mhd_bms/src/main/resources/mapper/BillingStatementMapper.xml @@ -116,9 +116,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND billing_flow like concat('%', #{billingStatementDO.billingFlow}, '%') + + AND business_flow like concat('%', #{billingStatementDO.businessFlow}, '%') + AND settlement_entity like concat('%', #{billingStatementDO.settlementEntity}, '%') + + AND settlement_customers_code like concat('%', #{billingStatementDO.settlementCustomersCode}, '%') + + + AND first_subject_name like concat('%', #{billingStatementDO.firstSubjectName}, '%') + AND( first_subject_name like concat('%', #{billingStatementDO.secondSubjectName}, '%') OR second_subject_name like concat('%', #{billingStatementDO.secondSubjectName}, '%') ) @@ -129,9 +138,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND account_expense_type = #{billingStatementDO.accountExpenseType} - - AND settlement_customers_code = #{billingStatementDO.settlementCustomersCode} - AND belong_module_code = #{billingStatementDO.belongModuleCode} @@ -151,6 +157,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND document_type like concat('%', #{billingStatementDO.documentType}, '%') + + AND document_type_code = #{billingStatementDO.documentTypeCode} + + + AND service_items_code = #{billingStatementDO.serviceItemsCode} + AND original_business_num like concat('%', #{billingStatementDO.originalBusinessNum}, '%') diff --git a/mhd_bms/src/main/resources/mapper/BusinessDocumentMapper.xml b/mhd_bms/src/main/resources/mapper/BusinessDocumentMapper.xml index e38a07668..9c6f2ffcc 100644 --- a/mhd_bms/src/main/resources/mapper/BusinessDocumentMapper.xml +++ b/mhd_bms/src/main/resources/mapper/BusinessDocumentMapper.xml @@ -181,6 +181,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND settlement_entity like concat('%', #{businessDocumentDO.settlementEntity}, '%') + + AND settlement_customers_code like concat('%', #{businessDocumentDO.settlementCustomersCode}, '%') + + + AND service_items_name like concat('%', #{businessDocumentDO.serviceItemsName}, '%') + + + AND service_items_code = #{businessDocumentDO.serviceItemsCode} + + + AND document_type_code = #{businessDocumentDO.documentTypeCode} + and business_document_id in diff --git a/mhd_bms/src/main/resources/mapper/SettlementCustomersMapper.xml b/mhd_bms/src/main/resources/mapper/SettlementCustomersMapper.xml index 88197191b..750523150 100644 --- a/mhd_bms/src/main/resources/mapper/SettlementCustomersMapper.xml +++ b/mhd_bms/src/main/resources/mapper/SettlementCustomersMapper.xml @@ -31,71 +31,86 @@ + + + + + + + + + + + - - select * from settlement_customers - - - - - - and create_by_name like concat('%', #{createByName}, '%') - - - and update_by_name like concat('%', #{updateByName}, '%') - - - and top_organization_id = #{topOrganizationId} - - - and organization_id = #{organizationId} - - - and organization_name like concat('%', #{organizationName}, '%') - - - and settlement_customers_code = #{settlementCustomersCode} - - - and settlement_entity_id = #{settlementEntityId} - - - and settlement_entity = #{settlementEntity} - - - and settlement_method = #{settlementMethod} - - - and settlement_method_code = #{settlementMethodCode} - - - and settlement_direction = #{settlementDirection} - - - and settlement_direction_code = #{settlementDirectionCode} - - - and bank_name like concat('%', #{bankName}, '%') - - - and bank_card_number = #{bankCardNumber} - - - and bank_binding_name like concat('%', #{bankBindingName}, '%') - - + + + and bd.business_flow like concat('%', #{settlementCustomersDO.businessFlow}, '%') + + + and bd.original_business_num like concat('%', #{settlementCustomersDO.originalBusinessNum}, '%') + + + and bd.service_items_name like concat('%', #{settlementCustomersDO.serviceItemsName}, '%') + + + and bd.first_subject_name like concat('%', #{settlementCustomersDO.firstSubjectName}, '%') + + + and bd.second_subject_name like concat('%', #{settlementCustomersDO.secondSubjectName}, '%') + + + and bd.business_state = #{settlementCustomersDO.businessState} + + + and bd.document_type like concat('%', #{settlementCustomersDO.documentType}, '%') + + + and bd.document_type_code = #{settlementCustomersDO.documentTypeCode} + + + + + ORDER BY create_time DESC + + diff --git a/mhd_oms/src/main/resources/mapper/businessDocumentCargoMulti/BusinessDocumentCargoMultiMapper.xml b/mhd_oms/src/main/resources/mapper/businessDocumentCargoMulti/BusinessDocumentCargoMultiMapper.xml index 56b88b1b0..dee932f53 100644 --- a/mhd_oms/src/main/resources/mapper/businessDocumentCargoMulti/BusinessDocumentCargoMultiMapper.xml +++ b/mhd_oms/src/main/resources/mapper/businessDocumentCargoMulti/BusinessDocumentCargoMultiMapper.xml @@ -22,6 +22,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -89,4 +92,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + \ No newline at end of file diff --git a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml index ff5421695..9fe12e12d 100644 --- a/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/businessDocumentOrder/BusinessDocumentOrderMapper.xml @@ -168,507 +168,537 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + + + + + + - select * from business_document_order +-- SELECT bdo.*, +-- NVL(tms_count.total, 0) AS tms_order_status_count +-- FROM business_document_order bdo +-- LEFT JOIN ( +-- SELECT child.MAIN_ORDER_NUM, COUNT(1) AS total +-- FROM business_document_order child +-- INNER JOIN NGWL_TEST_WLHY.TMS_ORDER t +-- ON t.EXECUTE_ORDER_NUMBER = child.goods_number +-- AND t.SPLICING_ORDER_TYPE = 2 +-- INNER JOIN NGWL_TEST_WLHY.TMS_TRANSPORT_NOTE tr +-- ON tr.ORDER_ID = t.ID +-- AND tr.WAYBILL_STATUS IN (8,9,10,11) +-- GROUP BY child.MAIN_ORDER_NUM +-- ) tms_count ON tms_count.MAIN_ORDER_NUM = bdo.goods_number + SELECT bdo.*, + NVL(tms_count.total, 0) AS tms_order_status_count + FROM business_document_order bdo + LEFT JOIN ( + SELECT child.MAIN_ORDER_NUM, COUNT(1) AS total + FROM business_document_order child + INNER JOIN NGWL_TEST_WLHY.TMS_ORDER t + ON t.EXECUTE_ORDER_NUMBER = child.goods_number + AND t.ORDER_STATUS IN (7, 8) + AND t.SPLICING_ORDER_TYPE =1 + GROUP BY child.MAIN_ORDER_NUM + ) tms_count ON tms_count.MAIN_ORDER_NUM = bdo.goods_number - - and ID = #{id} - - - - - - - - - and ORDER_SOURCE = #{orderSource} - - - AND IN_ORDER_NUMBER LIKE CONCAT('%', #{inOrderNumber}, '%') - + bdo.SPLICING_ORDER_TYPE in (0, 2, 4) + and bdo.del_flag=1 - - and CREATE_COMPANY_ID = #{createCompanyId} - - - and CREATE_TIME >= #{createStartTime} - - - and CREATE_TIME <= #{createEndTime} + 1 - 1/86400 - - - - - - - AND GOODS_NUMBER LIKE CONCAT('%', #{goodsNumber}, '%') + + and bdo.ID = #{id} + + + and bdo.ORDER_SOURCE = #{orderSource} + + + AND bdo.IN_ORDER_NUMBER LIKE CONCAT('%', #{inOrderNumber}, '%') - - and LOADING_AREA_ID = #{loadingAreaId} - - - and LOADING_NAME like concat('%', #{loadingName}, '%') - - - and LOADING_ADDRESS = #{loadingAddress} - - - and LOADING_LONGITUDE = #{loadingLongitude} - - - and LOADING_LATITUDE = #{loadingLatitude} - - - and LOADING_UNIT = #{loadingUnit} - - - and FREIGHTER_NAME like concat('%', #{freighterName}, '%') - - - and LOADING_PHONE = #{loadingPhone} - - - and LOADING_DATE = #{loadingDate} - - - and UNLOAD_AREA_ID = #{unloadAreaId} - - - and UNLOAD_NAME like concat('%', #{unloadName}, '%') - - - and UNLOAD_ADDRESS = #{unloadAddress} - - - and UNLOAD_LONGITUDE = #{unloadLongitude} - - - and UNLOAD_LATITUDE = #{unloadLatitude} - - - and DISCHARGER_NAME like concat('%', #{dischargerName}, '%') - - - and UNLOAD_PHONE = #{unloadPhone} - - - and UNLOADING_DATA = #{unloadingData} - - - and GOODS_TYPE_ID = #{goodsTypeId} - - - and GOODS_TYPE = #{goodsType} - - - and GOODS_NAME_ID = #{goodsNameId} - - - and GOODS_NAME like concat('%', #{goodsName}, '%') - - - and WEIGHT_MIN = #{weightMin} - - - and WEIGHT_MAX = #{weightMax} - - - and GOODS_UNTIS_ID = #{goodsUntisId} - - - and GOODS_UNTIS = #{goodsUntis} - - - and TRANSPORTATION_MODE_ID = #{transportationModeId} - - - and TRANSPORTATION_NAME like concat('%', #{transportationName}, '%') - - - and CAR_TYPE = #{carType} - - - and CAR_TYPE_NAME like concat('%', #{carTypeName}, '%') - - - and SERVICE_REQUIRE_ID = #{serviceRequireId} - - - and SERVICE_REQUIRE = #{serviceRequire} - - - and REMARKS = #{remarks} - - - and WAYBILL_FROM = #{waybillFrom} - - - and IS_SOURCE = #{isSource} - - - and SOURCE_CLOSE_TIME = #{sourceCloseTime} - - - and EXECUTOR_ID = #{executorId} - - - and IS_DELETE = #{isDelete} - - - and LINE_TITLE_LEFT = #{lineTitleLeft} - - - and LINE_TITLE_RIGHT = #{lineTitleRight} - - - and SYS_ORG_CODE = #{sysOrgCode} - - - and IS_COMMON = #{isCommon} - - - and GOODS_TYPE_MAJOR = #{goodsTypeMajor} - - - and AUDIT_STATUS = #{auditStatus} - - - and WAYBILL_MODE = #{waybillMode} - - - and LATEST_BIDDING_TIME = #{latestBiddingTime} - - - and DELIVERY_FREIGHT = #{deliveryFreight} - - - and COLLECTED_FREIGHT = #{collectedFreight} - - - and UNCOLLECTED_FREIGHT = #{uncollectedFreight} - - - and COLLECT_LESS_FREIGHT = #{collectLessFreight} - - - and AUDIT_BY = #{auditBy} - - - and AUDIT_TIME = #{auditTime} - - - and BUSINESS_TYPE = #{businessType} - - - and TRANSPORTATION_UNIT_PRICE = #{transportationUnitPrice} - - - and RADIO_VALUE = #{radioValue} - - - and CREATER_NAME like concat('%', #{createrName}, '%') - - - and CREATER_PHONE = #{createrPhone} - - - and IS_ELECTRIC_FENCE = #{isElectricFence} - - - and WXA_QRCODE = #{wxaQrcode} - - - and APPOINT_SHIPPER_ID = #{appointShipperId} - - - and CREATE_USER_ID = #{createUserId} - - - AND APPOINT_SHIPPER LIKE CONCAT('%', #{appointShipper}, '%') - - - and IS_STATUS = #{isStatus} - - - and SIGNATURE_ADDRESS = #{signatureAddress} - - - and QR_CODE_IMG_URL = #{qrCodeImgUrl} - - - and SHIPPING_NOTE = #{shippingNote} - - - and RECEIVABLE_TYPE = #{receivableType} - - - and THIRD_PARTY_ORDER_NUMBER = #{thirdPartyOrderNumber} - - - and DISPATCH_ORDER_NUMBER = #{dispatchOrderNumber} - - - and APPOINT_DRIVER_ENTERPRISE_ID = #{appointDriverEnterpriseId} - - - and APPOINT_DRIVER_ENTERPRISE = #{appointDriverEnterprise} - - - and CANCEL_ORDER_REMARK = #{cancelOrderRemark} - - - and ORDER_DRIVER_ID = #{orderDriverId} - - - and GOODS_QUANTITY = #{goodsQuantity} - - - and GOODS_QUANTITY_UNIT_ID = #{goodsQuantityUnitId} - - - and GOODS_QUANTITY_UNIT = #{goodsQuantityUnit} - - - and BIDDING_UNIT = #{biddingUnit} - - - and ORDER_STATUS = #{orderStatus} - - - and SPLICING_ORDER_TYPE = #{splicingOrderType} - - - and SPLICING_STATUS = #{splicingStatus} - - - and MAIN_ORDER_ID = #{mainOrderId} - - - and MAIN_ORDER_NUM = #{mainOrderNum} - - - and MERGE_ORDER_ID = #{mergeOrderId} - - - and MERGE_ORDER_NUM = #{mergeOrderNum} - - - and PAYER_TYPE = #{payerType} - - - and MACHINE_NUMBER = #{machineNumber} - - - and STOCK_FLAG = #{stockFlag} - - - and INFO_FEE = #{infoFee} - - - and INFO_FEE_PAYEE_TYPE = #{infoFeePayeeType} - - - and INFO_FEE_PAYEE = #{infoFeePayee} - - - and INFO_FEE_STATUS = #{infoFeeStatus} - - - and INFO_FEE_DOCUMENT_NUMBER = #{infoFeeDocumentNumber} - - - and ORDER_SHIPPING_TYPE = #{orderShippingType} - - - and RECIPIENT_ID = #{recipientId} - - - and RECIPIENT_NAME like concat('%', #{recipientName}, '%') - - - and SETTLEMENT_STATUS = #{settlementStatus} - - - and SETTLEMENT_TIME = #{settlementTime} - - - and PAYMENT_TIME = #{paymentTime} - - - and RECONCILIATION_INNER_NUMBER = #{reconciliationInnerNumber} - - - and RECEIVE_PAYMENT_NUMBER = #{receivePaymentNumber} - - - and INVOICE_ID = #{invoiceId} - - - and IS_INVOICE = #{isInvoice} - - - and VEHICLE_TYPE_ID = #{vehicleTypeId} - - - and VEHICLE_TYPE_NAME like concat('%', #{vehicleTypeName}, '%') - - - and CARRIER = #{carrier} - - - and CARRIER_NAME like concat('%', #{carrierName}, '%') - - - and SZWL_USER_ID = #{szwlUserId} - - - and FREIGHT_UNIT_PRICE = #{freightUnitPrice} - - - and BIDDING_STATUS = #{biddingStatus} - - - and BIDDING_REMARKS = #{biddingRemarks} - - - and CARGO_INSURANCE_AMOUNT = #{cargoInsuranceAmount} - - - and DESTINATION = #{destination} - - - and FREIGHT_CHARGES = #{freightCharges} - - - and PAYER = #{payer} - - - and SALESMAN_ID = #{salesmanId} - - - and IS_DECLARE = #{isDeclare} - - - and ROUTE = #{route} - - - and CONTAINER_TYPE = #{containerType} - - - and CONTAINER_TYPE_NAME like concat('%', #{containerTypeName}, '%') - - - and CARD_TYPE = #{cardType} - - - and CARD_TYPE_NAME like concat('%', #{cardTypeName}, '%') - - - and EXTERNAL_CONTAINER_NO = #{externalContainerNo} - - - and TRANSIT_PLACE = #{transitPlace} - - - and SHIPPER = #{shipper} - - - and CUSTOMS_SHIPPER = #{customsShipper} - - - and CUSTOMS_SHIPPER_TEL = #{customsShipperTel} - - - and UNLOADING_COMPANY = #{unloadingCompany} - - - and CONTRACT_NO = #{contractNo} - - - and FREIGHT_FEE = #{freightFee} - - - and UNLOADING_FEE = #{unloadingFee} - - - and CUSTOMS_FEE = #{customsFee} - - - and SHORTAGE_FEE = #{shortageFee} - - - and MISCELLANEOUS_FEE = #{miscellaneousFee} - - - and OTHER_FEE = #{otherFee} - - - and DETENTION_FEE = #{detentionFee} - - - and TAX_RATE = #{taxRate} - - - and SETTLEMENT_CURRENCY = #{settlementCurrency} - - - and VOLUME = #{volume} - - - and DETAIL_CONTENT = #{detailContent} - - - and CUSTOMS_ROUTE = #{customsRoute} - - - and CUSTOMS_PORT = #{customsPort} - - - and CUSTOMS_CONTACT = #{customsContact} - - - and CUSTOMS_CONTACT_PHONE = #{customsContactPhone} - - - and CUSTOMS_REMARK = #{customsRemark} - - - and ORG_ID = #{orgId} - - - and GOODS_CATEGORY = #{goodsCategory} - - - - - - - - - - - - - - - - - - and ORGANIZATION_ID = #{organizationId} - - - - - - and DOCUMENT_DATE = #{documentDate} - + + and bdo.CREATE_COMPANY_ID = #{createCompanyId} + + + and bdo.CREATE_TIME >= #{createStartTime} + + + and bdo.CREATE_TIME <= #{createEndTime} + 1 - 1/86400 + + + + AND bdo.GOODS_NUMBER LIKE CONCAT('%', #{goodsNumber}, '%') + + + and bdo.LOADING_AREA_ID = #{loadingAreaId} + + + and bdo.LOADING_NAME like concat('%', #{loadingName}, '%') + + + and bdo.LOADING_ADDRESS = #{loadingAddress} + + + and bdo.LOADING_LONGITUDE = #{loadingLongitude} + + + and bdo.LOADING_LATITUDE = #{loadingLatitude} + + + and bdo.LOADING_UNIT = #{loadingUnit} + + + and bdo.FREIGHTER_NAME like concat('%', #{freighterName}, '%') + + + and bdo.LOADING_PHONE = #{loadingPhone} + + + and bdo.LOADING_DATE = #{loadingDate} + + + and bdo.UNLOAD_AREA_ID = #{unloadAreaId} + + + and bdo.UNLOAD_NAME like concat('%', #{unloadName}, '%') + + + and bdo.UNLOAD_ADDRESS = #{unloadAddress} + + + and bdo.UNLOAD_LONGITUDE = #{unloadLongitude} + + + and bdo.UNLOAD_LATITUDE = #{unloadLatitude} + + + and bdo.DISCHARGER_NAME like concat('%', #{dischargerName}, '%') + + + and bdo.UNLOAD_PHONE = #{unloadPhone} + + + and bdo.UNLOADING_DATA = #{unloadingData} + + + and bdo.GOODS_TYPE_ID = #{goodsTypeId} + + + and bdo.GOODS_TYPE = #{goodsType} + + + and bdo.GOODS_NAME_ID = #{goodsNameId} + + + and bdo.GOODS_NAME like concat('%', #{goodsName}, '%') + + + and bdo.WEIGHT_MIN = #{weightMin} + + + and bdo.WEIGHT_MAX = #{weightMax} + + + and bdo.GOODS_UNTIS_ID = #{goodsUntisId} + + + and bdo.GOODS_UNTIS = #{goodsUntis} + + + and bdo.TRANSPORTATION_MODE_ID = #{transportationModeId} + + + and bdo.TRANSPORTATION_NAME like concat('%', #{transportationName}, '%') + + + and bdo.CAR_TYPE = #{carType} + + + and bdo.CAR_TYPE_NAME like concat('%', #{carTypeName}, '%') + + + and bdo.SERVICE_REQUIRE_ID = #{serviceRequireId} + + + and bdo.SERVICE_REQUIRE = #{serviceRequire} + + + and bdo.REMARKS = #{remarks} + + + and bdo.WAYBILL_FROM = #{waybillFrom} + + + and bdo.IS_SOURCE = #{isSource} + + + and bdo.SOURCE_CLOSE_TIME = #{sourceCloseTime} + + + and bdo.EXECUTOR_ID = #{executorId} + + + and bdo.IS_DELETE = #{isDelete} + + + and bdo.LINE_TITLE_LEFT = #{lineTitleLeft} + + + and bdo.LINE_TITLE_RIGHT = #{lineTitleRight} + + + and bdo.SYS_ORG_CODE = #{sysOrgCode} + + + and bdo.IS_COMMON = #{isCommon} + + + and bdo.GOODS_TYPE_MAJOR = #{goodsTypeMajor} + + + and bdo.AUDIT_STATUS = #{auditStatus} + + + and bdo.WAYBILL_MODE = #{waybillMode} + + + and bdo.LATEST_BIDDING_TIME = #{latestBiddingTime} + + + and bdo.DELIVERY_FREIGHT = #{deliveryFreight} + + + and bdo.COLLECTED_FREIGHT = #{collectedFreight} + + + and bdo.UNCOLLECTED_FREIGHT = #{uncollectedFreight} + + + and bdo.COLLECT_LESS_FREIGHT = #{collectLessFreight} + + + and bdo.AUDIT_BY = #{auditBy} + + + and bdo.AUDIT_TIME = #{auditTime} + + + and bdo.BUSINESS_TYPE = #{businessType} + + + and bdo.TRANSPORTATION_UNIT_PRICE = #{transportationUnitPrice} + + + and bdo.RADIO_VALUE = #{radioValue} + + + and bdo.CREATER_NAME like concat('%', #{createrName}, '%') + + + and bdo.CREATER_PHONE = #{createrPhone} + + + and bdo.IS_ELECTRIC_FENCE = #{isElectricFence} + + + and bdo.WXA_QRCODE = #{wxaQrcode} + + + and bdo.APPOINT_SHIPPER_ID = #{appointShipperId} + + + and bdo.CREATE_USER_ID = #{createUserId} + + + AND bdo.APPOINT_SHIPPER LIKE CONCAT('%', #{appointShipper}, '%') + + + and bdo.IS_STATUS = #{isStatus} + + + and bdo.SIGNATURE_ADDRESS = #{signatureAddress} + + + and bdo.QR_CODE_IMG_URL = #{qrCodeImgUrl} + + + and bdo.SHIPPING_NOTE = #{shippingNote} + + + and bdo.RECEIVABLE_TYPE = #{receivableType} + + + and bdo.THIRD_PARTY_ORDER_NUMBER = #{thirdPartyOrderNumber} + + + and bdo.DISPATCH_ORDER_NUMBER = #{dispatchOrderNumber} + + + and bdo.APPOINT_DRIVER_ENTERPRISE_ID = #{appointDriverEnterpriseId} + + + and bdo.APPOINT_DRIVER_ENTERPRISE = #{appointDriverEnterprise} + + + and bdo.CANCEL_ORDER_REMARK = #{cancelOrderRemark} + + + and bdo.ORDER_DRIVER_ID = #{orderDriverId} + + + and bdo.GOODS_QUANTITY = #{goodsQuantity} + + + and bdo.GOODS_QUANTITY_UNIT_ID = #{goodsQuantityUnitId} + + + and bdo.GOODS_QUANTITY_UNIT = #{goodsQuantityUnit} + + + and bdo.BIDDING_UNIT = #{biddingUnit} + + + and bdo.ORDER_STATUS = #{orderStatus} + + + and bdo.SPLICING_ORDER_TYPE = #{splicingOrderType} + + + and bdo.SPLICING_STATUS = #{splicingStatus} + + + and bdo.MAIN_ORDER_ID = #{mainOrderId} + + + and bdo.MAIN_ORDER_NUM = #{mainOrderNum} + + + and bdo.MERGE_ORDER_ID = #{mergeOrderId} + + + and bdo.MERGE_ORDER_NUM = #{mergeOrderNum} + + + and bdo.PAYER_TYPE = #{payerType} + + + and bdo.MACHINE_NUMBER = #{machineNumber} + + + and bdo.STOCK_FLAG = #{stockFlag} + + + and bdo.INFO_FEE = #{infoFee} + + + and bdo.INFO_FEE_PAYEE_TYPE = #{infoFeePayeeType} + + + and bdo.INFO_FEE_PAYEE = #{infoFeePayee} + + + and bdo.INFO_FEE_STATUS = #{infoFeeStatus} + + + and bdo.INFO_FEE_DOCUMENT_NUMBER = #{infoFeeDocumentNumber} + + + and bdo.ORDER_SHIPPING_TYPE = #{orderShippingType} + + + and bdo.RECIPIENT_ID = #{recipientId} + + + and bdo.RECIPIENT_NAME like concat('%', #{recipientName}, '%') + + + and bdo.SETTLEMENT_STATUS = #{settlementStatus} + + + and bdo.SETTLEMENT_TIME = #{settlementTime} + + + and bdo.PAYMENT_TIME = #{paymentTime} + + + and bdo.RECONCILIATION_INNER_NUMBER = #{reconciliationInnerNumber} + + + and bdo.RECEIVE_PAYMENT_NUMBER = #{receivePaymentNumber} + + + and bdo.INVOICE_ID = #{invoiceId} + + + and bdo.IS_INVOICE = #{isInvoice} + + + and bdo.VEHICLE_TYPE_ID = #{vehicleTypeId} + + + and bdo.VEHICLE_TYPE_NAME like concat('%', #{vehicleTypeName}, '%') + + + and bdo.CARRIER = #{carrier} + + + and bdo.CARRIER_NAME like concat('%', #{carrierName}, '%') + + + and bdo.SZWL_USER_ID = #{szwlUserId} + + + and bdo.FREIGHT_UNIT_PRICE = #{freightUnitPrice} + + + and bdo.BIDDING_STATUS = #{biddingStatus} + + + and bdo.BIDDING_REMARKS = #{biddingRemarks} + + + and bdo.CARGO_INSURANCE_AMOUNT = #{cargoInsuranceAmount} + + + and bdo.DESTINATION = #{destination} + + + and bdo.FREIGHT_CHARGES = #{freightCharges} + + + and bdo.PAYER = #{payer} + + + and bdo.SALESMAN_ID = #{salesmanId} + + + and bdo.IS_DECLARE = #{isDeclare} + + + and bdo.ROUTE = #{route} + + + and bdo.CONTAINER_TYPE = #{containerType} + + + and bdo.CONTAINER_TYPE_NAME like concat('%', #{containerTypeName}, '%') + + + and bdo.CARD_TYPE = #{cardType} + + + and bdo.CARD_TYPE_NAME like concat('%', #{cardTypeName}, '%') + + + and bdo.EXTERNAL_CONTAINER_NO = #{externalContainerNo} + + + and bdo.TRANSIT_PLACE = #{transitPlace} + + + and bdo.SHIPPER = #{shipper} + + + and bdo.CUSTOMS_SHIPPER = #{customsShipper} + + + and bdo.CUSTOMS_SHIPPER_TEL = #{customsShipperTel} + + + and bdo.UNLOADING_COMPANY = #{unloadingCompany} + + + and bdo.CONTRACT_NO = #{contractNo} + + + and bdo.FREIGHT_FEE = #{freightFee} + + + and bdo.UNLOADING_FEE = #{unloadingFee} + + + and bdo.CUSTOMS_FEE = #{customsFee} + + + and bdo.SHORTAGE_FEE = #{shortageFee} + + + and bdo.MISCELLANEOUS_FEE = #{miscellaneousFee} + + + and bdo.OTHER_FEE = #{otherFee} + + + and bdo.DETENTION_FEE = #{detentionFee} + + + and bdo.TAX_RATE = #{taxRate} + + + and bdo.SETTLEMENT_CURRENCY = #{settlementCurrency} + + + and bdo.VOLUME = #{volume} + + + and bdo.DETAIL_CONTENT = #{detailContent} + + + and bdo.CUSTOMS_ROUTE = #{customsRoute} + + + and bdo.CUSTOMS_PORT = #{customsPort} + + + and bdo.CUSTOMS_CONTACT = #{customsContact} + + + and bdo.CUSTOMS_CONTACT_PHONE = #{customsContactPhone} + + + and bdo.CUSTOMS_REMARK = #{customsRemark} + + + and bdo.ORG_ID = #{orgId} + + + and bdo.GOODS_CATEGORY = #{goodsCategory} + + + and bdo.ORGANIZATION_ID = #{organizationId} + + + + and bdo.DOCUMENT_DATE = #{documentDate} + + + and bdo.DOCUMENT_DATE =]]> #{documentDateStart} + + + and bdo.DOCUMENT_DATE #{documentDateEnd} + + + and bdo.PUSH_TIME =]]> #{pushTimeStart} + + + and bdo.PUSH_TIME #{pushTimeEnd} + + + and bdo.IE_TYPE = #{ieType} + @@ -681,4 +711,549 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select DOCUMENT_PREPARER_NC_code from NGWL_TEST_USER."USER" where USER_ID = #{salesmanCodeNc} + + + + + + + + + + + and o.ID = #{id} + + + + + + + + + and ORDER_SOURCE = #{orderSource} + + + AND IN_ORDER_NUMBER LIKE CONCAT('%', #{inOrderNumber}, '%') + + + + and CREATE_COMPANY_ID = #{createCompanyId} + + + and CREATE_TIME >= #{createStartTime} + + + and CREATE_TIME <= #{createEndTime} + 1 - 1/86400 + + + + + + + AND GOODS_NUMBER LIKE CONCAT('%', #{goodsNumber}, '%') + + + and LOADING_AREA_ID = #{loadingAreaId} + + + and LOADING_NAME like concat('%', #{loadingName}, '%') + + + and LOADING_ADDRESS = #{loadingAddress} + + + and LOADING_LONGITUDE = #{loadingLongitude} + + + and LOADING_LATITUDE = #{loadingLatitude} + + + and LOADING_UNIT = #{loadingUnit} + + + and FREIGHTER_NAME like concat('%', #{freighterName}, '%') + + + and LOADING_PHONE = #{loadingPhone} + + + and LOADING_DATE = #{loadingDate} + + + and UNLOAD_AREA_ID = #{unloadAreaId} + + + and UNLOAD_NAME like concat('%', #{unloadName}, '%') + + + and UNLOAD_ADDRESS = #{unloadAddress} + + + and UNLOAD_LONGITUDE = #{unloadLongitude} + + + and UNLOAD_LATITUDE = #{unloadLatitude} + + + and DISCHARGER_NAME like concat('%', #{dischargerName}, '%') + + + and UNLOAD_PHONE = #{unloadPhone} + + + and UNLOADING_DATA = #{unloadingData} + + + and GOODS_TYPE_ID = #{goodsTypeId} + + + and GOODS_TYPE = #{goodsType} + + + and GOODS_NAME_ID = #{goodsNameId} + + + and GOODS_NAME like concat('%', #{goodsName}, '%') + + + and WEIGHT_MIN = #{weightMin} + + + and WEIGHT_MAX = #{weightMax} + + + and GOODS_UNTIS_ID = #{goodsUntisId} + + + and GOODS_UNTIS = #{goodsUntis} + + + and TRANSPORTATION_MODE_ID = #{transportationModeId} + + + and TRANSPORTATION_NAME like concat('%', #{transportationName}, '%') + + + and CAR_TYPE = #{carType} + + + and CAR_TYPE_NAME like concat('%', #{carTypeName}, '%') + + + and SERVICE_REQUIRE_ID = #{serviceRequireId} + + + and SERVICE_REQUIRE = #{serviceRequire} + + + and REMARKS = #{remarks} + + + and WAYBILL_FROM = #{waybillFrom} + + + and IS_SOURCE = #{isSource} + + + and SOURCE_CLOSE_TIME = #{sourceCloseTime} + + + and EXECUTOR_ID = #{executorId} + + + and IS_DELETE = #{isDelete} + + + and LINE_TITLE_LEFT = #{lineTitleLeft} + + + and LINE_TITLE_RIGHT = #{lineTitleRight} + + + and SYS_ORG_CODE = #{sysOrgCode} + + + and IS_COMMON = #{isCommon} + + + and GOODS_TYPE_MAJOR = #{goodsTypeMajor} + + + and AUDIT_STATUS = #{auditStatus} + + + and WAYBILL_MODE = #{waybillMode} + + + and LATEST_BIDDING_TIME = #{latestBiddingTime} + + + and DELIVERY_FREIGHT = #{deliveryFreight} + + + and COLLECTED_FREIGHT = #{collectedFreight} + + + and UNCOLLECTED_FREIGHT = #{uncollectedFreight} + + + and COLLECT_LESS_FREIGHT = #{collectLessFreight} + + + and AUDIT_BY = #{auditBy} + + + and AUDIT_TIME = #{auditTime} + + + and BUSINESS_TYPE = #{businessType} + + + and TRANSPORTATION_UNIT_PRICE = #{transportationUnitPrice} + + + and RADIO_VALUE = #{radioValue} + + + and CREATER_NAME like concat('%', #{createrName}, '%') + + + and CREATER_PHONE = #{createrPhone} + + + and IS_ELECTRIC_FENCE = #{isElectricFence} + + + and WXA_QRCODE = #{wxaQrcode} + + + and APPOINT_SHIPPER_ID = #{appointShipperId} + + + and CREATE_USER_ID = #{createUserId} + + + AND APPOINT_SHIPPER LIKE CONCAT('%', #{appointShipper}, '%') + + + and IS_STATUS = #{isStatus} + + + and SIGNATURE_ADDRESS = #{signatureAddress} + + + and QR_CODE_IMG_URL = #{qrCodeImgUrl} + + + and SHIPPING_NOTE = #{shippingNote} + + + and RECEIVABLE_TYPE = #{receivableType} + + + and THIRD_PARTY_ORDER_NUMBER = #{thirdPartyOrderNumber} + + + and DISPATCH_ORDER_NUMBER = #{dispatchOrderNumber} + + + and APPOINT_DRIVER_ENTERPRISE_ID = #{appointDriverEnterpriseId} + + + and APPOINT_DRIVER_ENTERPRISE = #{appointDriverEnterprise} + + + and CANCEL_ORDER_REMARK = #{cancelOrderRemark} + + + and ORDER_DRIVER_ID = #{orderDriverId} + + + and GOODS_QUANTITY = #{goodsQuantity} + + + and GOODS_QUANTITY_UNIT_ID = #{goodsQuantityUnitId} + + + and GOODS_QUANTITY_UNIT = #{goodsQuantityUnit} + + + and BIDDING_UNIT = #{biddingUnit} + + + and ORDER_STATUS = #{orderStatus} + + + and SPLICING_ORDER_TYPE = #{splicingOrderType} + + + and SPLICING_STATUS = #{splicingStatus} + + + and MAIN_ORDER_ID = #{mainOrderId} + + + and MAIN_ORDER_NUM = #{mainOrderNum} + + + and MERGE_ORDER_ID = #{mergeOrderId} + + + and MERGE_ORDER_NUM = #{mergeOrderNum} + + + and PAYER_TYPE = #{payerType} + + + and MACHINE_NUMBER = #{machineNumber} + + + and STOCK_FLAG = #{stockFlag} + + + and INFO_FEE = #{infoFee} + + + and INFO_FEE_PAYEE_TYPE = #{infoFeePayeeType} + + + and INFO_FEE_PAYEE = #{infoFeePayee} + + + and INFO_FEE_STATUS = #{infoFeeStatus} + + + and INFO_FEE_DOCUMENT_NUMBER = #{infoFeeDocumentNumber} + + + and ORDER_SHIPPING_TYPE = #{orderShippingType} + + + and RECIPIENT_ID = #{recipientId} + + + and RECIPIENT_NAME like concat('%', #{recipientName}, '%') + + + and SETTLEMENT_STATUS = #{settlementStatus} + + + and SETTLEMENT_TIME = #{settlementTime} + + + and PAYMENT_TIME = #{paymentTime} + + + and RECONCILIATION_INNER_NUMBER = #{reconciliationInnerNumber} + + + and RECEIVE_PAYMENT_NUMBER = #{receivePaymentNumber} + + + and INVOICE_ID = #{invoiceId} + + + and IS_INVOICE = #{isInvoice} + + + and VEHICLE_TYPE_ID = #{vehicleTypeId} + + + and VEHICLE_TYPE_NAME like concat('%', #{vehicleTypeName}, '%') + + + and CARRIER = #{carrier} + + + and CARRIER_NAME like concat('%', #{carrierName}, '%') + + + and SZWL_USER_ID = #{szwlUserId} + + + and FREIGHT_UNIT_PRICE = #{freightUnitPrice} + + + and BIDDING_STATUS = #{biddingStatus} + + + and BIDDING_REMARKS = #{biddingRemarks} + + + and CARGO_INSURANCE_AMOUNT = #{cargoInsuranceAmount} + + + and DESTINATION = #{destination} + + + and FREIGHT_CHARGES = #{freightCharges} + + + and PAYER = #{payer} + + + and SALESMAN_ID = #{salesmanId} + + + and IS_DECLARE = #{isDeclare} + + + and ROUTE = #{route} + + + and CONTAINER_TYPE = #{containerType} + + + and CONTAINER_TYPE_NAME like concat('%', #{containerTypeName}, '%') + + + and CARD_TYPE = #{cardType} + + + and CARD_TYPE_NAME like concat('%', #{cardTypeName}, '%') + + + and EXTERNAL_CONTAINER_NO = #{externalContainerNo} + + + and TRANSIT_PLACE = #{transitPlace} + + + and SHIPPER = #{shipper} + + + and CUSTOMS_SHIPPER = #{customsShipper} + + + and CUSTOMS_SHIPPER_TEL = #{customsShipperTel} + + + and UNLOADING_COMPANY = #{unloadingCompany} + + + and CONTRACT_NO = #{contractNo} + + + and FREIGHT_FEE = #{freightFee} + + + and UNLOADING_FEE = #{unloadingFee} + + + and CUSTOMS_FEE = #{customsFee} + + + and SHORTAGE_FEE = #{shortageFee} + + + and MISCELLANEOUS_FEE = #{miscellaneousFee} + + + and OTHER_FEE = #{otherFee} + + + and DETENTION_FEE = #{detentionFee} + + + and TAX_RATE = #{taxRate} + + + and SETTLEMENT_CURRENCY = #{settlementCurrency} + + + and VOLUME = #{volume} + + + and DETAIL_CONTENT = #{detailContent} + + + and CUSTOMS_ROUTE = #{customsRoute} + + + and CUSTOMS_PORT = #{customsPort} + + + and CUSTOMS_CONTACT = #{customsContact} + + + and CUSTOMS_CONTACT_PHONE = #{customsContactPhone} + + + and CUSTOMS_REMARK = #{customsRemark} + + + and ORG_ID = #{orgId} + + + and GOODS_CATEGORY = #{goodsCategory} + + + + + + + + + + + + + + + + + + and o.ORGANIZATION_ID = #{organizationId} + + + + + + + and PUSH_STATUS = #{pushStatus} + + + and DOCUMENT_DATE = #{documentDate} + + + and DOCUMENT_DATE =]]> #{documentDateStart} + + + and DOCUMENT_DATE #{documentDateEnd} + + + and PUSH_TIME =]]> #{pushTimeStart} + + + and PUSH_TIME #{pushTimeEnd} + + + and IE_TYPE = #{ieType} + + + and REVISE_APPLY_TYPE = #{reviseApplyType} + + + + diff --git a/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml b/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml new file mode 100644 index 000000000..e56558ea3 --- /dev/null +++ b/mhd_oms/src/main/resources/mapper/erpCountry/ErpCountryMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + UPDATE ERP_COUNTRY SET DEL_FLAG = 0 WHERE ID IN + + #{id} + + + + \ No newline at end of file diff --git a/mhd_oms/src/main/resources/mapper/erpEnterpriseUnit/ErpEnterpriseUnitMapper.xml b/mhd_oms/src/main/resources/mapper/erpEnterpriseUnit/ErpEnterpriseUnitMapper.xml new file mode 100644 index 000000000..182ccb7c2 --- /dev/null +++ b/mhd_oms/src/main/resources/mapper/erpEnterpriseUnit/ErpEnterpriseUnitMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + UPDATE erp_enterprise_unit set del_flag = 0 where id IN + + #{id} + + + + \ No newline at end of file diff --git a/mhd_oms/src/main/resources/mapper/executeOrder/ExecuteOrderMapper.xml b/mhd_oms/src/main/resources/mapper/executeOrder/ExecuteOrderMapper.xml index 7f3759e00..44603eeb8 100644 --- a/mhd_oms/src/main/resources/mapper/executeOrder/ExecuteOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/executeOrder/ExecuteOrderMapper.xml @@ -25,80 +25,83 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select * from execute_order + SELECT + eo.*, + bdo.main_order_num, + bdo.RECIPIENT_NAME + FROM + execute_order eo + LEFT JOIN + BUSINESS_DOCUMENT_ORDER bdo + ON + eo.BUSINESS_DOCUMENT_NUMBER = bdo.goods_number - - - - - - - - - - - - - - - - - - - - - - - - - - - - and CREATE_TIME >= #{createStartTime} + and eo.CREATE_TIME >= #{createStartTime} + + + and eo.INVOICE_Status = #{invoiceStatus} - and CREATE_TIME <= #{createEndTime} + 1 - 1/86400 + and eo.CREATE_TIME <= #{createEndTime} + 1 - 1/86400 - and ISSUE_TIME >= #{issueStartTime} + and eo.ISSUE_TIME >= #{issueStartTime} - and ISSUE_TIME <= #{issueEndTime} + 1 - 1/86400 + and eo.ISSUE_TIME <= #{issueEndTime} + 1 - 1/86400 - - and GOODS_NUMBER like concat('%', #{goodsNumber}, '%') - - - and BUSINESS_UNIT like concat('%', #{businessUnit}, '%') + + and eo.GOODS_NUMBER like concat('%', #{goodsNumber}, '%') - - and ORG_NAME like concat('%', #{orgName}, '%') - - - and ORGANIZATION_ID = #{organizationId} - - - and BUSINESS_DOCUMENT_ID = #{businessDocumentId} - - - and BUSINESS_DOCUMENT_NUMBER like concat('%', #{businessDocumentNumber}, '%') - - - and appoint_shipper like concat('%', #{appointShipper}, '%') + + and eo.INVOICE_DATE >= #{invoiceStartTime,jdbcType=DATE} - - and order_status = #{orderStatus} + + and eo.INVOICE_DATE DATEADD(DAY, 1, #{invoiceEndTime,jdbcType=DATE}) - - and ORGANIZATION_NAME like concat('%', #{organizationName}, '%') - - - and TOP_ORGANIZATION_ID = #{topOrganizationId} - + + + + + + + + + + and eo.BUSINESS_UNIT like concat('%', #{businessUnit}, '%') + + + and eo.ORG_NAME like concat('%', #{orgName}, '%') + + + and eo.ORGANIZATION_ID = #{organizationId} + + + and eo.BUSINESS_DOCUMENT_ID = #{businessDocumentId} + + + + + and ( + eo.BUSINESS_DOCUMENT_NUMBER like concat('%', #{businessDocumentNumber}, '%') + or bdo.main_order_num like concat('%', #{businessDocumentNumber}, '%') + ) + + + + and eo.appoint_shipper like concat('%', #{appointShipper}, '%') + + + and eo.order_status = #{orderStatus} + + + and eo.ORGANIZATION_NAME like concat('%', #{organizationName}, '%') + + diff --git a/mhd_oms/src/main/resources/mapper/gwLog/GwLogMapper.xml b/mhd_oms/src/main/resources/mapper/gwLog/GwLogMapper.xml new file mode 100644 index 000000000..adbd43daa --- /dev/null +++ b/mhd_oms/src/main/resources/mapper/gwLog/GwLogMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + \ No newline at end of file diff --git a/mhd_oms/src/main/resources/mapper/reservationDeliveryDetailsLink/ReservationDeliveryDetailsLinkMapper.xml b/mhd_oms/src/main/resources/mapper/reservationDeliveryDetailsLink/ReservationDeliveryDetailsLinkMapper.xml new file mode 100644 index 000000000..8062fbe24 --- /dev/null +++ b/mhd_oms/src/main/resources/mapper/reservationDeliveryDetailsLink/ReservationDeliveryDetailsLinkMapper.xml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + select id, create_by, create_time, update_by, update_time, del_flag, order_id, category, invoice_number, customer_number, delivery_name, box, bag, amount from RESERVATION_DELIVERY_DETAILS_LINK + + + + + + and order_id = #{orderId} + + + and category = #{category} + + + and invoice_number = #{invoiceNumber} + + + and customer_number = #{customerNumber} + + + and delivery_name like concat('%', #{deliveryName}, '%') + + + and box = #{box} + + + and bag = #{bag} + + + and amount = #{amount} + + + + + + + + update NGWL_TEST_WMS.DELIVERY_DETAILS_LINK set RETURN_ORDER_NUMBER = #{returnOrderNumber} where ORDER_NUMBER = #{ordernumber} + + \ No newline at end of file diff --git a/mhd_oms/src/main/resources/mapper/reservationInMaterialDetail/ReservationInMaterialDetailMapper.xml b/mhd_oms/src/main/resources/mapper/reservationInMaterialDetail/ReservationInMaterialDetailMapper.xml index f426b26dc..e0d3c3956 100644 --- a/mhd_oms/src/main/resources/mapper/reservationInMaterialDetail/ReservationInMaterialDetailMapper.xml +++ b/mhd_oms/src/main/resources/mapper/reservationInMaterialDetail/ReservationInMaterialDetailMapper.xml @@ -88,6 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -101,7 +102,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.lot_no , a.material_detail_id, a.organization_id, a.organization_name, a.top_organization_id, a.unique_id, a.in_order_number, a.material_base_info_id, a.material_code, a.material_name, a.bar_code, a.quantity, a.receipt_quantity, a.shelves_quantity, - a.receipt_status, a.shelves_status, a.pack_id, a.pack_code, a.pack_name, + a.receipt_status, a.shelves_status, a.pack_id, a.pack_code, a.pack_name,a.drink_date, CASE WHEN a.pack_detail_id IS NULL OR TRIM(a.pack_detail_id) = '' THEN NULL ELSE CAST(a.pack_detail_id AS BIGINT) diff --git a/mhd_oms/src/main/resources/mapper/reservationInventoryAdjustmentRecord/InventoryAdjustmentRecordMapper.xml b/mhd_oms/src/main/resources/mapper/reservationInventoryAdjustmentRecord/InventoryAdjustmentRecordMapper.xml index 6dec04c8d..1e4cecbe1 100644 --- a/mhd_oms/src/main/resources/mapper/reservationInventoryAdjustmentRecord/InventoryAdjustmentRecordMapper.xml +++ b/mhd_oms/src/main/resources/mapper/reservationInventoryAdjustmentRecord/InventoryAdjustmentRecordMapper.xml @@ -81,8 +81,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" b.ext_attr_1, b.ext_attr_2, b.ext_attr_3, b.ext_attr_4, b.production_date, b.expiry_date, b.inventory_date, b.batch_ref_no, b.sheet_ref_no, b.box_pallet_no,a.ADJUST_ACTION,a.RELATE_NO, - a.in_order_number,a.lot_number,b.batch_number - from inventory_adjustment_record a left join material_inventory b on a.material_inventory_id = b.material_inventory_id + b.in_order_number,b.lot_number,b.batch_number + from reservation_inventory_adjustment_record a left join reservation_material_inventory b on a.material_inventory_id = b.material_inventory_id where a.del_flag = 1 @@ -117,6 +117,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.bar_code = #{barCode} + + and b.batch_number = #{batchNumber} + + + and b.lot_number = #{lotCode} + and a.shipper_id = #{shipperId} @@ -189,6 +195,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.create_by_name like concat('%', #{createByName}, '%') + + AND TO_CHAR(b.expiry_date, 'yyyy-MM-dd') = #{expiryDate} + + + AND TO_CHAR(b.production_date, 'yyyy-MM-dd') = #{productionDate} + and a.update_by_name like concat('%', #{updateByName}, '%') diff --git a/mhd_oms/src/main/resources/mapper/reservationMaterialInventory/MaterialInventoryMapper.xml b/mhd_oms/src/main/resources/mapper/reservationMaterialInventory/MaterialInventoryMapper.xml index 5118ae68b..62803f7e7 100644 --- a/mhd_oms/src/main/resources/mapper/reservationMaterialInventory/MaterialInventoryMapper.xml +++ b/mhd_oms/src/main/resources/mapper/reservationMaterialInventory/MaterialInventoryMapper.xml @@ -157,6 +157,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.material_inventory_id = #{materialInventoryId} + + and date_format(a.create_time,'%Y-%m-%d') >= #{createTimeStart} + + + and date_format(a.create_time,'%Y-%m-%d') <= #{createTimeEnd} + and a.organization_id = #{organizationId} @@ -234,10 +240,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.container_type_name like concat('%', #{containerTypeName}, '%') - - and a.inventory_quantity = #{inventoryQuantity} - and a.inventory_quantity != 0 - + and a.allocation_quantity = #{allocationQuantity} @@ -267,6 +270,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.BOX_PALLET_NO like concat('%', #{boxPalletNo}, '%') + + AND TO_CHAR(a.expiry_date, 'yyyy-MM-dd') = #{expiryDateStr} + + + AND TO_CHAR(a.production_date, 'yyyy-MM-dd') = #{productionDateStr} + + select MATERIAL_INVENTORY_ID from "NGWL_TEST_WMS".OUT_MATERIAL_DETAIL where lot_no = #{lotNo} + + + + + + \ No newline at end of file diff --git a/mhd_oms/src/main/resources/mapper/reservationStockInOrder/ReservationStockInOrderMapper.xml b/mhd_oms/src/main/resources/mapper/reservationStockInOrder/ReservationStockInOrderMapper.xml index aec6f074a..ad985ac22 100644 --- a/mhd_oms/src/main/resources/mapper/reservationStockInOrder/ReservationStockInOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/reservationStockInOrder/ReservationStockInOrderMapper.xml @@ -93,6 +93,13 @@ + + + + + + + @@ -100,7 +107,7 @@ a.in_order_id, a.organization_id, a.organization_name, a.top_organization_id, a.notice_number, a.in_order_number, a.status, a.audit_status, a.audit_remark, a.audit_by, a.audit_by_name, a.audit_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, a.shipper_code, a.shipper_name, a.order_type_code, a.order_type_name, a.supplier_id, a.supplier_code, a.supplier_name, a.expect_time, a.supply_chain_number, - a.priority_level_code, a.priority_level_name, a.direct_warehouse, a.annex_url, a.material_quantity, a.quantity,a.business_order_no, + a.priority_level_code, a.priority_level_name, a.direct_warehouse, a.annex_url, a.material_quantity, a.quantity,a.business_order_no,a.amount, -- 计划入库数量:入库明细表 in_material_detail 的 quantity 汇总 @@ -120,15 +127,16 @@ - a.weight_limit, a.volume_limit, a.cancel_order, a.cancel_remark, a.cancel_by, + a.weight_limit, a.volume_limit, a.cancel_order, a.cancel_remark, a.cancel_by,a.PICTURE_URL, a.cancel_by_name, a.cancel_time, a.close_order, a.close_remark, a.close_by, a.close_by_name, a.close_time, a.remark, a.create_time, a.create_by, - a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag, over_stock_id, over_stock_status, over_stock_type, + a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag, a.over_stock_id, a.over_stock_status, a.over_stock_type, a."TO", a.CONTACT_PERSON, a.VEHICLE_INFO, a.CONSIGNMENT_NO, a.TEL, a.DRIVER_SIGNATURE, a.FAX, a.DECLARATION_AREA, a.MANUFACTURER, a.CUSTOMS_BROKER_INFO, a.DELIVERY_ADDRESS, a.ENTRY_EXIT_CUSTOMS, a.ORIGIN_DESTINATION_COUNTRY, a.CARRIER, a.CONTAINER_NO, a.TRANSPORT_METHOD, a.SUPERVISION_METHOD, a.CUSTOMS_INSPECTION, a.NEED_CUSTOMS_DECLARATION, a.NEED_TRANSPORT, a.WAREHOUSE_DATE, a.COMPLETION_TIME, a.ORDER_DATE,a.reservation_audit_time,a.reservation_audit_name ,a.reservation_audit_id,a.issue_name,a.issue_id,a.issue_time,a.issue_status,a.RESERVATION_ORDER_SOURCE,a.tms_order_number - ,a.DIRECTOR_NAME ,a.DIRECTOR_PHONE,a.DIRECTOR_ID,a.STORAGE_TIME,a.in_quantity + ,a.DIRECTOR_NAME ,a.DIRECTOR_PHONE,a.DIRECTOR_ID,a.STORAGE_TIME,a.in_quantity, + a.PUSH_TIME,a.PUSH_STATUS,a.PUSH_BY,a.PUSH_BY_NAME @@ -244,6 +252,9 @@ and a.audit_time = #{auditTime} + + and a.issue_status = #{issueStatus} + and a.warehouse_id = #{warehouseId} @@ -263,7 +274,7 @@ and a.order_type_code = #{orderTypeCode} - and a.order_type_name like concat('%', #{orderTypeName}, '%') + and (a.BUSINESS_TYPE like concat('%', #{orderTypeName}, '%') or a.ORDER_TYPE_CODE like concat('%', #{orderTypeName}, '%')) and a.supplier_id = #{supplierId} @@ -405,10 +416,49 @@ and a.ORDER_DATE = #{orderDate} - and date_format(a.create_time,'%Y-%m-%d') >= #{createTimeStart} + and a.create_time >= #{createTimeStart} - and date_format(a.create_time,'%Y-%m-%d') <= #{createTimeEnd} + and a.create_time DATEADD(DAY, 1, #{createTimeEnd}) + + + and PUSH_TIME =]]> #{pushTimeStart} + + + and PUSH_TIME #{pushTimeEnd} + + + and a.PUSH_STATUS = #{pushStatus} + + + and a.BUSINESS_TYPE = #{businessType} + + + and a.RESERVATION_ORDER_SOURCE = #{reservationOrderSource} + + + and a.BUSINESS_NUMBER = #{businessNumber} + + + and a.create_by_name like concat('%', #{createByName}, '%') + + + and a.storage_time >= #{storageTimeStart} + + + and a.storage_time DATEADD(DAY, 1, #{storageTimeEnd}) + + + and a.expect_time >= #{expectTimeStart} + + + and a.expect_time DATEADD(DAY, 1, #{expectTimeEnd}) + + + and a.issue_time is not null + + + and a.issue_time is null @@ -449,21 +499,30 @@ + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mhd_oms/src/main/resources/mapper/reserveStockOutOrder/ReserveStockOutOrderMapper.xml b/mhd_oms/src/main/resources/mapper/reserveStockOutOrder/ReserveStockOutOrderMapper.xml index d3dfab7d9..05fa3137e 100644 --- a/mhd_oms/src/main/resources/mapper/reserveStockOutOrder/ReserveStockOutOrderMapper.xml +++ b/mhd_oms/src/main/resources/mapper/reserveStockOutOrder/ReserveStockOutOrderMapper.xml @@ -106,7 +106,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.cancel_time, a.close_order, a.close_remark, a.close_by, a.close_by_name, a.close_time, a.check_status,a.BUSINESS_ORDER_NO, a.check_task_distribution, a.check_task_distribution_time, a.check_operators_by, a.check_operators_name, a.mobilize_code, a.remark, a.create_time, a.create_by, a.create_by_name, - a.update_time, a.update_by, a.update_by_name, a.del_flag, over_stock_id, over_stock_status, over_stock_type,a."TO", + a.update_time, a.update_by, a.update_by_name, a.del_flag, a.over_stock_id, a.over_stock_status, a.over_stock_type,a."TO", a.CONTACT_PERSON,a.VEHICLE_MODEL_PLATE,a.ENTRUST_NO,a.TEL,a.DRIVER_SIGN,a.FAX,a.DECLARE_CUSTOMS,a.MANUFACTURER, a.CUSTOMS_DECLARER_INFO,a.DELIVERY_ADDR,a.ENTRY_EXIT_CUSTOMS,a.DEPARTURE_ARRIVAL_COUNTRY,a.CARRIER,a.CONTAINER_NO,a.CONTAINER_NO_NAME,a.OUTBOUND_DATE, a.COMPLETE_TIME,a.ORDER_DATE,a.TRANSPORT_MODE_CODE,a.TRANSPORT_MODE_NAME,a.SUPERVISION_MODE_CODE,a.SUPERVISION_MODE_NAME, @@ -277,6 +277,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.check_status < #{ltCheckStatus} + + and a.business_order_no = #{businessOrderNo} + + + and a.issue_status = #{issueStatus} + and a.create_by_name like concat('%', #{createByName}, '%') @@ -293,10 +299,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - and date_format(a.create_time,'%Y-%m-%d') >= #{createTimeStart} + and a.create_time >= #{createTimeStart} - and date_format(a.create_time,'%Y-%m-%d') <= #{createTimeEnd} + and a.create_time DATEADD(DAY, 1, #{createTimeEnd}) and date_format(a.audit_time,'%Y-%m-%d') >= #{auditTimeStart} @@ -343,6 +349,113 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT + * + FROM sys_table_config + WHERE 1=1 + + AND organization_id = #{organizationId} + + + AND warehouse_id = #{warehouseId} + + + AND shipper_id = #{shipperId} + + + AND key = #{key} + + ORDER BY create_time DESC + + + + + + + diff --git a/mhd_wms/src/main/resources/mapper/deliveTask/DeliveTaskMapper.xml b/mhd_wms/src/main/resources/mapper/deliveTask/DeliveTaskMapper.xml index 0ac6887bc..de30424e6 100644 --- a/mhd_wms/src/main/resources/mapper/deliveTask/DeliveTaskMapper.xml +++ b/mhd_wms/src/main/resources/mapper/deliveTask/DeliveTaskMapper.xml @@ -54,6 +54,64 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select deliver_task_id, task_number, tracking_number, organization_id, organization_name, top_organization_id, warehouse_id, warehouse_code, warehouse_name, task_type, task_status, task_distribution, task_distribution_time, task_distribution_id, task_distribution_name, operators_by, operators_name, remark, create_time, create_by, create_by_name, update_time, update_by, update_by_name, del_flag, reassign_time, reassign_by_id, reassign_by_name from delive_task + + + + and (task_status = 0 OR task_status IS NULL) + + + and task_status = #{taskStatus} + + + + + + and (operators_name IS NULL OR operators_name = '') + + + + + and NOT ( + (task_type = 1 AND EXISTS ( + SELECT 1 FROM stock_receipt_order biz + WHERE biz.receipt_order_number = delive_task.tracking_number AND biz.del_flag = 1 + AND (biz.status >= 2 OR (biz.operators_by IS NOT NULL AND biz.operators_by != 0)) + )) + OR (task_type = 2 AND EXISTS ( + SELECT 1 FROM stock_shelf_order biz + WHERE biz.shelf_order_number = delive_task.tracking_number AND biz.del_flag = 1 + AND (biz.status >= 2 OR (biz.operators_by IS NOT NULL AND biz.operators_by != 0)) + )) + OR (task_type = 3 AND EXISTS ( + SELECT 1 FROM stock_out_task_order biz + WHERE biz.task_number = delive_task.tracking_number AND biz.del_flag = 1 + AND (biz.status >= 2 OR (biz.operators_by IS NOT NULL AND biz.operators_by != 0)) + )) + OR (task_type = 4 AND ( + EXISTS ( + SELECT 1 FROM review_order biz + WHERE biz.review_order_number = delive_task.tracking_number AND biz.del_flag = 1 + AND biz.review_status >= 2 + ) + OR EXISTS ( + SELECT 1 FROM stock_out_order biz + WHERE biz.out_order_number = delive_task.tracking_number AND biz.del_flag = 1 + AND (biz.check_status >= 2 OR (biz.check_operators_by IS NOT NULL AND biz.check_operators_by != 0)) + ) + )) + OR (task_type = 5 AND EXISTS ( + SELECT 1 FROM shift_manage biz + WHERE biz.shift_number = delive_task.tracking_number AND biz.del_flag = 1 + AND (biz.shift_status >= 3 OR (biz.operators_by IS NOT NULL AND biz.operators_by != 0)) + )) + OR (task_type = 6 AND EXISTS ( + SELECT 1 FROM investigation_manage biz + WHERE biz.investigation_number = delive_task.tracking_number AND biz.del_flag = 1 + AND (biz.investigation_status >= 3 OR (biz.operators_by IS NOT NULL AND biz.operators_by != 0)) + )) + ) + + del_flag = 1 @@ -99,9 +157,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and EXISTS (SELECT 1 FROM handover_task_order hto WHERE hto.task_number = delive_task.tracking_number AND hto.del_flag = 1 AND hto.status = 2) - - and task_status = #{taskStatus} - + and task_distribution = #{taskDistribution} @@ -138,7 +194,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + del_flag = 1 @@ -181,9 +237,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and EXISTS (SELECT 1 FROM handover_task_order hto WHERE hto.task_number = delive_task.tracking_number AND hto.del_flag = 1 AND hto.status = 2) - - and task_status = #{taskStatus} - + and task_distribution = #{taskDistribution} @@ -196,6 +250,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and task_distribution_name like concat('%', #{taskDistributionName}, '%') + + and operators_by = #{operatorsBy} + + + + + + + + and operators_name like concat('%', #{operatorsName}, '%') @@ -248,9 +312,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and EXISTS (SELECT 1 FROM handover_task_order hto WHERE hto.task_number = delive_task.tracking_number AND hto.del_flag = 1 AND hto.status = 2) - - and task_status = #{taskStatus} - + and task_distribution = #{taskDistribution} @@ -380,8 +442,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" delive_task WHERE del_flag = 1 - AND (operators_by = '' - OR operators_by IS NULL) + + ) taskSum diff --git a/mhd_wms/src/main/resources/mapper/deliveryDetailsLinkItems/DeliveryDetailsLinkItemsMapper.xml b/mhd_wms/src/main/resources/mapper/deliveryDetailsLinkItems/DeliveryDetailsLinkItemsMapper.xml new file mode 100644 index 000000000..02d5dc659 --- /dev/null +++ b/mhd_wms/src/main/resources/mapper/deliveryDetailsLinkItems/DeliveryDetailsLinkItemsMapper.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, create_by, create_by_name, create_time, update_by, update_by_name, update_time, del_flag, customer_number, delivery_name, box, bag, amount, material_code, material_name, material_base_info_id, delivery_id, SERIAL_NO from delivery_details_link_items + + + + + + and customer_number = #{customerNumber} + + + and delivery_name like concat('%', #{deliveryName}, '%') + + + and box = #{box} + + + and bag = #{bag} + + + and amount = #{amount} + + + and material_code = #{materialCode} + + + and material_name like concat('%', #{materialName}, '%') + + + and material_base_info_id = #{materialBaseInfoId} + + + and delivery_id = #{deliveryId} + + + and del_flag = #{delFlag} + and del_flag = 1 + + + + + + \ No newline at end of file diff --git a/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml b/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml index c3afd64e1..bb0ce7cb0 100644 --- a/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml +++ b/mhd_wms/src/main/resources/mapper/inMaterialDetail/InMaterialDetailMapper.xml @@ -88,6 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -114,7 +115,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.SPECIFICATION_MODEL, a.SKU_CODE, a.INVOICE_NO, a.LITER, a.DIMENSIONS, a.DECLARATION_UNIT, a.BATCH_REF_NO, a.SHEET_REF_NO, a.ORIGIN_COUNTRY, a.BOX_PALLET_NO, a.CURRENCY, a.UNIT, a.DECLARED_QUANTITY, a.BOX_COUNT, a.PIECE_COUNT, a.INBOUND_QUANTITY, a.TOTAL_NET_WEIGHT, a.TOTAL_GROSS_WEIGHT, a.TOTAL_VOLUME, a.TOTAL_AREA, a.TOTAL_PRICE, - a.PRODUCTION_DATE, a.EXPIRY_DATE, a.INVENTORY_DATE, a.EXT_ATTR_1, a.EXT_ATTR_2, a.EXT_ATTR_3, a.EXT_ATTR_4, + a.PRODUCTION_DATE, a.EXPIRY_DATE, a.INVENTORY_DATE, a.EXT_ATTR_1, a.EXT_ATTR_2, a.EXT_ATTR_3, a.EXT_ATTR_4,a.DRINK_DATE, a.OMS_IN_MATERIAL_DETAIL ,CASE WHEN (a.quantity - a.receipt_quantity) < 0 THEN 0 diff --git a/mhd_wms/src/main/resources/mapper/inventoryAdjustmentRecord/InventoryAdjustmentRecordMapper.xml b/mhd_wms/src/main/resources/mapper/inventoryAdjustmentRecord/InventoryAdjustmentRecordMapper.xml index acdb7dd21..cd6ca9eb0 100644 --- a/mhd_wms/src/main/resources/mapper/inventoryAdjustmentRecord/InventoryAdjustmentRecordMapper.xml +++ b/mhd_wms/src/main/resources/mapper/inventoryAdjustmentRecord/InventoryAdjustmentRecordMapper.xml @@ -81,7 +81,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" b.ext_attr_1, b.ext_attr_2, b.ext_attr_3, b.ext_attr_4, b.production_date, b.expiry_date, b.inventory_date, b.batch_ref_no, b.sheet_ref_no, b.box_pallet_no,a.ADJUST_ACTION,a.RELATE_NO, - a.in_order_number,a.lot_number,b.batch_number + b.in_order_number,b.lot_number,b.batch_number from inventory_adjustment_record a left join material_inventory b on a.material_inventory_id = b.material_inventory_id where a.del_flag = 1 @@ -117,6 +117,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.bar_code = #{barCode} + + and b.batch_number = #{batchNumber} + + + and b.lot_number = #{lotNumber} + + + AND TO_CHAR(b.expiry_date, 'yyyy-MM-dd') = #{expiryDate} + + + AND TO_CHAR(b.production_date, 'yyyy-MM-dd') = #{productionDate} + and a.shipper_id = #{shipperId} diff --git a/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml b/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml index ce37e1502..bbd6659e7 100644 --- a/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialBaseInfo/MaterialBaseInfoMapper.xml @@ -58,6 +58,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + @@ -66,6 +72,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_classify_name, a.material_type, a.material_type_name, a.pack_id, a.pack_code, a.pack_name, a.unit_code, a.unit_name, a.brand_id, a.brand_code, a.brand_name, a.shelf_life, a.weight_limit, a.volume_limit, a.material_shape, material_shape_name, a.material_size, a.material_length, a.material_width, a.material_height, a.remark, a.nullify, a.create_time, a.create_by, a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag, a.common, sku_code, a.unit_price, a.currency, a.origin_country, a.hs_code, a.declaration_unit, a.statutory_unit, a.statutory_second_unit, a.copy_code, + a.push_status,a.push_time,a.push_by,a.goods_type,a.gross_weight,a.push_by_name, specification_model as specification_model,nvl(b.stock_qty,0) as stock_quantity from material_base_info a left join ( select material_base_info_id, sum(INVENTORY_QUANTITY) as stock_qty from MATERIAL_INVENTORY group by material_base_info_id ) b on a.material_base_info_id = b.material_base_info_id @@ -209,6 +216,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and mgr.batch_id = #{batchId} and mgr.del_flag = 1 ) + + + and a.push_status = #{pushStatus} + + + and date_format(a.push_time,'%Y-%m-%d') >= #{pushTimeStart} + + + and date_format(a.push_time,'%Y-%m-%d') <= #{pushTimeEnd} + + + and date_format(a.create_time,'%Y-%m-%d') >= #{createTimeStart} + + + and date_format(a.create_time,'%Y-%m-%d') <= #{createTimeEnd} + + + and date_format(a.update_time,'%Y-%m-%d') >= #{updateTimeStart} + + + and date_format(a.update_time,'%Y-%m-%d') <= #{updateTimeEnd} @@ -281,4 +309,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where material_base_info_id = #{materialBaseInfoId} + + + + + \ No newline at end of file diff --git a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml index 980657c29..9fcd08bcf 100644 --- a/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml +++ b/mhd_wms/src/main/resources/mapper/materialInventory/MaterialInventoryMapper.xml @@ -89,6 +89,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.in_order_number,a.lot_number + + + a.material_inventory_id, a.organization_id, a.organization_name, a.top_organization_id, + a.shipper_id, a.shipper_code, a.shipper_name, + loc.warehouse_id, loc.warehouse_code, loc.warehouse_name, + loc.storage_section_id, loc.storage_code, loc.storage_name, loc.storage_location_id, loc.storage_location_code, loc.storage_location_name, a.material_base_info_id,a.material_detail_id, + a.batch_number,a.material_status_code,a.material_status_name,a.container_id,a.container_code,a.container_type,a.container_type_name + ,IFNULL (sum(a.freeze_quantity), 0) freeze_quantity,a.is_able, + IFNULL (sum(a.inventory_quantity), 0) inventory_quantity, + IFNULL (sum(a.allocation_quantity), 0) allocation_quantity, + a.remark, a.create_time, a.create_by, a.create_by_name, a.update_time, a.update_by, a.update_by_name, + a.del_flag,a.unit, + IFNULL (sum(a.area), 0) area, + IFNULL (sum(a.NET_WEIGHT), 0) NET_WEIGHT, + IFNULL (sum(a.GROSS_WEIGHT), 0) GROSS_WEIGHT, + IFNULL (sum(a.VOLUME), 0) VOLUME, + a.ext_attr_1, a.ext_attr_2, a.ext_attr_3, a.ext_attr_4, + a.production_date, a.expiry_date, a.inventory_date, + a.BATCH_REF_NO, a.SHEET_REF_NO, a.BOX_PALLET_NO,nvl(a.unit_name,b.unit_name) as unit_name, + a.bar_code as inv_bar_code, + a.in_order_number,a.lot_number + + and a.material_inventory_id = #{materialInventoryId} @@ -183,6 +206,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.freeze_quantity = #{freezeQuantity} + + and COALESCE(a.inventory_quantity, 0) > 0 + and a.create_by_name like concat('%', #{createByName}, '%') @@ -206,6 +232,133 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.BOX_PALLET_NO like concat('%', #{boxPalletNo}, '%') + + AND TO_CHAR(a.expiry_date, 'yyyy-MM-dd') = #{expiryDateStr} + + + AND TO_CHAR(a.production_date, 'yyyy-MM-dd') = #{productionDateStr} + + + AND TO_CHAR(a.update_time, 'yyyy-MM-dd') = #{updateTimeStr} + + + + + + + and mi.material_inventory_id = #{materialInventoryId} + + + and mi.organization_id = #{organizationId} + + + and mi.organization_name like concat('%', #{organizationName}, '%') + + + and mi.top_organization_id = #{topOrganizationId} + + + and mi.warehouse_id = #{warehouseId} + + + and mi.shipper_id = #{shipperId} + + + and mi.warehouse_code = #{warehouseCode} + + + and mi.warehouse_name like concat('%', #{warehouseName}, '%') + + + and mi.storage_section_id = #{storageSectionId} + + + and mi.storage_code = #{storageCode} + + + and mi.storage_name like concat('%', #{storageName}, '%') + + + and mi.storage_location_id = #{storageLocationId} + + + and mi.storage_location_code = #{storageLocationCode} + + + and mi.storage_location_name like concat('%', #{storageLocationName}, '%') + + + and mi.material_base_info_id = #{materialBaseInfoId} + + + and mi.material_detail_id, = #{materialDetailId} + + + + and (mi.container_code like concat('%', #{containerOrBatch}, '%') or mi.batch_number like concat('%', #{containerOrBatch}, '%')) + + + and (mi.batch_number like concat('%', #{batchNumber}, '%') or mi.container_code like concat('%', #{containerCode}, '%')) + + + + and mi.batch_number like concat('%', #{batchNumber}, '%') + + + and mi.container_code like concat('%', #{containerCode}, '%') + + + + + and mi.material_status_code like concat('%', #{materialStatusCode}, '%') + + + and mi.material_status_name like concat('%', #{materialStatusName}, '%') + + + and mi.container_id = #{containerId} + + + and mi.container_type like concat('%', #{containerType}, '%') + + + and mi.container_type_name like concat('%', #{containerTypeName}, '%') + + + and mi.inventory_quantity = #{inventoryQuantity} + + + and mi.allocation_quantity = #{allocationQuantity} + + + and mi.freeze_quantity = #{freezeQuantity} + + + and COALESCE(mi.inventory_quantity, 0) > 0 + + + + and mi.create_by_name like concat('%', #{createByName}, '%') + + + and mi.update_by_name like concat('%', #{updateByName}, '%') + + + and mi.del_flag = #{delFlag} + and mi.del_flag = 1 + + + and (mi.storage_location_code = #{storageInfo} or material_code = #{storageInfo} or material_name like concat('%', #{storageInfo}, '%') or bar_code = #{storageInfo}) + + + and mi.BATCH_REF_NO like concat('%', #{batchRefNo}, '%') + + + and mi.SHEET_REF_NO like concat('%', #{sheetRefNo}, '%') + + + and mi.BOX_PALLET_NO like concat('%', #{boxPalletNo}, '%') + + + + @@ -540,6 +747,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + select + ,b.need_Declare_Flag from picking_order a + left join STOCK_OUT_ORDER b ON a.order_number = b.out_Order_number diff --git a/mhd_wms/src/main/resources/mapper/receiptMaterialDetail/ReceiptMaterialDetailMapper.xml b/mhd_wms/src/main/resources/mapper/receiptMaterialDetail/ReceiptMaterialDetailMapper.xml index b80f63648..29926d057 100644 --- a/mhd_wms/src/main/resources/mapper/receiptMaterialDetail/ReceiptMaterialDetailMapper.xml +++ b/mhd_wms/src/main/resources/mapper/receiptMaterialDetail/ReceiptMaterialDetailMapper.xml @@ -89,6 +89,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -96,7 +97,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select a.MATERIAL_DETAIL_ID, a.ORGANIZATION_ID, a.ORGANIZATION_NAME, a.TOP_ORGANIZATION_ID, a.UNIQUE_ID, a.RECEIPT_ORDER_NUMBER, a.MATERIAL_BASE_INFO_ID, ifnull(a.MATERIAL_CODE, c.MATERIAL_CODE) MATERIAL_CODE, ifnull(a.MATERIAL_NAME, c.MATERIAL_NAME) MATERIAL_NAME, - a.BAR_CODE, + a.BAR_CODE, c.SPECIFICATION_MODEL, a.DIMENSIONS DIMENSIONS, a.QUANTITY, a.ALREADY_RECEIPT_QUANTITY, a.ALREADY_RECEIPT_GROSS_WEIGHT, a.ALREADY_RECEIPT_NET_WEIGHT, a.ALREADY_RECEIPT_VOLUME, a.ALREADY_RECEIPT_AREA, a.RECEIPT_QUANTITY, a.RECEIPT_STATUS, a.PACK_ID, a.PACK_CODE, a.PACK_NAME, a.PACK_DETAIL_ID, ifnull(a.UNIT_CODE, b.UNIT_CODE) UNIT_CODE, ifnull(a.UNIT_NAME, b.UNIT_NAME) UNIT_NAME, a.UNIT_NUMBER, a.MATERIAL_WAREHOUSE_CONTROL_ID, a.SERIAL_NUMBER_MANAGE, a.QUALITY_INSPECTION_MANAGE, a.QUALITY_INSPECTION_STAGE, a.QUALITY_INSPECTION_RULE, a.QUALITY_INSPECTION_RATIO, a.QUALITY_INSPECTION_TERM, a.QUALITY_INSPECTION_RESULTS, a.ALLOW_OVERCHARGE, a.OVERCHARGE_RATIO, a.BATCH_NUMBER, ifnull(a.LOT_NO, b.LOT_NO) LOT_NO, a.MATERIAL_STATUS_CODE, a.MATERIAL_STATUS_NAME, a.DISTRIBUTE_RULE_ID, a.DISTRIBUTE_RULE_CODE, a.DISTRIBUTE_RULE_NAME, a.CONTAINER_ID, a.CONTAINER_CODE, a.CONTAINER_TYPE, a.CONTAINER_TYPE_NAME, a.LEVEL, a.PARENT_UNIQUE_ID, a.IN_UNIQUE_ID, a.ALLOW_MODIFY, a.REMARK, a.CREATE_TIME, a.CREATE_BY, a.CREATE_BY_NAME, a.UPDATE_TIME, a.UPDATE_BY, a.UPDATE_BY_NAME, a.GEN_STOCK_SHELF, a.DEL_FLAG, @@ -121,7 +122,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ifnull(a.EXT_ATTR_2, b.EXT_ATTR_2) EXT_ATTR_2, ifnull(a.EXT_ATTR_3, b.EXT_ATTR_3) EXT_ATTR_3, ifnull(a.EXT_ATTR_4, b.EXT_ATTR_4) EXT_ATTR_4, - a.OMS_IN_MATERIAL_DETAIL + a.OMS_IN_MATERIAL_DETAIL, + a.DRINK_DATE from RECEIPT_MATERIAL_DETAIL a LEFT JOIN IN_MATERIAL_DETAIL b ON a.IN_UNIQUE_ID = b.UNIQUE_ID AND b.DEL_FLAG = 1 LEFT JOIN MATERIAL_BASE_INFO c ON a.MATERIAL_BASE_INFO_ID = c.MATERIAL_BASE_INFO_ID AND c.DEL_FLAG = 1 diff --git a/mhd_wms/src/main/resources/mapper/reviewOrder/ReviewOrderMapper.xml b/mhd_wms/src/main/resources/mapper/reviewOrder/ReviewOrderMapper.xml index c68ec5f44..5db3cdaca 100644 --- a/mhd_wms/src/main/resources/mapper/reviewOrder/ReviewOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/reviewOrder/ReviewOrderMapper.xml @@ -48,6 +48,7 @@ + @@ -232,6 +233,7 @@ d.material_code, d.material_name, d.bar_code, + d.SIZE, d.unit_code, d.unit_name, d.pending_review_qty, diff --git a/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml index 0f8274b2b..e6ea0a0b3 100644 --- a/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockInOrder/StockInOrderMapper.xml @@ -86,6 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -103,7 +104,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.audit_status, a.audit_remark, a.audit_by, a.audit_by_name, a.audit_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, a.shipper_code, a.shipper_name, a.order_type_code, a.order_type_name, a.supplier_id, a.supplier_code, a.supplier_name, a.expect_time, a.supply_chain_number, a.priority_level_code, a.priority_level_name, a.direct_warehouse, a.annex_url, a.material_quantity, a.quantity,a.billing_json,a.SETTLEMENT_CURRENCY, - a.SALESMAN_ID,a.SALESMAN_NAME, + a.SALESMAN_ID,a.SALESMAN_NAME,a.PICTURE_URL, -- 计划入库数量:入库明细表 in_material_detail 的 quantity 汇总 (select ifnull(sum(imd.quantity), 0) from in_material_detail imd @@ -125,7 +126,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) as shelves_quantity, a.weight_limit, a.volume_limit, a.cancel_order, a.cancel_remark, a.cancel_by, a.cancel_by_name, a.cancel_time, a.close_order, a.close_remark, a.close_by, a.close_by_name, a.close_time, a.remark, a.create_time, a.create_by, - a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag, over_stock_id, over_stock_status, over_stock_type, + a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag, a.over_stock_id, a.over_stock_status, a.over_stock_type, a."TO", a.CONTACT_PERSON, a.VEHICLE_INFO, a.CONSIGNMENT_NO, a.TEL, a.DRIVER_SIGNATURE, a.FAX, a.DECLARATION_AREA, a.MANUFACTURER, a.CUSTOMS_BROKER_INFO, a.DELIVERY_ADDRESS, a.ENTRY_EXIT_CUSTOMS, a.ORIGIN_DESTINATION_COUNTRY, a.CARRIER, a.CONTAINER_NO, a.TRANSPORT_METHOD, a.SUPERVISION_METHOD, a.CUSTOMS_INSPECTION, a.NEED_CUSTOMS_DECLARATION, a.NEED_TRANSPORT, @@ -136,6 +137,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ,b.notice_number, b.warehouse_id, b.warehouse_code, b.warehouse_name, b.shipper_id, b.shipper_code, b.shipper_name, b.order_type_code, b.order_type_name, b.supplier_id, b.supplier_code, b.supplier_name, b.expect_time, b.supply_chain_number, b.priority_level_code, b.priority_level_name, b.direct_warehouse, b.annex_url, b.material_quantity as in_order_material_quantity, b.quantity as in_order_quantity + ,b.NEED_CUSTOMS_DECLARATION,b.completion_time @@ -194,6 +196,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and b.quantity = #{quantity} + + and b.need_customs_declaration = #{needCustomsDeclaration} + + @@ -542,4 +548,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + \ No newline at end of file diff --git a/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml index f15e0c51e..36c73c293 100644 --- a/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockOutOrder/StockOutOrderMapper.xml @@ -1,67 +1,67 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -89,29 +89,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - - - + + + + + + + - a.out_order_id, a.organization_id, a.organization_name, a.top_organization_id, a.receipt_notice_id, a.notice_number, a.out_order_number, a.status, + a + . + out_order_id + , a.organization_id, a.organization_name, a.top_organization_id, a.receipt_notice_id, a.notice_number, a.out_order_number, a.status, a.audit_status, a.audit_remark, a.audit_by, a.audit_by_name, a.audit_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, a.shipper_code, a.shipper_name, a.order_type_code, a.order_type_name, a.customer_id, a.customer_code, a.customer_name, a.expect_time, a.supply_chain_number, a.priority_level_code, a.priority_level_name, a.direct_warehouse, a.review, a.annex_url, a.material_quantity, a.quantity, a.weight_limit, a.volume_limit, a.allocation_quantity, a.already_allocation_quantity, a.picking_quantity, a.check_quantity, a.cancel_order, a.cancel_remark, a.cancel_by, a.cancel_by_name, a.cancel_time, a.close_order, a.close_remark, a.close_by, a.close_by_name, a.close_time, a.check_status, a.check_task_distribution, a.check_task_distribution_time, a.check_operators_by, a.check_operators_name, a.mobilize_code, - a.remark, a.create_time, a.create_by, a.create_by_name, - a.update_time, a.update_by, a.update_by_name, a.del_flag, over_stock_id, over_stock_status, over_stock_type,a."TO", + a.remark, a.create_time, a.create_by, a.create_by_name,a.train_no, + a.update_time, a.update_by, a.update_by_name, a.del_flag, a.over_stock_id, a.over_stock_status, a.over_stock_type,a."TO", a.CONTACT_PERSON,a.VEHICLE_MODEL_PLATE,a.ENTRUST_NO,a.TEL,a.DRIVER_SIGN,a.FAX,a.DECLARE_CUSTOMS,a.MANUFACTURER, a.CUSTOMS_DECLARER_INFO,a.DELIVERY_ADDR,a.ENTRY_EXIT_CUSTOMS,a.DEPARTURE_ARRIVAL_COUNTRY,a.CARRIER,a.CONTAINER_NO,a.CONTAINER_NO_NAME,a.OUTBOUND_DATE, a.COMPLETE_TIME,a.ORDER_DATE,a.TRANSPORT_MODE_CODE,a.TRANSPORT_MODE_NAME,a.SUPERVISION_MODE_CODE,a.SUPERVISION_MODE_NAME, a.CUSTOMS_INSPECTION_FLAG,a.NEED_DECLARE_FLAG,a.NEED_TRANSPORT_FLAG,a.picture_app,a.billing_json,a.SETTLEMENT_CURRENCY, - a.SALESMAN_ID,a.SALESMAN_NAME,a.business_order_no + a.SALESMAN_ID,a.SALESMAN_NAME,a.business_order_no,a.RETURN_QUANTITY @@ -303,34 +308,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and exists ( - select 1 from out_material_detail omd - left join material_base_info mb on omd.material_base_info_id = mb.material_base_info_id and mb.del_flag = 1 - where omd.out_order_number = a.out_order_number - and omd.del_flag = 1 - and (omd.level is null or omd.level = 1) - - and ( - omd.material_name like concat('%', #{materialName}, '%') - or mb.material_name like concat('%', #{materialName}, '%') - ) - - - and ( - omd.material_code like concat('%', #{materialCode}, '%') - or mb.material_code like concat('%', #{materialCode}, '%') - ) - + select 1 from out_material_detail omd + left join material_base_info mb on omd.material_base_info_id = mb.material_base_info_id and mb.del_flag = 1 + where omd.out_order_number = a.out_order_number + and omd.del_flag = 1 + and (omd.level is null or omd.level = 1) + + and ( + omd.material_name like concat('%', #{materialName}, '%') + or mb.material_name like concat('%', #{materialName}, '%') + ) + + + and ( + omd.material_code like concat('%', #{materialCode}, '%') + or mb.material_code like concat('%', #{materialCode}, '%') + ) + ) - and a.del_flag = #{delFlag} - and a.del_flag = 1 + and a.del_flag = #{delFlag} + and a.del_flag = 1 - select - + from stock_out_order a @@ -340,40 +346,45 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -395,8 +406,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - @@ -406,12 +415,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - SELECT - b.batch_number, - b.material_code, - b.material_name, - b.specification_model, - b.quantity, - b.unit_name, - b.pack_name, - b.warehouse_code, - b.warehouse_id, - b.storage_location_name, - b.lot_no, - b.piece_count, - b.material_base_info_id, - b.outbound_quantity, - b.box_pallet_no, - mbi.copy_code + SELECT b.batch_number, + b.material_code, + b.material_name, + COALESCE(b.specification_model, b.size, b.liter, mbi.specification_model) AS specification_model, + b.quantity, + b.unit_name, + b.pack_name, + b.warehouse_code, + b.warehouse_name, + b.warehouse_id, + b.storage_location_name, + b.lot_no, + b.piece_count, + b.material_base_info_id, + b.outbound_quantity, + b.box_pallet_no, + mbi.copy_code FROM out_material_detail b LEFT JOIN material_base_info mbi ON b.material_base_info_id = mbi.material_base_info_id WHERE b.del_flag = 1 - AND b.out_order_number = (SELECT out_order_number FROM stock_out_order WHERE out_order_id = #{outOrderId} AND del_flag = 1) + AND b.out_order_number = + (SELECT out_order_number FROM stock_out_order WHERE out_order_id = #{outOrderId} AND del_flag = 1) ORDER BY b.material_detail_id diff --git a/mhd_wms/src/main/resources/mapper/stockOutTaskOrder/StockOutTaskOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockOutTaskOrder/StockOutTaskOrderMapper.xml index da2493a12..b13339fc6 100644 --- a/mhd_wms/src/main/resources/mapper/stockOutTaskOrder/StockOutTaskOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockOutTaskOrder/StockOutTaskOrderMapper.xml @@ -80,6 +80,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.type = #{type} + + and a.task_number like 'JHZY%' + + + and a.task_number like 'FHZY%' + and a.warehouse_id = #{warehouseId} diff --git a/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml index 055191902..fa4dbc5b6 100644 --- a/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockReceiptOrder/StockReceiptOrderMapper.xml @@ -44,6 +44,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -52,7 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.status, a.platform_id, a.platform_code, a.platform_name, a.platform_use_time_id, a.platform_use_start_time, a.platform_use_end_time, a.platform_use_status, a.quantity, a.receipt_quantity, a.receipt_material_quantity, a.material_quantity, a.abnormal, a.task_distribution, a.task_distribution_time, a.operators_by, a.operators_name, a.remark, a.create_time, a.create_by, a.create_by_name, - a.update_time, a.update_by, a.update_by_name, a.del_flag, a.billing_json,a.business_order_no + a.update_time, a.update_by, a.update_by_name, a.del_flag, a.billing_json,a.business_order_no,a.batch_no diff --git a/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml b/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml index eddc416e0..4c76fa732 100644 --- a/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml +++ b/mhd_wms/src/main/resources/mapper/stockShelfOrder/StockShelfOrderMapper.xml @@ -26,6 +26,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + @@ -34,6 +39,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" a.in_order_number, a.receipt_order_number,a.receipt_task_number, a.shelf_order_number,a.status, a.receipt_quantity, a.shelves_quantity, a.material_quantity, a.shelves_material_quantity, a.abnormal,a.task_distribution, a.task_distribution_time, a.operators_by, a.remark, a.create_time, a.create_by, a.create_by_name, a.update_time, a.update_by, a.update_by_name, a.del_flag + ,a.push_status,a.push_time,a.push_by,a.push_by_name, + (SELECT m.goods_type FROM shelf_material_detail d + JOIN material_base_info m ON d.material_base_info_id = m.material_base_info_id + WHERE d.shelf_order_number = a.shelf_order_number AND d.level = 1 + LIMIT 1) AS goods_type @@ -100,10 +110,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and date_format(a.create_time,'%Y-%m-%d') <= #{createTimeEnd} + + and PUSH_TIME =]]> #{pushTimeStart} + + + and PUSH_TIME #{pushTimeEnd} + + + and a.PUSH_STATUS = #{pushStatus} + and a.del_flag = #{delFlag} and a.del_flag = 1 + @@ -128,6 +148,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update "NGWL_TEST_OMS".RESERVATION_STOCK_IN_ORDER set ISSUE_STATUS = #{status},in_quantity = #{shelvesQuantity},STORAGE_TIME = CURRENT_TIMESTAMP where IN_ORDER_NUMBER = #{orderNumber} + + update "NGWL_TEST_OMS".RESERVE_STOCK_IN_ORDER set in_quantity = #{shelvesQuantity} where IN_ORDER_NUMBER = #{orderNumber} + update "NGWL_TEST_OMS".RESERVATION_IN_MATERIAL_DETAIL set INBOUND_ITEMS = #{shelvesQuantity}, TOTAL_NET_WEIGHT= #{totalNetWeight},STORAGE_TIME = CURRENT_TIMESTAMP where MATERIAL_DETAIL_ID = #{omsInMaterialDetail} diff --git a/mhd_wms/src/main/resources/mapper/sysTableConfig/SysTableConfigMapper.xml b/mhd_wms/src/main/resources/mapper/sysTableConfig/SysTableConfigMapper.xml index e61bb75a2..35770e277 100644 --- a/mhd_wms/src/main/resources/mapper/sysTableConfig/SysTableConfigMapper.xml +++ b/mhd_wms/src/main/resources/mapper/sysTableConfig/SysTableConfigMapper.xml @@ -13,6 +13,7 @@ a.organization_id AS organizationId, a.key AS key, a.value AS value, + a.delivery_detail AS deliveryDetail, a.remark AS remark FROM sys_table_config a WHERE 1=1 diff --git a/pom.xml b/pom.xml index d98cdd603..839c541f6 100644 --- a/pom.xml +++ b/pom.xml @@ -302,6 +302,7 @@ mhd_oms mhd_wms mhd_bms + mhd-bi pom diff --git a/sql/oms20260513.sql b/sql/oms20260513.sql new file mode 100644 index 000000000..8f4716f3a --- /dev/null +++ b/sql/oms20260513.sql @@ -0,0 +1,180 @@ +alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER + add PUSH_STATUS TINYINT default 1; + +comment +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER.PUSH_STATUS is '推送状态:1-未推送 2-推送中 3-推送成功 4-推送失败'; + + +alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER + add PUSH_TIME timestamp; + +comment +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER.PUSH_TIME is '推送时间'; + + + +alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER + add PUSH_BY varchar(32); + +comment +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER.PUSH_BY is '推送人'; + + +alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER + add PUSH_BY_NAME varchar(100); + +comment +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER.PUSH_BY_NAME is '推送人姓名'; + + +alter table NGWL_TEST_USER.USER_SHIPPER + add PUSH_BY_NAME varchar(100); + +comment +on column NGWL_TEST_USER.USER_SHIPPER.PUSH_BY_NAME is '推送人姓名'; + + +alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_CARGO_MULTI + add MATERIAL_BASE_INFO_ID BIGINT; + +comment +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_CARGO_MULTI.MATERIAL_BASE_INFO_ID is '物料id'; + +alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_CARGO_MULTI + add PRODUCT_TYPE BIGINT; + +comment +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_CARGO_MULTI.PRODUCT_TYPE is '商品类型/货物类型(0料件,1半成品,2成品)'; + + +alter table NGWL_TEST_WMS.MATERIAL_BASE_INFO + add PUSH_BY_NAME varchar(100); + +comment +on column NGWL_TEST_WMS.MATERIAL_BASE_INFO.PUSH_BY_NAME is '推送人名称'; + + + + +USE NGWL_TEST_OMS; + + +CREATE TABLE GW_LOG ( + LOG_ID BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '日志ID', + TYPE VARCHAR(50) COMMENT '类型', + BUSINESS_ID BIGINT COMMENT '业务ID', + REQUEST_BODY TEXT COMMENT '请求体', + RESPONSE_BODY TEXT COMMENT '响应体', + STATUS INT DEFAULT 1 COMMENT '状态:1-初始,2-成功,3-失败', + ERROR_MSG VARCHAR(500) COMMENT '错误信息', + SEND_TIME DATETIME COMMENT '发送时间', + ORGANIZATION_ID BIGINT COMMENT '组织ID', + TOP_ORGANIZATION_ID BIGINT COMMENT '顶级组织ID', + ORGANIZATION_NAME VARCHAR(200) COMMENT '组织名称', + CREATE_BY BIGINT COMMENT '创建人', + CREATE_TIME DATETIME COMMENT '创建时间', + DEL_FLAG INT DEFAULT 1 COMMENT '删除标记:1-正常,0-删除' +); + +alter table NGWL_TEST_OMS.GW_LOG + add PUSH_BY_NAME varchar(100); + +comment +on column NGWL_TEST_OMS.GW_LOG.PUSH_BY_NAME is '推送人姓名'; + + + + +CREATE TABLE ERP_ENTERPRISE_UNIT ( + ID BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', + ERP_CODE VARCHAR(100) COMMENT 'ERP单位编码', + ERP_NAME VARCHAR(200) COMMENT 'ERP单位名称', + PUSH_STATUS INT DEFAULT 1 COMMENT '推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败', + PUSH_TIME DATETIME COMMENT '推送时间', + PUSH_BY BIGINT COMMENT '推送人', + ORGANIZATION_ID BIGINT COMMENT '所属组织ID', + TOP_ORGANIZATION_ID BIGINT COMMENT '一级组织ID', + ORGANIZATION_NAME VARCHAR(200) COMMENT '所属组织名称', + CREATE_BY BIGINT COMMENT '创建人', + CREATE_BY_NAME VARCHAR(64) COMMENT '创建人姓名', + CREATE_TIME DATETIME COMMENT '创建时间', + UPDATE_BY BIGINT COMMENT '更新人', + UPDATE_TIME DATETIME COMMENT '更新时间', + DEL_FLAG INT DEFAULT 1 COMMENT '删除标记:1-正常,0-删除' +); + +COMMENT ON TABLE ERP_ENTERPRISE_UNIT IS '企业单位表'; + +alter table NGWL_TEST_OMS.ERP_ENTERPRISE_UNIT + add PUSH_BY_NAME VARCHAR(100); + +comment +on column NGWL_TEST_OMS.ERP_ENTERPRISE_UNIT.PUSH_BY_NAME is '推送人姓名'; + + + +CREATE TABLE ERP_COUNTRY ( + ID BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', + ERP_COUNTRY_CODE VARCHAR(100) COMMENT 'ERP国别编码', + ERP_COUNTRY_NAME VARCHAR(200) COMMENT 'ERP国别名称', + PUSH_STATUS INT DEFAULT 1 COMMENT '推送状态:1-未推送,2-推送中,3-推送成功,4-推送失败', + PUSH_TIME DATETIME COMMENT '推送时间', + PUSH_BY BIGINT COMMENT '推送人', + ORGANIZATION_ID BIGINT COMMENT '所属组织ID', + TOP_ORGANIZATION_ID BIGINT COMMENT '一级组织ID', + ORGANIZATION_NAME VARCHAR(100) COMMENT '所属组织名称', + CREATE_BY BIGINT COMMENT '创建人', + CREATE_TIME DATETIME COMMENT '创建时间', + UPDATE_BY BIGINT COMMENT '更新人', + UPDATE_TIME DATETIME COMMENT '更新时间', + DEL_FLAG INT DEFAULT 1 COMMENT '删除标记:1-正常,0-删除' +); +COMMENT ON TABLE ERP_COUNTRY IS '企业国别表'; + +alter table NGWL_TEST_OMS.ERP_COUNTRY + add PUSH_BY_NAME varchar(100); + +comment +on column NGWL_TEST_OMS.ERP_COUNTRY.PUSH_BY_NAME is '托送人姓名'; + + +alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER + add REVISE_APPLY_TYPE int; + +comment +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER.REVISE_APPLY_TYPE is '删改单申请类型:0-改单 1-删除 2-作废'; + +alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER + add REVISE_APPLY_STATUS int default 0; + +comment +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER.REVISE_APPLY_STATUS is '删改单申请状态:0-未申请 1-申请成功 2-申请失败'; + +alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER + add REVISE_APPLY_REASON varchar(255); + +comment +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER.REVISE_APPLY_REASON is '删改单申请原因'; + +alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER + add REVISE_APPLY_BY varchar(50); + +comment +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER.REVISE_APPLY_BY is '删改单申请人'; + +alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER + add REVISE_APPLY_BY_NAME varchar(100); + +comment +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER.REVISE_APPLY_BY_NAME is '删改单申请人姓名'; + +alter table NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER + add REVISE_APPLY_TIME timestamp; + +comment +on column NGWL_TEST_OMS.BUSINESS_DOCUMENT_ORDER.REVISE_APPLY_TIME is '删改单申请时间'; + + + + + diff --git a/sql/wkx20260429.sql b/sql/wkx20260429.sql new file mode 100644 index 000000000..e69de29bb diff --git a/sql/wms_update_20260414_zq.sql b/sql/wms_update_20260414_zq.sql index ca1d80779..98bd938ac 100644 --- a/sql/wms_update_20260414_zq.sql +++ b/sql/wms_update_20260414_zq.sql @@ -55,3 +55,65 @@ alter table NGWL_TEST_WMS.MATERIAL_BASE_INFO comment on column NGWL_TEST_WMS.MATERIAL_BASE_INFO.COPY_CODE is '是否抄码: 1-是 2-否'; + + +USE NGWL_TEST_WMS; + + +CREATE TABLE customs_declaration_detail ( + id BIGINT IDENTITY(1,1) PRIMARY KEY, + organization_id BIGINT, + organization_name VARCHAR(64), + top_organization_id BIGINT, + document_number VARCHAR(64), + material_base_info_id BIGINT, + material_code VARCHAR(64), + material_name VARCHAR(255), + bond_invt_no VARCHAR(64), + invt_row INT, + create_time DATETIME, + create_by BIGINT, + create_by_name VARCHAR(64), + update_time DATETIME, + update_by BIGINT, + update_by_name VARCHAR(64), + del_flag INT DEFAULT 1 +); + +COMMENT ON TABLE customs_declaration_detail IS '报关明细表'; + COMMENT ON COLUMN customs_declaration_detail.id IS '主键'; + COMMENT ON COLUMN customs_declaration_detail.organization_id IS '组织表ID'; + COMMENT ON COLUMN customs_declaration_detail.organization_name IS '组织名称'; + COMMENT ON COLUMN customs_declaration_detail.top_organization_id IS '一级组织表ID'; + COMMENT ON COLUMN customs_declaration_detail.document_number IS '单据编号'; + COMMENT ON COLUMN customs_declaration_detail.material_base_info_id IS '物料基础信息ID'; + COMMENT ON COLUMN customs_declaration_detail.material_code IS '物料编码'; + COMMENT ON COLUMN customs_declaration_detail.material_name IS '物料名称'; + COMMENT ON COLUMN customs_declaration_detail.bond_invt_no IS '进口核注清单号'; + COMMENT ON COLUMN customs_declaration_detail.invt_row IS '行号'; + COMMENT ON COLUMN customs_declaration_detail.create_time IS '创建时间'; + COMMENT ON COLUMN customs_declaration_detail.create_by IS '创建人'; + COMMENT ON COLUMN customs_declaration_detail.create_by_name IS '创建人姓名'; + COMMENT ON COLUMN customs_declaration_detail.update_time IS '修改时间'; + COMMENT ON COLUMN customs_declaration_detail.update_by IS '修改人'; + COMMENT ON COLUMN customs_declaration_detail.update_by_name IS '修改人姓名'; + COMMENT ON COLUMN customs_declaration_detail.del_flag IS '删除标志 1-正常 2-删除'; + +CREATE INDEX idx_cdd_document_number ON customs_declaration_detail(document_number); +CREATE INDEX idx_cdd_bond_invt_no ON customs_declaration_detail(bond_invt_no); + + + + +ALTER TABLE NGWL_TEST_WMS.customs_declaration_detail ADD in_order_number VARCHAR(64); +ALTER TABLE NGWL_TEST_WMS.customs_declaration_detail ADD out_order_id BIGINT; +ALTER TABLE NGWL_TEST_WMS.customs_declaration_detail ADD out_order_number VARCHAR(64); + + +COMMENT ON COLUMN NGWL_TEST_WMS.customs_declaration_detail.in_order_number IS '入库业务单号'; +COMMENT ON COLUMN NGWL_TEST_WMS.customs_declaration_detail.out_order_id IS '出库单ID'; +COMMENT ON COLUMN NGWL_TEST_WMS.customs_declaration_detail.out_order_number IS '出库业务单号'; + + +CREATE INDEX idx_cdd_in_order_number ON NGWL_TEST_WMS.customs_declaration_detail(in_order_number); +CREATE INDEX idx_cdd_out_order_number ON NGWL_TEST_WMS.customs_declaration_detail(out_order_number); \ No newline at end of file