“lqy пре 1 месец
родитељ
комит
fba05c30ea

+ 36 - 0
mjava-huagao/src/main/java/com/malk/huagao/controller/KdYdTransferController.java

@@ -0,0 +1,36 @@
+package com.malk.huagao.controller;
+
+import com.malk.huagao.service.IKdYdOrderService;
+import com.malk.huagao.service.IKdYdTransferService;
+import com.malk.server.common.McR;
+import com.malk.service.aliwork.YDClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author LQY
+ * @since 2025-11-12
+ */
+@RestController
+@RequestMapping("/hg")
+public class KdYdTransferController {
+    @Autowired
+    private YDClient ydClient;
+    @Autowired
+    private IKdYdTransferService kdYdTransferService;
+    @PostMapping("/kdYdTransfer")
+    McR insertTransfer(@RequestBody Map map) {
+        kdYdTransferService.insertTransfer(map);
+        return McR.success();
+    }
+}

+ 70 - 0
mjava-huagao/src/main/java/com/malk/huagao/entity/KdYdTransfer.java

@@ -0,0 +1,70 @@
+package com.malk.huagao.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author LQY
+ * @since 2025-11-12
+ */
+@Getter
+@Setter
+  @TableName("KD_YD_TRANSFER")
+public class KdYdTransfer implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+      @TableId(value = "id", type = IdType.AUTO)
+      private Long id;
+
+    private LocalDateTime createTime;
+
+    private LocalDateTime updateTime;
+
+    private String djlx;
+
+    private String cgy;
+
+    private String djbh;
+
+    private String dchzlx;
+
+    private String ywlx;
+
+    private LocalDateTime rq;
+
+    private String drhzlx;
+
+    private String dbfx;
+
+    private String dbdlx;
+
+    private String dcbm;
+
+    private String dchz;
+
+    private String drbm;
+
+    private String kh;
+
+    private String syncStatus;
+
+    private String operationType;
+
+    private String hdfs;
+
+    private String ysfs;
+
+    private String kdgs;
+
+    private String fkfs;
+}

+ 64 - 0
mjava-huagao/src/main/java/com/malk/huagao/entity/KdYdTransferDetail.java

@@ -0,0 +1,64 @@
+package com.malk.huagao.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author LQY
+ * @since 2025-11-12
+ */
+@Getter
+@Setter
+  @TableName("KD_YD_TRANSFER_DETAIL")
+public class KdYdTransferDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+      @TableId(value = "id", type = IdType.AUTO)
+      private Long id;
+
+    private LocalDateTime createTime;
+
+    private LocalDateTime updateTime;
+
+    private String wlbm;
+
+    private String wlmc;
+
+    private String ggxh;
+
+    private String dw;
+
+    private Integer dbsl;
+
+    private String ph;
+
+    private String dcck;
+
+    private String dccw;
+
+    private String drck;
+
+    private String drcw;
+
+    private String drckzt;
+
+    private String dcckzt;
+
+    private Integer detailId;
+
+    private String syncStatus;
+
+    private String operationType;
+
+    private Long transferId;
+}

+ 16 - 0
mjava-huagao/src/main/java/com/malk/huagao/mapper/KdYdTransferDetailMapper.java

@@ -0,0 +1,16 @@
+package com.malk.huagao.mapper;
+
+import com.malk.huagao.entity.KdYdTransferDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author LQY
+ * @since 2025-11-12
+ */
+public interface KdYdTransferDetailMapper extends BaseMapper<KdYdTransferDetail> {
+
+}

+ 16 - 0
mjava-huagao/src/main/java/com/malk/huagao/mapper/KdYdTransferMapper.java

@@ -0,0 +1,16 @@
+package com.malk.huagao.mapper;
+
+import com.malk.huagao.entity.KdYdTransfer;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author LQY
+ * @since 2025-11-12
+ */
+public interface KdYdTransferMapper extends BaseMapper<KdYdTransfer> {
+
+}

+ 5 - 0
mjava-huagao/src/main/java/com/malk/huagao/mapper/xml/KdYdTransferDetailMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.malk.huagao.mapper.KdYdTransferDetailMapper">
+
+</mapper>

+ 5 - 0
mjava-huagao/src/main/java/com/malk/huagao/mapper/xml/KdYdTransferMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.malk.huagao.mapper.KdYdTransferMapper">
+
+</mapper>

+ 20 - 0
mjava-huagao/src/main/java/com/malk/huagao/service/IKdYdTransferService.java

@@ -0,0 +1,20 @@
+package com.malk.huagao.service;
+
+import com.malk.huagao.entity.KdYdTransfer;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author LQY
+ * @since 2025-11-12
+ */
+public interface IKdYdTransferService extends IService<KdYdTransfer> {
+
+    void insertTransfer(Map map);
+
+}

+ 207 - 0
mjava-huagao/src/main/java/com/malk/huagao/service/impl/KdYdTransferServiceImpl.java

@@ -0,0 +1,207 @@
+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");
+        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) || "3".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);
+    }
+}