Browse Source

设备之系统——保养检修 V3
流水号Feign接口
保养检修生成任务添加任务单号
Object转Map

hyq 1 năm trước cách đây
mục cha
commit
3de13fc1fe

+ 31 - 0
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/config/FeignConfiguration.java

@@ -0,0 +1,31 @@
+package com.rongwei.bscommon.sys.config;
+
+import feign.RequestInterceptor;
+import feign.RequestTemplate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+/**
+ * @author shangmi
+ * @title FeignConfigration
+ * @date 2023/12/6 11:54
+ * @description feign配置文件
+ */
+@Configuration
+public class FeignConfiguration implements RequestInterceptor {
+    private final static Logger log = LoggerFactory.getLogger(FeignConfiguration.class);
+    @Override
+    public void apply(RequestTemplate requestTemplate) {
+        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        if(null == attributes){
+            return;
+        }
+        String authorization = attributes.getRequest().getHeader("Authorization");
+        log.info("Authorization:{}",authorization);
+        requestTemplate.header("Authorization",authorization);
+    }
+}

+ 15 - 0
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/feign/RwAdminFeginImpl.java

@@ -0,0 +1,15 @@
+package com.rongwei.bscommon.sys.feign;
+
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommonentity.commonservers.vo.SysSerialVo;
+import org.springframework.stereotype.Component;
+
+@Component
+public class RwAdminFeginImpl implements RwAdminFeign {
+
+
+    @Override
+    public R getSerialNumberCode(SysSerialVo sysSerialVo) {
+        return R.error("admin服务异常");
+    }
+}

+ 22 - 0
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/feign/RwAdminFeign.java

@@ -0,0 +1,22 @@
+package com.rongwei.bscommon.sys.feign;
+
+import com.rongwei.bscommon.sys.config.FeignConfiguration;
+import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommonentity.commonservers.vo.SysSerialVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * @author shangmi
+ * @title RwAdminFeign
+ * @date 2023/12/6 11:38
+ * @description rw-admin api接口
+ */
+@FeignClient(value = "rw-admin",configuration = FeignConfiguration.class,fallback = RwAdminFeginImpl.class,contextId = "equ-admin")
+public interface RwAdminFeign {
+
+
+    @PostMapping("/sys/generalCRUD/getSerialNumberCode")
+    R getSerialNumberCode(@RequestBody SysSerialVo sysSerialVo);
+}

+ 1 - 1
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/service/MaintenanceService.java

@@ -22,7 +22,7 @@ public interface MaintenanceService  {
      * @date 2023/11/27 16:25
      * @author shangmi
      */
-    R saveTask(TaskCreatorDTO taskCreator);
+    R saveTask(TaskCreatorDTO taskCreator) throws Exception;
 
     /**
      * 批量生成保养计划

+ 17 - 2
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/service/impl/MaintenanceServiceImpl.java

@@ -1,5 +1,6 @@
 package com.rongwei.bscommon.sys.service.impl;
 
+import com.rongwei.bscommon.sys.feign.RwAdminFeign;
 import com.rongwei.bscommon.sys.service.*;
 import com.rongwei.bscommon.sys.utils.CommonUtils;
 import com.rongwei.bsentity.domain.*;
@@ -10,6 +11,7 @@ import com.rongwei.bsentity.enums.EquipmentTypeEnum;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.utils.SecurityUtil;
+import com.rongwei.rwcommonentity.commonservers.vo.SysSerialVo;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -49,6 +51,9 @@ public class MaintenanceServiceImpl implements MaintenanceService {
     @Autowired
     private AspCheckItemsService aspCheckItemsService;
 
+    @Autowired
+    private RwAdminFeign rwAdminFeign;
+
     /**
      * 发布任务
      *
@@ -60,7 +65,7 @@ public class MaintenanceServiceImpl implements MaintenanceService {
 
     @Override
     @Transactional
-    public R saveTask(TaskCreatorDTO taskCreator) {
+    public R saveTask(TaskCreatorDTO taskCreator) throws Exception {
         // 查询主表信息
         EquMaintenanceScheduleDo maintenanceSchedule = maintenanceScheduleService.getMaintenanceSiteByList(taskCreator);
         // 查询子表信息
@@ -264,11 +269,16 @@ public class MaintenanceServiceImpl implements MaintenanceService {
     public List<EquMaintenanceTaskDo> dataTransfer(
             List<EquMaintenancePartDo> maintenancePartList,
             EquMaintenanceScheduleDo maintenanceSchedule,
-            Integer month) {
+            Integer month) throws Exception {
         Date newDate = new Date();
         SysUserVo currentUser = CommonUtils.getCurrentUser();
         List<EquMaintenanceTaskDo> maintenanceTaskList = new ArrayList<>();
         for (EquMaintenancePartDo maintenancePart : maintenancePartList) {
+            SysSerialVo sysSerialVo = new SysSerialVo();
+            sysSerialVo.setModulecode("equ_maintenance_standard_aq_code_BC");
+            sysSerialVo.setResetrule("date:yyyy");
+            sysSerialVo.setRuleTemplateStr(maintenanceSchedule.getPlantype()+"-BC-@{date:yyyyMM}@{serialNumber:#00000}");
+            R serialNumberCode = rwAdminFeign.getSerialNumberCode(sysSerialVo);
             EquMaintenanceTaskDo equMaintenanceTask = new EquMaintenanceTaskDo();
             BeanUtils.copyProperties( maintenanceSchedule,equMaintenanceTask);
             BeanUtils.copyProperties( maintenancePart,equMaintenanceTask);
@@ -281,6 +291,11 @@ public class MaintenanceServiceImpl implements MaintenanceService {
                     .setModifyusername(currentUser.getName())
                     .setModifydate(newDate)
                     .setTenantid(currentUser.getTenantid());
+            if ("200".equals(serialNumberCode.getCode())){
+
+                Object data = serialNumberCode.getData();
+                equMaintenanceTask.setTaskid(CommonUtils.getObjectByMap(data).get("code").toString());
+            }
             maintenanceTaskList.add(equMaintenanceTask);
         }
 

+ 22 - 0
cx-equipment/cx-equipment-common/src/main/java/com/rongwei/bscommon/sys/utils/CommonUtils.java

@@ -10,6 +10,9 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.annotation.PostConstruct;
 import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.Map;
 
 
 @Component
@@ -51,4 +54,23 @@ public class CommonUtils {
         return currUser;
     }
 
+    /**
+     * Object转map
+     *
+     * @param obj
+     * @return {@link Map<String,Object>}
+     * @date 2023/12/6 14:04
+     * @author shangmi
+     *
+     */
+
+    public static Map<String,Object> getObjectByMap(Object obj) throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        Field[] declaredFields = obj.getClass().getDeclaredFields();
+        for (Field field:declaredFields){
+            field.setAccessible(true);
+            map.put(field.getName(), field.get(obj));
+        }
+        return map;
+    }
 }