diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicle.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicle.java index 3cc3666574..4d2ea99bec 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicle.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicle.java @@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import java.util.Date; /** @@ -78,6 +77,8 @@ public class BaseVehicle extends BaseEntity { @ApiModelProperty(value = "指导价") private Integer salePrice; + @ApiModelProperty(value = "厂家结算价") + private Integer settlePrice; @ApiModelProperty("创建组织(陕汽必须的字段)") private String createOrgSid; diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleDto.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleDto.java index 3aa995fb35..824ee25c65 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleDto.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleDto.java @@ -78,8 +78,10 @@ public class BaseVehicleDto implements Dto { private String location; @ApiModelProperty("存放地点名称(陕汽必须的字段)") private String locationName; - @ApiModelProperty(value = "厂家结算价") + @ApiModelProperty(value = "入库价") private Integer costPrice; + @ApiModelProperty(value = "厂家结算价") + private Integer settlePrice; @ApiModelProperty(value = "厂家合同价") private Integer contractPrice; @ApiModelProperty(value = "成交价") diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeign.java index 0df7e716c3..4e4edbe390 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeign.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeign.java @@ -120,6 +120,15 @@ public interface BaseVehicleFeign { @PostMapping("/update/{sid}") public ResultBean update(@RequestBody BaseVehicleDto dto, @PathVariable("sid") String sid); + /** + * 修改厂家结算价 + * + * @return + */ + @ApiOperation("修改厂家结算价") + @PostMapping("/updateSettlePrice") + public ResultBean updateSettlePrice(@RequestParam("sid") String sid, @RequestParam("settlePrice") String settlePrice); + /** * 详情及修改回显 * diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeignFallback.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeignFallback.java index ebfe53a2eb..b671ec0691 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeignFallback.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeignFallback.java @@ -72,6 +72,11 @@ public class BaseVehicleFeignFallback implements BaseVehicleFeign { return ResultBean.fireFail().setMsg("接口anrui-base/basevehicle/update无法访问"); } + @Override + public ResultBean updateSettlePrice(String sid, String settlePrice) { + return null; + } + @Override public ResultBean details(String sid) { return null; diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleVo.java index 3bd9c61c2e..422a42e5a2 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleVo.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleVo.java @@ -54,8 +54,11 @@ public class BaseVehicleVo implements Vo { private String locationName; @ApiModelProperty(value = "厂家订单编号") private String orderingNo; - @ApiModelProperty(value = "厂家结算价") + @ApiModelProperty(value = "入库价") private Integer costPrice; + @ApiModelProperty(value = "厂家结算价") + private Integer settlePrice; + @ApiModelProperty(value = "运费") private Integer freight; @ApiModelProperty(value = "厂家合同价") diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml index 6994a39462..65510e0f02 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml @@ -44,6 +44,7 @@ bv.locationName, bv.orderingNo, bv.costPrice, + bv.settlePrice, bv.freight, bv.contractPrice, bv.priceDate, diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java index 3f1398bf8c..a4fac146fb 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java @@ -685,6 +685,11 @@ public class BaseVehicleRest implements BaseVehicleFeign { return rb.success().setMsg("修改成功"); } + @Override + public ResultBean updateSettlePrice(String sid, String settlePrice) { + return baseVehicleService.updateSettlePrice(sid,settlePrice); + } + @Override public ResultBean details(String sid) { ResultBean rb = ResultBean.fireFail(); diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java index 764f32305d..5f13d5a8a2 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java @@ -86,6 +86,8 @@ import org.springframework.transaction.annotation.Transactional; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * Project: anrui-base(安瑞基础信息模块)
@@ -4438,4 +4440,30 @@ public class BaseVehicleService extends MybatisBaseService { public ResultBean businessStartProcessInstanceById(BusinessVariables bv) { ResultBean rb = ResultBean.fireFail(); - // 获取流程定义ID和发起人ID + //获取变量 String procDefId = bv.getModelId(); String userSid = bv.getUserSid(); - // 获取传入的变量 Map variables = bv.getFormVariables(); - Map variablesSeconds = bv.getFormVariables(); + //下一环节待办人 String nextNodeUserSids = bv.getNextNodeUserSids(); + //会签人员 + List approversList = Optional.ofNullable((List) variables.get("approvers")) + .orElseGet(ArrayList::new); List userSidForNextNode = new ArrayList<>(); + //如果指定的下一环节用户为空 if (StringUtils.isBlank(nextNodeUserSids)) { - userSidForNextNode = getNextNodeUser(bv).getData(); - variables.put("approvers", userSidForNextNode); + //根据角色查询下一环节待办人 + ResultBean> listResultBean = getNextNodeUser(bv); + if (!listResultBean.getSuccess()) { + return rb.setMsg(listResultBean.getMsg()); + } + userSidForNextNode = listResultBean.getData(); + nextNodeUserSids = String.join(",", userSidForNextNode); + //如果会签人员为空 + if (approversList.isEmpty()) { + approversList = userSidForNextNode; + variables.put("approvers", approversList); + } + } else { + userSidForNextNode.add(nextNodeUserSids); + } + // 根据流程定义ID查询最新的流程定义 + ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() + .processDefinitionId(procDefId) + .latestVersion() + .singleResult(); + // 如果流程被挂起,返回错误信息 + if (Objects.nonNull(processDefinition) && processDefinition.isSuspended()) { + return rb.setMsg("流程已被挂起,请先激活流程"); + } + // 设置发起人信息 + ResultBean sysUserVoResultBean = sysUserFeign.fetchBySid(userSid); + SysUserVo sysUser = sysUserVoResultBean.getData(); + identityService.setAuthenticatedUserId(sysUser.getSid()); + variables.put(ProcessConstants.PROCESS_INITIATOR, userSid); + variables.put(ProcessConstants.USER_TYPE_ASSIGNEE, userSid); + // 启动流程实例 + ProcessInstance processInstance = runtimeService.startProcessInstanceById(procDefId, variables); + // 获取第一步任务并设置任务执行人和意见 + Task task = taskService.createTaskQuery().processInstanceId(processInstance.getProcessInstanceId()).singleResult(); + if (Objects.nonNull(task)) { + taskService.addComment(task.getId(), processInstance.getProcessInstanceId(), FlowComment.START.getType(), + sysUser.getName() + "发起流程申请"); + taskService.setAssignee(task.getId(), userSid); + taskService.complete(task.getId(), variables); + } + //设置是否是管理员自动审批,默认否 + boolean adminContains = false; + String id_ = "", name_ = "", taskDefKey_ = ""; + //查询当前实例最新的待办任务 + List tasks = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list(); + for (int i = 0; i < tasks.size(); i++) { + Task task2 = tasks.get(i); + String isMultiInstanceTask = isMultiInstanceTask(task2); + if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) { + userSidForNextNode = approversList; + String approver = getApproverForTask(userSidForNextNode, i); + approver = change(approver, bv.getInstanceId()); + taskService.claim(task2.getId(), approver); + } else { + //单一审批 + nextNodeUserSids = userSidForNextNode.get(0); + //查询下一环节是否有转办并添加评论 + nextNodeUserSids = change(nextNodeUserSids, processInstance.getProcessInstanceId()); + taskService.setAssignee(task2.getId(), nextNodeUserSids); + taskService.setVariablesLocal(task2.getId(), variables); + } + } + tasks = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list(); + //遍历待办任务 + for (int i = 0; i < tasks.size(); i++) { + Task task2 = tasks.get(i); + String isMultiInstanceTask = isMultiInstanceTask(task2); + id_ = task2.getId(); + taskDefKey_ = task2.getTaskDefinitionKey(); + name_ = task2.getName(); + if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) { + if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(task2.getAssignee())) { + adminContains = true; + break; + } + } + } + //提交前传入下一环节待办人 + if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(nextNodeUserSids) || adminContains) { + return handleAutomaticApproval(bv, task, id_, taskDefKey_, variables, processDefinition); } + // 如果申请人与下一环节审批人相同,则自动审批 + if (bv.getUserSid().equals(nextNodeUserSids)) { + return handleSelfApproval(bv, task, id_, taskDefKey_, variables, processDefinition); + } + // 实例化 UpdateFlowFieldVo + UpdateFlowFieldVo updateFlowFieldVo = new UpdateFlowFieldVo(); + updateFlowFieldVo.setProcInsId(task.getProcessInstanceId()); + updateFlowFieldVo.setNodeState(name_); + updateFlowFieldVo.setTaskId(id_); + updateFlowFieldVo.setTaskDefKey(taskDefKey_); + updateFlowFieldVo.setProcDefId(bv.getModelId()); + updateFlowFieldVo.setSid(bv.getBusinessSid()); + updateFlowFieldVo.setName(processDefinition.getName()); + return rb.success().setData(updateFlowFieldVo).setMsg("流程启动成功"); + } + public ResultBean handleProsess(BusinessVariables bv, boolean b) { + ResultBean rb = ResultBean.fireFail(); + UpdateFlowFieldVo vo = new UpdateFlowFieldVo(); + Map formVariables = Optional.ofNullable(bv.getFormVariables()).orElseGet(HashMap::new); + formVariables.put("businessSid", bv.getBusinessSid()); + String taskId = bv.getTaskId(), + nextUserSid = bv.getNextNodeUserSids(), + userSid = bv.getUserSid(), + instanceId = bv.getInstanceId(), + comment = bv.getComment(), + orgPath = bv.getOrgSidPath(), + service = (String) formVariables.get("service"), + ydfOrgPath = (String) formVariables.get("ydfOrgPath"), + nodeState = "", taskDefKey = ""; + //设置下一环节审批人是否自动审批通过,默认否 + boolean contains = false, + //设置是否是管理员自动审批,默认否 + adminContains = false; + //指定的会签用户 + List approversList = Optional.ofNullable((List) formVariables.get("approvers")) + .orElseGet(ArrayList::new); + List userSidForNextNode = new ArrayList<>(); + // 根据流程定义ID查询最新的流程定义 + ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() + .processDefinitionId(bv.getModelId()) + .latestVersion() + .singleResult(); + //查询任务id为taskId的任务是否存在 + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + if (Objects.isNull(task)) { + return rb.setMsg("任务不存在"); + } + String assignee = task.getAssignee(); + if (b && (StringUtils.isNotBlank(assignee) && assignee.indexOf(userSid) < 0)) { + return rb.setMsg("当前用户不是环节的待办人,不能进行办理操作!"); + } + //查询任务时单一审批还是或签还是会签? + String isMultiInstanceTask = isMultiInstanceTask(task); + //查询所有的待办任务 + List tasks = taskService.createTaskQuery().processInstanceId(instanceId).list(); + + if (StringUtils.isBlank(nextUserSid)) { + if ("公司间调车".equals(service) && "Activity_0695qh4".equals(bv.getTaskDefKey())) { + bv.setOrgSidPath(ydfOrgPath); + } + if (!"会签任务".equals(isMultiInstanceTask) || tasks.size() == 1) { + //查询下一环节待办人 + ResultBean> listResultBean = getNextNodeUserSidsOfSubmit(bv); + if (!listResultBean.getSuccess()) { + //如果查询下一环节待办人为空,则默认为管理员 + nextUserSid = ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId(); + userSidForNextNode.add(nextUserSid); + adminContains = true; + } else { + if (listResultBean.getData() != null && listResultBean.getData().size() != 0) { + userSidForNextNode = listResultBean.getData(); + } + //如果会签人员为空,则查询下一环节人 + if (approversList.isEmpty()) { + formVariables.put("approvers", userSidForNextNode); + } + } + } + } else { + userSidForNextNode.add(nextUserSid); + //若下一环节用户与系统管理员一致,则自动审批 + if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(nextUserSid)) { + adminContains = true; + } + } + + if (DelegationState.PENDING.equals(task.getDelegationState())) { + adminContains = false; + //加签 + Authentication.setAuthenticatedUserId(userSid); + taskService.addComment(taskId, instanceId, + FlowComment.DELEGATE.getType(), comment); + taskService.resolveTask(taskId, formVariables); + nodeState = task.getName(); + taskDefKey = task.getTaskDefinitionKey(); + } else { + //下一环节是否是多实例任务 + boolean isMultiInstanceTaskNext = false; + tasks = taskService.createTaskQuery().processInstanceId(instanceId).list(); + //是否要查询当前任务是否是会签环节 + boolean checkTask = tasks.size() == 1 || "或签任务".equals(isMultiInstanceTask); + //当前任务办理完成 + taskService.addComment(taskId, instanceId, FlowComment.NORMAL.getType(), comment); + log.error("taskid:{},userSid:{}", taskId, userSid); + log.error("formVariables:{}", JSON.toJSONString(formVariables)); + taskService.setAssignee(taskId, userSid); + taskService.complete(taskId, formVariables); + //查询办理完后的最新待办任务 + tasks = taskService.createTaskQuery().processInstanceId(instanceId).list(); + if (tasks.size() > 0) { + for (int i = 0; i < tasks.size(); i++) { + Task task2 = tasks.get(i); + if (checkTask) { + isMultiInstanceTask = isMultiInstanceTask(task2); + if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) { + userSidForNextNode = approversList; + String nextUserSidNext = userSidForNextNode.get(i); + nextUserSidNext = change(nextUserSidNext, bv.getInstanceId()); + taskService.claim(task2.getId(), nextUserSidNext); // 由候选人认领任务 + isMultiInstanceTaskNext = true; + + } else { + nextUserSid = userSidForNextNode.get(0); + //查询下一环节用户是否有转办人 + nextUserSid = change(nextUserSid, bv.getInstanceId()); + taskService.setAssignee(task2.getId(), nextUserSid);//将下一环节用户放入流程中 + } + } + } + List taskIdList = tasks.stream().map(v -> v.getId()).collect(Collectors.toList()); + String taskIds = String.join(",", taskIdList); + vo.setTaskId(taskIds); + //在act_ru_variable表中增加环节上的业务参数的变量 + taskService.setVariablesLocal(tasks.get(0).getId(), formVariables); + nodeState = tasks.get(0).getName(); + taskDefKey = tasks.get(0).getTaskDefinitionKey(); + //遍历待办任务,将存在管理员的自动审批 + for (int i = 0; i < tasks.size(); i++) { + Task task2 = tasks.get(i); + isMultiInstanceTask = isMultiInstanceTask(task2); + if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) { + if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(task2.getAssignee())) { + nextUserSid = ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId(); + adminContains = true; + vo.setTaskId(task2.getId()); + nodeState = task2.getName(); + taskDefKey = task2.getTaskDefinitionKey(); + break; + } + } + } + + } else { + nodeState = FlowComment.SETTLE.getRemark(); + taskDefKey = "Event_end"; + vo.setNodeState(FlowComment.SETTLE.getRemark()); + } + if (!isMultiInstanceTaskNext) { + //获取该流程所有要走的环节节点 + List flowElements = calApprovePath(bv.getModelId(), + bv.getFormVariables()); + for (int i = 0; i < flowElements.size(); i++) { + FlowElement flowElement = flowElements.get(i); + String id = flowElement.getId(); + // 如果当前环节匹配taskDefKey,并且后续环节存在 + if (taskDefKey.equals(id) && i + 1 < flowElements.size()) { + FlowElement nextFlowElement = flowElements.get(i + 1); // 获取下一个环节 + List nextUserList = getUserListFromFlowElement(nextFlowElement, orgPath); // 获取下一个环节的用户列表 + + // 获取下下一个环节的用户列表(如果存在) + List nextNextUserList = new ArrayList<>(); + if (i + 2 < flowElements.size()) { + FlowElement nextNextFlowElement = flowElements.get(i + 2); // 获取下下一个环节 + nextNextUserList = getUserListFromFlowElement(nextNextFlowElement, orgPath); // 获取下下一个环节的用户列表 + } + + // 如果下一个环节只有一个用户,并且其sid与下一级相同,则设置contains为true + if (nextUserList.size() == 1 && nextUserList.get(0).getSid().equals(nextUserSid)) { + contains = true; // 确定自动审批 + break; // 跳出循环,不再检查后续环节 + } + + // 如果下下一个环节没有用户,且下下下一个环节与下一级相同,设置contains为true + if (nextUserList.isEmpty() && nextNextUserList.size() == 1 && nextNextUserList.get(0).getSid().equals(nextUserSid)) { + contains = true; // 确定自动审批 + break; // 跳出循环 + } + } + } + } + } + + //设置管理员是否自动审批的字段是否是是。//若下一环节用户与系统管理员一致,则自动审批 + if (adminContains) { + bv.setUserSid(nextUserSid); + bv.setTaskId(vo.getTaskId()); + bv.setTaskDefKey(taskDefKey); + bv.setComment("系统自动跳过"); + bv.setNextNodeUserSids(""); + return handleProsess(bv, false); + } + + if (contains) { + bv.setUserSid(nextUserSid); + bv.setTaskId(vo.getTaskId()); + bv.setTaskDefKey(taskDefKey); + bv.setComment("因与下一级审批人相同,系统自动处理,需以下一级审批人审批意见为准!"); + return handleProsess(bv, false); + } + vo.setProcInsId(instanceId); + vo.setProcDefId(bv.getModelId()); + vo.setNodeState(nodeState); + vo.setTaskDefKey(taskDefKey); + vo.setSid(bv.getBusinessSid()); + vo.setName(processDefinition.getName()); + return rb.success().setData(vo); + + + } + + public ResultBean businessStartProcessInstanceById222(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + // 实例化 UpdateFlowFieldVo + UpdateFlowFieldVo updateFlowFieldVo = new UpdateFlowFieldVo(); + String procDefId = bv.getModelId(); + String userSid = bv.getUserSid(); + String nextNodeUserSids = bv.getNextNodeUserSids(); + Map variables = bv.getFormVariables(); + Map variablesSeconds = bv.getFormVariables(); + + List userSidForNextNode = new ArrayList<>(); + List approversList = Optional.ofNullable((List) variables.get("approvers")) + .orElseGet(ArrayList::new); + if (StringUtils.isBlank(nextNodeUserSids)) { + userSidForNextNode = getNextNodeUser(bv).getData(); + if (!approversList.isEmpty()) { + variables.put("approvers", approversList); + } else { + approversList = userSidForNextNode; + variables.put("approvers", approversList); + } + } else { + //下一环节审批人 + userSidForNextNode.add(nextNodeUserSids); + } // 根据流程定义ID查询最新的流程定义 ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() .processDefinitionId(procDefId) @@ -157,6 +484,7 @@ public class Flow3Service extends MybatisBaseService { task_def_key_ = task2.getTaskDefinitionKey(); name_ = task2.getName(); if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) { + userSidForNextNode = approversList; String approver = getApproverForTask(userSidForNextNode, i); approver = change(approver, bv.getInstanceId()); taskService.claim(task2.getId(), approver); @@ -177,7 +505,7 @@ public class Flow3Service extends MybatisBaseService { task_def_key_ = task2.getTaskDefinitionKey(); name_ = task2.getName(); if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) { - if(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(task2.getAssignee())){ + if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(task2.getAssignee())) { adminContains = true; break; } @@ -194,18 +522,15 @@ public class Flow3Service extends MybatisBaseService { taskService.setVariablesLocal(id_, variables); } - - //提交前传入下一环节待办人 if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(nextNodeUserSids) || adminContains) { - return handleAutomaticApproval(bv, task, id_, task_def_key_, variables, variablesSeconds, processDefinition); + return handleAutomaticApproval(bv, task, id_, task_def_key_, variables, processDefinition); } // 如果申请人与下一环节审批人相同,则自动审批 if (bv.getUserSid().equals(nextNodeUserSids)) { - return handleSelfApproval(bv, task, id_, task_def_key_, variables, variablesSeconds, processDefinition); + return handleSelfApproval(bv, task, id_, task_def_key_, variables, processDefinition); } - // 实例化 UpdateFlowFieldVo - UpdateFlowFieldVo updateFlowFieldVo = new UpdateFlowFieldVo(); + updateFlowFieldVo.setProcInsId(task.getProcessInstanceId()); updateFlowFieldVo.setNodeState(name_); updateFlowFieldVo.setTaskId(id_); @@ -216,7 +541,7 @@ public class Flow3Service extends MybatisBaseService { return rb.success().setData(updateFlowFieldVo).setMsg("流程启动成功"); } - public ResultBean handleProsess(BusinessVariables bv, boolean b) { + public ResultBean handleProsess222(BusinessVariables bv, boolean b) { ResultBean rb = ResultBean.fireFail(); UpdateFlowFieldVo vo = new UpdateFlowFieldVo(); //获取表单中的参数 @@ -249,6 +574,8 @@ public class Flow3Service extends MybatisBaseService { if (b && (StringUtils.isNotBlank(assignee) && assignee.indexOf(userSid) < 0)) { return rb.setMsg("当前用户不是环节的待办人,不能进行办理操作!"); } + List approversList = Optional.ofNullable((List) formVariables.get("approvers")) + .orElseGet(ArrayList::new); if (StringUtils.isBlank(nextUserSid)) { if ("公司间调车".equals(service) && "Activity_0695qh4".equals(bv.getTaskDefKey())) { bv.setOrgSidPath(ydfOrgPath); @@ -257,10 +584,10 @@ public class Flow3Service extends MybatisBaseService { if (!listResultBean.getSuccess()) { nextUserSid = ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId(); adminContains = true; + userSidForNextNode.add(nextUserSid); } else { - if(listResultBean.getData() != null){ + if (listResultBean.getData() != null) { userSidForNextNode = listResultBean.getData(); - formVariables.put("approvers", listResultBean.getData()); } } } else { @@ -269,6 +596,24 @@ public class Flow3Service extends MybatisBaseService { adminContains = true; } } + + if (!approversList.isEmpty()) { + formVariables.put("approvers", approversList); + } else { + ResultBean> listResultBean = getNextNodeUserSidsOfSubmit(bv); + if (!listResultBean.getSuccess()) { + nextUserSid = ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId(); + adminContains = true; + userSidForNextNode.add(nextUserSid); + } else { + if (listResultBean.getData() != null) { + approversList = listResultBean.getData(); + formVariables.put("approvers", approversList); + } + } + } + + //是否是多实例任务 String isMultiInstanceTask = isMultiInstanceTask(task); boolean isMultiInstanceTaskNext = false; @@ -301,6 +646,7 @@ public class Flow3Service extends MybatisBaseService { Task task2 = tasks.get(i); isMultiInstanceTask = isMultiInstanceTask(task2); if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) { + userSidForNextNode = approversList; String nextUserSidNext = userSidForNextNode.get(i); nextUserSidNext = change(nextUserSidNext, bv.getInstanceId()); taskService.claim(task2.getId(), nextUserSidNext); // 由候选人认领任务 @@ -312,7 +658,9 @@ public class Flow3Service extends MybatisBaseService { nextUserSid = change(nextUserSid, bv.getInstanceId()); taskService.setAssignee(task2.getId(), nextUserSid);//将下一环节用户放入流程中 } - vo.setTaskId(task2.getId()); + List taskIdList = tasks.stream().map(v -> v.getId()).collect(Collectors.toList()); + String taskIds = String.join(",", taskIdList); + vo.setTaskId(taskIds); //在act_ru_variable表中增加环节上的业务参数的变量 taskService.setVariablesLocal(task2.getId(), formVariables); nodeState = task2.getName(); @@ -323,11 +671,11 @@ public class Flow3Service extends MybatisBaseService { for (int i = 0; i < tasks.size(); i++) { Task task2 = tasks.get(i); isMultiInstanceTask = isMultiInstanceTask(task2); - vo.setTaskId(task2.getId()); + /* vo.setTaskId(task2.getId()); nodeState = task2.getName(); - taskDefKey = task2.getTaskDefinitionKey(); + taskDefKey = task2.getTaskDefinitionKey();*/ if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) { - if(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(task2.getAssignee())){ + if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(task2.getAssignee())) { nextUserSid = ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId(); adminContains = true; break; @@ -341,9 +689,12 @@ public class Flow3Service extends MybatisBaseService { } - }else{//会签 + } else {//会签 Task task2 = tasks.get(0); - vo.setTaskId(task2.getId()); + List taskIdList = tasks.stream().map(v -> v.getId()).collect(Collectors.toList()); + String taskIds = String.join(",", taskIdList); +// vo.setTaskId(task2.getId()); + vo.setTaskId(taskIds); nodeState = task2.getName(); taskDefKey = task2.getTaskDefinitionKey(); @@ -408,7 +759,7 @@ public class Flow3Service extends MybatisBaseService { return rb.success().setData(vo); } - public ResultBean businessStartProcessInstanceById222(BusinessVariables bv) { + public ResultBean businessStartProcessInstanceById111(BusinessVariables bv) { ResultBean rb = ResultBean.fireFail(); // 或签任务候选人 /* List userIds = Arrays.asList( @@ -497,12 +848,12 @@ public class Flow3Service extends MybatisBaseService { taskService.setVariablesLocal(id_, variables); if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(nextNodeUserSids)) { - return handleAutomaticApproval(bv, task, id_, task_def_key_, variables, variablesSeconds, processDefinition); + return handleAutomaticApproval(bv, task, id_, task_def_key_, variables, processDefinition); } // 如果申请人与下一环节审批人相同,则自动审批 if (bv.getUserSid().equals(nextNodeUserSids)) { - return handleSelfApproval(bv, task, id_, task_def_key_, variables, variablesSeconds, processDefinition); + return handleSelfApproval(bv, task, id_, task_def_key_, variables, processDefinition); } } else { List tasks = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list(); @@ -514,7 +865,7 @@ public class Flow3Service extends MybatisBaseService { if (!ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(task2.getAssignee())) { continue; } else { - return handleAutomaticApproval(bv, task, id_, task_def_key_, variables, variablesSeconds, processDefinition); + return handleAutomaticApproval(bv, task, id_, task_def_key_, variables, processDefinition); } } @@ -544,7 +895,7 @@ public class Flow3Service extends MybatisBaseService { * 处理自动审批逻辑(当任务为转办时) */ private ResultBean handleAutomaticApproval(BusinessVariables bv, Task task, String id_, String task_def_key_, - Map variables, Map variablesSeconds, ProcessDefinition processDefinition) { + Map variables, ProcessDefinition processDefinition) { bv.setModelId(bv.getModelId()); bv.setInstanceId(task.getProcessInstanceId()); bv.setTaskId(id_); @@ -553,7 +904,6 @@ public class Flow3Service extends MybatisBaseService { bv.setTaskDefKey(task_def_key_); bv.setFormVariables(variables); bv.setOrgSidPath(bv.getOrgSidPath()); - bv.setFormVariables(variablesSeconds); bv.setComment("系统自动转办!"); bv.setNextNodeUserSids(""); @@ -565,7 +915,7 @@ public class Flow3Service extends MybatisBaseService { * 处理自动审批逻辑(当申请人与下一环节审批人相同) */ private ResultBean handleSelfApproval(BusinessVariables bv, Task task, String id_, String task_def_key_, - Map variables, Map variablesSeconds, ProcessDefinition processDefinition) { + Map variables, ProcessDefinition processDefinition) { bv.setModelId(bv.getModelId()); bv.setInstanceId(task.getProcessInstanceId()); bv.setTaskId(id_); @@ -574,7 +924,6 @@ public class Flow3Service extends MybatisBaseService { bv.setTaskDefKey(task_def_key_); bv.setFormVariables(variables); bv.setOrgSidPath(bv.getOrgSidPath()); - bv.setFormVariables(variablesSeconds); bv.setComment("因与申请人相同,系统自动处理,需以下一级审批人审批意见为准!"); bv.setNextNodeUserSids(""); @@ -653,7 +1002,7 @@ public class Flow3Service extends MybatisBaseService { return userList == null ? new ArrayList<>() : userList; // 如果返回为null,则返回空列表 } - /* public ResultBean handleProsess222(BusinessVariables bv, boolean b) { + /* public ResultBean handleProsess111(BusinessVariables bv, boolean b) { ResultBean rb = ResultBean.fireFail(); UpdateFlowFieldVo vo = new UpdateFlowFieldVo(); // 或签任务候选人 @@ -925,7 +1274,7 @@ public class Flow3Service extends MybatisBaseService { if (sysUserVos == null || sysUserVos.size() < 1) { log.error("下一环节无用户填充管理员用户"); return rb; - }else{ + } else { StringBuilder nextNodeUserSids = new StringBuilder(); for (SysUserVo su : sysUserVos) { nextNodeUserSids.append(su.getSid()).append(","); diff --git a/anrui-gateway/src/main/resources/logback-spring.xml b/anrui-gateway/src/main/resources/logback-spring.xml new file mode 100644 index 0000000000..9efee7d08d --- /dev/null +++ b/anrui-gateway/src/main/resources/logback-spring.xml @@ -0,0 +1,50 @@ + + + + + + + + + + %yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%green(%logger:%line) |%blue(%msg%n) + + + + + + + + + + + + + + + ${log.base}.log + + ${log.base}.%d{yyyyMMdd}.%i.log.zip + + + + 1MB + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} + -%msg%n + + + + + + + + + + \ No newline at end of file diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstaffinfo/UserCommonVo.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstaffinfo/UserCommonVo.java new file mode 100644 index 0000000000..b4d28888c7 --- /dev/null +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysstaffinfo/UserCommonVo.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.portal.api.sysstaffinfo; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +/** + * @description: + * @author: dimengzhe + * @date: 2025/3/3 + **/ +@Data +public class UserCommonVo { + + @JsonProperty("id") + private String dictKey; + private String dictValue; + + private Map extra = new HashMap<>(); +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoMapper.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoMapper.java index 599147c040..8280b5a52b 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoMapper.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoMapper.java @@ -121,10 +121,15 @@ public interface SysStaffinfoMapper extends BaseMapper { IPage getUserList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw, @Param("orgSid") String orgSid); - List getGressionUserList(@Param("userOrgSid")String userOrgSid); + List getGressionUserList(@Param("userOrgSid") String userOrgSid); List selectStaffLists(); + List selectStaffListss(); List getStaffNameByRoleCode(@Param("orgSidPath") String orgSidPath, @Param("list") List list); + + List getCommonUser(); + + List getCommonUserByRoleSid(@Param("roleSid") String s); } diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoMapper.xml b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoMapper.xml index 99f2406064..ac1906801b 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoMapper.xml +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoMapper.xml @@ -17,14 +17,14 @@ @@ -386,30 +386,53 @@ select su.sid userSid, si.name staffName from sys_user su - left join sys_staffinfo si on su.staffSid = si.sid where su.isAdmin is NULL + left join sys_staffinfo si on su.staffSid = si.sid + where su.isAdmin is NULL + + + + diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoRest.java index 1bef81a8de..934a799aac 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoRest.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoRest.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.portal.api.sysstaffinfo.*; import com.yxt.anrui.portal.api.sysstaffinfo.app.AppSysStaffQuery; import com.yxt.anrui.portal.api.sysstaffinfo.app.AppSysStaffVo; +import com.yxt.anrui.portal.api.sysstaffinfo.UserCommonVo; import com.yxt.anrui.portal.biz.sysuser.SysUserService; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.utils.PagerUtil; @@ -11,11 +12,10 @@ import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.text.SimpleDateFormat; import java.util.Collections; @@ -237,5 +237,9 @@ public class SysStaffinfoRest implements SysStaffinfoFeign { return sysStaffinfoService.selectStaffListss(); } - + @ApiOperation("获取用户") + @GetMapping({"/getCommonUser", "/getCommonUser/{roleSids}"}) + ResultBean> getCommonUser(@PathVariable(value = "roleSids", required = false) String roleSids) { + return sysStaffinfoService.getCommonUser(roleSids); + } } diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoService.java index 381c8423a3..2fe98d832f 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoService.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoService.java @@ -40,6 +40,8 @@ import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; import static java.util.stream.Collectors.toList; @@ -624,10 +626,10 @@ public class SysStaffinfoService extends MybatisBaseService 0) { //根据staffSid查询token String token = sysUserService.selectByStaffsid(sid).getToken(); - if(StringUtils.isNotBlank(token)){ + if (StringUtils.isNotBlank(token)) { //查询redis中是否包含该token String userName = redisUtil.get(token); - if(StringUtils.isNotBlank(userName)){ + if (StringUtils.isNotBlank(userName)) { //清空该token redisUtil.remove(token); } @@ -826,7 +828,29 @@ public class SysStaffinfoService extends MybatisBaseService roleCode = query.getRoleCode(); SysOrganization sysOrganization = sysOrganizationService.fetchBySid(useOrgSid); String orgSidPath = sysOrganization.getOrgSidPath(); - List list = baseMapper.getStaffNameByRoleCode(orgSidPath,roleCode); + List list = baseMapper.getStaffNameByRoleCode(orgSidPath, roleCode); return list; } + + public ResultBean> getCommonUser(String roleSids) { + ResultBean> rb = ResultBean.fireFail(); + List userCommonVoList = new ArrayList<>(); + if (StringUtils.isBlank(roleSids)) { + //查询集团所有的人员 + userCommonVoList = baseMapper.getCommonUser(); + } else { + List roleSidList = Arrays.asList(roleSids.split(",")); + roleSidList.removeAll(Collections.singleton(null)); + if (!roleSidList.isEmpty()) { + for (int i = 0; i < roleSidList.size(); i++) { + List userList = baseMapper.getCommonUserByRoleSid(roleSidList.get(i)); + userCommonVoList.addAll(userList); + } + } + } + List uniqueList = new ArrayList<>(userCommonVoList.stream() + .collect(Collectors.toMap(UserCommonVo::getDictKey, Function.identity(), (existing, replacement) -> existing)) + .values()); + return rb.success().setData(uniqueList); + } } diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java index d69fa4a151..9217c51f88 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java @@ -24,11 +24,10 @@ import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.*; @@ -286,7 +285,7 @@ public class SysUserRest implements SysUserFeign { if (i == 0) { return ResultBean.fireFail().setMsg("修改失败"); } - if(StringUtils.isNotBlank(token)){ + if (StringUtils.isNotBlank(token)) { redisUtil.remove(token); } return ResultBean.fireSuccess().setMsg("修改成功"); diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java index 51702debb4..f0e7e49226 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java @@ -14,6 +14,7 @@ import com.yxt.anrui.portal.api.sysmobilemenu.SysMobileMenu; import com.yxt.anrui.portal.api.sysorganization.SysOrganization; import com.yxt.anrui.portal.api.sysstaffinfo.SysStaffinfo; import com.yxt.anrui.portal.api.sysstaffinfo.SysStaffinfoVo; +import com.yxt.anrui.portal.api.sysstaffinfo.UserCommonVo; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo; import com.yxt.anrui.portal.api.sysstaffpost.SysStaffPostDetailsVo; diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReport.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReport.java new file mode 100644 index 0000000000..15ac320da1 --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReport.java @@ -0,0 +1,152 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * Project: baobiao(baobiao)
+ * File: AsMonthFittingsInventoryReport.java
+ * Class: com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport.AsMonthFittingsInventoryReport
+ * Description: 月度配件库存管理指标完成情况报表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-03-05 14:43:41
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "月度配件库存管理指标完成情况报表", description = "月度配件库存管理指标完成情况报表") +@TableName("as_month_fittings_inventory_report") +public class AsMonthFittingsInventoryReport extends BaseEntity { + private static final long serialVersionUID = 1L; + + @ApiModelProperty("生成年月(yyyy-MM)") + private String createDate; // 生成年月(yyyy-MM) + @ApiModelProperty("事业部sid") + private String busOrgSid; // 事业部sid + @ApiModelProperty("事业部名称") + private String busOrgName; // 事业部名称 + @ApiModelProperty("分公司sid") + private String createOrgSid; // 分公司sid + @ApiModelProperty("分公司名称") + private String createOrgName; // 分公司名称 + @ApiModelProperty("部门(服务站)sid") + private String useOrgSid; // 部门(服务站)sid + @ApiModelProperty("部门(服务站)") + private String useOrgName; // 部门(服务站) + @ApiModelProperty("品牌sid") + private String brandSid; // 品牌sid + @ApiModelProperty("品牌名") + private String brandName; // 品牌名 + @ApiModelProperty("品名(区域)") + private String zoneName; // 品名(区域) + @ApiModelProperty("项目(仓库)") + private String houseName; // 项目(仓库) + @ApiModelProperty("在修车辆") + private BigDecimal repairVehAmount; // 在修车辆 + @ApiModelProperty("品种(个)-库存总计") + private BigDecimal fittingsVarietyTotal; // 品种(个)-库存总计 + @ApiModelProperty("金额(元)-库存总计") + private BigDecimal fittingsAmountTotal; // 金额(元)-库存总计 + @ApiModelProperty("品种(个)-库龄1-60天") + private BigDecimal fittingsVarietyOne; // 品种(个)-库龄1-60天 + @ApiModelProperty("金额(元)-库龄1-60天") + private BigDecimal fittingsAmountOne; // 金额(元)-库龄1-60天 + @ApiModelProperty("占比-库龄1-60天") + private BigDecimal fittingsPercentOne; // 占比-库龄1-60天 + @ApiModelProperty("品种(个)-库龄61-90天") + private BigDecimal fittingsVarietyTwo; // 品种(个)-库龄61-90天 + @ApiModelProperty("金额(元)-库龄61-90天") + private BigDecimal fittingsAmountTwo; // 金额(元)-库龄61-90天 + @ApiModelProperty("占比-库龄61-90天") + private BigDecimal fittingsPercentTwo; // 占比-库龄61-90天 + @ApiModelProperty("品种(个)-库龄91-180天") + private BigDecimal fittingsVarietyThree; // 品种(个)-库龄91-180天 + @ApiModelProperty("金额(元)-库龄91-180天") + private BigDecimal fittingsAmountThree; // 金额(元)-库龄91-180天 + @ApiModelProperty("占比-库龄91-180天") + private BigDecimal fittingsPercentThree; // 占比-库龄91-180天 + @ApiModelProperty("品种(个)-库龄150-180天") + private BigDecimal fittingsVarietyFour; // 品种(个)-库龄150-180天 + @ApiModelProperty("金额(元)-库龄150-180天") + private BigDecimal fittingsAmountFour; // 金额(元)-库龄150-180天 + @ApiModelProperty("占比-库龄150-180天") + private BigDecimal fittingsPercentFour; // 占比-库龄150-180天 + @ApiModelProperty("品种(个)-库龄181-270天") + private BigDecimal fittingsVarietyFive; // 品种(个)-库龄181-270天 + @ApiModelProperty("金额(元)-库龄181-270天") + private BigDecimal fittingsAmountFive; // 金额(元)-库龄181-270天 + @ApiModelProperty("占比-库龄181-270天") + private BigDecimal fittingsPercentFive; // 占比-库龄181-270天 + @ApiModelProperty("品种(个)-库龄240-270天") + private BigDecimal fittingsVarietySix; // 品种(个)-库龄240-270天 + @ApiModelProperty("金额(元)-库龄240-270天") + private BigDecimal fittingsAmountSix; // 金额(元)-库龄240-270天 + @ApiModelProperty("占比-库龄240-270天") + private BigDecimal fittingsPercentSix; // 占比-库龄240-270天 + @ApiModelProperty("品种(个)-库龄271-360天") + private BigDecimal fittingsVarietySeven; // 品种(个)-库龄271-360天 + @ApiModelProperty("金额(元)-库龄271-360天") + private BigDecimal fittingsAmountSeven; // 金额(元)-库龄271-360天 + @ApiModelProperty("占比-库龄271-360天") + private BigDecimal fittingsPercentSeven; // 占比-库龄271-360天 + @ApiModelProperty("品种(个)-库龄330-360天") + private BigDecimal fittingsVarietyEight; // 品种(个)-库龄330-360天 + @ApiModelProperty("金额(元)-库龄330-360天") + private BigDecimal fittingsAmountEight; // 金额(元)-库龄330-360天 + @ApiModelProperty("占比-库龄330-360天") + private BigDecimal fittingsPercentEight; // 占比-库龄330-360天 + @ApiModelProperty("品种(个)-库龄361-720天") + private BigDecimal fittingsVarietyNine; // 品种(个)-库龄361-720天 + @ApiModelProperty("金额(元)-库龄361-720天") + private BigDecimal fittingsAmountNine; // 金额(元)-库龄361-720天 + @ApiModelProperty("占比-库龄361-720天") + private BigDecimal fittingsPercentNine; // 占比-库龄361-720天 + @ApiModelProperty("品种(个)-库龄720天以上") + private BigDecimal fittingsVarietyTen; // 品种(个)-库龄720天以上 + @ApiModelProperty("金额(元)-库龄720天以上") + private BigDecimal fittingsAmountTen; // 金额(元)-库龄720天以上 + @ApiModelProperty("占比-库龄720天以上") + private BigDecimal fittingsPercentTen; // 占比-库龄720天以上 + @ApiModelProperty("当月出库配件成本-金额") + private BigDecimal fittingsOutAmount; // 当月出库配件成本-金额 + @ApiModelProperty("当月出库配件成本-占比") + private BigDecimal fittingsOutPercent; // 当月出库配件成本-占比 + @ApiModelProperty("当月入库配件成本-金额") + private BigDecimal fittingsInAmount; // 当月入库配件成本-金额 + @ApiModelProperty("当月入库配件成本-占比") + private BigDecimal fittingsInPercent; // 当月入库配件成本-占比 + +} diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportFeign.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportFeign.java new file mode 100644 index 0000000000..2d4bd8a0ff --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportFeign.java @@ -0,0 +1,74 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport; + +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * Project: baobiao(baobiao)
+ * File: AsMonthFittingsInventoryReportFeign.java
+ * Class: com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport.AsMonthFittingsInventoryReportFeign
+ * Description: 月度配件库存管理指标完成情况报表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-03-05 14:43:41
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "月度配件库存管理指标完成情况报表") +@FeignClient( + contextId = "baobiao-AsMonthFittingsInventoryReport", + name = "baobiao", + path = "v1/MonthFittingsReport", + fallback = AsMonthFittingsInventoryReportFeignFallback.class) +public interface AsMonthFittingsInventoryReportFeign { + + + @ApiOperation("月度配件库存管理指标完成情况列表") + @PostMapping("/monthFittingsList") + @ResponseBody + public ResultBean> monthFittingsList(@RequestBody PagerQuery pq); + + @ApiOperation("月度配件库存管理指标完成情况列表明细") + @PostMapping("/monthFittingsListDetails") + @ResponseBody + public ResultBean> monthFittingsListDetails(@RequestParam("createDate") String createDate, + @RequestParam("useOrgSid") String useOrgSid + ); + + + +} \ No newline at end of file diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportFeignFallback.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportFeignFallback.java new file mode 100644 index 0000000000..a5eb390951 --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportFeignFallback.java @@ -0,0 +1,64 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport; + +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * Project: baobiao(baobiao)
+ * File: AsMonthFittingsInventoryReportFeignFallback.java
+ * Class: com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport.AsMonthFittingsInventoryReportFeignFallback
+ * Description: 月度配件库存管理指标完成情况报表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-03-05 14:43:41
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Component +public class AsMonthFittingsInventoryReportFeignFallback implements AsMonthFittingsInventoryReportFeign { + + + + @Override + public ResultBean> monthFittingsList(PagerQuery pq) { + return null; + } + + @Override + public ResultBean> monthFittingsListDetails(String createDate, String useOrgSid) { + return null; + } + + +} \ No newline at end of file diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportVo.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportVo.java new file mode 100644 index 0000000000..d7129a9331 --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportVo.java @@ -0,0 +1,136 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport; + + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * Project: baobiao(baobiao)
+ * File: AsMonthFittingsInventoryReportVo.java
+ * Class: com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport.AsMonthFittingsInventoryReportVo
+ * Description: 月度配件库存管理指标完成情况报表 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-03-05 14:43:41
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "月度配件库存管理指标完成情况报表 视图数据对象", description = "月度配件库存管理指标完成情况报表 视图数据对象") +public class AsMonthFittingsInventoryReportVo implements Vo { + + @ApiModelProperty("生成年月(yyyy-MM)") + private String createDate; // 生成年月(yyyy-MM) + @ApiModelProperty("品牌名") + private String brandName; // 品牌名 + @ApiModelProperty("品名(区域)") + private String zoneName; // 品名(区域) + @ApiModelProperty("项目(仓库)") + private String houseName; // 项目(仓库) + @ApiModelProperty("在修车辆") + private String repairVehAmount; // 在修车辆 + @ApiModelProperty("品种(个)-库存总计") + private String fittingsVarietyTotal; // 品种(个)-库存总计 + @ApiModelProperty("金额(元)-库存总计") + private String fittingsAmountTotal; // 金额(元)-库存总计 + @ApiModelProperty("品种(个)-库龄1-60天") + private String fittingsVarietyOne; // 品种(个)-库龄1-60天 + @ApiModelProperty("金额(元)-库龄1-60天") + private String fittingsAmountOne; // 金额(元)-库龄1-60天 + @ApiModelProperty("占比-库龄1-60天") + private String fittingsPercentOne; // 占比-库龄1-60天 + @ApiModelProperty("品种(个)-库龄61-90天") + private String fittingsVarietyTwo; // 品种(个)-库龄61-90天 + @ApiModelProperty("金额(元)-库龄61-90天") + private String fittingsAmountTwo; // 金额(元)-库龄61-90天 + @ApiModelProperty("占比-库龄61-90天") + private String fittingsPercentTwo; // 占比-库龄61-90天 + @ApiModelProperty("品种(个)-库龄91-180天") + private String fittingsVarietyThree; // 品种(个)-库龄91-180天 + @ApiModelProperty("金额(元)-库龄91-180天") + private String fittingsAmountThree; // 金额(元)-库龄91-180天 + @ApiModelProperty("占比-库龄91-180天") + private String fittingsPercentThree; // 占比-库龄91-180天 + @ApiModelProperty("品种(个)-库龄150-180天") + private String fittingsVarietyFour; // 品种(个)-库龄150-180天 + @ApiModelProperty("金额(元)-库龄150-180天") + private String fittingsAmountFour; // 金额(元)-库龄150-180天 + @ApiModelProperty("占比-库龄150-180天") + private String fittingsPercentFour; // 占比-库龄150-180天 + @ApiModelProperty("品种(个)-库龄181-270天") + private String fittingsVarietyFive; // 品种(个)-库龄181-270天 + @ApiModelProperty("金额(元)-库龄181-270天") + private String fittingsAmountFive; // 金额(元)-库龄181-270天 + @ApiModelProperty("占比-库龄181-270天") + private String fittingsPercentFive; // 占比-库龄181-270天 + @ApiModelProperty("品种(个)-库龄240-270天") + private String fittingsVarietySix; // 品种(个)-库龄240-270天 + @ApiModelProperty("金额(元)-库龄240-270天") + private String fittingsAmountSix; // 金额(元)-库龄240-270天 + @ApiModelProperty("占比-库龄240-270天") + private String fittingsPercentSix; // 占比-库龄240-270天 + @ApiModelProperty("品种(个)-库龄271-360天") + private String fittingsVarietySeven; // 品种(个)-库龄271-360天 + @ApiModelProperty("金额(元)-库龄271-360天") + private String fittingsAmountSeven; // 金额(元)-库龄271-360天 + @ApiModelProperty("占比-库龄271-360天") + private String fittingsPercentSeven; // 占比-库龄271-360天 + @ApiModelProperty("品种(个)-库龄330-360天") + private String fittingsVarietyEight; // 品种(个)-库龄330-360天 + @ApiModelProperty("金额(元)-库龄330-360天") + private String fittingsAmountEight; // 金额(元)-库龄330-360天 + @ApiModelProperty("占比-库龄330-360天") + private String fittingsPercentEight; // 占比-库龄330-360天 + @ApiModelProperty("品种(个)-库龄361-720天") + private String fittingsVarietyNine; // 品种(个)-库龄361-720天 + @ApiModelProperty("金额(元)-库龄361-720天") + private String fittingsAmountNine; // 金额(元)-库龄361-720天 + @ApiModelProperty("占比-库龄361-720天") + private String fittingsPercentNine; // 占比-库龄361-720天 + @ApiModelProperty("品种(个)-库龄720天以上") + private String fittingsVarietyTen; // 品种(个)-库龄720天以上 + @ApiModelProperty("金额(元)-库龄720天以上") + private String fittingsAmountTen; // 金额(元)-库龄720天以上 + @ApiModelProperty("占比-库龄720天以上") + private String fittingsPercentTen; // 占比-库龄720天以上 + @ApiModelProperty("当月出库配件成本-金额") + private String fittingsOutAmount; // 当月出库配件成本-金额 + @ApiModelProperty("当月出库配件成本-占比") + private String fittingsOutPercent; // 当月出库配件成本-占比 + @ApiModelProperty("当月入库配件成本-金额") + private String fittingsInAmount; // 当月入库配件成本-金额 + @ApiModelProperty("当月入库配件成本-占比") + private String fittingsInPercent; // 当月入库配件成本-占比 + +} diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/MonthFittingsReportListQuery.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/MonthFittingsReportListQuery.java new file mode 100644 index 0000000000..3e3dc2548e --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/MonthFittingsReportListQuery.java @@ -0,0 +1,14 @@ +package com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +@Data +public class MonthFittingsReportListQuery implements Query { + + private String startDate; + private String endDate; + private String useOrgName; + + +} diff --git a/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/MonthFittingsReportListVo.java b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/MonthFittingsReportListVo.java new file mode 100644 index 0000000000..2d18d37b3c --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/asmonthfittingsinventoryreport/MonthFittingsReportListVo.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +@Data +public class MonthFittingsReportListVo implements Vo { + + private String createDate; + private String useOrgName; + private String useOrgSid; +} diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportMapper.java b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportMapper.java new file mode 100644 index 0000000000..122acd8855 --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportMapper.java @@ -0,0 +1,71 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.reportcenter.biz.asmonthfittingsinventoryreport; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport.MonthFittingsReportListVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport.AsMonthFittingsInventoryReport; +import com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport.AsMonthFittingsInventoryReportVo; + +import java.util.List; + +/** + * Project: baobiao(baobiao)
+ * File: AsMonthFittingsInventoryReportMapper.java
+ * Class: com.yxt.anrui.reportcenter.biz.asmonthfittingsinventoryreport.AsMonthFittingsInventoryReportMapper
+ * Description: 月度配件库存管理指标完成情况报表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-03-05 14:43:41
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Mapper +public interface AsMonthFittingsInventoryReportMapper extends BaseMapper { + + //@Update("update as_month_fittings_inventory_report set name=#{msg} where id=#{id}") + //IPage voPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); + + List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); + + @Select("select * from as_month_fittings_inventory_report") + List selectListVo(); + + IPage monthFittingsList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + List monthFittingsListDetails(@Param(Constants.WRAPPER)QueryWrapper qw); +} \ No newline at end of file diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportMapper.xml b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportMapper.xml new file mode 100644 index 0000000000..971bb52833 --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportRest.java b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportRest.java new file mode 100644 index 0000000000..7a68ed935e --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportRest.java @@ -0,0 +1,77 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.reportcenter.biz.asmonthfittingsinventoryreport; + +import com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport.AsMonthFittingsInventoryReportFeign; +import com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport.AsMonthFittingsInventoryReportVo; +import com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport.MonthFittingsReportListQuery; +import com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport.MonthFittingsReportListVo; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * Project: baobiao(baobiao)
+ * File: AsMonthFittingsInventoryReportFeignFallback.java
+ * Class: com.yxt.anrui.reportcenter.biz.asmonthfittingsinventoryreport.AsMonthFittingsInventoryReportRest
+ * Description: 月度配件库存管理指标完成情况报表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-03-05 14:43:41
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "月度配件库存管理指标完成情况报表") +@RestController("com.yxt.anrui.reportcenter.biz.asmonthfittingsinventoryreport.AsMonthFittingsInventoryReportRest") +@RequestMapping("v1/MonthFittingsReport") +public class AsMonthFittingsInventoryReportRest implements AsMonthFittingsInventoryReportFeign { + + @Autowired + private AsMonthFittingsInventoryReportService asMonthFittingsInventoryReportService; + + @Override + public ResultBean> monthFittingsList(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = asMonthFittingsInventoryReportService.monthFittingsList(pq); + return rb.success().setData(pv); + } + + @Override + public ResultBean> monthFittingsListDetails(String createDate, String useOrgSid) { + ResultBean rb = ResultBean.fireFail(); + List pv = asMonthFittingsInventoryReportService.monthFittingsListDetails(createDate,useOrgSid); + return rb.success().setData(pv); + } + +} diff --git a/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportService.java b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportService.java new file mode 100644 index 0000000000..a32d6bce9e --- /dev/null +++ b/anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/asmonthfittingsinventoryreport/AsMonthFittingsInventoryReportService.java @@ -0,0 +1,85 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.reportcenter.biz.asmonthfittingsinventoryreport; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.anrui.reportcenter.api.asmonthfittingsinventoryreport.*; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.vo.PagerVo; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Project: baobiao(baobiao)
+ * File: AsMonthFittingsInventoryReportService.java
+ * Class: com.yxt.anrui.reportcenter.biz.asmonthfittingsinventoryreport.AsMonthFittingsInventoryReportService
+ * Description: 月度配件库存管理指标完成情况报表 业务逻辑.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2025-03-05 14:43:41
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Service +public class AsMonthFittingsInventoryReportService extends MybatisBaseService { + + + public PagerVo monthFittingsList(PagerQuery pq) { + MonthFittingsReportListQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //生成日期开始时间 + String createTimeStart = query.getStartDate(); + //生成日期结束时间 + String createTimeEnd = query.getEndDate(); + qw.apply(StringUtils.isNotEmpty(createTimeStart), "date_format (mf.createDate,'%Y-%m') >= date_format('" + createTimeStart + "','%Y-%m')"). + apply(StringUtils.isNotEmpty(createTimeEnd), "date_format (mf.createDate,'%Y-%m') <= date_format('" + createTimeEnd + "','%Y-%m')" + ); + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("mf.useOrgName", query.getUseOrgName()); + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.monthFittingsList(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public List monthFittingsListDetails(String createDate, String useOrgSid) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("createDate", createDate); + qw.eq("useOrgSid", useOrgSid); + List list = baseMapper.monthFittingsListDetails(qw); + return list; + } + + +} \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java index 84604fda31..ac64a7fa7c 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java @@ -757,6 +757,7 @@ public class ScmApplyInboundService extends MybatisBaseService + @@ -499,11 +500,30 @@ 取 消 + + + + + + 厂家结算价 + + + + + + + + + +