|
@@ -21,6 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.text.DecimalFormat;
|
|
|
import java.util.*;
|
|
|
|
|
|
@Slf4j
|
|
@@ -146,6 +148,43 @@ public class McYdServiceImpl implements McYdService {
|
|
|
return McR.errorParam("参数缺失!");
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public McR convertSubTableNumber(Map map) {
|
|
|
+ String pid = getString(map.get("pid"));
|
|
|
+ String formInstId = getString(map.get("formInstId"));
|
|
|
+ String tableField = getString(map.get("tableField"));
|
|
|
+ String numberFieldCode = getString(map.get("numFileCode"));
|
|
|
+ String textFieldCode = getString(map.get("textFieldCode"));
|
|
|
+
|
|
|
+ if (Strings.isNotBlank(pid)){
|
|
|
+ MDC.put("MDC_KEY_PID",pid);
|
|
|
+
|
|
|
+ if (Strings.isNotBlank(formInstId)){
|
|
|
+ DDR_New ddrNew = ydClient.queryData(YDParam.builder()
|
|
|
+ .formInstId(formInstId)
|
|
|
+ .build(), YDConf.FORM_QUERY.retrieve_id);
|
|
|
+ Map formData = ddrNew.getFormData();
|
|
|
+ List<Map> table = (List<Map>) formData.get(tableField);
|
|
|
+ for (Map item : table) {
|
|
|
+ BigDecimal number = (BigDecimal) item.get(numberFieldCode);
|
|
|
+ // 创建一个 DecimalFormat 实例,指定千位分隔符模式
|
|
|
+ DecimalFormat df = new DecimalFormat("#,###.00");
|
|
|
+
|
|
|
+ // 格式化 double 数值
|
|
|
+ String formattedText = df.format(number);
|
|
|
+ item.put(textFieldCode,formattedText);
|
|
|
+ }
|
|
|
+
|
|
|
+ ydClient.operateData(YDParam.builder()
|
|
|
+ .formInstId(formInstId)
|
|
|
+ .useLatestVersion(true)
|
|
|
+ .updateFormDataJson(JSONObject.toJSONString(formData))
|
|
|
+ .build(), YDConf.FORM_OPERATION.update);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return McR.success();
|
|
|
+ }
|
|
|
+
|
|
|
private String getString(Object obj){
|
|
|
return obj == null ? "" : obj.toString();
|
|
|
}
|