123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- package com.persagy.transfer.service.impl;
- import java.util.Date;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.dynamic.datasource.annotation.DS;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
- import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
- import com.persagy.common.utils.DateUtil;
- import com.persagy.common.utils.StringUtil;
- import com.persagy.db.service.impl.SuperServiceImpl;
- import com.persagy.transfer.constant.InfosKeyConstant;
- import com.persagy.transfer.constant.SwitchConstant;
- import com.persagy.transfer.mapper.HydomcAssetMapper;
- import com.persagy.transfer.pojo.dto.HydomcAsset;
- import com.persagy.transfer.pojo.dto.RwdObjectWd;
- import com.persagy.transfer.service.IHydomcAssetService;
- import com.persagy.transfer.utils.StringTool;
- import lombok.extern.slf4j.Slf4j;
- /**
- * 设备信息主表
- *
- * @version 1.0.0
- * @company persagy
- * @author zhangqiankun
- * @date 2021-09-16 10:45:41
- */
- @Slf4j
- @Service
- @DS(value = SwitchConstant.DS_MASTER_2)
- public class HydomcAssetServiceImpl extends SuperServiceImpl<HydomcAssetMapper, HydomcAsset> implements IHydomcAssetService {
- @Override
- public HydomcAsset getHydomcAssetByPKey(String sbybm) {
- LambdaQueryWrapper<HydomcAsset> queryHydomcAssetWrapper = new HydomcAsset.BuilderQueryWrapper().sbybmEq(sbybm).builder();
- return this.baseMapper.selectOne(queryHydomcAssetWrapper);
- }
-
- @Override
- @Transactional
- public boolean saveHydomcAsset(RwdObjectWd rwdObjectWd, JSONObject infos, String wdProjectId, String classstructureid, String sbybm) {
- int valid = rwdObjectWd.getValid() == null ? 0 : rwdObjectWd.getValid();
- Date updateTime = rwdObjectWd.getUpdateTime() == null ? DateUtil.date().toJdkDate() : rwdObjectWd.getUpdateTime();
-
- log.info("设备数据同步至万达数据库,本方对象ID:{},设备状态:{},万达项目ID:{}, 设备分类ID:{}", rwdObjectWd.getId(), valid, wdProjectId, classstructureid);
-
- Integer result = null;
- HydomcAsset hydomcAsset = this.getHydomcAssetByPKey(sbybm);
- if (hydomcAsset == null) {
- hydomcAsset = this.buildHydomcAsset(infos, wdProjectId, classstructureid, rwdObjectWd.getUpdateUser(), valid, updateTime);
- result = this.baseMapper.insert(hydomcAsset);
- return SqlHelper.retBool(result);
- }
-
- // 数据更新时间 增量字段
- LambdaUpdateWrapper<HydomcAsset> updateWrapper = new HydomcAsset.BuilderUpdateWrapper().sbybmEq(sbybm).builder();
- if (valid == 0) {
- updateWrapper.set(HydomcAsset::getStatus, SwitchConstant.SCRAP); // 设备状态 运行中/报废 默认都为运行中
- updateWrapper.set(HydomcAsset::getDatastatus, SwitchConstant.IS_DELETE); // 数据状态 update/delete 当数据状态为delete时,设备状态需改为报废
- updateWrapper.set(HydomcAsset::getChangedate, updateTime); // 数据更新时间 增量字段
- result = this.baseMapper.update(null, updateWrapper);
- } else {
- hydomcAsset = this.buildHydomcAsset(infos, wdProjectId, classstructureid, rwdObjectWd.getUpdateUser(), valid, updateTime);
- hydomcAsset.setSbybm(sbybm);
- result = this.baseMapper.update(hydomcAsset, updateWrapper);
- }
- return SqlHelper.retBool(result);
- }
-
- @Override
- public HydomcAsset buildHydomcAsset(JSONObject infos, String wdProjectId, String classstructureid, String updateUser, int valid, Date updateTime) {
- String sfhysy = StringTool.object2String(infos.get(InfosKeyConstant.WISDOM_CLOUD_USE));
- sfhysy = StringUtil.isBlank(sfhysy) ? "是" : sfhysy;
-
- String sfzld = StringTool.object2String(infos.get(InfosKeyConstant.MAIN_STORE));
- sfzld = StringUtil.isBlank(sfzld) ? "否" : sfzld;
-
- HydomcAsset hydomcAsset = HydomcAsset.builder().siteid(wdProjectId) // 项目唯一id,可采用租赁系统广场id,同步后不可更改
- // 主键 无其他主键可采用设备编码为主键,但要确保唯一(工程信息化设备原码)
- .sbybm(StringTool.object2String(infos.get(InfosKeyConstant.EQUIPMENT_CODE)))
- // 详细设备安装位置,格式:楼体-楼层-区域 没有key 后续补充
- .wzqy(StringTool.object2String(infos.get(InfosKeyConstant.EQUIPMENT_INSTALL_AREA)))
- // 设备服务区域 设备/系统服务范围
- .fwqy(StringTool.object2String(infos.get(InfosKeyConstant.EQUIPMENT_SERVICE_ZONE)))
- // 设备名称
- .description(StringTool.object2String(infos.get(InfosKeyConstant.EQUIPMENT_NAME)))
- // 厂商设备型号
- .sbxh(StringTool.object2String(infos.get(InfosKeyConstant.EQUIPMENT_MODEL)))
- // 设备分类ID
- .classstructureid(StringTool.object2String(infos.get(InfosKeyConstant.EQUIPMENT_SORT)))
- // 设备状态 运行中/报废 默认都为运行中
- .status(valid == 0 ? SwitchConstant.SCRAP : SwitchConstant.RUNNING)
- // 设备序号 同类设备的序号,即第几台设备:第几台电梯
- .sbxhh(StringTool.object2String(infos.get(InfosKeyConstant.EQUIPMENT_IDX)))
- // 厂家设备序列号
- .cjsbxh(StringTool.object2String(infos.get(InfosKeyConstant.SERIAL_NUM)))
- // 生产商公司供方管理系统编码code
- .manufacturer(StringTool.object2String(infos.get(InfosKeyConstant.MANUFACTURER)))
- // 供应商公司供方管理系统编码code
- .vendor(StringTool.object2String(infos.get(InfosKeyConstant.SUPPLIER)))
- // 服务商公司供方管理系统编码code
- .fws(StringTool.object2String(infos.get(InfosKeyConstant.MAINTAINER)))
- // 采购金额 填写人民币元
- .purchaseprice(StringTool.object2Double(infos.get(InfosKeyConstant.PURCHASE_PRICE)))
- // 折旧/使用年限 按年填写 如3年半则填写 3.5
- .zjsynx(StringTool.object2Double(infos.get(InfosKeyConstant.SERVICE_LIFE)))
- // 生产日期/出厂日期 年/月/日
- .scrq(StringTool.object2DateTime(infos.get(InfosKeyConstant.PRODUCT_DATE)))
- // 采购日期
- .cgrq(StringTool.object2DateTime(infos.get(InfosKeyConstant.PURCHASE_DATE)))
- // 安装日期
- .azdate(StringTool.object2DateTime(infos.get(InfosKeyConstant.INSTALL_DATE)))
- // 启用日期
- .installdate(StringTool.object2DateTime(infos.get(InfosKeyConstant.ENABLE_DATE)))
- // 质保开始日期
- .zbksrq(StringTool.object2DateTime(infos.get(InfosKeyConstant.WARRANTY_START_DATE)))
- // 质保结束日期
- .zbjsrq(StringTool.object2DateTime(infos.get(InfosKeyConstant.WARRANTY_END_DATE)))
- // 中修周期 单位为月
- .zxzq(StringTool.object2Integer(infos.get(InfosKeyConstant.MEDIUM_REPAIR_CYCLE)))
- // 大修周期 单位为月
- .dxzq(StringTool.object2Integer(infos.get(InfosKeyConstant.OVERHAUL_CYCLE)))
- // 物业类型 自持/销售/合作方
- .wylx(StringTool.object2String(infos.get(InfosKeyConstant.PROPERTY_TYPE)))
- // 设备管理归属 商管/百货/大歌星/超市/影院/大酒楼/其他
- .sbglgs(StringTool.object2String(infos.get(InfosKeyConstant.EQUIPMENT_MANAGE_OWNERSHIP)))
- // 慧云设备编码
- .hysbbm(StringTool.object2String(infos.get(InfosKeyConstant.WISDOM_CLOUD_LOCAL_CODE)))
- // 是否慧云使用 是/否 缺省为 是
- .sfhysy(sfhysy)
- // 是否是主力店 缺省为 否
- .sfzld(sfzld)
- // 备注 wD_beizhu
- .mark(StringTool.object2String(infos.get(InfosKeyConstant.REMARK)))
- // 数据状态 update/delete 当数据状态为delete时,设备状态需改为报废
- .datastatus(valid == 0 ? SwitchConstant.IS_DELETE : SwitchConstant.IS_UPDATE)
- // 数据更新时间 增量字段
- .changedate(updateTime)
- // 更新人员
- .ctx(updateUser)
- .build();
- return hydomcAsset;
- }
-
- }
|