Pārlūkot izejas kodu

Merge branch 'develop' of http://132.232.206.88:3000/lift-manager/lift-server into feature-bieao

别傲 5 gadi atpakaļ
vecāks
revīzija
6219fb9642

+ 1 - 2
lift-batch-service/src/main/java/cn/com/ty/lift/batch/config/AppletDataSchedulingConfig.java

@@ -3,7 +3,6 @@ package cn.com.ty.lift.batch.config;
 import cn.com.ty.lift.batch.applet.util.DataInitUtil;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
 
 import javax.annotation.Resource;
 
@@ -20,7 +19,7 @@ public class AppletDataSchedulingConfig {
     private DataInitUtil dataInitUtil;
 
     //定时刷新redis中的数据,每天凌晨两点执行
-    @Scheduled(cron = "0 0 2 * * ?")
+    //@Scheduled(cron = "0 0 2 * * ?")
     public void flushRedisCacheData(){
         dataInitUtil.initAppletData();
     }

+ 10 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/common/CommonController.java

@@ -175,4 +175,14 @@ public class CommonController {
         common.setMaintain(maintain);
         return RestResponse.success(common);
     }
+
+    @PostMapping("propertyCount")
+    public RestResponse propertyCount(@RequestBody CommonRequest request) {
+        long repair = emergencyRepairService.countDoingByUser(request);
+        long maintain = maintenancePlanService.countWaitingMaintenanceByUser(request);
+        CommonResponse common = new CommonResponse();
+        common.setRepair(repair);
+        common.setMaintain(maintain);
+        return RestResponse.success(common);
+    }
 }

+ 2 - 2
lift-business-service/src/main/java/cn/com/ty/lift/business/emergency/service/EmergencyRepairService.java

@@ -312,7 +312,7 @@ public class EmergencyRepairService extends ServiceImpl<EmergencyRepairMapper, E
         if (!re) {
             return RestResponse.fail("修改急修失败,请稍后重试");
         }
-        boolean er = erRecordCostService.saveBatch(erRecordCosts);
+        boolean er = erRecordCostService.saveOrUpdateBatch(erRecordCosts);
         if (er) {
             List<EmergencyHistory> histories = new ArrayList<>();
             for (ErRecordCost erRecordCost : erRecordCosts) {
@@ -326,7 +326,7 @@ public class EmergencyRepairService extends ServiceImpl<EmergencyRepairMapper, E
                 history.setOperateDate(LocalDateTime.now());
                 histories.add(history);
             }
-            boolean his = emergencyHistoryService.saveBatch(histories, histories.size());
+            boolean his = emergencyHistoryService.saveOrUpdateBatch(histories, histories.size());
             if(his){
                 return RestResponse.success(true);
             }else{

+ 75 - 50
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/service/MaintenanceRecordService.java

@@ -58,12 +58,12 @@ import java.util.stream.Collectors;
 public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMapper, MaintenanceRecord> {
 
 
-    private LiftService            liftService;
-    private MtRecordCostService    mtRecordCostService;
-    private MtRecordImgService     mtRecordImgService;
+    private LiftService liftService;
+    private MtRecordCostService mtRecordCostService;
+    private MtRecordImgService mtRecordImgService;
     private MaintenancePlanService maintenancePlanService;
-    private EvaluationService      evaluationService;
-    private ProjectService         projectService;
+    private EvaluationService evaluationService;
+    private ProjectService projectService;
     private ProjectLiftRelevanceService projectLiftRelevanceService;
 
     private Gson gson;
@@ -91,7 +91,7 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
      * @description 根据电梯id获取经纬度
      * @date 2020/1/13 11:37 上午
      */
-    public String getCoordinate(Long id){
+    public String getCoordinate(Long id) {
         Lift lift = liftService.getById(id);
         return Optional.ofNullable(lift).map(Lift::getCoordinate).orElse(null);
     }
@@ -110,7 +110,7 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
     }
 
     /**
-     * @param planId 计划id
+     * @param planId      计划id
      * @param mtCompanyId 公司id
      * @return 是否存在
      * @description 根据计划id和公司id查询是否有保养记录
@@ -253,7 +253,7 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
 
         record.setStatus(CommonEnum.MaintenanceRecordStatus.COMPLETE.getCode());
         boolean result = updateById(record);
-        if (!result){
+        if (!result) {
             return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
         }
         log.info("维保记录:" + gson.toJson(oldRecord));
@@ -264,7 +264,7 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
         plan.setWorkDate(LocalDate.now());
         //修改保养计划为完成
         boolean planResult = maintenancePlanService.updateById(plan);
-        if (!planResult){
+        if (!planResult) {
             rollback();
             return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
         }
@@ -277,7 +277,7 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
             imageList.add(image);
         });
         boolean ret = mtRecordImgService.saveBatch(imageList, imageList.size());
-        if (!ret){
+        if (!ret) {
             rollback();
             return RestResponse.fail(MessageUtils.get("msg.modify.fail"));
         }
@@ -312,50 +312,71 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
 
     /**
      * 根据条件分页查询维保-日常保养
-     * @author wcz
+     *
      * @param request MtRecordRequest
      * @return IPage<MtRecordResponse>
+     * @author wcz
      */
-    public IPage<MtRecordResponse> pageRecordByCondition(MtRecordRequest request){
-        return baseMapper.pageRecordByCondition(request.getPage(),request);
+    public IPage<MtRecordResponse> pageRecordByCondition(MtRecordRequest request) {
+        return baseMapper.pageRecordByCondition(request.getPage(), request);
     }
 
     /**
      * 根据维保公司统计维保-日常保养
-     * @author wcz
+     *
      * @param request MtRecordRequest
      * @return long
+     * @author wcz
      */
-    public long countRecordByCondition(MtRecordRequest request){
+    public long countRecordByCondition(MtRecordRequest request) {
         return baseMapper.countRecordByCondition(request);
     }
 
     /**
      * 日常保养-保养单:根据id查询,带关联信息
-     * @author wcz
+     *
      * @param request MtRecordRequest
      * @return boolean
+     * @author wcz
      */
-    public MtRecordResponse infoById(MtRecordRequest request){
+    public MtRecordResponse infoById(MtRecordRequest request) {
         return baseMapper.infoById(request);
     }
 
-    private void rollback(){
+    private void rollback() {
         //强制手动事务回滚
         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
     }
 
     /**
      * 点击填写保养单,带收费项,新增record
-     * @author wcz
+     *
      * @param entity MaintenanceRecord
      * @return boolean
+     * @author wcz
      */
     @Transactional(rollbackFor = Exception.class)
-    public RestResponse tofill(MaintenanceRecord entity){
+    public RestResponse tofill(MaintenanceRecord entity) {
         //总计 partsCost, manCost, 拼接sparepart
         List<MtRecordCost> mtRecordCosts = entity.getMtRecordCosts();
-        if(IterUtil.isNotEmpty(mtRecordCosts)){
+        //修复空指针异常,赋值默认值
+        ArrayList<MtRecordCost> removeList = new ArrayList<>();
+        for (MtRecordCost mtRecordCost : mtRecordCosts) {
+            if (mtRecordCost.getSparepart() == null || "".equals(mtRecordCost.getSparepart())) {
+                removeList.add(mtRecordCost);
+                continue;
+            }
+            if (mtRecordCost.getManCost() == null) {
+                mtRecordCost.setManCost(new BigDecimal("0.00"));
+            }
+            if (mtRecordCost.getPartsCost() == null) {
+                mtRecordCost.setPartsCost(new BigDecimal("0.00"));
+            }
+        }
+        //将未设置零配件名字的从配件列表中移除
+        mtRecordCosts.retainAll(removeList);
+
+        if (IterUtil.isNotEmpty(mtRecordCosts)) {
             BigDecimal partsCost = mtRecordCosts.stream().map(MtRecordCost::getPartsCost).reduce(BigDecimal.ZERO, (m1, m2) -> m1.add(m2));
             BigDecimal manCost = mtRecordCosts.stream().map(MtRecordCost::getManCost).reduce(BigDecimal.ZERO, (m1, m2) -> m1.add(m2));
             String sparepart = mtRecordCosts.stream().map(MtRecordCost::getSparepart).collect(Collectors.joining(";"));
@@ -364,31 +385,31 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
             entity.setSparepart(sparepart);
         }
         boolean mr = saveOrUpdate(entity);
-        if(!mr){
+        if (!mr) {
             return RestResponse.fail("修改保养单失败,请稍后重试");
         }
         //如果没有收费项
-        if(IterUtil.isEmpty(mtRecordCosts)){
+        if (IterUtil.isEmpty(mtRecordCosts)) {
             return RestResponse.success(entity.getId());
         }
-        mtRecordCosts.forEach(cost ->{
+        mtRecordCosts.forEach(cost -> {
             cost.setMtRecordId(entity.getId());
         });
         boolean rc = mtRecordCostService.saveOrUpdateBatch(mtRecordCosts, mtRecordCosts.size());
-        if(!rc){
+        if (!rc) {
             //强制手动事务回滚
             rollback();
             return RestResponse.fail("修改保养收费项失败,请稍后重试");
         }
         MaintenancePlan plan = maintenancePlanService.getById(entity.getMtPlanId());
-        if(Objects.isNull(plan)){
+        if (Objects.isNull(plan)) {
             return RestResponse.success(entity.getId());
         }
         plan.setWorkDate(LocalDate.now());
         boolean mp = maintenancePlanService.updateById(plan);
-        if(mp){
+        if (mp) {
             return RestResponse.success(entity.getId());
-        }else{
+        } else {
             //强制手动事务回滚
             rollback();
             return RestResponse.fail("修改保养计划执行时间失败,请稍后重试");
@@ -397,18 +418,19 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
 
     /**
      * 填写保养单-确认,带维保项和现场图片 ,修改record
-     * @author wcz
+     *
      * @param entity MaintenanceRecord
-     * @param imgs List<String>
+     * @param imgs   List<String>
      * @return boolean
+     * @author wcz
      */
     @Transactional(rollbackFor = Exception.class)
-    public RestResponse fill(MaintenanceRecord entity,List<String> imgs){
+    public RestResponse fill(MaintenanceRecord entity, List<String> imgs) {
         boolean mr = saveOrUpdate(entity);
-        if(!mr){
+        if (!mr) {
             return RestResponse.fail("修改保养单失败,请稍后重试");
         }
-        if(IterUtil.isEmpty(imgs)){
+        if (IterUtil.isEmpty(imgs)) {
             return RestResponse.success(true);
         }
         List<MtRecordImg> mtRecordImgs = new ArrayList<>();
@@ -419,10 +441,10 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
             mri.setSort(i);
             mtRecordImgs.add(mri);
         }
-        boolean mi = mtRecordImgService.saveBatch(mtRecordImgs,mtRecordImgs.size());
-        if(mi){
+        boolean mi = mtRecordImgService.saveBatch(mtRecordImgs, mtRecordImgs.size());
+        if (mi) {
             return RestResponse.success(true);
-        }else{
+        } else {
             //强制手动事务回滚
             rollback();
             return RestResponse.fail("修改保养单收费项失败,请稍后重试");
@@ -432,27 +454,28 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
     /**
      * 通过:app端提交的保养单点通过后生成正式保养单  status:-1 -> 2
      * 清除超期: 超期的计划修改status ->1,workDate -> now
-     * @author wcz
+     *
      * @param entity MaintenanceRecord
      * @return boolean
+     * @author wcz
      */
     @Transactional(rollbackFor = Exception.class)
-    public RestResponse pass(MaintenanceRecord entity){
+    public RestResponse pass(MaintenanceRecord entity) {
         boolean mr = updateById(entity);
-        if(!mr){
+        if (!mr) {
             return RestResponse.fail("修改保养单失败,请稍后重试");
         }
         //清除超期
         MaintenancePlan plan = maintenancePlanService.getById(entity.getMtPlanId());
-        if(Objects.isNull(plan)){
+        if (Objects.isNull(plan)) {
             return RestResponse.success(true);
         }
         plan.setStatus(1);
         plan.setWorkDate(LocalDate.now());
         boolean mp = maintenancePlanService.updateById(plan);
-        if(mp){
+        if (mp) {
             return RestResponse.success(true);
-        }else{
+        } else {
             //强制手动事务回滚
             rollback();
             return RestResponse.fail("修改维保计划失败,请稍后重试");
@@ -461,21 +484,22 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
 
     /**
      * 维保记录评价,同时更新维保记录状态 status -> 3
-     * @author wcz
+     *
      * @param record MaintenanceRecord
      * @param entity Evaluation
      * @return boolean
+     * @author wcz
      */
     @Transactional(rollbackFor = Exception.class)
-    public RestResponse evaluate(MaintenanceRecord record, Evaluation entity){
+    public RestResponse evaluate(MaintenanceRecord record, Evaluation entity) {
         boolean ev = evaluationService.save(entity);
-        if(!ev){
+        if (!ev) {
             return RestResponse.fail("添加评价失败,请稍后重试");
         }
         boolean mr = updateById(record);
-        if(mr){
+        if (mr) {
             return RestResponse.success(true);
-        }else{
+        } else {
             //强制手动事务回滚
             rollback();
             return RestResponse.fail("更新维保记录失败,请稍后重试");
@@ -484,10 +508,11 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
 
     /**
      * 删除维保收费项,汇总金额,拼接sparepart
-     * @author wcz
-     * @param record MaintenanceRecord
+     *
+     * @param record       MaintenanceRecord
      * @param mtRecordCost MtRecordCost
      * @return boolean
+     * @author wcz
      */
     @Transactional(rollbackFor = Exception.class)
     public RestResponse deleteCost(MaintenanceRecord record, MtRecordCost mtRecordCost) {
@@ -516,7 +541,7 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
         }
     }
 
-    public IPage<MtRecordResponse> pageByLift(MtRecordRequest request){
+    public IPage<MtRecordResponse> pageByLift(MtRecordRequest request) {
         return baseMapper.pageByLift(request.getPage(), request);
     }
 }

+ 4 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/service/PropertyMaintenanceService.java

@@ -32,8 +32,11 @@ public class PropertyMaintenanceService {
         }
         log.info(planNums.toString());
         List<PropertyCalendarResponse> calendar = new ArrayList<>();
-        //循环每日,每种状态的维保计划
+        //循环每日,每种状态的维保计划,计划超期状态不返回数据库的-1,返回3
         for (MaintenancePlanMonthTaskNum planNum : planNums) {
+            if (planNum.getStatus().equals(-1)) {
+                planNum.setStatus(3);
+            }
             numToCalendar(calendar, planNum);
         }
         return RestResponse.success(calendar);

+ 3 - 1
lift-push/src/main/resources/application.yml

@@ -1,11 +1,13 @@
 server:
   port: 20233
+  tomcat:
+    basedir: /Users/huangyuan/application/tomcat/data/tomcat_temp
 
 spring:
   application:
     name: lift-push-service
   profiles:
-    active: prod
+    active: test
   datasource:
     hikari:
       max-lifetime: 1200000 # default: 1800000

+ 2 - 1
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/LoginService.java

@@ -464,7 +464,8 @@ public class LoginService implements ILoginService {
         //设置用户公司id
         userInfoMap.put(ApiConstants.CURRENT_COMPANY_ID, userResponse.getMaintenanceCompany().getId());
         //设置用户菜单信息
-        userInfoMap.put(ApiConstants.CURRENT_PERMISSION_URL, menuService.menuToUrl(userResponse.getMenus()));
+        userInfoMap.put(ApiConstants.CURRENT_PERMISSION_URL, menuService.menuToUrl(ProjectUtils
+                .deepCopy(userResponse.getMenus())));
         putUserInfoToRedis(userRequest, userResponse, userInfoMap, mobileUserInfo);
     }
 

+ 10 - 7
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/RoleMenuService.java

@@ -13,6 +13,7 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author huangyuan
@@ -54,15 +55,17 @@ public class RoleMenuService extends ServiceImpl<RoleMenuMapper, RoleMenu> imple
     @Override
     public List<Menu> getMenuTree(Long roleId) {
         List<RoleMenu> roleMenuList = this.list(new QueryWrapper<RoleMenu>()
-            .eq("role_id", roleId)
+                .eq("role_id", roleId)
         );
-        List<Long> menuIds = ProjectUtils.getAttrList(roleMenuList, "menuId", null);
-        if(menuIds != null && menuIds.size() > 0){
-            //获取所有菜单
-            List<Menu> menuList = (List<Menu>) menuService.listByIds(menuIds);
-            return menuService.getMenuTree(menuList);
+        if (roleMenuList != null && roleMenuList.size() > 0) {
+            List<Long> menuIds = roleMenuList.stream().map(RoleMenu::getMenuId).collect(Collectors.toList());
+            if (menuIds.size() > 0) {
+                //获取所有菜单
+                List<Menu> menuList = (List<Menu>) menuService.listByIds(menuIds);
+                //将菜单转化为树
+                return menuService.getMenuTree(menuList);
+            }
         }
-        //将菜单转化为树
         return null;
     }
 }