diff --git a/javascript/xuanran.wang/bme/js/Common.js b/javascript/xuanran.wang/bme/js/Common.js index 583099e..5208873 100644 --- a/javascript/xuanran.wang/bme/js/Common.js +++ b/javascript/xuanran.wang/bme/js/Common.js @@ -57,7 +57,7 @@ function submitCallback(detailTable, detail2PayProportionId){ let rowIndex = rowArr[i]; if(rowIndex !== ""){ let field = `${detail2PayProportionId}_${rowIndex}`; - sum += parseFloat(WfForm.getFieldValue(field));//遍历明细行字段 + sum = addFloat(sum, parseFloat(WfForm.getFieldValue(field)));//遍历明细行字段 } } console.log('sum => ', sum) @@ -65,6 +65,11 @@ function submitCallback(detailTable, detail2PayProportionId){ }); } +function addFloat(a, b) { + let precision = Math.pow(10, 10); // 设置精度,根据需要调整 + return (Math.round(a * precision) + Math.round(b * precision)) / precision; +} + /** * 明细表字段发生变化进行日期计算 * @param bindField diff --git a/javascript/xuanran.wang/longgong/NewProductTest.js b/javascript/xuanran.wang/longgong/NewProductTest.js index ca63af7..fe457d8 100644 --- a/javascript/xuanran.wang/longgong/NewProductTest.js +++ b/javascript/xuanran.wang/longgong/NewProductTest.js @@ -1,27 +1,27 @@ // 首台销售日期 -const firstSaleDateField = WfForm.convertFieldNameToId("stxsrq"); +var firstSaleDateField = WfForm.convertFieldNameToId("stxsrq"); // 跟踪时间 -const trackTimeField = WfForm.convertFieldNameToId("gzsj"); +var trackTimeField = WfForm.convertFieldNameToId("gzsj"); // 跟踪时间为三个月以内 -const threeMonthIndex = 1; +var threeMonthIndex = 1; // 是否提交等待节点 -const submitWaitNode = WfForm.convertFieldNameToId("sftjddjd"); +var submitWaitNode = WfForm.convertFieldNameToId("sftjddjd"); // 下次超时提醒日期 -const timeoutRemindDateFiled = WfForm.convertFieldNameToId("cstxrq"); +var timeoutRemindDateFiled = WfForm.convertFieldNameToId("cstxrq"); // 跟踪天数 <= 1 ? 15 : 30; -const trackingDaysField = WfForm.convertFieldNameToId("gzts") +var trackingDaysField = WfForm.convertFieldNameToId("gzts") // 跟踪触发行数 -const trackingLineField = WfForm.convertFieldNameToId("gzcfxs"); -$(() => { - let detail2LineNum = WfForm.getDetailRowCount("detail_2"); +var trackingLineField = WfForm.convertFieldNameToId("gzcfxs"); +jQuery(document).ready(function (){ + var detail2LineNum = WfForm.getDetailRowCount("detail_2"); // let firstTrack = Boolean(true); // if (new Date(firstSaleDate) < new Date(currentDate) && dayDiff > 0) { // firstTrack = false; // } // console.log('firstTrack ', firstTrack) // 到达节点次数 - const nodeNum = getNodeNum(); - let trackingLine = parseInt(WfForm.getFieldValue(trackingLineField)); + var nodeNum = getNodeNum(); + var trackingLine = parseInt(WfForm.getFieldValue(trackingLineField)); // 如果不是则自动添加一行明细让他自己填写 if (detail2LineNum < trackingLine && detail2LineNum < nodeNum) { console.log('添加一行明细!'); @@ -33,32 +33,32 @@ $(() => { return; } initTimeoutDate(); - WfForm.bindFieldChangeEvent(`${firstSaleDateField},${trackTimeField}`,()=>{ + WfForm.bindFieldChangeEvent(firstSaleDateField + "," + trackTimeField,function (){ initTimeoutDate(); }); }); function getNodeNum(){ - let firstSaleDate = WfForm.getFieldValue(firstSaleDateField); + var firstSaleDate = WfForm.getFieldValue(firstSaleDateField); console.log('首台销售日期 ', firstSaleDate); - let currentDate = getCurrentDate(); - let dayDiff = getDaysDiff(firstSaleDate, currentDate); + var currentDate = getCurrentDate(); + var dayDiff = getDaysDiff(firstSaleDate, currentDate); console.log('当前天数与首台销售日期相差天数 : ', dayDiff) - let trackingDays = WfForm.getFieldValue(trackingDaysField); + var trackingDays = WfForm.getFieldValue(trackingDaysField); return Math.floor(dayDiff / trackingDays) + 1; } function initTimeoutDate(){ console.log('==== initTimeoutDate begin ====') - let firstSaleDate = WfForm.getFieldValue(firstSaleDateField); - const nodeNum = getNodeNum(); + var firstSaleDate = WfForm.getFieldValue(firstSaleDateField); + var nodeNum = getNodeNum(); console.log('到达节点次数 ', nodeNum); - let trackingDays = WfForm.getFieldValue(trackingDaysField); + var trackingDays = WfForm.getFieldValue(trackingDaysField); console.log('跟踪天数 ', trackingDays); - let computeTimeoutDate = addDays(firstSaleDate, nodeNum * trackingDays); + var computeTimeoutDate = addDays(firstSaleDate, nodeNum * trackingDays); console.log('计算下次超时日期 ', computeTimeoutDate); - let trackingLine = parseInt(WfForm.getFieldValue(trackingLineField)); - let detail2LineNum = WfForm.getDetailRowCount("detail_2"); + var trackingLine = parseInt(WfForm.getFieldValue(trackingLineField)); + var detail2LineNum = WfForm.getDetailRowCount("detail_2"); setTimeout(()=>{ WfForm.changeFieldValue(timeoutRemindDateFiled, {value: computeTimeoutDate}); // 判断流程提交走向 @@ -72,7 +72,7 @@ function initTimeoutDate(){ if (detail2LineNum < trackingLine) { WfForm.showMessage('请填写明细表信息!'); detail2LineNum = WfForm.getDetailRowCount("detail_2"); - for (let i = 0; i < trackingLine - parseInt(detail2LineNum); i++) { + for (var i = 0; i < trackingLine - parseInt(detail2LineNum); i++) { WfForm.addDetailRow("detail_2", {}); } return; @@ -89,8 +89,8 @@ function initTimeoutDate(){ function getDaysDiff(date1, date2) { date1 = new Date(date1); date2 = new Date(date2); - const oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数 - const timeDiff = Math.abs(date1.getTime() - date2.getTime()); // 两个日期对象的毫秒数差值 + var oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数 + var timeDiff = Math.abs(date1.getTime() - date2.getTime()); // 两个日期对象的毫秒数差值 // 将毫秒数差值转换为天数差值并四舍五入 return Math.round(timeDiff / oneDay); } @@ -100,14 +100,14 @@ function getCurrentDate() { } function parseDate(date) { - const currentYear = date.getFullYear(); - const currentMonth = date.getMonth() + 1; // getMonth()返回0~11,需要加1 - const currentDay = date.getDate(); + var currentYear = date.getFullYear(); + var currentMonth = date.getMonth() + 1; // getMonth()返回0~11,需要加1 + var currentDay = date.getDate(); return currentYear + '-' + currentMonth + '-' + currentDay; } function addDays(date, days) { - const newDate = new Date(date); + var newDate = new Date(date); newDate.setDate(newDate.getDate() + days); console.log('newDate ', newDate) return parseDate(newDate); diff --git a/src/main/java/weaver/xuanran/wang/immc/cusfieldvalue/CusListValue.java b/src/main/java/weaver/xuanran/wang/immc/cusfieldvalue/CusListValue.java index 44faeeb..4694a75 100644 --- a/src/main/java/weaver/xuanran/wang/immc/cusfieldvalue/CusListValue.java +++ b/src/main/java/weaver/xuanran/wang/immc/cusfieldvalue/CusListValue.java @@ -2,8 +2,10 @@ package weaver.xuanran.wang.immc.cusfieldvalue; import aiyh.utils.Util; import com.alibaba.fastjson.JSONObject; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; +import weaver.general.TimeUtil; import weaver.xiao.commons.config.interfacies.CusInterfaceGetValue; import weaver.xiao.commons.config.interfacies.CusInterfaceListValue; import weaver.xuanran.wang.immc.mapper.ImMcMapper; @@ -27,23 +29,30 @@ public class CusListValue implements CusInterfaceGetValue { log.info("pathParam : \n" + JSONObject.toJSONString(pathParam)); String attachmentField = Util.null2DefaultStr(pathParam.get("attachmentField"), ""); String cusSql = Util.null2DefaultStr(pathParam.get("cusSql"), ""); + // 如果fileName不为空则对集合中每个map添加"fileName":value value则是附件字段名称 + String fileName = Util.null2DefaultStr(pathParam.get("fileName"), ""); if(StringUtils.isNotBlank(cusSql)){ - String docIds = ""; if (StringUtils.isNotBlank(attachmentField)) { - List attachment = new ArrayList<>(); for (String item : attachmentField.split(",")) { String filedValue = Util.null2DefaultStr(mainMap.get(item),""); - if(StringUtils.isNotBlank(Util.null2DefaultStr(mainMap.get(item),""))){ - attachment.add(filedValue); + if(StringUtils.isNotBlank(Util.null2DefaultStr(mainMap.get(filedValue),""))){ + cusSql = cusSql + .replace("{?docIds}", "( " + filedValue + " )") + .replace("{?requestid}",Util.null2DefaultStr(mainMap.get("requestid"),"")); + List> attachmentInfo = mapper.getAttachmentInfo(cusSql); + if(CollectionUtils.isEmpty(attachmentInfo)){ + continue; + } + // 往map中put附件字段名 + if(StringUtils.isBlank(fileName)){ + attachmentInfo.forEach(file ->{ + file.put(fileName, item); + }); + } + list.addAll(attachmentInfo); } } - docIds = StringUtils.join(attachment, ","); } - cusSql = cusSql - .replace("{?docIds}", "( " + docIds + " )") - .replace("{?requestid}",Util.null2DefaultStr(mainMap.get("requestid"),"")); - List> attachmentInfo = mapper.getAttachmentInfo(cusSql); - list.addAll(attachmentInfo); } return list; }