| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- package com.malk.huagao.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.malk.huagao.entity.KdYdDelivery;
- import com.malk.huagao.entity.KdYdDeliveryDetail;
- import com.malk.huagao.entity.KdYdTransfer;
- import com.malk.huagao.entity.KdYdTransferDetail;
- import com.malk.huagao.mapper.*;
- import com.malk.huagao.service.IKdYdTransferService;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.malk.server.aliwork.YDConf;
- import com.malk.server.aliwork.YDParam;
- import com.malk.server.dingtalk.DDR_New;
- import com.malk.service.aliwork.YDClient;
- import com.malk.utils.UtilMap;
- import org.slf4j.MDC;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.math.BigDecimal;
- import java.math.RoundingMode;
- import java.time.Instant;
- import java.time.LocalDateTime;
- import java.time.ZoneId;
- import java.util.List;
- import java.util.Map;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author LQY
- * @since 2025-11-12
- */
- @Service
- public class KdYdTransferServiceImpl extends ServiceImpl<KdYdTransferMapper, KdYdTransfer> implements IKdYdTransferService {
- @Autowired
- private YDClient ydClient;
- @Autowired
- private KdYdTransferMapper kdYdTransferMapper;
- @Autowired
- private KdYdTransferDetailMapper kdYdTransferDetailMapper;
- @Override
- public void insertTransfer(Map map) {
- MDC.put("MDC_KEY_PID", "1003");
- String formInstId = UtilMap.getString(map, "formInstId");
- String type = UtilMap.getString(map, "type");
- if ("3".equals(type)) {
- String bm = UtilMap.getString(map, "bm");
- KdYdTransfer kdYdTransfer = new KdYdTransfer();
- kdYdTransfer.setOperationType("3");
- kdYdTransfer.setSyncStatus("0");
- kdYdTransferMapper.update(kdYdTransfer, new LambdaQueryWrapper<KdYdTransfer>().eq(KdYdTransfer::getDjbh, bm));
- return; // 或者根据你的业务逻辑返回相应的结果
- }
- DDR_New ddrNew = ydClient.queryData(YDParam.builder()
- .formInstId(formInstId)
- .build(), YDConf.FORM_QUERY.retrieve_id);
- Map formData = ddrNew.getFormData();
- String djlx = UtilMap.getString(formData, "selectField_mhubzsa5");
- LocalDateTime rq = parseTimestamp(UtilMap.getString(formData, "dateField_mhubzsab"));
- String kh = UtilMap.getString(formData, "textField_mhubzsas");
- String dchzlx = UtilMap.getString(formData, "selectField_mhubzsa7");
- String djbh = UtilMap.getString(formData, "serialNumberField_mhubzsa4");
- String ywlx = UtilMap.getString(formData, "textField_mhubzsa6");
- String xsy = UtilMap.getString(formData, "employeeField_mhubzsa8").replace("[\"", "").replace("\"]", "").trim();
- String dcbm = UtilMap.getString(formData, "departmentSelectField_mhubzsae").replace("[\"", "").replace("\"]", "").trim();
- String drbm = UtilMap.getString(formData, "departmentSelectField_mhubzsad").replace("[\"", "").replace("\"]", "").trim();
- String drhzlx = UtilMap.getString(formData, "selectField_mhubzsa9");
- String dbfx = UtilMap.getString(formData, "selectField_mhubzsaa");
- String dbdlx = UtilMap.getString(formData, "selectField_mhubzsac");
- String dchz = UtilMap.getString(formData, "textField_mhubzsat");
- String hdfs = UtilMap.getString(formData, "selectField_mhubzsah");
- String ysfs = UtilMap.getString(formData, "selectField_mhubzsai");
- String kdgs = UtilMap.getString(formData, "selectField_mhubzsar");
- String fkfs = UtilMap.getString(formData, "selectField_mhubzsag");
- List<Map> tableField = (List<Map>) formData.get("tableField_mhubzsau");
- KdYdTransfer kdYdTransfer = new KdYdTransfer();
- kdYdTransfer.setDjlx(djlx);
- kdYdTransfer.setRq(rq);
- kdYdTransfer.setKh(kh);
- kdYdTransfer.setDjbh(djbh);
- kdYdTransfer.setSyncStatus("0");
- kdYdTransfer.setOperationType("1");
- kdYdTransfer.setYsfs(ysfs);
- kdYdTransfer.setHdfs(hdfs);
- kdYdTransfer.setKdgs(kdgs);
- kdYdTransfer.setFkfs(fkfs);
- kdYdTransfer.setDchzlx(dchzlx);
- kdYdTransfer.setDchz(dchz);
- kdYdTransfer.setDchzlx(dchzlx);
- kdYdTransfer.setDbfx(dbfx);
- kdYdTransfer.setDbdlx(dbdlx);
- kdYdTransfer.setDcbm(dcbm);
- kdYdTransfer.setDrbm(drbm);
- kdYdTransfer.setDrhzlx(drhzlx);
- kdYdTransfer.setYwlx(ywlx);
- kdYdTransfer.setCgy(xsy);
- if ("2".equals(type)) {
- kdYdTransfer.setOperationType(type);
- kdYdTransferMapper.update(kdYdTransfer, new LambdaQueryWrapper<KdYdTransfer>().eq(KdYdTransfer::getDjbh, djbh));
- } else {
- kdYdTransferMapper.insert(kdYdTransfer);
- }
- Long id = kdYdTransfer.getId();
- int count = 1;
- for (Map item : tableField) {
- String wlbm = safeGetString(item, "textField_mhubzsav");
- String wlmc = safeGetString(item, "textField_mhubzsaw");
- String ggxh = safeGetString(item, "textField_mhubzsax");
- String dw = safeGetString(item, "textField_mhubzsay");
- int dbsl = parseInt(safeGetString(item, "numberField_mhubzsaz"), 0); // 如果为空或格式错误,返回 0
- String ph = safeGetString(item, "textField_mhubzsb0");
- String dcck = safeGetString(item, "textField_mhubzsb1");
- String dcckzt = safeGetString(item, "textField_mhubzsb5");
- String dccw = safeGetString(item, "textField_mhubzsb2");
- String drck = safeGetString(item, "textField_mhubzsb3");
- String drckzt = safeGetString(item, "textField_mhubzsb6");
- String drcw = safeGetString(item, "textField_mhubzsb4");
- KdYdTransferDetail kdYdTransferDetail = new KdYdTransferDetail();
- kdYdTransferDetail.setTransferId(id);
- kdYdTransferDetail.setWlbm(wlbm);
- kdYdTransferDetail.setWlmc(wlmc);
- kdYdTransferDetail.setGgxh(ggxh);
- kdYdTransferDetail.setDetailId(count);
- kdYdTransferDetail.setGgxh(ggxh);
- kdYdTransferDetail.setDw(dw);
- kdYdTransferDetail.setDbsl(dbsl);
- kdYdTransferDetail.setPh(ph);
- kdYdTransferDetail.setDcck(dcck);
- kdYdTransferDetail.setDcckzt(dcckzt);
- kdYdTransferDetail.setDccw(dccw);
- kdYdTransferDetail.setDrck(drck);
- kdYdTransferDetail.setDrckzt(drckzt);
- kdYdTransferDetail.setDrcw(drcw);
- kdYdTransferDetail.setSyncStatus("0");
- kdYdTransferDetail.setOperationType("1");
- if ("2".equals(type) || "3".equals(type)) {
- kdYdTransferDetail.setOperationType(type);
- kdYdTransferDetailMapper.update(kdYdTransferDetail, new LambdaQueryWrapper<KdYdTransferDetail>()
- .eq(KdYdTransferDetail::getWlbm, wlbm)
- .eq(KdYdTransferDetail::getTransferId, id));
- } else {
- kdYdTransferDetailMapper.insert(kdYdTransferDetail);
- }
- count++;
- //save(kdYdDeliveryDetail);
- }
- // ydClient.operateData(
- // YDParam.builder()
- // .formInstanceId(formInstId)
- // .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("textField_mgrqnxmm", id)))
- // .useLatestVersion(true).build(), YDConf.FORM_OPERATION.update);
- }
- private static LocalDateTime parseTimestamp(String timestampStr) {
- if (timestampStr == null || timestampStr.trim().isEmpty()) return null;
- try {
- long timestamp = Long.parseLong(timestampStr.trim());
- return LocalDateTime.ofInstant(
- Instant.ofEpochMilli(timestamp),
- ZoneId.systemDefault()
- );
- } catch (NumberFormatException e) {
- return null;
- }
- }
- private static int parseInt(String str, int defaultValue) {
- if (str == null || str.trim().isEmpty()) {
- return defaultValue;
- }
- try {
- return Integer.parseInt(str.trim());
- } catch (NumberFormatException e) {
- return defaultValue;
- }
- }
- private String safeGetString(Map formData, String key) {
- Object val = formData.get(key);
- return val == null ? "" : String.valueOf(val);
- }
- public static BigDecimal toBigDecimal(String str) {
- if (str == null || str.trim().isEmpty()) {
- return BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
- }
- try {
- return new BigDecimal(str.trim())
- .setScale(2, RoundingMode.HALF_UP);
- } catch (NumberFormatException e) {
- // 返回默认值而不是抛出异常,避免程序中断
- return BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
- }
- }
- /**
- * 重载方法,支持Number类型输入
- */
- public static BigDecimal toBigDecimal(Number number) {
- if (number == null) {
- return BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
- }
- return new BigDecimal(number.toString())
- .setScale(2, RoundingMode.HALF_UP);
- }
- }
|