From bb5c9f74bcd20f299a514ad36ff47e6dd1dce7ae Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 04 十一月 2026 09:29:08 +0800
Subject: [PATCH] 【丽水】默认完成-下次补偿判断,上一次补偿方式是微信,状态是已领取,没选的填充默认选项,已完成
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java | 19 +++
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 178 +++++++++++++++++++++++++++++++++++
smartor/src/main/resources/mapper/smartor/ServiceSubtaskPreachformMapper.xml | 17 +++
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java | 8 +
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java | 19 +++
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 19 +++
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskPreachformMapper.java | 9 +
7 files changed, 269 insertions(+), 0 deletions(-)
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
index bfd1946..60785ee 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -941,6 +941,25 @@
Optional<Long> currentSort = serviceSubtaskPreachforms.stream().filter(item -> serviceSubtask.getCurrentPreachform().equals(item.getPreachform())).map(ServiceSubtaskPreachform::getSort).findFirst();
Optional<Long> id = serviceSubtaskPreachforms.stream().filter(item -> serviceSubtask.getCurrentPreachform().equals(item.getPreachform())).map(ServiceSubtaskPreachform::getId).findFirst();
if (currentSort.isPresent()) {
+ // 鏂规B锛氬彧澶勭悊褰撳墠瀛愪换鍔♀�斺�斿叕浼楀彿宸查鍙�(service_subtask.sendstate=1 + current_preachform=5)
+ // 涓旀湭濉啓鏃讹紝鎸夐粯璁ら�夐」瀹屾垚锛岄伩鍏嶈繘鍏ヤ笅涓�绉嶅彂閫佹柟寮忔垨鏈�鍚庝竴姝ヨ秴鏃躲��
+ // 鍏堢敤鍐呭瓨瀛楁蹇�熻繃婊わ紝鍏朵粬鍖婚櫌/浠诲姟/鍙戦�佹柟寮忎笉浼氳繘鍏ヤ笅闈㈢殑榛樿瀹屾垚閫昏緫銆�
+ if (IServiceSubtaskService.WECHAT_DEFAULT_COMPLETE_ORGID.equals(serviceSubtask.getOrgid())
+ && "2".equals(serviceSubtask.getType())
+ && "5".equals(serviceSubtask.getCurrentPreachform())
+ && Long.valueOf(1L).equals(serviceSubtask.getSendstate())
+ && !Long.valueOf(1L).equals(serviceSubtask.getSubmit())) {
+ try {
+ if (iServiceSubtaskService.completeWechatClaimedByDefault(serviceSubtask)) {
+ log.info("銆恈ompensateTask銆憇ubid锛歿}锛屽井淇″叕浼楀彿宸查鍙栨湭濉啓锛屾寜榛樿閫夐」瀹屾垚", serviceSubtask.getId());
+ continue;
+ }
+ } catch (Exception e) {
+ // 鍗曚釜瀛愪换鍔″け璐ヤ笉褰卞搷鍏朵粬浠诲姟锛屽洖婊氬悗缁х画鍘熻ˉ鍋挎祦绋�
+ log.error("銆恈ompensateTask銆戝井淇″叕浼楀彿榛樿瀹屾垚澶辫触锛宻ubid锛歿}锛岀户缁師琛ュ伩娴佺▼", serviceSubtask.getId(), e);
+ }
+ }
+
//1鍏堟鏌ヤ竴涓嬶紝鏄笉鏄湁鎵ц鐘舵�佹槸瀹屾垚鐨勶紙鎬曚箣鍓嶅凡缁忔湁瀹岀殑浜嗭紝娌℃湁灏唖ervuce_subtask鐨勭姸鎬佹敼鎴愬姛锛岃繖閲屽啀妫�鏌ヤ竴涓嬶級
boolean finishState = serviceSubtaskPreachforms.stream().allMatch(item -> item.getSendstate().equals("9"));
if (finishState) {
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
index 9abb3a5..8cc7a03 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -143,6 +143,14 @@
public Boolean updateServiceSubtaskByCondition(ServiceSubtask ServiceSubtask);
+ /**
+ * 寰俊鍏紬鍙峰凡棰嗗彇鏈~鍐欐寜榛樿閫夐」瀹屾垚锛氬彧鏇存柊褰撳墠瀛愪换鍔★紝涓斿彧鍏佽 sendstate=1銆佹湭鎻愪氦鐨勬暟鎹��
+ *
+ * @param serviceSubtask 蹇呭~ id銆乫inishtime銆乺esult銆乺emark
+ * @return 褰卞搷琛屾暟
+ */
+ public int updateWechatDefaultComplete(ServiceSubtask serviceSubtask);
+
public Boolean updateServiceSubtaskByTaskGuid(ServiceSubtask ServiceSubtask);
/**
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskPreachformMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskPreachformMapper.java
index 2a27f24..f323a5d 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskPreachformMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskPreachformMapper.java
@@ -50,6 +50,15 @@
public int updateSSPByCondition(ServiceSubtaskPreachform serviceSubtaskPreachform);
/**
+ * 寰俊鍏紬鍙峰凡棰嗗彇鏈~鍐欐寜榛樿閫夐」瀹屾垚鏃讹紝灏嗗綋鍓嶅彂閫佹柟寮忕疆涓哄畬鎴�(9)銆�
+ * 浠呮洿鏂板綋鍓嶅瓙浠诲姟銆佸綋鍓嶅叕浼楀彿琛岋紝涓斿彧鍏佽浠庡凡鍙戦��(2)/宸查鍙�(3)杩佺Щ锛岄伩鍏嶅奖鍝嶅叾浠栦换鍔°��
+ *
+ * @param serviceSubtaskPreachform 蹇呭~ id銆乻ubid銆乸reachform銆乺emark
+ * @return 褰卞搷琛屾暟
+ */
+ public int updateWechatPreachformComplete(ServiceSubtaskPreachform serviceSubtaskPreachform);
+
+ /**
* 鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆�
*
* @param id 銆愯濉啓鍔熻兘鍚嶇О銆戜富閿�
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
index 75ce6fc..54d5f9e 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -23,6 +23,12 @@
*/
public interface IServiceSubtaskService {
/**
+ * 涓芥按涓尰闄� orgid銆�
+ * 寰俊鍏紬鍙峰凡棰嗗彇鏈~鍐欐寜榛樿閫夐」瀹屾垚锛屾殏鏃跺彧瀵硅鏈烘瀯鐢熸晥锛屽叾浠栧尰闄粛璧板師琛ュ伩閫昏緫銆�
+ */
+ String WECHAT_DEFAULT_COMPLETE_ORGID = "47231022633110211A2101";
+
+ /**
* 鏌ヨ鍗曚竴浠诲姟锛堥殢璁匡級
*
* @param id 鍗曚竴浠诲姟锛堥殢璁匡級涓婚敭
@@ -241,6 +247,19 @@
*/
public void setFailSubTaskDefalutVal(Long failDay);
+ /**
+ * 寰俊鍏紬鍙峰凡棰嗗彇鏈~鍐欙細鎸夐鐩粯璁ら�夐」琛ラ綈褰撳墠瀛愪换鍔★紝骞跺皢褰撳墠瀛愪换鍔″畬鎴愩��
+ * <p>
+ * 浠呭鐞嗕紶鍏ョ殑褰撳墠瀛愪换鍔★紙subid锛夛紝鍙厑璁革細
+ * 闂嵎绫诲瀷(type=2)銆佸綋鍓嶅彂閫佹柟寮忎负鍏紬鍙�(5)銆佸瓙浠诲姟宸查鍙�(1)銆佹湭鎻愪氦(submit!=1)銆�
+ * 褰撳墠鍏紬鍙峰彂閫佹柟寮忎负宸插彂閫�(2)/宸查鍙�(3) 鐨勬暟鎹��
+ * 鍏朵粬浠诲姟銆佸叾浠栧彂閫佹柟寮忋�佸叾浠栧瓙浠诲姟鍧囦笉鍙楀奖鍝嶃��
+ *
+ * @param serviceSubtask 褰撳墠瀛愪换鍔�
+ * @return true=宸叉寜榛樿閫夐」瀹屾垚锛沠alse=涓嶆弧瓒虫潯浠舵垨娌℃湁鍙~鍏呯殑榛樿閫夐」
+ */
+ public Boolean completeWechatClaimedByDefault(ServiceSubtask serviceSubtask);
+
public Map<String, Object> getHeLibraryCount(@RequestBody HeLibraryCountVO heLibraryCountVO);
public List<ServiceSubtask> gethelibraryCountHyperlink(@RequestBody HeLibraryCountVO heLibraryCountVO);
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index bdcb5e9..f482eaf 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -5926,6 +5926,184 @@
}
}
+ /**
+ * 寰俊鍏紬鍙峰凡棰嗗彇鏈~鍐欙細鎸夐鐩粯璁ら�夐」琛ラ綈褰撳墠瀛愪换鍔★紝骞跺皢褰撳墠瀛愪换鍔″畬鎴愩��
+ * <p>
+ * 鎵�鏈夋煡璇€�佹槑缁嗗啓鍏ャ�佺姸鎬佹洿鏂伴兘鍙娇鐢ㄥ綋鍓� subid锛岄伩鍏嶅奖鍝嶅叾浠栦换鍔�/瀛愪换鍔°��
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean completeWechatClaimedByDefault(ServiceSubtask serviceSubtask) {
+ if (serviceSubtask == null || serviceSubtask.getId() == null) {
+ return false;
+ }
+
+ // 閲嶆柊璇诲彇褰撳墠瀛愪换鍔★紝鎵�鏈夊垽鏂彧閽堝杩欎竴涓� subid
+ ServiceSubtask current = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubtask.getId());
+ if (current == null) {
+ return false;
+ }
+ // 鍙鐞嗭細涓芥按涓尰闄€�侀棶鍗枫�佸綋鍓嶆柟寮忓叕浼楀彿銆佸凡棰嗗彇銆佹湭鎻愪氦
+ // 鍏朵粬鍖婚櫌 orgid 涓嶅尮閰嶆椂鐩存帴杩斿洖 false锛岀户缁蛋鍘熻ˉ鍋块�昏緫銆�
+ if (!IServiceSubtaskService.WECHAT_DEFAULT_COMPLETE_ORGID.equals(current.getOrgid())
+ || !"2".equals(current.getType())
+ || !"5".equals(current.getCurrentPreachform())
+ || !Long.valueOf(1L).equals(current.getSendstate())
+ || Long.valueOf(1L).equals(current.getSubmit())) {
+ return false;
+ }
+
+ // 鏌ヨ褰撳墠瀛愪换鍔¤嚜宸辩殑鍏紬鍙峰彂閫佹柟寮忥紝蹇呴』鏄凡鍙戦��(2)鎴栧凡棰嗗彇(3)
+ ServiceSubtaskPreachform query = new ServiceSubtaskPreachform();
+ query.setSubid(current.getId());
+ query.setTaskid(current.getTaskid());
+ query.setPreachform("5");
+ List<ServiceSubtaskPreachform> preachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(query);
+ if (CollectionUtils.isEmpty(preachforms)) {
+ return false;
+ }
+ ServiceSubtaskPreachform currentPreachform = preachforms.stream()
+ .filter(item -> "2".equals(item.getSendstate()) || "3".equals(item.getSendstate()))
+ .findFirst().orElse(null);
+ if (currentPreachform == null) {
+ return false;
+ }
+
+ // 鍙粰褰撳墠 subid 琛ラ綈榛樿閫夐」锛涜嚦灏戞湁涓�棰橀粯璁ら�夐」鎵嶇户缁�
+ int filled = fillWechatDefaultDetailForCurrentSubtask(current);
+ if (filled <= 0) {
+ log.info("銆愬井淇″叕浼楀彿榛樿瀹屾垚銆憇ubid锛歿} 娌℃湁鍙~鍏呯殑榛樿閫夐」锛岃烦杩�", current.getId());
+ return false;
+ }
+
+ // 褰撳墠鍏紬鍙峰彂閫佹柟寮忥細宸插彂閫�/宸查鍙� -> 瀹屾垚(9)
+ ServiceSubtaskPreachform updatePreachform = new ServiceSubtaskPreachform();
+ updatePreachform.setId(currentPreachform.getId());
+ updatePreachform.setSubid(current.getId());
+ updatePreachform.setPreachform("5");
+ updatePreachform.setOrgid(current.getOrgid());
+ updatePreachform.setRemark("宸查鍙栨湭濉啓锛屾寜榛樿閫夐」瀹屾垚");
+ int preachformUpdated = serviceSubtaskPreachformMapper.updateWechatPreachformComplete(updatePreachform);
+ if (preachformUpdated == 0) {
+ throw new BaseException("寰俊鍏紬鍙烽粯璁ゅ畬鎴愬け璐ワ細鍙戦�佹柟寮忕姸鎬佸凡鍙樺寲锛宻ubid=" + current.getId());
+ }
+
+ // 褰撳墠瀛愪换鍔★細宸查鍙�(1) -> 瀹屾垚(6)锛屽彧鏇存柊杩欎竴涓� subid
+ ServiceSubtask complete = new ServiceSubtask();
+ complete.setId(current.getId());
+ complete.setOrgid(current.getOrgid());
+ complete.setFinishtime(new Date());
+ complete.setResult("success");
+ complete.setRemark("宸查鍙栨湭濉啓锛屾寜榛樿閫夐」瀹屾垚");
+ int subtaskUpdated = serviceSubtaskMapper.updateWechatDefaultComplete(complete);
+ if (subtaskUpdated == 0) {
+ throw new BaseException("寰俊鍏紬鍙烽粯璁ゅ畬鎴愬け璐ワ細瀛愪换鍔$姸鎬佸凡鍙樺寲锛宻ubid=" + current.getId());
+ }
+
+ log.info("銆愬井淇″叕浼楀彿榛樿瀹屾垚銆憇ubid锛歿}锛屽凡鎸夐粯璁ら�夐」瀹屾垚锛屽~鍏呴鐩暟锛歿}", current.getId(), filled);
+ return true;
+ }
+
+ /**
+ * 浠呯粰褰撳墠瀛愪换鍔¤ˉ榻愰棶鍗峰崟閫�/澶氶�夐涓� default_value=2 鐨勯�夐」銆�
+ * 宸叉湁闈炵┖绛旀鐨勯鐩烦杩囷紝涓嶈鐩栨偅鑰呭凡濉啓鍐呭銆�
+ *
+ * @return 瀹為檯濉厖锛堟垨姝ゅ墠宸茬敱绯荤粺榛樿濉厖锛夌殑棰樼洰鏁�
+ */
+ private int fillWechatDefaultDetailForCurrentSubtask(ServiceSubtask serviceSubtask) {
+ Long templateId = serviceSubtask.getTemplateid();
+ ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
+ if (templateId == null && serviceTask != null) {
+ templateId = serviceTask.getTemplateid();
+ }
+ if (templateId == null) {
+ return 0;
+ }
+
+ SvyTaskTemplateScript scriptQuery = new SvyTaskTemplateScript();
+ scriptQuery.setTemplateID(templateId);
+ List<SvyTaskTemplateScript> scripts = svyTaskTemplateScriptService.selectSvyTaskTemplateScriptList(scriptQuery);
+ if (CollectionUtils.isEmpty(scripts)) {
+ return 0;
+ }
+
+ int filled = 0;
+ for (SvyTaskTemplateScript script : scripts) {
+ SvyTaskTemplateScriptVO scriptVO = DtoConversionUtils.sourceToTarget(script, SvyTaskTemplateScriptVO.class);
+ SvyTaskTemplateScriptVO scriptWithOptions = svyTaskTemplateScriptService.selectInfoByCondition(scriptVO);
+ if (scriptWithOptions == null
+ || scriptWithOptions.getId() == null
+ || CollectionUtils.isEmpty(scriptWithOptions.getSvyTaskTemplateTargetoptions())
+ || (!"1".equals(scriptWithOptions.getScriptType()) && !"2".equals(scriptWithOptions.getScriptType()))) {
+ continue;
+ }
+
+ List<SvyTaskTemplateTargetoption> options = scriptWithOptions.getSvyTaskTemplateTargetoptions();
+ List<SvyTaskTemplateTargetoption> defaultOptions = options.stream()
+ .filter(option -> option.getDefaultValue() != null && option.getDefaultValue() == 2L)
+ .filter(option -> StringUtils.isNotBlank(option.getOptioncontent()))
+ .collect(Collectors.toList());
+ if (CollectionUtils.isEmpty(defaultOptions)) {
+ continue;
+ }
+
+ // 宸叉湁闈炵┖绛旀鍒欎笉瑕嗙洊锛岄伩鍏嶅奖鍝嶆偅鑰呭凡濉啓鍐呭
+ ServiceSubtaskDetail detailQuery = new ServiceSubtaskDetail();
+ detailQuery.setSubId(serviceSubtask.getId());
+ detailQuery.setScriptid(scriptWithOptions.getId());
+ List<ServiceSubtaskDetail> existingDetails = serviceSubtaskDetailMapper.selectServiceSubtaskDetailList(detailQuery);
+ ServiceSubtaskDetail existing = CollectionUtils.isNotEmpty(existingDetails) ? existingDetails.get(0) : null;
+ if (existing != null
+ && (StringUtils.isNotBlank(existing.getAsrtext()) || StringUtils.isNotBlank(existing.getMatchedtext()))) {
+ // 涔嬪墠宸茬敱绯荤粺榛樿濉厖杩囩殑锛岃鍏ュ凡濉厖锛屼繚璇侀噸璇曞箓绛�
+ if ("DEFAULT".equals(existing.getOperate())) {
+ filled++;
+ }
+ continue;
+ }
+
+ String targetValue = options.stream()
+ .map(SvyTaskTemplateTargetoption::getOptioncontent)
+ .filter(StringUtils::isNotBlank)
+ .collect(Collectors.joining("&"));
+ String defaultValue = defaultOptions.stream()
+ .map(SvyTaskTemplateTargetoption::getOptioncontent)
+ .collect(Collectors.joining("&"));
+
+ ServiceSubtaskDetail detail = new ServiceSubtaskDetail();
+ detail.setSubId(serviceSubtask.getId());
+ detail.setTaskid(serviceSubtask.getTaskid());
+ detail.setPatid(serviceSubtask.getPatid());
+ detail.setScriptid(scriptWithOptions.getId());
+ detail.setTemplatequestionnum(scriptWithOptions.getId());
+ detail.setQuestiontext(scriptWithOptions.getScriptContent());
+ detail.setCategoryid(scriptWithOptions.getCategoryid());
+ detail.setTargetid(scriptWithOptions.getTargetid() != null ? scriptWithOptions.getTargetid().intValue() : null);
+ detail.setValueType(scriptWithOptions.getScriptType());
+ detail.setTargetvalue(targetValue);
+ detail.setAsrtext(defaultValue);
+ detail.setMatchedtext(defaultValue);
+ detail.setOperate("DEFAULT");
+ detail.setTemplateType(2);
+ detail.setLibTemplateid(serviceSubtask.getLibtemplateid() != null ? serviceSubtask.getLibtemplateid().intValue() : null);
+ detail.setTemplateid(templateId.toString());
+ detail.setGuid(scriptWithOptions.getGuid());
+ detail.setOrgid(StringUtils.isNotEmpty(scriptWithOptions.getOrgid()) ? scriptWithOptions.getOrgid()
+ : (serviceTask != null ? serviceTask.getOrgid() : null));
+ detail.setCreateTime(new Date());
+ detail.setUpdateTime(new Date());
+
+ if (existing != null) {
+ detail.setId(existing.getId());
+ serviceSubtaskDetailMapper.updateServiceSubtaskDetail(detail);
+ } else {
+ serviceSubtaskDetailMapper.insertServiceSubtaskDetail(detail);
+ }
+ filled++;
+ }
+ return filled;
+ }
+
@Override
public Map<String, Object> getHeLibraryCount(@RequestBody HeLibraryCountVO heLibraryCountVO) {
if (ObjectUtils.isEmpty(heLibraryCountVO)) {
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 76ade62..a8960d6 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -1319,6 +1319,25 @@
where id = #{id}
</update>
+ <!-- 寰俊鍏紬鍙峰凡棰嗗彇鏈~鍐欐寜榛樿閫夐」瀹屾垚锛氬彧鏇存柊褰撳墠瀛愪换鍔°��
+ 鏉′欢 sendstate=1 + 鏈彁浜わ紝淇濊瘉鍙鐞嗗綋鍓嶈棰嗗彇涓旀湭濉啓鐨勫瓙浠诲姟锛屼笉娉㈠強鍏朵粬浠诲姟銆� -->
+ <update id="updateWechatDefaultComplete" parameterType="com.smartor.domain.ServiceSubtask">
+ update service_subtask
+ set sendstate = 6,
+ finishtime = #{finishtime},
+ result = #{result},
+ remark = case
+ when remark is null or remark = '' then #{remark}
+ else concat(remark, ',', #{remark})
+ end,
+ update_time = now(),
+ finish_state = <include refid="finishStateExpr"/>
+ where id = #{id}
+ and orgid = #{orgid}
+ and sendstate = 1
+ and (submit is null or submit != 1)
+ </update>
+
<update id="updateServiceSubtaskByPatId" parameterType="com.smartor.domain.ServiceSubtask">
update service_subtask
<trim prefix="SET" suffixOverrides=",">
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskPreachformMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskPreachformMapper.xml
index 0e81004..e63538f 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskPreachformMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskPreachformMapper.xml
@@ -263,6 +263,23 @@
</if>
</update>
+ <!-- 寰俊鍏紬鍙峰凡棰嗗彇鏈~鍐欐寜榛樿閫夐」瀹屾垚锛氫粎鏇存柊褰撳墠瀛愪换鍔$殑褰撳墠鍏紬鍙疯銆�
+ 鍙厑璁镐粠宸插彂閫�(2)/宸查鍙�(3)杩佺Щ鍒板畬鎴�(9)锛岄伩鍏嶅苟鍙戞垨閲嶅琛ュ伩瑕嗙洊鍏朵粬鐘舵�併�� -->
+ <update id="updateWechatPreachformComplete" parameterType="com.smartor.domain.ServiceSubtaskPreachform">
+ update service_subtask_preachform
+ set sendstate = '9',
+ remark = case
+ when remark is null or remark = '' then #{remark}
+ else concat(remark, ',', #{remark})
+ end,
+ update_time = now()
+ where id = #{id}
+ and subid = #{subid}
+ and orgid = #{orgid}
+ and preachform = #{preachform}
+ and sendstate in ('2', '3')
+ </update>
+
<update id="deleteServiceSubtaskPreachformById" parameterType="Long">
update service_subtask_preachform
--
Gitblit v1.9.3