|
@@ -75,7 +75,7 @@ public class KdYdOrderServiceImpl extends ServiceImpl<KdYdOrderMapper, KdYdOrder
|
|
|
String khmc = UtilMap.getString(formData, "textField_mejnamf2");
|
|
String khmc = UtilMap.getString(formData, "textField_mejnamf2");
|
|
|
String djbh = UtilMap.getString(formData, "serialNumberField_mewfgzku");
|
|
String djbh = UtilMap.getString(formData, "serialNumberField_mewfgzku");
|
|
|
if("2".equals(type)){
|
|
if("2".equals(type)){
|
|
|
- djbh = UtilMap.getString(formData, "textField_miwvnkep");
|
|
|
|
|
|
|
+ djbh = UtilMap.getString(formData, "serialNumberField_mewfgzku");
|
|
|
}
|
|
}
|
|
|
LocalDateTime rq = parseTimestamp(UtilMap.getString(formData, "dateField_mejowmnb"));
|
|
LocalDateTime rq = parseTimestamp(UtilMap.getString(formData, "dateField_mejowmnb"));
|
|
|
String khxypj = UtilMap.getString(formData, "selectField_mewirdx4");
|
|
String khxypj = UtilMap.getString(formData, "selectField_mewirdx4");
|
|
@@ -114,6 +114,7 @@ public class KdYdOrderServiceImpl extends ServiceImpl<KdYdOrderMapper, KdYdOrder
|
|
|
String jws = UtilMap.getString(formData, "radioField_mfxv2vgm");
|
|
String jws = UtilMap.getString(formData, "radioField_mfxv2vgm");
|
|
|
List<Map> tableField = (List<Map>) formData.get("tableField_mfbx1pqi");
|
|
List<Map> tableField = (List<Map>) formData.get("tableField_mfbx1pqi");
|
|
|
List<Map> tableFieldPayment = (List<Map>) formData.get("tableField_mhiui6v5");
|
|
List<Map> tableFieldPayment = (List<Map>) formData.get("tableField_mhiui6v5");
|
|
|
|
|
+
|
|
|
KdYdOrder kdYdOrder = new KdYdOrder();
|
|
KdYdOrder kdYdOrder = new KdYdOrder();
|
|
|
kdYdOrder.setDjlx(djlx);
|
|
kdYdOrder.setDjlx(djlx);
|
|
|
kdYdOrder.setDjbh(djbh);
|
|
kdYdOrder.setDjbh(djbh);
|
|
@@ -135,104 +136,209 @@ public class KdYdOrderServiceImpl extends ServiceImpl<KdYdOrderMapper, KdYdOrder
|
|
|
kdYdOrder.setSfhs(sfhs);
|
|
kdYdOrder.setSfhs(sfhs);
|
|
|
kdYdOrder.setJws(jws);
|
|
kdYdOrder.setJws(jws);
|
|
|
kdYdOrder.setSyncStatus("0");
|
|
kdYdOrder.setSyncStatus("0");
|
|
|
- kdYdOrder.setOperationType("1");
|
|
|
|
|
-// kdYdOrder.setForminstid(formInstId);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ Long id;
|
|
|
if ("2".equals(type)) {
|
|
if ("2".equals(type)) {
|
|
|
- kdYdOrder.setOperationType(type);
|
|
|
|
|
- kdYdOrderMapper.update(kdYdOrder, new LambdaQueryWrapper<KdYdOrder>().eq(KdYdOrder::getDjbh, djbh));
|
|
|
|
|
|
|
+ // 查询已存在的订单
|
|
|
|
|
+ KdYdOrder existing = kdYdOrderMapper.selectOne(
|
|
|
|
|
+ new LambdaQueryWrapper<KdYdOrder>().eq(KdYdOrder::getDjbh, djbh)
|
|
|
|
|
+ );
|
|
|
|
|
+ if (existing == null) {
|
|
|
|
|
+ throw new IllegalArgumentException("无法更新订单:单据编号 [" + djbh + "] 不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ id = existing.getId();
|
|
|
|
|
+ kdYdOrder.setId(id);
|
|
|
|
|
+ kdYdOrder.setOperationType("2");
|
|
|
|
|
+ kdYdOrderMapper.updateById(kdYdOrder); // 使用 updateById 更安全
|
|
|
} else {
|
|
} else {
|
|
|
|
|
+ kdYdOrder.setOperationType("1");
|
|
|
kdYdOrderMapper.insert(kdYdOrder);
|
|
kdYdOrderMapper.insert(kdYdOrder);
|
|
|
|
|
+ id = kdYdOrder.getId(); // MyBatis-Plus 会自动回填主键
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- Long id = kdYdOrder.getId();
|
|
|
|
|
- int count = 1;
|
|
|
|
|
- for (Map item : tableField) {
|
|
|
|
|
-
|
|
|
|
|
- String wlbm = safeGetString(item, "textField_mfbx1pqt");
|
|
|
|
|
- String wlmc = safeGetString(item, "textField_mfbx1pqs");
|
|
|
|
|
- String ggxh = safeGetString(item, "textField_mfbx1pqr");
|
|
|
|
|
- String xsdw = safeGetString(item, "textField_mfbx1pqq");
|
|
|
|
|
- int xssl = parseInt(safeGetString(item, "numberField_mfbx1pr4"), 0); // 如果为空或格式错误,返回 0
|
|
|
|
|
- String ssxl = safeGetString(item, "selectField_mfbx1pr1");
|
|
|
|
|
- BigDecimal dj = toBigDecimal(safeGetString(item, "numberField_mfbx1prf"));
|
|
|
|
|
- BigDecimal hsdj = toBigDecimal(safeGetString(item, "numberField_mfbx1prg"));
|
|
|
|
|
- String sfzp = safeGetString(item, "radioField_mfbx1prc");
|
|
|
|
|
- int sl = parseInt(safeGetString(item, "numberField_mfbx1prb"), 0);
|
|
|
|
|
- BigDecimal zse = toBigDecimal(safeGetString(item, "numberField_mfbx1prh"));
|
|
|
|
|
- BigDecimal zje = toBigDecimal(safeGetString(item, "numberField_mfbx1pri"));
|
|
|
|
|
- BigDecimal zjshj = toBigDecimal(safeGetString(item, "numberField_mfbx1prj"));
|
|
|
|
|
- BigDecimal jj = toBigDecimal(safeGetString(item, "numberField_mfbx1prk"));
|
|
|
|
|
- BigDecimal zkl = toBigDecimal(safeGetString(item, "numberField_mfbx1pru"));
|
|
|
|
|
- BigDecimal zke = toBigDecimal(safeGetString(item, "numberField_mfbx1prt"));
|
|
|
|
|
- LocalDateTime yhrq = parseTimestamp(UtilMap.getString(item, "dateField_mfbx1prs"));
|
|
|
|
|
- BigDecimal xsjzj = toBigDecimal(safeGetString(item, "numberField_mfbx1pr0"));
|
|
|
|
|
- String zmzs = safeGetString(item, "textField_mfxv2vgv");
|
|
|
|
|
- KdYdOrderDetail kdYdOrderDetail = new KdYdOrderDetail();
|
|
|
|
|
- kdYdOrderDetail.setOrderId(id);
|
|
|
|
|
- kdYdOrderDetail.setWlbm(wlbm);
|
|
|
|
|
- kdYdOrderDetail.setWlmc(wlmc);
|
|
|
|
|
- kdYdOrderDetail.setGgxh(ggxh);
|
|
|
|
|
- kdYdOrderDetail.setXsdw(xsdw);
|
|
|
|
|
- kdYdOrderDetail.setXssl(xssl);
|
|
|
|
|
- kdYdOrderDetail.setSsxl(ssxl);
|
|
|
|
|
- kdYdOrderDetail.setDj(dj);
|
|
|
|
|
- kdYdOrderDetail.setHsdj(hsdj);
|
|
|
|
|
- kdYdOrderDetail.setSfzp(sfzp);
|
|
|
|
|
- kdYdOrderDetail.setSl(sl);
|
|
|
|
|
- kdYdOrderDetail.setSe(zse);
|
|
|
|
|
- kdYdOrderDetail.setJe(zje);
|
|
|
|
|
- kdYdOrderDetail.setJshj(zjshj);
|
|
|
|
|
- kdYdOrderDetail.setJj(jj);
|
|
|
|
|
- kdYdOrderDetail.setZkl(zkl);
|
|
|
|
|
- kdYdOrderDetail.setZke(zke);
|
|
|
|
|
- kdYdOrderDetail.setYhrq(yhrq);
|
|
|
|
|
- kdYdOrderDetail.setXsjzj(xsjzj);
|
|
|
|
|
- kdYdOrderDetail.setDetailId(count);
|
|
|
|
|
- kdYdOrderDetail.setSmzs(zmzs);
|
|
|
|
|
- kdYdOrderDetail.setSyncStatus("0");
|
|
|
|
|
- kdYdOrderDetail.setOperationType("1");
|
|
|
|
|
-// kdYdOrderDetail.setForminstid(formInstId);
|
|
|
|
|
- if ("2".equals(type) || "3".equals(type)) {
|
|
|
|
|
- kdYdOrderDetail.setOperationType(type);
|
|
|
|
|
- kdYdOrderDetailMapper.update(kdYdOrderDetail, new LambdaQueryWrapper<KdYdOrderDetail>()
|
|
|
|
|
- .eq(KdYdOrderDetail::getWlbm, wlbm)
|
|
|
|
|
- .eq(KdYdOrderDetail::getOrderId, id));
|
|
|
|
|
- } else {
|
|
|
|
|
- kdYdOrderDetailMapper.insert(kdYdOrderDetail);
|
|
|
|
|
|
|
+// ====== 1. 获取数据库中当前 orderId 的所有明细(用于后续对比删除)======
|
|
|
|
|
+ LambdaQueryWrapper<KdYdOrderDetail> existingWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ existingWrapper.eq(KdYdOrderDetail::getOrderId, id);
|
|
|
|
|
+ List<KdYdOrderDetail> existingDetails = kdYdOrderDetailMapper.selectList(existingWrapper);
|
|
|
|
|
+ Set<Integer> incomingDetailIds = new HashSet<>(); // 用于记录本次传入的 detailId
|
|
|
|
|
+
|
|
|
|
|
+// ====== 2. 遍历传入的 tableField,逐条处理 ======
|
|
|
|
|
+ if (tableField != null) {
|
|
|
|
|
+ for (Map item : tableField) {
|
|
|
|
|
+ int detailId = parseInt(safeGetString(item, "indexField"), 0); // 建议前端传一个明确的 index 或 detailId 字段
|
|
|
|
|
+ // 如果前端没有显式传 detailId,可以用循环计数(但需注意顺序稳定性)
|
|
|
|
|
+ // 这里假设你用 count 作为 detailId(与前端一致)
|
|
|
|
|
+ // 若前端表格支持拖拽/乱序,建议传唯一行ID,但你当前用的是序号,我们继续用 count
|
|
|
|
|
+
|
|
|
|
|
+ // 注意:你原代码用 count++,这里我们改用从数据中获取或维持顺序
|
|
|
|
|
+ // 为兼容你原有逻辑,我们仍用递增序号,但更推荐前端传 detailId
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 重新遍历,使用 index 作为 detailId
|
|
|
|
|
+ for (int i = 0; i < tableField.size(); i++) {
|
|
|
|
|
+ Map item = tableField.get(i);
|
|
|
|
|
+ int detailId = i + 1; // 使用 1-based 序号作为 detailId(必须与前端一致)
|
|
|
|
|
+ incomingDetailIds.add(detailId);
|
|
|
|
|
+
|
|
|
|
|
+ String wlbm = safeGetString(item, "textField_mfbx1pqt");
|
|
|
|
|
+ String wlmc = safeGetString(item, "textField_mfbx1pqs");
|
|
|
|
|
+ String ggxh = safeGetString(item, "textField_mfbx1pqr");
|
|
|
|
|
+ String xsdw = safeGetString(item, "textField_mfbx1pqq");
|
|
|
|
|
+ int xssl = parseInt(safeGetString(item, "numberField_mfbx1pr4"), 0);
|
|
|
|
|
+ String ssxl = safeGetString(item, "selectField_mfbx1pr1");
|
|
|
|
|
+ BigDecimal dj = toBigDecimal(safeGetString(item, "numberField_mfbx1prf"));
|
|
|
|
|
+ BigDecimal hsdj = toBigDecimal(safeGetString(item, "numberField_mfbx1prg"));
|
|
|
|
|
+ String sfzp = safeGetString(item, "radioField_mfbx1prc");
|
|
|
|
|
+ String bz1 = safeGetString(item, "textareaField_mjryuaok");
|
|
|
|
|
+ int sl = parseInt(safeGetString(item, "numberField_mfbx1prb"), 0);
|
|
|
|
|
+ BigDecimal zse = toBigDecimal(safeGetString(item, "numberField_mfbx1prh"));
|
|
|
|
|
+ BigDecimal zje = toBigDecimal(safeGetString(item, "numberField_mfbx1pri"));
|
|
|
|
|
+ BigDecimal zjshj = toBigDecimal(safeGetString(item, "numberField_mfbx1prj"));
|
|
|
|
|
+ BigDecimal jj = toBigDecimal(safeGetString(item, "numberField_mfbx1prk"));
|
|
|
|
|
+ BigDecimal zkl = toBigDecimal(safeGetString(item, "numberField_mfbx1pru"));
|
|
|
|
|
+ BigDecimal zke = toBigDecimal(safeGetString(item, "numberField_mfbx1prt"));
|
|
|
|
|
+ LocalDateTime yhrq = parseTimestamp(UtilMap.getString(item, "dateField_mfbx1prs"));
|
|
|
|
|
+ BigDecimal xsjzj = toBigDecimal(safeGetString(item, "numberField_mfbx1pr0"));
|
|
|
|
|
+ String zmzs = safeGetString(item, "textField_mfxv2vgv");
|
|
|
|
|
+
|
|
|
|
|
+ // 查询是否已存在
|
|
|
|
|
+ LambdaQueryWrapper<KdYdOrderDetail> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ queryWrapper.eq(KdYdOrderDetail::getOrderId, id)
|
|
|
|
|
+ .eq(KdYdOrderDetail::getDetailId, detailId);
|
|
|
|
|
+ KdYdOrderDetail existing = kdYdOrderDetailMapper.selectOne(queryWrapper);
|
|
|
|
|
+
|
|
|
|
|
+ if (existing != null) {
|
|
|
|
|
+ // 更新
|
|
|
|
|
+ existing.setWlbm(wlbm);
|
|
|
|
|
+ existing.setWlmc(wlmc);
|
|
|
|
|
+ existing.setGgxh(ggxh);
|
|
|
|
|
+ existing.setXsdw(xsdw);
|
|
|
|
|
+ existing.setXssl(xssl);
|
|
|
|
|
+ existing.setSsxl(ssxl);
|
|
|
|
|
+ existing.setDj(dj);
|
|
|
|
|
+ existing.setHsdj(hsdj);
|
|
|
|
|
+ existing.setSfzp(sfzp);
|
|
|
|
|
+ existing.setSl(sl);
|
|
|
|
|
+ existing.setBz(bz1);
|
|
|
|
|
+ existing.setSe(zse);
|
|
|
|
|
+ existing.setJe(zje);
|
|
|
|
|
+ existing.setJshj(zjshj);
|
|
|
|
|
+ existing.setJj(jj);
|
|
|
|
|
+ existing.setZkl(zkl);
|
|
|
|
|
+ existing.setZke(zke);
|
|
|
|
|
+ existing.setYhrq(yhrq);
|
|
|
|
|
+ existing.setXsjzj(xsjzj);
|
|
|
|
|
+ existing.setSmzs(zmzs);
|
|
|
|
|
+ existing.setSyncStatus("0");
|
|
|
|
|
+ existing.setOperationType(type); // 注意:type 决定是 insert(1) 还是 update(2/3)
|
|
|
|
|
+
|
|
|
|
|
+ kdYdOrderDetailMapper.updateById(existing);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 新增
|
|
|
|
|
+ KdYdOrderDetail kdYdOrderDetail = new KdYdOrderDetail();
|
|
|
|
|
+ kdYdOrderDetail.setOrderId(id);
|
|
|
|
|
+ kdYdOrderDetail.setDetailId(detailId);
|
|
|
|
|
+ kdYdOrderDetail.setWlbm(wlbm);
|
|
|
|
|
+ kdYdOrderDetail.setWlmc(wlmc);
|
|
|
|
|
+ kdYdOrderDetail.setGgxh(ggxh);
|
|
|
|
|
+ kdYdOrderDetail.setXsdw(xsdw);
|
|
|
|
|
+ kdYdOrderDetail.setXssl(xssl);
|
|
|
|
|
+ kdYdOrderDetail.setSsxl(ssxl);
|
|
|
|
|
+ kdYdOrderDetail.setDj(dj);
|
|
|
|
|
+ kdYdOrderDetail.setHsdj(hsdj);
|
|
|
|
|
+ kdYdOrderDetail.setSfzp(sfzp);
|
|
|
|
|
+ kdYdOrderDetail.setSl(sl);
|
|
|
|
|
+ kdYdOrderDetail.setSe(zse);
|
|
|
|
|
+ kdYdOrderDetail.setJe(zje);
|
|
|
|
|
+ existing.setBz(bz1);
|
|
|
|
|
+ kdYdOrderDetail.setJshj(zjshj);
|
|
|
|
|
+ kdYdOrderDetail.setJj(jj);
|
|
|
|
|
+ kdYdOrderDetail.setZkl(zkl);
|
|
|
|
|
+ kdYdOrderDetail.setZke(zke);
|
|
|
|
|
+ kdYdOrderDetail.setYhrq(yhrq);
|
|
|
|
|
+ kdYdOrderDetail.setXsjzj(xsjzj);
|
|
|
|
|
+ kdYdOrderDetail.setSmzs(zmzs);
|
|
|
|
|
+ kdYdOrderDetail.setSyncStatus("0");
|
|
|
|
|
+ kdYdOrderDetail.setOperationType("1"); // 新增始终是 1
|
|
|
|
|
+
|
|
|
|
|
+ kdYdOrderDetailMapper.insert(kdYdOrderDetail);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+// ====== 3. 删除数据库中存在但本次未传入的明细 ======
|
|
|
|
|
+ for (KdYdOrderDetail existing : existingDetails) {
|
|
|
|
|
+ if (!incomingDetailIds.contains(existing.getDetailId())) {
|
|
|
|
|
+ kdYdOrderDetailMapper.deleteById(existing.getId());
|
|
|
|
|
+ // 或者软删除:update sync_status = '9' 等
|
|
|
}
|
|
}
|
|
|
- count++;
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+// ====== 处理付款计划子表(KdYdOrderPayment)======
|
|
|
|
|
+
|
|
|
|
|
+// 1. 查询数据库中当前 orderId 下所有已存在的付款记录
|
|
|
|
|
+ LambdaQueryWrapper<KdYdOrderPayment> paymentExistingWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ paymentExistingWrapper.eq(KdYdOrderPayment::getOrderId, id);
|
|
|
|
|
+ List<KdYdOrderPayment> existingPayments = kdYdOrderPaymentMapper.selectList(paymentExistingWrapper);
|
|
|
|
|
+ Set<Integer> incomingPaymentDetailIds = new HashSet<>();
|
|
|
|
|
+
|
|
|
if (tableFieldPayment != null) {
|
|
if (tableFieldPayment != null) {
|
|
|
for (int i = 0; i < tableFieldPayment.size(); i++) {
|
|
for (int i = 0; i < tableFieldPayment.size(); i++) {
|
|
|
Map row = tableFieldPayment.get(i);
|
|
Map row = tableFieldPayment.get(i);
|
|
|
|
|
+ int detailId = i + 1; // 使用 1-based 序号作为 detailId(需与前端表格顺序一致)
|
|
|
|
|
+ incomingPaymentDetailIds.add(detailId);
|
|
|
|
|
+
|
|
|
String sfys = safeGetString(row, "radioField_mhiui6v7");
|
|
String sfys = safeGetString(row, "radioField_mhiui6v7");
|
|
|
String gldh = safeGetString(row, "textField_mhiui6va");
|
|
String gldh = safeGetString(row, "textField_mhiui6va");
|
|
|
BigDecimal ysbl = toBigDecimal(UtilMap.getString(row, "numberField_mhiui6v6"));
|
|
BigDecimal ysbl = toBigDecimal(UtilMap.getString(row, "numberField_mhiui6v6"));
|
|
|
BigDecimal ysje = toBigDecimal(UtilMap.getString(row, "numberField_mhiui6v8"));
|
|
BigDecimal ysje = toBigDecimal(UtilMap.getString(row, "numberField_mhiui6v8"));
|
|
|
BigDecimal ssje = toBigDecimal(UtilMap.getString(row, "numberField_mhiui6vb"));
|
|
BigDecimal ssje = toBigDecimal(UtilMap.getString(row, "numberField_mhiui6vb"));
|
|
|
- int detailId = i + 1;
|
|
|
|
|
LocalDateTime endTime = parseTimestamp(UtilMap.getString(row, "dateField_mhiui6v9"));
|
|
LocalDateTime endTime = parseTimestamp(UtilMap.getString(row, "dateField_mhiui6v9"));
|
|
|
- KdYdOrderPayment kdYdOrderPayment = new KdYdOrderPayment();
|
|
|
|
|
- kdYdOrderPayment.setOrderId(id);
|
|
|
|
|
- kdYdOrderPayment.setSfys(sfys);
|
|
|
|
|
- kdYdOrderPayment.setGldh(gldh);
|
|
|
|
|
- kdYdOrderPayment.setYsbl(ysbl);
|
|
|
|
|
- kdYdOrderPayment.setYsje(ysje);
|
|
|
|
|
- kdYdOrderPayment.setSsje(ssje);
|
|
|
|
|
- kdYdOrderPayment.setDetailId(detailId);
|
|
|
|
|
- kdYdOrderPayment.setEndTime(endTime);
|
|
|
|
|
- kdYdOrderPayment.setSyncStatus("0");
|
|
|
|
|
- kdYdOrderPayment.setOperationType("1");
|
|
|
|
|
- if ("2".equals(type) || "3".equals(type)) {
|
|
|
|
|
- kdYdOrderPayment.setOperationType(type);
|
|
|
|
|
- kdYdOrderPaymentMapper.update(kdYdOrderPayment, new LambdaQueryWrapper<KdYdOrderPayment>()
|
|
|
|
|
- .eq(KdYdOrderPayment::getDetailId, detailId)
|
|
|
|
|
- .eq(KdYdOrderPayment::getOrderId, id));
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 查询是否已存在该 (orderId, detailId)
|
|
|
|
|
+ LambdaQueryWrapper<KdYdOrderPayment> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ queryWrapper.eq(KdYdOrderPayment::getOrderId, id)
|
|
|
|
|
+ .eq(KdYdOrderPayment::getDetailId, detailId);
|
|
|
|
|
+ KdYdOrderPayment existingPayment = kdYdOrderPaymentMapper.selectOne(queryWrapper);
|
|
|
|
|
+
|
|
|
|
|
+ if (existingPayment != null) {
|
|
|
|
|
+ // 更新
|
|
|
|
|
+ existingPayment.setSfys(sfys);
|
|
|
|
|
+ existingPayment.setGldh(gldh);
|
|
|
|
|
+ existingPayment.setYsbl(ysbl);
|
|
|
|
|
+ existingPayment.setYsje(ysje);
|
|
|
|
|
+ existingPayment.setSsje(ssje);
|
|
|
|
|
+ existingPayment.setEndTime(endTime);
|
|
|
|
|
+ existingPayment.setSyncStatus("0");
|
|
|
|
|
+ existingPayment.setOperationType(type); // 使用传入的 type("2" 或 "3")
|
|
|
|
|
+
|
|
|
|
|
+ kdYdOrderPaymentMapper.updateById(existingPayment);
|
|
|
} else {
|
|
} else {
|
|
|
- kdYdOrderPaymentMapper.insert(kdYdOrderPayment);
|
|
|
|
|
|
|
+ // 新增
|
|
|
|
|
+ KdYdOrderPayment payment = new KdYdOrderPayment();
|
|
|
|
|
+ payment.setOrderId(id);
|
|
|
|
|
+ payment.setDetailId(detailId);
|
|
|
|
|
+ payment.setSfys(sfys);
|
|
|
|
|
+ payment.setGldh(gldh);
|
|
|
|
|
+ payment.setYsbl(ysbl);
|
|
|
|
|
+ payment.setYsje(ysje);
|
|
|
|
|
+ payment.setSsje(ssje);
|
|
|
|
|
+ payment.setEndTime(endTime);
|
|
|
|
|
+ payment.setSyncStatus("0");
|
|
|
|
|
+ payment.setOperationType("1"); // 新增操作类型为 "1"
|
|
|
|
|
+
|
|
|
|
|
+ kdYdOrderPaymentMapper.insert(payment);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+// 3. 删除数据库中存在但本次未传入的付款记录
|
|
|
|
|
+ for (KdYdOrderPayment existing : existingPayments) {
|
|
|
|
|
+ if (!incomingPaymentDetailIds.contains(existing.getDetailId())) {
|
|
|
|
|
+ kdYdOrderPaymentMapper.deleteById(existing.getId());
|
|
|
|
|
+ // 或软删除:existing.setSyncStatus("9"); updateById
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
// ydClient.operateData(
|
|
// ydClient.operateData(
|
|
|
// YDParam.builder()
|
|
// YDParam.builder()
|
|
|
// .formInstanceId(formInstId)
|
|
// .formInstanceId(formInstId)
|