package com.java110.community.cmd.patrolBuilding; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.java110.core.annotation.Java110Cmd; import com.java110.core.context.ICmdDataFlowContext; import com.java110.core.event.cmd.Cmd; import com.java110.core.event.cmd.CmdEvent; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.floor.FloorDto; import com.java110.intf.common.IFileRelInnerServiceSMO; import com.java110.intf.community.IFloorV1InnerServiceSMO; import com.java110.intf.community.IPatrolBuildingV1InnerServiceSMO; import com.java110.po.file.FileRelPo; import com.java110.po.patrolBuilding.PatrolBuildingPo; import com.java110.utils.exception.CmdException; import com.java110.utils.util.Assert; import com.java110.utils.util.BeanConvertUtil; import com.java110.utils.util.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import java.util.Date; import java.util.List; /** * 添加巡楼信息 * * @author fqz * @date 2023-12-26 16:22 */ @Java110Cmd(serviceCode = "patrolBuilding.savePatrolBuilding") public class AddPatrolBuilding extends Cmd { @Autowired private IPatrolBuildingV1InnerServiceSMO iPatrolBuildingV1InnerServiceSMOImpl; @Autowired private IFloorV1InnerServiceSMO floorV1InnerServiceSMOImpl; @Autowired private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl; @Override public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) { Assert.jsonObjectHaveKey(reqJson, "communityId", "请求报文中未包含项目ID"); Assert.jsonObjectHaveKey(reqJson, "staffId", "请求报文中未包含员工ID"); } @Override public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) { JSONObject businessPatrolBuilding = new JSONObject(); businessPatrolBuilding.putAll(reqJson); businessPatrolBuilding.put("pbId", GenerateCodeFactory.getPsId(GenerateCodeFactory.CODE_PREFIX_psId)); PatrolBuildingPo patrolBuildingPo = BeanConvertUtil.covertBean(reqJson, PatrolBuildingPo.class); patrolBuildingPo.setPbId(GenerateCodeFactory.getPsId(GenerateCodeFactory.CODE_PREFIX_psId)); if (reqJson.containsKey("floorId") && !StringUtil.isEmpty(reqJson.getString("floorId"))) { patrolBuildingPo.setFloorId(reqJson.getString("floorId")); FloorDto floorDto = new FloorDto(); floorDto.setFloorId(reqJson.getString("floorId")); List floorList = floorV1InnerServiceSMOImpl.queryFloors(floorDto); Assert.listOnlyOne(floorList, "查询楼栋错误!"); patrolBuildingPo.setFloorNum(floorList.get(0).getFloorNum()); } else { patrolBuildingPo.setFloorId("-1"); patrolBuildingPo.setFloorNum("-1"); } patrolBuildingPo.setCreateTime(new Date()); int flag = iPatrolBuildingV1InnerServiceSMOImpl.savePatrolBuilding(patrolBuildingPo); if (flag < 1) { throw new CmdException("保存数据失败"); } //处理图片 JSONArray photos = reqJson.getJSONArray("photos"); FileRelPo fileRelPo = new FileRelPo(); fileRelPo.setFileRelId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_relId)); fileRelPo.setObjId(patrolBuildingPo.getPbId()); //table表示表存储 ftp表示ftp文件存储 fileRelPo.setSaveWay("ftp"); fileRelPo.setCreateTime(new Date()); //图片上传 if (photos != null && photos.size() > 0) { //31000表示巡楼图片 fileRelPo.setRelTypeCd("31000"); for (int _photoIndex = 0; _photoIndex < photos.size(); _photoIndex++) { JSONObject param = photos.getJSONObject(_photoIndex); fileRelPo.setFileRealName(param.getString("photo")); fileRelPo.setFileSaveName(param.getString("photo")); fileRelInnerServiceSMOImpl.saveFileRel(fileRelPo); } } } }