|
@@ -1,15 +1,25 @@
|
|
package cn.iocoder.yudao.module.pms.service.inspect;
|
|
package cn.iocoder.yudao.module.pms.service.inspect;
|
|
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderPageReqVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderPageReqVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderSaveReqVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderSaveReqVO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
|
|
|
|
+import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDetailDO;
|
|
|
|
+import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO;
|
|
|
|
+import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderDetailMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderMapper;
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
|
+import com.google.common.collect.ImmutableMap;
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_INSPECT_ORDER_NOT_EXISTS;
|
|
import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_INSPECT_ORDER_NOT_EXISTS;
|
|
@@ -25,6 +35,88 @@ public class IotInspectOrderServiceImpl implements IotInspectOrderService {
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
private IotInspectOrderMapper iotInspectOrderMapper;
|
|
private IotInspectOrderMapper iotInspectOrderMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IotInspectOrderDetailMapper iotInspectOrderDetailMapper;
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public void writeInspectOrderDetail(Map<String, String> requestMap, Long orderId) {
|
|
|
|
+ String ifNormal = requestMap.get("ifNormal");
|
|
|
|
+ String description = requestMap.get("description");
|
|
|
|
+ String picUrl = requestMap.get("picUrl");
|
|
|
|
+ String deviceId = requestMap.get("deviceId");
|
|
|
|
+ String indexId = requestMap.get("indexId");
|
|
|
|
+ IotInspectOrderDO order = iotInspectOrderMapper.selectById(orderId);
|
|
|
|
+ if (Objects.isNull(order)){
|
|
|
|
+ throw exception(IOT_INSPECT_ORDER_NOT_EXISTS);
|
|
|
|
+ }
|
|
|
|
+ //删除已有的
|
|
|
|
+// IotInspectRouteDO routeDO = JSON.parseArray(order.getDeviceIds(), IotInspectRouteDO.class).stream().filter(e -> String.valueOf(e.getDeviceId()).equals(deviceId)).findFirst().get();
|
|
|
|
+//
|
|
|
|
+// List<IotInspectOrderDetailDO> details = iotInspectOrderDetailMapper.selectByMap(ImmutableMap.of("orderId", orderId, "deviceId", deviceId, "itemId", Long.valueOf(String.valueOf(map.get("itemId")))));
|
|
|
|
+// if (CollUtil.isNotEmpty(details)){
|
|
|
|
+// iotInspectOrderDetailMapper.deleteByIds(details);
|
|
|
|
+// }
|
|
|
|
+// IotInspectOrderDetailDO detailDO = new IotInspectOrderDetailDO();
|
|
|
|
+// detailDO.setOrderId(orderId);
|
|
|
|
+// detailDO.setDeviceId(Long.valueOf(deviceId));
|
|
|
|
+// detailDO.setItemId(Long.valueOf(String.valueOf(map.get("itemId"))));
|
|
|
|
+// detailDO.setIfNormal("1".equals(ifNormal));
|
|
|
|
+// detailDO.setDescription(description);
|
|
|
|
+// detailDO.setPicUrl(picUrl);
|
|
|
|
+// detailDO.setIndexId(Long.valueOf(indexId));
|
|
|
|
+// iotInspectOrderDetailMapper.insert(detailDO);
|
|
|
|
+ //更新order的json串
|
|
|
|
+ List<IotInspectRouteDO> routeDOS = JSON.parseArray(order.getDeviceIds(), IotInspectRouteDO.class);
|
|
|
|
+// routeDOS.forEach(routeDO -> {
|
|
|
|
+// List<Map> maps = JSON.parseArray(routeDO.getItemJson(), Map.class);
|
|
|
|
+// maps.forEach(e -> {
|
|
|
|
+// if (String.valueOf(e.get("index")).equals(indexId)){
|
|
|
|
+// e.put("ifNormal", "true".equals(ifNormal));
|
|
|
|
+// e.put("description", description);
|
|
|
|
+// e.put("picUrl", picUrl);
|
|
|
|
+// }
|
|
|
|
+// });
|
|
|
|
+// });
|
|
|
|
+ List<IotInspectRouteDO> newArray = new ArrayList<>();
|
|
|
|
+ for (IotInspectRouteDO routeDO : routeDOS) {
|
|
|
|
+ IotInspectRouteDO newRoute = new IotInspectRouteDO();
|
|
|
|
+ BeanUtils.copyProperties(routeDO, newRoute);
|
|
|
|
+ List<Map> maps = JSON.parseArray(routeDO.getItemJson(), Map.class);
|
|
|
|
+ List<Map> newMaps = new ArrayList<>();
|
|
|
|
+ for (Map map : maps) {
|
|
|
|
+ Map newMap = new HashMap();
|
|
|
|
+// BeanUtils.copyProperties(map, newMap);
|
|
|
|
+ newMap.put("itemId", map.get("itemId"));
|
|
|
|
+ newMap.put("index", map.get("index"));
|
|
|
|
+ newMap.put("item", map.get("item"));
|
|
|
|
+ newMap.put("standard", map.get("standard"));
|
|
|
|
+ if (Objects.nonNull(map.get("ifNormal"))) {
|
|
|
|
+ newMap.put("ifNormal", map.get("ifNormal"));
|
|
|
|
+ }
|
|
|
|
+ if (Objects.nonNull(map.get("description"))) {
|
|
|
|
+ newMap.put("description", map.get("description"));
|
|
|
|
+ }
|
|
|
|
+ if (Objects.nonNull(map.get("picUrl"))) {
|
|
|
|
+ newMap.put("picUrl", map.get("picUrl"));
|
|
|
|
+ }
|
|
|
|
+ if (String.valueOf(map.get("index")).equals(indexId)) {
|
|
|
|
+ newMap.put("ifNormal", "true".equals(ifNormal));
|
|
|
|
+ if (StringUtils.isNotBlank(description)) {
|
|
|
|
+ newMap.put("description", description);
|
|
|
|
+ }
|
|
|
|
+ if (StringUtils.isNotBlank(picUrl)) {
|
|
|
|
+ newMap.put("picUrl", picUrl);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ newMaps.add(newMap);
|
|
|
|
+ }
|
|
|
|
+ newRoute.setItemJson(JSON.toJSONString(newMaps));
|
|
|
|
+ newArray.add(newRoute);
|
|
|
|
+ }
|
|
|
|
+ order.setDeviceIds(JSON.toJSONString(newArray));
|
|
|
|
+ iotInspectOrderMapper.updateById(order);
|
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Long createIotInspectOrder(IotInspectOrderSaveReqVO createReqVO) {
|
|
public Long createIotInspectOrder(IotInspectOrderSaveReqVO createReqVO) {
|