From f9885337a9dda91e62693e1ce620a0e8e9a976ae Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期五, 13 五月 2022 16:27:50 +0800
Subject: [PATCH] 优化查询楼栋单元功能

---
 service-community/src/main/java/com/java110/community/api/RoomRenovationApi.java |  558 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 545 insertions(+), 13 deletions(-)

diff --git a/service-community/src/main/java/com/java110/community/api/RoomRenovationApi.java b/service-community/src/main/java/com/java110/community/api/RoomRenovationApi.java
old mode 100644
new mode 100755
index 71b028d..e30987f
--- a/service-community/src/main/java/com/java110/community/api/RoomRenovationApi.java
+++ b/service-community/src/main/java/com/java110/community/api/RoomRenovationApi.java
@@ -5,18 +5,58 @@
 import com.java110.community.bmo.roomRenovation.IGetRoomRenovationBMO;
 import com.java110.community.bmo.roomRenovation.ISaveRoomRenovationBMO;
 import com.java110.community.bmo.roomRenovation.IUpdateRoomRenovationBMO;
+import com.java110.community.bmo.roomRenovationDetail.IDeleteRoomRenovationDetailBMO;
+import com.java110.community.bmo.roomRenovationDetail.IGetRoomRenovationDetailBMO;
+import com.java110.community.bmo.roomRenovationDetail.ISaveRoomRenovationDetailBMO;
+import com.java110.community.bmo.roomRenovationRecord.IDeleteRoomRenovationRecordBMO;
+import com.java110.community.bmo.roomRenovationRecord.IGetRoomRenovationRecordBMO;
+import com.java110.community.bmo.roomRenovationRecord.ISaveRoomRenovationRecordBMO;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.RoomDto;
+import com.java110.dto.communitySetting.CommunitySettingDto;
+import com.java110.dto.fee.FeeAttrDto;
+import com.java110.dto.fee.FeeConfigDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.file.FileDto;
+import com.java110.dto.file.FileRelDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
 import com.java110.dto.roomRenovation.RoomRenovationDto;
+import com.java110.dto.roomRenovationDetail.RoomRenovationDetailDto;
+import com.java110.dto.user.UserDto;
+import com.java110.intf.common.IFileInnerServiceSMO;
+import com.java110.intf.common.IFileRelInnerServiceSMO;
+import com.java110.intf.community.ICommunitySettingInnerServiceSMO;
+import com.java110.intf.community.IRoomRenovationInnerServiceSMO;
+import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
+import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
+import com.java110.po.fee.FeeAttrPo;
+import com.java110.po.fee.PayFeePo;
+import com.java110.po.file.FileRelPo;
 import com.java110.po.roomRenovation.RoomRenovationPo;
+import com.java110.po.roomRenovationDetail.RoomRenovationDetailPo;
+import com.java110.po.roomRenovationRecord.RoomRenovationRecordPo;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
 
 @RestController
 @RequestMapping(value = "/roomRenovation")
@@ -24,13 +64,60 @@
 
     @Autowired
     private ISaveRoomRenovationBMO saveRoomRenovationBMOImpl;
+
     @Autowired
     private IUpdateRoomRenovationBMO updateRoomRenovationBMOImpl;
+
     @Autowired
     private IDeleteRoomRenovationBMO deleteRoomRenovationBMOImpl;
 
     @Autowired
     private IGetRoomRenovationBMO getRoomRenovationBMOImpl;
+
+    @Autowired
+    private ISaveRoomRenovationDetailBMO saveRoomRenovationDetailBMOImpl;
+
+    @Autowired
+    private IDeleteRoomRenovationDetailBMO deleteRoomRenovationDetailBMOImpl;
+
+    @Autowired
+    private IGetRoomRenovationDetailBMO getRoomRenovationDetailBMOImpl;
+
+    @Autowired
+    private IRoomRenovationInnerServiceSMO roomRenovationInnerServiceSMOImpl;
+
+    @Autowired
+    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
+    @Autowired
+    private ISaveRoomRenovationRecordBMO saveRoomRenovationRecordBMO;
+
+    @Autowired
+    private IGetRoomRenovationRecordBMO getRoomRenovationRecordBMOImpl;
+
+    @Autowired
+    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
+
+    @Autowired
+    private IDeleteRoomRenovationRecordBMO deleteRoomRenovationRecordBMOImpl;
+
+    @Autowired
+    private ICommunitySettingInnerServiceSMO communitySettingInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
 
     /**
      * 寰俊淇濆瓨娑堟伅妯℃澘
@@ -41,7 +128,9 @@
      * @path /app/roomRenovation/saveRoomRenovation
      */
     @RequestMapping(value = "/saveRoomRenovation", method = RequestMethod.POST)
-    public ResponseEntity<String> saveRoomRenovation(@RequestBody JSONObject reqJson) {
+    public ResponseEntity<String> saveRoomRenovation(@RequestBody JSONObject reqJson,
+                                                     @RequestHeader(value = "store-id") String storeId,
+                                                     @RequestHeader(value = "user-id") String userId) throws ParseException {
 
         Assert.hasKeyAndValue(reqJson, "roomId", "璇锋眰鎶ユ枃涓湭鍖呭惈roomId");
         Assert.hasKeyAndValue(reqJson, "roomName", "璇锋眰鎶ユ枃涓湭鍖呭惈roomName");
@@ -52,10 +141,131 @@
         Assert.hasKeyAndValue(reqJson, "personTel", "璇锋眰鎶ユ枃涓湭鍖呭惈personTel");
         //Assert.hasKeyAndValue(reqJson, "isViolation", "璇锋眰鎶ユ枃涓湭鍖呭惈isViolation");
 
+        //鑾峰彇寮�濮嬫椂闂�
+        String startTime = reqJson.getString("startTime") + " 00:00:00";
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date timeOne = format.parse(startTime);
+        Calendar now = Calendar.getInstance();
+        String newTime = now.get(Calendar.YEAR) + "-" + (now.get(Calendar.MONTH) + 1) + "-" + now.get(Calendar.DAY_OF_MONTH) + " 00:00:00";
+        Date timeTwo = format.parse(newTime);
+        if (timeOne.getTime() < timeTwo.getTime()) {
+            return ResultVo.error("瑁呬慨鏃堕棿涓嶈兘灏忎簬褰撳墠鏃堕棿锛�");
+        }
         RoomRenovationPo roomRenovationPo = BeanConvertUtil.covertBean(reqJson, RoomRenovationPo.class);
-        roomRenovationPo.setState("1000");
-        roomRenovationPo.setIsViolation("N");
 
+        //鍒ゆ柇鏄惁宸茬粡瀛樺湪璇ユ埧灞嬬殑瑁呬慨璁板綍浜�
+        RoomRenovationDto roomRenovationDto = new RoomRenovationDto();
+        roomRenovationDto.setRoomId(roomRenovationPo.getRoomId());
+        List<RoomRenovationDto> roomRenovationDtos = roomRenovationInnerServiceSMOImpl.queryRoomRenovations(roomRenovationDto);
+        if (roomRenovationDtos.size() > 0) {
+            for (RoomRenovationDto renovationDto : roomRenovationDtos) {
+                if (renovationDto.getState().equals("1000") || renovationDto.getState().equals("3000") || renovationDto.getState().equals("4000")) {
+                    throw new IllegalArgumentException("璇ユ埧灞嬫鍦ㄨ淇腑锛岃浠旂粏鏍稿鎴垮眿淇℃伅锛�");
+                }
+            }
+        }
+        //寰呭鏍哥姸鎬�
+        roomRenovationPo.setState("1000");
+        //涓嶈繚瑙�
+        roomRenovationPo.setIsViolation("N");
+        roomRenovationPo.setStartTime(reqJson.getString("startTime") + " 00:00:00");
+        roomRenovationPo.setEndTime(reqJson.getString("endTime") + " 23:59:59");
+        //鐢熸垚瑁呬慨璐圭敤
+        CommunitySettingDto communitySettingDto = new CommunitySettingDto();
+        communitySettingDto.setSettingKey("REPAIR_CONFIG_FEE");
+        communitySettingDto.setCommunityId(reqJson.getString("communityId"));
+        //鏌ヨ灏忓尯閰嶇疆
+        List<CommunitySettingDto> communitySettingDtos = communitySettingInnerServiceSMOImpl.queryCommunitySettings(communitySettingDto);
+        String settingValue = null;
+        if (communitySettingDtos != null && communitySettingDtos.size() > 0) {
+            //鑾峰彇灏忓尯璁剧疆鍊�
+            settingValue = communitySettingDtos.get(0).getSettingValue();
+        }
+        //鑾峰彇鎴垮眿id
+        String roomId = reqJson.getString("roomId");
+        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+        ownerRoomRelDto.setRoomId(roomId);
+        //鏌ヨ涓氫富鎴垮眿鍏崇郴琛�
+        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+        Assert.listOnlyOne(ownerRoomRelDtos, "鏌ヨ涓氫富鎴垮眿鍏崇郴琛ㄩ敊璇紒");
+        //鑾峰彇涓氫富id
+        String ownerId = ownerRoomRelDtos.get(0).getOwnerId();
+        if (!StringUtil.isEmpty(settingValue)) {
+            String[] settingValues = settingValue.split(",");
+            List<PayFeePo> payFeePos = new ArrayList<>();
+            List<FeeAttrPo> feeAttrOwnerIdPos = new ArrayList<>();
+            List<FeeAttrPo> feeAttrOwnerNamePos = new ArrayList<>();
+            List<FeeAttrPo> feeAttrOwnerLinkPos = new ArrayList<>();
+            List<FeeAttrPo> feeAttrOwnerTimePos = new ArrayList<>();
+            for (int i = 0; i < settingValues.length; i++) {
+                String configId = settingValues[i];
+                FeeConfigDto feeConfigDto = new FeeConfigDto();
+                feeConfigDto.setConfigId(configId);
+                //鏌ヨ璐圭敤椤�
+                List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+                Assert.listOnlyOne(feeConfigDtos, "鏌ヨ璐圭敤椤归敊璇紒");
+                PayFeePo payFeePo = new PayFeePo();
+                payFeePo.setAmount(feeConfigDtos.get(0).getAdditionalAmount());
+                if (!StringUtil.isEmpty(storeId)) {
+                    payFeePo.setIncomeObjId(storeId);
+                } else {
+                    payFeePo.setIncomeObjId(reqJson.getString("storeId"));
+                }
+                payFeePo.setFeeTypeCd(feeConfigDtos.get(0).getFeeTypeCd());
+                payFeePo.setStartTime(newTime);
+                payFeePo.setEndTime(format.format(System.currentTimeMillis()));
+                payFeePo.setCommunityId(reqJson.getString("communityId"));
+                payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+                payFeePo.setUserId(userId);
+                payFeePo.setPayerObjId(reqJson.getString("roomId"));
+                payFeePo.setFeeFlag(feeConfigDtos.get(0).getFeeFlag());
+                payFeePo.setState(FeeDto.STATE_DOING);
+                payFeePo.setConfigId(configId);
+                payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
+                payFeePo.setBatchId("-1");
+                payFeePos.add(payFeePo);
+                FeeAttrPo feeAttrPo1 = new FeeAttrPo();
+                feeAttrPo1.setFeeId(payFeePo.getFeeId());
+                feeAttrPo1.setCommunityId(reqJson.getString("communityId"));
+                feeAttrPo1.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+                feeAttrPo1.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_ID); //涓氫富id
+                feeAttrPo1.setValue(ownerId);
+                feeAttrOwnerIdPos.add(feeAttrPo1);
+                FeeAttrPo feeAttrPo2 = new FeeAttrPo();
+                feeAttrPo2.setFeeId(payFeePo.getFeeId());
+                feeAttrPo2.setCommunityId(reqJson.getString("communityId"));
+                feeAttrPo2.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+                feeAttrPo2.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_NAME); //涓氫富鍚嶇О
+                feeAttrPo2.setValue(reqJson.getString("personName"));
+                feeAttrOwnerNamePos.add(feeAttrPo2);
+                FeeAttrPo feeAttrPo3 = new FeeAttrPo();
+                feeAttrPo3.setFeeId(payFeePo.getFeeId());
+                feeAttrPo3.setCommunityId(reqJson.getString("communityId"));
+                feeAttrPo3.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+                feeAttrPo3.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_LINK); //鑱旂郴鏂瑰紡
+                feeAttrPo3.setValue(reqJson.getString("personTel"));
+                feeAttrOwnerLinkPos.add(feeAttrPo3);
+                if (FeeDto.FEE_FLAG_ONCE.equals(feeConfigDtos.get(0).getFeeFlag())) {//涓�娆℃�ц垂鐢�
+                    FeeAttrPo feeAttrPo4 = new FeeAttrPo();
+                    feeAttrPo4.setFeeId(payFeePo.getFeeId());
+                    feeAttrPo4.setCommunityId(reqJson.getString("communityId"));
+                    feeAttrPo4.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+                    feeAttrPo4.setSpecCd(FeeAttrDto.SPEC_CD_ONCE_FEE_DEADLINE_TIME); //缁撴潫鏃堕棿
+                    feeAttrPo4.setValue(reqJson.getString("startTime"));
+                    feeAttrOwnerTimePos.add(feeAttrPo4);
+                }
+            }
+            //鐢熸垚璐圭敤
+            feeInnerServiceSMOImpl.saveFee(payFeePos);
+            //鎻掑叆璐圭敤灞炴��(涓氫富id)
+            feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrOwnerIdPos);
+            //鎻掑叆璐圭敤灞炴��(涓氫富濮撳悕)
+            feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrOwnerNamePos);
+            //鎻掑叆璐圭敤灞炴��(涓氫富鑱旂郴鏂瑰紡)
+            feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrOwnerLinkPos);
+            //鎻掑叆璐圭敤灞炴��(璐圭敤鎴鏃堕棿)
+            feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrOwnerTimePos);
+        }
         return saveRoomRenovationBMOImpl.save(roomRenovationPo);
     }
 
@@ -69,7 +279,6 @@
      */
     @RequestMapping(value = "/updateRoomRenovation", method = RequestMethod.POST)
     public ResponseEntity<String> updateRoomRenovation(@RequestBody JSONObject reqJson) {
-
         Assert.hasKeyAndValue(reqJson, "roomId", "璇锋眰鎶ユ枃涓湭鍖呭惈roomId");
         Assert.hasKeyAndValue(reqJson, "roomName", "璇锋眰鎶ユ枃涓湭鍖呭惈roomName");
         Assert.hasKeyAndValue(reqJson, "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId");
@@ -79,10 +288,226 @@
         Assert.hasKeyAndValue(reqJson, "personTel", "璇锋眰鎶ユ枃涓湭鍖呭惈personTel");
         Assert.hasKeyAndValue(reqJson, "isViolation", "璇锋眰鎶ユ枃涓湭鍖呭惈isViolation");
         Assert.hasKeyAndValue(reqJson, "rId", "rId涓嶈兘涓虹┖");
-
-
         RoomRenovationPo roomRenovationPo = BeanConvertUtil.covertBean(reqJson, RoomRenovationPo.class);
+        roomRenovationPo.setStartTime(roomRenovationPo.getStartTime() + " 00:00:00");
+        roomRenovationPo.setEndTime(roomRenovationPo.getEndTime() + " 23:59:59");
+        //濡傛灉鐘舵�佷负瑁呬慨涓�佸緟楠屾敹锛屽垯鎴垮眿鐘舵�佹敼涓鸿淇腑锛涘鏋滅姸鎬佷负楠屾敹鎴愬姛锛屽垯鎴垮眿鐘舵�佹敼涓哄凡瑁呬慨锛涘鏋滀负寰呭鏍搞�佸鏍稿け璐ャ�侀獙鏀跺け璐ワ紝鍒欐埧灞嬬姸鎬佹敼涓哄凡浜ゆ埧
+        if (roomRenovationPo.getState().equals("3000") || roomRenovationPo.getState().equals("4000")) {
+            RoomDto roomDto = new RoomDto();
+            roomDto.setRoomId(roomRenovationPo.getRoomId());
+            //鎴垮眿鐘舵�佸彉涓鸿淇腑
+            roomDto.setState("2009");
+            updateRoomRenovationBMOImpl.update(roomRenovationPo);
+            return updateRoomRenovationBMOImpl.updateRoom(roomDto);
+        } else if (roomRenovationPo.getState().equals("1000") || roomRenovationPo.getState().equals("2000")
+                || roomRenovationPo.getState().equals("5000")) {
+            RoomDto roomDto = new RoomDto();
+            roomDto.setRoomId(roomRenovationPo.getRoomId());
+            //鎴垮眿鐘舵�佸彉涓哄凡浜ゆ埧
+            roomDto.setState("2003");
+            updateRoomRenovationBMOImpl.update(roomRenovationPo);
+            return updateRoomRenovationBMOImpl.updateRoom(roomDto);
+        } else if (roomRenovationPo.getState().equals("6000")) {
+            RoomDto roomDto = new RoomDto();
+            roomDto.setRoomId(roomRenovationPo.getRoomId());
+            //鎴垮眿鐘舵�佸彉涓哄凡瑁呬慨
+            roomDto.setState("2005");
+            updateRoomRenovationBMOImpl.update(roomRenovationPo);
+            return updateRoomRenovationBMOImpl.updateRoom(roomDto);
+        } else {
+            return updateRoomRenovationBMOImpl.update(roomRenovationPo);
+        }
+    }
+
+    /**
+     * 瑁呬慨瀹屾垚
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /roomRenovation/updateRoomRenovationState
+     * @path /app/roomRenovation/updateRoomRenovationState
+     */
+    @RequestMapping(value = "/updateRoomRenovationState", method = RequestMethod.POST)
+    public ResponseEntity<String> updateRoomRenovationState(@RequestBody JSONObject reqJson) {
+        RoomRenovationPo roomRenovationPo = BeanConvertUtil.covertBean(reqJson, RoomRenovationPo.class);
+        //瑁呬慨瀹屾垚,鐘舵�佸彉涓哄緟楠屾敹
+        roomRenovationPo.setState("4000");
         return updateRoomRenovationBMOImpl.update(roomRenovationPo);
+    }
+
+    /**
+     * 鏌ヨ瑁呬慨璁板綍
+     *
+     * @param
+     * @return
+     * @serviceCode /roomRenovation/queryRoomRenovationRecord
+     * @path /app/roomRenovation/queryRoomRenovationRecord
+     */
+    @RequestMapping(value = "/queryRoomRenovationRecord", method = RequestMethod.GET)
+    public ResponseEntity<String> queryRoomRenovationRecord(@RequestParam(value = "rId", required = false) String rId,
+                                                            @RequestParam(value = "page", required = false) int page,
+                                                            @RequestParam(value = "row", required = false) int row) {
+        RoomRenovationRecordPo roomRenovationRecord = new RoomRenovationRecordPo();
+        roomRenovationRecord.setrId(rId);
+        roomRenovationRecord.setPage(page);
+        roomRenovationRecord.setRow(row);
+        return getRoomRenovationRecordBMOImpl.getRoomRenovationRecord(roomRenovationRecord);
+    }
+
+
+    /**
+     * 鏌ヨ瑁呬慨璇︽儏
+     *
+     * @param recordId
+     * @param page
+     * @param row
+     * @return
+     * @serviceCode /roomRenovation/queryRoomRenovationRecordDetail
+     * @path /app/roomRenovation/queryRoomRenovationRecordDetail
+     */
+    @RequestMapping(value = "/queryRoomRenovationRecordDetail", method = RequestMethod.GET)
+    public ResponseEntity<String> queryRoomRenovationRecordDetail(@RequestParam(value = "recordId", required = false) String recordId,
+                                                                  @RequestParam(value = "page", required = false) int page,
+                                                                  @RequestParam(value = "row", required = false) int row) {
+        RoomRenovationRecordPo roomRenovationRecord = new RoomRenovationRecordPo();
+        roomRenovationRecord.setRecordId(recordId);
+        roomRenovationRecord.setPage(page);
+        roomRenovationRecord.setRow(row);
+        return getRoomRenovationRecordBMOImpl.get(roomRenovationRecord);
+    }
+
+    /**
+     * 鍒犻櫎瑁呬慨璁板綍
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /roomRenovation/deleteRoomRenovationRecord
+     * @path /app/roomRenovation/deleteRoomRenovationRecord
+     */
+    @RequestMapping(value = "/deleteRoomRenovationRecord", method = RequestMethod.POST)
+    public ResponseEntity<String> deleteRoomRenovationRecord(@RequestBody JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "communityId", "灏忓尯ID涓嶈兘涓虹┖");
+        Assert.hasKeyAndValue(reqJson, "recordId", "recordId涓嶈兘涓虹┖");
+        RoomRenovationRecordPo roomRenovationRecordPo = BeanConvertUtil.covertBean(reqJson, RoomRenovationRecordPo.class);
+        //鑾峰彇瑁呬慨璁板綍id
+        String recordId = reqJson.getString("recordId");
+        FileRelPo fileRelpo = new FileRelPo();
+        fileRelpo.setObjId(recordId);
+        FileRelDto fileRelDto = new FileRelDto();
+        fileRelDto.setObjId(recordId);
+        List<FileRelDto> fileRelDtos = fileRelInnerServiceSMOImpl.queryFileRels(fileRelDto);
+        if (fileRelDtos != null && fileRelDtos.size() > 0) {
+            //鍒犻櫎鏂囦欢琛ㄥ浘鐗囧拰瑙嗛
+            fileRelInnerServiceSMOImpl.deleteFileRel(fileRelpo);
+        }
+        return deleteRoomRenovationRecordBMOImpl.delete(roomRenovationRecordPo);
+    }
+
+    /**
+     * 瑁呬慨璁板綍
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /roomRenovation/updateRoomDecorationRecord
+     * @path /app/roomRenovation/updateRoomDecorationRecord
+     */
+    @RequestMapping(value = "/updateRoomDecorationRecord", method = RequestMethod.POST)
+    public ResponseEntity<String> updateRoomDecorationRecord(@RequestBody JSONObject reqJson, @RequestHeader(value = "user-id") String userId) {
+        RoomRenovationPo roomRenovationPo = BeanConvertUtil.covertBean(reqJson, RoomRenovationPo.class);
+        //鍥剧墖
+        List<String> photos = roomRenovationPo.getPhotos();
+        //瑙嗛
+        String videoName = roomRenovationPo.getVideoName();
+        //澶囨敞
+        String remark = roomRenovationPo.getRemark();
+        //瑁呬慨id
+        String rId = roomRenovationPo.getrId();
+        //鐘舵��
+        String state = roomRenovationPo.getState();
+        //鏄惁杩濊
+        String isTrue = roomRenovationPo.getIsTrue();
+        //鏌ヨ褰撳墠鐢ㄦ埛淇℃伅
+        UserDto userDto = new UserDto();
+        userDto.setUserId(userId);
+        userDto.setStatusCd("0");
+        List<UserDto> users = userInnerServiceSMOImpl.getUsers(userDto);
+        RoomRenovationRecordPo roomRenovationRecordPo = new RoomRenovationRecordPo();
+        roomRenovationRecordPo.setrId(rId);
+        roomRenovationRecordPo.setRemark(remark);
+        roomRenovationRecordPo.setState(state);
+        roomRenovationRecordPo.setStatusCd(roomRenovationPo.getStatusCd());
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        roomRenovationRecordPo.setCreateTime(format.format(new Date()));
+        roomRenovationRecordPo.setStaffId(userId);
+        roomRenovationRecordPo.setStaffName(users.get(0).getName());
+        roomRenovationRecordPo.setIsTrue(isTrue);
+        saveRoomRenovationRecordBMO.saveRecord(roomRenovationRecordPo);
+        FileRelPo fileRelPo = new FileRelPo();
+        fileRelPo.setFileRelId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_relId));
+        fileRelPo.setObjId(roomRenovationRecordPo.getRecordId());
+        //table琛ㄧず琛ㄥ瓨鍌� ftp琛ㄧずftp鏂囦欢瀛樺偍
+        fileRelPo.setSaveWay("ftp");
+        fileRelPo.setCreateTime(new Date());
+        //鍥剧墖涓婁紶
+        if (photos != null && photos.size() > 0) {
+            //19000琛ㄧず瑁呬慨鍥剧墖
+            fileRelPo.setRelTypeCd("19000");
+            for (String photo : photos) {
+                FileDto fileDto = new FileDto();
+                fileDto.setCommunityId("-1");
+                fileDto.setContext(photo);
+                fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
+                fileDto.setFileName(fileDto.getFileId());
+                String fileName = fileInnerServiceSMOImpl.saveFile(fileDto);
+                fileRelPo.setFileRealName(fileName);
+                fileRelPo.setFileSaveName(fileName);
+                fileRelInnerServiceSMOImpl.saveFileRel(fileRelPo);
+            }
+        }
+        //瑙嗛涓婁紶
+        if (!StringUtil.isEmpty(videoName)) {
+            //21000琛ㄧず瑁呬慨瑙嗛
+            fileRelPo.setRelTypeCd("21000");
+            fileRelPo.setFileRealName(videoName);
+            fileRelPo.setFileSaveName(videoName);
+            fileRelInnerServiceSMOImpl.saveFileRel(fileRelPo);
+        }
+        RoomRenovationRecordPo roomRenovationRecord = new RoomRenovationRecordPo();
+        roomRenovationRecord.setRecordId(roomRenovationRecordPo.getRecordId());
+        return getRoomRenovationRecordBMOImpl.get(roomRenovationRecord);
+    }
+
+    /**
+     * 瑁呬慨瀹℃牳
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /roomRenovation/updateRoomToExamine
+     * @path /app/roomRenovation/updateRoomToExamine
+     */
+    @RequestMapping(value = "/updateRoomToExamine", method = RequestMethod.POST)
+    public ResponseEntity<String> updateRoomToExamine(@RequestBody JSONObject reqJson) {
+        RoomRenovationPo roomRenovationPo = BeanConvertUtil.covertBean(reqJson, RoomRenovationPo.class);
+        //瀹℃牳閫氳繃鎴垮眿鐘舵�佸彉涓鸿淇腑
+        if (roomRenovationPo.getState().equals("3000")) {
+            RoomDto roomDto = new RoomDto();
+            roomDto.setRoomId(roomRenovationPo.getRoomId());
+            //鎴垮眿鐘舵�佸彉涓鸿淇腑
+            roomDto.setState("2009");
+            //鏇存柊瑁呬慨淇℃伅
+            updateRoomRenovationBMOImpl.update(roomRenovationPo);
+            return updateRoomRenovationBMOImpl.updateRoom(roomDto);
+        } else if (roomRenovationPo.getState().equals("2000")) {
+            RoomDto roomDto = new RoomDto();
+            roomDto.setRoomId(roomRenovationPo.getRoomId());
+            //鎴垮眿鐘舵�佸彉涓哄凡浜ゆ埧
+            roomDto.setState("2003");
+            //鏇存柊瑁呬慨淇℃伅
+            updateRoomRenovationBMOImpl.update(roomRenovationPo);
+            return updateRoomRenovationBMOImpl.updateRoom(roomDto);
+        } else {
+            return updateRoomRenovationBMOImpl.update(roomRenovationPo);
+        }
     }
 
     /**
@@ -96,16 +521,13 @@
     @RequestMapping(value = "/deleteRoomRenovation", method = RequestMethod.POST)
     public ResponseEntity<String> deleteRoomRenovation(@RequestBody JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "communityId", "灏忓尯ID涓嶈兘涓虹┖");
-
         Assert.hasKeyAndValue(reqJson, "rId", "rId涓嶈兘涓虹┖");
-
-
         RoomRenovationPo roomRenovationPo = BeanConvertUtil.covertBean(reqJson, RoomRenovationPo.class);
         return deleteRoomRenovationBMOImpl.delete(roomRenovationPo);
     }
 
     /**
-     * 寰俊鍒犻櫎娑堟伅妯℃澘
+     * 鏌ヨ鎴垮眿瑁呬慨
      *
      * @param communityId 灏忓尯ID
      * @return
@@ -113,13 +535,123 @@
      * @path /app/roomRenovation/queryRoomRenovation
      */
     @RequestMapping(value = "/queryRoomRenovation", method = RequestMethod.GET)
-    public ResponseEntity<String> queryRoomRenovation(@RequestParam(value = "communityId") String communityId,
-                                                      @RequestParam(value = "page") int page,
-                                                      @RequestParam(value = "row") int row) {
+    public ResponseEntity<String> queryRoomRenovation(@RequestParam(value = "communityId", required = false) String communityId,
+                                                      @RequestParam(value = "roomId", required = false) String roomId,
+                                                      @RequestParam(value = "roomName", required = false) String roomName,
+                                                      @RequestParam(value = "personName", required = false) String personName,
+                                                      @RequestParam(value = "personTel", required = false) String personTel,
+                                                      @RequestParam(value = "state", required = false) String state,
+                                                      @RequestParam(value = "isPostpone", required = false) String isPostpone,
+                                                      @RequestParam(value = "renovationTime", required = false) String renovationTime,
+                                                      @RequestParam(value = "renovationStartTime", required = false) String renovationStartTime,
+                                                      @RequestParam(value = "renovationEndTime", required = false) String renovationEndTime,
+                                                      @RequestHeader(value = "user-id") String userId,
+                                                      @RequestParam(value = "page", required = false) int page,
+                                                      @RequestParam(value = "row", required = false) int row) {
         RoomRenovationDto roomRenovationDto = new RoomRenovationDto();
         roomRenovationDto.setPage(page);
         roomRenovationDto.setRow(row);
         roomRenovationDto.setCommunityId(communityId);
+        roomRenovationDto.setRoomId(roomId);
+        roomRenovationDto.setRoomName(roomName);
+        roomRenovationDto.setPersonName(personName);
+        roomRenovationDto.setPersonTel(personTel);
+        roomRenovationDto.setState(state);
+        roomRenovationDto.setUserId(userId);
+        roomRenovationDto.setIsPostpone(isPostpone);
+        roomRenovationDto.setRenovationTime(renovationTime);
+        roomRenovationDto.setRenovationStartTime(renovationStartTime);
+        roomRenovationDto.setRenovationEndTime(renovationEndTime);
         return getRoomRenovationBMOImpl.get(roomRenovationDto);
     }
+
+
+    /**
+     * 寰俊淇濆瓨娑堟伅妯℃澘
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /roomRenovation/saveRoomRenovationDetail
+     * @path /app/roomRenovation/saveRoomRenovationDetail
+     */
+    @RequestMapping(value = "/saveRoomRenovationDetail", method = RequestMethod.POST)
+    public ResponseEntity<String> saveRoomRenovationDetail(@RequestHeader(value = "user-id") String userId,
+                                                           @RequestHeader(value = "user-name") String userName,
+                                                           @RequestBody JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "rId", "璇锋眰鎶ユ枃涓湭鍖呭惈rId");
+        Assert.hasKeyAndValue(reqJson, "communityId", "璇锋眰鎶ユ枃涓湭鍖呭惈communityId");
+        Assert.hasKeyAndValue(reqJson, "detailType", "璇锋眰鎶ユ枃涓湭鍖呭惈detailType");
+        Assert.hasKeyAndValue(reqJson, "state", "璇锋眰鎶ユ枃涓湭鍖呭惈state");
+        RoomRenovationDetailPo roomRenovationDetailPo = BeanConvertUtil.covertBean(reqJson, RoomRenovationDetailPo.class);
+        roomRenovationDetailPo.setStaffId(userId);
+        roomRenovationDetailPo.setStaffName(userName);
+        RoomRenovationPo roomRenovationPo = new RoomRenovationPo();
+        roomRenovationPo.setrId(roomRenovationDetailPo.getrId());
+        roomRenovationPo.setState(roomRenovationDetailPo.getState());
+        //淇敼鎴垮眿瑁呬慨鐘舵��
+        updateRoomRenovationBMOImpl.update(roomRenovationPo);
+        //楠屾敹鎴愬姛鍚庢埧灞嬬姸鎬佸彉涓哄凡瑁呬慨
+        if (roomRenovationDetailPo.getState().equals("5000")) {
+            RoomDto roomDto = new RoomDto();
+            roomDto.setRoomId(reqJson.getString("roomId"));
+            //鐘舵�佸彉涓哄凡瑁呬慨
+            roomDto.setState("2005");
+            //楠屾敹鎴愬姛
+            roomRenovationDetailPo.setState("3000");
+            saveRoomRenovationDetailBMOImpl.save(roomRenovationDetailPo);
+            return updateRoomRenovationBMOImpl.updateRoom(roomDto);
+        } else if (roomRenovationDetailPo.getState().equals("6000")) { //楠屾敹澶辫触瑁呬慨鐘舵�佸彉涓鸿淇腑
+            RoomRenovationPo roomRenovation = new RoomRenovationPo();
+            roomRenovation.setrId(roomRenovationDetailPo.getrId());
+            roomRenovation.setState("3000");
+            //楠屾敹澶辫触鎶婃埧灞嬬姸鎬佸彉涓鸿淇腑锛岃涓氫富瑁呬慨鏁存敼
+            updateRoomRenovationBMOImpl.update(roomRenovation);
+            //楠屾敹澶辫触
+            roomRenovationDetailPo.setState("4000");
+            return saveRoomRenovationDetailBMOImpl.save(roomRenovationDetailPo);
+        } else {
+            return saveRoomRenovationDetailBMOImpl.save(roomRenovationDetailPo);
+        }
+    }
+
+
+    /**
+     * 寰俊鍒犻櫎娑堟伅妯℃澘
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /roomRenovation/deleteRoomRenovationDetail
+     * @path /app/roomRenovation/deleteRoomRenovationDetail
+     */
+    @RequestMapping(value = "/deleteRoomRenovationDetail", method = RequestMethod.POST)
+    public ResponseEntity<String> deleteRoomRenovationDetail(@RequestBody JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "communityId", "灏忓尯ID涓嶈兘涓虹┖");
+
+        Assert.hasKeyAndValue(reqJson, "detailId", "detailId涓嶈兘涓虹┖");
+
+
+        RoomRenovationDetailPo roomRenovationDetailPo = BeanConvertUtil.covertBean(reqJson, RoomRenovationDetailPo.class);
+        return deleteRoomRenovationDetailBMOImpl.delete(roomRenovationDetailPo);
+    }
+
+    /**
+     * 寰俊鍒犻櫎娑堟伅妯℃澘
+     *
+     * @param communityId 灏忓尯ID
+     * @return
+     * @serviceCode /roomRenovation/queryRoomRenovationDetail
+     * @path /app/roomRenovation/queryRoomRenovationDetail
+     */
+    @RequestMapping(value = "/queryRoomRenovationDetail", method = RequestMethod.GET)
+    public ResponseEntity<String> queryRoomRenovationDetail(@RequestParam(value = "communityId") String communityId,
+                                                            @RequestParam(value = "page") int page,
+                                                            @RequestParam(value = "row") int row,
+                                                            @RequestParam(value = "rId") String rId) {
+        RoomRenovationDetailDto roomRenovationDetailDto = new RoomRenovationDetailDto();
+        roomRenovationDetailDto.setPage(page);
+        roomRenovationDetailDto.setRow(row);
+        roomRenovationDetailDto.setCommunityId(communityId);
+        roomRenovationDetailDto.setrId(rId);
+        return getRoomRenovationDetailBMOImpl.get(roomRenovationDetailDto);
+    }
 }

--
Gitblit v1.8.0