Browse Source

修改bug

gaoxiong 1 year ago
parent
commit
1bd3c9e68f

+ 10 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/drill/vo/CoreDrillDictionaryBranchPageVo.java

@@ -1,5 +1,7 @@
 package com.xunmei.common.core.domain.drill.vo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
@@ -17,6 +19,14 @@ public class CoreDrillDictionaryBranchPageVo {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
+    @ApiModelProperty("地区")
+    @ColumnWidth(20)
+    private String affiliatedArea;
+
+    @ApiModelProperty("行社名称")
+    @ColumnWidth(20)
+    private String affiliatedBank;
+
     @ApiModelProperty(value = "参考演练创建机构")
     private String orgId;
 

+ 55 - 17
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillPlanServiceImpl.java

@@ -937,28 +937,66 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
         }
 
         OrgTypeEnum orgTypeEnum = OrgTypeEnum.getOrgTypeEnum(typeList.get(0));
+        Long createOrgId = drillPlan.getCreateOrgId();
+        SysOrg sysOrg = orgService.selectSysOrgById(createOrgId, SecurityConstants.INNER);
+        Integer orgType = sysOrg.getType();
+        if (ObjectUtil.equal(orgType, OrgTypeEnum.SHEGN_LIAN_SHE.getCode())) {
+            // 省联社创建的计划
+            if (checkIsParentPlan(drillPlan.getId())) {
+                List<CoreDrillPlan> allHsPlanList = getHsPlanList(drillPlan);
+                if (ObjectUtil.isEmpty(allHsPlanList)) {
+                    return;
+                }
 
-        // 省联社创建的计划
-        if (checkIsParentPlan(drillPlan.getId())) {
-            List<CoreDrillPlan> allHsPlanList = getHsPlanList(drillPlan);
-            if (ObjectUtil.isEmpty(allHsPlanList)) {
+                Map<String, Object> map = getHsOrg(orgCacheList, orgList, orgTypeEnum);
+                List<Long> hsPlanIdList = allHsPlanList.stream().map(CoreDrillPlan::getId).collect(toList());
+                List<Long> hsOrgIdList = ((List<SysOrgVO>) map.get("list")).stream().map(SysOrgVO::getId).collect(toList());
+                if (ObjectUtil.hasEmpty(hsPlanIdList, hsOrgIdList)) {
+                    return;
+                }
+                List<CoreDrillPlan> reallyPlanIdList = findReallyPlanIdList(hsPlanIdList, hsOrgIdList);
+                boolean underHsOrgType = (boolean) map.get("underHsOrgType");
+                for (CoreDrillPlan plan : reallyPlanIdList) {
+                    create(plan, underHsOrgType ? idList : null);
+                }
+                compensateLogService.buildLog(getBusinessPlanType(), false, orgIdList, drillPlan.getId(), drillPlan.getPlanName(), errorMsg);
                 return;
-            }
-
-            Map<String, Object> map = getHsOrg(orgCacheList, orgList, orgTypeEnum);
-            List<Long> hsPlanIdList = allHsPlanList.stream().map(CoreDrillPlan::getId).collect(toList());
-            List<Long> hsOrgIdList = ((List<SysOrgVO>) map.get("list")).stream().map(SysOrgVO::getId).collect(toList());
-            if (ObjectUtil.hasEmpty(hsPlanIdList, hsOrgIdList)) {
+            }else{
+                Integer execOrgType = drillPlan.getExecOrgType();
+                List<Long> orgIds = coreDrillPlanToExecOrgMapper.selectOrgIdByPlanId(drillPlan.getId());
+                List<Long> ids = new ArrayList<>();
+                if(ObjectUtil.isNotEmpty(orgIds)){
+                    //该计划是指定了具体机构的计划
+                    //获取机构在 orgList子集机构
+                    for (SysOrgVO sysOrgVO : orgList) {
+                        List<SysOrg> sysOrgs = orgService.selectByOrgPathAndOrgType(sysOrgVO.getPath(), execOrgType, SecurityConstants.INNER);
+                        if(ObjectUtil.isNotEmpty(sysOrgs)){
+                            //获取sysOrgs 的属性id集合
+                            List<Long> cids = sysOrgs.stream().map(SysOrg::getId).collect(toList());
+                            //求cids和orgIds之间的交集
+                            List<Long> collect = cids.stream().filter(id -> orgIds.contains(id)).collect(toList());
+                            if(!collect.isEmpty()){
+                                ids.addAll(collect);
+                            }
+                        }
+                    }
+                }else{
+                    //该计划是只指定了机构类型的计划
+                    //获取orgList 机构树下的 机构类型
+                    for (SysOrgVO sysOrgVO : orgList) {
+                        List<SysOrg> sysOrgs = orgService.selectByOrgPathAndOrgType(sysOrgVO.getPath(), execOrgType, SecurityConstants.INNER);
+                        if(ObjectUtil.isNotEmpty(sysOrgs)){
+                            //获取sysOrgs 的属性id集合
+                            ids.addAll(sysOrgs.stream().map(SysOrg::getId).collect(toList()));
+                        }
+                    }
+                }
+                create(drillPlan, ids);
+                compensateLogService.buildLog(getBusinessPlanType(), true, orgIdList, drillPlan.getId(), drillPlan.getPlanName(), errorMsg);
                 return;
             }
-            List<CoreDrillPlan> reallyPlanIdList = findReallyPlanIdList(hsPlanIdList, hsOrgIdList);
-            boolean underHsOrgType = (boolean) map.get("underHsOrgType");
-            for (CoreDrillPlan plan : reallyPlanIdList) {
-                create(plan, underHsOrgType ? idList : null);
-            }
-            compensateLogService.buildLog(getBusinessPlanType(), false, orgIdList, drillPlan.getId(), drillPlan.getPlanName(), errorMsg);
-            return;
         }
+
         // 行社自建计划
         if (INVALID_ORG_TYPES.contains(orgTypeEnum)) {
             errorMsg = "orgIdList中传递机构信息错误!与计划信息不匹配";

+ 63 - 17
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingPlanServiceImpl.java

@@ -895,28 +895,74 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
 
         OrgTypeEnum orgTypeEnum = OrgTypeEnum.getOrgTypeEnum(typeList.get(0));
 
-        // 省联社创建的计划
-        if (checkIsParentPlan(trainingPlan.getId())) {
-            List<CoreEduTrainingPlan> allHsPlanList = getHsPlanList(trainingPlan);
-            if (ObjectUtil.isEmpty(allHsPlanList)) {
-                return;
-            }
+        /**
+         * 此处缺失逻辑判断,如果时创建执行机构时行社的任务,不会生成子任务
+         * 会判断此类计划是行社自建,导致出错。
+         */
+        Long createOrgId = trainingPlan.getCreateOrgId();
+        SysOrg sysOrg = orgService.selectSysOrgById(createOrgId, SecurityConstants.INNER);
+        Integer orgType = sysOrg.getType();
+        if (ObjectUtil.equal(orgType, OrgTypeEnum.SHEGN_LIAN_SHE.getCode())) {
+            // 省联社创建的计划
+            if (checkIsParentPlan(trainingPlan.getId())) {
+                List<CoreEduTrainingPlan> allHsPlanList = getHsPlanList(trainingPlan);
+                if (ObjectUtil.isEmpty(allHsPlanList)) {
+                    return;
+                }
+                Map<String, Object> map = getHsOrg(orgCacheList, orgList, orgTypeEnum);
+                List<Long> hsOrgIdList = ((List<SysOrgVO>) map.get("list")).stream().map(SysOrgVO::getId).collect(toList());
+                List<Long> hsPlanIdList = allHsPlanList.stream().map(CoreEduTrainingPlan::getId).collect(toList());
+                if (ObjectUtil.hasEmpty(hsPlanIdList, hsOrgIdList)) {
+                    return;
+                }
+                List<CoreEduTrainingPlan> reallyPlanIdList = findReallyPlanIdList(hsPlanIdList, hsOrgIdList);
+                boolean underHsOrgType = (boolean) map.get("underHsOrgType");
+                for (CoreEduTrainingPlan plan : reallyPlanIdList) {
+                    create(plan, underHsOrgType ? idList : null, threadPoolTaskExecutor);
+                }
+                compensateLogService.buildLog(getBusinessPlanType(), false, orgIdList, trainingPlan.getId(), trainingPlan.getPlanName(), errorMsg);
 
-            Map<String, Object> map = getHsOrg(orgCacheList, orgList, orgTypeEnum);
-            List<Long> hsPlanIdList = allHsPlanList.stream().map(CoreEduTrainingPlan::getId).collect(toList());
-            List<Long> hsOrgIdList = ((List<SysOrgVO>) map.get("list")).stream().map(SysOrgVO::getId).collect(toList());
-            if (ObjectUtil.hasEmpty(hsPlanIdList, hsOrgIdList)) {
+                return;
+            }else{
+                Integer execOrgType = trainingPlan.getExecOrgType();
+                List<Long> orgIds = coreEduTrainingPlanToExecOrgMapper.selectOrgIdByPlanId(trainingPlan.getId());
+                List<Long> ids = new ArrayList<>();
+                if(ObjectUtil.isNotEmpty(orgIds)){
+                    //该计划是指定了具体机构的计划
+                    //获取机构在 orgList子集机构
+                    for (SysOrgVO sysOrgVO : orgList) {
+                        List<SysOrg> sysOrgs = orgService.selectByOrgPathAndOrgType(sysOrgVO.getPath(), execOrgType, SecurityConstants.INNER);
+                        if(ObjectUtil.isNotEmpty(sysOrgs)){
+                            //获取sysOrgs 的属性id集合
+                            List<Long> cids = sysOrgs.stream().map(SysOrg::getId).collect(toList());
+                            //求cids和orgIds之间的交集
+                            List<Long> collect = cids.stream().filter(id -> orgIds.contains(id)).collect(toList());
+                            if(!collect.isEmpty()){
+                                ids.addAll(collect);
+                            }
+                        }
+                    }
+                }else{
+                    //该计划是只指定了机构类型的计划
+                    //获取orgList 机构树下的 机构类型
+                    for (SysOrgVO sysOrgVO : orgList) {
+                        List<SysOrg> sysOrgs = orgService.selectByOrgPathAndOrgType(sysOrgVO.getPath(), execOrgType, SecurityConstants.INNER);
+                        if(ObjectUtil.isNotEmpty(sysOrgs)){
+                           //获取sysOrgs 的属性id集合
+                            ids.addAll(sysOrgs.stream().map(SysOrg::getId).collect(toList()));
+                        }
+                    }
+                }
+                //没有子类计划的省联社计划
+                create(trainingPlan,ids,threadPoolTaskExecutor);
+                compensateLogService.buildLog(getBusinessPlanType(), false, orgIdList, trainingPlan.getId(), trainingPlan.getPlanName(), errorMsg);
                 return;
             }
-            List<CoreEduTrainingPlan> reallyPlanIdList = findReallyPlanIdList(hsPlanIdList, hsOrgIdList);
-            boolean underHsOrgType = (boolean) map.get("underHsOrgType");
-            for (CoreEduTrainingPlan plan : reallyPlanIdList) {
-                create(plan, underHsOrgType ? idList : null, threadPoolTaskExecutor);
-            }
-            compensateLogService.buildLog(getBusinessPlanType(), false, orgIdList, trainingPlan.getId(), trainingPlan.getPlanName(), errorMsg);
 
-            return;
         }
+
+
+
         // 行社自建计划
         if (INVALID_ORG_TYPES.contains(orgTypeEnum)) {
             errorMsg = "orgIdList中传递机构信息错误!与计划信息不匹配";

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/registerbook/service/impl/CoreRegisterBookPdfServiceImpl.java

@@ -87,6 +87,8 @@ public class CoreRegisterBookPdfServiceImpl extends ServiceImpl<CoreRegisterBook
             wrapper.between(CoreRegisterBookPdf::getDate, DateUtil.beginOfMonth(req.getDate()), DateUtil.endOfMonth(req.getDate()));
             wrapper.orderByDesc(CoreRegisterBookPdf::getDate);
         }
+
+        wrapper.orderByDesc(CoreRegisterBookPdf::getId);
         Page<CoreRegisterBookPdf> pageRequest = req.getPageRequest();
         Page<CoreRegisterBookPdf> page = coreRegisterBookPdfMapper.selectPage(pageRequest, wrapper);
         if (page.getRecords().size() > 0) {

+ 5 - 6
soc-modules/soc-modules-core/src/main/resources/bootstrap.yml

@@ -13,20 +13,19 @@ spring:
   cloud:
     nacos:
       discovery:
-        namespace: 4bb89334-98df-4ffc-904a-65bc848a8ea0
+        namespace: 7e29a19d-6b00-4918-9a79-8f80d15d2002
         # 服务注册地址
-        server-addr: 47.92.229.224:8848
+        server-addr: 10.87.11.105:8848
       config:
-        namespace: 4bb89334-98df-4ffc-904a-65bc848a8ea0
+        namespace: 7e29a19d-6b00-4918-9a79-8f80d15d2002
         # 配置中心地址
-        server-addr: 47.92.229.224:8848
+        server-addr: 10.87.11.105:8848
         # 配置文件格式
         file-extension: yml
         # 共享配置
         shared-configs:
           - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
-      username: nacos
-      password: nacos
+      # password: nacos
 logging:
   file:
     name: logs/${spring.application.name}/info.log

+ 20 - 1
soc-modules/soc-modules-core/src/main/resources/mapper/drill/CoreDrillDictionaryBranchMapper.xml

@@ -5,7 +5,26 @@
 <mapper namespace="com.xunmei.core.drill.mapper.CoreDrillDictionaryBranchMapper">
 
     <select id="selectPageData" resultType="com.xunmei.common.core.domain.drill.vo.CoreDrillDictionaryBranchPageVo">
-        select * from core_drill_dictionary_branch d
+        select
+        d.id,
+        d.drill_type,
+        d.drill_type_name,
+        d.drill_category,
+        d.drill_category_name,
+        d.drill_projects,
+        d.default_cause,
+        d.deleted,
+        d.create_by,
+        d.create_time,
+        d.update_by,
+        d.update_time,
+        d.org_id,
+        d.org_path,
+        o.short_name as org_name,
+        o.affiliated_area ,
+        o.affiliated_bank
+        from core_drill_dictionary_branch d
+        inner join sys_org o on d.org_id=o.id
         where d.deleted = 0
         <choose>
             <when test="request.checkSub==true">

+ 10 - 0
soc-modules/soc-modules-sms/src/main/java/com/xunmei/sms/service/SmsService.java

@@ -253,8 +253,18 @@ public class SmsService implements ISmsService {
         }
         boolean result = false;
         try {
+            //"RET_STATUS"	: Field {  type=FieldType[string]  length=1  scale=0  pin=false  value= {S} }
             String retStatus = repData.getStruct("SYS_HEAD")
                     .getField("RET_STATUS").strValue();
+            /**
+             *    "SYS_HEAD"	: CompositeData {
+             *        "RET"	: Array [1] {
+             *             0	: CompositeData {
+             *                "RET_CODE"	: Field {  type=FieldType[string]  length=30  scale=0  pin=false  value= {000000} }
+             *                "RET_MSG"	: Field {  type=FieldType[string]  length=512  scale=0  pin=false  value= {交易成功} }
+             *             }
+             *         }
+             */
             String retCode = repData.getStruct("SYS_HEAD").getArray("RET")
                     .getStruct(0).getField("RET_CODE").strValue();
             if ("S".equals(retStatus) && "000000".equals(retCode)) {

+ 4 - 2
soc-modules/soc-modules-sms/src/main/java/com/xunmei/sms/service/impl/SmsSendRecordServiceImpl.java

@@ -107,7 +107,8 @@ public class SmsSendRecordServiceImpl extends ServiceImpl<SmsSendRecordMapper, S
         record.setContentData(smsInfoVo.getBak3());
         record.setType(SmsNotifyType.getCode(smsInfoVo.getRetMsg()));
         record.setTypeText(smsInfoVo.getRetMsg());
-        record.setResult(result.get(AjaxResult.CODE_TAG).equals(String.valueOf(HttpStatus.SUCCESS)) ? "0" : "1");
+        int code = (int) result.get(AjaxResult.CODE_TAG);
+        record.setResult(code == HttpStatus.SUCCESS ? "0" : "1");
         record.setResultDescription(result.get(AjaxResult.MSG_TAG).toString());
         String temp =smsCompositeData == null ? StringUtil.EMPTY_STRING : smsCompositeData.toString();
         record.setReqDetail(temp);
@@ -135,7 +136,8 @@ public class SmsSendRecordServiceImpl extends ServiceImpl<SmsSendRecordMapper, S
         record.setContentData(smsInfoVo.getBak3());
         record.setType(SmsNotifyType.getCode(smsInfoVo.getRetMsg()));
         record.setTypeText(smsInfoVo.getRetMsg());
-        record.setResult(result.get(AjaxResult.CODE_TAG).equals(String.valueOf(HttpStatus.SUCCESS)) ? "0" : "1");
+        int code = (int) result.get(AjaxResult.CODE_TAG);
+        record.setResult(code == HttpStatus.SUCCESS ? "0" : "1");
         record.setResultDescription(result.get(AjaxResult.MSG_TAG).toString());
         record.setReqDetail(smsCompositeData.toString());
         record.setRespDetail(JSON.toJSONString(result));

+ 19 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysDeviceController.java

@@ -8,12 +8,15 @@ import java.util.stream.Collectors;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.context.AnalysisContext;
 import com.alibaba.excel.event.AnalysisEventListener;
+import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.R;
 import com.xunmei.common.core.vo.IdNameVo;
 import com.xunmei.common.security.annotation.InnerAuth;
+import com.xunmei.system.api.RemoteProtectionService;
 import com.xunmei.system.api.domain.SysDevice;
 import com.xunmei.system.api.domain.SysDictData;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.dto.ProtectionDTO;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
 import com.xunmei.system.service.ISysDictDataService;
 import com.xunmei.system.service.ISysDictTypeService;
@@ -57,6 +60,9 @@ public class SysDeviceController extends BaseController {
     @Autowired
     private ISysDictDataService sysDictDataService;
 
+    @Autowired
+    private RemoteProtectionService remoteProtectionService;
+
     /**
      * 查询【请填写功能名称】列表
      */
@@ -190,7 +196,6 @@ public class SysDeviceController extends BaseController {
         List<DeviceExport> list = new ArrayList<>();
         // 读取excel
         EasyExcel.read(multipartFileToFile(file), DeviceExport.class, new AnalysisEventListener<DeviceExport>() {
-
             @Override
             public void invoke(DeviceExport deviceExport, AnalysisContext analysisContext) {
                 list.add(deviceExport);
@@ -198,6 +203,7 @@ public class SysDeviceController extends BaseController {
 
             @Override
             public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+                List<ProtectionDTO> dtos = new ArrayList<>();
                 for (DeviceExport d : list) {
                     SysDevice sysDevice = new SysDevice();
                     BeanUtils.copyProperties(d, sysDevice);
@@ -256,11 +262,22 @@ public class SysDeviceController extends BaseController {
                         if (null != device) {
                             throw new RuntimeException("设备名称" + device.getDeviceName() + "已存在");
                         }
-                        sysDeviceService.insertSysDevice(sysDevice);
+                        ProtectionDTO protectionDTO = sysDeviceService.insertSysDeviceExcel(sysDevice);
+
+                        if(null != protectionDTO){
+                            dtos.add(protectionDTO);
+                        }
                     } else {
                         throw new RuntimeException("机构名称" + d.getOrgName() + "不存在");
                     }
                 }
+                if(!dtos.isEmpty()){
+                    for (ProtectionDTO dto : dtos) {
+                        remoteProtectionService.addByDevice(dto, SecurityConstants.INNER);
+                    }
+                }
+
+
             }
         }).sheet().doRead();
         return success();

+ 9 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysDeviceService.java

@@ -7,6 +7,7 @@ import java.util.List;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.system.api.domain.SysDevice;
+import com.xunmei.system.api.dto.ProtectionDTO;
 import com.xunmei.system.api.dto.SysDeviceInnerListDto;
 import com.xunmei.system.vo.area.HostVO;
 
@@ -62,6 +63,14 @@ public interface ISysDeviceService extends IService<SysDevice> {
      */
     int insertSysDevice(SysDevice sysDevice);
 
+    /**
+     * excel导入时插入
+     * @param sysDevice
+     * @return
+     */
+    ProtectionDTO insertSysDeviceExcel(SysDevice sysDevice);
+
+
     void downInChargeOfTemplate(HttpServletResponse response) throws IOException;
 
     /**

+ 33 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysDeviceServiceImpl.java

@@ -253,7 +253,7 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
 
     /**
      * 新增【请填写功能名称】
-     *
+     * 该方法只适合单个新增,批量导入时,会导致报警主机新增时数据报错
      * @param sysDevice 【请填写功能名称】
      * @return 结果
      */
@@ -268,7 +268,9 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
             throw new RuntimeException("设备名称重复");
         }
         int insert = sysDeviceMapper.insert(sysDevice);
-        //新增防区只有报警主机
+        /**
+         * 这块逻辑代码,上层出错时,会导致新增设备出错
+         */
         if (sysDevice.getDeviceType().equals("1")) {
             ProtectionDTO protectionDTO = new ProtectionDTO();
             protectionDTO.setName(sysDevice.getDeviceName());
@@ -284,6 +286,35 @@ public class SysDeviceServiceImpl extends ServiceImpl<SysDeviceMapper, SysDevice
     }
 
     @Override
+    public ProtectionDTO insertSysDeviceExcel(SysDevice sysDevice) {
+        sysDevice.setCreateTime(DateUtils.getNowDate());
+        sysDevice.setCreateBy(SecurityUtils.getUsername());
+        SysOrg sysOrg = orgService.selectSysOrgById(sysDevice.getOrgId());
+        sysDevice.setOrgName(sysOrg.getShortName());
+        SysDevice sysDevice1 = this.checkName(sysDevice.getOrgId(), sysDevice.getDeviceName());
+        if (null != sysDevice1) {
+            throw new RuntimeException("设备名称重复");
+        }
+        int insert = sysDeviceMapper.insert(sysDevice);
+        /**
+         * 这块逻辑代码,上层出错时,会导致新增设备出错
+         */
+        if (sysDevice.getDeviceType().equals("1")) {
+            ProtectionDTO protectionDTO = new ProtectionDTO();
+            protectionDTO.setName(sysDevice.getDeviceName());
+            protectionDTO.setOrgPath(sysOrg.getPath());
+            protectionDTO.setAllHour(0);
+            protectionDTO.setDeviceId(sysDevice.getId());
+            protectionDTO.setOrgId(sysOrg.getId());
+            protectionDTO.setOrgName(sysOrg.getShortName());
+            protectionDTO.setInBook(sysDevice.getInBook());
+            return protectionDTO;
+
+        }
+        return null;
+    }
+
+    @Override
     public void downInChargeOfTemplate(HttpServletResponse response) throws IOException {
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");

+ 4 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysWorkTimeServiceImpl.java

@@ -98,6 +98,9 @@ public class SysWorkTimeServiceImpl extends ServiceImpl<SysWorkTimeMapper, SysWo
         if (sysWorkTime.getOrgType() != null) {
             query.eq("o.type", sysWorkTime.getOrgType());
         }
+        if(sysWorkTime.getIsDuty() != null){
+            query.eq("t.is_duty", sysWorkTime.getIsDuty());
+        }
         //下穿
         if (sysWorkTime.getCheckSub()) {
             query.like("o.path", sysWorkTime.getOrgId());
@@ -110,6 +113,7 @@ public class SysWorkTimeServiceImpl extends ServiceImpl<SysWorkTimeMapper, SysWo
         if (sysWorkTime.getRange() != null && sysWorkTime.getRange().length > 1) {
             query.between("t.ymd_date", extractDate(sysWorkTime.getRange()[0].toString(), "EEE MMM dd HH:mm:ss zzz yyyy"), extractDate(sysWorkTime.getRange()[1].toString(), "EEE MMM dd HH:mm:ss zzz yyyy"));
         }
+        query.orderByDesc("id");
         query.orderByDesc("ymd_date");
 
         //获取数据

+ 1 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysWorkTimeSetServiceImpl.java

@@ -150,6 +150,7 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
         if (sysWorkTimeSet.getOrgType() != null) {
             query.eq("o.type", sysWorkTimeSet.getOrgType());
         }
+        query.orderByDesc("t.id");
         query.orderByDesc
                 ("t.effective_date");
         //时间范围查询