rk
7 小时以前 0399e1f5b530660b5104f89c6484ad8722097918
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -49,6 +49,7 @@
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.Date;
import java.util.stream.Collectors;
/**
 * 车辆_用车申请信息表Service实现
@@ -644,47 +645,111 @@
    }
    @Override
    public void jdyPushCarUseBook(String dataInfo){
        JSONObject dataInfoJSON = JSONObject.parseObject(dataInfo);
        if(dataInfoJSON.isEmpty()){
            return;
        }
        JSONObject dataJSON = dataInfoJSON.getJSONObject("data");
        String id = dataJSON.getString("_id");
        if(StringUtils.isEmpty(id)){
        String op = dataInfoJSON.getString("op");
        //删除:data_remove 新增:data_add 修改:data_update
        if(StringUtils.isEmpty(op)){
            return;
        }
        JSONObject dataJSON = dataInfoJSON.getJSONObject("data");
        String no = dataJSON.getString("no");
        if(StringUtils.isEmpty(no)){
            return;
        }
        if(op.equals("data_remove")){
            carUseBookJoinMapper.update(new UpdateWrapper<CarUseBook>().lambda()
                            .set(CarUseBook::getEditDate,DateUtil.getCurrDateTime())
                    .set(CarUseBook::getIsdeleted,Constants.ONE).eq(CarUseBook::getJdyId,no));
            return;
        }
        Integer status = dataJSON.getInteger("flowState");
        if(Objects.isNull(status)||!(Constants.equalsInteger(status,Constants.ONE)||Constants.equalsInteger(status,Constants.TWO))){
            return;
        }
        String carCode = dataJSON.getString("car_no");
        String startDate = dataJSON.getString("start_date");
        String endDate = dataJSON.getString("end_date");
        Integer status = dataJSON.getInteger("flowState");
        String typeInfo =   dataJSON.getString("scope");
        String reason =   dataJSON.getString("reason");
        String addr =   dataJSON.getString("addr");
        JSONArray usersArray =   dataJSON.getJSONArray("users");
        JSONObject driverJSON = dataJSON.getJSONObject("driver");
        if(!(Constants.equalsInteger(status,Constants.ONE)||Constants.equalsInteger(status,Constants.TWO))){
        }
        CarUseBook carUseBook = carUseBookJoinMapper.selectOne(new QueryWrapper<CarUseBook>()
                .lambda().eq(CarUseBook::getJdyId,id).last("limit 1"));
                .lambda().eq(CarUseBook::getJdyId,no).last("limit 1"));
        if(Objects.isNull(carUseBook)){
            carUseBook = new CarUseBook();
            carUseBook.setCreateDate(new Date());
            carUseBook.setCarCode(carCode);
            carUseBook.setCarId(null);
            carUseBook.setStartTime(DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",DateUtil.getDateStrOfUTCStr(startDate)));
            carUseBook.setEndTime(DateUtil.fromStringToDate("yyyy-MM-dd HH:mm:ss",DateUtil.getDateStrOfUTCStr(endDate)));
            carUseBook.setEditDate(new Date());
            carUseBook.setJdyId(no);
        }else{
            carUseBook.setEditDate(new Date());
        }
        carUseBook.setIsdeleted(Constants.equalsInteger(status,Constants.ONE)?Constants.ZERO:Constants.ONE);
        carUseBook.setCarCode(StringUtils.isBlank(carCode)?null:carCode);
        if(StringUtils.isNotBlank(carCode)){
            Cars cars = carsMapper.selectOne(new QueryWrapper<Cars>().lambda()
                    .eq(Cars::getIsdeleted,Constants.ZERO)
                    .eq(Cars::getCode,carCode).last("limit 1"));
            carUseBook.setCarId(Objects.nonNull(cars)?cars.getId():null);
        }
        carUseBook.setStartTime(StringUtils.isBlank(startDate)?null:DateUtil.getISO8601DateByStr(startDate));
        carUseBook.setEndTime(StringUtils.isBlank(endDate)?null:DateUtil.getISO8601DateByStr(endDate));
        carUseBook.setTypeInfo(StringUtils.isBlank(typeInfo)?null:typeInfo);
        carUseBook.setContent(StringUtils.isBlank(typeInfo)?null:reason);
        carUseBook.setAddr(StringUtils.isBlank(typeInfo)?null:addr);
        carUseBook.setStatus(Constants.TWO);
        JSONObject driverJSON = dataJSON.getJSONObject("driver");
        if(!driverJSON.isEmpty()){
            String driverName = driverJSON.getString("name");
            String driverUserName = driverJSON.getString("username");
            if(StringUtils.isNotBlank(driverUserName)){
                Member driverMember = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getDdId,driverUserName).last("limit 1 "));
                if(Objects.nonNull(driverMember)){
                    carUseBook.setDriverId(driverMember.getId());
                }
            }
        }
        JSONObject createJSON = dataJSON.getJSONObject("creator");
        if(!driverJSON.isEmpty()){
            String createName = createJSON.getString("name");
            String createUserName = createJSON.getString("username");
            if(StringUtils.isNotBlank(createUserName)){
                Member createMember = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).eq(Member::getDdId,createUserName).last("limit 1 "));
                if(Objects.nonNull(createMember)){
                    carUseBook.setMemberId(createMember.getId());
                }
            }
        }
        JSONArray usersArray =   dataJSON.getJSONArray("users");
        if(!usersArray.isEmpty()){
            String names = "";
            List<String> userDDIdList = new ArrayList<>();
            for (int i = 0; i < usersArray.size(); i++) {
                JSONObject userJSON = usersArray.getJSONObject(i);
                String name = createJSON.getString("name");
                String userName = createJSON.getString("username");
                userDDIdList.add(userName);
                names = names +
                        (StringUtils.isNotBlank(names)?",":"")
                        + name;
            }
            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(userDDIdList)){
                List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO).in(Member::getDdId,userDDIdList));
                if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberList)){
                    names = String.join(",",memberList.stream().map(i->i.getName()).collect(Collectors.toList()));
                    carUseBook.setMemberIds(String.join(",",memberList.stream().map(i->i.getId().toString()).collect(Collectors.toList())));
                }
            }
            carUseBook.setMemberNames(names);
        }
        carUseBookMapper.insertOrUpdate(carUseBook);
    }