From a5482140ab58009b2453fe982da1fd9764a7a4ab Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 08 一月 2026 15:32:41 +0800
Subject: [PATCH] 【市一】提供问题统计接口(通过scriptid)
---
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateScriptServiceImpl.java | 93 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 92 insertions(+), 1 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateScriptServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateScriptServiceImpl.java
index ff066d2..0f9761f 100644
--- a/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateScriptServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateScriptServiceImpl.java
@@ -1,13 +1,23 @@
package com.smartor.service.impl;
import com.ruoyi.common.utils.DateUtils;
-import com.smartor.domain.SvyLibTemplateScript;
+import com.smartor.domain.*;
+import com.smartor.mapper.ServiceSubtaskMapper;
import com.smartor.mapper.SvyLibTemplateScriptMapper;
import com.smartor.service.ISvyLibTemplateScriptService;
+import com.smartor.service.ISvyLibTemplateTargetoptionService;
+import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+
+import static net.sf.jsqlparser.parser.feature.Feature.values;
/**
* 妯℃澘闂嵎棰樼洰Service涓氬姟灞傚鐞�
@@ -18,8 +28,13 @@
@Service
public class SvyLibTemplateScriptServiceImpl implements ISvyLibTemplateScriptService
{
+ ISvyLibTemplateTargetoptionService svyLibTemplateTargetoptionService;
+
@Autowired
private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper;
+
+ @Autowired
+ private ServiceSubtaskMapper serviceSubtaskMapper;
/**
* 鏌ヨ妯℃澘闂嵎棰樼洰
@@ -94,4 +109,80 @@
{
return svyLibTemplateScriptMapper.deleteSvyLibTemplateScriptByTopicid(topicid);
}
+
+ public Map<Long, ServiceSubtaskScriptCount> countPatByScript(ServiceSubtaskCountReq serviceSubtaskCountReq)
+ {
+ Map<Long, ServiceSubtaskScriptCount> result = new HashMap<>();
+ serviceSubtaskCountReq.setType("2");
+ List<ServiceSubtaskScriptCount> counts = serviceSubtaskMapper.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
+ List<ServiceSubtaskScriptCount> itemCounts = serviceSubtaskMapper.getSfStatisticsScriptItemDetails(serviceSubtaskCountReq);
+
+ if(ObjectUtils.isNotEmpty(counts)){
+ for(ServiceSubtaskScriptCount count:counts){
+ Long scriptid = count.getScriptid();
+ //鎺掗櫎scriptid涓虹┖鐨勬儏鍐�
+ if(ObjectUtils.isEmpty(scriptid)){
+ continue;
+ }
+ Map<String, ServiceSubtaskScriptCount> itemCountMap = new HashMap<>();
+ //闂嵎鍔犱笂绌虹櫧閫夐」
+ if(ObjectUtils.isNotEmpty(count.getTemplateid())
+ && ObjectUtils.isNotEmpty(count.getSubtaskType())
+ && count.getSubtaskType().equals("2")){
+ SvyLibTemplateScript script = selectSvyLibTemplateScriptByTopicid(scriptid);
+ if(ObjectUtils.isNotEmpty(script)){
+ SvyLibTemplateTargetoption targetoptionVo = new SvyLibTemplateTargetoption();
+ targetoptionVo.setOrgid(script.getOrgid());
+ targetoptionVo.setScriptid(script.getScriptid());
+ List<SvyLibTemplateTargetoption> targetoptions
+ = svyLibTemplateTargetoptionService.selectSvyLibTemplateTargetoptionList(targetoptionVo);
+ if(ObjectUtils.isNotEmpty(targetoptions)){
+ //濉叆绌虹櫧淇℃伅
+ targetoptions.forEach(targetoption ->{
+ ServiceSubtaskScriptCount emptyCount = new ServiceSubtaskScriptCount();
+ emptyCount.setScriptid(count.getScriptid());
+ emptyCount.setScriptContent(count.getScriptContent());
+ emptyCount.setScriptType(count.getScriptType());
+ emptyCount.setSubtaskType(count.getSubtaskType());
+ emptyCount.setCompletedQuantity(count.getCompletedQuantity());
+ emptyCount.setAllQuantity(count.getAllQuantity());
+ emptyCount.setCompletedPercentage(count.getCompletedPercentage());
+ emptyCount.setTemplateid(count.getTemplateid());
+ emptyCount.setChosenQuantity(0);
+ emptyCount.setChosenPercentage("0.0");
+ emptyCount.setOptionText(targetoption.getOptioncontent());
+ itemCountMap.put(targetoption.getOptioncontent(),emptyCount);
+ });
+ }
+ }
+ }
+ itemCounts.forEach(itemCount ->{
+ if(ObjectUtils.isNotEmpty(count.getScriptid()) && ObjectUtils.isNotEmpty(itemCount.getScriptid())){
+ if(count.getScriptid().equals(itemCount.getScriptid())){
+ //鏀惧叆缁熻淇℃伅
+ itemCount.setScriptContent(count.getScriptContent());
+ itemCount.setScriptType(count.getScriptType());
+ itemCount.setSubtaskType(count.getSubtaskType());
+ itemCount.setCompletedQuantity(count.getCompletedQuantity());
+ itemCount.setAllQuantity(count.getAllQuantity());
+ itemCount.setCompletedPercentage(count.getCompletedPercentage());
+ itemCount.setTemplateid(count.getTemplateid());
+ //璁$畻閫夋嫨姣斾緥
+ int chosenQuantity = ObjectUtils.isNotEmpty(itemCount.getChosenQuantity())?itemCount.getChosenQuantity():0;
+ int completedQuantity = itemCount.getCompletedQuantity();
+ if(ObjectUtils.isNotEmpty(completedQuantity) && completedQuantity != 0){
+ BigDecimal chosenPercentage = (new BigDecimal(chosenQuantity)).divide(new BigDecimal(completedQuantity), 2, RoundingMode.HALF_UP);
+ itemCount.setChosenPercentage(chosenPercentage.toString());
+ }
+ itemCountMap.put(itemCount.getOptionText(), itemCount);
+ }
+ }
+ });
+ List<ServiceSubtaskScriptCount> details = new ArrayList<>(itemCountMap.values());
+ count.setDetails(details);
+ result.put(scriptid, count);
+ }
+ }
+ return result;
+ }
}
--
Gitblit v1.9.3