package com.malk.huagao.service.impl; import com.malk.huagao.entity.KdYdCustomer; import com.malk.huagao.entity.KdYdMaterial; import com.malk.huagao.mapper.KdYdMaterialMapper; import com.malk.huagao.service.IKdYdMaterialService; 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.util.Map; /** *

* 服务实现类 *

* * @author LQY * @since 2025-10-16 */ @Service public class KdYdMaterialServiceImpl extends ServiceImpl implements IKdYdMaterialService { @Autowired private YDClient ydClient; @Autowired private KdYdMaterialMapper kdYdMaterialMapper; @Override public void insertkdYdMaterial(Map map) { MDC.put("MDC_KEY_PID", "1003"); String formInstId = UtilMap.getString(map, "formInstId"); DDR_New ddrNew = ydClient.queryData(YDParam.builder() .formInstId(formInstId) .build(), YDConf.FORM_QUERY.retrieve_id); Map formData = ddrNew.getFormData(); System.out.println(formData); String wlmc = UtilMap.getString(formData, "textField_l43jpnsf"); String xh = UtilMap.getString(formData, "textField_l43jpnsg"); String gg = UtilMap.getString(formData, "textField_lqbxkzbq"); String wlfz = UtilMap.getString(formData, "selectField_mguazu3k"); String wlsx = UtilMap.getString(formData, "textField_l43jpnsh"); String xsy = UtilMap.getString(formData, "employeeField_mgu5vocz").replace("[\"", "").replace("\"]", "").trim(); String ssxl = UtilMap.getString(formData, "textField_mfxbtcdp"); String jx = UtilMap.getString(formData, "textField_mejl9nrs"); int sd = parseInt(safeGetString(formData, "numberField_mfxbtceb"), 0); String mrsl = UtilMap.getString(formData, "textField_mfxbtcdq"); String chlb = UtilMap.getString(formData, "textField_mfxbtcdr"); String jbdw = UtilMap.getString(formData, "textField_mfxbtcdo"); BigDecimal xsjzj = toBigDecimal(safeGetString(formData, "numberField_mejl9nsc")); String smzs = UtilMap.getString(formData, "textField_mfxbtce4"); String sjzt = UtilMap.getString(formData, "textField_mfxbtce6"); String jyzt = UtilMap.getString(formData, "textField_mfxbtcea"); String dzl = UtilMap.getString(formData, "textField_mfxbtcea"); String pzzt = UtilMap.getString(formData, "selectField_mejl9nrq"); String wlbt = wlmc+"-"+xh; // String sdmc = ssxl+"-"+pzzt+"-"+safeGetString(formData, "numberField_mfxbtceb"); KdYdMaterial kdYdMaterial = new KdYdMaterial(); kdYdMaterial.setWlmc(wlmc); kdYdMaterial.setXh(xh); kdYdMaterial.setGg(gg); kdYdMaterial.setWlfz(wlfz); kdYdMaterial.setWlsx(wlsx); kdYdMaterial.setJbdw(jbdw); kdYdMaterial.setSsxl(ssxl); kdYdMaterial.setJx(jx); kdYdMaterial.setSd(sd); kdYdMaterial.setMrsl(mrsl); kdYdMaterial.setChlb(chlb); kdYdMaterial.setXsy(xsy); kdYdMaterial.setXsjzj(xsjzj); kdYdMaterial.setSmzs(smzs); kdYdMaterial.setSjzt(sjzt); kdYdMaterial.setJyzt(jyzt); kdYdMaterial.setDzl(dzl); kdYdMaterial.setPzzt(pzzt); kdYdMaterial.setMaterialtitle(wlbt); // kdYdMaterial.setSpeedname(sdmc); kdYdMaterial.setForminstid(formInstId); kdYdMaterialMapper.insert(kdYdMaterial); } 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); } }