diff --git a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderVO.java b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderVO.java index e29de826c..77edb1b38 100644 --- a/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderVO.java +++ b/blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/vo/AftersalesWorkOrderVO.java @@ -32,7 +32,6 @@ import java.util.List; @Data @EqualsAndHashCode(callSuper = true) public class AftersalesWorkOrderVO extends AftersalesWorkOrderEntity { - private static final long serialVersionUID = 1L; /** * 工单名称 */ diff --git a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataClientEntity.java b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataClientEntity.java index 23bbe8e87..c256b7bb8 100644 --- a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataClientEntity.java +++ b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataClientEntity.java @@ -138,7 +138,6 @@ public class BasicdataClientEntity extends TenantEntity { * 客户类型;1 C端 2 B端 */ @ApiModelProperty(value = "客户类型;1 C端 2 B端") - @TableField(exist = false) private Integer typeService; /** @@ -206,13 +205,13 @@ public class BasicdataClientEntity extends TenantEntity { * 合同开始时间 */ @ApiModelProperty(value = "合同开始时间") - @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd", timezone = "GMT+8") private Date contractStartTime; /** * 合同结束时间 */ @ApiModelProperty(value = "合同结束时间") - @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd", timezone = "GMT+8") private Date contractEntTime; @ApiModelProperty(value = "默认付款方式 1现付 2到付 3月结 4回付 5内部结算 ") diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java index c7344dd02..72d9df1d2 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesWorkOrderController.java @@ -123,18 +123,18 @@ public class AftersalesWorkOrderController extends BladeController { public R> getListOwn(@ApiIgnore @RequestParam Map aftersalesWorkOrder, Query query) { log.info("异常工单查询参数》》》{}",aftersalesWorkOrder); try{ - IPage pages = aftersalesWorkOrderService.pageListOwn(aftersalesWorkOrder, Condition.getPage(query)); - - R> data = R.data(AftersalesWorkOrderWrapper.build().pageVO(pages)); - BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); - if (ObjectUtils.isNotNull(myCurrentWarehouse)){ - data.getData().getRecords().forEach(item -> { - item.setTotalAmount(aftersalesCompletionRecordService.getTotalMoney(item,myCurrentWarehouse.getId())); - }); - }else{ - log.info("查询人不属于某个仓库"); - } - return data; + IPage pages = aftersalesWorkOrderService.pageListOwn(aftersalesWorkOrder, Condition.getPage(query)); + +// R> data = R.data(AftersalesWorkOrderWrapper.build().pageVO(pages)); +// BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); +// if (ObjectUtils.isNotNull(myCurrentWarehouse)){ +// data.getData().getRecords().forEach(item -> { +// item.setTotalAmount(aftersalesCompletionRecordService.getTotalMoney(item,myCurrentWarehouse.getId())); +// }); +// }else{ +// log.info("查询人不属于某个仓库"); +// } + return R.data(pages); }catch (Exception e){ log.error("工单查询系统异常》》》{}",e.getMessage()); return R.fail("系统异常!"); diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java index b6e0cc890..4db002322 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesWorkOrderService.java @@ -91,7 +91,7 @@ public interface IAftersalesWorkOrderService extends BaseService pageListOwn(Map aftersalesWorkOrder, IPage page); + IPage pageListOwn(Map aftersalesWorkOrder, IPage page); /** * 查询订单超时是否超时未处理 diff --git a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAppealServiceImpl.java b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAppealServiceImpl.java index 3d4c80f24..209eae6c2 100644 --- a/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAppealServiceImpl.java +++ b/blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAppealServiceImpl.java @@ -43,6 +43,7 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; import org.springblade.system.cache.DictBizCache; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.Wrapper; @@ -117,7 +118,7 @@ public class AftersalesAppealServiceImpl extends BaseServiceImpl selectAftersalesWorkOrderPage(IPage page, AftersalesWorkOrderVO aftersalesWorkOrder) { return page.setRecords(baseMapper.selectAftersalesWorkOrderPage(page, aftersalesWorkOrder)); @@ -328,7 +329,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl0){ + if (!Func.isEmpty(aftersalesWorkOrder.getVehicleRoute())) { + if (aftersalesWorkOrder.getVehicleRoute().indexOf(">") > 0) { String string = aftersalesWorkOrder.getVehicleRoute().replaceAll(">", ">"); aftersalesWorkOrder.setVehicleRoute(string); } @@ -366,7 +367,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl updateWrapper = Wrappers.lambdaUpdate() @@ -447,10 +448,10 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl packageEntityList = aftersalesWorkOrder.getPackageEntityList(); - if (!packageEntityList.isEmpty()){ + if (!packageEntityList.isEmpty()) { List collect = packageEntityList.stream().filter(f -> Objects.isNull(f.getFirst())).map(AftersalesAbnormalPackageEntity::getPackageCode).collect(Collectors.toList()); - if (!collect.isEmpty()){ - throw new RuntimeException(collect.stream().collect(Collectors.joining(","))+"无一级品信息"); + if (!collect.isEmpty()) { + throw new RuntimeException(collect.stream().collect(Collectors.joining(",")) + "无一级品信息"); } } //包件信息 @@ -702,7 +703,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl pageListOwn(Map aftersalesWorkOrder, IPage page) { +// //查询用户角色信息 +// BladeUser user = AuthUtil.getUser(); +// String roleName = user.getRoleName(); +// +// String tenantId = user.getTenantId(); +// // 查询 状态条件 +// //查询客服岗位 +// List warehouseType = DictBizCache.getList("after_sales_visits"); +// if (warehouseType.isEmpty()) { +// throw new ServiceException("注意,注意!售后访问字典未配置!请配置!"); +// } else { +// Optional first = warehouseType.stream().filter(i -> { +// if (i.getDictValue().equals(roleName)) { +// return true; +// } +// return false; +// }).findFirst(); +// Object workOrderStatus = aftersalesWorkOrder.get("workOrderStatus"); +// if (first.isPresent()) { +// //存在 +// String dictValue = first.get().getDictKey(); +// +// switch (dictValue) { +// case "1": //客服经理 查询全部待处理工单 +// //待处理 +// if (ObjectUtils.isNotNull(workOrderStatus) && "500".equals(workOrderStatus)) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("customerServiceState", "30"); +// } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daichuli.getValue().equals(workOrderStatus)) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("customerServiceState", "80"); //55的待审核 +// } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yichuli.getValue().equals(workOrderStatus)) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("customerServiceState", "60"); //55的待审核 +// } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus)) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("customerServiceState", "10"); +// } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daishenhe.getValue().equals(workOrderStatus)) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("customerServiceState", "40"); +// } else if (ObjectUtils.isNull(workOrderStatus)) { +// aftersalesWorkOrder.put("customerIdentification", "1"); +// } +// break; +// case "2": // 营业部客服 +// BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); +// if (ObjectUtils.isNotNull(myCurrentWarehouse)) { +// aftersalesWorkOrder.put("warehouseId", myCurrentWarehouse.getId()); +// } else { +// throw new ServiceException("请选择仓库!"); +// } +// //已处理 +// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yichuli.getValue())) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("handleStatus", "30"); +// } +// //待处理 +// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.daichuli.getValue())) { +// aftersalesWorkOrder.put("handleStatus", "40"); +// } +// //处理中 +// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.chulizhong.getValue())) { +// aftersalesWorkOrder.put("handleStatus", "50"); +// } +// //已完结 +// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yiwanjei.getValue())) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("handleStatus", "20"); +// } +// //全部 +// if (ObjectUtils.isNotNull(workOrderStatus) && "1000".equals(workOrderStatus)) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("handleStatus", "10"); +// } +//// if( ObjectUtils.isNull(workOrderStatus)){ +//// aftersalesWorkOrder.put("handleStatus","10"); +//// } +// +// break; +// case "3": //职能客服 查询自己的待处理工单 +// if (ObjectUtils.isNotNull(workOrderStatus) && "500".equals(workOrderStatus)) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("customerServiceState", "20"); +// aftersalesWorkOrder.put("customerServiceId", user.getUserId()); +// } else if (ObjectUtils.isNull(workOrderStatus)) { +// aftersalesWorkOrder.put("customerIdentification", "1"); +// } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus)) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("customerServiceState", "10"); +// } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daichuli.getValue().equals(workOrderStatus)) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("customerServiceState", "31"); // 待处理 +// aftersalesWorkOrder.put("customerServiceId", user.getUserId()); +// } +// break; +// } +// } else { +// //不存在 +// BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); +// if (ObjectUtils.isNotNull(myCurrentWarehouse)) { +// aftersalesWorkOrder.put("warehouseId", myCurrentWarehouse.getId()); +// } else { +// throw new ServiceException("请选择仓库!"); +// } +// //已处理 +// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yichuli.getValue())) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("handleStatus", "30"); +// } +// //待处理 +// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.daichuli.getValue())) { +// aftersalesWorkOrder.put("handleStatus", "40"); +// } +// //处理中 +// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.chulizhong.getValue())) { +// aftersalesWorkOrder.put("handleStatus", "50"); +// } +// //已完结 +// if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yiwanjei.getValue())) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("handleStatus", "20"); +// } +// //全部 +// if (ObjectUtils.isNotNull(workOrderStatus) && "1000".equals(workOrderStatus)) { +// aftersalesWorkOrder.remove("workOrderStatus"); +// aftersalesWorkOrder.put("handleStatus", "10"); +// } +// } +// } +// AftersalesWorkOrderEntity workOrderEntity = JSONObject.parseObject(JSONObject.toJSONString(aftersalesWorkOrder), AftersalesWorkOrderEntity.class); +// IPage iPage = baseMapper.pageListOwn(page, workOrderEntity); +// +// +// iPage.getRecords().forEach(i -> { +// if (ObjectUtils.isNotNull(i.getCustomerServiceId())) { +// R> listR = userSearchClient.listByUser(String.valueOf(i.getCustomerServiceId())); +// if (ObjectUtils.isNotNull(listR.getData())) { +// listR.getData().forEach(a -> { +// long time = System.currentTimeMillis() / 1000; //当前时间 +// if (ObjectUtils.isNotNull(a.getDownTime())) { +// long l = a.getDownTime().getTime() / 1000; //停用时间 +// if (l <= time) { +// // 已停用 +// i.setDepartStatus(true); //已离职 +// } +// } +// +// }); +// +// } +// } +// }); +// +// return iPage; +// } + + /** * 查询异常完整数据集合 * @@ -723,162 +889,203 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl pageListOwn(Map aftersalesWorkOrder, IPage page) { - //查询用户角色信息 + public IPage pageListOwn(Map aftersalesWorkOrder, IPage page) { + // 查询用户角色信息 BladeUser user = AuthUtil.getUser(); + if (user == null) { + throw new ServiceException("用户信息获取失败"); + } String roleName = user.getRoleName(); - String tenantId = user.getTenantId(); - // 查询 状态条件 - //查询客服岗位 + + // 查询 状态条件 List warehouseType = DictBizCache.getList("after_sales_visits"); if (warehouseType.isEmpty()) { throw new ServiceException("注意,注意!售后访问字典未配置!请配置!"); - } else { - Optional first = warehouseType.stream().filter(i -> { - if (i.getDictValue().equals(roleName)) { - return true; - } - return false; - }).findFirst(); - Object workOrderStatus = aftersalesWorkOrder.get("workOrderStatus"); - if (first.isPresent()) { - //存在 - String dictValue = first.get().getDictKey(); + } + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); - switch (dictValue) { - case "1": //客服经理 查询全部待处理工单 - //待处理 - if (ObjectUtils.isNotNull(workOrderStatus) && "500".equals(workOrderStatus)) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("customerServiceState", "30"); - } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daichuli.getValue().equals(workOrderStatus)) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("customerServiceState", "80"); //55的待审核 - }else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yichuli.getValue().equals(workOrderStatus)) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("customerServiceState", "60"); //55的待审核 - } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus)) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("customerServiceState", "10"); - } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daishenhe.getValue().equals(workOrderStatus)) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("customerServiceState", "40"); - } else if (ObjectUtils.isNull(workOrderStatus)) { - aftersalesWorkOrder.put("customerIdentification", "1"); - } - break; - case "2": // 营业部客服 - BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); - if (ObjectUtils.isNotNull(myCurrentWarehouse)) { - aftersalesWorkOrder.put("warehouseId", myCurrentWarehouse.getId()); - } else { - throw new ServiceException("请选择仓库!"); - } - //已处理 - if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yichuli.getValue())) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("handleStatus", "30"); - } - //待处理 - if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.daichuli.getValue())) { - aftersalesWorkOrder.put("handleStatus", "40"); - } - //处理中 - if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.chulizhong.getValue())) { - aftersalesWorkOrder.put("handleStatus", "50"); - } - //已完结 - if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yiwanjei.getValue())) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("handleStatus", "20"); - } - //全部 - if (ObjectUtils.isNotNull(workOrderStatus) && "1000".equals(workOrderStatus)) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("handleStatus", "10"); - } -// if( ObjectUtils.isNull(workOrderStatus)){ -// aftersalesWorkOrder.put("handleStatus","10"); -// } + if (Func.isEmpty(myCurrentWarehouse)) { + log.warn(">>>>myCurrentWarehouse {}",myCurrentWarehouse); + } - break; - case "3": //职能客服 查询自己的待处理工单 - if (ObjectUtils.isNotNull(workOrderStatus) && "500".equals(workOrderStatus)) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("customerServiceState", "20"); - aftersalesWorkOrder.put("customerServiceId", user.getUserId()); - } else if (ObjectUtils.isNull(workOrderStatus)) { - aftersalesWorkOrder.put("customerIdentification", "1"); - } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus)) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("customerServiceState", "10"); - } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daichuli.getValue().equals(workOrderStatus)) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("customerServiceState", "31"); // 待处理 - aftersalesWorkOrder.put("customerServiceId", user.getUserId()); - } - break; - } - } else { - //不存在 - BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); - if (ObjectUtils.isNotNull(myCurrentWarehouse)) { - aftersalesWorkOrder.put("warehouseId", myCurrentWarehouse.getId()); - } else { - throw new ServiceException("请选择仓库!"); - } - //已处理 - if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yichuli.getValue())) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("handleStatus", "30"); - } - //待处理 - if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.daichuli.getValue())) { - aftersalesWorkOrder.put("handleStatus", "40"); - } - //处理中 - if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.chulizhong.getValue())) { - aftersalesWorkOrder.put("handleStatus", "50"); - } - //已完结 - if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yiwanjei.getValue())) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("handleStatus", "20"); - } - //全部 - if (ObjectUtils.isNotNull(workOrderStatus) && "1000".equals(workOrderStatus)) { - aftersalesWorkOrder.remove("workOrderStatus"); - aftersalesWorkOrder.put("handleStatus", "10"); - } + Optional matchingDictBiz = warehouseType.stream() + .filter(i -> i.getDictValue().equals(roleName)) + .findFirst(); + + Object workOrderStatus = aftersalesWorkOrder.get("workOrderStatus"); + if (matchingDictBiz.isPresent()) { + String dictValue = matchingDictBiz.get().getDictKey(); + switch (dictValue) { + case "1": // 客服经理 + updateWorkOrderForManager(aftersalesWorkOrder, workOrderStatus); + break; + case "2": // 营业部客服 + updateWorkOrderForSales(aftersalesWorkOrder, workOrderStatus); + break; + case "3": // 职能客服 + updateWorkOrderForFunctional(aftersalesWorkOrder, workOrderStatus, user.getUserId()); + break; } + } else { + updateWorkOrderForOthers(aftersalesWorkOrder, workOrderStatus); } + AftersalesWorkOrderEntity workOrderEntity = JSONObject.parseObject(JSONObject.toJSONString(aftersalesWorkOrder), AftersalesWorkOrderEntity.class); IPage iPage = baseMapper.pageListOwn(page, workOrderEntity); - iPage.getRecords().forEach(i -> { - if (ObjectUtils.isNotNull(i.getCustomerServiceId())) { - R> listR = userSearchClient.listByUser(String.valueOf(i.getCustomerServiceId())); - if (ObjectUtils.isNotNull(listR.getData())) { - listR.getData().forEach(a -> { - long time = new Date().getTime() / 1000; //当前时间 - if (ObjectUtils.isNotNull(a.getDownTime())) { - long l = a.getDownTime().getTime() / 1000; //停用时间 - if (l <= time) { - // 已停用 - i.setDepartStatus(true); //已离职 - } - } + iPage.getRecords().forEach(i -> {}); - }); + // 需要判断当前作业仓库是否存在于责任方和处理方 +// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// queryWrapper.eq(AftersalesProcessorEntity::getWorkOrderId,) +// aftersalesProcessorService.list() - } + IPage data = AftersalesWorkOrderWrapper.build().pageVO(iPage); + + data.getRecords().forEach(i -> updateDepartStatus(i, user,myCurrentWarehouse)); + + + // 需要判断当前作业仓库是否存在于责任方和处理方 +// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// queryWrapper.eq(AftersalesProcessorEntity::getWorkOrderId,) +// aftersalesProcessorService.list() + + + return data; + } + + private void updateWorkOrderForManager(Map aftersalesWorkOrder, Object workOrderStatus) { + // 对客服经理的工单状态更新逻辑 + // 优化后的代码根据实际情况进行填充 + //待处理 + if (ObjectUtils.isNotNull(workOrderStatus) && "500".equals(workOrderStatus)) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("customerServiceState", "30"); + } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daichuli.getValue().equals(workOrderStatus)) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("customerServiceState", "80"); //55的待审核 + } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yichuli.getValue().equals(workOrderStatus)) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("customerServiceState", "60"); //55的待审核 + } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus)) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("customerServiceState", "10"); + } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daishenhe.getValue().equals(workOrderStatus)) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("customerServiceState", "40"); + } else if (ObjectUtils.isNull(workOrderStatus)) { + aftersalesWorkOrder.put("customerIdentification", "1"); + } + + + } + + private void updateWorkOrderForSales(Map aftersalesWorkOrder, Object workOrderStatus) { + // 对营业部客服的工单状态更新逻辑 + // 优化后的代码根据实际情况进行填充 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if (ObjectUtils.isNotNull(myCurrentWarehouse)) { + aftersalesWorkOrder.put("warehouseId", myCurrentWarehouse.getId()); + } else { + throw new ServiceException("请选择仓库!"); + } + //已处理 + if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yichuli.getValue())) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("handleStatus", "30"); + } + //待处理 + if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.daichuli.getValue())) { + aftersalesWorkOrder.put("handleStatus", "40"); + } + //处理中 + if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.chulizhong.getValue())) { + aftersalesWorkOrder.put("handleStatus", "50"); + } + //已完结 + if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yiwanjei.getValue())) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("handleStatus", "20"); + } + //全部 + if (ObjectUtils.isNotNull(workOrderStatus) && "1000".equals(workOrderStatus)) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("handleStatus", "10"); + } + } + + private void updateWorkOrderForFunctional(Map aftersalesWorkOrder, Object workOrderStatus, Long userId) { + // 对职能客服的工单状态更新逻辑 + // 优化后的代码根据实际情况进行填充 + if (ObjectUtils.isNotNull(workOrderStatus) && "500".equals(workOrderStatus)) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("customerServiceState", "20"); + aftersalesWorkOrder.put("customerServiceId", userId); + } else if (ObjectUtils.isNull(workOrderStatus)) { + aftersalesWorkOrder.put("customerIdentification", "1"); + } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.yiwanjei.getValue().equals(workOrderStatus)) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("customerServiceState", "10"); + } else if (ObjectUtils.isNotNull(workOrderStatus) && WorkOrderStatusConstant.daichuli.getValue().equals(workOrderStatus)) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("customerServiceState", "31"); // 待处理 + aftersalesWorkOrder.put("customerServiceId", userId); + } + } + + private void updateWorkOrderForOthers(Map aftersalesWorkOrder, Object workOrderStatus) { + // 对其他情况的工单状态更新逻辑 + // 优化后的代码根据实际情况进行填充 + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if (ObjectUtils.isNotNull(myCurrentWarehouse)) { + aftersalesWorkOrder.put("warehouseId", myCurrentWarehouse.getId()); + } else { + throw new ServiceException("请选择仓库!"); + } + //已处理 + if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yichuli.getValue())) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("handleStatus", "30"); + } + //待处理 + if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.daichuli.getValue())) { + aftersalesWorkOrder.put("handleStatus", "40"); + } + //处理中 + if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.chulizhong.getValue())) { + aftersalesWorkOrder.put("handleStatus", "50"); + } + //已完结 + if (ObjectUtils.isNotNull(workOrderStatus) && workOrderStatus.equals(WorkOrderStatusConstant.yiwanjei.getValue())) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("handleStatus", "20"); + } + //全部 + if (ObjectUtils.isNotNull(workOrderStatus) && "1000".equals(workOrderStatus)) { + aftersalesWorkOrder.remove("workOrderStatus"); + aftersalesWorkOrder.put("handleStatus", "10"); + } + } + + private void updateDepartStatus(AftersalesWorkOrderVO workOrder, BladeUser user, BasicdataWarehouseEntity myCurrentWarehouse) { + if (ObjectUtils.isNotNull(workOrder.getCustomerServiceId())) { + R> listR = userSearchClient.listByUser(String.valueOf(workOrder.getCustomerServiceId())); + if (ObjectUtils.isNotNull(listR.getData())) { + long time = System.currentTimeMillis() / 1000; + listR.getData().forEach(a -> { + if (ObjectUtils.isNotNull(a.getDownTime()) && a.getDownTime().getTime() / 1000 <= time) { + workOrder.setDepartStatus(true); + } + }); } - }); + } + workOrder.setTotalAmount(completionRecordService.getTotalMoney(workOrder,myCurrentWarehouse.getId())); - return iPage; + // } + /** * 查询工单超时未处理并添加超时记录 */ @@ -1147,7 +1354,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl processorVOS = new ArrayList<>(); if (!list.isEmpty()) { Iterator iterator = list.iterator(); - while (iterator.hasNext()){ + while (iterator.hasNext()) { AftersalesProcessorEntity next = iterator.next(); if (ProcessorProcessingStatusStatusConstant.daichuli.getValue().equals(next.getProcessingStatus()) - || ProcessorProcessingStatusStatusConstant.yichuli.getValue().equals(next.getProcessingStatus())){ + || ProcessorProcessingStatusStatusConstant.yichuli.getValue().equals(next.getProcessingStatus())) { AftersalesProcessorVO processorVO = new AftersalesProcessorVO(); BeanUtil.copyProperties(next, processorVO); processorVOS.add(processorVO); - }else { + } else { iterator.remove(); } } @@ -1201,8 +1408,8 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl list4 = completionRecordService.list(Wrappers.query().lambda() .eq(AftersalesCompletionRecordEntity::getWorkOrderId, aftersalesWorkOrder.getId()) ); - if (Func.isNotEmpty(list4)){ - list4.forEach(i->{ + if (Func.isNotEmpty(list4)) { + list4.forEach(i -> { BigDecimal bigDecimal = i.getMoney().setScale(2, BigDecimal.ROUND_FLOOR); i.setMoney(bigDecimal); }); @@ -1328,7 +1532,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl list = new ArrayList<>(); - data.stream().forEach(k -> { + data.forEach(k -> { //查询工单数据是否存在 AftersalesWorkOrderEntity workOrder = baseMapper.selectOne(Wrappers.query().lambda() .eq(AftersalesWorkOrderEntity::getWorkOrderNumber, k) @@ -1408,7 +1612,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl stringList = new ArrayList<>(); - warehouseType.stream().forEach(i -> { + warehouseType.forEach(i -> { //查询这个角色ID R roleId = sysClient.getRoleIds(tenantId, i.getDictValue()); if (ObjectUtils.isNotNull(roleId.getData())) { @@ -1752,7 +1956,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl 0; +// } + /** * 修改申述状态数据 * @@ -2239,21 +2472,52 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl 0; + } catch (Exception e) { + log.error("处理申诉信息时发生异常", e); + // 异常处理:记录日志或抛出自定义异常 + throw new RuntimeException("处理申诉信息时发生异常", e); } - return aftersalesAppealService.updateById(aftersalesAppeal) > 0; } + /** * 修改结束仲裁 * @@ -2306,7 +2570,7 @@ public class AftersalesWorkOrderServiceImpl extends BaseServiceImpl warehouseList = warehouseClient.getMyWarehouseList(); List warehouseListIds = null; - if (!warehouseList.isEmpty()){ - warehouseListIds = warehouseList.stream().map(BasicdataWarehouseEntity::getId).collect(Collectors.toList()); + if (!warehouseList.isEmpty()) { + warehouseListIds = warehouseList.stream().map(BasicdataWarehouseEntity::getId).collect(Collectors.toList()); } AftersalesWorkOrderListExcelDTO aftersalesWorkOrderListExcelDTO = new AftersalesWorkOrderListExcelDTO(); List allAftersalesWorkOrderExcels = baseMapper.selectAllAftersalesWorkOrderList(warehouseListIds); diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataClientController.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataClientController.java index 95e47d4de..eeacf9d91 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataClientController.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataClientController.java @@ -16,6 +16,7 @@ */ package com.logpm.basicdata.controller; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; @@ -106,7 +107,8 @@ public class BasicdataClientController extends BladeController { @GetMapping("/list") @ApiOperationSupport(order = 2) @ApiOperation(value = "分页", notes = "传入basicdataClient") - public R> list(@ApiIgnore @RequestParam Map basicdataClient, Query query) { + public R> list(@ApiIgnore @RequestParam Map basicdataClient, Query query) { + Object o = basicdataClient.get("contractStartTime"); Object o1 = basicdataClient.get("contractEntTime"); Object o2 = basicdataClient.get("pid"); @@ -134,7 +136,8 @@ public class BasicdataClientController extends BladeController { i.setTypeServiceBusiness(list); //查询客户绑定第一位联系人 List listed = basicdataStoreContactService.list(Wrappers.query().lambda() - .eq(BasicdataStoreContactEntity::getShopId, i.getId())); + .eq(BasicdataStoreContactEntity::getShopId, i.getId()) + .eq(BasicdataStoreContactEntity::getDefaultType, true)); if (Func.isNotEmpty(listed)) { List collect = listed.stream().filter(f -> Func.isEmpty(f.getCreateTime())).collect(Collectors.toList()); if (Func.isNotEmpty(collect)){ @@ -165,14 +168,19 @@ public class BasicdataClientController extends BladeController { } } //处理客户的配送类型 + }); -// if(!i.getCreateUser().equals(null)){ -// R userR = userClient.userInfoById(i.getCreateUser()); -// i.setCreateUserName(userR.getData().getName()); -// } - }); - return R.data(pages); + + IPage basicdataClientVOIPage = basicdataClientService.pageList(Condition.getPage(query), basicdataClient); + if (!basicdataClientVOIPage.getRecords().isEmpty()) { + for (BasicdataClientVO record : basicdataClientVOIPage.getRecords()) { + List list = basicdataStoreBusinessService.list(Wrappers.query().lambda() + .eq(BasicdataStoreBusinessEntity::getClientId, record.getId())); + record.setTypeServiceBusiness(list); + } + } + return R.data(basicdataClientVOIPage); } /** diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.java index 4b1363753..ea6598fd5 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.java @@ -27,6 +27,7 @@ import org.apache.ibatis.annotations.Param; import org.springblade.common.model.dto.NameDTO; import java.util.List; +import java.util.Map; /** * 基础客户表 Mapper 接口 @@ -61,4 +62,13 @@ public interface BasicdataClientMapper extends BaseMapper List findNameByIds(@Param("sendOrgIds") List sendOrgIds); BasicdataClientVO findEntityVoById(@Param("clientId") Long clientId); + + /** + * + * @param page + * @param basicdataClient + * @return + */ + IPage pageList(IPage page,@Param("param") Map basicdataClient); + } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml index 3767da5aa..4bff75d5a 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataClientMapper.xml @@ -96,5 +96,79 @@ left join logpm_basicdata_store_contact lbsc on lbsc.shop_id = lbc.id where lbc.id = #{clientId} + diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataClientService.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataClientService.java index e02ac41ca..25bac7619 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataClientService.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataClientService.java @@ -28,6 +28,7 @@ import org.springblade.core.mp.base.BaseService; import java.security.NoSuchAlgorithmException; import java.util.List; +import java.util.Map; /** * 基础客户表 服务类 @@ -100,4 +101,14 @@ public interface IBasicdataClientService extends BaseService findNameByIds(List sendOrgIds); BasicdataClientVO findEntityVoById(Long clientId); + + + /** + * 客户列表查询 + * @param page + * @param basicdataClient + * @return + */ + IPage pageList(IPage page, Map basicdataClient); + } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java index b593b718c..6da1fcdc7 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataClientServiceImpl.java @@ -65,13 +65,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import static org.springblade.common.constant.DictBizConstant.OPEN_ORDER_PAY_WAY; @@ -128,9 +122,11 @@ public class BasicdataClientServiceImpl extends BaseServiceImpl typeServiceBusiness = basicdataClient.getTypeServiceBusiness(); List list = basicdataStoreBusinessService.list(Wrappers.query().lambda() .eq(BasicdataStoreBusinessEntity::getClientId, basicdataClient.getId()) ); @@ -178,9 +174,12 @@ public class BasicdataClientServiceImpl extends BaseServiceImpl pageList(IPage page, Map basicdataClient) { + + return baseMapper.pageList(page,basicdataClient); + } + + } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataStoreContactServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataStoreContactServiceImpl.java index f7bc5cfc9..82930eae4 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataStoreContactServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataStoreContactServiceImpl.java @@ -19,13 +19,17 @@ package com.logpm.basicdata.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.logpm.basicdata.entity.BasicdataClientEntity; import com.logpm.basicdata.entity.BasicdataStoreContactEntity; import com.logpm.basicdata.excel.BasicdataStoreContactExcel; import com.logpm.basicdata.mapper.BasicdataStoreContactMapper; +import com.logpm.basicdata.service.IBasicdataClientService; import com.logpm.basicdata.service.IBasicdataStoreContactService; import com.logpm.basicdata.vo.BasicdataStoreContactVO; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.util.List; @@ -41,6 +45,11 @@ import java.util.stream.Collectors; @Slf4j public class BasicdataStoreContactServiceImpl extends BaseServiceImpl implements IBasicdataStoreContactService { + @Autowired + @Lazy + private IBasicdataClientService basicdataClientService; + + @Override public IPage selectBasicdataStoreContactPage(IPage page, BasicdataStoreContactVO basicdataStoreContact) { return page.setRecords(baseMapper.selectBasicdataStoreContactPage(page, basicdataStoreContact)); @@ -62,6 +71,13 @@ public class BasicdataStoreContactServiceImpl extends BaseServiceImpl storeContactEntities = baseMapper.selectList(Wrappers.query().lambda() .eq(BasicdataStoreContactEntity::getShopId, basicdataStoreContact.getShopId()) ); + if (!basicdataStoreContact.getDefaultType()){ + boolean flag = storeContactEntities.stream().filter(f->!f.getId().equals(basicdataStoreContact.getId())).allMatch(b -> b.getDefaultType().equals(false)); + if (flag){ + throw new RuntimeException("商场必须存在一个默认联系人"); + } + } + List ids = storeContactEntities.stream().filter(f -> !f.getId().equals(basicdataStoreContact.getId())).map(BasicdataStoreContactEntity::getId).collect(Collectors.toList()); if (!ids.isEmpty()) { this.update(Wrappers.update().lambda() @@ -69,8 +85,13 @@ public class BasicdataStoreContactServiceImpl extends BaseServiceImplupdate().lambda() + .eq(BasicdataClientEntity::getId,basicdataStoreContact.getShopId()) + .set(BasicdataClientEntity::getLinkman,basicdataStoreContact.getLinkman()) + .set(BasicdataClientEntity::getPhone,basicdataStoreContact.getPhone()) + ); this.updateById(basicdataStoreContact); - return true; }catch (Exception e){ log.info("报错信息:{}",e.getMessage()); diff --git a/blade-service/logpm-business/src/main/java/com/logpm/business/aspect/ChangeAsyncAnnotationAspect.java b/blade-service/logpm-business/src/main/java/com/logpm/business/aspect/ChangeAsyncAnnotationAspect.java index 2fd34d0bd..955957658 100644 --- a/blade-service/logpm-business/src/main/java/com/logpm/business/aspect/ChangeAsyncAnnotationAspect.java +++ b/blade-service/logpm-business/src/main/java/com/logpm/business/aspect/ChangeAsyncAnnotationAspect.java @@ -78,7 +78,7 @@ public class ChangeAsyncAnnotationAspect { data = bladeRedis.get(CacheNames.LOCAL_SERVER_USER + tenantId + ":" + account); if (Objects.isNull(data)) { data = mockLoginService.mockToken(tenantId, account); - bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER + tenantId + ":" + account, data, 3200L); + bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER + tenantId + ":" + account, data, 25919900L); redisLockClient.unLock("local_server_user" + tenantId, LockType.FAIR); } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBusinessPreOrderAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBusinessPreOrderAppController.java index 65e04017a..53e3d0d7f 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBusinessPreOrderAppController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBusinessPreOrderAppController.java @@ -40,7 +40,7 @@ public class DistributionBusinessPreOrderAppController { @ResponseBody @PostMapping("/scanOrderPackageCode") @ApiOperationSupport(order = 1) - public Resp scanOrderPackageCode(@RequestBody BusinessSanDTO businessSanDTO){ + public R scanOrderPackageCode(@RequestBody BusinessSanDTO businessSanDTO){ Resp resp = null; try { diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionSignforAppController.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionSignforAppController.java index 7a7713732..5d77ba11d 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionSignforAppController.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionSignforAppController.java @@ -194,7 +194,7 @@ public class DistributionSignforAppController { */ @PostMapping("/positioning") @ApiOperationSupport(order = 2) - public Resp positioning(@Valid @RequestBody DistributionSignforEntity distributionSignfor) { + public R positioning(@Valid @RequestBody DistributionSignforEntity distributionSignfor) { Resp msg = distributionSignforService.positioning(distributionSignfor); return msg; } @@ -205,7 +205,7 @@ public class DistributionSignforAppController { */ @PostMapping("/signingMessage") @ApiOperationSupport(order = 2) - public Resp signingMessage(@Valid @RequestBody DistributionSignforEntity distributionSignfor) { + public R signingMessage(@Valid @RequestBody DistributionSignforEntity distributionSignfor) { Resp msg = distributionSignforService.positioning(distributionSignfor); return msg; } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/aspect/ChangeAsyncAnnotationAspect.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/aspect/ChangeAsyncAnnotationAspect.java index c75e6445f..27a8a6278 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/aspect/ChangeAsyncAnnotationAspect.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/aspect/ChangeAsyncAnnotationAspect.java @@ -80,7 +80,7 @@ public class ChangeAsyncAnnotationAspect { data = bladeRedis.get(CacheNames.LOCAL_SERVER_USER + tenantId + ":" + account); if (Objects.isNull(data)) { data = mockLoginService.mockToken(tenantId, account); - bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER + tenantId + ":" + account, data, 3200L); + bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER + tenantId + ":" + account, data, 25919900L); redisLockClient.unLock("local_server_user" + tenantId, LockType.FAIR); } } diff --git a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java index 2041cc106..0f979ea15 100644 --- a/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java +++ b/blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java @@ -877,7 +877,7 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl packageListInfo = s.getPackageListInfo(); if (Func.isNotEmpty(packageListInfo)) { + if (Func.isNotEmpty(signforEntity) && signforEntity.getSigningStatus().equals(SignforStatusConstant.yiqianshou.getValue())) { + log.error("#############商配文员对已复核预约进行订单追加reservationId:{}", reservationEntity.getId()); + throw new RuntimeException("收货单位:" + reservationEntity.getMallName() + "客户:" + reservationEntity.getConsignee() + "文员完成复核,无法追加订单"); + } if (Func.isNotEmpty(reservationEntity) && reservationEntity.getSigningStatus().equals(ReservationSigningStatusConstant.yiqianshou.getValue())) { log.error("#############商配文员对已复核预约进行订单追加reservationId:{}", reservationEntity.getId()); throw new RuntimeException("收货单位:" + reservationEntity.getMallName() + "客户:" + reservationEntity.getConsignee() + "司机完成签收,无法追加订单"); @@ -3239,6 +3243,10 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl { if (Func.isEmpty(oldPackageList.get(p.getId()))) { - if (Func.isNotEmpty(reservationEntity) && reservationEntity.getSigningStatus().equals(ReservationSigningStatusConstant.yiqianshou.getValue())) { + if (Func.isNotEmpty(signforEntity) && signforEntity.getSigningStatus().equals(SignforStatusConstant.yiqianshou.getValue())) { log.error("#############商配文员对已复核预约进行订单追加reservationId:{}", reservationEntity.getId()); + throw new RuntimeException("收货单位:" + reservationEntity.getMallName() + "客户:" + reservationEntity.getConsignee() + "文员完成复核,无法追加订单"); + } + if (Func.isNotEmpty(reservationEntity) && reservationEntity.getSigningStatus().equals(ReservationSigningStatusConstant.yiqianshou.getValue())) { + log.error("#############商配文员对司机完成签收订单追加reservationId:{}", reservationEntity.getId()); throw new RuntimeException("收货单位:" + reservationEntity.getMallName() + "客户:" + reservationEntity.getConsignee() + "司机完成签收,无法追加订单"); } //为该订单新增了包件 @@ -6089,11 +6101,21 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl aaa =new ArrayList<>(); //订制品 //需要对该配送任务下的该包件进行取消状态标识 int row = distributionReservationMapper.cancelReservationPackage(reservationId, orderPackageId); @@ -6116,6 +6138,14 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl list = new ArrayList<>(); + + while (bufferedReader.ready()) { + +// String line = bufferedReader.readLine(); +// JSONObject js = JSONObject.parseObject(line); +// +// String o = js.getString("OrderCode"); +// if(!list.contains(o)){ +// list.add(o); +// System.out.println(line); +// } + + Thread.sleep(1000); + String line = bufferedReader.readLine(); + String post = HttpUtil.post("http://openapi.huitongys.com/logpm-factory/factory/oupai/data", line); + System.out.println(post); + } + } catch (FileNotFoundException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + + + } } diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/interceptor/LocalServerLoginAccountsInterceptor.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/interceptor/LocalServerLoginAccountsInterceptor.java index 9bdc18823..c3d8fa6c4 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/interceptor/LocalServerLoginAccountsInterceptor.java +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/interceptor/LocalServerLoginAccountsInterceptor.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; import lombok.AllArgsConstructor; import lombok.extern.log4j.Log4j2; import org.springblade.common.cache.CacheNames; +import org.springblade.common.component.MockLoginService; import org.springblade.common.constant.LauncherConstant; import org.springblade.common.exception.CustomerException; import org.springblade.common.wrapper.CustomHttpServletRequestWrapper; @@ -37,6 +38,8 @@ public class LocalServerLoginAccountsInterceptor extends HandlerInterceptorAdapt private final Environment environment; private final RedisLockClient redisLockClient; + private final MockLoginService mockLoginService; + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws CustomerException { @@ -50,20 +53,8 @@ public class LocalServerLoginAccountsInterceptor extends HandlerInterceptorAdapt if(flag){ data =bladeRedis.get(CacheNames.LOCAL_SERVER_USER+account); if(Objects.isNull(data)){ - String url = "http://"+ LauncherConstant.loginAddr(Objects.requireNonNull(environment.getActiveProfiles()[0]))+"/blade-auth/oauth/token"; - HttpRequest urlRequest = HttpRequest.post(url); - urlRequest.header("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0"); - urlRequest.header("Tenant-Id", "627683"); - - Map params = new HashMap<>(); - params.put("grant_type", "local_server"); - params.put("scope", "all"); - params.put("username", account); - params.put("tenantId", "627683"); - HttpResponse execute = urlRequest.form(params).execute(); - String body = execute.body(); - data = JSONObject.parseObject(body); - bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,3200L); + data = mockLoginService.mockToken("627683",account); + bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER+account,data,25919900L); redisLockClient.unLock("local_server_user", LockType.FAIR); } } diff --git a/blade-service/logpm-patch/src/main/resources/application-dev.yml b/blade-service/logpm-patch/src/main/resources/application-dev.yml index 1667e1d95..5fa0b1f73 100644 --- a/blade-service/logpm-patch/src/main/resources/application-dev.yml +++ b/blade-service/logpm-patch/src/main/resources/application-dev.yml @@ -60,12 +60,12 @@ spring: url: ${blade.datasource.patch.master.url} username: ${blade.datasource.patch.master.username} password: ${blade.datasource.patch.master.password} - slave: + 627683: druid: #独立校验配置 validation-query: select 1 #oracle校验 #validation-query: select 1 from dual - url: ${blade.datasource.patch.slave.url} - username: ${blade.datasource.patch.slave.username} - password: ${blade.datasource.patch.slave.password} + url: ${blade.datasource.patch.627683.url} + username: ${blade.datasource.patch.627683.username} + password: ${blade.datasource.patch.627683.password} diff --git a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/aspect/ChangeAsyncAnnotationAspect.java b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/aspect/ChangeAsyncAnnotationAspect.java index 30f3903ce..d504ebbb2 100644 --- a/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/aspect/ChangeAsyncAnnotationAspect.java +++ b/blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/aspect/ChangeAsyncAnnotationAspect.java @@ -78,7 +78,7 @@ public class ChangeAsyncAnnotationAspect { data = bladeRedis.get(CacheNames.LOCAL_SERVER_USER + tenantId + ":" + account); if (Objects.isNull(data)) { data = mockLoginService.mockToken(tenantId, account); - bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER + tenantId + ":" + account, data, 3200L); + bladeRedis.setEx(CacheNames.LOCAL_SERVER_USER + tenantId + ":" + account, data, 25919900L); redisLockClient.unLock("local_server_user" + tenantId, LockType.FAIR); } } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTrayTypeApiController.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTrayTypeApiController.java index 139197ba8..dec3c47a1 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTrayTypeApiController.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/api/WarehouseTrayTypeApiController.java @@ -1,11 +1,16 @@ package com.logpm.warehouse.api; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.logpm.basicdata.entity.BasicdataTrayEntity; import com.logpm.basicdata.entity.BasicdataWarehouseEntity; +import com.logpm.basicdata.feign.IBasicdataTrayClient; import com.logpm.basicdata.feign.IBasicdataWarehouseClient; import com.logpm.warehouse.dto.TrayTypeDTO; import com.logpm.warehouse.dto.ZeroOrderVO; +import com.logpm.warehouse.service.IWarehouseTaryAllocationService; import com.logpm.warehouse.service.IWarehouseTrayTypeService; import com.logpm.warehouse.vo.OrderDetailVO; import com.logpm.warehouse.vo.TrayTypeDataListVO; @@ -23,10 +28,7 @@ import org.springblade.system.cache.DictBizCache; import org.springblade.system.entity.DictBiz; import org.springframework.web.bind.annotation.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; @Log4j2 @RestController @@ -37,6 +39,8 @@ public class WarehouseTrayTypeApiController { private final IWarehouseTrayTypeService warehouseTrayTypeService; private final IBasicdataWarehouseClient warehouseClient; + private final IWarehouseTaryAllocationService taryAllocationService; + private final IBasicdataTrayClient trayClient; //----------------------订单分拣-------------------------------- @ResponseBody @@ -1337,6 +1341,101 @@ public class WarehouseTrayTypeApiController { } } + @ResponseBody + @PostMapping("/batchSyncOldTrayTypeInfo") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "批量同步老系统托盘数据", notes = "传入trayTypeDTO") + public R batchSyncOldTrayTypeInfo(@RequestBody TrayTypeDTO trayTypeDTO) { + String method = "###########batchSyncOldTrayTypeInfo: "; + log.info(method + "移托包件 trayTypeDTO={}", trayTypeDTO); + String trayCodeStr = trayTypeDTO.getTrayCode(); + + try{ + + BasicdataWarehouseEntity myCurrentWarehouse = warehouseClient.getMyCurrentWarehouse(); + if(Objects.isNull(myCurrentWarehouse)){ + log.warn(method+"仓库信息不能为空"); + return R.fail(403,"仓库信息不能为空"); + } + if(StringUtil.isBlank(trayCodeStr)){ + log.warn(method+"托盘码不能为空 trayCodeStr={}",trayCodeStr); + return R.fail(403,"托盘码不能为空"); + } + List trayCodes = new ArrayList<>(); + if(trayCodeStr.contains(",")){ + String[] split = trayCodeStr.split(","); + trayCodes.addAll(Arrays.asList(split)); + }else{ + trayCodes.add(trayCodeStr); + } + + for (String trayCode : trayCodes) { + log.info(method+"当前同步的托盘 trayCode={}",trayCode); + + BasicdataTrayEntity trayEntity = trayClient.getTrayByTrayCode(trayCode); + if(Objects.isNull(trayEntity)){ + log.warn(method+"托盘信息不存在 trayCode={}",trayCode); + continue; + } + Long trayId = trayEntity.getId(); + + Long allcationId = taryAllocationService.getAllocationIdByTrayId(trayId); + if(!Objects.isNull(allcationId)){ + log.warn(method+"托盘已上架 trayCode={}",trayCode); + continue; + } + + R trayData = warehouseTrayTypeService.findTrayData(trayCode, myCurrentWarehouse.getId()); + int total = 0; + Object data = trayData.getData(); + if(!Objects.isNull(data)){ + String s = JSONObject.toJSONString(data); + JSONObject jsonObject = JSONObject.parseObject(s); + JSONArray packageList = jsonObject.getJSONArray("packageList"); + JSONArray zeroOrderList = jsonObject.getJSONArray("zeroOrderList"); + JSONArray stockOrderList = jsonObject.getJSONArray("stockOrderList"); + int packageSize = packageList.size(); + int zeroSize = zeroOrderList.size(); + int stockSize = stockOrderList.size(); + total = packageSize+zeroSize+stockSize; + } + + R syncOldTrayData = warehouseTrayTypeService.findSyncOldTrayData(trayCode, myCurrentWarehouse.getId()); + Object data1 = syncOldTrayData.getData(); + if(!Objects.isNull(data1)){ + String s1 = JSONObject.toJSONString(data1); + JSONObject jsonObject1 = JSONObject.parseObject(s1); + JSONArray packageList1 = jsonObject1.getJSONArray("packageList"); + String trayType1 = jsonObject1.getString("trayType"); + String trayCode1 = jsonObject1.getString("trayCode"); + int size = packageList1.size(); + if(total >= size){ + log.warn(method+"新系统打托数量大于等于老系统 trayCode={} 不同步",trayCode); + continue; + } + List orderPackageCodes = new ArrayList<>(); + for (int i = 0; i < size; i++){ + JSONObject jsonObject2 = packageList1.getJSONObject(i); + orderPackageCodes.add(jsonObject2.getString("orderPackageCode")); + } + if(!orderPackageCodes.isEmpty()){ + warehouseTrayTypeService.syncOldTrayData(trayCode1,trayType1,orderPackageCodes,myCurrentWarehouse.getId(),"同步老系统打托"); + } + } + + + + } + + return R.success("处理完成"); + }catch (CustomerException e){ + log.warn(e.message); + return R.fail(e.code,e.message); + }catch (Exception e){ + log.error(method+"系统异常,联系管理员",e); + return R.fail(500,"系统异常,联系管理员"); + } + } } diff --git a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java index 3514603cf..8d4b7cf0e 100644 --- a/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java +++ b/blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/TaskQuestServiceImpl.java @@ -247,7 +247,7 @@ public class TaskQuestServiceImpl extends BaseServiceImpl