From 77cbc1f8625a026ec0a568941d7fcde459faa674 Mon Sep 17 00:00:00 2001 From: Yen Date: Thu, 20 Mar 2025 14:26:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E8=BE=85=E5=8A=A9=E8=A1=A8=EF=BC=8C=E8=B0=83=E6=95=B4=E8=B5=A0?= =?UTF-8?q?=E5=93=81=E5=8D=95=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BazVisitInstanceServiceImpl.java | 25 +++++ .../bms/controller/BmsRegion2Controller.java | 13 +++ .../bms/controller/BmsSupplierController.java | 1 + .../modules/bms/entity/BmsChannelPoint.java | 5 +- .../bms/entity/BmsChannelPointExt.java | 44 +++++++++ .../serve/modules/bms/entity/BmsSupplier.java | 4 + .../bms/entity/bo/BmsChannelPointBo.java | 3 + .../modules/bms/entity/bo/BmsSupplierBo.java | 3 + .../bms/entity/bo/BmsSupplierExcelBo.java | 4 + .../bms/entity/so/BmsPointVisitSo.java | 2 + .../bms/mapper/BmsChannelPointExtMapper.java | 15 +++ .../goods/controller/GoodsSpuController.java | 13 ++- .../oms/controller/OmsOrderController.java | 2 + .../controller/OmsSaleOrderController.java | 13 +++ .../oms/controller/api/OmsSaleOrderApi.java | 5 + .../modules/oms/entity/OmsSaleOrder.java | 11 ++- .../serve/modules/oms/entity/OmsSeaTank.java | 60 ++++++++++++ .../modules/oms/entity/OmsTransport.java | 61 ++++++++++++ .../oms/entity/OmsVerSaleDelivery.java | 80 +++++++++++++++ .../oms/entity/bo/CreateOrderParam.java | 5 + .../oms/entity/bo/OmsOrderModifyParam.java | 5 + .../oms/entity/vo/OmsConfirmOrderResult.java | 6 ++ .../modules/oms/mapper/OmsSeaTankMapper.java | 11 +++ .../oms/mapper/OmsTransportMapper.java | 12 +++ .../oms/mapper/OmsVerSaleDeliveryMapper.java | 15 +++ .../impl/OmsOrderOptionsServiceImpl.java | 2 + .../service/impl/OmsSaleOrderServiceImpl.java | 53 +++++++++- .../other/controller/ZbiReportController.java | 49 ++++++++++ .../serve/modules/other/entity/ZbiReport.java | 96 ++++++++++++++++++ .../modules/other/entity/ZbiUserReport.java | 92 +++++++++++++++++ .../modules/other/mapper/ZbiReportMapper.java | 16 +++ .../other/mapper/ZbiUserReportMapper.java | 19 ++++ .../other/service/ZbiReportService.java | 14 +++ .../other/service/ZbiUserReportService.java | 14 +++ .../service/impl/ZbiReportServiceImpl.java | 22 +++++ .../impl/ZbiUserReportServiceImpl.java | 22 +++++ .../sys/service/SysDeleteLogService.java | 2 + .../service/impl/SysDeleteLogServiceImpl.java | 42 +++++--- .../tbs/controller/TbsActivityController.java | 4 +- .../controller/TbsCostApplyController.java | 13 +++ .../impl/TbsBudgetChangeServiceImpl.java | 4 + .../service/impl/TbsBudgetServiceImpl.java | 4 + .../service/impl/TbsCostApplyServiceImpl.java | 70 +++++++++++-- .../entity/ProcessCreateCostApplyBo.java | 5 + .../entity/ProcessCreatePolicyCostBo.java | 1 + .../service/PortalOfCostApplication.java | 98 ++++++++++--------- .../impl/TzcPolicyApplicationServiceImpl.java | 5 +- .../controller/VtbVerificationController.java | 2 +- .../impl/VtbVerificationServiceImpl.java | 6 ++ .../mapper/bms/BmsChannelPointMapper.xml | 2 + .../mapper/other/ZbiUserReportMapper.xml | 16 +++ 51 files changed, 1014 insertions(+), 77 deletions(-) create mode 100644 src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPointExt.java create mode 100644 src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointExtMapper.java create mode 100644 src/main/java/com/qs/serve/modules/oms/entity/OmsSeaTank.java create mode 100644 src/main/java/com/qs/serve/modules/oms/entity/OmsTransport.java create mode 100644 src/main/java/com/qs/serve/modules/oms/entity/OmsVerSaleDelivery.java create mode 100644 src/main/java/com/qs/serve/modules/oms/mapper/OmsSeaTankMapper.java create mode 100644 src/main/java/com/qs/serve/modules/oms/mapper/OmsTransportMapper.java create mode 100644 src/main/java/com/qs/serve/modules/oms/mapper/OmsVerSaleDeliveryMapper.java create mode 100644 src/main/java/com/qs/serve/modules/other/controller/ZbiReportController.java create mode 100644 src/main/java/com/qs/serve/modules/other/entity/ZbiReport.java create mode 100644 src/main/java/com/qs/serve/modules/other/entity/ZbiUserReport.java create mode 100644 src/main/java/com/qs/serve/modules/other/mapper/ZbiReportMapper.java create mode 100644 src/main/java/com/qs/serve/modules/other/mapper/ZbiUserReportMapper.java create mode 100644 src/main/java/com/qs/serve/modules/other/service/ZbiReportService.java create mode 100644 src/main/java/com/qs/serve/modules/other/service/ZbiUserReportService.java create mode 100644 src/main/java/com/qs/serve/modules/other/service/impl/ZbiReportServiceImpl.java create mode 100644 src/main/java/com/qs/serve/modules/other/service/impl/ZbiUserReportServiceImpl.java create mode 100644 src/main/resources/mapper/other/ZbiUserReportMapper.xml diff --git a/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java b/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java index e4953b1a..c87b24ed 100644 --- a/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java @@ -53,6 +53,7 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl updateById(@RequestBody @Valid BmsRegionBatchBo.BmsRegionBo regionBo){ + long count = bmsRegion2Service.count(new LambdaQueryWrapper() + .ne(BmsRegion2::getId,regionBo.getId()) + .eq(BmsRegion2::getName,regionBo.getName()) + ); + if(count>0){ + return R.isTrue(false,"名称重复"); + } BmsRegion2 param = new BmsRegion2(); param.setId(regionBo.getId()); param.setName(regionBo.getName()); @@ -366,6 +373,12 @@ public class BmsRegion2Controller { @SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.INSERT) @PreAuthorize("hasRole('bms:region:insert')") public R save(@RequestBody @Valid BmsRegionBatchBo.BmsRegionBo regionBo){ + long count = bmsRegion2Service.count(new LambdaQueryWrapper() + .eq(BmsRegion2::getName,regionBo.getName()) + ); + if(count>0){ + return R.isTrue(false,"名称重复"); + } BmsRegion2 param = CopierUtil.copy(regionBo,new BmsRegion2()); if(param.getId()==null){ param.setId("B"+IdUtil.getSnowFlakeId()); diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java index 59bc918d..98f23b13 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java @@ -1270,6 +1270,7 @@ public class BmsSupplierController { supplier.setSupplierLicenseImg(a.getSupplierLicenseImg()); supplier.setSupplierUser(a.getSupplierUser()); supplier.setSupplierTaxNumber(a.getSupplierTaxNumber()); + supplier.setTransportVisible(a.getTransportVisible()); if(StringUtils.hasText(a.getMainHeadCode())){ SysUser sysUser = sysUserMap.get(a.getMainHeadCode()); supplier.setUserId(sysUser.getId()); diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java index 8da5caf3..e8f1d483 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java @@ -150,9 +150,12 @@ public class BmsChannelPoint implements Serializable { @JsonProperty private String delFlag; - /** 可投放费用标识 */ + /** 可投放费用标识,默认=1 */ private Integer costFlag; + /** 可拜访网点,默认=1 */ + private Integer visitFlag; + /** 创建人 */ @TableField(fill = FieldFill.INSERT) private String createBy; diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPointExt.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPointExt.java new file mode 100644 index 00000000..264f474a --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPointExt.java @@ -0,0 +1,44 @@ +package com.qs.serve.modules.bms.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +/** + * @author YenHex + * @since 2025/3/11 + */ +@Data +@TableName("bms_channel_point_ext") +public class BmsChannelPointExt { + + @TableId + private String pointId; + + /** 省 */ + private String extProvince; + + /** 城市 */ + private String extCity; + + /** 区 */ + private String extRegionArea; + + /** 乡镇 */ + private String extTownship; + + /** 街道 */ + private String extStreet; + + /** 街道编号 */ + private String extStreetNumber; + /** 纬度 */ + private String localX; + + /** 经度 */ + private String localY; + + private String address; +} diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java index 24940559..b58a7cc7 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java @@ -216,10 +216,14 @@ public class BmsSupplier implements Serializable { /** 线下下单 */ private Integer orderOfflineFlag; + /** 运输方式是否可见 */ + private Integer transportVisible; + /** 统计维护的地址数量 */ @TableField(exist = false) private Integer countAddr; + /** * 查询维护的地址 * countAddrFlag=0 表示未维护的收货地址 diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointBo.java index 7a4a38d4..5198fbcb 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointBo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointBo.java @@ -65,6 +65,9 @@ public class BmsChannelPointBo { /** 可投放费用标识 */ private Integer costFlag; + /** 可拜访网点 */ + private Integer visitFlag; + /** 纬度 */ @Length(max = 255,message = "纬度长度不能超过255字") private String localX; diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java index 86537639..f840d63e 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java @@ -107,6 +107,9 @@ public class BmsSupplierBo { */ private Integer cdOrderFlag; + /** 运输方式是否可见 */ + private Integer transportVisible; + /** 开始户时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierExcelBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierExcelBo.java index fa93d907..e7b5f02c 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierExcelBo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierExcelBo.java @@ -74,6 +74,9 @@ public class BmsSupplierExcelBo { */ private Integer cdOrderFlag; + /** 运输方式是否可见 */ + private Integer transportVisible; + // 闭户日期 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @@ -122,6 +125,7 @@ public class BmsSupplierExcelBo { bo.setSupplierUser(bmsSupplier.getSupplierUser()); bo.setSupplierLicenseImg(bmsSupplier.getSupplierLicenseImg()); bo.setCdOrderFlag(bmsSupplier.getCdOrderFlag()); + bo.setTransportVisible(bmsSupplier.getTransportVisible()==null?0:bmsSupplier.getTransportVisible()); if(bmsSupplier.getRegionFirstInfo()!=null) { BmsRegion firstRegion = (BmsRegion)bmsSupplier.getRegionFirstInfo(); bo.setFirstLevelSalesRegionName(firstRegion.getName()); diff --git a/src/main/java/com/qs/serve/modules/bms/entity/so/BmsPointVisitSo.java b/src/main/java/com/qs/serve/modules/bms/entity/so/BmsPointVisitSo.java index f8509329..fb3913cb 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/so/BmsPointVisitSo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/so/BmsPointVisitSo.java @@ -23,4 +23,6 @@ public class BmsPointVisitSo { /** 忽略这个参数,后端设值 */ String tenantId; + Integer visitFlag; + } diff --git a/src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointExtMapper.java b/src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointExtMapper.java new file mode 100644 index 00000000..d81c1dfe --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointExtMapper.java @@ -0,0 +1,15 @@ +package com.qs.serve.modules.bms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.bms.entity.BmsCenterRegion; +import com.qs.serve.modules.bms.entity.BmsChannelPointExt; + +/** + * Mapper + * @author YenHex + * @date 2023-07-20 + */ +public interface BmsChannelPointExtMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index de3a8213..38061814 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -196,7 +196,18 @@ public class GoodsSpuController { if(CollUtil.isEmpty(param.getSelectNotIntCateIds())){ param.setSelectNotIntCateIds(ruleItemDTO.getNotInCategoryIds()); }else{ - param.getSelectNotIntCateIds().addAll(ruleItemDTO.getNotInCategoryIds()); + // 原方法报错 + //param.getSelectNotIntCateIds().addAll(ruleItemDTO.getNotInCategoryIds()); + // 新的方法 + List tmp = new ArrayList<>(); + for (String id : param.getSelectNotIntCateIds()) { + tmp.add(id); + } + for (String id : ruleItemDTO.getNotInCategoryIds()) { + tmp.add(id); + } + param.setSelectNotIntCateIds(tmp); + } } diff --git a/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java b/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java index d62bd4af..00ba5999 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java +++ b/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java @@ -21,6 +21,7 @@ import com.qs.serve.modules.oms.entity.bo.OmsUrgentParam; import com.qs.serve.modules.oms.entity.bo.OrderRelateQuery; import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo; import com.qs.serve.modules.oms.mapper.OmsOrderMapper; +import com.qs.serve.modules.oms.mapper.OmsSeaTankMapper; import com.qs.serve.modules.oms.service.OmsOrderItemService; import com.qs.serve.modules.oms.service.OmsOrderOptionsService; import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; @@ -65,6 +66,7 @@ public class OmsOrderController { private BmsSupplierMapper bmsSupplierMapper; private SeeYonRequestBaseService seeYonRequestBaseService; + /** * 获取ERP订单信息 * @param query diff --git a/src/main/java/com/qs/serve/modules/oms/controller/OmsSaleOrderController.java b/src/main/java/com/qs/serve/modules/oms/controller/OmsSaleOrderController.java index faef2ec1..9d9fedcc 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/OmsSaleOrderController.java +++ b/src/main/java/com/qs/serve/modules/oms/controller/OmsSaleOrderController.java @@ -19,6 +19,8 @@ import com.qs.serve.modules.oms.entity.*; import com.qs.serve.modules.oms.entity.bo.*; import com.qs.serve.modules.oms.entity.vo.OmsPlanResult; import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo; +import com.qs.serve.modules.oms.mapper.OmsSeaTankMapper; +import com.qs.serve.modules.oms.mapper.OmsTransportMapper; import com.qs.serve.modules.oms.service.*; import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; import com.qs.serve.modules.sys.entity.SysUser; @@ -56,7 +58,18 @@ public class OmsSaleOrderController { private BmsSupplierMapper bmsSupplierMapper; private SeeYonRequestBaseService seeYonRequestBaseService; private OmsVerSaleOrderService omsVerSaleOrderService; + private OmsSeaTankMapper omsSeaTankMapper; + private OmsTransportMapper omsTransportMapper; + @GetMapping("/getSeaTanks") + public R getSeaTanks(){ + return R.ok(omsSeaTankMapper.selectList(null)); + } + + @GetMapping("/getTransports") + public R getTransports(){ + return R.ok(omsTransportMapper.selectList(null)); + } /** * 查看排产预估计划 * @param param diff --git a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsSaleOrderApi.java b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsSaleOrderApi.java index 144f1c28..fc6943ee 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsSaleOrderApi.java +++ b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsSaleOrderApi.java @@ -344,6 +344,11 @@ public class OmsSaleOrderApi { return R.byPageHelperList(list); } + /** + * 提交到调度的订单,退回草稿 + * @param id + * @return + */ @GetMapping("/cancelUncheckOrder") public R cancelOrder(String id){ omsSaleOrderService.cancelErpOrder(id); diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrder.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrder.java index f64d9d97..337a8166 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrder.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsSaleOrder.java @@ -195,6 +195,15 @@ public class OmsSaleOrder implements Serializable { /** 业务确认人 */ private String confirmUserCode; + /** 货运方式id */ + private String transportId; + /** 货运方式 */ + private String transport; + /** 海柜id */ + private String tankId; + /** 海柜名称 */ + private String tankName; + /** * 拓展查询条件 */ @@ -305,7 +314,7 @@ public class OmsSaleOrder implements Serializable { private Integer satisfyPayFlag; /** - * 费用过单状态:0-无;1-部分;2-全部 + * 费用过单状态:0-无;1-部分;2-全部(-1 代表不选) */ private Integer overbillStatus; diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsSeaTank.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsSeaTank.java new file mode 100644 index 00000000..4b45b67f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsSeaTank.java @@ -0,0 +1,60 @@ +package com.qs.serve.modules.oms.entity; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * @author YenHex + * @since 2025/3/13 + */ +@Data +public class OmsSeaTank { + + @TableId + private String id; + + private String label; + + private BigDecimal minSquare; + + private BigDecimal maxSquare; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 租户id */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 删除标识 */ + @JsonIgnore + @JsonProperty + private Boolean delFlag; +} diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsTransport.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsTransport.java new file mode 100644 index 00000000..52094283 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsTransport.java @@ -0,0 +1,61 @@ +package com.qs.serve.modules.oms.entity; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * @author YenHex + * @since 2025/3/13 + */ +@Data +public class OmsTransport { + + @TableId + private String id; + + private String label; + + /** + * 显示海柜 + */ + private Integer showTankFlag; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 租户id */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 删除标识 */ + @JsonIgnore + @JsonProperty + private Boolean delFlag; +} diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsVerSaleDelivery.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsVerSaleDelivery.java new file mode 100644 index 00000000..a57fad98 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsVerSaleDelivery.java @@ -0,0 +1,80 @@ +package com.qs.serve.modules.oms.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * 订单 实体类 + * @author YenHex + * @since 2022-10-14 + */ +@Data +@TableName("oms_ver_sale_delivery") +public class OmsVerSaleDelivery implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + private String orderSn; + + private String erpId; + + private String operatorName; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime operationTime; + + private String source; + + private LocalDateTime deliveryDate; + + private String currentVersion; + private String lastVersion; + private Integer sort; + + /** 备注 */ + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 租户id */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 删除标识 */ + @JsonIgnore + @JsonProperty + private Boolean delFlag; + +} + diff --git a/src/main/java/com/qs/serve/modules/oms/entity/bo/CreateOrderParam.java b/src/main/java/com/qs/serve/modules/oms/entity/bo/CreateOrderParam.java index 4cee275f..6a7da7e1 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/bo/CreateOrderParam.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/bo/CreateOrderParam.java @@ -5,6 +5,11 @@ import lombok.Data; @Data public class CreateOrderParam{ + /** 货运方式id */ + private String transportId; + /** 海柜id */ + private String tankId; + /** CD单据备注 */ private String cdOrderRemark; diff --git a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderModifyParam.java b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderModifyParam.java index b64a847d..a998c5ae 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderModifyParam.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderModifyParam.java @@ -63,6 +63,11 @@ public class OmsOrderModifyParam { */ private Integer overbillStatus; + /** 货运方式id */ + private String transportId; + /** 海柜id */ + private String tankId; + /** * 明细 */ diff --git a/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsConfirmOrderResult.java b/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsConfirmOrderResult.java index c2f93c75..aeee65e2 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsConfirmOrderResult.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsConfirmOrderResult.java @@ -54,4 +54,10 @@ public class OmsConfirmOrderResult { * 费用过单状态:0-无;1-部分;2-全部 */ private Integer overbillStatus; + + /** 货运方式id */ + private String transportId; + /** 海柜id */ + private String tankId; + } diff --git a/src/main/java/com/qs/serve/modules/oms/mapper/OmsSeaTankMapper.java b/src/main/java/com/qs/serve/modules/oms/mapper/OmsSeaTankMapper.java new file mode 100644 index 00000000..fd4675ca --- /dev/null +++ b/src/main/java/com/qs/serve/modules/oms/mapper/OmsSeaTankMapper.java @@ -0,0 +1,11 @@ +package com.qs.serve.modules.oms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.oms.entity.OmsSeaTank; + +/** + * @author YenHex + * @since 2025/3/13 + */ +public interface OmsSeaTankMapper extends BaseMapper { +} diff --git a/src/main/java/com/qs/serve/modules/oms/mapper/OmsTransportMapper.java b/src/main/java/com/qs/serve/modules/oms/mapper/OmsTransportMapper.java new file mode 100644 index 00000000..6300bc86 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/oms/mapper/OmsTransportMapper.java @@ -0,0 +1,12 @@ +package com.qs.serve.modules.oms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.oms.entity.OmsSeaTank; +import com.qs.serve.modules.oms.entity.OmsTransport; + +/** + * @author YenHex + * @since 2025/3/13 + */ +public interface OmsTransportMapper extends BaseMapper { +} diff --git a/src/main/java/com/qs/serve/modules/oms/mapper/OmsVerSaleDeliveryMapper.java b/src/main/java/com/qs/serve/modules/oms/mapper/OmsVerSaleDeliveryMapper.java new file mode 100644 index 00000000..24f96a59 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/oms/mapper/OmsVerSaleDeliveryMapper.java @@ -0,0 +1,15 @@ +package com.qs.serve.modules.oms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.oms.entity.OmsVerSaleDelivery; +import org.apache.ibatis.annotations.Select; + +/** + * 订单 Mapper + * @author YenHex + * @date 2022-10-14 + */ +public interface OmsVerSaleDeliveryMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java index 72c10288..e7d47f1b 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java @@ -367,6 +367,8 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService { ); // 申请时的折扣率(跟ext1一样传oaid) data.put("ext3",omsOrder.getOaRateId()); + // 新增折扣率 + data.put("ext4",omsOrder.getDiscountRate()); return data; } diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsSaleOrderServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsSaleOrderServiceImpl.java index 4d27a660..a5042ee3 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsSaleOrderServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsSaleOrderServiceImpl.java @@ -39,6 +39,8 @@ import com.qs.serve.modules.oms.entity.vo.OmsPlanResult; import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo; import com.qs.serve.modules.oms.event.OrderCreateCacheEvent; import com.qs.serve.modules.oms.mapper.OmsSaleOrderMapper; +import com.qs.serve.modules.oms.mapper.OmsSeaTankMapper; +import com.qs.serve.modules.oms.mapper.OmsTransportMapper; import com.qs.serve.modules.oms.mapper.OmsVerSaleOrderMapper; import com.qs.serve.modules.oms.service.*; import com.qs.serve.modules.oms.utils.OmsOrderUtil; @@ -103,6 +105,8 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl spuIds = param.getOrderItems().stream().map(OmsOrderModifyParam.OmsOrderItemModifyBo::getSpuId).collect(Collectors.toList()); spuIds.add(0L);//兼容空订单,防止空指针 @@ -698,13 +707,15 @@ public class OmsSaleOrderServiceImpl extends ServiceImpl> getList(@PathVariable("userCode") String userCode){ + List reportList = zbiUserReportMapper.getReportList(userCode); + return R.ok(reportList); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/other/entity/ZbiReport.java b/src/main/java/com/qs/serve/modules/other/entity/ZbiReport.java new file mode 100644 index 00000000..550c60c9 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/other/entity/ZbiReport.java @@ -0,0 +1,96 @@ +package com.qs.serve.modules.other.entity; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 实体类 + * @author YenHex + * @since 2025-03-20 + */ +@Data +@TableName("zbi_report") +public class ZbiReport implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 报表值 */ + @Length(max = 255,message = "报表值长度不能超过255字") + private String reportValue; + + /** 停用:0-正常;1-停用 */ + private Integer stopFlag; + + /** 显示状态:0-用户关联;1-共有的 */ + private Integer showState; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 租户id */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 删除标识 */ + @JsonIgnore + @JsonProperty + private Boolean delFlag; + + + public static ZbiReport toNewObject(ZbiReport source){ + ZbiReport report = new ZbiReport(); + report.setId(source.getId()); + report.setReportValue(source.getReportValue()); + report.setStopFlag(source.getStopFlag()); + report.setShowState(source.getShowState()); + report.setRemark(source.getRemark()); + report.setCreateTime(source.getCreateTime()); + report.setCreateBy(source.getCreateBy()); + report.setUpdateTime(source.getUpdateTime()); + report.setUpdateBy(source.getUpdateBy()); + report.setTenantId(source.getTenantId()); + report.setDelFlag(source.getDelFlag()); + return report; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/other/entity/ZbiUserReport.java b/src/main/java/com/qs/serve/modules/other/entity/ZbiUserReport.java new file mode 100644 index 00000000..05b3fcb6 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/other/entity/ZbiUserReport.java @@ -0,0 +1,92 @@ +package com.qs.serve.modules.other.entity; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 实体类 + * @author YenHex + * @since 2025-03-20 + */ +@Data +@TableName("zbi_user_report") +public class ZbiUserReport implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 员工号 */ + @Length(max = 64,message = "员工号长度不能超过64字") + private String userCode; + + /** 报表id */ + private Long reportId; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 租户id */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 删除标识 */ + @JsonIgnore + @JsonProperty + private Boolean delFlag; + + + public static ZbiUserReport toNewObject(ZbiUserReport source){ + ZbiUserReport userReport = new ZbiUserReport(); + userReport.setId(source.getId()); + userReport.setUserCode(source.getUserCode()); + userReport.setReportId(source.getReportId()); + userReport.setRemark(source.getRemark()); + userReport.setCreateTime(source.getCreateTime()); + userReport.setCreateBy(source.getCreateBy()); + userReport.setUpdateTime(source.getUpdateTime()); + userReport.setUpdateBy(source.getUpdateBy()); + userReport.setTenantId(source.getTenantId()); + userReport.setDelFlag(source.getDelFlag()); + return userReport; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/other/mapper/ZbiReportMapper.java b/src/main/java/com/qs/serve/modules/other/mapper/ZbiReportMapper.java new file mode 100644 index 00000000..306a9e71 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/other/mapper/ZbiReportMapper.java @@ -0,0 +1,16 @@ +package com.qs.serve.modules.other.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.other.entity.ZbiReport; + +/** + * Mapper + * @author YenHex + * @date 2025-03-20 + */ +public interface ZbiReportMapper extends BaseMapper { + + + +} + diff --git a/src/main/java/com/qs/serve/modules/other/mapper/ZbiUserReportMapper.java b/src/main/java/com/qs/serve/modules/other/mapper/ZbiUserReportMapper.java new file mode 100644 index 00000000..49f70f23 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/other/mapper/ZbiUserReportMapper.java @@ -0,0 +1,19 @@ +package com.qs.serve.modules.other.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.other.entity.ZbiReport; +import com.qs.serve.modules.other.entity.ZbiUserReport; + +import java.util.List; + +/** + * Mapper + * @author YenHex + * @date 2025-03-20 + */ +public interface ZbiUserReportMapper extends BaseMapper { + + List getReportList(String userCode); + +} + diff --git a/src/main/java/com/qs/serve/modules/other/service/ZbiReportService.java b/src/main/java/com/qs/serve/modules/other/service/ZbiReportService.java new file mode 100644 index 00000000..5eeb3b90 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/other/service/ZbiReportService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.other.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.other.entity.ZbiReport; + +/** + * 服务接口 + * @author YenHex + * @date 2025-03-20 + */ +public interface ZbiReportService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/other/service/ZbiUserReportService.java b/src/main/java/com/qs/serve/modules/other/service/ZbiUserReportService.java new file mode 100644 index 00000000..47555d2f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/other/service/ZbiUserReportService.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.other.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.other.entity.ZbiUserReport; + +/** + * 服务接口 + * @author YenHex + * @date 2025-03-20 + */ +public interface ZbiUserReportService extends IService { + +} + diff --git a/src/main/java/com/qs/serve/modules/other/service/impl/ZbiReportServiceImpl.java b/src/main/java/com/qs/serve/modules/other/service/impl/ZbiReportServiceImpl.java new file mode 100644 index 00000000..7179256f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/other/service/impl/ZbiReportServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.other.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.qs.serve.modules.other.entity.ZbiReport; +import com.qs.serve.modules.other.service.ZbiReportService; +import com.qs.serve.modules.other.mapper.ZbiReportMapper; + +/** + * 服务实现类 + * @author YenHex + * @since 2025-03-20 + */ +@Slf4j +@Service +@AllArgsConstructor +public class ZbiReportServiceImpl extends ServiceImpl implements ZbiReportService { + +} + diff --git a/src/main/java/com/qs/serve/modules/other/service/impl/ZbiUserReportServiceImpl.java b/src/main/java/com/qs/serve/modules/other/service/impl/ZbiUserReportServiceImpl.java new file mode 100644 index 00000000..b0183bd9 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/other/service/impl/ZbiUserReportServiceImpl.java @@ -0,0 +1,22 @@ +package com.qs.serve.modules.other.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.qs.serve.modules.other.entity.ZbiUserReport; +import com.qs.serve.modules.other.service.ZbiUserReportService; +import com.qs.serve.modules.other.mapper.ZbiUserReportMapper; + +/** + * 服务实现类 + * @author YenHex + * @since 2025-03-20 + */ +@Slf4j +@Service +@AllArgsConstructor +public class ZbiUserReportServiceImpl extends ServiceImpl implements ZbiUserReportService { + +} + diff --git a/src/main/java/com/qs/serve/modules/sys/service/SysDeleteLogService.java b/src/main/java/com/qs/serve/modules/sys/service/SysDeleteLogService.java index d365f198..5bc87c66 100644 --- a/src/main/java/com/qs/serve/modules/sys/service/SysDeleteLogService.java +++ b/src/main/java/com/qs/serve/modules/sys/service/SysDeleteLogService.java @@ -14,8 +14,10 @@ public interface SysDeleteLogService extends IService { * 删除费用申请相关所有数据 * @param costApplyId * @param remark + * @param skipPayFlag 跳过审批 */ void deleteCostApply(Long costApplyId,String remark); + void deleteCostApply(Long costApplyId,String remark,boolean skipPayFlag); } diff --git a/src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java b/src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java index 41126ef0..f20c9d2d 100644 --- a/src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/sys/service/impl/SysDeleteLogServiceImpl.java @@ -51,7 +51,7 @@ public class SysDeleteLogServiceImpl extends ServiceImpl deleteLogList = new ArrayList<>(); + String skipMsg = skipPayFlag?"(跳过删除支付)":""; if(costApply!=null){ SysDeleteLog deleteLog = new SysDeleteLog(); deleteLog.setBatchCode(batchCode); deleteLog.setTargetTable("tbs_cost_apply"); deleteLog.setTargetId(costApply.getId()+""); deleteLog.setTargetCode(costApply.getCode()); - deleteLog.setRemark(remark); + deleteLog.setRemark(remark+skipMsg); deleteLogList.add(deleteLog); } @@ -81,20 +82,27 @@ public class SysDeleteLogServiceImpl extends ServiceImpl reset(@PathVariable("id") Long id){ - tbsActivityDebugApplicationService.reset(id); + String msg = tbsActivityDebugApplicationService.reset(id); TbsActivity activity = tbsActivityService.getById(id); - return R.ok(activity.getActivityCode()+"=="+activity.getActTitle()); + return R.ok(msg); } @GetMapping("/resetList") diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index bb143f9b..6ec294df 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java @@ -587,6 +587,19 @@ public class TbsCostApplyController { return R.ok(resultInfoList); } + @GetMapping("removeDhxCost") + public R removeDhxCost(String code,String remark,Integer skipPayFlag){ + if(!code.contains("DHX")){ + return R.error("非DHX费用,不支持删除"); + } + TbsCostApply costApply = tbsCostApplyMapper.selectList(new LambdaQueryWrapper() + .eq(TbsCostApply::getCode,code)).get(0); + Long costApplyId = costApply.getId(); + deleteLogService.deleteCostApply(costApplyId,remark,skipPayFlag!=null&&skipPayFlag.equals(1)); + BirActivityCenterGoodsUtil.buildBir(costApplyId); + return R.ok(); + } + /** * 移除费用申请 * @param costCode diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java index 111c3853..e67f3556 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetChangeServiceImpl.java @@ -204,6 +204,10 @@ public class TbsBudgetChangeServiceImpl extends ServiceImpl if(formIdResult.getStatus()==200){ formId = formIdResult.getData(); } + if(formId==null){ + log.error("[预算创建失败]={}",flowIdResult); + Assert.throwEx("获取表单ID失败"); + } tbsBudget.setSubmitTime(LocalDateTime.now()); tbsBudget.setBudgetCheckState(TbsCommonCheckState.State_1_apply); tbsBudget.setSyFormId(formId); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index fa067920..574ed508 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -101,6 +101,7 @@ import java.util.stream.Collectors; public class TbsCostApplyServiceImpl extends ServiceImpl implements TbsCostApplyService { private RedisService redisService; + private TbsActivityChannelMapper tbsActivityChannelMapper; private TbsActivityChannelPointMapper tbsActivityChannelPointMapper; private TbsActivityTemplateRegionMapper tbsActivityTemplateRegionMapper; private TbsActivityTemplateMapper tbsActivityTemplateMapper; @@ -657,12 +658,8 @@ public class TbsCostApplyServiceImpl extends ServiceImpl subjectList = subjectService.listByIds( activitySubjects.stream().map(TbsActivitySubject::getSubjectId).collect(Collectors.toList())); if(tbsCostApply.getContractFlag()!=null&&tbsCostApply.getContractFlag().equals(2)){ - if (activityList.size()>1){ - Assert.throwEx("进场费类型只能有一个活动"); - } - if(subjectList.stream().anyMatch(s->s.getSlottingFlag().equals(0))){ - Assert.throwEx("当前申请含非进场费类型科目"); - } + // 拦截进场费的历史记录和规则 + this.vaildEnterTypeCostHistoryAndRule(tbsCostApply, activityList, subjectList); } //模板拦截 boolean isIgnoreSubject = false; @@ -1058,6 +1055,67 @@ public class TbsCostApplyServiceImpl extends ServiceImpl activityList, List subjectList) { + if (activityList.size()>1){ + Assert.throwEx("进场费类型只能有一个活动"); + } + if(subjectList.stream().anyMatch(s->s.getSlottingFlag().equals(0))){ + Assert.throwEx("当前申请含非进场费类型科目"); + } + // 判断是否已有历史进场费 + LambdaQueryWrapper costApplyLqw = new LambdaQueryWrapper<>(); + costApplyLqw.eq(TbsCostApply::getSupplierId, tbsCostApply.getSupplierId()); + costApplyLqw.eq(TbsCostApply::getContractFlag,2); + // 生效的费用申请 + costApplyLqw.in(TbsCostApply::getChargeState,1,2,3,7); + costApplyLqw.select(TbsCostApply::getId); + List costApplyList = tbsCostApplyMapper.selectList(costApplyLqw); + List enterIds = costApplyList.stream().map(TbsCostApply::getId).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(enterIds)){ + Set pointIds = new HashSet<>(); + Set channelIds = new HashSet<>(); + List activityChannelList = tbsActivityChannelMapper.selectList( + new LambdaQueryWrapper() + .select(TbsActivityChannel::getChannelId) + .in(TbsActivityChannel::getCostApplyId,enterIds)); + for (TbsActivityChannel channel : activityChannelList) { + channelIds.add(channel.getChannelId()); + } + List activityChannelPointList = tbsActivityChannelPointMapper.selectList( + new LambdaQueryWrapper() + .select(TbsActivityChannelPoint::getPointId, + TbsActivityChannelPoint::getChannelId) + .in(TbsActivityChannelPoint::getCostApplyId,enterIds)); + for (TbsActivityChannelPoint point : activityChannelPointList) { + pointIds.add(point.getPointId()); + } + if(CollUtil.isNotEmpty(channelIds)){ + long count = tbsActivityChannelMapper.selectCount(new LambdaQueryWrapper() + .in(TbsActivityChannel::getChannelId,channelIds) + .eq(TbsActivityChannel::getCostApplyId, tbsCostApply.getId()) + ); + if(count>0){ + Assert.throwEx("当前申请含网点,且已有历史进场费申请"); + } + } + if(CollUtil.isNotEmpty(pointIds)){ + long count = tbsActivityChannelPointMapper.selectCount(new LambdaQueryWrapper() + .in(TbsActivityChannelPoint::getPointId,pointIds) + .eq(TbsActivityChannelPoint::getCostApplyId, tbsCostApply.getId()) + ); + if(count>0){ + Assert.throwEx("当前申请含网点,且已有历史进场费申请"); + } + } + } + } + /** * 校验活动商品的有效性 * 此方法旨在确保参与活动的商品或类别处于有效状态,包括检查是否已下架和是否已启用费用 diff --git a/src/main/java/com/qs/serve/modules/third/entity/ProcessCreateCostApplyBo.java b/src/main/java/com/qs/serve/modules/third/entity/ProcessCreateCostApplyBo.java index 4d3e77e4..ba230812 100644 --- a/src/main/java/com/qs/serve/modules/third/entity/ProcessCreateCostApplyBo.java +++ b/src/main/java/com/qs/serve/modules/third/entity/ProcessCreateCostApplyBo.java @@ -68,4 +68,9 @@ public class ProcessCreateCostApplyBo { private LocalDate endDate; private String remark; + + /** + * 不进行支付,目前只支持赠品类费用 + */ + private Integer ignorePayFlag; } diff --git a/src/main/java/com/qs/serve/modules/third/entity/ProcessCreatePolicyCostBo.java b/src/main/java/com/qs/serve/modules/third/entity/ProcessCreatePolicyCostBo.java index f7e83270..65d77b4e 100644 --- a/src/main/java/com/qs/serve/modules/third/entity/ProcessCreatePolicyCostBo.java +++ b/src/main/java/com/qs/serve/modules/third/entity/ProcessCreatePolicyCostBo.java @@ -68,4 +68,5 @@ public class ProcessCreatePolicyCostBo { */ @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate initTime; + } diff --git a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java index 95f21191..aad6302a 100644 --- a/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java +++ b/src/main/java/com/qs/serve/modules/third/service/PortalOfCostApplication.java @@ -900,51 +900,13 @@ public class PortalOfCostApplication { //保存支付信息(DHX赠品) if(costCode.indexOf("DHX")==0||costCode.contains("YX06")) { - //发货单的 - String json = ThirtyVerificationUtil.buildJson(supplier, subject, totalAmount, activity, verification); - String COST_TO_PAY_API = projectApisProperties.getCostToPay(); - log.info("COST_TO_PAY_API 支付单信息:{} 数据:{}", verification.getVerificationCode(), json); - String rs = HttpUtil.doPost(COST_TO_PAY_API, json, null); - - SysSyncLog syncLog = new SysSyncLog(); - syncLog.setFromPlat("to支付请求"); - syncLog.setUrl(COST_TO_PAY_API); - syncLog.setRequestJson(json); - if(rs==null||!rs.contains("200")){ - log.error("COST_TO_PAY_API \n 请求参数:{},\n 支付单信息:{},\n 结果:{}", json, verification.getVerificationCode(),rs); - syncLog.setEntityClass("ThirtyVerification"); - syncLog.setFailReason(rs); - syncLog.setRemark("支付失败:["+ verification.getVerificationCode()+"]"); - }else { - syncLog.setSuccessStatus(1); - syncLog.setRemark("支付完成:["+ verification.getVerificationCode()+"]"); - } - sysSyncLogService.save(syncLog); - - if (rs == null || !rs.contains("200")) { - log.error("COST_TO_PAY_API \n 请求参数:{},\n 支付单信息:{},\n 结果:{}", json, verification.getVerificationCode(), rs); - //核销调度接口事务补偿 - costApplyService.removeById(costApply.getId()); - activityService.removeById(activity.getId()); - activitySubjectService.removeById(activitySubject.getId()); - activityCenterService.removeById(activityCenter.getId()); - List goodIds = activityGoodsList.stream().map(TbsActivityGoods::getId).collect(Collectors.toList()); - if (goodIds.size() > 0) { - activityGoodsService.removeBatchByIds(goodIds); - } - List good2Ids = activityCenterGoodsList.stream().map(TbsActivityCenterGoods::getId).collect(Collectors.toList()); - if (good2Ids.size() > 0) { - activityCenterGoodsService.removeBatchByIds(good2Ids); - } - List logIds = budgetLogList.stream().map(TbsBudgetLog::getId).collect(Collectors.toList()); - if (logIds.size() > 0) { - budgetLogService.removeBatchByIds(logIds); - } - verificationService.removeById(verification.getId()); - verificationSubjectService.removeById(verificationSubject.getId()); - Assert.throwEx("请求支付失败"); + // 赠品支持忽略参数 + boolean ignoreDhxPay = costCode.indexOf("DHX")==0&&createBo.getIgnorePayFlag()!=null&&createBo.getIgnorePayFlag()==1; + if(!ignoreDhxPay){ + this.payToErpAPI(supplier, subject, totalAmount, costApply, activity, activitySubject, + activityCenter, activityGoodsList, activityCenterGoodsList, + budgetLogList, verification, verificationSubject); } - log.info("COST_TO_PAY_API 支付单信息:{},结果:{}", verification.getVerificationCode(), rs); } //保存支付(SHX试吃品) // if(costCode.indexOf("SHX")==0) { @@ -991,6 +953,54 @@ public class PortalOfCostApplication { } + private void payToErpAPI(BmsSupplier supplier, BmsSubject subject, BigDecimal totalAmount, TbsCostApply costApply, TbsActivity activity, TbsActivitySubject activitySubject, TbsActivityCenter activityCenter, List activityGoodsList, List activityCenterGoodsList, List budgetLogList, VtbVerification verification, VtbVerificationSubject verificationSubject) { + //发货单的 + String json = ThirtyVerificationUtil.buildJson(supplier, subject, totalAmount, activity, verification); + String COST_TO_PAY_API = projectApisProperties.getCostToPay(); + log.info("COST_TO_PAY_API 支付单信息:{} 数据:{}", verification.getVerificationCode(), json); + String rs = HttpUtil.doPost(COST_TO_PAY_API, json, null); + + SysSyncLog syncLog = new SysSyncLog(); + syncLog.setFromPlat("to支付请求"); + syncLog.setUrl(COST_TO_PAY_API); + syncLog.setRequestJson(json); + if(rs==null||!rs.contains("200")){ + log.error("COST_TO_PAY_API \n 请求参数:{},\n 支付单信息:{},\n 结果:{}", json, verification.getVerificationCode(),rs); + syncLog.setEntityClass("ThirtyVerification"); + syncLog.setFailReason(rs); + syncLog.setRemark("支付失败:["+ verification.getVerificationCode()+"]"); + }else { + syncLog.setSuccessStatus(1); + syncLog.setRemark("支付完成:["+ verification.getVerificationCode()+"]"); + } + sysSyncLogService.save(syncLog); + + if (rs == null || !rs.contains("200")) { + log.error("COST_TO_PAY_API \n 请求参数:{},\n 支付单信息:{},\n 结果:{}", json, verification.getVerificationCode(), rs); + //核销调度接口事务补偿 + costApplyService.removeById(costApply.getId()); + activityService.removeById(activity.getId()); + activitySubjectService.removeById(activitySubject.getId()); + activityCenterService.removeById(activityCenter.getId()); + List goodIds = activityGoodsList.stream().map(TbsActivityGoods::getId).collect(Collectors.toList()); + if (goodIds.size() > 0) { + activityGoodsService.removeBatchByIds(goodIds); + } + List good2Ids = activityCenterGoodsList.stream().map(TbsActivityCenterGoods::getId).collect(Collectors.toList()); + if (good2Ids.size() > 0) { + activityCenterGoodsService.removeBatchByIds(good2Ids); + } + List logIds = budgetLogList.stream().map(TbsBudgetLog::getId).collect(Collectors.toList()); + if (logIds.size() > 0) { + budgetLogService.removeBatchByIds(logIds); + } + verificationService.removeById(verification.getId()); + verificationSubjectService.removeById(verificationSubject.getId()); + Assert.throwEx("请求支付失败"); + } + log.info("COST_TO_PAY_API 支付单信息:{},结果:{}", verification.getVerificationCode(), rs); + } + @NotNull private List filterRepSku(List invCodeList, List skuList) { if (skuList.size() > invCodeList.size()){ diff --git a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java index 5d24caec..4afb819a 100644 --- a/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tzc/service/impl/TzcPolicyApplicationServiceImpl.java @@ -463,8 +463,11 @@ public class TzcPolicyApplicationServiceImpl implements TzcPolicyApplicationServ Assert.throwEx(flowIdResult.getMsg()); } String flowId = flowIdResult.getData(); + if(!StringUtils.hasText(flowId)){ + Assert.throwEx("获取不到流程ID:"+flowIdResult.getMsg()); + } //这里错误时会抛出json数据 - if(flowId!=null&&flowId.length()>60){ + if(flowId.length()>60){ Assert.throwEx("远程调用异常:"+flowId); } String formId = null; diff --git a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java index 77282293..8fbb3a40 100644 --- a/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java +++ b/src/main/java/com/qs/serve/modules/vtb/controller/VtbVerificationController.java @@ -251,7 +251,7 @@ public class VtbVerificationController { @PostMapping("/commitWithChange") @SysLog(module = SystemModule.Verification, title = "核销", biz = BizType.UPDATE) public R commit(@RequestBody @Valid VtbVerificationCenterCommitBo commitBo){ - seeYonService.testConnection(); + //seeYonService.testConnection(); VtbVerificationBo param = CopierUtil.copy(commitBo,new VtbVerificationBo()); vtbVerificationService.commit(param); return R.ok(); diff --git a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java index 77e96ee3..98729e21 100644 --- a/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java @@ -873,7 +873,13 @@ public class VtbVerificationServiceImpl extends ServiceImpl and `bms_channel_point`.`del_flag` = 0 + and `bms_channel_point`.`visit_flag` = #{query.visitFlag} and `bms_channel_point`.`point_code` like concat('%',#{query.pointCode},'%') and `bms_channel_point`.`point_name` like concat('%',#{query.pointName},'%') @@ -178,6 +179,7 @@ left join bms_channel_point ON `tmp`.channel_id = bms_channel_point.`channel_id` and `bms_channel_point`.`del_flag` = 0 + and `bms_channel_point`.`visit_flag` = #{query.visitFlag} and `bms_channel_point`.`point_code` like concat('%',#{query.pointCode},'%') and `bms_channel_point`.`point_name` like concat('%',#{query.pointName},'%') diff --git a/src/main/resources/mapper/other/ZbiUserReportMapper.xml b/src/main/resources/mapper/other/ZbiUserReportMapper.xml new file mode 100644 index 00000000..09f49d09 --- /dev/null +++ b/src/main/resources/mapper/other/ZbiUserReportMapper.xml @@ -0,0 +1,16 @@ + + + + + + +