/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.sxkj.gd.workorder.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.commons.lang3.StringUtils; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.BeanUtil; import org.springframework.stereotype.Service; import org.sxkj.common.utils.GeomUtils; import org.sxkj.common.utils.OrderNumUtils; import org.sxkj.gd.workorder.entity.GdWorkOrderEntity; import org.sxkj.gd.workorder.excel.GdWorkOrderExcel; import org.sxkj.gd.workorder.mapper.GdWorkOrderMapper; import org.sxkj.gd.workorder.param.WorkOrderParam; import org.sxkj.gd.workorder.service.IGdWorkOrderService; import org.sxkj.gd.workorder.vo.GdWorkOrderVO; import java.util.List; import java.util.Objects; /** * 工单任务表 服务实现类 * * @author lw * @since 2026-01-14 */ @Service public class GdWorkOrderServiceImpl extends BaseServiceImpl implements IGdWorkOrderService { @Override public IPage selectGdWorkOrderPage(IPage page, GdWorkOrderVO gdWorkOrder) { return page.setRecords(baseMapper.selectGdWorkOrderPage(page, gdWorkOrder)); } @Override public List exportGdWorkOrder(Wrapper queryWrapper) { List gdWorkOrderList = baseMapper.exportGdWorkOrder(queryWrapper); //gdWorkOrderList.forEach(gdWorkOrder -> { // gdWorkOrder.setTypeName(DictCache.getValue(DictEnum.YES_NO, GdWorkOrder.getType())); //}); return gdWorkOrderList; } /** * 保存或更新工单任务表 * @param workOrderParam * @return */ @Override public boolean saveOrUpdateWorkOrder(WorkOrderParam workOrderParam) { GdWorkOrderEntity entity = Objects.requireNonNull(BeanUtil.copy(workOrderParam, GdWorkOrderEntity.class)); // 验证并格式化几何数据 String geom = entity.getGeom(); String validatedGeom = GeomUtils.validateAndFormatGeom(geom); if (validatedGeom == null) { return false; } // 设置验证后的几何数据 entity.setGeom(validatedGeom); // 生成工单编号 if (StringUtils.isBlank(entity.getWorkOrderCode())) { // 使用时间戳生成唯一工单编号 String timestamp = OrderNumUtils.initOrderNum("gdTicketInfo"); entity.setWorkOrderCode("GD" + timestamp); } entity.setCreateUser(AuthUtil.getUserId()); entity.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); return saveOrUpdate(entity); } }