diff --git a/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java b/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java index 60346d2c..0dc78a36 100644 --- a/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java +++ b/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java @@ -6,6 +6,7 @@ import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.StringUtils; @@ -58,6 +59,24 @@ public class BazVisitInstanceController { return R.byPageHelperList(list); } + /** + * 列表 + * @param param + * @return + */ + @GetMapping("/list") + public R> getList(BazVisitInstanceSo param){ + BazVisitInstance query = CopierUtil.copy(param,new BazVisitInstance()); + if(param.getQueryStartDate()!=null){ + query.setQueryEndDate(param.getQueryStartDate().atStartOfDay()); + } + if(param.getQueryEndDate()!=null){ + query.setQueryEndDate(param.getQueryEndDate().atTime(23,59,59)); + } + List list = bazVisitInstanceService.selectBazVisitInstanceList(query); + return R.ok(list); + } + /** * ID查询 * @param id diff --git a/src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java b/src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java index 397dd09f..208c1afc 100644 --- a/src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java +++ b/src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java @@ -94,6 +94,51 @@ public class BazMyVisitInstanceController { } + /** + * 列表 + * @param param + * @return + */ + @GetMapping("/list") + public R> getList(BazVisitInstanceSo param){ + BazVisitInstance query = CopierUtil.copy(param,new BazVisitInstance()); + if(param.getQueryStartDate()!=null){ + query.setQueryEndDate(param.getQueryStartDate().atStartOfDay()); + } + if(param.getQueryEndDate()!=null){ + query.setQueryEndDate(param.getQueryEndDate().atTime(23,59,59)); + } + param.setVisitorId(AuthContextUtils.getSysUserId()); + List list = bazVisitInstanceService.selectBazVisitInstanceList(query); + return R.ok(list); + } + + /** + * 列表(我的部下) + * @param param + * @return + */ + @GetMapping("/list4Under") + public R> list4Under(BazVisitInstanceSo param){ + BazVisitInstance query = CopierUtil.copy(param,new BazVisitInstance()); + if(param.getQueryStartDate()!=null){ + query.setQueryEndDate(param.getQueryStartDate().atStartOfDay()); + } + if(param.getQueryEndDate()!=null){ + query.setQueryEndDate(param.getQueryEndDate().atTime(23,59,59)); + } + List userIds = postUserService.listByChildIds(AuthContextUtils.getSysUserId()); + if(userIds.size()<1){ + return R.ok(); + } + String userId = AuthContextUtils.getSysUserId(); + PageUtil.startPage(); + query.setQueryUserIds(userIds); + query.setIgnoreUserId(userId); + List list = bazVisitInstanceService.selectBazVisitInstanceList(query); + return R.ok(list); + } + /** * 获取用户未完成拜访数量 * @param visitId 拜访id diff --git a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitFlow.java b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitFlow.java index 88f10c2a..84805f05 100644 --- a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitFlow.java +++ b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitFlow.java @@ -52,6 +52,9 @@ public class BazVisitFlow implements Serializable { /** 排序 */ private Integer flowSort; + /** 业务类型:0-普通;1->签到;2-签退;3->小结 */ + private Integer flowBizType; + /** 是否可忽略 */ @NotNull(message = "是否可忽略不能为空") private Integer ignoreFlag; diff --git a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java index d5cf4201..1fe06606 100644 --- a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java +++ b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java @@ -139,6 +139,40 @@ public class BazVisitInstance implements Serializable { @TableField(exist = false) private List flowList; + /** 拜访小结 */ + @TableField(exist = false) + private String summary; + + /** 签到时间 */ + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + private LocalDateTime signTime; + + /** 签退时间 */ + @TableField(exist = false) + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + private LocalDateTime outTime; + + /** 查询开始时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + @TableField(exist = false) + private LocalDateTime queryStartDate; + + /** 查询结束时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + @TableField(exist = false) + private LocalDateTime queryEndDate; + + /** 查询用户ID */ + @TableField(exist = false) + private List queryUserIds; + + /** 忽略的用户ID */ + @TableField(exist = false) + private String ignoreUserId; + public static BazVisitInstance toNewObject(BazVisit source, TargetDTO targetDTO, SysUser sysUser){ BazVisitInstance visitInstance = new BazVisitInstance(); //visitInstance.setTitle(source.getTitle()); diff --git a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java index 1d90f2a2..3c94e8c3 100644 --- a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java +++ b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java @@ -72,6 +72,9 @@ public class BazVisitInstanceFlow implements Serializable { @Length(max = 255,message = "流程名称长度不能超过255字") private String flowTitle; + /** 业务类型:0-普通;1->签到;2-签退;3->小结 */ + private Integer flowBizType; + /** 排序 */ private Integer flowSort; @@ -181,6 +184,7 @@ public class BazVisitInstanceFlow implements Serializable { visitInstanceFlow.setTargetCode(targetDTO.getTargetCode()); visitInstanceFlow.setTargetName(targetDTO.getTargetName()); visitInstanceFlow.setFlowTitle(source.getFlowTitle()); + visitInstanceFlow.setFlowBizType(source.getFlowBizType()); visitInstanceFlow.setFlowSort(source.getFlowSort()); visitInstanceFlow.setIgnoreFlag(source.getIgnoreFlag()); visitInstanceFlow.setPositionState(source.getPositionState()); diff --git a/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitFlowBo.java b/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitFlowBo.java index 9aae8116..e7b9d6ce 100644 --- a/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitFlowBo.java +++ b/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitFlowBo.java @@ -41,6 +41,10 @@ public class BazVisitFlowBo implements Serializable { @NotNull(message = "排序不能为空") private Integer flowSort; + /** 业务类型:0-普通;1->签到;2-签退;3->小结 */ + @NotNull(message = "排序不能为空") + private Integer flowBizType; + /** 是否可忽略 */ @NotNull(message = "是否可忽略不能为空") private Integer ignoreFlag; diff --git a/src/main/java/com/qs/serve/modules/baz/mapper/BazVisitInstanceMapper.java b/src/main/java/com/qs/serve/modules/baz/mapper/BazVisitInstanceMapper.java index 712a3b45..0d64e8e0 100644 --- a/src/main/java/com/qs/serve/modules/baz/mapper/BazVisitInstanceMapper.java +++ b/src/main/java/com/qs/serve/modules/baz/mapper/BazVisitInstanceMapper.java @@ -2,6 +2,9 @@ package com.qs.serve.modules.baz.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qs.serve.modules.baz.entity.BazVisitInstance; +import com.qs.serve.modules.baz.entity.so.BazVisitInstanceSo; +import org.apache.ibatis.annotations.Param; +import java.util.List; /** * 拜访实例 Mapper @@ -10,5 +13,7 @@ import com.qs.serve.modules.baz.entity.BazVisitInstance; */ public interface BazVisitInstanceMapper extends BaseMapper { + List selectBazVisitInstanceList(@Param("query") BazVisitInstance param); + } diff --git a/src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceService.java b/src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceService.java index f98bb6e2..11ea786a 100644 --- a/src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceService.java +++ b/src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceService.java @@ -4,6 +4,10 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.qs.serve.modules.baz.entity.BazVisitInstance; import com.qs.serve.modules.baz.entity.bo.BazCreateVisitInstanceBo; import com.qs.serve.modules.baz.entity.bo.BazVisitInstanceFlowBo; +import com.qs.serve.modules.baz.entity.so.BazVisitInstanceSo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 拜访实例 服务接口 @@ -18,5 +22,6 @@ public interface BazVisitInstanceService extends IService { void finished(Long id); + List selectBazVisitInstanceList( BazVisitInstance param); } 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 69d171c8..acb8b3d3 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 @@ -11,6 +11,7 @@ import com.qs.serve.modules.baz.common.BazTargetTypeConsts; import com.qs.serve.modules.baz.entity.*; import com.qs.serve.modules.baz.entity.bo.BazCreateVisitInstanceBo; import com.qs.serve.modules.baz.entity.bo.BazVisitInstanceFlowBo; +import com.qs.serve.modules.baz.entity.so.BazVisitInstanceSo; import com.qs.serve.modules.baz.mapper.BazVisitFlowMapper; import com.qs.serve.modules.baz.mapper.BazVisitInstanceFlowMapper; import com.qs.serve.modules.baz.mapper.BazVisitMapper; @@ -253,5 +254,10 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl selectBazVisitInstanceList(BazVisitInstance param) { + return super.baseMapper.selectBazVisitInstanceList(param); + } } diff --git a/src/main/java/com/qs/serve/modules/biz/controller/BizVisitController.java b/src/main/java/com/qs/serve/modules/biz/controller/BizVisitController.java index 37f406e0..4cd226e5 100644 --- a/src/main/java/com/qs/serve/modules/biz/controller/BizVisitController.java +++ b/src/main/java/com/qs/serve/modules/biz/controller/BizVisitController.java @@ -69,6 +69,35 @@ public class BizVisitController { return R.byPageHelperList(list); } + /** + * 列表(我的下属拜访记录) + * @param param + * @return + */ + @GetMapping("/list4Under") + public R> list4Under(BizVisit param){ + List userIds = postUserService.listByChildIds(AuthContextUtils.getSysUserId()); + if(userIds.size()<1){ + return R.ok(); + } + LambdaQueryWrapper visitWrapper = this.getBizVisitLambdaQueryWrapper(param); + visitWrapper.in(BizVisit::getVisitorId,userIds); + List list = bizVisitService.list(visitWrapper); + return R.ok(list); + } + + /** + * 列表 + * @param param + * @return + */ + @GetMapping("/list") + public R> getList(BizVisit param){ + LambdaQueryWrapper visitWrapper = this.getBizVisitLambdaQueryWrapper(param); + List list = bizVisitService.list(visitWrapper); + return R.ok(list); + } + @NotNull private LambdaQueryWrapper getBizVisitLambdaQueryWrapper(BizVisit param) { LambdaQueryWrapper visitWrapper = new LambdaQueryWrapper<>(param); diff --git a/src/main/java/com/qs/serve/modules/biz/controller/my/BizVisitMyController.java b/src/main/java/com/qs/serve/modules/biz/controller/my/BizVisitMyController.java index 47c1191a..bd46a2a7 100644 --- a/src/main/java/com/qs/serve/modules/biz/controller/my/BizVisitMyController.java +++ b/src/main/java/com/qs/serve/modules/biz/controller/my/BizVisitMyController.java @@ -37,6 +37,20 @@ public class BizVisitMyController { private SysUserService sysUserService; private SysPostUserService postUserService; + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/list") + public R> getList(BizVisit param){ + String userId = AuthContextUtils.getSysUserId(); + param.setVisitorId(userId); + LambdaQueryWrapper visitWrapper = this.getBizVisitLambdaQueryWrapper(param); + List list = bizVisitService.list(visitWrapper); + return R.ok(list); + } + /** * 翻页 * @param param diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplierAddress.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplierAddress.java index f815edea..d9c7c9f8 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplierAddress.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplierAddress.java @@ -71,7 +71,7 @@ public class BmsSupplierAddress implements Serializable { /** 手机号 */ @NotBlank(message = "手机号不能为空") - @Length(max = 30,message = "手机号长度不能超过30字") + @Length(max = 250,message = "手机号长度不能超过30字") private String phone; /** 收件人 */ diff --git a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java index 5d62d860..c6817590 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java +++ b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java @@ -11,7 +11,11 @@ import com.qs.serve.common.util.PageUtil; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplierAddress; import com.qs.serve.modules.bms.service.BmsSupplierAddressService; +import com.qs.serve.modules.goods.entity.GoodsCategory; +import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.service.GoodsCategoryRuleService; +import com.qs.serve.modules.goods.service.GoodsCategoryService; +import com.qs.serve.modules.goods.service.GoodsSpuService; import com.qs.serve.modules.oms.entity.OmsOrder; import com.qs.serve.modules.oms.entity.OmsOrderItem; import com.qs.serve.modules.oms.entity.bo.OmsCancelOrder; @@ -46,6 +50,8 @@ public class OmsOrderApi { private BmsSupplierAddressService bmsSupplierAddressService; private SysUserService sysUserService; private GoodsCategoryRuleService goodsCategoryRuleService; + private GoodsSpuService goodsSpuService; + private GoodsCategoryService goodsCategoryService; /** * 确认订单 @@ -157,6 +163,12 @@ public class OmsOrderApi { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(OmsOrderItem::getOrderId,id); List list = omsOrderItemService.list(lqw); + for (OmsOrderItem orderItem : list) { + GoodsSpu goodsSpu = goodsSpuService.getById(orderItem.getSpuId()); + GoodsCategory goodsCategory = goodsCategoryService.getById(goodsSpu.getCategoryLast()); + orderItem.setCategoryInfo(goodsCategory); + orderItem.setSpuInfo(goodsSpu); + } omsOrder.setOrderItems(list); return R.ok(omsOrder); } @@ -186,16 +198,11 @@ public class OmsOrderApi { * @param id * @return */ - @PostMapping("/buildPriceOrder") + @PostMapping("/buildPriceOrder/{id}") @SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.DELETE) public R buildPriceOrder(@PathVariable("id") String id){ - OmsOrder omsOrder = omsOrderService.getById(id); - String userId = AuthContextUtils.getSysUserId(); - if(omsOrder==null || !omsOrder.getUserId().equals(userId)){ - return R.error("订单不存在或被移除"); - } - - return R.error(); + omsOrderService.buildPriceOrder(id); + return R.ok(); } diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java index 88587d93..751c98f6 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java @@ -118,5 +118,12 @@ public class OmsOrderItem implements Serializable { @TableField(exist = false) private List assessInfoList; + /** Spu */ + @TableField(exist = false) + private Object spuInfo; + + /** 分类 */ + @TableField(exist = false) + private Object categoryInfo; } diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrder.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrder.java new file mode 100644 index 00000000..94992c77 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrder.java @@ -0,0 +1,184 @@ +package com.qs.serve.modules.oms.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 2023-10-09 + */ +@Data +@TableName("oms_xlt_order") +public class OmsXltOrder implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + /** 订单号 */ + @NotBlank(message = "订单号不能为空") + @Length(max = 100,message = "订单号长度不能超过100字") + @TableField("dingDanHao") + private String dingDanHao; + + /** 申请日期 */ + @Length(max = 0,message = "申请日期长度不能超过0字") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField("shenQingRiQi") + private LocalDateTime shenQingRiQi; + + /** 客户编号 */ + @NotBlank(message = "客户编号不能为空") + @Length(max = 100,message = "客户编号长度不能超过100字") + @TableField("keHuBianHao") + private String keHuBianHao; + + /** 收货地址 */ + @Length(max = 100,message = "收货地址长度不能超过100字") + @TableField("shouHuoDiZhi") + private String shouHuoDiZhi; + + /** 人员编号 */ + @Length(max = 100,message = "人员编号长度不能超过100字") + @TableField("renYuanBianHao") + private String renYuanBianHao; + + /** 注意事项 */ + @TableField("zhuYiShiXian") + private String zhuYiShiXian; + + /** 写入时间 */ + @NotNull(message = "写入时间不能为空") + @Length(max = 0,message = "写入时间长度不能超过0字") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField("xieRuShiJian") + private LocalDateTime xieRuShiJian; + + /** 处理时间 */ + @Length(max = 0,message = "处理时间长度不能超过0字") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField("chuLiShiJian") + private LocalDateTime chuLiShiJian; + + /** 状态 */ + @TableField("zhuangTai") + private Integer zhuangTai; + + /** 行创建日期 */ + @Length(max = 0,message = "行创建日期长度不能超过0字") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField("rowCreateDate") + private LocalDateTime rowCreateDate; + + /** 人员姓名 */ + @Length(max = 100,message = "人员姓名长度不能超过100字") + @TableField("renYuanXingMing") + private String renYuanXingMing; + + /** 人员电话 */ + @Length(max = 100,message = "人员电话长度不能超过100字") + @TableField("renYuanDianHua") + private String renYuanDianHua; + + /** 限制纬度 */ + @Length(max = 100,message = "限制纬度长度不能超过100字") + @TableField("xianZhiWeiDu") + private String xianZhiWeiDu; + + /** 限制纬度名称 */ + @Length(max = 100,message = "限制纬度名称长度不能超过100字") + @TableField("xianZhiWeiDuMingChen") + private String xianZhiWeiDuMingChen; + + /** 状态:0未使用;1报价单;2销售订单 */ + private Integer status; + + + + /** + * 人员名称 + */ + @TableField("empName") + private String empName; + + /** + * 客户编码 + */ + @TableField("cusCode") + private String cusCode; + + /** + * 客户名称 + */ + @TableField("cusName") + private String cusName; + + /** + * 城市 + */ + @TableField("dealerCity") + private String dealerCity; + + /** + * 省份 + */ + @TableField("dealerProvince") + private String dealerProvince; + + /** + * 区域 + */ + @TableField("dealerArea") + private String dealerArea; + + /** 创建时间 */ + @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/OmsXltOrderItem.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrderItem.java new file mode 100644 index 00000000..3da438b7 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrderItem.java @@ -0,0 +1,124 @@ +package com.qs.serve.modules.oms.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 2023-10-09 + */ +@Data +@TableName("oms_xlt_order_item") +public class OmsXltOrderItem implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.ASSIGN_ID) + private String id; + + /** 订单id */ + @NotBlank(message = "订单id不能为空") + @Length(max = 100,message = "订单id长度不能超过100字") + @TableField("dingDanID") + private String dingDanID; + + /** 产品编号 */ + @Length(max = 100,message = "产品编号长度不能超过100字") + @TableField("chanPinBianHao") + private String chanPinBianHao; + + /** 产品单位 */ + @Length(max = 100,message = "产品单位长度不能超过100字") + @TableField("chanPinDanWei") + private String chanPinDanWei; + + /** 订货数量 */ + @TableField("dingHuoShuLiang") + private Integer dingHuoShuLiang; + + /** 搭赠数量 */ + @TableField("daZengShuLiang") + private BigDecimal daZengShuLiang; + + /** 产品原件 */ + @TableField("chanPinYuanJia") + private BigDecimal chanPinYuanJia; + + /** 产品现价 */ + @TableField("chanPinXianJia") + private BigDecimal chanPinXianJia; + + /** 写入时间 */ + @NotNull(message = "写入时间不能为空") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField("xieRuShiJian") + private LocalDateTime xieRuShiJian; + + /** 处理时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField("chuLiShiJian") + private LocalDateTime chuLiShiJian; + + /** 状态 */ + @TableField("zhuangTai") + private Integer zhuangTai; + + /** 行创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField("rowCreateDate") + private LocalDateTime rowCreateDate; + + /** 备注 */ + @TableField("beiZhu") + private String beiZhu; + + /** 创建时间 */ + @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/mapper/OmsXltOrderItemMapper.java b/src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderItemMapper.java new file mode 100644 index 00000000..c2c3ad9d --- /dev/null +++ b/src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderItemMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.oms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.oms.entity.OmsXltOrderItem; + +/** + * 销路通订单明细 Mapper + * @author YenHex + * @date 2023-10-09 + */ +public interface OmsXltOrderItemMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderMapper.java b/src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderMapper.java new file mode 100644 index 00000000..01847059 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/oms/mapper/OmsXltOrderMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.oms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.oms.entity.OmsXltOrder; + +/** + * 销路通订单 Mapper + * @author YenHex + * @date 2023-10-09 + */ +public interface OmsXltOrderMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java index 7f28eb69..6b5b87d0 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java @@ -3,17 +3,20 @@ package com.qs.serve.modules.oms.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.common.util.*; +import com.qs.serve.modules.bms.entity.BmsRegion; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplierAddress; +import com.qs.serve.modules.bms.mapper.BmsRegionMapper; import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; import com.qs.serve.modules.bms.service.BmsSupplierAddressService; +import com.qs.serve.modules.goods.entity.GoodsCategoryRule; import com.qs.serve.modules.goods.entity.GoodsSku; import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; +import com.qs.serve.modules.goods.mapper.GoodsCategoryRuleMapper; import com.qs.serve.modules.goods.service.GoodsSkuService; import com.qs.serve.modules.goods.service.GoodsSpuService; -import com.qs.serve.modules.oms.entity.OmsOrderItem; -import com.qs.serve.modules.oms.entity.OmsShoppingCart; +import com.qs.serve.modules.oms.entity.*; import com.qs.serve.modules.oms.entity.bo.*; import com.qs.serve.modules.oms.entity.dto.ErpOfferOrderParam; import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount; @@ -21,6 +24,8 @@ import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey; import com.qs.serve.modules.oms.entity.dto.ShoppingCartsCheckResult; import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult; import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo; +import com.qs.serve.modules.oms.mapper.OmsXltOrderItemMapper; +import com.qs.serve.modules.oms.mapper.OmsXltOrderMapper; import com.qs.serve.modules.oms.service.OmsOrderItemService; import com.qs.serve.modules.oms.service.OmsShoppingCartService; import com.qs.serve.modules.sale.entity.SalePlan; @@ -35,12 +40,12 @@ import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; -import com.qs.serve.modules.oms.entity.OmsOrder; import com.qs.serve.modules.oms.service.OmsOrderService; import com.qs.serve.modules.oms.mapper.OmsOrderMapper; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -54,17 +59,24 @@ import java.util.stream.Collectors; @AllArgsConstructor public class OmsOrderServiceImpl extends ServiceImpl implements OmsOrderService { - private OmsShoppingCartService omsShoppingCartService; private GoodsSkuService goodsSkuService; private GoodsSpuService goodsSpuService; + private GoodsCategoryRuleMapper goodsCategoryRuleMapper; + private BmsSupplierMapper bmsSupplierMapper; + private BmsRegionMapper bmsRegionMapper; private BmsSupplierAddressService bmsSupplierAddressService; + private SysUserService sysUserService; private SysDeptService sysDeptService; - private OmsOrderItemService omsOrderItemService; private SalePlanMapper salePlanMapper; private SalePlanGoodsMapper salePlanGoodsMapper; + private OmsOrderItemService omsOrderItemService; + private OmsXltOrderMapper omsXltOrderMapper; + private OmsXltOrderItemMapper omsXltOrderItemMapper; + private OmsShoppingCartService omsShoppingCartService; + @Override public OmsConfirmOrderResult confirmOrder(OmsOrderBo confirmOrder) { @@ -170,8 +182,8 @@ public class OmsOrderServiceImpl extends ServiceImpl im @Override @Transactional(rollbackFor = Exception.class) public void modifyOrder(OmsOrderModifyParam param) { - OmsOrder order = super.getById(param.getUserId()); - if(order.getStatus().equals(0)){ + OmsOrder order = super.getById(param.getId()); + if(!order.getStatus().equals(0)){ Assert.throwEx("非草稿状态订单无法修改"); } order.setId(param.getId()); @@ -214,16 +226,20 @@ public class OmsOrderServiceImpl extends ServiceImpl im orderItem.setSpuId(goodsSpu.getId()); orderItem.setSpuCode(goodsSpu.getSpuCode()); orderItem.setSpuTitle(goodsSpu.getName()); - if(goodsSku==null){ + if(goodsSku!=null){ orderItem.setSkuId(goodsSku.getId()); orderItem.setSkuCode(goodsSku.getSkuCode()); orderItem.setSpecValues(goodsSku.getSpecInfos()); - orderItem.setSkuUnit(null); - orderItem.setSkuImg(null); + orderItem.setSkuUnit(goodsSku.getUnitName()); + orderItem.setSkuImg(goodsSku.getPicUrl()); orderItem.setSalesPrice(goodsSku.getSalesPrice()); orderItem.setCusPrice(goodsSku.getSalesPrice()); orderItem.setMarketPrice(goodsSku.getMarketPrice()); }else { + orderItem.setSkuId(0L); + orderItem.setSkuCode(""); + orderItem.setSkuUnit(""); + orderItem.setSkuImg(null); orderItem.setSpecValues(goodsSpu.getName()); orderItem.setSalesPrice(BigDecimal.ZERO); orderItem.setCusPrice(BigDecimal.ZERO); @@ -374,22 +390,20 @@ public class OmsOrderServiceImpl extends ServiceImpl im public void buildPriceOrder(String id) { OmsOrder omsOrder = super.getById(id); String userId = AuthContextUtils.getSysUserId(); - SysUser sysUser = sysUserService.getById(userId); - SysDept dept = sysDeptService.getById(sysUser.getDeptId()); - if(omsOrder==null || !omsOrder.getUserId().equals(userId)){ - Assert.throwEx("订单不存在或被移除"); - } +// if(omsOrder==null || !omsOrder.getUserId().equals(userId)){ +// Assert.throwEx("订单不存在或被移除"); +// } LambdaQueryWrapper iteLqw = new LambdaQueryWrapper<>(); iteLqw.eq(OmsOrderItem::getOrderId,id); - List list = omsOrderItemService.list(iteLqw); + List orderItemList = omsOrderItemService.list(iteLqw); - List spuIds = list.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); + List spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); - //TODO 通过当前函数获取当前账套对于的skuID - List spuToSkuKeys = this.getSpuToSkuInfo("",spuIds); + //通过当前函数获取当前账套对于的skuID,默认全部转化为开平的sku + List spuToSkuKeys = this.getSpuToSkuInfo("001",spuIds); - for (OmsOrderItem orderItem : list) { + for (OmsOrderItem orderItem : orderItemList) { if( orderItem.getSkuId()!=null && !orderItem.getSkuId().equals(0L) ){ continue; } @@ -413,8 +427,80 @@ public class OmsOrderServiceImpl extends ServiceImpl im } } //更新设置sku后的信息 - omsOrderItemService.updateBatchById(list); + omsOrderItemService.updateBatchById(orderItemList); + + //直接调用U8接口生成 + //SysUser sysUser = sysUserService.getById(userId); + //SysDept dept = sysDeptService.getById(sysUser.getDeptId()); + //this.toU8Api(omsOrder, sysUser, dept, orderItemList); + + //加载关联数据 + BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(omsOrder.getSupplierAddrId()); + GoodsCategoryRule categoryRule = goodsCategoryRuleMapper.selectById(omsOrder.getBrandRuleId()); + String brands = Arrays.stream(categoryRule.getBrandNames()).collect(Collectors.joining(",")); + BmsSupplier supplier = bmsSupplierMapper.selectById(omsOrder.getSupplierId()); + String lastRegionId = supplier.getRegionLast(); + BmsRegion bmsRegion = bmsRegionMapper.selectById(lastRegionId); + //保存到临时表-主表 + LocalDateTime nowTime = LocalDateTime.now(); + OmsXltOrder xltOrder = new OmsXltOrder(); + xltOrder.setId(IdUtil.getSnowFlakeId()+""); + xltOrder.setDingDanHao(omsOrder.getOrderSn()); + xltOrder.setShenQingRiQi(nowTime); + xltOrder.setKeHuBianHao(omsOrder.getSupplierCode()); + xltOrder.setShouHuoDiZhi(supplierAddress.getDetail()); + xltOrder.setRenYuanBianHao(omsOrder.getUserCode()); + xltOrder.setZhuYiShiXian(omsOrder.getRemark()); + xltOrder.setXieRuShiJian(nowTime); + xltOrder.setChuLiShiJian(null); + xltOrder.setRowCreateDate(nowTime); + xltOrder.setRenYuanXingMing(omsOrder.getUserName()); + xltOrder.setRenYuanDianHua(omsOrder.getUserPhone()); + xltOrder.setXianZhiWeiDu("品牌"); + xltOrder.setXianZhiWeiDuMingChen(brands); + xltOrder.setZhuangTai(0); + //状态:0未使用;1报价单;2销售订单 + xltOrder.setStatus(0); + + xltOrder.setEmpName(omsOrder.getUserName()); + xltOrder.setCusCode(omsOrder.getSupplierCode()); + xltOrder.setCusName(omsOrder.getSupplierName()); + + String[] regions = bmsRegion.getPathNames().split("_"); + if(regions.length>1){ + xltOrder.setDealerProvince(regions[1]); + } + if(regions.length>0){ + xltOrder.setDealerCity(regions[0]); + } + xltOrder.setDealerArea(bmsRegion.getPathNames()); + + omsXltOrderMapper.insert(xltOrder); + //保存到临时表-明细表 + for (OmsOrderItem orderItem : orderItemList) { + OmsXltOrderItem xltOrderItem = new OmsXltOrderItem(); + xltOrderItem.setDingDanID(xltOrder.getId()); + xltOrderItem.setChanPinBianHao(orderItem.getSkuCode()); + xltOrderItem.setChanPinDanWei(orderItem.getSkuUnit()); + xltOrderItem.setDingHuoShuLiang(orderItem.getQuantity()); + xltOrderItem.setDaZengShuLiang(BigDecimal.ZERO); + xltOrderItem.setChanPinYuanJia(orderItem.getMarketPrice()); + xltOrderItem.setChanPinXianJia(orderItem.getSalesPrice()); + xltOrderItem.setXieRuShiJian(nowTime); + xltOrderItem.setChuLiShiJian(null); + xltOrderItem.setRowCreateDate(nowTime); + xltOrderItem.setBeiZhu(null); + xltOrderItem.setZhuangTai(0); + omsXltOrderItemMapper.insert(xltOrderItem); + } + + //更新订单 + omsOrder.setStatus(1); + this.updateById(omsOrder); + } + + private void toU8Api(OmsOrder omsOrder, SysUser sysUser, SysDept dept, List list) { List inventoryItemList = new ArrayList<>(); for (OmsOrderItem orderItem : list) { ErpOfferOrderParam.InventoryItem inventoryItem = new ErpOfferOrderParam.InventoryItem(); @@ -447,19 +533,40 @@ public class OmsOrderServiceImpl extends ServiceImpl im offerOrder.setInventoryItemList(inventoryItemList); offerOrder.setCusName(omsOrder.getSupplierName()); offerOrder.setMakerName(sysUser.getName()); - - } /** * TODO: 根据账套,获取spuId对应的skuId - * @param book - * @param spuIds - * @return + * @param book 账套 + * @param spuIds 嘉士利的SKU-CODE + * @return 嘉士利的invCode */ public List getSpuToSkuInfo(String book, List spuIds){ - return null; + //TODO 测试数据 + List rs = new ArrayList<>(); + Long[] skuIds = {2315912284L, + 2315912286L, + 2315912287L, + 2315912288L, + 2315912289L, + 2315912290L, + 2315912291L, + 2315912292L, + 2315912293L, + 2315912294L, + 2315912295L, + 2315912296L, + 2315912297L, + 2315912298L, + 2315912300L,}; + for (int i = 0; i < spuIds.size(); i++) { + OmsSpuToSkuKey skuKey = new OmsSpuToSkuKey(); + skuKey.setSpuId(spuIds.get(i)); + skuKey.setSkuId(skuIds[i]); + rs.add(skuKey); + } + return rs; } } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java index 2970d1c0..165d0468 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qs.serve.common.model.consts.SysConfigKey; import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.CollectionUtil; +import com.qs.serve.common.util.JsonUtil; import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.sys.service.SysConfigService; import com.qs.serve.modules.tbs.common.TbsGoodsType; @@ -21,6 +22,7 @@ import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper; import com.qs.serve.modules.tbs.mapper.TbsScheduleItemBudgetMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; @@ -200,6 +202,17 @@ public class TbsBudgetApplicationService { List scheduleItemList = this.loadScheduleBudgetAndSetting(activityList, budgetIds, noBudgetActivityIds,costSortWrapper); List centerIds = activityCenterList.stream().map(TbsActivityCenter::getCenterId).collect(Collectors.toList()); List subjectIds = activitySubjects.stream().map(TbsActivitySubject::getSubjectId).collect(Collectors.toList()); + //通过模板限制,选中指定的预算 + List limitBudgetIds = new ArrayList<>(); + for (TbsActivity activity : activityList) { + if(StringUtils.hasText(activity.getTemplateBudgetIds())){ + List budgetIdsList = Arrays.stream(activity.getTemplateBudgetIds().split(",")).map(Long::parseLong) + .collect(Collectors.toList()); + limitBudgetIds.addAll(budgetIdsList); + } + } + // budgetIds交集 + budgetIds = (List) CollectionUtils.intersection(budgetIds, limitBudgetIds); // 加载所有条件 List budgetList; if(budgetIds.size()>0){ @@ -232,6 +245,7 @@ public class TbsBudgetApplicationService { List noConditionBudgetList = new ArrayList<>(); boolean budgetNoCondition = this.loadConditionByBudgetsAndMatch(budgetList, noConditionBudgetList); //预算条件需包含活动条件, Map结构:活动id->满足的预算id列表 + //非严谨过滤,后续调用 this.filterMatchGoodsCondition(...) 过滤 Map> activityAllowBudgetIdMap = this.buildActivityBudgetMap(activityList, budgetList, noConditionBudgetList); costSortWrapper.setActivityAllowBudgetId(activityAllowBudgetIdMap); //活动拦截 @@ -347,21 +361,16 @@ public class TbsBudgetApplicationService { for (TbsBudget budget : budgetList) { if(budget.getConditionFlag().equals(1)){ List budgetConditionList = budget.getBudgetConditionList(); - boolean hasNoMatch = false; + boolean matchGoods = false; for (TbsActivityGoods activityGoods : activityGoodsList) { - boolean matchGoods = false; for (TbsBudgetCondition budgetCondition : budgetConditionList) { if(activityGoods.getTargetLevelPathIds().contains(budgetCondition.getTargetLevelPathIds())){ matchGoods = true; break; } } - if(!matchGoods){ - hasNoMatch = true; - break; - } } - if(!hasNoMatch){ + if(matchGoods){ List budgetIds = activityAllowBudgetIdMap.get(activity.getId()); if(budgetIds==null){ budgetIds = new ArrayList<>(); @@ -370,6 +379,36 @@ public class TbsBudgetApplicationService { budgetIds.addAll(budgetIdsOfActivity); activityAllowBudgetIdMap.put(activity.getId(),budgetIds); } + else { + log.warn("无法匹配条件预算[{}],\n条件:{},\n活动商品数据:{}", + budget.getBudgetCode(), + JsonUtil.objectToJson(budgetConditionList), + JsonUtil.objectToJson(activityGoodsList)); + } + +// for (TbsActivityGoods activityGoods : activityGoodsList) { +// boolean matchGoods = false; +// for (TbsBudgetCondition budgetCondition : budgetConditionList) { +// if(activityGoods.getTargetLevelPathIds().contains(budgetCondition.getTargetLevelPathIds())){ +// matchGoods = true; +// break; +// } +// } +// if(!matchGoods){ +// hasNoMatch = true; +// break; +// } +// } +// if(!hasNoMatch){ +// List budgetIds = activityAllowBudgetIdMap.get(activity.getId()); +// if(budgetIds==null){ +// budgetIds = new ArrayList<>(); +// } +// budgetIds.add(budget.getId()); +// budgetIds.addAll(budgetIdsOfActivity); +// activityAllowBudgetIdMap.put(activity.getId(),budgetIds); +// } + }else { List budgetIds = activityAllowBudgetIdMap.get(activity.getId()); if(budgetIds==null){ @@ -510,6 +549,8 @@ public class TbsBudgetApplicationService { //过滤满全条件的预算 List allowBudgetIds = activityAllowBudgetIdMap.get(activityCostItem.getActivityId()); if(CollectionUtil.isEmpty(allowBudgetIds)){ + log.warn("[{}]{} 无预算,成本中心:{},科目:{}",activityCostItem.getTargetCode() + ,activityCostItem.getTargetName(),activityCostItem.getCenterName(),activityCostItem.getSubjectName()); //添加到预算超支表 activityCostItem.setBudgetId(0L); activityCostItem.setScheduleId(0L); @@ -603,6 +644,8 @@ public class TbsBudgetApplicationService { if (throwEx){ Assert.throwEx("品类["+ activityCostItem.getTargetName()+"]预算不足"); } + log.warn("[{}]{} 预算不足,成本中心:{},科目:{}",activityCostItem.getTargetCode() + ,activityCostItem.getTargetName(),activityCostItem.getCenterName(),activityCostItem.getSubjectName()); if(overspend){ TbsScheduleItemBudget itemBudget = currentScheduleItemBudgets.get(0); activityCostItem.setBudgetId(itemBudget.getBudgetId()); @@ -632,6 +675,8 @@ public class TbsBudgetApplicationService { if(throwEx){ Assert.throwEx("品类["+ activityCostItem.getTargetName()+"]无可用预算"); } + log.warn("[{}]{} 未命中考核期,成本中心:{},科目:{}",activityCostItem.getTargetCode() + ,activityCostItem.getTargetName(),activityCostItem.getCenterName(),activityCostItem.getSubjectName()); //添加到预算超支表 activityCostItem.setBudgetId(0L); activityCostItem.setScheduleId(0L); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java index a8b54b19..e7c8e6b2 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.tbs.service; import com.qs.serve.common.model.AmountDTO; import com.qs.serve.common.util.CollectionUtil; +import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.common.util.CostSort2WrapperUtil; import com.qs.serve.modules.tbs.entity.TbsActivity; @@ -36,6 +37,7 @@ public class TbsBudgetMatchApplication { public TbsBudgetTableResultVo getMatchResult(Long costApplyId,boolean buildTable){ List activityList = activityService.listByCostApplyId(costApplyId); + Map activityMap = new HashMap<>(activityList.size()); for (TbsActivity activity : activityList) { activityMap.put(activity.getId(),activity); 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 4c0bd9b9..89c388c4 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 @@ -907,6 +907,7 @@ public class PortalOfCostApplication { payPayment.setSupplierCode(supplier.getCode()); payPayment.setSupplierName(supplier.getName()); payPayment.setPayAmount(totalAmount); + payPayment.setCostApplyId(costApply.getId()); payPayment.setUserId(user.getId()); payPayment.setUserCode(user.getCode()); payPayment.setUserName(user.getName()); diff --git a/src/main/resources/mapper/baz/BazVisitInstanceMapper.xml b/src/main/resources/mapper/baz/BazVisitInstanceMapper.xml new file mode 100644 index 00000000..e274fb8d --- /dev/null +++ b/src/main/resources/mapper/baz/BazVisitInstanceMapper.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + baz_visit_instance.`id`, + baz_visit_instance.`title`, + baz_visit_instance.`visit_id`, + baz_visit_instance.`target_type`, + baz_visit_instance.`visit_state`, + baz_visit_instance.`visitor_id`, + baz_visit_instance.`visitor_code`, + baz_visit_instance.`visitor_name`, + baz_visit_instance.`target_id`, + baz_visit_instance.`target_code`, + baz_visit_instance.`target_name`, + baz_visit_instance.`target_local_x`, + baz_visit_instance.`target_local_y`, + baz_visit_instance.`target_address`, + baz_visit_instance.`target_map_address`, + baz_visit_instance.`finished_time`, + baz_visit_instance.`miss_local_flag`, + baz_visit_instance.`remark`, + baz_visit_instance.`position_status_content`, + baz_visit_instance.`position_status`, + baz_visit_instance.`create_time`, + baz_visit_instance.`update_time`, + baz_visit_instance.`tenant_id`, + baz_visit_instance.`del_flag`, + baz_visit_instance.`create_by`, + baz_visit_instance.`update_by` + + + +