refactor(dms): 新增定时任务生成工单代码(未能完整测试流程,定时任务调用dubbo远程服务不能新增数据时自动填充租户id等)

master
zch 1 month ago
parent cd5cc3de15
commit 52c730ca42

@ -15,8 +15,6 @@ import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.dms.domain.DmsBillsFaultInstance;
import org.dromara.dms.domain.DmsFaultInstanceActivity;
import org.dromara.dms.domain.bo.DmsBillsFaultInstanceBo;
import org.dromara.dms.domain.vo.DmsBillsFaultInstanceVo;
import org.dromara.dms.service.IDmsBillsFaultInstanceService;
@ -24,13 +22,10 @@ import org.dromara.dms.utils.TemplateExcelUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* ;
*
* 访:/dms/dmsBillsFaultInstance
*
* @author zch
@ -45,7 +40,7 @@ public class DmsBillsFaultInstanceController extends BaseController {
private final IDmsBillsFaultInstanceService dmsBillsFaultInstanceService;
/**
* ;
*
*/
@SaCheckPermission("dms:dmsBillsFaultInstance:list")
@GetMapping("/list")
@ -54,18 +49,18 @@ public class DmsBillsFaultInstanceController extends BaseController {
}
/**
* ;
*
*/
@SaCheckPermission("dms:dmsBillsFaultInstance:export")
@Log(title = "故障报修工单;手工创建故障报修工单", businessType = BusinessType.EXPORT)
@Log(title = "故障报修工单", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(DmsBillsFaultInstanceBo bo, HttpServletResponse response) {
List<DmsBillsFaultInstanceVo> list = dmsBillsFaultInstanceService.queryList(bo);
ExcelUtil.exportExcel(list, "故障报修工单;手工创建故障报修工单", DmsBillsFaultInstanceVo.class, response);
ExcelUtil.exportExcel(list, "故障报修工单", DmsBillsFaultInstanceVo.class, response);
}
/**
* ;
*
*
* @param repairInstanceId
*/
@ -77,10 +72,10 @@ public class DmsBillsFaultInstanceController extends BaseController {
}
/**
* ;
*
*/
@SaCheckPermission("dms:dmsBillsFaultInstance:add")
@Log(title = "故障报修工单;手工创建故障报修工单", businessType = BusinessType.INSERT)
@Log(title = "故障报修工单", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DmsBillsFaultInstanceBo bo) {
@ -88,10 +83,10 @@ public class DmsBillsFaultInstanceController extends BaseController {
}
/**
* ;
*
*/
@SaCheckPermission("dms:dmsBillsFaultInstance:edit")
@Log(title = "故障报修工单;手工创建故障报修工单", businessType = BusinessType.UPDATE)
@Log(title = "故障报修工单", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DmsBillsFaultInstanceBo bo) {
@ -99,12 +94,12 @@ public class DmsBillsFaultInstanceController extends BaseController {
}
/**
* ;
*
*
* @param repairInstanceIds
*/
@SaCheckPermission("dms:dmsBillsFaultInstance:remove")
@Log(title = "故障报修工单;手工创建故障报修工单", businessType = BusinessType.DELETE)
@Log(title = "故障报修工单", businessType = BusinessType.DELETE)
@DeleteMapping("/{repairInstanceIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] repairInstanceIds) {
@ -113,7 +108,7 @@ public class DmsBillsFaultInstanceController extends BaseController {
/**
* ;
*
*/
@GetMapping("/getDmsBillsFaultInstanceList")
@ -122,41 +117,42 @@ public class DmsBillsFaultInstanceController extends BaseController {
return R.ok(list);
}
@PostMapping("faultRecordExport")
public void faultRecordExport(DmsBillsFaultInstance dmsBillsFaultInstance, HttpServletResponse response) throws Exception {
Map<String, Object> beanParams = new HashMap<>();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
DmsFaultInstanceActivity faulsts = dmsBillsFaultInstanceService.selectFaults(dmsBillsFaultInstance.getRepairInstanceId());
beanParams.put("applyUser",faulsts.getApplyUser());
beanParams.put("applyTime",format.format(faulsts.getApplyTime()));
beanParams.put("deviceName",faulsts.getDeviceName());
beanParams.put("deviceLocation",faulsts.getDeviceLocation());
beanParams.put("deviceCode",faulsts.getDeviceCode());
// @PostMapping("faultRecordExport")
// public void faultRecordExport(DmsBillsFaultInstance dmsBillsFaultInstance, HttpServletResponse response) throws Exception {
// Map<String, Object> beanParams = new HashMap<>();
// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
// DmsFaultInstanceActivity faults = dmsBillsFaultInstanceService.selectFaults(dmsBillsFaultInstance.getRepairInstanceId());
// beanParams.put("applyUser",faults.getApplyUser());
// beanParams.put("applyTime",format.format(faults.getApplyTime()));
// beanParams.put("deviceName",faults.getDeviceName());
// beanParams.put("deviceLocation",faults.getDeviceLocation());
// beanParams.put("deviceCode",faults.getDeviceCode());
//
// if (faults.getRealBeginTime()!=null){
// beanParams.put("realEndTime",format.format(faults.getRealEndTime()));
// }
// if (faults.getRealEndTime()!=null){
// beanParams.put("realBeginTime",format.format(faults.getRealBeginTime()));
// }
// if (faults.getUpdateTime()!=null){
// beanParams.put("confirmTime",format.format(faults.getUpdateTime()));
// }
//// beanParams.put("realEndTime",format.format(faults.getRealEndTime()));
// beanParams.put("faultDescription",faults.getFaultDescription());
// beanParams.put("checkedFault",faults.getCheckedFault());
// beanParams.put("repairContent",faults.getRepairContent());
// beanParams.put("protectedMethod",faults.getProtectedMethod());
// beanParams.put("repairer",faults.getRepairer());
// String repairConfirm;
// if (faults.getConfirmer()!=null){
// repairConfirm = faults.getConfirmer();
// }else {
// repairConfirm = "未完成";
// }
// beanParams.put("repairConfirm",repairConfirm);
// beanParams.put("list",faults.getParts());
//
// TemplateExcelUtils.downLoadExcel("维修记录","",beanParams, response);
// }
if (faulsts.getRealBeginTime()!=null){
beanParams.put("realEndTime",format.format(faulsts.getRealEndTime()));
}
if (faulsts.getRealEndTime()!=null){
beanParams.put("realBeginTime",format.format(faulsts.getRealBeginTime()));
}
if (faulsts.getUpdateTime()!=null){
beanParams.put("confirmTime",format.format(faulsts.getUpdateTime()));
}
// beanParams.put("realEndTime",format.format(faulsts.getRealEndTime()));
beanParams.put("faultDescription",faulsts.getFaultDescription());
beanParams.put("checkedFault",faulsts.getCheckedFault());
beanParams.put("repairContent",faulsts.getRepairContent());
beanParams.put("protectedMethod",faulsts.getProtectedMethod());
beanParams.put("repairer",faulsts.getRepairer());
String repairConfirm;
if (faulsts.getConfirmer()!=null){
repairConfirm = faulsts.getConfirmer();
}else {
repairConfirm = "未完成";
}
beanParams.put("repairConfirm",repairConfirm);
beanParams.put("list",faulsts.getParts());
TemplateExcelUtils.downLoadExcel("维修记录","",beanParams, response);
}
}

@ -11,7 +11,7 @@ import java.util.Date;
import java.util.List;
/**
* ; dms_bills_fault_instance
* dms_bills_fault_instance
*
* @author zch
* @date 2025-04-07

@ -12,7 +12,7 @@ import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* ; dms_bills_fault_instance
* dms_bills_fault_instance
*
* @author zch
* @date 2025-04-07

@ -17,7 +17,7 @@ import java.util.List;
/**
* ; dms_bills_fault_instance
* dms_bills_fault_instance
*
* @author zch
* @date 2025-04-07

@ -2,16 +2,18 @@ package org.dromara.dms.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.dms.domain.DmsPlanMaint;
import org.dromara.dms.domain.DmsPlanMaintDetail;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
@ -122,4 +124,6 @@ public class DmsPlanMaintVo implements Serializable {
private Long timeLimitDays;
private Long timeLimitHours;
/** 保养计划明细信息 */
private List<DmsPlanMaintDetail> dmsPlanMaintDetailList;
}

@ -10,6 +10,7 @@ import org.dromara.common.core.domain.R;
import org.dromara.dms.api.RemoteInspectInstanceService;
import org.dromara.dms.domain.*;
import org.dromara.dms.mapper.*;
import org.dromara.dms.service.impl.DmsInspectProjectDeviceServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -120,12 +121,12 @@ public class RemoteInspectInstanceServiceImpl implements RemoteInspectInstanceSe
dmsInspectInstanceDetailMapper.insert(dmsInspectInstanceDetail);
Long projectId = dmsInspectInstanceDetailMapper.selectProjectId(dmsInspectRouteDetail.getInspectStandard());
/*
DmsInspectProjectDevice queryInspectProjectDevice = new DmsInspectProjectDevice();
queryInspectProjectDevice.setTargetType("2");
queryInspectProjectDevice.setTargetId(deviceId);
List<DmsInspectProjectDevice> dmsInspectProjectDevices = dmsInspectProjectDeviceMapper.selectDmsInspectProjectDeviceList(queryInspectProjectDevice);
*/
MPJLambdaWrapper<DmsInspectProjectDevice> DmsInspectProjectDeviceLQW = JoinWrappers.lambda(DmsInspectProjectDevice.class)
.eq(DmsInspectProjectDevice::getTargetType, "2")//关联类型(1设备类型)
.eq(DmsInspectProjectDevice::getTargetId, deviceId);

@ -1,17 +1,20 @@
package org.dromara.dms.dubbo;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.constant.DmsConstants;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.utils.uuid.Seq;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.dms.api.RemoteMaintInstanceService;
import org.dromara.dms.domain.*;
import org.dromara.dms.mapper.DmsBillsMaintDetailMapper;
import org.dromara.dms.mapper.DmsBillsMaintDetailProjectMapper;
import org.dromara.dms.mapper.DmsBillsMaintInstanceMapper;
import org.dromara.dms.mapper.DmsPlanMaintMapper;
import org.dromara.system.api.model.LoginUser;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -33,6 +36,13 @@ public class RemoteMaintInstanceServiceImpl implements RemoteMaintInstanceServic
private final DmsBillsMaintDetailProjectMapper dmsBillsMaintDetailProjectMapper;
// 预定义系统用户相关常量,实际项目中建议从配置读取或定义在公共常量类中
private static final Long SYSTEM_USER_ID = 1L; // 假设的系统管理员用户ID
private static final Long SYSTEM_DEPT_ID = 103L; // 假设的系统默认部门ID
private static final String DEFAULT_TENANT_ID_FOR_JOBS = "000000"; // 定时任务使用的默认租户ID
/**
*
*
@ -50,8 +60,6 @@ public class RemoteMaintInstanceServiceImpl implements RemoteMaintInstanceServic
}
DmsBillsMaintInstance dmsBillsMaintInstance = new DmsBillsMaintInstance();
dmsBillsMaintInstance.setPlanBeginTime(dmsPlanMaint.getMaintTime());
dmsBillsMaintInstance.setPlanMaintId(dmsPlanMaint.getPlanMaintId());
dmsBillsMaintInstance.setBillsMaintCode(Seq.getId(Seq.maintInstanceSeqType, Seq.maintInstanceCode));
@ -66,6 +74,24 @@ public class RemoteMaintInstanceServiceImpl implements RemoteMaintInstanceServic
// dmsBillsMaintInstance.setIsFlag(1l);
// dmsBillsMaintInstance.setWfProcessId(103l);
dmsBillsMaintInstance.setPlanEndTime(new Date(lubeTime.getTime() + timeLimit * 1000l));
//字段没有自动填充,只能代码手动填充
// 获取用户信息
/* SaSession session = StpUtil.getTokenSession();
if (ObjectUtil.isNull(session)) {
return R.fail("用户会话不存在");
}
LoginUser loginUser = (LoginUser) session.get("loginUser");*/
LoginUser loginUser = new LoginUser();//暂时默认系统用户
loginUser.setTenantId(DEFAULT_TENANT_ID_FOR_JOBS);//暂时默认系统用户
loginUser.setUserId(SYSTEM_USER_ID);//暂时默认系统用户
loginUser.setDeptId(SYSTEM_DEPT_ID);//暂时默认系统用户
dmsBillsMaintInstance.setCreateBy(SYSTEM_USER_ID);//暂时默认系统用户
dmsBillsMaintInstance.setCreateDept(SYSTEM_DEPT_ID);//暂时默认系统用户
dmsBillsMaintInstance.setTenantId(DEFAULT_TENANT_ID_FOR_JOBS);//暂时默认系统用户
int i = dmsBillsMaintInstanceMapper.insert(dmsBillsMaintInstance);
// DmsMaintInstanceActivity dmsMaintInstanceActivity = new DmsMaintInstanceActivity();
@ -73,13 +99,19 @@ public class RemoteMaintInstanceServiceImpl implements RemoteMaintInstanceServic
// dmsMaintInstanceActivity.setProcessStepOrder(1L);
// int i1 = dmsMaintInstanceActivityMapper.insertDmsMaintInstanceActivity(dmsMaintInstanceActivity);
batchInsertDmsBillsMaintDetail(dmsPlanMaint, dmsBillsMaintInstance.getMaintInstanceId());
batchInsertDmsBillsMaintDetail(dmsPlanMaint, dmsBillsMaintInstance.getMaintInstanceId(), loginUser);
return R.ok(i);
}
public void batchInsertDmsBillsMaintDetail(DmsPlanMaint dmsPlanMaint, Long maintInstanceId) {
@Transactional( rollbackFor = Exception.class )
public void batchInsertDmsBillsMaintDetail(DmsPlanMaint dmsPlanMaint, Long maintInstanceId, LoginUser loginUser) {
Long userId = loginUser.getUserId();
Long deptId = loginUser.getDeptId();
String tenantId = loginUser.getTenantId();
List<DmsPlanMaintDetail> planMaintDetails = dmsPlanMaint.getDmsPlanMaintDetailList();
List<DmsBillsMaintDetail> billsMaintDetails = new ArrayList<>();
planMaintDetails.forEach(planMaintDetail -> {
@ -89,12 +121,16 @@ public class RemoteMaintInstanceServiceImpl implements RemoteMaintInstanceServic
dmsBillsMaintDetail.setMaintStationId(planMaintDetail.getMaintStationId());
dmsBillsMaintDetail.setMaintStandardId(planMaintDetail.getMaintStandardId());
// dmsBillsMaintDetail.setIsFlag(1L);
dmsBillsMaintDetail.setMaintStatus(1L);
billsMaintDetails.add(dmsBillsMaintDetail);
dmsBillsMaintDetail.setMaintStatus(1L);//保养状态1待保养 2保养中 3已完成
//字段没有自动填充,只能代码手动填充
dmsBillsMaintDetail.setCreateBy(userId);
dmsBillsMaintDetail.setCreateDept(deptId);
dmsBillsMaintDetail.setTenantId(tenantId);
dmsBillsMaintDetailMapper.insert(dmsBillsMaintDetail);
});
// dmsBillsMaintInstanceMapper.batchDmsBillsMaintDetail(billsMaintDetails);
dmsBillsMaintDetailMapper.insertBatch(billsMaintDetails);
ArrayList<DmsBillsMaintDetailProject> billsMaintDetailProjectList = new ArrayList<>();
List<DmsBillsMaintDetail> list = dmsBillsMaintDetailMapper.selectDetailList(maintInstanceId);
for (DmsBillsMaintDetail detail : list) {
@ -106,13 +142,18 @@ public class RemoteMaintInstanceServiceImpl implements RemoteMaintInstanceServic
billsMaintDetailProject.setMaintProjectId(project.getMaintProjectId());
billsMaintDetailProject.setMaintProjectName(project.getMaintProjectName());
billsMaintDetailProject.setMaintProjectDesc(project.getMaintProjectDesc());
billsMaintDetailProject.setMaintProjectStatus("2");
billsMaintDetailProjectList.add(billsMaintDetailProject);
billsMaintDetailProject.setMaintProjectStatus("2");//保养项目状态0待保养 1保养完成TODO:为什么是2
//字段没有自动填充,只能代码手动填充
billsMaintDetailProject.setCreateBy(userId);
billsMaintDetailProject.setCreateDept(deptId);
billsMaintDetailProject.setTenantId(tenantId);
dmsBillsMaintDetailProjectMapper.insert(billsMaintDetailProject);
}
}
// dmsBillsMaintInstanceMapper.batchDmsProject(list1);
dmsBillsMaintDetailProjectMapper.insertOrUpdateBatch(billsMaintDetailProjectList);
}
}

@ -10,7 +10,7 @@ import org.dromara.dms.domain.vo.DmsFaultInstanceActivityVo;
import java.util.List;
/**
* ;Mapper
* Mapper
*
* @author zch
* @date 2025-04-07

@ -12,4 +12,5 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
*/
public interface DmsInspectProjectDeviceMapper extends BaseMapperPlus<DmsInspectProjectDevice, DmsInspectProjectDeviceVo> {
}

@ -16,6 +16,6 @@ public interface DmsPlanInspectMapper extends BaseMapperPlus<DmsPlanInspect, Dms
DmsPlanInspectVo selectPlanInspectJoinJobByInspectId(Long planInspectId);
DmsPlanInspectVo selectPlanInspectJoinJobByInspectId1(String planInspectId);
DmsPlanInspect selectPlanInspectJoinJobByInspectCode(String planInspectCode);
}

@ -26,7 +26,7 @@ public interface DmsPlanMaintMapper extends BaseMapperPlus<DmsPlanMaint, DmsPlan
* @param planMaintId
* @return
*/
public DmsPlanMaint selectPlanMaintJoinJobByPlanMaintId(Long planMaintId);
public DmsPlanMaint selectDmsPlanMaintByPlanMaintId(Long planMaintId);
}

@ -1,6 +1,7 @@
package org.dromara.dms.mapper;
import org.dromara.dms.domain.DmsPlanRepair;
import org.dromara.dms.domain.DmsPlanRepairDetail;
import org.dromara.dms.domain.vo.DmsPlanRepairVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@ -12,4 +13,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
*/
public interface DmsPlanRepairMapper extends BaseMapperPlus<DmsPlanRepair, DmsPlanRepairVo> {
DmsPlanRepair selectDmsPlanRepairByPlanRepairCode(String planRepairCode);
DmsPlanRepair selectDmsPlanRepairByPlanRepairId(Long planRepairId);
}

@ -10,7 +10,7 @@ import java.util.Collection;
import java.util.List;
/**
* ;Service
* Service
*
* @author zch
* @date 2025-04-07
@ -18,48 +18,48 @@ import java.util.List;
public interface IDmsBillsFaultInstanceService {
/**
* ;
*
*
* @param repairInstanceId
* @return ;
* @return
*/
DmsBillsFaultInstanceVo queryById(Long repairInstanceId);
/**
* ;
*
*
* @param bo
* @param pageQuery
* @return ;
* @return
*/
TableDataInfo<DmsBillsFaultInstanceVo> queryPageList(DmsBillsFaultInstanceBo bo, PageQuery pageQuery);
/**
* ;
*
*
* @param bo
* @return ;
* @return
*/
List<DmsBillsFaultInstanceVo> queryList(DmsBillsFaultInstanceBo bo);
/**
* ;
*
*
* @param bo ;
* @param bo
* @return
*/
Boolean insertByBo(DmsBillsFaultInstanceBo bo);
/**
* ;
*
*
* @param bo ;
* @param bo
* @return
*/
Boolean updateByBo(DmsBillsFaultInstanceBo bo);
/**
* ;
*
*
* @param ids
* @param isValid

@ -24,7 +24,7 @@ import java.util.List;
import java.util.Map;
/**
* ;Service
* Service
*
* @author zch
* @date 2025-04-07
@ -38,10 +38,10 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
private final DmsBillsFaultInstanceMapper dmsBillsFaultInstanceMapper;
/**
* ;
*
*
* @param repairInstanceId
* @return ;
* @return
*/
@Override
public DmsBillsFaultInstanceVo queryById(Long repairInstanceId){
@ -49,11 +49,11 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
}
/**
* ;
*
*
* @param bo
* @param pageQuery
* @return ;
* @return
*/
@Override
public TableDataInfo<DmsBillsFaultInstanceVo> queryPageList(DmsBillsFaultInstanceBo bo, PageQuery pageQuery) {
@ -63,10 +63,10 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
}
/**
* ;
*
*
* @param bo
* @return ;
* @return
*/
@Override
public List<DmsBillsFaultInstanceVo> queryList(DmsBillsFaultInstanceBo bo) {
@ -100,9 +100,9 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
}
/**
* ;
*
*
* @param bo ;
* @param bo
* @return
*/
@Override
@ -117,9 +117,9 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
}
/**
* ;
*
*
* @param bo ;
* @param bo
* @return
*/
@Override
@ -137,7 +137,7 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
}
/**
* ;
*
*
* @param ids
* @param isValid

@ -1,9 +1,15 @@
package org.dromara.dms.service.impl;
import com.aizuda.snailjob.client.job.core.enums.AllocationAlgorithmEnum;
import com.aizuda.snailjob.client.job.core.enums.TriggerTypeEnum;
import com.aizuda.snailjob.common.core.enums.JobBlockStrategyEnum;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.seata.spring.annotation.GlobalTransactional;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.uuid.Seq;
@ -17,6 +23,8 @@ import org.dromara.dms.mapper.DmsBaseInspectRouteMapper;
import org.dromara.dms.mapper.DmsPlanInspectMapper;
import org.dromara.dms.service.IDmsPlanInspectService;
import org.dromara.dms.utils.CronUtils;
import org.dromara.job.api.RemoteJobService;
import org.dromara.job.api.model.DmsJobEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -39,6 +47,9 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService {
private final DmsBaseInspectRouteMapper dmsBaseInspectRouteMapper;
@DubboReference
private final RemoteJobService remoteJobService;
private static final Long SECONDS_PER_DAY = 24 * 60 * 60L;
private static final Long SECONDS_PER_HOUR = 60 * 60L;
@ -149,7 +160,7 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService {
* @return
*/
@Override
@Transactional( rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public Boolean insertByBo(DmsPlanInspectBo bo) {
DmsPlanInspect add = MapstructUtils.convert(bo, DmsPlanInspect.class);
String day = "*";
@ -180,22 +191,31 @@ public class DmsPlanInspectServiceImpl implements IDmsPlanInspectService {
cron = "0 0 "+add.getHour()+" "+day+" "+ month+" ? "+year;
}
String planInspectCode = Seq.getId(Seq.planInspectSeqType, Seq.planInspectCode);
/* SysJob job = new SysJob();
job.setJobName("点巡检计划编号" + planInspectCode + "工单任务");
job.setJobGroup("DEFAULT");
job.setInvokeTarget("ryTask.getDmsBillsInstance(\"" + planInspectCode + "\")");
job.setCronExpression(cron);
job.setMisfirePolicy("1");
job.setConcurrent("1");
job.setStatus("1");
R<Integer> jobIdR = remoteJobService.add(SecurityConstants.INNER, job);*/
String time = cron;
//通过cron表达式获取下一次执行时间
Date nextExecution = CronUtils.getNextExecution(time);
add.setPlanTime(nextExecution);
add.setPlanInspectCode(planInspectCode);
// add.setJobId(jobIdR.getData().longValue());
if(bo.getActiveFlag().equals("1")) {//激活标识1是 0否
DmsJobEntity dmsJobEntity = new DmsJobEntity();
dmsJobEntity.setRouteKey(AllocationAlgorithmEnum.ROUND)//路由策略:轮询
.setJobName("点巡检计划编号" + planInspectCode + "工单任务")
.setExecutorInfo("stanceInspect")//执行器名称
.setExecutorTimeout(30)//执行超时时间
.setBlockStrategy(JobBlockStrategyEnum.CONCURRENCY)//阻塞策略:并发
.setMaxRetryTimes(2)//最大重试次数
.setTriggerType(TriggerTypeEnum.CRON)//触发器类型cron
.setTriggerInterval(bo.getCronExpression())//间隔时长: cron表达式
.setRetryInterval(3)//重试间隔时长
.setArgsStr("planInspectCode")
.setExtAttrs(planInspectCode);
R<Long> longR = remoteJobService.addClusterJob(dmsJobEntity);
Long jobId = longR.getData();
String time = cron;
//通过cron表达式获取下一次执行时间
Date nextExecution = CronUtils.getNextExecution(time);
add.setPlanTime(nextExecution);
add.setPlanInspectCode(planInspectCode);
add.setJobId(jobId);
}
Long timeLimitDays = add.getTimeLimitDays()==null ? 0L:add.getTimeLimitDays();
Long timeLimitHours = add.getTimeLimitHours() == null ? 0L:add.getTimeLimitHours();

@ -1,9 +1,15 @@
package org.dromara.dms.service.impl;
import com.aizuda.snailjob.client.job.core.enums.AllocationAlgorithmEnum;
import com.aizuda.snailjob.client.job.core.enums.TriggerTypeEnum;
import com.aizuda.snailjob.common.core.enums.JobBlockStrategyEnum;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.seata.spring.annotation.GlobalTransactional;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.uuid.Seq;
@ -15,6 +21,8 @@ import org.dromara.dms.domain.vo.DmsPlanMaintVo;
import org.dromara.dms.mapper.DmsPlanMaintMapper;
import org.dromara.dms.service.IDmsPlanMaintService;
import org.dromara.dms.utils.CronUtils;
import org.dromara.job.api.RemoteJobService;
import org.dromara.job.api.model.DmsJobEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -35,6 +43,9 @@ public class DmsPlanMaintServiceImpl implements IDmsPlanMaintService {
private final DmsPlanMaintMapper baseMapper;
@DubboReference
private final RemoteJobService remoteJobService;
private static final Long SECONDS_PER_DAY = 24 * 60 * 60L;
private static final Long SECONDS_PER_HOUR = 60 * 60L;
@ -151,7 +162,7 @@ public class DmsPlanMaintServiceImpl implements IDmsPlanMaintService {
* @return
*/
@Override
@Transactional( rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public Boolean insertByBo(DmsPlanMaintBo bo) {
DmsPlanMaint add = MapstructUtils.convert(bo, DmsPlanMaint.class);
validEntityBeforeSave(add);
@ -194,12 +205,29 @@ public class DmsPlanMaintServiceImpl implements IDmsPlanMaintService {
job.setConcurrent("1");
job.setStatus("1");
R<Integer> jobIdR = remoteJobService.add(SecurityConstants.INNER, job);*/
if(bo.getActiveFlag().equals("1")) {//激活标识1是 0否
DmsJobEntity dmsJobEntity = new DmsJobEntity();
dmsJobEntity.setRouteKey(AllocationAlgorithmEnum.ROUND)//路由策略:轮询
.setJobName("保养计划编号" + planMaintCode + "工单任务")
.setExecutorInfo("stanceMaint")//执行器名称
.setExecutorTimeout(30)//执行超时时间
.setBlockStrategy(JobBlockStrategyEnum.CONCURRENCY)//阻塞策略:并发
.setMaxRetryTimes(2)//最大重试次数
.setTriggerType(TriggerTypeEnum.CRON)//触发器类型cron
.setTriggerInterval(bo.getCronExpression())//间隔时长: cron表达式
.setRetryInterval(3)//重试间隔时长
.setArgsStr("planMaintCode")
.setExtAttrs(planMaintCode);
R<Long> longR = remoteJobService.addClusterJob(dmsJobEntity);
Long jobId = longR.getData();
String time = cron;
//通过cron表达式获取下一次执行时间
Date nextExecution = CronUtils.getNextExecution(time);
add.setMaintTime(nextExecution);
add.setJobId(jobId);
}
String time = cron;
//通过cron表达式获取下一次执行时间
Date nextExecution = CronUtils.getNextExecution(time);
add.setMaintTime(nextExecution);
// add.setJobId(jobIdR.getData().longValue());
add.setPlanMaintCode(planMaintCode);
Long timeLimitDays = add.getTimeLimitDays()==null?0L:add.getTimeLimitDays();
Long timeLimitHours = add.getTimeLimitHours() == null?0L:add.getTimeLimitHours();

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
@ -15,6 +16,7 @@ import org.dromara.dms.domain.vo.DmsPlanRepairVo;
import org.dromara.dms.mapper.DmsPlanRepairDetailMapper;
import org.dromara.dms.mapper.DmsPlanRepairMapper;
import org.dromara.dms.service.IDmsPlanRepairService;
import org.dromara.job.api.RemoteJobService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -173,6 +175,10 @@ public class DmsPlanRepairServiceImpl implements IDmsPlanRepairService {
@Override
@Transactional( rollbackFor = Exception.class )
public Boolean insertByBo(DmsPlanRepairBo bo) {
/*
*DMS
* */
DmsPlanRepair add = MapstructUtils.convert(bo, DmsPlanRepair.class);
validEntityBeforeSave(add);
add.setTimeLimit((add.getTimeLimitDays()*SECONDS_PER_DAY)

@ -36,15 +36,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where a.plan_inspect_id = #{planInspectId}
</select>
<select id="selectPlanInspectJoinJobByInspectId1" resultType="org.dromara.dms.domain.vo.DmsPlanInspectVo"
<select id="selectPlanInspectJoinJobByInspectCode" resultType="org.dromara.dms.domain.DmsPlanInspect"
parameterType="java.lang.String">
select a.plan_inspect_id, a.plan_inspect_code, a.plan_inspect_name, a.inspect_type,
a.inspect_route_id, a.device_amount, a.plan_time, a.cycle_period,a.time_limit,a.job_id,
a.performer, a.remark, a.create_by, a.create_time, a.update_by, a.update_time,
b.cron_expression
a.performer, a.remark, a.create_by, a.create_time, a.update_by,
a.update_time
/* ,
b.cron_expression*/
from dms_plan_inspect a
left join sys_job b on a.job_id = b.job_id
where a.plan_inspect_code = #{planInspectId}
-- left join sys_job b on a.job_id = b.job_id left join sys_job b on a.job_id = b.job_id
where a.plan_inspect_code = #{planInspectCode}
</select>
</mapper>

@ -30,6 +30,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<collection property="dmsPlanMaintDetailList" notNullColumn="sub_plan_maint_detail_id" javaType="java.util.List" resultMap="DmsPlanMaintDetailResult" />
</resultMap>
<resultMap type="DmsPlanMaintDetail" id="DmsPlanMaintDetailResult">
<result property="planMaintDetailId" column="sub_plan_maint_detail_id" />
<result property="planMaintId" column="sub_plan_maint_id" />
<result property="machineId" column="sub_machine_id" />
<result property="maintStationId" column="sub_maint_station_id" />
<result property="maintStandardId" column="sub_maint_standard_id" />
<result property="operationDescription" column="sub_operation_description" />
<!-- <result property="isFlag" column="sub_is_flag" />-->
<result property="remark" column="sub_remark" />
<result property="createBy" column="sub_create_by" />
<result property="createTime" column="sub_create_time" />
<result property="updateBy" column="sub_update_by" />
<result property="updateTime" column="sub_update_time" />
</resultMap>
<select id="selectDmsPlanMaintJoinByPlanMaintCode" parameterType="String" resultMap="DmsPlanMaintDmsPlanMaintDetailResult">
select a.plan_maint_id, a.plan_maint_code, a.maint_level, a.maint_group, a.maint_supervisor, a.maint_time,a.time_limit,a.job_id,
a.cycle_period, a.maint_status, a.create_method, a.remark, a.create_by, a.create_time, a.update_by, a.update_time,

@ -3,4 +3,62 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.dms.mapper.DmsPlanRepairMapper">
<resultMap type="DmsPlanRepair" id="DmsPlanRepairResult">
<result property="planRepairId" column="plan_repair_id" />
<result property="planRepairCode" column="plan_repair_code" />
<result property="repairType" column="repair_type" />
<result property="repairGroup" column="repair_group" />
<result property="repairSupervisor" column="repair_supervisor" />
<result property="repairTime" column="repair_time" />
<result property="timeLimit" column="time_limit" />
<!-- <result property="repairEndTime" column="repair_end_time" />-->
<result property="cyclePeriod" column="cycle_period" />
<!-- <result property="repairStatus" column="repair_status" />-->
<result property="createMethod" column="create_method" />
<!--<result property="isFlag" column="is_flag" />-->
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<resultMap id="DmsPlanRepairDmsPlanRepairDetailResult" type="DmsPlanRepair" extends="DmsPlanRepairResult">
<collection property="dmsPlanRepairDetailList" notNullColumn="sub_plan_repair_detail_id" javaType="java.util.List" resultMap="DmsPlanRepairDetailResult" />
</resultMap>
<resultMap type="DmsPlanRepairDetail" id="DmsPlanRepairDetailResult">
<result property="planRepairDetailId" column="sub_plan_repair_detail_id" />
<result property="planRepairId" column="sub_plan_repair_id" />
<result property="repairDetailTargetType" column="repair_detail_target_type" />
<result property="repairDetailTargetId" column="repair_detail_target_id" />
<result property="faultType" column="sub_fault_type" />
<result property="repairDesc" column="sub_repair_desc" />
<result property="repairProtocol" column="sub_repair_protocol" />
<result property="operationDescription" column="sub_operation_description" />
<result property="createBy" column="sub_create_by" />
<result property="createTime" column="sub_create_time" />
<result property="updateBy" column="sub_update_by" />
<result property="updateTime" column="sub_update_time" />
</resultMap>
<select id="selectDmsPlanRepairByPlanRepairCode" parameterType="String" resultMap="DmsPlanRepairDmsPlanRepairDetailResult">
select a.plan_repair_id, a.plan_repair_code, a.repair_type, a.repair_group, a.repair_supervisor, a.repair_time, a.cycle_period, a.create_method,
/*a.is_flag, */
a.remark, a.create_by, a.create_time, a.update_by, a.update_time,a.time_limit,
b.plan_repair_detail_id as sub_plan_repair_detail_id, b.plan_repair_id as sub_plan_repair_id, b.repair_detail_target_type as sub_repair_detail_target_type,b.repair_detail_target_id as repair_detail_target_id, b.fault_type as sub_fault_type, b.repair_desc as sub_repair_desc, b.repair_protocol as sub_repair_protocol, b.operation_description as sub_operation_description, b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by, b.update_time as sub_update_time
from dms_plan_repair a
left join dms_plan_repair_detail b on b.plan_repair_id = a.plan_repair_id
where a.plan_repair_code = #{planRepairCode}
</select>
<select id="selectDmsPlanRepairByPlanRepairId" parameterType="Long" resultMap="DmsPlanRepairDmsPlanRepairDetailResult">
select a.plan_repair_id, a.plan_repair_code, a.repair_type, a.repair_group, a.repair_supervisor, a.repair_time, a.cycle_period, a.create_method, a.is_flag, a.remark, a.create_by, a.create_time, a.update_by, a.update_time,a.time_limit,
b.plan_repair_detail_id as sub_plan_repair_detail_id, b.plan_repair_id as sub_plan_repair_id, b.repair_detail_target_type as sub_repair_detail_target_type,b.repair_detail_target_id as repair_detail_target_id, b.fault_type as sub_fault_type, b.repair_desc as sub_repair_desc, b.repair_protocol as sub_repair_protocol, b.operation_description as sub_operation_description, b.create_by as sub_create_by, b.create_time as sub_create_time, b.update_by as sub_update_by, b.update_time as sub_update_time
from dms_plan_repair a
left join dms_plan_repair_detail b on b.plan_repair_id = a.plan_repair_id
where a.plan_repair_id = #{planRepairId}
</select>
</mapper>

Loading…
Cancel
Save