无关风月
3 天以前 c3a11538b96aeac198fbaa467210ef8754773ad1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetHouseInspectionItemController.java
@@ -6,7 +6,6 @@
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
@@ -15,30 +14,44 @@
import com.ruoyi.common.core.domain.entity.TDept;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.WebUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.AddAssetHouseInspection;
import com.ruoyi.system.dto.AddAssetRepairRequestDTO;
import com.ruoyi.system.export.AssetHouseInspectionImport;
import com.ruoyi.system.model.*;
import com.ruoyi.system.model.AssetHouseInspectionDetail;
import com.ruoyi.system.model.AssetHouseInspectionItem;
import com.ruoyi.system.model.AssetHouseInspectionRecord;
import com.ruoyi.system.model.AssetMain;
import com.ruoyi.system.model.AssetPropertyExt;
import com.ruoyi.system.model.AssetType;
import com.ruoyi.system.query.AssetHouseInspectionRecordListQuery;
import com.ruoyi.system.query.AssetRepairRequestListQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.service.AssetHouseInspectionDetailService;
import com.ruoyi.system.service.AssetHouseInspectionItemService;
import com.ruoyi.system.service.AssetHouseInspectionRecordService;
import com.ruoyi.system.service.AssetMainService;
import com.ruoyi.system.service.AssetPropertyExtService;
import com.ruoyi.system.service.AssetTypeService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.TDeptService;
import com.ruoyi.system.vo.AssetHouseInspectionVO;
import com.ruoyi.system.vo.AssetRepairRequestVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
@@ -75,6 +88,7 @@
    private TDeptService deptService;
    @Autowired
    private AssetMainService assetMainService;
    @Autowired
    private AssetTypeService assetTypeService;
    @Autowired
@@ -120,22 +134,41 @@
        String deptId = tokenService.getLoginUser().getDeptId();
        TDept dept = deptService.getById(tokenService.getLoginUser().getDeptId());
        List<Integer> deptIds = deptService.getAllSubDeptIds(deptId);
        AssetType assetType = assetTypeService.lambdaQuery().like(AssetType::getTypeName, "不动").
        AssetType assetType = assetTypeService.lambdaQuery().like(AssetType::getTypeName, "房屋").
                last("limit 1").one();
        if (dept.getDeptName().contains("资产管理")){
        Map<Integer, String> map = assetPropertyExtService.lambdaQuery().isNotNull(AssetPropertyExt::getRoomNumber).list()
                .stream().collect(Collectors.toMap(AssetPropertyExt::getAssetMainId, AssetPropertyExt::getRoomNumber));
        Long userId = tokenService.getLoginUser().getUserId();
        if (!SecurityUtils.isAdmin(userId)) {
            if (dept.getDeptName().contains("资产管理") || dept.getDeptName().contains("董事长") || dept.getDeptName().contains("总经理")) {
                List<AssetMain> list = assetMainService.lambdaQuery()
                        .eq(AssetMain::getAssetTypeId, assetType.getId())
                        .list();
                for (AssetMain assetMain : list) {
                    assetMain.setRoomNumber(map.get(assetMain.getId()));
                }
                return R.ok(list);
            } else {
                if (deptIds.isEmpty()) {
                    return R.ok(new ArrayList<>());
                } else {
                    List<AssetMain> list = assetMainService.lambdaQuery()
                            .eq(AssetMain::getAssetTypeId, assetType.getId())
                            .in(AssetMain::getOwnershipDeptId, deptIds).list();
                    for (AssetMain assetMain : list) {
                        assetMain.setRoomNumber(map.get(assetMain.getId()));
                    }
                    return R.ok(list);
                }
            }
        }else{
            List<AssetMain> list = assetMainService.lambdaQuery()
                    .eq(AssetMain::getAssetTypeId, assetType.getId())
                    .list();
            return R.ok(list);
        }else{
            if (deptIds.isEmpty()){
                return R.ok(new ArrayList<>());
            }else{
                List<AssetMain> list = assetMainService.lambdaQuery()
                        .eq(AssetMain::getAssetTypeId, assetType.getId())
                        .in(AssetMain::getOwnershipDeptId, deptIds).list();
                return R.ok(list);
            }
                    for (AssetMain assetMain : list) {
                        assetMain.setRoomNumber(map.get(assetMain.getId()));
                    }
                    return R.ok(list);
        }
    }
    @ApiOperation(value = "巡检子项树状结构")
@@ -269,6 +302,7 @@
                e.printStackTrace();
            }
        }
    }
    @Log(title = "房屋巡检导入", businessType = BusinessType.INSERT)
@@ -328,7 +362,9 @@
                assetHouseInspectionRecord.setRoomNumber(assetPropertyExt.getRoomNumber());
            }
            if (StringUtils.hasLength(assetHouseInspectionImport.getInspectionDate())){
                LocalDate parse = LocalDate.parse(assetHouseInspectionImport.getInspectionDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
                String s = assetHouseInspectionImport.getInspectionDate().replaceAll("\\.", "-");
                String s1 = assetHouseInspectionImport.getInspectionDate().replaceAll("/", "-");
                LocalDate parse = LocalDate.parse(s1, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
                assetHouseInspectionRecord.setInspectionDate(parse);
            }else{
                result.append("未填写巡检日期:[", "未填写巡检日期"+"]");
@@ -345,6 +381,7 @@
            assetHouseInspectionDetail.setRemark(assetHouseInspectionImport.getHouseCloseStatus());
            if (assetHouseInspectionImport.getHouseCloseStatus().equals("正常")){
                assetHouseInspectionDetail.setInspectionResult(true);
                assetHouseInspectionRecord.setHouseCloseStatus("正常");
            }else{
                assetHouseInspectionDetail.setInspectionResult(false);
            }
@@ -352,14 +389,13 @@
            String waterStatus1 = assetHouseInspectionImport.getWaterStatus1();
            String waterStatus2 = assetHouseInspectionImport.getWaterStatus2();
            String waterStatus3 = assetHouseInspectionImport.getWaterStatus3();
            assetHouseInspectionRecord.setWaterElectronicGasCloseStatus("正常");
            AssetHouseInspectionDetail assetHouseInspectionDetailWatter1 = new AssetHouseInspectionDetail();
            assetHouseInspectionDetailWatter1.setInspectionItemId(3);
            assetHouseInspectionDetailWatter1.setItemName("水电气表关闭情况");
            assetHouseInspectionDetailWatter1.setSubItemId(4);
            assetHouseInspectionDetailWatter1.setSubItemName("水表关闭情况");
            assetHouseInspectionDetailWatter1.setRemark(assetHouseInspectionImport.getWaterStatus1());
            assetHouseInspectionDetails.add(assetHouseInspectionDetailWatter1);
            AssetHouseInspectionDetail assetHouseInspectionDetailWatter2 = new AssetHouseInspectionDetail();
            assetHouseInspectionDetailWatter2.setInspectionItemId(3);
@@ -367,7 +403,6 @@
            assetHouseInspectionDetailWatter2.setSubItemId(5);
            assetHouseInspectionDetailWatter2.setSubItemName("气表关闭情况");
            assetHouseInspectionDetailWatter2.setRemark(assetHouseInspectionImport.getWaterStatus2());
            assetHouseInspectionDetails.add(assetHouseInspectionDetailWatter2);
            AssetHouseInspectionDetail assetHouseInspectionDetailWatter3 = new AssetHouseInspectionDetail();
            assetHouseInspectionDetailWatter3.setInspectionItemId(3);
@@ -375,10 +410,11 @@
            assetHouseInspectionDetailWatter3.setSubItemId(6);
            assetHouseInspectionDetailWatter3.setSubItemName("电表关闭情况");
            assetHouseInspectionDetailWatter3.setRemark(assetHouseInspectionImport.getWaterStatus3());
            assetHouseInspectionDetails.add(assetHouseInspectionDetailWatter3);
            if (waterStatus1.equals("正常")&&waterStatus2.equals("正常")&&waterStatus3.equals("正常")){
                assetHouseInspectionDetailWatter1.setInspectionResult(true);
                assetHouseInspectionDetailWatter2.setInspectionResult(true);
                assetHouseInspectionDetailWatter3.setInspectionResult(true);
                assetHouseInspectionRecord.setWaterElectronicGasCloseStatus("正常");
            }else{
                    StringBuilder stringBuilder = new StringBuilder();
                    if (!waterStatus1.equals("正常")){
@@ -404,6 +440,10 @@
                    }
                    assetHouseInspectionRecord.setInnerStatus(stringBuilder.toString());
            }
            assetHouseInspectionDetails.add(assetHouseInspectionDetailWatter1);
            assetHouseInspectionDetails.add(assetHouseInspectionDetailWatter2);
            assetHouseInspectionDetails.add(assetHouseInspectionDetailWatter3);
            String innerStatus1 = assetHouseInspectionImport.getInnerStatus1();
            String innerStatus2 = assetHouseInspectionImport.getInnerStatus2();
            String innerStatus3 = assetHouseInspectionImport.getInnerStatus3();
@@ -414,7 +454,6 @@
            assetHouseInspectionDetailInner1.setSubItemId(8);
            assetHouseInspectionDetailInner1.setSubItemName("墙壁漏水情况");
            assetHouseInspectionDetailInner1.setRemark(assetHouseInspectionImport.getWaterStatus1());
            assetHouseInspectionDetails.add(assetHouseInspectionDetailInner1);
            AssetHouseInspectionDetail assetHouseInspectionDetailInner2 = new AssetHouseInspectionDetail();
            assetHouseInspectionDetailInner2.setInspectionItemId(7);
@@ -422,7 +461,6 @@
            assetHouseInspectionDetailInner2.setSubItemId(9);
            assetHouseInspectionDetailInner2.setSubItemName("设备损坏情况");
            assetHouseInspectionDetailInner2.setRemark(assetHouseInspectionImport.getWaterStatus2());
            assetHouseInspectionDetails.add(assetHouseInspectionDetailInner2);
            AssetHouseInspectionDetail assetHouseInspectionDetailInner3 = new AssetHouseInspectionDetail();
            assetHouseInspectionDetailInner3.setInspectionItemId(7);
@@ -430,7 +468,6 @@
            assetHouseInspectionDetailInner3.setSubItemId(10);
            assetHouseInspectionDetailInner3.setSubItemName("墙壁掉灰情况");
            assetHouseInspectionDetailInner3.setRemark(assetHouseInspectionImport.getWaterStatus3());
            assetHouseInspectionDetails.add(assetHouseInspectionDetailInner3);
            AssetHouseInspectionDetail assetHouseInspectionDetailInner4 = new AssetHouseInspectionDetail();
            assetHouseInspectionDetailInner4.setInspectionItemId(7);
@@ -438,9 +475,13 @@
            assetHouseInspectionDetailInner4.setSubItemId(11);
            assetHouseInspectionDetailInner4.setSubItemName("地瓷砖开裂情况");
            assetHouseInspectionDetailInner4.setRemark(assetHouseInspectionImport.getWaterStatus3());
            assetHouseInspectionDetails.add(assetHouseInspectionDetailInner4);
            if (innerStatus1.equals("正常")&&innerStatus2.equals("正常")&&innerStatus3.equals("正常")&&innerStatus4.equals("正常")){
                assetHouseInspectionRecord.setInnerStatus("正常");
                assetHouseInspectionDetailInner4.setInspectionResult(true);
                assetHouseInspectionDetailInner3.setInspectionResult(true);
                assetHouseInspectionDetailInner2.setInspectionResult(true);
                assetHouseInspectionDetailInner1.setInspectionResult(true);
            }else{
                StringBuilder stringBuilder = new StringBuilder();
                if (!innerStatus1.equals("正常")){
@@ -451,27 +492,32 @@
                }
                if (!innerStatus2.equals("正常")){
                    stringBuilder.append(innerStatus2).append("|");
                    assetHouseInspectionDetailInner1.setInspectionResult(false);
                    assetHouseInspectionDetailInner2.setInspectionResult(false);
                }else{
                    assetHouseInspectionDetailInner1.setInspectionResult(true);
                    assetHouseInspectionDetailInner2.setInspectionResult(true);
                }
                if (!innerStatus3.equals("正常")){
                    stringBuilder.append(innerStatus3).append("|");
                    assetHouseInspectionDetailInner1.setInspectionResult(false);
                    assetHouseInspectionDetailInner3.setInspectionResult(false);
                }else{
                    assetHouseInspectionDetailInner1.setInspectionResult(true);
                    assetHouseInspectionDetailInner3.setInspectionResult(true);
                }
                if (!innerStatus4.equals("正常")){
                    stringBuilder.append(innerStatus4).append("|");
                    assetHouseInspectionDetailInner1.setInspectionResult(false);
                    assetHouseInspectionDetailInner4.setInspectionResult(false);
                }else{
                    assetHouseInspectionDetailInner1.setInspectionResult(true);
                    assetHouseInspectionDetailInner4.setInspectionResult(true);
                }
                if (stringBuilder.length()>0){
                    stringBuilder.deleteCharAt(stringBuilder.length()-1);
                }
                assetHouseInspectionRecord.setInnerStatus(stringBuilder.toString());
            }
            assetHouseInspectionDetails.add(assetHouseInspectionDetailInner4);
            assetHouseInspectionDetails.add(assetHouseInspectionDetailInner3);
            assetHouseInspectionDetails.add(assetHouseInspectionDetailInner2);
            assetHouseInspectionDetails.add(assetHouseInspectionDetailInner1);
            assetHouseInspectionRecord.setRemarks(assetHouseInspectionImport.getRemark());
            assetHouseInspectionRecordService.save(assetHouseInspectionRecord);
            assetHouseInspectionDetails.add(assetHouseInspectionDetail);
@@ -481,6 +527,9 @@
            assetHouseInspectionDetailService.saveBatch(assetHouseInspectionDetails);
        }
        if(!result.isEmpty()){
            return R.fail(result.toString());
        }
        return R.ok();
    }